mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 05:00:55 +01:00
## About The Pull Request Open cabin mechs cannot be piloted by silicon pilots. MMI's, uploaded AI's, positronics or AI control beacons. The mechs can still be tracker beaconed. It can also be dominated via the malfunctioning AI power. Adds some flags to help flag which mechs can or cannot be beaconed, or which are silicon compatible. ## Why It's Good For The Game I'm not going to lie. I do feel a bit pressured on this change in particular. This is somewhat meant to be an intended feature. But I think the cats out of the bag on open cabin mechs and the ways to circumvent their downsides. And the more I think about it, the more I come to realize that I frankly haven't had many, if any, good interactions with a posibrain/MMI mech army. So making that more efficient is...a problem. Using a silicon-based pilot can help you evade the potential consequences of being a flesh and bone pilot inside of a steel mesh cabin and being shot repeatedly. So you may as well, in those instances, treat it as a sealed cabin mech. And these mechs are surprisingly pretty strong statistically. Especially the Paddy with its ability to equip actual lethal weaponry. They're cheap, can be mass produced, come out early, and durable. The only limitation is pilots, and if you're printing positronics and get ghosts for those positronics, you can usually just keep producing more. From a purely objective standpoint, there isn't much reason to not push out posi-paddys over any other mech. Rather than settle for a perfect answer, let's at least require some human pilots in these mechs so that their supposed downside is more of an Achilles heel. ## Changelog 🆑 balance: Caged mechs cannot accept silicon pilots. AI uploaded pilots, AI control beacons, MMIs or positronics. Malfunctioning AIs can still dominate these mechs. code: Allows for a higher degree of granularity for what mechs can and cannot accept by including additoinal mecha flags to block beacon type installations, pilot uploads and so on. /🆑
91 lines
2.8 KiB
Plaintext
91 lines
2.8 KiB
Plaintext
/obj/vehicle/sealed/mecha/honker
|
|
desc = "Produced by \"Tyranny of Honk, INC\", this exosuit is designed as heavy clown-support. Used to spread the fun and joy of life. HONK!"
|
|
name = "\improper H.O.N.K"
|
|
ui_theme = "neutral"
|
|
icon_state = "honker"
|
|
base_icon_state = "honker"
|
|
movedelay = 3
|
|
max_integrity = 140
|
|
force = 30
|
|
armor_type = /datum/armor/mecha_honker
|
|
max_temperature = 25000
|
|
destruction_sleep_duration = 40
|
|
exit_delay = 40
|
|
accesses = list(ACCESS_MECH_SCIENCE, ACCESS_THEATRE)
|
|
wreckage = /obj/structure/mecha_wreckage/honker
|
|
mecha_flags = CAN_STRAFE | IS_ENCLOSED | HAS_LIGHTS | MMI_COMPATIBLE | BEACON_TRACKABLE | AI_COMPATIBLE | BEACON_CONTROLLABLE
|
|
mech_type = EXOSUIT_MODULE_HONK
|
|
max_equip_by_category = list(
|
|
MECHA_L_ARM = 1,
|
|
MECHA_R_ARM = 1,
|
|
MECHA_UTILITY = 4,
|
|
MECHA_POWER = 1,
|
|
MECHA_ARMOR = 0,
|
|
)
|
|
var/squeak = TRUE
|
|
|
|
/datum/armor/mecha_honker
|
|
melee = -20
|
|
fire = 100
|
|
acid = 100
|
|
|
|
/obj/vehicle/sealed/mecha/honker/Initialize(mapload, built_manually)
|
|
. = ..()
|
|
AddElementTrait(TRAIT_WADDLING, REF(src), /datum/element/waddling)
|
|
|
|
/obj/vehicle/sealed/mecha/honker/play_stepsound()
|
|
if(squeak)
|
|
playsound(src, SFX_CLOWN_STEP, 70, 1)
|
|
squeak = !squeak
|
|
|
|
|
|
//DARK H.O.N.K.
|
|
|
|
/obj/vehicle/sealed/mecha/honker/dark
|
|
desc = "Produced by \"Tyranny of Honk, INC\", this exosuit is designed as heavy clown-support. This one has been painted black for maximum fun. HONK!"
|
|
name = "\improper Dark H.O.N.K"
|
|
ui_theme = "syndicate"
|
|
icon_state = "darkhonker"
|
|
max_integrity = 300
|
|
armor_type = /datum/armor/honker_dark
|
|
max_temperature = 35000
|
|
accesses = list(ACCESS_SYNDICATE)
|
|
wreckage = /obj/structure/mecha_wreckage/honker/dark
|
|
mecha_flags = ID_LOCK_ON | CAN_STRAFE | IS_ENCLOSED | HAS_LIGHTS | MMI_COMPATIBLE | AI_COMPATIBLE
|
|
max_equip_by_category = list(
|
|
MECHA_L_ARM = 1,
|
|
MECHA_R_ARM = 1,
|
|
MECHA_UTILITY = 3,
|
|
MECHA_POWER = 1,
|
|
MECHA_ARMOR = 2,
|
|
)
|
|
|
|
/obj/vehicle/sealed/mecha/honker/dark/loaded
|
|
equip_by_category = list(
|
|
MECHA_L_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/honker,
|
|
MECHA_R_ARM = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/launcher/banana_mortar/bombanana,
|
|
MECHA_UTILITY = list(/obj/item/mecha_parts/mecha_equipment/radio, /obj/item/mecha_parts/mecha_equipment/air_tank/full, /obj/item/mecha_parts/mecha_equipment/thrusters/ion),
|
|
MECHA_POWER = list(),
|
|
MECHA_ARMOR = list(),
|
|
)
|
|
|
|
/datum/armor/honker_dark
|
|
melee = 40
|
|
bullet = 40
|
|
laser = 50
|
|
energy = 35
|
|
bomb = 20
|
|
fire = 100
|
|
acid = 100
|
|
|
|
/obj/vehicle/sealed/mecha/honker/dark/loaded/populate_parts()
|
|
cell = new /obj/item/stock_parts/power_store/cell/hyper(src)
|
|
scanmod = new /obj/item/stock_parts/scanning_module/phasic(src)
|
|
capacitor = new /obj/item/stock_parts/capacitor/super(src)
|
|
servo = new /obj/item/stock_parts/servo/pico(src)
|
|
update_part_values()
|
|
|
|
/obj/structure/mecha_wreckage/honker/dark
|
|
name = "\improper Dark H.O.N.K wreckage"
|
|
icon_state = "darkhonker-broken"
|