DungeonCrawler/loot_table.gd
Andre 3766be4017 Trink-Animation, Enemy-Level-Skalierung, Droprates angepasst
- Drinking-Animation beim Trank-Benutzen (0.3s Blend, 0.7x Speed)
- Bewegung bricht Trinken ab, Skills blockiert während Trinken
- Enemy mob_level mit Skalierung: HP +30%, Schaden +20%, XP +40%, Gold +50% pro Level
- Droprates gesenkt: Equipment 5%, HP-Trank 15%, Mana-Trank 10%
- Spieler startet mit 3 Heiltränken auf Slot 3

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 01:56:54 +01:00

31 lines
809 B
GDScript

# LootTable.gd
# Definiert mögliche Drops eines Gegners
extends Resource
class_name LootTable
# Gold-Drop
@export var min_gold: int = 1
@export var max_gold: int = 5
# Item-Drops mit Wahrscheinlichkeiten
@export var possible_drops: Array[LootEntry] = []
# Generiert Loot basierend auf Tabelle
func generate_loot(enemy_level: int = 1) -> Dictionary:
var gold_mult = 1.0 + (enemy_level - 1) * 0.5
var result = {
"gold": int(randi_range(min_gold, max_gold) * gold_mult),
"items": []
}
for entry in possible_drops:
if randf() <= entry.drop_chance:
# Consumables kopieren damit Stacks unabhängig bleiben
if entry.item is Consumable:
var copy = entry.item.duplicate()
copy.stack_size = 1
result["items"].append(copy)
else:
result["items"].append(entry.item)
return result