DungeonCrawler/equipment.gd
Andre 9ab6deddff Inventar, Equipment, Klassensystem und Waffenschaden hinzugefügt
- CharacterClass mit Klassen (Krieger, Schurke, Magier) und unbewaffnetem Schaden
- Equipment-System mit 7 Slots, Seltenheiten und Stats
- Inventar-System mit 20 Slots und Gold
- LootTable/LootEntry für Gegner-Drops
- Character Panel (C) mit Stats und Equipment-Anzeige
- Inventory Panel (I) mit Item-Grid und Tooltips
- Klassenauswahl-Menü bei Spielstart
- Waffenschaden in Equipment-Spalte, unbewaffnet klassenabhängig

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 20:10:05 +01:00

63 lines
1.6 KiB
GDScript

# Equipment.gd
# Resource für Ausrüstungsgegenstände
extends Resource
class_name Equipment
enum Slot {
HEAD, # Helm
CHEST, # Brustpanzer
HANDS, # Handschuhe
LEGS, # Beinschienen
FEET, # Stiefel
WEAPON, # Waffe
OFFHAND # Nebenhand (Schild, etc.)
}
enum Rarity {
COMMON, # Weiß
UNCOMMON, # Grün
RARE, # Blau
EPIC # Lila
}
@export var item_name: String = "Unbekannt"
@export var slot: Slot = Slot.WEAPON
@export var rarity: Rarity = Rarity.COMMON
# Stats die das Item gibt
@export var armor: int = 0
@export var strength: int = 0
@export var agility: int = 0
@export var intelligence: int = 0
@export var stamina: int = 0
@export var haste: float = 0.0 # Angriffsgeschwindigkeit (0.1 = 10% schneller)
# Nur für Waffen
@export var min_damage: int = 0
@export var max_damage: int = 0
@export var attack_speed: float = 1.5 # Sekunden zwischen Angriffen
@export var weapon_range: float = 3.0
# Icon für UI
@export var icon: Texture2D
# Slot-Namen für Anzeige
static func get_slot_name(s: Slot) -> String:
match s:
Slot.HEAD: return "Kopf"
Slot.CHEST: return "Brust"
Slot.HANDS: return "Hände"
Slot.LEGS: return "Beine"
Slot.FEET: return "Füße"
Slot.WEAPON: return "Waffe"
Slot.OFFHAND: return "Nebenhand"
return "Unbekannt"
# Seltenheitsfarbe
static func get_rarity_color(r: Rarity) -> Color:
match r:
Rarity.COMMON: return Color(1, 1, 1) # Weiß
Rarity.UNCOMMON: return Color(0.2, 0.8, 0.2) # Grün
Rarity.RARE: return Color(0.3, 0.5, 1.0) # Blau
Rarity.EPIC: return Color(0.7, 0.3, 0.9) # Lila
return Color(1, 1, 1)