Differential D3628 Diff 16312 binaries/data/mods/public/simulation/components/tests/test_GarrisonHolder.js
Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/simulation/components/tests/test_GarrisonHolder.js
Show All 13 Lines | |||||
const unitToGarrisonId = 24; | const unitToGarrisonId = 24; | ||||
const enemyUnitId = 34; | const enemyUnitId = 34; | ||||
const largeUnitId = 35; | const largeUnitId = 35; | ||||
const player = 1; | const player = 1; | ||||
const friendlyPlayer = 2; | const friendlyPlayer = 2; | ||||
const enemyPlayer = 3; | const enemyPlayer = 3; | ||||
let cmpGarrisonHolder = ConstructComponent(garrisonHolderId, "GarrisonHolder", { | let cmpGarrisonHolder = ConstructComponent(garrisonHolderId, "GarrisonHolder", { | ||||
"Max": 10, | "Max": "10", | ||||
"List": { "_string": "Infantry+Cavalry" }, | "List": { "_string": "Infantry+Cavalry" }, | ||||
"EjectHealth": 0.1, | "EjectHealth": "0.1", | ||||
"EjectClassesOnDestroy": { "_string": "Infantry" }, | "EjectClassesOnDestroy": { "_string": "Infantry" }, | ||||
"BuffHeal": 1, | "BuffHeal": "1", | ||||
"LoadingRange": 2.1, | "LoadingRange": "2.1", | ||||
"Pickup": false | "Pickup": false | ||||
}); | }); | ||||
AddMock(garrisonHolderId, IID_Footprint, { | |||||
"PickSpawnPointBothPass": entity => new Vector3D(4, 3, 30), | |||||
"PickSpawnPoint": entity => new Vector3D(4, 3, 30) | |||||
}); | |||||
AddMock(garrisonHolderId, IID_Ownership, { | AddMock(garrisonHolderId, IID_Ownership, { | ||||
"GetOwner": () => player | "GetOwner": () => player | ||||
}); | }); | ||||
AddMock(player, IID_Player, { | AddMock(player, IID_Player, { | ||||
"IsAlly": id => id != enemyPlayer, | "IsAlly": id => id != enemyPlayer, | ||||
"IsMutualAlly": id => id != enemyPlayer, | "IsMutualAlly": id => id != enemyPlayer, | ||||
"GetPlayerID": () => player | "GetPlayerID": () => player | ||||
Show All 32 Lines | else | ||||
AddMock(i, IID_Ownership, { | AddMock(i, IID_Ownership, { | ||||
"GetOwner": () => friendlyPlayer | "GetOwner": () => friendlyPlayer | ||||
}); | }); | ||||
if (i == largeUnitId) | if (i == largeUnitId) | ||||
AddMock(i, IID_Garrisonable, { | AddMock(i, IID_Garrisonable, { | ||||
"UnitSize": () => 9, | "UnitSize": () => 9, | ||||
"TotalSize": () => 9, | "TotalSize": () => 9, | ||||
"Garrison": (entity, renamed) => cmpGarrisonHolder.Garrison(i, renamed), | "Garrison": (entity) => cmpGarrisonHolder.Garrison(i), | ||||
"UnGarrison": () => true | "UnGarrison": () => cmpGarrisonHolder.Eject(i) | ||||
}); | }); | ||||
else | else | ||||
AddMock(i, IID_Garrisonable, { | AddMock(i, IID_Garrisonable, { | ||||
"UnitSize": () => 1, | "UnitSize": () => 1, | ||||
"TotalSize": () => 1, | "TotalSize": () => 1, | ||||
"Garrison": entity => true, | "Garrison": entity => cmpGarrisonHolder.Garrison(i), | ||||
"UnGarrison": () => true | "UnGarrison": () => cmpGarrisonHolder.Eject(i) | ||||
}); | }); | ||||
AddMock(i, IID_Position, { | AddMock(i, IID_Position, { | ||||
"GetHeightOffset": () => 0, | "GetHeightOffset": () => 0, | ||||
"GetPosition": () => new Vector3D(4, 3, 25), | "GetPosition": () => new Vector3D(4, 3, 25), | ||||
"GetRotation": () => new Vector3D(4, 0, 6), | "GetRotation": () => new Vector3D(4, 0, 6), | ||||
"JumpTo": (posX, posZ) => {}, | "JumpTo": (posX, posZ) => {}, | ||||
"MoveOutOfWorld": () => {}, | "MoveOutOfWorld": () => {}, | ||||
"SetHeightOffset": height => {} | "SetHeightOffset": height => {} | ||||
}); | }); | ||||
} | } | ||||
AddMock(33, IID_Identity, { | AddMock(33, IID_Identity, { | ||||
"GetClassesList": () => ["Infantry", "Cavalry"], | "GetClassesList": () => ["Infantry", "Cavalry"], | ||||
"GetSelectionGroupName": () => "spart_infantry_archer_a" | "GetSelectionGroupName": () => "spart_infantry_archer_a" | ||||
}); | }); | ||||
let testGarrisonAllowed = function() | let testGarrisonAllowed = function() | ||||
{ | { | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.HasEnoughHealth(), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.HasEnoughHealth(), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(enemyUnitId), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(enemyUnitId), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(unitToGarrisonId), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(unitToGarrisonId), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(largeUnitId), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(largeUnitId), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsFull(), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.IsFull(), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Eject(largeUnitId), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Unload(largeUnitId), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Eject(unitToGarrisonId), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Unload(unitToGarrisonId), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(unitToGarrisonId), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(unitToGarrisonId), true); | ||||
for (let entity of garrisonedEntitiesList) | for (let entity of garrisonedEntitiesList) | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(entity), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(entity), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(largeUnitId), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(largeUnitId), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsFull(), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.IsFull(), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.CanPickup(unitToGarrisonId), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.CanPickup(unitToGarrisonId), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.UnloadTemplate("spart_infantry_archer_a", 2, false, false), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.UnloadTemplate("spart_infantry_archer_a", 2, false), true); | ||||
TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), [24, 25, 26, 27, 28, 29, 30, 31, 32]); | TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), [24, 25, 26, 27, 28, 29, 30, 31, 32]); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.UnloadAllByOwner(friendlyPlayer, false), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.UnloadAllByOwner(friendlyPlayer), true); | ||||
TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), [24, 25, 26, 27]); | TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), [24, 25, 26, 27]); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.GetGarrisonedEntitiesCount(), 4); | TS_ASSERT_EQUALS(cmpGarrisonHolder.GetGarrisonedEntitiesCount(), 4); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsEjectable(25), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.IsEjectable(25), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Unload(25), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Unload(25), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsEjectable(25), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.IsEjectable(25), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.PerformEject([25], false), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Unload(25), true); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.PerformEject([], false), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Eject(null, false), true); | ||||
TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), [24, 26, 27]); | TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), [24, 26, 27]); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.GetGarrisonedEntitiesCount(), 3); | TS_ASSERT_EQUALS(cmpGarrisonHolder.GetGarrisonedEntitiesCount(), 3); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.IsFull(), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.IsFull(), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(largeUnitId), false); | TS_ASSERT_EQUALS(cmpGarrisonHolder.Garrison(largeUnitId), false); | ||||
TS_ASSERT_EQUALS(cmpGarrisonHolder.UnloadAll(), true); | TS_ASSERT_EQUALS(cmpGarrisonHolder.UnloadAll(), true); | ||||
TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), []); | TS_ASSERT_UNEVAL_EQUALS(cmpGarrisonHolder.GetEntities(), []); | ||||
}; | }; | ||||
// No health component yet. | // No health component yet.Pick | ||||
testGarrisonAllowed(); | testGarrisonAllowed(); | ||||
AddMock(garrisonHolderId, IID_Health, { | AddMock(garrisonHolderId, IID_Health, { | ||||
"GetHitpoints": () => 50, | "GetHitpoints": () => 50, | ||||
"GetMaxHitpoints": () => 600 | "GetMaxHitpoints": () => 600 | ||||
}); | }); | ||||
cmpGarrisonHolder.AllowGarrisoning(true, "callerID1"); | cmpGarrisonHolder.AllowGarrisoning(true, "callerID1"); | ||||
▲ Show 20 Lines • Show All 145 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator