Implement HarvesterResourceMultiplier.

This commit is contained in:
Zimmermann Gyula
2018-06-20 11:36:06 +02:00
committed by abcdefg30
parent ef47a3394f
commit 71acfaf014
2 changed files with 36 additions and 1 deletions

View File

@@ -95,6 +95,7 @@ namespace OpenRA.Mods.Common.Traits
INotifyHarvesterAction[] notifyHarvesterAction;
ConditionManager conditionManager;
int conditionToken = ConditionManager.InvalidConditionToken;
HarvesterResourceMultiplier[] resourceMultipliers;
[Sync] public bool LastSearchFailed;
[Sync] public Actor OwnerLinkedProc = null;
@@ -127,6 +128,7 @@ namespace OpenRA.Mods.Common.Traits
void INotifyCreated.Created(Actor self)
{
notifyHarvesterAction = self.TraitsImplementing<INotifyHarvesterAction>().ToArray();
resourceMultipliers = self.TraitsImplementing<HarvesterResourceMultiplier>().ToArray();
conditionManager = self.TraitOrDefault<ConditionManager>();
UpdateCondition(self);
@@ -249,7 +251,7 @@ namespace OpenRA.Mods.Common.Traits
var type = contents.First().Key;
var iao = proc.Trait<IAcceptResources>();
var count = Math.Min(contents[type], Info.BaleUnloadAmount);
var value = type.ValuePerUnit * count;
var value = Util.ApplyPercentageModifiers(type.ValuePerUnit * count, resourceMultipliers.Select(m => m.GetModifier()));
if (!iao.CanGiveResource(value))
return false;