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
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
Torque 3D Owner Stephen Zepp
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!