- 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>
31 lines
809 B
GDScript
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
|