diff --git a/OpenRA.Mods.Common/Traits/Buildings/Exit.cs b/OpenRA.Mods.Common/Traits/Buildings/Exit.cs index 9f1695ff45..54b35ac4a9 100644 --- a/OpenRA.Mods.Common/Traits/Buildings/Exit.cs +++ b/OpenRA.Mods.Common/Traits/Buildings/Exit.cs @@ -26,6 +26,9 @@ namespace OpenRA.Mods.Common.Traits [Desc("AttackMove to a RallyPoint or stay where you are spawned.")] public readonly bool MoveIntoWorld = true; + + [Desc("Number of ticks to wait before moving into the world.")] + public readonly int ExitDelay = 0; } public class Exit { } diff --git a/OpenRA.Mods.Common/Traits/Production.cs b/OpenRA.Mods.Common/Traits/Production.cs index d143263bba..a07d97e7f8 100644 --- a/OpenRA.Mods.Common/Traits/Production.cs +++ b/OpenRA.Mods.Common/Traits/Production.cs @@ -77,6 +77,9 @@ namespace OpenRA.Mods.Common.Traits { if (exitinfo.MoveIntoWorld) { + if (exitinfo.ExitDelay > 0) + newUnit.QueueActivity(new Wait(exitinfo.ExitDelay)); + newUnit.QueueActivity(move.MoveIntoWorld(newUnit, exit)); newUnit.QueueActivity(new AttackMoveActivity( newUnit, move.MoveTo(exitLocation, 1))); diff --git a/mods/cnc/rules/structures.yaml b/mods/cnc/rules/structures.yaml index 4cae60fd46..2d4acb8695 100644 --- a/mods/cnc/rules/structures.yaml +++ b/mods/cnc/rules/structures.yaml @@ -370,6 +370,7 @@ WEAP: Exit@1: SpawnOffset: -341,-341,0 ExitCell: 0,2 + ExitDelay: 3 Production: Produces: Vehicle.GDI ProductionQueue: diff --git a/mods/cnc/sequences/structures.yaml b/mods/cnc/sequences/structures.yaml index 2a33aff6c9..9424e0d78f 100644 --- a/mods/cnc/sequences/structures.yaml +++ b/mods/cnc/sequences/structures.yaml @@ -144,9 +144,11 @@ weap: Tick: 800 build-top: weap2 Length: 10 + ZOffset: -1024 damaged-build-top: weap2 Start: 10 Length: 10 + ZOffset: -1024 make: weapmake Length: * Tick: 80 diff --git a/mods/ts/rules/gdi-structures.yaml b/mods/ts/rules/gdi-structures.yaml index a3138fcf3e..f2cba934c5 100644 --- a/mods/ts/rules/gdi-structures.yaml +++ b/mods/ts/rules/gdi-structures.yaml @@ -126,8 +126,9 @@ GAWEAP: RallyPoint: RallyPoint: 6,1 Exit@1: - SpawnOffset: 0,0,0 + SpawnOffset: -384,-384,0 ExitCell: 4,1 + ExitDelay: 5 Production: Produces: Vehicle PrimaryBuilding: diff --git a/mods/ts/rules/nod-structures.yaml b/mods/ts/rules/nod-structures.yaml index 71aa3ad2e4..b6ec13164a 100644 --- a/mods/ts/rules/nod-structures.yaml +++ b/mods/ts/rules/nod-structures.yaml @@ -133,8 +133,9 @@ NAWEAP: RallyPoint: RallyPoint: 6,1 Exit@1: - SpawnOffset: 0,0,0 + SpawnOffset: -384,-384,0 ExitCell: 4,1 + ExitDelay: 5 Production: Produces: Vehicle PrimaryBuilding: diff --git a/mods/ts/sequences/structures.yaml b/mods/ts/sequences/structures.yaml index e55672301a..7e07b2c06e 100644 --- a/mods/ts/sequences/structures.yaml +++ b/mods/ts/sequences/structures.yaml @@ -138,9 +138,11 @@ gaweap: UseTilesetCode: true idle: gtweap_1 ShadowStart: 2 + ZOffset: -1024 damaged-idle: gtweap_1 Start: 1 ShadowStart: 3 + ZOffset: -1024 idle-roof: gtweap_2 ShadowStart: 2 damaged-idle-roof: gtweap_2 @@ -188,12 +190,15 @@ gaweap: ShadowStart: 20 bib: gtweapbb Length: 1 + ZOffset: -1024 damaged-bib: gtweapbb Start: 1 Length: 1 + ZOffset: -1024 dead-bib: gtweapbb Start: 2 Length: 1 + ZOffset: -1024 icon: weapicon Offset: 0, 0 UseTilesetCode: false @@ -292,14 +297,18 @@ naweap: UseTilesetCode: true idle: ntweap_1 ShadowStart: 2 + ZOffset: -1024 damaged-idle: ntweap_1 Start: 1 ShadowStart: 3 + ZOffset: -1024 idle-roof: ntweap_2 ShadowStart: 2 + ZOffset: 512 damaged-idle-roof: ntweap_2 Start: 1 ShadowStart: 3 + ZOffset: 512 dead: ntweap Start: 2 ShadowStart: 5 @@ -316,19 +325,24 @@ naweap: build-door: ntweap_b Length: 10 ShadowStart: 10 + ZOffset: 512 damaged-build-door: ntweap_b Start: 10 Length: 10 ShadowStart: 20 + ZOffset: 512 make: ntweapmk Length: 22 Tick: 80 ShadowStart: 22 bib: ntweapbb + ZOffset: -1024 damaged-bib: ntweapbb Start: 1 + ZOffset: -1024 dead-bib: ntweapbb Start: 2 + ZOffset: -1024 icon: nwepicon Offset: 0, 0 UseTilesetCode: false