Rename BridgeHut to LegacyBridgeHut.

This commit is contained in:
Paul Chote
2016-11-11 18:12:16 +00:00
parent e2322c9c53
commit a5549d3944
8 changed files with 35 additions and 29 deletions

View File

@@ -16,27 +16,27 @@ namespace OpenRA.Mods.Common.Activities
{
class RepairBridge : Enter
{
readonly BridgeHut hut;
readonly LegacyBridgeHut legacyHut;
readonly string notification;
public RepairBridge(Actor self, Actor target, EnterBehaviour enterBehaviour, string notification)
: base(self, target, enterBehaviour)
{
hut = target.Trait<BridgeHut>();
legacyHut = target.Trait<LegacyBridgeHut>();
this.notification = notification;
}
protected override bool CanReserve(Actor self)
{
return hut.BridgeDamageState != DamageState.Undamaged && !hut.Repairing && hut.Bridge.GetHut(0) != null && hut.Bridge.GetHut(1) != null;
return legacyHut.BridgeDamageState != DamageState.Undamaged && !legacyHut.Repairing && legacyHut.Bridge.GetHut(0) != null && legacyHut.Bridge.GetHut(1) != null;
}
protected override void OnInside(Actor self)
{
if (hut.BridgeDamageState == DamageState.Undamaged || hut.Repairing || hut.Bridge.GetHut(0) == null || hut.Bridge.GetHut(1) == null)
if (legacyHut.BridgeDamageState == DamageState.Undamaged || legacyHut.Repairing || legacyHut.Bridge.GetHut(0) == null || legacyHut.Bridge.GetHut(1) == null)
return;
hut.Repair(self);
legacyHut.Repair(self);
Game.Sound.PlayNotification(self.World.Map.Rules, self.Owner, "Speech", notification, self.Owner.Faction.InternalName);
}

View File

@@ -274,7 +274,7 @@
<Compile Include="Traits\Buildings\BaseProvider.cs" />
<Compile Include="Traits\Buildings\Bib.cs" />
<Compile Include="Traits\Buildings\Bridge.cs" />
<Compile Include="Traits\Buildings\BridgeHut.cs" />
<Compile Include="Traits\Buildings\LegacyBridgeHut.cs" />
<Compile Include="Traits\Buildings\Building.cs" />
<Compile Include="Traits\Buildings\BuildingInfluence.cs" />
<Compile Include="Traits\Buildings\BuildingUtils.cs" />

View File

@@ -78,7 +78,7 @@ namespace OpenRA.Mods.Common.Traits
{
readonly BuildingInfo building;
readonly Bridge[] neighbours = new Bridge[2];
readonly BridgeHut[] huts = new BridgeHut[2]; // Huts before this / first & after this / last
readonly LegacyBridgeHut[] huts = new LegacyBridgeHut[2]; // Huts before this / first & after this / last
readonly Health health;
readonly Actor self;
readonly BridgeInfo info;
@@ -88,7 +88,7 @@ namespace OpenRA.Mods.Common.Traits
ushort template;
Dictionary<CPos, byte> footprint;
public BridgeHut Hut { get; private set; }
public LegacyBridgeHut Hut { get; private set; }
public bool IsDangling { get { return isDangling.Value; } }
public Bridge(Actor self, BridgeInfo info)
@@ -152,7 +152,7 @@ namespace OpenRA.Mods.Common.Traits
}
}
internal void AddHut(BridgeHut hut)
internal void AddHut(LegacyBridgeHut hut)
{
// TODO: This method is incomprehensible and fragile, and should be rewritten.
if (huts[0] == huts[1])
@@ -170,7 +170,7 @@ namespace OpenRA.Mods.Common.Traits
Hut = null;
}
public BridgeHut GetHut(int index) { return huts[index]; }
public LegacyBridgeHut GetHut(int index) { return huts[index]; }
public Bridge GetNeighbor(int[] offset, BridgeLayer bridges)
{
if (offset == null)

View File

@@ -15,14 +15,14 @@ using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits
{
[Desc("Allows bridges to be targeted for demolition and repair.")]
class BridgeHutInfo : IDemolishableInfo, ITraitInfo
class LegacyBridgeHutInfo : IDemolishableInfo, ITraitInfo
{
public bool IsValidTarget(ActorInfo actorInfo, Actor saboteur) { return false; } // TODO: bridges don't support frozen under fog
public object Create(ActorInitializer init) { return new BridgeHut(init); }
public object Create(ActorInitializer init) { return new LegacyBridgeHut(init); }
}
class BridgeHut : IDemolishable
class LegacyBridgeHut : IDemolishable
{
public readonly Bridge FirstBridge;
public readonly Bridge Bridge;
@@ -30,7 +30,7 @@ namespace OpenRA.Mods.Common.Traits
public bool Repairing { get { return repairDirections > 0; } }
int repairDirections = 0;
public BridgeHut(ActorInitializer init)
public LegacyBridgeHut(ActorInitializer init)
{
Bridge = init.Get<ParentActorInit>().ActorValue.Trait<Bridge>();
Bridge.AddHut(this);

View File

@@ -17,7 +17,7 @@ using OpenRA.Traits;
namespace OpenRA.Mods.Common.Traits
{
[Desc("Can enter a BridgeHut to trigger a repair.")]
[Desc("Can enter a LegacyBridgeHut to trigger a repair.")]
class RepairsBridgesInfo : ITraitInfo
{
[VoiceReference] public readonly string Voice = "Action";
@@ -26,7 +26,7 @@ namespace OpenRA.Mods.Common.Traits
"Possible values are Exit, Suicide, Dispose.")]
public readonly EnterBehaviour EnterBehaviour = EnterBehaviour.Dispose;
[Desc("Cursor to use when targeting a BridgeHut of an unrepaired bridge.")]
[Desc("Cursor to use when targeting a LegacyBridgeHut of an unrepaired bridge.")]
public readonly string TargetCursor = "goldwrench";
[Desc("Cursor to use when repairing is denied.")]
@@ -65,22 +65,22 @@ namespace OpenRA.Mods.Common.Traits
if (order.OrderString != "RepairBridge")
return null;
var hut = order.TargetActor.TraitOrDefault<BridgeHut>();
if (hut == null)
var legacyHut = order.TargetActor.TraitOrDefault<LegacyBridgeHut>();
if (legacyHut == null)
return null;
return hut.BridgeDamageState == DamageState.Undamaged || hut.Repairing || hut.Bridge.IsDangling ? null : info.Voice;
return legacyHut.BridgeDamageState == DamageState.Undamaged || legacyHut.Repairing || legacyHut.Bridge.IsDangling ? null : info.Voice;
}
public void ResolveOrder(Actor self, Order order)
{
if (order.OrderString == "RepairBridge")
{
var hut = order.TargetActor.TraitOrDefault<BridgeHut>();
if (hut == null)
var legacyHut = order.TargetActor.TraitOrDefault<LegacyBridgeHut>();
if (legacyHut == null)
return;
if (hut.BridgeDamageState == DamageState.Undamaged || hut.Repairing || hut.Bridge.IsDangling)
if (legacyHut.BridgeDamageState == DamageState.Undamaged || legacyHut.Repairing || legacyHut.Bridge.IsDangling)
return;
self.SetTargetLine(Target.FromOrder(self.World, order), Color.Yellow);
@@ -102,12 +102,12 @@ namespace OpenRA.Mods.Common.Traits
public override bool CanTargetActor(Actor self, Actor target, TargetModifiers modifiers, ref string cursor)
{
var hut = target.TraitOrDefault<BridgeHut>();
if (hut == null)
var legacyHut = target.TraitOrDefault<LegacyBridgeHut>();
if (legacyHut == null)
return false;
// Require force attack to heal partially damaged bridges to avoid unnecessary cursor noise
var damage = hut.BridgeDamageState;
var damage = legacyHut.BridgeDamageState;
if (!modifiers.HasModifier(TargetModifiers.ForceAttack) && damage != DamageState.Dead)
return false;
@@ -116,7 +116,7 @@ namespace OpenRA.Mods.Common.Traits
return false;
// Can't repair a bridge that is undamaged, already under repair, or dangling
if (damage == DamageState.Undamaged || hut.Repairing || hut.Bridge.IsDangling)
if (damage == DamageState.Undamaged || legacyHut.Repairing || legacyHut.Bridge.IsDangling)
cursor = info.TargetBlockedCursor;
return true;

View File

@@ -532,6 +532,12 @@ namespace OpenRA.Mods.Common.UtilityCommands
}
}
if (engineVersion < 20161210)
{
if (node.Key == "BridgeHut")
RenameNodeKey(node, "LegacyBridgeHut");
}
UpgradeActorRules(modData, engineVersion, ref node.Value.Nodes, node, depth + 1);
}

View File

@@ -448,7 +448,7 @@ BRIDGEHUT:
Dimensions: 2,2
CustomSelectionSize:
CustomBounds: 48,48
BridgeHut:
LegacyBridgeHut:
Targetable:
TargetTypes: BridgeHut, C4

View File

@@ -522,7 +522,7 @@ BRIDGEHUT:
Selectable:
Bounds: 48,48
Priority: 2
BridgeHut:
LegacyBridgeHut:
Targetable:
TargetTypes: BridgeHut, C4
@@ -534,7 +534,7 @@ BRIDGEHUT.small:
Selectable:
Bounds: 24,24
Priority: 2
BridgeHut:
LegacyBridgeHut:
Targetable:
TargetTypes: BridgeHut, C4