diff --git a/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs b/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs index 291d163308..567f41baeb 100644 --- a/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs +++ b/OpenRA.Mods.Cnc/Traits/SupportPowers/IonCannonPower.cs @@ -35,6 +35,7 @@ namespace OpenRA.Mods.Cnc.Traits [Desc("Apply the weapon impact this many ticks into the effect")] public readonly int WeaponDelay = 7; + public readonly string Cursor = "ioncannon"; public override object Create(ActorInitializer init) { return new IonCannonPower(init.Self, this); } } @@ -45,7 +46,8 @@ namespace OpenRA.Mods.Cnc.Traits public override IOrderGenerator OrderGenerator(string order, SupportPowerManager manager) { Sound.PlayToPlayer(manager.Self.Owner, Info.SelectTargetSound); - return new SelectGenericPowerTarget(order, manager, "ioncannon", MouseButton.Left); + var info = Info as IonCannonPowerInfo; + return new SelectGenericPowerTarget(order, manager, info.Cursor, MouseButton.Left); } public override void Activate(Actor self, Order order, SupportPowerManager manager) diff --git a/OpenRA.Mods.Common/Traits/SupportPowers/NukePower.cs b/OpenRA.Mods.Common/Traits/SupportPowers/NukePower.cs index 3efdae40cf..7c0d0cc6ce 100644 --- a/OpenRA.Mods.Common/Traits/SupportPowers/NukePower.cs +++ b/OpenRA.Mods.Common/Traits/SupportPowers/NukePower.cs @@ -45,6 +45,8 @@ namespace OpenRA.Mods.Common.Traits [Desc("Amount of time after detonation to remove the camera")] public readonly int CameraRemoveDelay = 25; + public readonly string Cursor = "nuke"; + public override object Create(ActorInitializer init) { return new NukePower(init.Self, this); } } @@ -61,7 +63,8 @@ namespace OpenRA.Mods.Common.Traits public override IOrderGenerator OrderGenerator(string order, SupportPowerManager manager) { Sound.PlayToPlayer(manager.Self.Owner, Info.SelectTargetSound); - return new SelectGenericPowerTarget(order, manager, "nuke", MouseButton.Left); + var info = Info as NukePowerInfo; + return new SelectGenericPowerTarget(order, manager, info.Cursor, MouseButton.Left); } public override void Activate(Actor self, Order order, SupportPowerManager manager) diff --git a/mods/ra/sequences/misc.yaml b/mods/ra/sequences/misc.yaml index 0a10f2a15c..e90826dc27 100644 --- a/mods/ra/sequences/misc.yaml +++ b/mods/ra/sequences/misc.yaml @@ -414,14 +414,6 @@ bomblet: Start: 0 Length: * -nuke: - up: atomicup - Start: 0 - Length: * - down: atomicdn - Start: 0 - Length: * - parabomb: open: Start: 0 diff --git a/mods/ts/cursors.yaml b/mods/ts/cursors.yaml index 791f002be8..60d5264acb 100644 --- a/mods/ts/cursors.yaml +++ b/mods/ts/cursors.yaml @@ -147,8 +147,11 @@ Cursors: Start: 213 Length: 1 nuke: - Start: 90 - Length: 7 + Start: 279 + Length: 20 + ioncannon: + Start: 319 + Length: 9 sell: Start: 129 Length: 10 diff --git a/mods/ts/rules/misc.yaml b/mods/ts/rules/misc.yaml index a2dfd32804..3c5d96021a 100644 --- a/mods/ts/rules/misc.yaml +++ b/mods/ts/rules/misc.yaml @@ -10,3 +10,15 @@ waypoint: RenderEditorOnly: BodyOrientation: +CAMERA: + Immobile: + OccupiesSpace: false + Health: + HP: 1000 + RevealsShroud: + Range: 10c0 + ProximityCaptor: + Types: Camera + BodyOrientation: + DetectCloaked: + Range: 10 \ No newline at end of file diff --git a/mods/ts/rules/structures.yaml b/mods/ts/rules/structures.yaml index c4e5cae5b9..4af7e0baee 100644 --- a/mods/ts/rules/structures.yaml +++ b/mods/ts/rules/structures.yaml @@ -1289,6 +1289,108 @@ NAPULS: Power: Amount: -150 +NAMISL: + Inherits: ^Building + Buildable: + Queue: Defense + BuildPaletteOrder: 100 + Owner: nod + Prerequisites: natech + BuildLimit: 1 + Valued: + Cost: 1300 + Tooltip: + Name: Nod Missile Silo + Description: Launches a devastating missile\nat a target location.\nRequires power to operate. + ProvidesCustomPrerequisite: + Prerequisite: tech + Building: + Footprint: xx xx + Dimensions: 2,2 + Selectable: + Bounds: 75,48 + Health: + HP: 1000 + Armor: + Type: Wood + RevealsShroud: + Range: 4c0 + WithIdleOverlay@LIGHTS: + Sequence: idle-lights + Power: + Amount: -50 + CanPowerDown: + RequiresPower: + DisabledOverlay: + SupportPowerChargeBar: + NukePower: + Icon: clustermissile + ChargeTime: 540 + Description: Cluster Missile + LongDesc: Launches a conventional warhead\nat a target location. + BeginChargeSound: + EndChargeSound: 00-i154.aud + SelectTargetSound: + InsufficientPowerSound: + IncomingSound: 00-i150.aud + LaunchSound: icbm1.aud + MissileWeapon: ClusterMissile + SpawnOffset: 0,427,0 + DisplayTimer: False + DisplayBeacon: False + DisplayRadarPing: True + BeaconPoster: + CameraActor: camera + +GAPLUG: + Inherits: ^Building + Valued: + Cost: 1800 + Tooltip: + Name: GDI Upgrade Center + Description: Provides the Orbital Ion Cannon support power.\nRequires power to operate. + Selectable: + Bounds: 115,120,0,-20 + Buildable: + BuildPaletteOrder: 100 + Prerequisites: proc, gatech + Queue: Defense + Building: + Footprint: xxx xxx + Dimensions: 2,3 + RequiresPower: + CanPowerDown: + DisabledOverlay: + RenderBuilding: + WithIdleOverlay@DISH: + Sequence: idle-dish + WithIdleOverlay@LIGHTS: + Sequence: idle-lights + WithIdleOverlay@STRIP: + Sequence: idle-strip + Health: + HP: 1000 + Armor: + Type: Wood + RevealsShroud: + Range: 6c0 + IonCannonPower: + Icon: ioncannon + Effect: ionbeam + ChargeTime: 180 + Description: Ion Cannon + LongDesc: Initiate an Ion Cannon strike.\nApplies instant damage to a small area. + BeginChargeSound: + EndChargeSound: 00-i156.aud + LaunchSound: + SelectTargetSound: + InsufficientPowerSound: + DisplayRadarPing: True + CameraActor: camera + SupportPowerChargeBar: + Power: + Amount: -150 + ANYPOWER: Tooltip: Name: Power Plant diff --git a/mods/ts/sequences/misc.yaml b/mods/ts/sequences/misc.yaml index 320c52464b..56c003c6b6 100644 --- a/mods/ts/sequences/misc.yaml +++ b/mods/ts/sequences/misc.yaml @@ -157,7 +157,6 @@ explosion: ionring: ring1 Start: 0 Length: * - Tick: 160 pulse_explosion: pulsefx2 Start: 0 Length: * @@ -537,3 +536,23 @@ largecraters: cr12: crater12 Length: 1 Offset: 0, -24 + +icon: + clustermissile: mltiicon + Start: 0 + ioncannon: ioncicon + Start: 0 + +clustermissile: + up: null # TODO + Start: 0 + Length: * + down: null # TODO + Start: 0 + Length: * +ionbeam: + idle: + Start: 0 + Length: * + Offset: 0, -78 + ZOffset: 1 diff --git a/mods/ts/sequences/structures.yaml b/mods/ts/sequences/structures.yaml index ea4cbb68d0..86872dd2c3 100644 --- a/mods/ts/sequences/structures.yaml +++ b/mods/ts/sequences/structures.yaml @@ -1307,3 +1307,92 @@ gadept: Offset: 0, -36 icon: fixicon Start: 0 + +namisl: + idle: ntmisl + Start: 0 + Offset: 0, -24 + damaged-idle: ntmisl + Start: 1 + Offset: 0, -24 + critical-idle: ntmisl + Start: 2 + Offset: 0, -24 + idle-lights: ntmisl_b + Start: 0 + Length: 10 + Tick: 120 + Offset: 0, -24 + damaged-idle-lights: ntmisl_b + Start: 10 + Length: 10 + Tick: 120 + Offset: 0, -24 + make: ntmislmk + Start: 0 + Length: 18 + ShadowStart: 18 + Offset: 0, -24 + active: ntmisl_a + Start: 0 + Length: 10 + Tick: 80 + Offset: 0, -24 + damaged-active: ntmisl_a + Start: 10 + Length: 10 + Tick: 80 + Offset: 0, -24 + icon: msslicon + Start: 0 + +gaplug: + idle: gaplug + Start: 0 + ShadowStart: 3 + Offset: 12, -30 + damaged-idle: gaplug + Start: 1 + ShadowStart: 4 + Offset: 12, -30 + critical-idle: gaplug + Start: 2 + ShadowStart: 5 + Offset: 12, -30 + idle-dish: gaplug_a + Start: 0 + Length: 20 + Tick: 120 + Offset: 12, -30 + damaged-idle-dish: gaplug_a + Start: 20 + Length: 20 + Tick: 120 + Offset: 12, -30 + idle-lights: gaplug_b + Start: 0 + Length: 20 + Tick: 120 + Offset: 12, -30 + damaged-idle-lights: gaplug_b + Start: 20 + Length: 20 + Tick: 120 + Offset: 12, -30 + idle-strip: gaplug_c + Start: 0 + Length: 8 + Tick: 120 + Offset: 12, -30 + damaged-idle-strip: gaplug_c + Start: 8 + Length: 8 + Tick: 120 + Offset: 12, -30 + make: gtplugmk + Start: 0 + Length: 17 + ShadowStart: 17 + Offset: 12, -30 + icon: plugicon + Start: 0 diff --git a/mods/ts/weapons.yaml b/mods/ts/weapons.yaml index bb5aca0cf0..d32b5d4e2a 100644 --- a/mods/ts/weapons.yaml +++ b/mods/ts/weapons.yaml @@ -1024,7 +1024,8 @@ IonCannon: ProneModifier: 100 ValidTargets: Ground, Air Warhead@2Eff_impact: CreateEffect - Explosion: ring1 + Explosion: ionring + ImpactSound: ion1.aud Warhead@3Dam_area: PerCellDamage Size: 2 Damage: 250 @@ -1182,3 +1183,85 @@ TiberiumExplosion: Explosion: large_explosion ImpactSound: expnew09.aud +ClusterMissile: + ValidTargets: Ground, Water, Air + Warhead@ImpactDamage0: SpreadDamage + Spread: 1c0 + Damage: 150 + Falloff: 1000, 368, 135, 50, 18, 7, 0 + DeathType: 5 + ValidTargets: Ground, Water, Air + Versus: + Concrete: 25 + Warhead@SoundEffect0: CreateEffect + Explosion: large_explosion + ImpactSound: expnew19.aud + Warhead@ResourceDestruction0: DestroyResource + Size: 1 + Warhead@ClusterSmudges0: LeaveSmudge + SmudgeType: LargeCrater + Size: 1 + Warhead@ClusterDamage1: SpreadDamage + Spread: 2c0 + Damage: 60 + Falloff: 1000, 368, 135, 50, 18, 7, 0 + DeathType: 5 + Delay: 5 + ValidTargets: Ground, Water, Air + Versus: + Concrete: 25 + Warhead@ResourceDestruction1: DestroyResource + Size: 2 + Delay: 5 + Warhead@ClusterSmudges1: LeaveSmudge + SmudgeType: LargeScorch + Size: 2 + Delay: 5 + Warhead@ClusterDamage2: SpreadDamage + Spread: 3c0 + Damage: 60 + Falloff: 1000, 368, 135, 50, 18, 7, 0 + DeathType: 5 + Delay: 10 + ValidTargets: Ground, Water, Air + Versus: + Concrete: 25 + Warhead@ResourceDestruction2: DestroyResource + Size: 3 + Delay: 10 + Warhead@ClusterSmudges2: LeaveSmudge + SmudgeType: LargeScorch + Size: 3 + Delay: 10 + Warhead@ClusterDamage3: SpreadDamage + Spread: 4c0 + Damage: 60 + Falloff: 1000, 368, 135, 50, 18, 7, 0 + DeathType: 5 + Delay: 15 + ValidTargets: Ground, Water, Air + Versus: + Concrete: 25 + Warhead@ResourceDestruction3: DestroyResource + Size: 4 + Delay: 15 + Warhead@ClusterSmudges3: LeaveSmudge + SmudgeType: MediumScorch + Size: 4 + Delay: 15 + Warhead@ClusterDamage4: SpreadDamage + Spread: 5c0 + Damage: 60 + Falloff: 1000, 368, 135, 50, 18, 7, 0 + DeathType: 5 + Delay: 20 + ValidTargets: Ground, Water, Air + Versus: + Concrete: 25 + Warhead@ResourceDestruction4: DestroyResource + Size: 5 + Delay: 20 + Warhead@ClusterSmudges4: LeaveSmudge + SmudgeType: SmallScorch + Size: 5 + Delay: 20