#186 unlimited power devhack

This commit is contained in:
Chris Forbes
2010-11-21 12:36:18 +13:00
parent 1db3ce4b59
commit 5292272902
5 changed files with 58 additions and 12 deletions

View File

@@ -13,7 +13,7 @@ using OpenRA.Traits;
namespace OpenRA.Mods.RA.Buildings
{
public class PowerManagerInfo : ITraitInfo
public class PowerManagerInfo : ITraitInfo, ITraitPrerequisite<DeveloperModeInfo>
{
public readonly int AdviceInterval = 250;
public object Create(ActorInitializer init) { return new PowerManager(init, this); }
@@ -22,7 +22,8 @@ namespace OpenRA.Mods.RA.Buildings
public class PowerManager : ITick
{
PowerManagerInfo Info;
Player Player;
Player Player;
DeveloperMode devMode;
Dictionary<Actor, int> PowerDrain = new Dictionary<Actor, int>();
[Sync] int totalProvided;
@@ -37,7 +38,10 @@ namespace OpenRA.Mods.RA.Buildings
Player = init.self.Owner;
init.world.ActorAdded += ActorAdded;
init.world.ActorRemoved += ActorRemoved;
init.world.ActorRemoved += ActorRemoved;
devMode = init.self.Trait<DeveloperMode>();
wasHackEnabled = devMode.UnlimitedPower;
}
void ActorAdded(Actor a)
@@ -67,7 +71,10 @@ namespace OpenRA.Mods.RA.Buildings
totalProvided += p;
else
totalDrained -= p;
}
}
if (devMode.UnlimitedPower)
totalProvided = 1000000;
}
public void UpdateActor(Actor a, int newPower)
@@ -80,9 +87,17 @@ namespace OpenRA.Mods.RA.Buildings
}
int nextPowerAdviceTime = 0;
bool wasLowPower = false;
bool wasLowPower = false;
bool wasHackEnabled;
public void Tick(Actor self)
{
{
if (wasHackEnabled != devMode.UnlimitedPower)
{
UpdateTotals();
wasHackEnabled = devMode.UnlimitedPower;
}
var lowPower = totalProvided < totalDrained;
if (lowPower && !wasLowPower)
nextPowerAdviceTime = 0;