Files
TimandGitHub 2034800f3a Refactor VIM vehicles into mech (#96571)
## About The Pull Request
- Fixes https://github.com/tgstation/tgstation/issues/96553

This refactors the VIM vehicles used for pets and critters into a
functional mech. It also fixes the vehicle missing a sealed air
compartment, which meant they weren't initially spaceproof despite using
spacesuits for their crafting recipe and apart of their sprite.

The VIM mech features:
- No arms and thus cannot be equipped with any weapons
- Room for 1 armor module
- Room for 3 utility modules (jetpack, radio, etc.)
- Cannot be used by silicons, AI, carbon mobs, or large mob types. (only
small-sized simple/basic mobs)
- Can pass underneath mobs and tables since it is tiny
- Can only be crafted via the crafting recipe (cannot be made from
robotics fab or researched)

## Why It's Good For The Game
<img width="1920" height="1080" alt="WIyLe0jcll"
src="https://github.com/user-attachments/assets/b642ba87-d09d-488b-92eb-dc0d3df41122"
/>

The cat NTOS theme is so cute. 

## Changelog
🆑
fix: Fix VIM not being spaceproof
refactor: Refactor VIM vehicles into mech
/🆑
2026-06-21 19:39:10 +00:00

195 lines
5.0 KiB
Plaintext

/datum/crafting_recipe/ed209
name = "ED209"
result = /mob/living/basic/bot/secbot/ed209
reqs = list(
/obj/item/robot_suit = 1,
/obj/item/clothing/head/helmet/sec = 1,
/obj/item/clothing/suit/armor/vest = 1,
/obj/item/bodypart/leg/left/robot = 1,
/obj/item/bodypart/leg/right/robot = 1,
/obj/item/stack/sheet/iron = 1,
/obj/item/stack/cable_coil = 1,
/obj/item/gun/energy/disabler = 1,
/obj/item/assembly/prox_sensor = 1,
)
tool_behaviors = list(TOOL_WELDER, TOOL_SCREWDRIVER)
time = 6 SECONDS
category = CAT_ROBOT
/datum/crafting_recipe/secbot
name = "Secbot"
result = /mob/living/basic/bot/secbot
reqs = list(
/obj/item/assembly/signaler = 1,
/obj/item/clothing/head/helmet/sec = 1,
/obj/item/melee/baton/security/ = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bodypart/arm/right/robot = 1,
)
tool_behaviors = list(TOOL_WELDER)
time = 6 SECONDS
category = CAT_ROBOT
/datum/crafting_recipe/cleanbot
name = "Cleanbot"
result = /mob/living/basic/bot/cleanbot
reqs = list(
/obj/item/reagent_containers/cup/bucket = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bodypart/arm/right/robot = 1,
)
parts = list(/obj/item/reagent_containers/cup/bucket = 1) //cleanbot/Entered() handles bucket colors
time = 4 SECONDS
category = CAT_ROBOT
/datum/crafting_recipe/repairbot
name = "Repairbot"
result = /mob/living/basic/bot/repairbot
reqs = list(
/obj/item/storage/toolbox = 1,
/obj/item/stack/conveyor = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bodypart/arm/right/robot = 1,
)
time = 4 SECONDS
category = CAT_ROBOT
/datum/crafting_recipe/medbot
name = "Medbot"
result = /mob/living/basic/bot/medbot
reqs = list(
/obj/item/healthanalyzer = 1,
/obj/item/storage/medkit = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bodypart/arm/right/robot = 1,
)
parts = list(
/obj/item/storage/medkit = 1,
/obj/item/healthanalyzer = 1,
)
time = 4 SECONDS
category = CAT_ROBOT
/datum/crafting_recipe/honkbot
name = "Honkbot"
result = /mob/living/basic/bot/secbot/honkbot
reqs = list(
/obj/item/storage/box/clown = 1,
/obj/item/bodypart/arm/right/robot = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/bikehorn = 1,
)
time = 4 SECONDS
category = CAT_ROBOT
/datum/crafting_recipe/firebot
name = "Firebot"
result = /mob/living/basic/bot/firebot
reqs = list(
/obj/item/extinguisher = 1,
/obj/item/bodypart/arm/right/robot = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/clothing/head/utility/hardhat/red = 1,
)
time = 4 SECONDS
category = CAT_ROBOT
/datum/crafting_recipe/vibebot
name = "Vibebot"
result = /mob/living/basic/bot/vibebot
reqs = list(
/obj/item/light/bulb = 2,
/obj/item/bodypart/head/robot = 1,
/obj/item/assembly/prox_sensor = 1,
/obj/item/toy/crayon = 1,
)
time = 4 SECONDS
category = CAT_ROBOT
/datum/crafting_recipe/hygienebot
name = "Hygienebot"
result = /mob/living/basic/bot/hygienebot
reqs = list(
/obj/item/bot_assembly/hygienebot = 1,
/obj/item/stack/ducts = 1,
/obj/item/assembly/prox_sensor = 1,
)
tool_behaviors = list(TOOL_WELDER)
time = 4 SECONDS
category = CAT_ROBOT
/datum/crafting_recipe/vim
name = "Vim"
result = /obj/vehicle/sealed/mecha/vim
reqs = list(
/obj/item/clothing/head/helmet/space/eva = 1,
/obj/item/bodypart/leg/left/robot = 1,
/obj/item/bodypart/leg/right/robot = 1,
/obj/item/flashlight = 1,
/obj/item/assembly/voice = 1,
)
tool_behaviors = list(TOOL_SCREWDRIVER)
time = 6 SECONDS //Has a four second do_after when building manually
category = CAT_ROBOT
/datum/crafting_recipe/aitater
name = "intelliTater"
result = /obj/item/aicard/aitater
time = 3 SECONDS
tool_behaviors = list(TOOL_WIRECUTTER)
reqs = list(
/obj/item/aicard = 1,
/obj/item/food/grown/potato = 1,
/obj/item/stack/cable_coil = 5,
)
category = CAT_ROBOT
/datum/crafting_recipe/aitater/aispook
name = "intelliLantern"
result = /obj/item/aicard/aispook
reqs = list(
/obj/item/aicard = 1,
/obj/item/food/grown/pumpkin = 1,
/obj/item/stack/cable_coil = 5,
)
/datum/crafting_recipe/mod_core_standard
name = "MOD core (Standard)"
result = /obj/item/mod/core/standard
tool_behaviors = list(TOOL_SCREWDRIVER)
time = 10 SECONDS
reqs = list(
/obj/item/stack/cable_coil = 5,
/obj/item/stack/rods = 2,
/obj/item/stack/sheet/glass = 1,
/obj/item/organ/heart/ethereal = 1,
)
category = CAT_ROBOT
/datum/crafting_recipe/mod_core_ethereal
name = "MOD core (Ethereal)"
result = /obj/item/mod/core/ethereal
tool_behaviors = list(TOOL_SCREWDRIVER)
time = 10 SECONDS
reqs = list(
/datum/reagent/consumable/liquidelectricity = 5,
/obj/item/stack/cable_coil = 5,
/obj/item/stack/rods = 2,
/obj/item/stack/sheet/glass = 1,
/obj/item/reagent_containers/syringe = 1,
)
category = CAT_ROBOT
/datum/crafting_recipe/mod_core_soul
name = "MOD core (Soul)"
result = /obj/item/mod/core/soul
tool_behaviors = list(TOOL_SCREWDRIVER)
time = 10 SECONDS
reqs = list(
/obj/item/stack/cable_coil = 5,
/obj/item/stack/rods = 2,
/obj/item/stack/sheet/glass = 1,
/obj/item/soulstone = 1,
)
category = CAT_ROBOT