Change mechanics to repair ally-owned husks.

Now uses the goldwrench cursor and keeps the
original owner.
This commit is contained in:
Paul Chote
2018-11-25 09:56:38 +00:00
committed by Oliver Brakmann
parent 89161b61ec
commit 8a95241fd5
5 changed files with 43 additions and 6 deletions

View File

@@ -18,11 +18,14 @@ using OpenRA.Traits;
namespace OpenRA.Mods.Cnc.Traits namespace OpenRA.Mods.Cnc.Traits
{ {
[Desc("This structure can be infiltrated causing funds to be stolen.")] [Desc("Transform into a different actor type.")]
class InfiltrateForTransformInfo : ITraitInfo class InfiltrateForTransformInfo : ITraitInfo
{ {
[ActorReference, FieldLoader.Require] public readonly string IntoActor = null; [ActorReference, FieldLoader.Require]
public readonly string IntoActor = null;
public readonly int ForceHealthPercentage = 0; public readonly int ForceHealthPercentage = 0;
public readonly bool SkipMakeAnims = true; public readonly bool SkipMakeAnims = true;
public readonly BitSet<TargetableType> Types = default(BitSet<TargetableType>); public readonly BitSet<TargetableType> Types = default(BitSet<TargetableType>);
@@ -46,10 +49,17 @@ namespace OpenRA.Mods.Cnc.Traits
if (!info.Types.Overlaps(types)) if (!info.Types.Overlaps(types))
return; return;
var transform = new Transform(self, info.IntoActor)
{
ForceHealthPercentage = info.ForceHealthPercentage,
Faction = faction,
SkipMakeAnims = info.SkipMakeAnims
};
var facing = self.TraitOrDefault<IFacing>(); var facing = self.TraitOrDefault<IFacing>();
var transform = new Transform(self, info.IntoActor) { ForceHealthPercentage = info.ForceHealthPercentage, Faction = faction }; if (facing != null)
if (facing != null) transform.Facing = facing.Facing; transform.Facing = facing.Facing;
transform.SkipMakeAnims = info.SkipMakeAnims;
self.CancelActivity(); self.CancelActivity();
self.QueueActivity(transform); self.QueueActivity(transform);
} }

View File

@@ -185,6 +185,7 @@ PBOX:
Image: 4TNK Image: 4TNK
-Capturable: -Capturable:
-TransformOnCapture: -TransformOnCapture:
-InfiltrateForTransform:
DOME.NoInfiltrate: DOME.NoInfiltrate:
Inherits: DOME Inherits: DOME

View File

@@ -961,9 +961,12 @@
CaptureManager: CaptureManager:
Capturable: Capturable:
Types: husk Types: husk
ValidStances: Enemy, Neutral, Ally ValidStances: Enemy, Neutral
TransformOnCapture: TransformOnCapture:
ForceHealthPercentage: 25 ForceHealthPercentage: 25
InfiltrateForTransform:
Types: Husk
ForceHealthPercentage: 25
WithColoredOverlay@IDISABLE: WithColoredOverlay@IDISABLE:
Palette: disabled Palette: disabled
Targetable: Targetable:

View File

@@ -6,6 +6,8 @@
Anim: turret Anim: turret
TransformOnCapture: TransformOnCapture:
IntoActor: 1tnk IntoActor: 1tnk
InfiltrateForTransform:
IntoActor: 1tnk
RenderSprites: RenderSprites:
Image: 1tnk.destroyed Image: 1tnk.destroyed
@@ -17,6 +19,8 @@
Anim: turret Anim: turret
TransformOnCapture: TransformOnCapture:
IntoActor: 2tnk IntoActor: 2tnk
InfiltrateForTransform:
IntoActor: 2tnk
RenderSprites: RenderSprites:
Image: 2tnk.destroyed Image: 2tnk.destroyed
@@ -28,6 +32,8 @@
Anim: turret Anim: turret
TransformOnCapture: TransformOnCapture:
IntoActor: 3tnk IntoActor: 3tnk
InfiltrateForTransform:
IntoActor: 3tnk
RenderSprites: RenderSprites:
Image: 3tnk.destroyed Image: 3tnk.destroyed
@@ -39,6 +45,8 @@
Anim: turret Anim: turret
TransformOnCapture: TransformOnCapture:
IntoActor: 4tnk IntoActor: 4tnk
InfiltrateForTransform:
IntoActor: 4tnk
RenderSprites: RenderSprites:
Image: 4tnk.destroyed Image: 4tnk.destroyed
@@ -48,6 +56,8 @@ HARV.FullHusk:
Name: Husk (Ore Truck) Name: Husk (Ore Truck)
TransformOnCapture: TransformOnCapture:
IntoActor: harv IntoActor: harv
InfiltrateForTransform:
IntoActor: harv
RenderSprites: RenderSprites:
Image: hhusk Image: hhusk
@@ -57,6 +67,8 @@ HARV.EmptyHusk:
Name: Husk (Ore Truck) Name: Husk (Ore Truck)
TransformOnCapture: TransformOnCapture:
IntoActor: harv IntoActor: harv
InfiltrateForTransform:
IntoActor: harv
RenderSprites: RenderSprites:
Image: hhusk2 Image: hhusk2
@@ -66,6 +78,8 @@ MCV.Husk:
Name: Husk (Mobile Construction Vehicle) Name: Husk (Mobile Construction Vehicle)
TransformOnCapture: TransformOnCapture:
IntoActor: mcv IntoActor: mcv
InfiltrateForTransform:
IntoActor: mcv
RenderSprites: RenderSprites:
Image: mcvhusk Image: mcvhusk
@@ -78,6 +92,8 @@ MGG.Husk:
Offset: -299,0,171 Offset: -299,0,171
TransformOnCapture: TransformOnCapture:
IntoActor: mgg IntoActor: mgg
InfiltrateForTransform:
IntoActor: mgg
RenderSprites: RenderSprites:
Image: mgg.destroyed Image: mgg.destroyed
@@ -112,6 +128,7 @@ TRAN.Husk1:
Image: tran1husk Image: tran1husk
-Capturable: -Capturable:
-TransformOnCapture: -TransformOnCapture:
-InfiltrateForTransform:
TRAN.Husk2: TRAN.Husk2:
Inherits: ^Husk Inherits: ^Husk
@@ -121,6 +138,7 @@ TRAN.Husk2:
Image: tran2husk Image: tran2husk
-Capturable: -Capturable:
-TransformOnCapture: -TransformOnCapture:
-InfiltrateForTransform:
BADR.Husk: BADR.Husk:
Inherits: ^PlaneHusk Inherits: ^PlaneHusk

View File

@@ -450,6 +450,11 @@ MECH:
Captures: Captures:
CaptureTypes: husk CaptureTypes: husk
PlayerExperience: 25 PlayerExperience: 25
Infiltrates:
Types: Husk
ValidStances: Ally
EnterCursor: goldwrench
PlayerExperience: 25
WithInfantryBody: WithInfantryBody:
IdleSequences: idle IdleSequences: idle
DefaultAttackSequence: repair DefaultAttackSequence: repair