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.base
enthält die Basiswerte, die vor Spielbeginn statisch definiert werdenstats.current
enthä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:
health
in diesem context max health nicht aktuelles leben (player.stats.current.health != player.current_health)power
max power (wie bei health)speed
Angriffsgeschwindigkeit: Zeit zwischen angriffen = 1/speed (in s)attack
Hit chance: 0 bis 1 (100%)shoot
Hit chance für range angriffeblock
Chance einen angriff zu blocken/ausweichen/parrieren, während block aktiv istarmor
Wert wird vom eingehenden schaden abgezogen
Nicht implementiert
- Schaden wird direkt in der Waffe berechnet
- Range wird ebenfalls von der waffe bezogen