DungeonCrawler/resources/attack.gd
Andre 5addad0b8c Initial commit: DungeonCrawler Grundgerüst
- Third-Person Spieler mit WASD-Bewegung und Kamerasteuerung (RMB + Mausrad-Zoom)
- HP-System mit Healthbar und Aktionsleiste (Slots 1-9)
- Autoattack-System: Linksklick markiert Ziel, Rechtsklick markiert + greift an
- Waffensystem-Basis: Schaden basiert auf ausgerüsteter Waffe (unbewaffnet = 1)
- Gegner-KI: läuft auf Spieler zu, greift bei Reichweite an, zeigt HP-Label bei Markierung
- Ressourcen-Klassen: Attack und Weapon

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 15:35:13 +01:00

28 lines
930 B
GDScript

# Attack.gd
# Ressource für Angriffe — Schaden, Reichweite und Cooldown kommen von der ausgerüsteten Waffe
extends Resource
class_name Attack
enum DamageType { PHYSICAL, FIRE, ICE, LIGHTNING, POISON }
@export var name: String = "Unbenannt"
@export var damage_type: DamageType = DamageType.PHYSICAL
@export var icon: Texture2D = null
# Schaden berechnen — ohne Waffe = 1
func get_damage(weapon: Weapon) -> int:
if weapon == null or weapon.weapon_type == Weapon.WeaponType.UNARMED:
return 1
return randi_range(weapon.min_damage, weapon.max_damage)
# Reichweite — ohne Waffe = 1.5
func get_range(weapon: Weapon) -> float:
if weapon == null or weapon.weapon_type == Weapon.WeaponType.UNARMED:
return 1.5
return weapon.range
# Cooldown — ohne Waffe = 1.5s
func get_cooldown(weapon: Weapon) -> float:
if weapon == null or weapon.weapon_type == Weapon.WeaponType.UNARMED:
return 1.5
return weapon.attack_speed