diff --git a/OpenRA.Mods.RA/Activities/Transform.cs b/OpenRA.Mods.RA/Activities/Transform.cs index 24718714b8..09a90e3614 100644 --- a/OpenRA.Mods.RA/Activities/Transform.cs +++ b/OpenRA.Mods.RA/Activities/Transform.cs @@ -21,6 +21,7 @@ namespace OpenRA.Mods.RA.Activities public int Facing = 96; public string[] Sounds = {}; public int ForceHealthPercentage = 0; + public bool SkipMakeAnims = false; public Transform(Actor self, string toActor) { @@ -45,6 +46,9 @@ namespace OpenRA.Mods.RA.Activities new OwnerInit( self.Owner ), new FacingInit( Facing ), }; + + if (SkipMakeAnims) init.Add(new SkipMakeAnimsInit()); + var health = self.TraitOrDefault(); if (health != null) { diff --git a/OpenRA.Mods.RA/EmitCargoOnSell.cs b/OpenRA.Mods.RA/EmitCargoOnSell.cs new file mode 100644 index 0000000000..73975b2aa8 --- /dev/null +++ b/OpenRA.Mods.RA/EmitCargoOnSell.cs @@ -0,0 +1,33 @@ +#region Copyright & License Information +/* + * Copyright 2007-2011 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, + * see COPYING. + */ +#endregion + +using System.Linq; +using OpenRA.FileFormats; +using OpenRA.Traits; + +namespace OpenRA.Mods.RA +{ + // for some reason i get yelled at for pbox.e1 not having Cargo, but that's a lie? + class EmitCargoOnSellInfo : TraitInfo//, Requires + { + } + + class EmitCargoOnSell : INotifySold + { + void Emit(Actor self) + { + // todo. + // would like to spill all actors out similar to how we call Unload + } + + public void Selling(Actor self) { Emit(self); } + public void Sold(Actor self) { } + } +} diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index cc0cd1876f..3c07c8ae01 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -1,4 +1,4 @@ - + Debug @@ -186,6 +186,7 @@ + diff --git a/OpenRA.Mods.RA/TransformOnPassenger.cs b/OpenRA.Mods.RA/TransformOnPassenger.cs index 1257bb7e70..d8a9b30c57 100644 --- a/OpenRA.Mods.RA/TransformOnPassenger.cs +++ b/OpenRA.Mods.RA/TransformOnPassenger.cs @@ -20,6 +20,7 @@ namespace OpenRA.Mods.RA [ActorReference] public readonly string[] PassengerTypes = {}; [ActorReference] public readonly string OnEnter = null; [ActorReference] public readonly string OnExit = null; + public readonly bool SkipMakeAnims = false; public object Create(ActorInitializer init) { return new TransformOnPassenger(this); } } @@ -36,8 +37,12 @@ namespace OpenRA.Mods.RA { self.World.AddFrameEndTask( w => { + var facing = self.TraitOrDefault(); + var transform = new Transform(self, transformTo) { SkipMakeAnims = info.SkipMakeAnims }; + if (facing != null) transform.Facing = facing.Facing; + self.CancelActivity(); - self.QueueActivity( new Transform(self, transformTo) { Facing = self.Trait().Facing } ); + self.QueueActivity(transform); }); } } diff --git a/mods/ra/rules/structures.yaml b/mods/ra/rules/structures.yaml index 5c6c46382d..05353177a9 100644 --- a/mods/ra/rules/structures.yaml +++ b/mods/ra/rules/structures.yaml @@ -363,45 +363,146 @@ DOME: PBOX: Inherits: ^Building - Buildable: - Queue: Defense - BuildPaletteOrder: 20 - Prerequisites: tent - Owner: allies - Hotkey: p - Valued: - Cost: 400 Tooltip: - Name: Pillbox - Description: Basic defensive structure.\n Strong vs Infantry, Light Vehicles\n Weak vs Tanks, Aircraft + Name: Pillbox (Unarmed) Building: Power: -15 -GivesBuildableArea: + Valued: + Cost: 400 Health: HP: 400 Armor: Type: Wood RevealsShroud: Range: 6 + IronCurtainable: + -AcceptsSupplies: + Turreted: + ROT: 255 + Cargo: + Types: Infantry + MaxWeight: 1 + PipCount: 1 + -EmitInfantryOnSell: +# EmitCargoOnSell: + TransformOnPassenger@e1: + PassengerTypes: e1 + OnEnter: pbox.e1 + OnExit: pbox + SkipMakeAnims: true +# TransformOnPassenger@e2: +# PassengerTypes: e2 +# OnEnter: pbox.e2 +# OnExit: pbox +# SkipMakeAnims: true + TransformOnPassenger@e3: + PassengerTypes: e3 + OnEnter: pbox.e3 + OnExit: pbox + SkipMakeAnims: true + TransformOnPassenger@e4: + PassengerTypes: e4 + OnEnter: pbox.e4 + OnExit: pbox + SkipMakeAnims: true + TransformOnPassenger@e7: + PassengerTypes: e7 + OnEnter: pbox.e7 + OnExit: pbox + SkipMakeAnims: true + TransformOnPassenger@SHOK: + PassengerTypes: shok + OnEnter: pbox.shok + OnExit: pbox + SkipMakeAnims: true + +PBOX.E1: + Inherits: PBOX + Buildable: + Queue: Defense + BuildPaletteOrder: 20 + Prerequisites: tent + Owner: allies + Hotkey: p + Tooltip: + Name: Pillbox (Guns) + Description: Basic defensive structure.\n Strong vs Infantry, Light Vehicles\n Weak vs Tanks, Aircraft + Icon: PBOXICON + RenderBuilding: + Image: PBOX + RenderRangeCircle: + AutoTarget: AttackTurreted: PrimaryWeapon: Vulcan PrimaryLocalOffset: 0,-11,0,0,0 - AutoTarget: - IronCurtainable: - RenderRangeCircle: - -AcceptsSupplies: WithMuzzleFlash: - Turreted: - ROT: 255 + Cargo: + InitialUnits: e1 + +#PBOX.E2: +# Inherits: PBOX +# Tooltip: +# Name: Pillbox (Grenades) +# RenderBuilding: +# Image: PBOX + +PBOX.E3: + Inherits: PBOX + Tooltip: + Name: Pillbox (Rockets) + RenderBuilding: + Image: PBOX + RenderRangeCircle: + AutoTarget: + AttackTurreted: + PrimaryWeapon: Dragon + PrimaryLocalOffset: 0,-11,0,0,0 + +PBOX.E4: + Inherits: PBOX + Tooltip: + Name: Pillbox (Flamethrower) + RenderBuilding: + Image: PBOX + RenderRangeCircle: + AutoTarget: + AttackTurreted: + PrimaryWeapon: Flamer + PrimaryLocalOffset: 0,-11,0,0,0 + +PBOX.E7: + Inherits: PBOX + Tooltip: + Name: Pillbox (Tanya) + RenderBuilding: + Image: PBOX + RenderRangeCircle: + AutoTarget: + AttackTurreted: + PrimaryWeapon: Colt45 + PrimaryLocalOffset: 0,-11,0,0,0 + +PBOX.SHOK: + Inherits: PBOX + Tooltip: + Name: Pillbox (Tesla) + RenderBuilding: + Image: PBOX + RenderRangeCircle: + AutoTarget: + AttackTurreted: + PrimaryWeapon: PortaTesla + PrimaryLocalOffset: 0,-11,0,0,0 HBOX: Inherits: ^Building - Buildable: - Queue: Defense - BuildPaletteOrder: 30 - Prerequisites: tent - Owner: allies - Hotkey: c +# Buildable: +# Queue: Defense +# BuildPaletteOrder: 30 +# Prerequisites: tent +# Owner: allies +# Hotkey: c Valued: Cost: 600 Tooltip: diff --git a/mods/ra/weapons.yaml b/mods/ra/weapons.yaml index 10adee7935..2957425ad7 100644 --- a/mods/ra/weapons.yaml +++ b/mods/ra/weapons.yaml @@ -39,6 +39,7 @@ Vulcan: Report: GUN13 Projectile: Bullet Speed: 100 + ContrailLength: 1000 Warhead@1: Spread: 3 Versus: @@ -48,7 +49,7 @@ Vulcan: Concrete: 25% Explosion: piffs InfDeath: 1 - Damage: 7 + Damage: 10 Warhead@2: Spread: 3 Versus: @@ -58,8 +59,8 @@ Vulcan: Concrete: 25% Explosion: piffs InfDeath: 1 - Damage: 5 - Delay: 7 + Damage: 10 + Delay: 2 Warhead@3: Spread: 3 Versus: @@ -69,7 +70,7 @@ Vulcan: Concrete: 25% Explosion: piffs InfDeath: 1 - Damage: 7 + Damage: 10 Delay: 4 Warhead@4: Spread: 3 @@ -80,7 +81,7 @@ Vulcan: Concrete: 25% Explosion: piffs InfDeath: 1 - Damage: 7 + Damage: 10 Delay: 6 Warhead@5: Spread: 3 @@ -91,7 +92,7 @@ Vulcan: Concrete: 25% Explosion: piffs InfDeath: 1 - Damage: 7 + Damage: 10 Delay: 8 Warhead@6: Spread: 3 @@ -102,7 +103,7 @@ Vulcan: Concrete: 25% Explosion: piffs InfDeath: 1 - Damage: 7 + Damage: 10 Delay: 10 Maverick: