RAIDER_Survivor/singeltons/DamageHandler.gd

21 lines
638 B
GDScript

extends Object
func apply_damage(damage_dealer: Entity, damage_receiver: Entity, weapon: Weapon ):
var damage = weapon.get_damage() + damage_dealer.get_damage()
var armor = damage_receiver.get_armor()
var damage_percent = 90*( pow(MathUtils.e, 0.03*armor))
var damage_after_armor = damage * damage_percent
if damage_after_armor < 1 :
damage_after_armor = 1
var shield = damage_receiver.get_shield()
if shield > 0:
damage_receiver.reduce_shield(damage_after_armor)
else:
damage_receiver.reduce_health(damage_after_armor)
for effect in weapon.get_hit_effects():
effect.apply_effect(damage_dealer,damage_receiver)