Differential D2218 Diff 9753 binaries/data/mods/public/simulation/components/tests/test_StatusEffectsReceiver.js
Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/simulation/components/tests/test_StatusEffectsReceiver.js
Show All 22 Lines | let Attacking = { | ||||
"HandleAttackEffects": (_, attackData) => { dealtDamage += attackData.Damage[statusName]; } | "HandleAttackEffects": (_, attackData) => { dealtDamage += attackData.Damage[statusName]; } | ||||
}; | }; | ||||
Engine.RegisterGlobal("Attacking", Attacking); | Engine.RegisterGlobal("Attacking", Attacking); | ||||
// damage scheduled: 0, 10, 20 sec | // damage scheduled: 0, 10, 20 sec | ||||
cmpStatusReceiver.AddStatus(statusName, { | cmpStatusReceiver.AddStatus(statusName, { | ||||
"Duration": 20000, | "Duration": 20000, | ||||
"Interval": 10000, | "Interval": 10000, | ||||
"Damage": 1 | "Damage": { | ||||
[statusName]: 1 | |||||
} | |||||
}); | }); | ||||
cmpTimer.OnUpdate({ "turnLength": 1 }); | cmpTimer.OnUpdate({ "turnLength": 1 }); | ||||
TS_ASSERT_EQUALS(dealtDamage, 1); // 1 sec | TS_ASSERT_EQUALS(dealtDamage, 1); // 1 sec | ||||
cmpTimer.OnUpdate({ "turnLength": 8 }); | cmpTimer.OnUpdate({ "turnLength": 8 }); | ||||
TS_ASSERT_EQUALS(dealtDamage, 1); // 9 sec | TS_ASSERT_EQUALS(dealtDamage, 1); // 9 sec | ||||
Show All 20 Lines | function testMultipleEffects() | ||||
}; | }; | ||||
Engine.RegisterGlobal("Attacking", Attacking); | Engine.RegisterGlobal("Attacking", Attacking); | ||||
// damage scheduled: 0, 1, 2, 10 sec | // damage scheduled: 0, 1, 2, 10 sec | ||||
cmpStatusReceiver.GiveStatus({ | cmpStatusReceiver.GiveStatus({ | ||||
"Burn": { | "Burn": { | ||||
"Duration": 20000, | "Duration": 20000, | ||||
"Interval": 10000, | "Interval": 10000, | ||||
"Damage": 10 | "Damage": { | ||||
"Burn": 10 | |||||
} | |||||
}, | }, | ||||
"Poison": { | "Poison": { | ||||
"Duration": 3000, | "Duration": 3000, | ||||
"Interval": 1000, | "Interval": 1000, | ||||
"Damage": 1 | "Damage": { | ||||
"Poison": 1 | |||||
} | |||||
} | } | ||||
}); | }); | ||||
cmpTimer.OnUpdate({ "turnLength": 1 }); | cmpTimer.OnUpdate({ "turnLength": 1 }); | ||||
TS_ASSERT_EQUALS(dealtDamage, 12); // 1 sec | TS_ASSERT_EQUALS(dealtDamage, 12); // 1 sec | ||||
cmpTimer.OnUpdate({ "turnLength": 1 }); | cmpTimer.OnUpdate({ "turnLength": 1 }); | ||||
TS_ASSERT_EQUALS(dealtDamage, 13); // 2 sec | TS_ASSERT_EQUALS(dealtDamage, 13); // 2 sec | ||||
Show All 15 Lines | let Attacking = { | ||||
"HandleAttackEffects": (_, attackData) => { dealtDamage += attackData.Damage[statusName]; } | "HandleAttackEffects": (_, attackData) => { dealtDamage += attackData.Damage[statusName]; } | ||||
}; | }; | ||||
Engine.RegisterGlobal("Attacking", Attacking); | Engine.RegisterGlobal("Attacking", Attacking); | ||||
// damage scheduled: 0, 10, 20 sec | // damage scheduled: 0, 10, 20 sec | ||||
cmpStatusReceiver.AddStatus(statusName, { | cmpStatusReceiver.AddStatus(statusName, { | ||||
"Duration": 20000, | "Duration": 20000, | ||||
"Interval": 10000, | "Interval": 10000, | ||||
"Damage": 1 | "Damage": { | ||||
[statusName]: 1 | |||||
} | |||||
}); | }); | ||||
cmpTimer.OnUpdate({ "turnLength": 1 }); | cmpTimer.OnUpdate({ "turnLength": 1 }); | ||||
TS_ASSERT_EQUALS(dealtDamage, 1); // 1 sec | TS_ASSERT_EQUALS(dealtDamage, 1); // 1 sec | ||||
cmpStatusReceiver.RemoveStatus(statusName); | cmpStatusReceiver.RemoveStatus(statusName); | ||||
cmpTimer.OnUpdate({ "turnLength": 10 }); | cmpTimer.OnUpdate({ "turnLength": 10 }); | ||||
TS_ASSERT_EQUALS(dealtDamage, 1); // 11 sec | TS_ASSERT_EQUALS(dealtDamage, 1); // 11 sec | ||||
} | } | ||||
testRemoveStatus(); | testRemoveStatus(); |
Wildfire Games · Phabricator