# 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
}

enum ItemType {
	ARMOR,     # Rüstung (Helm, Brust, etc.)
	WEAPON,    # Waffe
	SHIELD,    # Schild (Offhand)
	OFFHAND,   # Andere Nebenhand (Buch, Quiver, etc.)
}

@export var item_name: String = "Unbekannt"
@export var slot: Slot = Slot.WEAPON
@export var item_type: ItemType = ItemType.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

# 3D-Modell (GLB/GLTF) – wird an der Hand des Spielers angezeigt
@export var model_scene: PackedScene

# 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)
