Differential D2065 Diff 8931 ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/binaries/data/mods/public/simulation/components/tests/test_Damage.js
Show First 20 Lines • Show All 206 Lines • ▼ Show 20 Lines | function TestLinearSplashDamage() | ||||
AddMock(62, IID_DamageReceiver, { | AddMock(62, IID_DamageReceiver, { | ||||
"TakeDamage": (strengths, multiplier) => { | "TakeDamage": (strengths, multiplier) => { | ||||
hitEnts.add(62); | hitEnts.add(62); | ||||
TS_ASSERT_EQUALS(multiplier * (strengths.hack + strengths.pierce + strengths.crush), 0); | TS_ASSERT_EQUALS(multiplier * (strengths.hack + strengths.pierce + strengths.crush), 0); | ||||
return { "killed": false, "change": -multiplier * (strengths.hack + strengths.pierce + strengths.crush) }; | return { "killed": false, "change": -multiplier * (strengths.hack + strengths.pierce + strengths.crush) }; | ||||
} | } | ||||
}); | }); | ||||
cmpDamage.CauseSplashDamage(data); | cmpDamage.CauseDamageOverArea(data); | ||||
TS_ASSERT(hitEnts.has(60)); | TS_ASSERT(hitEnts.has(60)); | ||||
TS_ASSERT(hitEnts.has(61)); | TS_ASSERT(hitEnts.has(61)); | ||||
TS_ASSERT(hitEnts.has(62)); | TS_ASSERT(hitEnts.has(62)); | ||||
hitEnts.clear(); | hitEnts.clear(); | ||||
data.direction = new Vector3D(0.6, 747, 0.8); | data.direction = new Vector3D(0.6, 747, 0.8); | ||||
AddMock(60, IID_DamageReceiver, { | AddMock(60, IID_DamageReceiver, { | ||||
"TakeDamage": (strengths, multiplier) => { | "TakeDamage": (strengths, multiplier) => { | ||||
hitEnts.add(60); | hitEnts.add(60); | ||||
TS_ASSERT_EQUALS(multiplier * (strengths.hack + strengths.pierce + strengths.crush), 100 * fallOff(1, 2)); | TS_ASSERT_EQUALS(multiplier * (strengths.hack + strengths.pierce + strengths.crush), 100 * fallOff(1, 2)); | ||||
return { "killed": false, "change": -multiplier * (strengths.hack + strengths.pierce + strengths.crush) }; | return { "killed": false, "change": -multiplier * (strengths.hack + strengths.pierce + strengths.crush) }; | ||||
} | } | ||||
}); | }); | ||||
cmpDamage.CauseSplashDamage(data); | cmpDamage.CauseDamageOverArea(data); | ||||
TS_ASSERT(hitEnts.has(60)); | TS_ASSERT(hitEnts.has(60)); | ||||
TS_ASSERT(hitEnts.has(61)); | TS_ASSERT(hitEnts.has(61)); | ||||
TS_ASSERT(hitEnts.has(62)); | TS_ASSERT(hitEnts.has(62)); | ||||
hitEnts.clear(); | hitEnts.clear(); | ||||
} | } | ||||
TestLinearSplashDamage(); | TestLinearSplashDamage(); | ||||
▲ Show 20 Lines • Show All 65 Lines • ▼ Show 20 Lines | function TestCircularSplashDamage() | ||||
AddMock(64, IID_DamageReceiver, { | AddMock(64, IID_DamageReceiver, { | ||||
"TakeDamage": (strengths, multiplier) => { | "TakeDamage": (strengths, multiplier) => { | ||||
TS_ASSERT_EQUALS(multiplier * (strengths.hack + strengths.pierce + strengths.crush), 0); | TS_ASSERT_EQUALS(multiplier * (strengths.hack + strengths.pierce + strengths.crush), 0); | ||||
return { "killed": false, "change": -multiplier * (strengths.hack + strengths.pierce + strengths.crush) }; | return { "killed": false, "change": -multiplier * (strengths.hack + strengths.pierce + strengths.crush) }; | ||||
} | } | ||||
}); | }); | ||||
cmpDamage.CauseSplashDamage({ | cmpDamage.CauseDamageOverArea({ | ||||
"attacker": 50, | "attacker": 50, | ||||
"origin": new Vector2D(3, 4), | "origin": new Vector2D(3, 4), | ||||
"radius": radius, | "radius": radius, | ||||
"shape": "Circular", | "shape": "Circular", | ||||
"strengths": { "hack" : 100, "pierce" : 0, "crush": 0 }, | "strengths": { "hack" : 100, "pierce" : 0, "crush": 0 }, | ||||
"playersToDamage": [2], | "playersToDamage": [2], | ||||
"type": "Ranged", | "type": "Ranged", | ||||
"attackerOwner": 1 | "attackerOwner": 1 | ||||
▲ Show 20 Lines • Show All 230 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator