Game Development Community

ShapBase applyDamage not working properly

by James Novosel · in RTS Starter Kit · 03/14/2005 (4:35 pm) · 1 replies

ApplyDamage of 10 works the first time, each applyDamage after that applies 10 plus an additional 10. If damage was 20, first apply is okay, each applyDamage after that applies 40. Its as if the first value is held and added to the next.

Debug statements follow,...

avatar onAttack: %attacker.getDataBlock().baseDamage = 50
avatar onAttack: %attacker.getModifierList().baseDamage =
avatar onAttack: %target.getDataBlock().armor = 40
avatar onAttack: %target.getModifierList().armor =
applyDamage of %damage = 10
%target.getDamageLevel() = 10
%target.getDamagePercent() = 0.1
%target.getDamageState() = Enabled

avatar onAttack: %attacker.getDataBlock().baseDamage = 50
avatar onAttack: %attacker.getModifierList().baseDamage =
avatar onAttack: %target.getDataBlock().armor = 40
avatar onAttack: %target.getModifierList().armor =
applyDamage of %damage = 10
%target.getDamageLevel() = 30
%target.getDamagePercent() = 0.3
%target.getDamageState() = Enabled

avatar onAttack: %attacker.getDataBlock().baseDamage = 50
avatar onAttack: %attacker.getModifierList().baseDamage =
avatar onAttack: %target.getDataBlock().armor = 40
avatar onAttack: %target.getModifierList().armor =
applyDamage of %damage = 10
%target.getDamageLevel() = 50
%target.getDamagePercent() = 0.5
%target.getDamageState() = Enabled

avatar onAttack: %attacker.getDataBlock().baseDamage = 50
avatar onAttack: %attacker.getModifierList().baseDamage =
avatar onAttack: %target.getDataBlock().armor = 40
avatar onAttack: %target.getModifierList().armor =
applyDamage of %damage = 10
%target.getDamageLevel() = 70
%target.getDamagePercent() = 0.7
%target.getDamageState() = Enabled

avatar onAttack: %attacker.getDataBlock().baseDamage = 50
avatar onAttack: %attacker.getModifierList().baseDamage =
avatar onAttack: %target.getDataBlock().armor = 40
avatar onAttack: %target.getModifierList().armor =
applyDamage of %damage = 10
%target.getDamageLevel() = 90
%target.getDamagePercent() = 0.9
%target.getDamageState() = Enabled

#1
03/14/2005 (4:44 pm)
While I personally haven't witnessed what you reported, I will say that yes, the damage functionality is pretty...umm...heh. Let's just say it could use some polish.

I spent about a week re-working the old TGE style damage state system and callbacks, and have it mostly working. Depending on what my schedule winds up looking like, this may get some close attention in the next couple of months!