From 7bb6e649f7eba8267ed56e0ae45707a2827987f0 Mon Sep 17 00:00:00 2001 From: type-two Date: Mon, 20 Jul 2026 04:40:06 +1000 Subject: [PATCH] Phase E: The Stream faction (9 actors), Wax AI bot for both factions, bot-vs-bot shellmap battle Co-Authored-By: Claude Fable 5 --- mods/vinylgod/chrome/chrome.yaml | 1 + mods/vinylgod/fluent/rules.ftl | 26 +++ mods/vinylgod/maps/shellmap/map.yaml | 29 ++- mods/vinylgod/mod.content.yaml | 2 + mods/vinylgod/rules/ai.yaml | 67 +++++++ mods/vinylgod/rules/economy.yaml | 1 + mods/vinylgod/rules/stream.yaml | 187 ++++++++++++++++++ mods/vinylgod/rules/world.yaml | 11 +- mods/vinylgod/sequences/assets/bufferbot.png | Bin 0 -> 110 bytes mods/vinylgod/sequences/assets/datacentre.png | Bin 0 -> 156 bytes mods/vinylgod/sequences/assets/drmwalker.png | Bin 0 -> 139 bytes .../sequences/assets/icon_bufferbot.png | Bin 0 -> 235 bytes .../sequences/assets/icon_datacentre.png | Bin 0 -> 237 bytes .../sequences/assets/icon_drmwalker.png | Bin 0 -> 235 bytes .../sequences/assets/icon_podfarm.png | Bin 0 -> 237 bytes .../sequences/assets/icon_printfarm.png | Bin 0 -> 237 bytes .../sequences/assets/icon_scraper.png | Bin 0 -> 235 bytes .../sequences/assets/icon_streamhub.png | Bin 0 -> 237 bytes .../sequences/assets/icon_streamvan.png | Bin 0 -> 237 bytes .../sequences/assets/icon_transcoder.png | Bin 0 -> 237 bytes mods/vinylgod/sequences/assets/podfarm.png | Bin 0 -> 156 bytes mods/vinylgod/sequences/assets/printfarm.png | Bin 0 -> 252 bytes mods/vinylgod/sequences/assets/scraper.png | Bin 0 -> 126 bytes mods/vinylgod/sequences/assets/streamhub.png | Bin 0 -> 251 bytes mods/vinylgod/sequences/assets/streamvan.png | Bin 0 -> 129 bytes mods/vinylgod/sequences/assets/transcoder.png | Bin 0 -> 252 bytes mods/vinylgod/sequences/economy.yaml | 54 +++++ mods/vinylgod/weapons/vinylgod.yaml | 14 ++ tools/gen_placeholders.py | 17 ++ 29 files changed, 400 insertions(+), 9 deletions(-) create mode 100644 mods/vinylgod/rules/ai.yaml create mode 100644 mods/vinylgod/rules/stream.yaml create mode 100644 mods/vinylgod/sequences/assets/bufferbot.png create mode 100644 mods/vinylgod/sequences/assets/datacentre.png create mode 100644 mods/vinylgod/sequences/assets/drmwalker.png create mode 100644 mods/vinylgod/sequences/assets/icon_bufferbot.png create mode 100644 mods/vinylgod/sequences/assets/icon_datacentre.png create mode 100644 mods/vinylgod/sequences/assets/icon_drmwalker.png create mode 100644 mods/vinylgod/sequences/assets/icon_podfarm.png create mode 100644 mods/vinylgod/sequences/assets/icon_printfarm.png create mode 100644 mods/vinylgod/sequences/assets/icon_scraper.png create mode 100644 mods/vinylgod/sequences/assets/icon_streamhub.png create mode 100644 mods/vinylgod/sequences/assets/icon_streamvan.png create mode 100644 mods/vinylgod/sequences/assets/icon_transcoder.png create mode 100644 mods/vinylgod/sequences/assets/podfarm.png create mode 100644 mods/vinylgod/sequences/assets/printfarm.png create mode 100644 mods/vinylgod/sequences/assets/scraper.png create mode 100644 mods/vinylgod/sequences/assets/streamhub.png create mode 100644 mods/vinylgod/sequences/assets/streamvan.png create mode 100644 mods/vinylgod/sequences/assets/transcoder.png diff --git a/mods/vinylgod/chrome/chrome.yaml b/mods/vinylgod/chrome/chrome.yaml index de047db..13de231 100644 --- a/mods/vinylgod/chrome/chrome.yaml +++ b/mods/vinylgod/chrome/chrome.yaml @@ -120,6 +120,7 @@ flags: Inherits: ^Glyphs Regions: vinylgod: 226, 241, 30, 15 + stream: 226, 241, 30, 15 Random: 226, 241, 30, 15 spectator: 226, 241, 30, 15 diff --git a/mods/vinylgod/fluent/rules.ftl b/mods/vinylgod/fluent/rules.ftl index 3e6de87..d81c586 100644 --- a/mods/vinylgod/fluent/rules.ftl +++ b/mods/vinylgod/fluent/rules.ftl @@ -45,3 +45,29 @@ actor-roadie = .name = Roadie actor-mastering = .name = Mastering Studio + +## stream.yaml + ai.yaml +faction-stream = + .name = The Stream + .description = The Stream + The Algorithm's physical fleet: cheap, fast, numerous. +actor-streamvan = + .name = Deployment Van +actor-streamhub = + .name = Stream Hub +actor-datacentre = + .name = Edge Node +actor-transcoder = + .name = Transcoder +actor-podfarm = + .name = Pod Farm +actor-printfarm = + .name = Print Farm +actor-scraper = + .name = Scraper +actor-bufferbot = + .name = Buffer-Bot +actor-drmwalker = + .name = DRM Enforcer +bot-wax-ai = + .name = Wax AI diff --git a/mods/vinylgod/maps/shellmap/map.yaml b/mods/vinylgod/maps/shellmap/map.yaml index 476081c..d9c3520 100644 --- a/mods/vinylgod/maps/shellmap/map.yaml +++ b/mods/vinylgod/maps/shellmap/map.yaml @@ -26,14 +26,27 @@ Players: Name: Creeps NonCombatant: True Faction: Random + PlayerReference@BotA: + Name: BotA + Faction: vinylgod + Bot: wax + Enemies: BotB + PlayerReference@BotB: + Name: BotB + Faction: stream + Bot: wax + Enemies: BotA Actors: - Actor1: pressplant - Owner: Creeps - Location: 12,12 + Actor1: popupvan + Owner: BotA + Location: 7,7 Actor2: digger - Owner: Creeps - Location: 15,14 - Actor3: ampstack - Owner: Creeps - Location: 10,14 + Owner: BotA + Location: 9,8 + Actor3: streamvan + Owner: BotB + Location: 26,26 + Actor4: scraper + Owner: BotB + Location: 24,25 diff --git a/mods/vinylgod/mod.content.yaml b/mods/vinylgod/mod.content.yaml index db0413b..3c04357 100644 --- a/mods/vinylgod/mod.content.yaml +++ b/mods/vinylgod/mod.content.yaml @@ -14,6 +14,8 @@ Rules: vinylgod|rules/vinylgod.yaml vinylgod|rules/economy.yaml vinylgod|rules/combat.yaml + vinylgod|rules/stream.yaml + vinylgod|rules/ai.yaml vinylgod|rules/mpspawn.yaml vinylgod|rules/palettes.yaml vinylgod|rules/player.yaml diff --git a/mods/vinylgod/rules/ai.yaml b/mods/vinylgod/rules/ai.yaml new file mode 100644 index 0000000..64f192b --- /dev/null +++ b/mods/vinylgod/rules/ai.yaml @@ -0,0 +1,67 @@ +player: + ModularBot@WaxAI: + Name: bot-wax-ai.name + Type: wax + GrantConditionOnBotOwner@wax: + Condition: enable-wax-ai + Bots: wax + HarvesterBotModule: + RequiresCondition: enable-wax-ai + HarvesterTypes: digger, scraper + RefineryTypes: pressplant, transcoder + McvManagerBotModule: + RequiresCondition: enable-wax-ai + McvTypes: popupvan, streamvan + ConstructionYardTypes: popupshop, streamhub + McvFactoryTypes: garage, printfarm + BaseBuilderBotModule: + RequiresCondition: enable-wax-ai + MinimumExcessPower: 40 + MaximumExcessPower: 160 + ExcessPowerIncrement: 40 + ExcessPowerIncreaseThreshold: 4 + ConstructionYardTypes: popupshop, streamhub + RefineryTypes: pressplant, transcoder + PowerTypes: ampstack, datacentre + BarracksTypes: merchtable, podfarm + VehiclesFactoryTypes: garage, printfarm + ProductionTypes: merchtable, podfarm, garage, printfarm + SiloTypes: vault + BuildingLimits: + pressplant: 3 + transcoder: 3 + merchtable: 1 + podfarm: 1 + garage: 1 + printfarm: 1 + mastering: 1 + BuildingFractions: + pressplant: 30 + transcoder: 30 + merchtable: 1 + podfarm: 1 + garage: 1 + printfarm: 1 + mastering: 1 + UnitBuilderBotModule: + RequiresCondition: enable-wax-ai + UnitsToBuild: + djgrunt: 60 + roadie: 5 + spinner: 30 + stacktank: 45 + basscannon: 15 + digger: 10 + bufferbot: 60 + drmwalker: 45 + scraper: 10 + UnitLimits: + digger: 4 + scraper: 4 + roadie: 2 + SquadManagerBotModule: + RequiresCondition: enable-wax-ai + SquadSize: 8 + ExcludeFromSquadsTypes: digger, scraper, popupvan, streamvan, roadie + ConstructionYardTypes: popupshop, streamhub + ProtectionTypes: digger, scraper, popupvan, streamvan, pressplant, transcoder, popupshop, streamhub, ampstack, datacentre, vault, merchtable, podfarm, garage, printfarm, mastering diff --git a/mods/vinylgod/rules/economy.yaml b/mods/vinylgod/rules/economy.yaml index 9743f35..8086fee 100644 --- a/mods/vinylgod/rules/economy.yaml +++ b/mods/vinylgod/rules/economy.yaml @@ -178,6 +178,7 @@ ampstack: Buildable: Queue: Building BuildPaletteOrder: 10 + Prerequisites: popupshop Valued: Cost: 300 Tooltip: diff --git a/mods/vinylgod/rules/stream.yaml b/mods/vinylgod/rules/stream.yaml new file mode 100644 index 0000000..157c7e1 --- /dev/null +++ b/mods/vinylgod/rules/stream.yaml @@ -0,0 +1,187 @@ +# The Stream — the Algorithm's physical fleet. Cheap, fast, numerous, fragile. + +streamvan: + Inherits: ^Unit + Buildable: + Queue: Vehicle + BuildPaletteOrder: 31 + Prerequisites: printfarm + Valued: + Cost: 2500 + Tooltip: + Name: actor-streamvan.name + Health: + HP: 55000 + Armor: + Type: Light + Mobile: + Locomotor: wheeled + Speed: 75 + Transforms: + IntoActor: streamhub + Offset: 0,0 + Facing: 384 + +streamhub: + Inherits: ^EconBuilding + Inherits@shape: ^Buildable2x2 + Tooltip: + Name: actor-streamhub.name + Health: + HP: 140000 + BaseBuilding: + Production: + Produces: Building + Power: + Amount: 0 + -RequiresBuildableArea: + +datacentre: + Inherits: ^EconBuilding + Inherits@shape: ^Buildable1x1 + Buildable: + Queue: Building + BuildPaletteOrder: 11 + Prerequisites: streamhub + Valued: + Cost: 300 + Tooltip: + Name: actor-datacentre.name + Health: + HP: 35000 + Power: + Amount: 100 + GivesBuildableArea: + AreaTypes: building + +transcoder: + Inherits: ^EconBuilding + Inherits@shape: ^Buildable2x2 + Buildable: + Queue: Building + BuildPaletteOrder: 21 + Prerequisites: datacentre + Valued: + Cost: 2000 + Tooltip: + Name: actor-transcoder.name + Building: + Footprint: xx == + Refinery: + DockHost: + Type: Unload + DockOffset: 0, 512, 0 + StoresPlayerResources: + Capacity: 4000 + Power: + Amount: -30 + FreeActor: + Actor: scraper + SpawnOffset: 0, 2 + +podfarm: + Inherits: ^EconBuilding + Inherits@shape: ^Buildable2x2 + Buildable: + Queue: Building + BuildPaletteOrder: 31 + Prerequisites: transcoder + Valued: + Cost: 300 + Tooltip: + Name: actor-podfarm.name + Health: + HP: 70000 + Production: + Produces: Infantry + Exit@1: + ExitCell: 0, 2 + Power: + Amount: -10 + +printfarm: + Inherits: ^EconBuilding + Inherits@shape: ^Buildable2x2 + Buildable: + Queue: Building + BuildPaletteOrder: 51 + Prerequisites: transcoder + Valued: + Cost: 2000 + Tooltip: + Name: actor-printfarm.name + Health: + HP: 100000 + Production: + Produces: Vehicle + Exit@1: + ExitCell: 0, 2 + Power: + Amount: -20 + +scraper: + Inherits: ^Unit + Buildable: + Queue: Vehicle + BuildPaletteOrder: 21 + Prerequisites: transcoder + Valued: + Cost: 1200 + Tooltip: + Name: actor-scraper.name + Health: + HP: 45000 + Armor: + Type: Light + Mobile: + Locomotor: wheeled + Speed: 90 + Harvester: + Resources: Wax + BaleUnloadDelay: 1 + SearchFromProcRadius: 15 + SearchFromHarvesterRadius: 8 + StoresResources: + Capacity: 14 + Resources: Wax + DockClientManager: + +bufferbot: + Inherits: ^ArmedUnit + Buildable: + Queue: Infantry + BuildPaletteOrder: 11 + Prerequisites: podfarm + Valued: + Cost: 60 + Tooltip: + Name: actor-bufferbot.name + Health: + HP: 3500 + Armor: + Type: None + Mobile: + Locomotor: foot + Speed: 70 + Armament: + Weapon: ping + +drmwalker: + Inherits: ^ArmedUnit + Buildable: + Queue: Vehicle + BuildPaletteOrder: 51 + Prerequisites: printfarm + Valued: + Cost: 900 + Tooltip: + Name: actor-drmwalker.name + Health: + HP: 100000 + Armor: + Type: Heavy + Mobile: + Locomotor: wheeled + Speed: 42 + Armament: + Weapon: feedback_burst diff --git a/mods/vinylgod/rules/world.yaml b/mods/vinylgod/rules/world.yaml index 2ab79c9..a506019 100644 --- a/mods/vinylgod/rules/world.yaml +++ b/mods/vinylgod/rules/world.yaml @@ -6,12 +6,16 @@ Faction@Random: InternalName: Random Name: faction-random.name - RandomFactionMembers: vinylgod + RandomFactionMembers: vinylgod, stream Description: faction-random.description Faction@vinylgod: InternalName: vinylgod Name: faction-vinylgod.name Description: faction-vinylgod.description + Faction@stream: + InternalName: stream + Name: faction-stream.name + Description: faction-stream.description LoadWidgetAtGameStart: MusicPlaylist: ScreenMap: @@ -33,6 +37,11 @@ world: SupportActors: digger Factions: vinylgod ClassName: options-starting-units.unlabeled + StartingUnits@Stream: + BaseActor: streamvan + SupportActors: scraper + Factions: stream + ClassName: options-starting-units.unlabeled BuildingInfluence: PathFinder: MapOptions: diff --git a/mods/vinylgod/sequences/assets/bufferbot.png b/mods/vinylgod/sequences/assets/bufferbot.png new file mode 100644 index 0000000000000000000000000000000000000000..86d3357be88ede19be15e3f464eb9736e7884349 GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xaQ%@Jikcv6U2@68p00i_ I>zopr0KXI^y8r+H literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/datacentre.png b/mods/vinylgod/sequences/assets/datacentre.png new file mode 100644 index 0000000000000000000000000000000000000000..91718dd3e5730bc07a0d74e46ae7336c5315933a GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJWKS2zkcv5PuNZOxC0H-;U30$Tf82FdZaD>cOyDWSF literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_bufferbot.png b/mods/vinylgod/sequences/assets/icon_bufferbot.png new file mode 100644 index 0000000000000000000000000000000000000000..cc134c0add17a98990e2cf7f03866cfb93ea07e1 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^4nSH{*cM>gY50%7NLa|e#Y|H$s7NmS-b#iaOgrYw>;h_pfe%axcZ;nK%>Vyo z0)s8Lw?xClwYilHomWL0LK#)`^lhhGH%u#D$e?nL`GMqu??$&c_AoHaVaWL}nz2@u zafyJ*GsXj42_lZ!V!;h@EN3mxFh(ip{PJgB!JBgTyyyX*0+>Av4O$2ESQ!*m^_SO{ U?7UF9h7ly=>FVdQ&MBb@01BE*#{d8T literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_datacentre.png b/mods/vinylgod/sequences/assets/icon_datacentre.png new file mode 100644 index 0000000000000000000000000000000000000000..110411539c4c741128074294038ada8197afbf4c GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^4nShkHJ?}2C0<}UxgE+(Md50PQ z{aN15k`Wnkh~Z04?qz0=HR~A8a48g4zTA0-@yZ--R)s=2hVu+-r(bk?z{>D|CE@3K zhg@Gyh1Laz{0w0XdpV*u&tTf3lyNSRFMv7mV!ebzro!vGbqsC|%rJ`>L>R*~88}W> YGL}7@c2SYlGae-4>FVdQ&MBb@0FT2`ApigX literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_drmwalker.png b/mods/vinylgod/sequences/assets/icon_drmwalker.png new file mode 100644 index 0000000000000000000000000000000000000000..cc134c0add17a98990e2cf7f03866cfb93ea07e1 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^4nSH{*cM>gY50%7NLa|e#Y|H$s7NmS-b#iaOgrYw>;h_pfe%axcZ;nK%>Vyo z0)s8Lw?xClwYilHomWL0LK#)`^lhhGH%u#D$e?nL`GMqu??$&c_AoHaVaWL}nz2@u zafyJ*GsXj42_lZ!V!;h@EN3mxFh(ip{PJgB!JBgTyyyX*0+>Av4O$2ESQ!*m^_SO{ U?7UF9h7ly=>FVdQ&MBb@01BE*#{d8T literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_podfarm.png b/mods/vinylgod/sequences/assets/icon_podfarm.png new file mode 100644 index 0000000000000000000000000000000000000000..110411539c4c741128074294038ada8197afbf4c GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^4nShkHJ?}2C0<}UxgE+(Md50PQ z{aN15k`Wnkh~Z04?qz0=HR~A8a48g4zTA0-@yZ--R)s=2hVu+-r(bk?z{>D|CE@3K zhg@Gyh1Laz{0w0XdpV*u&tTf3lyNSRFMv7mV!ebzro!vGbqsC|%rJ`>L>R*~88}W> YGL}7@c2SYlGae-4>FVdQ&MBb@0FT2`ApigX literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_printfarm.png b/mods/vinylgod/sequences/assets/icon_printfarm.png new file mode 100644 index 0000000000000000000000000000000000000000..110411539c4c741128074294038ada8197afbf4c GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^4nShkHJ?}2C0<}UxgE+(Md50PQ z{aN15k`Wnkh~Z04?qz0=HR~A8a48g4zTA0-@yZ--R)s=2hVu+-r(bk?z{>D|CE@3K zhg@Gyh1Laz{0w0XdpV*u&tTf3lyNSRFMv7mV!ebzro!vGbqsC|%rJ`>L>R*~88}W> YGL}7@c2SYlGae-4>FVdQ&MBb@0FT2`ApigX literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_scraper.png b/mods/vinylgod/sequences/assets/icon_scraper.png new file mode 100644 index 0000000000000000000000000000000000000000..cc134c0add17a98990e2cf7f03866cfb93ea07e1 GIT binary patch literal 235 zcmeAS@N?(olHy`uVBq!ia0vp^4nSH{*cM>gY50%7NLa|e#Y|H$s7NmS-b#iaOgrYw>;h_pfe%axcZ;nK%>Vyo z0)s8Lw?xClwYilHomWL0LK#)`^lhhGH%u#D$e?nL`GMqu??$&c_AoHaVaWL}nz2@u zafyJ*GsXj42_lZ!V!;h@EN3mxFh(ip{PJgB!JBgTyyyX*0+>Av4O$2ESQ!*m^_SO{ U?7UF9h7ly=>FVdQ&MBb@01BE*#{d8T literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_streamhub.png b/mods/vinylgod/sequences/assets/icon_streamhub.png new file mode 100644 index 0000000000000000000000000000000000000000..110411539c4c741128074294038ada8197afbf4c GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^4nShkHJ?}2C0<}UxgE+(Md50PQ z{aN15k`Wnkh~Z04?qz0=HR~A8a48g4zTA0-@yZ--R)s=2hVu+-r(bk?z{>D|CE@3K zhg@Gyh1Laz{0w0XdpV*u&tTf3lyNSRFMv7mV!ebzro!vGbqsC|%rJ`>L>R*~88}W> YGL}7@c2SYlGae-4>FVdQ&MBb@0FT2`ApigX literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_streamvan.png b/mods/vinylgod/sequences/assets/icon_streamvan.png new file mode 100644 index 0000000000000000000000000000000000000000..110411539c4c741128074294038ada8197afbf4c GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^4nShkHJ?}2C0<}UxgE+(Md50PQ z{aN15k`Wnkh~Z04?qz0=HR~A8a48g4zTA0-@yZ--R)s=2hVu+-r(bk?z{>D|CE@3K zhg@Gyh1Laz{0w0XdpV*u&tTf3lyNSRFMv7mV!ebzro!vGbqsC|%rJ`>L>R*~88}W> YGL}7@c2SYlGae-4>FVdQ&MBb@0FT2`ApigX literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/icon_transcoder.png b/mods/vinylgod/sequences/assets/icon_transcoder.png new file mode 100644 index 0000000000000000000000000000000000000000..110411539c4c741128074294038ada8197afbf4c GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^4nShkHJ?}2C0<}UxgE+(Md50PQ z{aN15k`Wnkh~Z04?qz0=HR~A8a48g4zTA0-@yZ--R)s=2hVu+-r(bk?z{>D|CE@3K zhg@Gyh1Laz{0w0XdpV*u&tTf3lyNSRFMv7mV!ebzro!vGbqsC|%rJ`>L>R*~88}W> YGL}7@c2SYlGae-4>FVdQ&MBb@0FT2`ApigX literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/podfarm.png b/mods/vinylgod/sequences/assets/podfarm.png new file mode 100644 index 0000000000000000000000000000000000000000..f90639a15e7a3c33a15e10626c7431209725556e GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJWKS2zkcv5PuNZOxC0H-?-JQ8B z>cX|0EoMvF+OGV6Fzo|}sVYn4B<_jnN7=7jJGq&mg5QAswN--o({~IfSM6jp`OVj0 z`QXW$eP5XwT6QoCv0Tq)iZGn@{TV|pBLf4s!@koDTkk5onRh9s1!x_Er>mdKI;Vst E0P|cq?EnA( literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/printfarm.png b/mods/vinylgod/sequences/assets/printfarm.png new file mode 100644 index 0000000000000000000000000000000000000000..efc7359ec07b053079963b6beb0438d61c7bf802 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=hdo^!Ln`LHy|Iz^kb!{1MV@0N zJsu|+);#PG;#9HtofKaYUo^XTUeJx3W}cIl@W-xO8yd$@wfnC8+D}YC?GUg*>%iw7 zzrq>r&$;icd})SN3@LkRL>Pfujx(j~t6@1P z4rDeQX51v8^qaweJHf=Mgg=FVdQ&MBb@0N`y|TmS$7 literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/scraper.png b/mods/vinylgod/sequences/assets/scraper.png new file mode 100644 index 0000000000000000000000000000000000000000..491b493468861f03dedd15fc04d29ec4eb9205ed GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fuAVNAAr*6y6C^erSoZRNeOAIR z$v?mDUjKjPfbx-q0EwWh2{{v8HXi&Dbl`#Uj2R`?J7Ro-n=_|rWz6dHJh+(cv023l a28QdKOL-P)FTVyfkipZ{&t;ucLK6Uit1wLf literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/streamhub.png b/mods/vinylgod/sequences/assets/streamhub.png new file mode 100644 index 0000000000000000000000000000000000000000..7d54ac452457c8405c1ecd633351e66e0c2ec59b GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=hdf;zLn`LHz2V4p$Uwm1qTHFw zm9Yosz80C@)Z}O6yKEo-&9Y1G;-1@mC#k%2o}QgORlMO|-go!adw`muU=7y?n|1$0 z512py9?ayTXSAI0#m=)+*(C~>>T(-=ii_t{c>J8LL5o3BU)~j{<-kUUnfmgMA6S9x z2L%l}Ehp?4&M-;z3fw&$(h$gD`*}I@7o{)f;+Pb=43gd%G3zopr07TI)kpKVy literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/assets/transcoder.png b/mods/vinylgod/sequences/assets/transcoder.png new file mode 100644 index 0000000000000000000000000000000000000000..89f43fde30ec84c95f9271f457e665bcd35ab97e GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=hdo^!Ln`LHy|Iz^kb!{1MV@0N zKJI7Pd>(ZOajIDSPKvLHFPdFEFX+ZiGtWs&_+!_t4UJ={+I?4k?I$Lnb_m#@b>Q=k zU*Qb*=iK+_6xexU4%>p~X5n%PN2YGmIdG!7*0P~zzBI!shLk-uB8)&S$C*<0)vz2C z2QnKDGj0-4`psa#onYcr!XM1&rugN|e7+0a7p$u}8#E4e>^#lzhsm($UJ=842c!A> kZ5+NK>}7D6r1EmB?7M|~)%L3Woe6S`r>mdKI;Vst0C^8tK>z>% literal 0 HcmV?d00001 diff --git a/mods/vinylgod/sequences/economy.yaml b/mods/vinylgod/sequences/economy.yaml index e9fb5bc..ff2cef5 100644 --- a/mods/vinylgod/sequences/economy.yaml +++ b/mods/vinylgod/sequences/economy.yaml @@ -89,3 +89,57 @@ mastering: Filename: sequences/assets/mastering.png icon: Filename: sequences/assets/icon_mastering.png + +streamvan: + idle: + Filename: sequences/assets/streamvan.png + icon: + Filename: sequences/assets/icon_streamvan.png + +streamhub: + idle: + Filename: sequences/assets/streamhub.png + icon: + Filename: sequences/assets/icon_streamhub.png + +datacentre: + idle: + Filename: sequences/assets/datacentre.png + icon: + Filename: sequences/assets/icon_datacentre.png + +transcoder: + idle: + Filename: sequences/assets/transcoder.png + icon: + Filename: sequences/assets/icon_transcoder.png + +podfarm: + idle: + Filename: sequences/assets/podfarm.png + icon: + Filename: sequences/assets/icon_podfarm.png + +printfarm: + idle: + Filename: sequences/assets/printfarm.png + icon: + Filename: sequences/assets/icon_printfarm.png + +scraper: + idle: + Filename: sequences/assets/scraper.png + icon: + Filename: sequences/assets/icon_scraper.png + +bufferbot: + idle: + Filename: sequences/assets/bufferbot.png + icon: + Filename: sequences/assets/icon_bufferbot.png + +drmwalker: + idle: + Filename: sequences/assets/drmwalker.png + icon: + Filename: sequences/assets/icon_drmwalker.png diff --git a/mods/vinylgod/weapons/vinylgod.yaml b/mods/vinylgod/weapons/vinylgod.yaml index 281e532..79d8959 100644 --- a/mods/vinylgod/weapons/vinylgod.yaml +++ b/mods/vinylgod/weapons/vinylgod.yaml @@ -68,3 +68,17 @@ bass_ring: Wood: 100 Light: 75 Heavy: 40 + +ping: + Inherits: ^GroundWeapon + ReloadDelay: 15 + Range: 3c512 + Warhead@1Dam: SpreadDamage + Spread: 64 + Damage: 1200 + ValidTargets: GroundActor + Versus: + None: 100 + Wood: 35 + Light: 45 + Heavy: 15 diff --git a/tools/gen_placeholders.py b/tools/gen_placeholders.py index 46bf798..6231072 100644 --- a/tools/gen_placeholders.py +++ b/tools/gen_placeholders.py @@ -94,6 +94,19 @@ box_sprite(os.path.join(OUT, 'basscannon.png'), 26, GREY, RED) box_sprite(os.path.join(OUT, 'roadie.png'), 16, GOLD, DARK) box_sprite(os.path.join(OUT, 'mastering.png'), 64, (150, 150, 160, 255), PINK) +# Phase E: The Stream (white/blue) +WHITE = (235, 238, 245, 255) +SBLUE = (60, 130, 255, 255) +box_sprite(os.path.join(OUT, 'streamvan.png'), 24, WHITE, SBLUE) +box_sprite(os.path.join(OUT, 'streamhub.png'), 64, WHITE, SBLUE) +box_sprite(os.path.join(OUT, 'datacentre.png'), 32, WHITE, SBLUE) +box_sprite(os.path.join(OUT, 'transcoder.png'), 64, (200, 210, 225, 255), SBLUE) +box_sprite(os.path.join(OUT, 'podfarm.png'), 32, WHITE, (120, 170, 255, 255)) +box_sprite(os.path.join(OUT, 'printfarm.png'), 64, (210, 218, 230, 255), SBLUE) +box_sprite(os.path.join(OUT, 'scraper.png'), 22, WHITE, SBLUE) +box_sprite(os.path.join(OUT, 'bufferbot.png'), 14, WHITE, SBLUE) +box_sprite(os.path.join(OUT, 'drmwalker.png'), 28, WHITE, (30, 60, 160, 255)) + def icon(path, body): w, h = 64, 48 @@ -134,3 +147,7 @@ for r, shape in enumerate(('rect', 'dot', 'disc')): disc(px, w, ox + 8, oy + 8, 2, DARK) CHROME = os.path.join(os.path.dirname(__file__), '..', 'mods', 'vinylgod', 'chrome', 'assets') write_png(os.path.join(CHROME, 'production-icons.png'), w, h, px) + +for name in ('streamvan', 'streamhub', 'datacentre', 'transcoder', 'podfarm', + 'printfarm', 'scraper', 'bufferbot', 'drmwalker'): + icon(os.path.join(OUT, f'icon_{name}.png'), SBLUE if name in ('scraper', 'drmwalker', 'bufferbot') else WHITE)