Kampfsystem - Bastelschublade/trinity GitHub Wiki
Für den Anfang, sollen die stats, so wie das gesamte Kampfsystem erstmal sehr einfach gehalten werden. Nichts desto trotz, sollten einige Werte veränderbar sein, sonst würde jeder Kampf gleich verlaufen. Um flexibel zu bleiben und die Werte von überall aus dem Spiel dynamisch zu verändern (Items, Buffs, Umwelt etc.. ) wurde die Stats Klasse eingeführt (TODO: link zu Stats.gd), von der jede Kreatur eine Instanz in .stats hältrt. Jede Stats Instanz enthält zwei Dictionaries:
stats.baseenthält die Basiswerte, die vor Spielbeginn statisch definiert werdenstats.currententhält die aktuellen Werte, die sich aus den basiswerten und der summe der stats von equip buffs etc. ergeben.stats.update()wird aufgerufen, wenn buffs equpip oder umwelteinflüsse sich ändern und stats.current wird neu berechnet.
Bisher implementierte Stats:
healthin diesem context max health nicht aktuelles leben (player.stats.current.health != player.current_health)powermax power (wie bei health)speedAngriffsgeschwindigkeit: Zeit zwischen angriffen = 1/speed (in s)attackHit chance: 0 bis 1 (100%)shootHit chance für range angriffeblockChance einen angriff zu blocken/ausweichen/parrieren, während block aktiv istarmorWert wird vom eingehenden schaden abgezogen
Nicht implementiert
- Schaden wird direkt in der Waffe berechnet
- Range wird ebenfalls von der waffe bezogen