From 19918d485e155d1642f7c99f8da803590ff3cbd4 Mon Sep 17 00:00:00 2001 From: Paul Chote Date: Tue, 24 Mar 2020 10:53:05 +0000 Subject: [PATCH] Disable plugs when there are no sockets to place them. --- mods/ts/rules/gdi-structures.yaml | 33 ++++++++++++++++++++++++++++--- mods/ts/rules/gdi-support.yaml | 15 +++++++++++--- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/mods/ts/rules/gdi-structures.yaml b/mods/ts/rules/gdi-structures.yaml index ad57689349..45f4533dc3 100644 --- a/mods/ts/rules/gdi-structures.yaml +++ b/mods/ts/rules/gdi-structures.yaml @@ -63,9 +63,18 @@ GAPOWR: RequiresCondition: !empdisable && powrup.b Amount: 50 ProvidesPrerequisite@buildingname: + ProvidesPrerequisite@pluggable: + RequiresCondition: !powrup.a || !powrup.b + Prerequisite: gapowr.socket IsometricSelectable: Height: 48 +GAPOWR.SOCKET: + AlwaysVisible: + Interactable: + Tooltip: + Name: GDI Power Plant socket + GAPOWRUP: Inherits: ^BuildingPlug Valued: @@ -75,7 +84,7 @@ GAPOWRUP: Buildable: Queue: Building BuildPaletteOrder: 100 - Prerequisites: gapowr, ~structures.gdi, ~techlevel.medium + Prerequisites: gapowr.socket, ~structures.gdi, ~techlevel.medium Description: Provides extra power generation. Plug: Type: powrup @@ -524,9 +533,27 @@ GAPLUG: PauseOnCondition: disabled Sequence: idle-hunterseekerb ProvidesPrerequisite@buildingname: + ProvidesPrerequisite@pluggableion: + RequiresCondition: !plug.ioncannona && !plug.ioncannonb + Prerequisite: gaplug.socket.ioncannon + ProvidesPrerequisite@pluggablehunter: + RequiresCondition: !plug.hunterseekera && !plug.hunterseekerb + Prerequisite: gaplug.socket.hunterseeker IsometricSelectable: Height: 48 +GAPLUG.SOCKET.IONCANNON: + AlwaysVisible: + Interactable: + Tooltip: + Name: GDI Upgrade Center socket + +GAPLUG.SOCKET.HUNTERSEEKER: + AlwaysVisible: + Interactable: + Tooltip: + Name: GDI Upgrade Center socket + GAPLUG2: Inherits: ^BuildingPlug Valued: @@ -536,7 +563,7 @@ GAPLUG2: Buildable: Queue: Building BuildPaletteOrder: 110 - Prerequisites: gaplug, gatech, gaweap, ~structures.gdi, ~techlevel.superweapons + Prerequisites: gaplug.socket.hunterseeker, gatech, gaweap, ~structures.gdi, ~techlevel.superweapons Description: Enables use of the hunter-seeker droid. Plug: Type: plug.hunterseeker @@ -552,7 +579,7 @@ GAPLUG3: Buildable: Queue: Building BuildPaletteOrder: 120 - Prerequisites: gaplug, gatech, ~structures.gdi, ~techlevel.superweapons + Prerequisites: gaplug.socket.ioncannon, gatech, ~structures.gdi, ~techlevel.superweapons Description: Enables use of the Ion Cannon. Plug: Type: plug.ioncannon diff --git a/mods/ts/rules/gdi-support.yaml b/mods/ts/rules/gdi-support.yaml index 2f705767de..e733786983 100644 --- a/mods/ts/rules/gdi-support.yaml +++ b/mods/ts/rules/gdi-support.yaml @@ -134,11 +134,20 @@ GACTWR: tower.rocket: !build-incomplete && !tower.rocket && !tower.vulcan && !tower.sam tower.sam: !build-incomplete && !tower.vulcan && !tower.rocket && !tower.sam ProvidesPrerequisite@buildingname: + ProvidesPrerequisite@pluggable: + RequiresCondition: !build-incomplete && !tower.vulcan && !tower.rocket && !tower.sam + Prerequisite: gactwr.socket Replacement: ReplaceableTypes: GDITower IsometricSelectable: Height: 48 +GACTWR.SOCKET: + AlwaysVisible: + Interactable: + Tooltip: + Name: Component Tower (unupgraded) + GAVULC: Inherits: ^BuildingPlug Valued: @@ -148,7 +157,7 @@ GAVULC: Buildable: Queue: Defense BuildPaletteOrder: 80 - Prerequisites: gactwr, gapile, ~structures.gdi, ~techlevel.low + Prerequisites: gactwr.socket, gapile, ~structures.gdi, ~techlevel.low Description: Basic base defense.\nDoes not require power to operate.\n Strong vs Infantry, Light armor\n Weak vs Aircraft Plug: Type: tower.vulcan @@ -164,7 +173,7 @@ GAROCK: Buildable: Queue: Defense BuildPaletteOrder: 90 - Prerequisites: gactwr, gapile, ~structures.gdi, ~techlevel.high + Prerequisites: gactwr.socket, gapile, ~structures.gdi, ~techlevel.high Description: GDI Advanced base defense.\nDoes not require power to operate.\n Strong vs Armored ground units\n Weak vs Aircraft Plug: Type: tower.rocket @@ -180,7 +189,7 @@ GACSAM: Buildable: Queue: Defense BuildPaletteOrder: 100 - Prerequisites: gactwr, garadr, ~structures.gdi, ~techlevel.medium + Prerequisites: gactwr.socket, garadr, ~structures.gdi, ~techlevel.medium Description: GDI Anti-Air base defense.\nDoes not require power to operate.\n Strong vs Aircraft\n Weak vs Ground units Plug: Type: tower.sam