Prepare DeveloperMode code for trait-defined lobby options.
This commit is contained in:
@@ -24,10 +24,15 @@ namespace OpenRA.Mods.Common.Commands
|
||||
public class DevCommands : IChatCommand, IWorldLoaded
|
||||
{
|
||||
World world;
|
||||
DeveloperMode developerMode;
|
||||
|
||||
public void WorldLoaded(World w, WorldRenderer wr)
|
||||
{
|
||||
world = w;
|
||||
|
||||
if (world.LocalPlayer != null)
|
||||
developerMode = world.LocalPlayer.PlayerActor.Trait<DeveloperMode>();
|
||||
|
||||
var console = world.WorldActor.Trait<ChatCommands>();
|
||||
var help = world.WorldActor.Trait<HelpCommand>();
|
||||
|
||||
@@ -55,7 +60,7 @@ namespace OpenRA.Mods.Common.Commands
|
||||
if (world.LocalPlayer == null)
|
||||
return;
|
||||
|
||||
if (!world.AllowDevCommands)
|
||||
if (!developerMode.Enabled)
|
||||
{
|
||||
Game.Debug("Cheats are disabled.");
|
||||
return;
|
||||
|
||||
@@ -97,11 +97,12 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
public void ResolveOrder(Actor self, Order order)
|
||||
{
|
||||
if (!self.World.AllowDevCommands)
|
||||
return;
|
||||
|
||||
if (order.OrderString == "DevLevelUp")
|
||||
{
|
||||
var developerMode = self.Owner.PlayerActor.Trait<DeveloperMode>();
|
||||
if (!developerMode.Enabled)
|
||||
return;
|
||||
|
||||
if ((int)order.ExtraData > 0)
|
||||
GiveLevels((int)order.ExtraData);
|
||||
else
|
||||
|
||||
@@ -125,7 +125,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
public override int GetBuildTime(ActorInfo unit, BuildableInfo bi = null)
|
||||
{
|
||||
if (self.World.AllowDevCommands && self.Owner.PlayerActor.Trait<DeveloperMode>().FastBuild)
|
||||
if (developerMode.FastBuild)
|
||||
return 0;
|
||||
|
||||
var time = unit.GetBuildTime() * Info.BuildSpeed / 100;
|
||||
|
||||
@@ -204,7 +204,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
public virtual IEnumerable<ActorInfo> AllItems()
|
||||
{
|
||||
if (self.World.AllowDevCommands && developerMode.AllTech)
|
||||
if (developerMode.AllTech)
|
||||
return producible.Keys;
|
||||
|
||||
return allProducibles;
|
||||
@@ -214,7 +214,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
{
|
||||
if (!Enabled)
|
||||
return Enumerable.Empty<ActorInfo>();
|
||||
if (self.World.AllowDevCommands && developerMode.AllTech)
|
||||
if (developerMode.AllTech)
|
||||
return producible.Keys;
|
||||
|
||||
return buildableProducibles;
|
||||
@@ -226,7 +226,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
if (!producible.TryGetValue(actor, out ps))
|
||||
return false;
|
||||
|
||||
return ps.Buildable || (self.World.AllowDevCommands && developerMode.AllTech);
|
||||
return ps.Buildable || developerMode.AllTech;
|
||||
}
|
||||
|
||||
public virtual void Tick(Actor self)
|
||||
@@ -316,7 +316,7 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
public virtual int GetBuildTime(ActorInfo unit, BuildableInfo bi = null)
|
||||
{
|
||||
if (self.World.AllowDevCommands && self.Owner.PlayerActor.Trait<DeveloperMode>().FastBuild)
|
||||
if (developerMode.FastBuild)
|
||||
return 0;
|
||||
|
||||
var time = unit.GetBuildTime() * Info.BuildSpeed / 100;
|
||||
|
||||
Reference in New Issue
Block a user