Merge pull request #5631 from pavlos256/dev-iddqd

Add "/all" dev command
This commit is contained in:
Matthias Mailänder
2014-06-14 10:27:58 +02:00
5 changed files with 56 additions and 31 deletions

View File

@@ -1,6 +1,6 @@
#region Copyright & License Information
/*
* Copyright 2007-2011 The OpenRA Developers (see AUTHORS)
* Copyright 2007-2014 The OpenRA Developers (see AUTHORS)
* This file is part of OpenRA, which is free software. It is made
* available to you under the terms of the GNU General Public License
* as published by the Free Software Foundation. For more information,
@@ -14,16 +14,16 @@ namespace OpenRA.Traits
{
public int Cash = 20000;
public int ResourceGrowth = 100;
public bool FastBuild = false;
public bool FastCharge = false;
public bool DisableShroud = false;
public bool PathDebug = false;
public bool FastBuild;
public bool FastCharge;
public bool DisableShroud;
public bool PathDebug;
public bool UnlimitedPower;
public bool BuildAnywhere;
public bool ShowCombatGeometry;
public bool ShowDebugGeometry;
public object Create (ActorInitializer init) { return new DeveloperMode(this); }
public object Create(ActorInitializer init) { return new DeveloperMode(this); }
}
public class DeveloperMode : IResolveOrder, ISync
@@ -37,7 +37,7 @@ namespace OpenRA.Traits
[Sync] public bool UnlimitedPower;
[Sync] public bool BuildAnywhere;
// Client size only
// Client side only
public bool ShowCombatGeometry;
public bool ShowDebugGeometry;
@@ -54,9 +54,10 @@ namespace OpenRA.Traits
ShowDebugGeometry = info.ShowDebugGeometry;
}
public void ResolveOrder (Actor self, Order order)
public void ResolveOrder(Actor self, Order order)
{
if (!self.World.LobbyInfo.GlobalSettings.AllowCheats) return;
if (!self.World.AllowDevCommands)
return;
switch(order.OrderString)
{
@@ -65,22 +66,26 @@ namespace OpenRA.Traits
AllTech ^= true;
break;
}
case "DevFastCharge":
{
FastCharge ^= true;
break;
}
case "DevFastBuild":
{
FastBuild ^= true;
break;
}
case "DevGiveCash":
{
var amount = order.ExtraData != 0 ? (int)order.ExtraData : Info.Cash;
self.Trait<PlayerResources>().GiveCash(amount);
break;
}
case "DevGrowResources":
{
foreach (var a in self.World.ActorsWithTrait<ISeedableResource>())
@@ -90,6 +95,7 @@ namespace OpenRA.Traits
}
break;
}
case "DevShroudDisable":
{
DisableShroud ^= true;
@@ -98,38 +104,42 @@ namespace OpenRA.Traits
self.World.RenderPlayer = DisableShroud ? null : self.Owner;
break;
}
case "DevPathDebug":
{
PathDebug ^= true;
break;
}
case "DevGiveExploration":
{
self.Owner.Shroud.ExploreAll(self.World);
break;
}
case "DevResetExploration":
{
self.Owner.Shroud.ResetExploration();
break;
}
case "DevUnlimitedPower":
{
UnlimitedPower ^= true;
break;
}
case "DevBuildAnywhere":
{
BuildAnywhere ^= true;
break;
}
default:
return;
}
Game.Debug("Cheat used: {0} by {1}"
.F(order.OrderString, self.Owner.PlayerName));
Game.Debug("Cheat used: {0} by {1}".F(order.OrderString, self.Owner.PlayerName));
}
}
}

View File

@@ -71,6 +71,11 @@ namespace OpenRA
get { return orderManager.Connection is ReplayConnection; }
}
public bool AllowDevCommands
{
get { return LobbyInfo.GlobalSettings.AllowCheats || LobbyInfo.IsSinglePlayer; }
}
public void SetLocalPlayer(string pr)
{
if (IsReplay)