Topic was automatically imported from the old Question2Answer platform.
Asked By
thatreshaad
Hi, so i want to know if its possible to create a global script that handle all damage calculation from any attack.
like taking stats variable from the attacker and the target, then calculate the damage then send back the damage value.
I did have a working damage system by having every objects calculate their own stats and damage when attacking but its very very tedious and inefficient.
You can call a function in an autoload script but it would still need all the variable values through the arguments and any signals would still have to be connected on each object in order to call the autoload function for example
var damage : float
func _body_entered_signal(body):
damage = autoload_global_script.damage_function(damage)
thank you!, im a bit stumped on how to prevent stats variable (on autoload script) to be overwritten when there are multiple object attacking at the same time.
for example, when A (atk = 5) and B (atk=8) attack the player at the same time the damages dealt are both 5 or 8 (instead of 5 and 8) , my autoload script can only hold stats for 1 attacker (collect attacker stats (as aatk, adef, etc.) and 1 defender (.as batk, bdef, etc.)
thatreshaad | 2020-03-13 02:49
There are 2 ways. Either disable the collider that registers the attack given that it’s not the main body’s collider, or create an attack variable on the autoload so instead of passing an argument, only call the function if the variable equals 0 and set the variable to the attack value. Once the attack is finished reset the variable to 0.