Move RearmTick to Rearmable
This commit is contained in:
@@ -162,8 +162,8 @@ namespace OpenRA.Mods.Common.Activities
|
||||
if (activeResupplyTypes.HasFlag(ResupplyType.Repair))
|
||||
RepairTick(self);
|
||||
|
||||
if (activeResupplyTypes.HasFlag(ResupplyType.Rearm))
|
||||
RearmTick(self);
|
||||
if (activeResupplyTypes.HasFlag(ResupplyType.Rearm) && rearmable.RearmTick(self))
|
||||
activeResupplyTypes &= ~ResupplyType.Rearm;
|
||||
|
||||
foreach (var notifyResupply in notifyResupplies)
|
||||
notifyResupply.ResupplyTick(host.Actor, self, activeResupplyTypes);
|
||||
@@ -303,29 +303,5 @@ namespace OpenRA.Mods.Common.Activities
|
||||
else
|
||||
--remainingTicks;
|
||||
}
|
||||
|
||||
void RearmTick(Actor self)
|
||||
{
|
||||
var rearmComplete = true;
|
||||
foreach (var ammoPool in rearmable.RearmableAmmoPools)
|
||||
{
|
||||
if (!ammoPool.HasFullAmmo)
|
||||
{
|
||||
if (--ammoPool.RemainingTicks <= 0)
|
||||
{
|
||||
ammoPool.RemainingTicks = ammoPool.Info.ReloadDelay;
|
||||
if (!string.IsNullOrEmpty(ammoPool.Info.RearmSound))
|
||||
Game.Sound.PlayToPlayer(SoundType.World, self.Owner, ammoPool.Info.RearmSound, self.CenterPosition);
|
||||
|
||||
ammoPool.GiveAmmo(self, ammoPool.Info.ReloadCount);
|
||||
}
|
||||
|
||||
rearmComplete = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (rearmComplete)
|
||||
activeResupplyTypes &= ~ResupplyType.Rearm;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,5 +53,27 @@ namespace OpenRA.Mods.Common.Traits
|
||||
}
|
||||
|
||||
void INotifyDockClient.Undocked(Actor self, Actor dock) { }
|
||||
|
||||
public bool RearmTick(Actor self)
|
||||
{
|
||||
foreach (var ammoPool in RearmableAmmoPools)
|
||||
{
|
||||
if (!ammoPool.HasFullAmmo)
|
||||
{
|
||||
if (--ammoPool.RemainingTicks <= 0)
|
||||
{
|
||||
ammoPool.RemainingTicks = ammoPool.Info.ReloadDelay;
|
||||
if (!string.IsNullOrEmpty(ammoPool.Info.RearmSound))
|
||||
Game.Sound.PlayToPlayer(SoundType.World, self.Owner, ammoPool.Info.RearmSound, self.CenterPosition);
|
||||
|
||||
ammoPool.GiveAmmo(self, ammoPool.Info.ReloadCount);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user