Differential D2092 Diff 9392 binaries/data/mods/public/simulation/components/tests/test_DeathDamage.js
Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/simulation/components/tests/test_DeathDamage.js
Engine.LoadHelperScript("DamageBonus.js"); | Engine.LoadHelperScript("DamageBonus.js"); | ||||
Engine.LoadHelperScript("DamageTypes.js"); | Engine.LoadHelperScript("Attacking.js"); | ||||
Engine.LoadHelperScript("ValueModification.js"); | Engine.LoadHelperScript("ValueModification.js"); | ||||
Engine.LoadComponentScript("interfaces/AuraManager.js"); | Engine.LoadComponentScript("interfaces/AuraManager.js"); | ||||
Engine.LoadComponentScript("interfaces/Damage.js"); | |||||
Engine.LoadComponentScript("interfaces/DeathDamage.js"); | Engine.LoadComponentScript("interfaces/DeathDamage.js"); | ||||
Engine.LoadComponentScript("interfaces/TechnologyManager.js"); | Engine.LoadComponentScript("interfaces/TechnologyManager.js"); | ||||
Engine.LoadComponentScript("DeathDamage.js"); | Engine.LoadComponentScript("DeathDamage.js"); | ||||
let deadEnt = 60; | let deadEnt = 60; | ||||
let player = 1; | let player = 1; | ||||
ApplyValueModificationsToEntity = function(value, stat, ent) | ApplyValueModificationsToEntity = function(value, stat, ent) | ||||
Show All 9 Lines | let template = { | ||||
"FriendlyFire": "false", | "FriendlyFire": "false", | ||||
"Damage": { | "Damage": { | ||||
"Hack": 0.0, | "Hack": 0.0, | ||||
"Pierce": 15.0, | "Pierce": 15.0, | ||||
"Crush": 35.0 | "Crush": 35.0 | ||||
} | } | ||||
}; | }; | ||||
let modifiedDamage = { | let effects = { | ||||
"Damage": { | |||||
"Hack": 0.0, | "Hack": 0.0, | ||||
"Pierce": 215.0, | "Pierce": 215.0, | ||||
"Crush": 35.0 | "Crush": 35.0 | ||||
}, | |||||
"Bonuses": null | |||||
}; | }; | ||||
let cmpDeathDamage = ConstructComponent(deadEnt, "DeathDamage", template); | let cmpDeathDamage = ConstructComponent(deadEnt, "DeathDamage", template); | ||||
let playersToDamage = [2, 3, 7]; | let playersToDamage = [2, 3, 7]; | ||||
let pos = new Vector2D(3, 4.2); | let pos = new Vector2D(3, 4.2); | ||||
let result = { | let result = { | ||||
"type": "Death", | |||||
"attackData": effects, | |||||
"attacker": deadEnt, | "attacker": deadEnt, | ||||
"attackerOwner": player, | |||||
"origin": pos, | "origin": pos, | ||||
"radius": template.Range, | "radius": template.Range, | ||||
"shape": template.Shape, | "shape": template.Shape, | ||||
"strengths": modifiedDamage, | "playersToDamage": playersToDamage | ||||
"splashBonus": null, | |||||
"playersToDamage": playersToDamage, | |||||
"type": "Death", | |||||
"attackerOwner": player | |||||
}; | }; | ||||
AddMock(SYSTEM_ENTITY, IID_Damage, { | Attacking.CauseDamageOverArea = data => TS_ASSERT_UNEVAL_EQUALS(data, result); | ||||
"CauseDamageOverArea": data => TS_ASSERT_UNEVAL_EQUALS(data, result), | Attacking.GetPlayersToDamage = () => playersToDamage; | ||||
"GetPlayersToDamage": (owner, friendlyFire) => playersToDamage | |||||
}); | |||||
AddMock(deadEnt, IID_Position, { | AddMock(deadEnt, IID_Position, { | ||||
"GetPosition2D": () => pos, | "GetPosition2D": () => pos, | ||||
"IsInWorld": () => true | "IsInWorld": () => true | ||||
}); | }); | ||||
AddMock(deadEnt, IID_Ownership, { | AddMock(deadEnt, IID_Ownership, { | ||||
"GetOwner": () => player | "GetOwner": () => player | ||||
}); | }); | ||||
TS_ASSERT_UNEVAL_EQUALS(cmpDeathDamage.GetDeathDamageStrengths(), modifiedDamage); | TS_ASSERT_UNEVAL_EQUALS(cmpDeathDamage.GetDeathDamageEffects(), effects); | ||||
cmpDeathDamage.CauseDeathDamage(); | cmpDeathDamage.CauseDeathDamage(); | ||||
// Test splash damage bonus | // Test splash damage bonus | ||||
let splashBonus = { "BonusCav": { "Classes": "Cavalry", "Multiplier": 3 } }; | effects.Bonuses = { "BonusCav": { "Classes": "Cavalry", "Multiplier": 3 } }; | ||||
template.Bonuses = splashBonus; | template.Bonuses = effects.Bonuses; | ||||
cmpDeathDamage = ConstructComponent(deadEnt, "DeathDamage", template); | cmpDeathDamage = ConstructComponent(deadEnt, "DeathDamage", template); | ||||
result.splashBonus = splashBonus; | result.attackData.Bonuses = effects.Bonuses; | ||||
TS_ASSERT_UNEVAL_EQUALS(cmpDeathDamage.GetDeathDamageStrengths(), modifiedDamage); | TS_ASSERT_UNEVAL_EQUALS(cmpDeathDamage.GetDeathDamageEffects(), effects); | ||||
cmpDeathDamage.CauseDeathDamage(); | cmpDeathDamage.CauseDeathDamage(); |
Wildfire Games · Phabricator