Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/simulation/components/Looter.js
Show All 22 Lines | let resourcesCarried = calculateCarriedResources( | ||||
cmpTrader && cmpTrader.GetGoods() | cmpTrader && cmpTrader.GetGoods() | ||||
); | ); | ||||
// Loot resources as defined in the templates | // Loot resources as defined in the templates | ||||
let lootTemplate = cmpLoot.GetResources(); | let lootTemplate = cmpLoot.GetResources(); | ||||
let resources = {}; | let resources = {}; | ||||
for (let type of Resources.GetCodes()) | for (let type of Resources.GetCodes()) | ||||
resources[type] = | resources[type] = | ||||
Math.round( | |||||
ApplyValueModificationsToEntity( | ApplyValueModificationsToEntity( | ||||
"Looter/Resource/"+type, lootTemplate[type] || 0, this.entity) + | "Looter/Resource/"+type, lootTemplate[type] || 0, this.entity) + | ||||
(resourcesCarried[type] || 0); | (resourcesCarried[type] || 0)); | ||||
// Transfer resources | // Transfer resources | ||||
var cmpPlayer = QueryOwnerInterface(this.entity); | var cmpPlayer = QueryOwnerInterface(this.entity); | ||||
cmpPlayer.AddResources(resources); | cmpPlayer.AddResources(resources); | ||||
// Update statistics | // Update statistics | ||||
var cmpStatisticsTracker = QueryOwnerInterface(this.entity, IID_StatisticsTracker); | var cmpStatisticsTracker = QueryOwnerInterface(this.entity, IID_StatisticsTracker); | ||||
if (cmpStatisticsTracker) | if (cmpStatisticsTracker) | ||||
cmpStatisticsTracker.IncreaseLootCollectedCounter(resources); | cmpStatisticsTracker.IncreaseLootCollectedCounter(resources); | ||||
}; | }; | ||||
Engine.RegisterComponentType(IID_Looter, "Looter", Looter); | Engine.RegisterComponentType(IID_Looter, "Looter", Looter); |
Wildfire Games · Phabricator