From 19fcb7c525241269102d5b1bbb7b41e5936f4c32 Mon Sep 17 00:00:00 2001 From: type-two Date: Mon, 20 Jul 2026 04:32:26 +1000 Subject: [PATCH] Phase C: weapons, combat units (spinner/stacktank/basscannon/roadie), mastering studio, conquest victory Co-Authored-By: Claude Fable 5 --- mods/vinylgod/cursors/default.yaml | 16 +++ mods/vinylgod/fluent/rules.ftl | 12 ++ mods/vinylgod/mod.content.yaml | 1 + mods/vinylgod/rules/combat.yaml | 103 ++++++++++++++++++ mods/vinylgod/rules/economy.yaml | 12 +- mods/vinylgod/rules/palettes.yaml | 2 + mods/vinylgod/rules/player.yaml | 2 + mods/vinylgod/rules/world.yaml | 1 + mods/vinylgod/sequences/assets/basscannon.png | Bin 0 -> 132 bytes .../sequences/assets/icon_basscannon.png | Bin 0 -> 237 bytes .../sequences/assets/icon_mastering.png | Bin 0 -> 235 bytes .../vinylgod/sequences/assets/icon_roadie.png | Bin 0 -> 237 bytes .../sequences/assets/icon_spinner.png | Bin 0 -> 238 bytes .../sequences/assets/icon_stacktank.png | Bin 0 -> 236 bytes mods/vinylgod/sequences/assets/mastering.png | Bin 0 -> 248 bytes mods/vinylgod/sequences/assets/roadie.png | Bin 0 -> 112 bytes mods/vinylgod/sequences/assets/spinner.png | Bin 0 -> 122 bytes mods/vinylgod/sequences/assets/stacktank.png | Bin 0 -> 139 bytes mods/vinylgod/sequences/economy.yaml | 30 +++++ mods/vinylgod/weapons/vinylgod.yaml | 70 ++++++++++++ tools/gen_placeholders.py | 12 +- 21 files changed, 259 insertions(+), 2 deletions(-) create mode 100644 mods/vinylgod/rules/combat.yaml create mode 100644 mods/vinylgod/sequences/assets/basscannon.png create mode 100644 mods/vinylgod/sequences/assets/icon_basscannon.png create mode 100644 mods/vinylgod/sequences/assets/icon_mastering.png create mode 100644 mods/vinylgod/sequences/assets/icon_roadie.png create mode 100644 mods/vinylgod/sequences/assets/icon_spinner.png create mode 100644 mods/vinylgod/sequences/assets/icon_stacktank.png create mode 100644 mods/vinylgod/sequences/assets/mastering.png create mode 100644 mods/vinylgod/sequences/assets/roadie.png create mode 100644 mods/vinylgod/sequences/assets/spinner.png create mode 100644 mods/vinylgod/sequences/assets/stacktank.png diff --git a/mods/vinylgod/cursors/default.yaml b/mods/vinylgod/cursors/default.yaml index 7b937c2..b5954f2 100644 --- a/mods/vinylgod/cursors/default.yaml +++ b/mods/vinylgod/cursors/default.yaml @@ -16,3 +16,19 @@ Cursors: Start: 0 deploy-blocked: Start: 0 + goldwrench: + Start: 0 + goldwrench-blocked: + Start: 0 + attack: + Start: 0 + attackoutsiderange: + Start: 0 + attackmove: + Start: 0 + attackmove-blocked: + Start: 0 + assaultmove: + Start: 0 + assaultmove-blocked: + Start: 0 diff --git a/mods/vinylgod/fluent/rules.ftl b/mods/vinylgod/fluent/rules.ftl index b05e0f8..3e6de87 100644 --- a/mods/vinylgod/fluent/rules.ftl +++ b/mods/vinylgod/fluent/rules.ftl @@ -33,3 +33,15 @@ actor-garage = .name = Garage actor-djgrunt = .name = DJ + +## combat.yaml +actor-spinner = + .name = Spinner +actor-stacktank = + .name = Stack Walker +actor-basscannon = + .name = Bass Cannon +actor-roadie = + .name = Roadie +actor-mastering = + .name = Mastering Studio diff --git a/mods/vinylgod/mod.content.yaml b/mods/vinylgod/mod.content.yaml index 88d8c10..db0413b 100644 --- a/mods/vinylgod/mod.content.yaml +++ b/mods/vinylgod/mod.content.yaml @@ -13,6 +13,7 @@ Notifications: Rules: vinylgod|rules/vinylgod.yaml vinylgod|rules/economy.yaml + vinylgod|rules/combat.yaml vinylgod|rules/mpspawn.yaml vinylgod|rules/palettes.yaml vinylgod|rules/player.yaml diff --git a/mods/vinylgod/rules/combat.yaml b/mods/vinylgod/rules/combat.yaml new file mode 100644 index 0000000..9006851 --- /dev/null +++ b/mods/vinylgod/rules/combat.yaml @@ -0,0 +1,103 @@ +^ArmedUnit: + Inherits: ^Unit + AttackFrontal: + FacingTolerance: 80 + AutoTarget: + AutoTargetPriority@DEFAULT: + ValidTargets: GroundActor, Structure + AttackMove: + +spinner: + Inherits: ^ArmedUnit + Buildable: + Queue: Vehicle + BuildPaletteOrder: 40 + Prerequisites: garage + Valued: + Cost: 500 + Tooltip: + Name: actor-spinner.name + Health: + HP: 25000 + Armor: + Type: Light + Mobile: + Locomotor: wheeled + Speed: 110 + Armament: + Weapon: tonearm_blade + +stacktank: + Inherits: ^ArmedUnit + Buildable: + Queue: Vehicle + BuildPaletteOrder: 50 + Prerequisites: garage, pressplant + Valued: + Cost: 800 + Tooltip: + Name: actor-stacktank.name + Health: + HP: 90000 + Armor: + Type: Heavy + Mobile: + Locomotor: wheeled + Speed: 50 + Armament: + Weapon: feedback_burst + +basscannon: + Inherits: ^ArmedUnit + Buildable: + Queue: Vehicle + BuildPaletteOrder: 60 + Prerequisites: garage, mastering + Valued: + Cost: 900 + Tooltip: + Name: actor-basscannon.name + Health: + HP: 20000 + Armor: + Type: Light + Mobile: + Locomotor: wheeled + Speed: 45 + Armament: + Weapon: bass_ring + +roadie: + Inherits: ^Unit + Buildable: + Queue: Infantry + BuildPaletteOrder: 20 + Prerequisites: merchtable + Valued: + Cost: 500 + Tooltip: + Name: actor-roadie.name + Health: + HP: 8000 + Armor: + Type: None + Mobile: + Locomotor: foot + Speed: 50 + InstantlyRepairs: + +mastering: + Inherits: ^EconBuilding + Inherits@shape: ^Buildable2x2 + Buildable: + Queue: Building + BuildPaletteOrder: 60 + Prerequisites: garage + Valued: + Cost: 1500 + Tooltip: + Name: actor-mastering.name + Health: + HP: 60000 + Power: + Amount: -40 diff --git a/mods/vinylgod/rules/economy.yaml b/mods/vinylgod/rules/economy.yaml index 0a14f8c..9743f35 100644 --- a/mods/vinylgod/rules/economy.yaml +++ b/mods/vinylgod/rules/economy.yaml @@ -10,6 +10,9 @@ ^Unit: Inherits: ^EconSprite + Targetable: + TargetTypes: GroundActor + MustBeDestroyed: Selectable: Bounds: 1024, 1024 RevealsShroud: @@ -67,7 +70,7 @@ popupvan: Facing: 384 djgrunt: - Inherits: ^Unit + Inherits: ^ArmedUnit Buildable: Queue: Infantry BuildPaletteOrder: 10 @@ -83,9 +86,16 @@ djgrunt: Mobile: Locomotor: foot Speed: 56 + Armament: + Weapon: seven_inch ^EconBuilding: Inherits: ^EconSprite + Targetable: + TargetTypes: GroundActor, Structure + MustBeDestroyed: + RequiredForShortGame: true + InstantlyRepairable: Tooltip: Health: HP: 90000 diff --git a/mods/vinylgod/rules/palettes.yaml b/mods/vinylgod/rules/palettes.yaml index b0b619d..03c388e 100644 --- a/mods/vinylgod/rules/palettes.yaml +++ b/mods/vinylgod/rules/palettes.yaml @@ -5,6 +5,8 @@ Name: terrain PaletteFromGrayscale@chrome: Name: chrome + PaletteFromGrayscale@effect: + Name: effect PlayerColorPalette@player: BasePalette: greyscale PlayerColorShift: diff --git a/mods/vinylgod/rules/player.yaml b/mods/vinylgod/rules/player.yaml index e72dddb..29c7bff 100644 --- a/mods/vinylgod/rules/player.yaml +++ b/mods/vinylgod/rules/player.yaml @@ -21,6 +21,8 @@ player: ClassicProductionQueue@Infantry: Type: Infantry Group: Infantry + ConquestVictoryConditions: + MissionObjectives: editorplayer: Inherits: ^baseplayer diff --git a/mods/vinylgod/rules/world.yaml b/mods/vinylgod/rules/world.yaml index c1ff4a9..2ab79c9 100644 --- a/mods/vinylgod/rules/world.yaml +++ b/mods/vinylgod/rules/world.yaml @@ -35,6 +35,7 @@ world: ClassName: options-starting-units.unlabeled BuildingInfluence: PathFinder: + MapOptions: Locomotor@WHEELED: Name: wheeled TerrainSpeeds: diff --git a/mods/vinylgod/sequences/assets/basscannon.png b/mods/vinylgod/sequences/assets/basscannon.png new file mode 100644 index 0000000000000000000000000000000000000000..761e66487c5750a4c1c9008c5d3ca00ecf75a9bc GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^QXtI11|(N{`J4k%-kvUwAr*6y6C_x#FqGfP`4=qA zzsEIj;m7|gJKc2;9a!*T`ApXzN^`Ts1ScPI(^Wbx6f=$2PoCGm`^B{W7g0tNn%#95 f?Q>n+Ai}_4D<0(+bXuGlXe@)LtDnm{r-UW|9jq%K literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_basscannon.png b/mods/vinylgod/sequences/assets/icon_basscannon.png new file mode 100644 index 0000000000000000000000000000000000000000..878319c944749401841348fd43f32ad2aa10b774 GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^4nSuJ`XBYpozcG8mPv;d&T|Cb1lRfXndO-X@?c9ajK&>#K&v4DQo%zpC ze}2vjn>MsCzPNd78T*8YSjHKm4v#)vD&EPw!cv^e;gJo)JjN*f#k~i(84hqB_!QrG zYnG4$mt(RV!y1Mv!7XWqtQoEs<{Xw;z;mdKI;Vst05jlIV*mgE literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_mastering.png b/mods/vinylgod/sequences/assets/icon_mastering.png new file mode 100644 index 0000000000000000000000000000000000000000..42c52982e4aea136e5186fdc7632c09553760f72 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^4nSt>@YsJxGsTb28Iy$+Ri78yT8lEoGg#hV$PLs81NsctY?m|t`RUKk zd13R07DkDix2CaAh=^s35OsL;=~D4d<_t@5E{8`p4D%SP^cVLY;AS|$dEi@oBpHJ)c%d3(<1{|E22oRxRdRdp)*_O>ESi(wzbyVpFiK&>!P!MNd_rObo# z^;I4X(^^$|9L`@evu!x?itE4{2BGQG=be^yIJ+}|LFhT-2c8R6lDRB#3=Dn@)BbZ^ zxi*C%h(qc#LjvoC?gggZnhx4c&t#r4mGMv@I-K1Zz##OT@dM9=D#=`yI0gnkhH3w~ zu3VeK5X2$%nIVDoLiYmGZcPX6re`wG7)%Ak{2f>7?Obrv} Yh-XzV(7DdaF9wqFboFyt=akR{0HVNAF8}}l literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_stacktank.png b/mods/vinylgod/sequences/assets/icon_stacktank.png new file mode 100644 index 0000000000000000000000000000000000000000..47c550888706b5b9be54f393eb291140b4aadab1 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^4nSPw|bn zW(hfPIVQ_7tYN4U+>&O zo4zfRn65VKg+cIwee*ZGy)a#G!Er^;NnaM$W!FAuP1thn9gqTQg@A<6hUbM}*E8(1 z+#fHbP&9ET&w&%UdDRU)+Hbcp%>4fAErV8F9>WdR1&^LC<^XE35MS`=sWQhtknTBr z0j&Zz*&8AmZgO0-^mdKI;Vst0J}RSm;e9( literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/stacktank.png b/mods/vinylgod/sequences/assets/stacktank.png new file mode 100644 index 0000000000000000000000000000000000000000..39aaa0375ed9b3f0ac6333b8af44fee79e6b4354 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^G9b*s1|*Ak?@s|zL7py-Ar*6y6C_x-u$14)`FEL# zUyl3f5)mMyKgz;FmqnFrR&>ru6{1-oD!M