Files
vgstation13/code/modules/mob/living/silicon/robot/robot_modules.dm
Eneocho 217fc7240f Proposal for crisisbot buff. (#37419)
* crisisbot tweak

* crisisbot upgrade

---------

Co-authored-by: west3436 <66280799+west3436@users.noreply.github.com>
2025-02-19 08:58:00 -05:00

673 lines
22 KiB
Plaintext

/obj/item/weapon/robot_module
name = "robot module"
w_class = W_CLASS_GIANT
var/speed_modifier = CYBORG_STANDARD_SPEED_MODIFIER
var/default_modules = TRUE //Do we start with a flash/light?
//Quirks
var/quirk_flags = MODULE_CAN_BE_PUSHED
//Icons
var/list/sprites = list()
//Modules
var/list/modules = list()
var/list/upgrades = list()
var/obj/item/emag = null
var/obj/item/borg/upgrade/jetpack = null
//HUD
var/list/sensor_augs
var/module_holder = "nomod"
//Languages
var/list/languages = list()
var/list/added_languages = list() //Bookkeeping
//Radio
var/radio_key = null
//Camera
var/list/networks = list()
var/list/added_networks = list() //Bookkeeping
//Respawnables
var/recharge_tick = 0
var/list/respawnables
var/respawnables_max_amount = 0
/obj/item/weapon/robot_module/Destroy()
if(istype(loc, /mob/living/silicon/robot))
var/mob/living/silicon/robot/R = loc
RemoveStatusFlags(R)
RemoveCameraNetworks(R)
ResetEncryptionKey(R)
UpdateModuleHolder(R, TRUE)
R.remove_module() //Helps remove screen references on robot end
for(var/obj/A in modules)
if(istype(A, /obj/item/weapon/storage) && loc)
var/obj/item/weapon/storage/S = A
S.empty_contents_to(loc)
qdel(A)
modules = null
if(emag)
QDEL_NULL(emag)
if(jetpack)
QDEL_NULL(jetpack)
QDEL_LIST_NULL(upgrades)
..()
/obj/item/weapon/robot_module/proc/on_emag()
if(emag)
modules += emag
rebuild()
/obj/item/weapon/robot_module/emp_act(severity)
if(modules)
for(var/obj/O in modules)
O.emp_act(severity)
if(emag)
emag.emp_act(severity)
..()
/obj/item/weapon/robot_module/New(var/mob/living/silicon/robot/R)
..()
add_languages(R)
if(default_modules)
AddDefaultModules()
UpdateModuleHolder(R)
AddCameraNetworks(R)
AddEncryptionKey(R)
ApplyStatusFlags(R)
/obj/item/weapon/robot_module/proc/AddDefaultModules()
modules += new /obj/item/device/flashlight(src)
modules += new /obj/item/device/flash(src)
/obj/item/weapon/robot_module/proc/UpdateModuleHolder(var/mob/living/silicon/robot/R, var/reset = FALSE)
if(R.hands) //To prevent runtimes when spawning borgs with forced module and no client.
if(reset)
R.hands.icon_state = initial(R.hands.icon_state)
else
if(module_holder)
R.hands.icon_state = module_holder
/obj/item/weapon/robot_module/proc/AddCameraNetworks(var/mob/living/silicon/robot/R)
if(!R.camera && networks.len > 0) //Alright this module adds the borg to a CAMERANET but it has no camera, so we give it one.
R.camera = new /obj/machinery/camera(R)
R.camera.c_tag = R.real_name
R.camera.network = list() //Empty list to prevent it from appearing where it isn't supposed to.
if(R.camera)
for(var/network in networks)
if(!(network in R.camera.network))
R.camera.network += network
added_networks += network
/obj/item/weapon/robot_module/proc/RemoveCameraNetworks(var/mob/living/silicon/robot/R)
if(R.camera)
for(var/removed_network in added_networks)
R.camera.network -= removed_network
added_networks = null
/obj/item/weapon/robot_module/proc/AddEncryptionKey(var/mob/living/silicon/robot/R)
if(!R.radio)
return
if(radio_key)
R.radio.insert_key(new radio_key(R.radio))
/obj/item/weapon/robot_module/proc/ResetEncryptionKey(var/mob/living/silicon/robot/R)
if(!R.radio)
return
if(radio_key)
R.radio.reset_key()
/obj/item/weapon/robot_module/proc/ApplyStatusFlags(var/mob/living/silicon/robot/R)
if(!(quirk_flags & MODULE_CAN_BE_PUSHED))
R.status_flags &= ~CANPUSH
/obj/item/weapon/robot_module/proc/RemoveStatusFlags(var/mob/living/silicon/robot/R)
if(!(quirk_flags & MODULE_CAN_BE_PUSHED))
R.status_flags |= CANPUSH
/obj/item/weapon/robot_module/proc/fix_modules() //call this proc to enable clicking the slot of a module to equip it.
var/mob/living/silicon/robot/owner = loc
if(!istype(owner))
return
var/list/equipped_slots = owner.get_all_slots()
for(var/obj/item/I in (modules + emag))
if(I in equipped_slots)
continue // mouse_opacity must not be 2 for equipped items
I.mouse_opacity = 2
/obj/item/weapon/robot_module/proc/respawn_consumable(var/mob/living/silicon/robot/R)
if(respawnables && respawnables.len)
for(var/T in respawnables)
if(!(locate(T) in modules))
modules -= null
var/obj/item/stack/O = new T(src)
if(istype(O,T))
O.max_amount = respawnables_max_amount
modules += O
O.amount = 1
/obj/item/weapon/robot_module/proc/rebuild()//Rebuilds the list so it's possible to add/remove items from the module
var/list/temp_list = modules
modules = list()
for(var/obj/O in temp_list)
if(O)
modules += O
/obj/item/weapon/robot_module/proc/add_languages(var/mob/living/silicon/robot/R)
for(var/language_name in languages)
if(R.add_language(language_name))
added_languages |= language_name
/obj/item/weapon/robot_module/proc/remove_languages(var/mob/living/silicon/robot/R)
for(var/language_name in added_languages)
R.remove_language(language_name, TRUE) //We remove the ability to speak but keep the ability to understand.
added_languages.Cut()
//Modules
/obj/item/weapon/robot_module/standard
name = "standard robot module"
module_holder = "standard"
sprites = list(
"Default" = "robot",
"Antique" = "robot_old",
"Droid" = "droid",
"Marina" = "marinaSD",
"Sleek" = "sleekstandard",
"#11" = "servbot",
"Spider" = "spider-standard",
"Kodiak - 'Polar'" = "kodiak-standard",
"Noble" = "Noble-STD",
"R34 - STR4a 'Durin'" = "durin"
)
respawnables = list(
/obj/item/stack/medical/bruise_pack,
/obj/item/stack/medical/ointment,
)
respawnables_max_amount = STANDARD_MAX_KIT
/obj/item/weapon/robot_module/standard/New()
..()
modules += new /obj/item/tool/crowbar(src)
modules += new /obj/item/weapon/extinguisher/mini(src)
modules += new /obj/item/weapon/melee/baton/loaded/borg(src)
modules += new /obj/item/tool/wrench(src)
modules += new /obj/item/device/healthanalyzer(src)
modules += new /obj/item/weapon/soap/nanotrasen(src)
modules += new /obj/item/device/taperecorder(src)
modules += new /obj/item/device/megaphone(src)
var/obj/item/stack/medical/bruise_pack/B = new /obj/item/stack/medical/bruise_pack(src)
B.max_amount = STANDARD_MAX_KIT
B.amount = STANDARD_MAX_KIT
modules += B
var/obj/item/stack/medical/ointment/O = new /obj/item/stack/medical/ointment(src)
O.max_amount = STANDARD_MAX_KIT
O.amount = STANDARD_MAX_KIT
modules += O
emag = new /obj/item/weapon/melee/energy/sword(src)
sensor_augs = list("Security", "Medical", "Mesons", "Disable")
fix_modules()
/obj/item/weapon/robot_module/medical
name = "medical robot module"
module_holder = "medical"
quirk_flags = MODULE_CAN_HANDLE_MEDICAL | MODULE_CAN_HANDLE_CHEMS | MODULE_CAN_LIFT_VIROTAPE
networks = list(CAMERANET_MEDBAY)
radio_key = /obj/item/device/encryptionkey/headset_med
sprites = list(
"Default" = "medbot",
"Needles" = "needles",
"Surgeon" = "surgeon",
"EVE" = "eve",
"Droid" = "droid-medical",
"Marina" = "marina",
"Sleek" = "sleekmedic",
"#17" = "servbot-medi",
"Kodiak - 'Arachne'" = "arachne",
"Noble" = "Noble-MED",
"R34 - MED6a 'Gibbs'" = "gibbs"
)
speed_modifier = CYBORG_MEDICAL_SPEED_MODIFIER
respawnables = list(
/obj/item/stack/medical/advanced/bruise_pack,
/obj/item/stack/medical/advanced/ointment,
/obj/item/stack/medical/splint
)
respawnables_max_amount = MEDICAL_MAX_KIT
/obj/item/weapon/robot_module/medical/New()
..()
modules += new /obj/item/tool/crowbar(src)
modules += new /obj/item/weapon/extinguisher/mini(src)
modules += new /obj/item/device/healthanalyzer(src)
modules += new /obj/item/device/antibody_scanner(src)
modules += new /obj/item/weapon/reagent_containers/borghypo(src)
modules += new /obj/item/weapon/gripper/chemistry(src)
modules += new /obj/item/weapon/reagent_containers/dropper/robodropper(src)
modules += new /obj/item/weapon/reagent_containers/syringe(src)
modules += new /obj/item/weapon/storage/bag/chem(src)
modules += new /obj/item/tool/scalpel(src)
modules += new /obj/item/tool/hemostat(src)
modules += new /obj/item/tool/retractor(src)
modules += new /obj/item/tool/circular_saw(src)
modules += new /obj/item/tool/cautery(src)
modules += new /obj/item/tool/bonegel(src)
modules += new /obj/item/tool/bonesetter(src)
modules += new /obj/item/tool/FixOVein(src)
modules += new /obj/item/tool/surgicaldrill(src)
modules += new /obj/item/weapon/revivalprod(src)
modules += new /obj/item/weapon/inflatable_dispenser/robot(src)
modules += new /obj/item/robot_rack/bed(src)
modules += new /obj/item/weapon/cookiesynth/lollipop(src)
var/obj/item/stack/medical/advanced/bruise_pack/B = new /obj/item/stack/medical/advanced/bruise_pack(src)
B.max_amount = MEDICAL_MAX_KIT
B.amount = MEDICAL_MAX_KIT
modules += B
var/obj/item/stack/medical/advanced/ointment/O = new /obj/item/stack/medical/advanced/ointment(src)
O.max_amount = MEDICAL_MAX_KIT
O.amount = MEDICAL_MAX_KIT
modules += O
var/obj/item/stack/medical/splint/S = new /obj/item/stack/medical/splint(src)
S.max_amount = MEDICAL_MAX_KIT
S.amount = MEDICAL_MAX_KIT
modules += S
emag = new /obj/item/weapon/reagent_containers/spray/pacid(src)
sensor_augs = list("Medical", "Disable")
fix_modules()
/obj/item/weapon/robot_module/engineering
name = "engineering robot module"
module_holder = "engineer"
quirk_flags = MODULE_CAN_BE_PUSHED | MODULE_HAS_MAGPULSE | MODULE_CAN_LIFT_ENGITAPE
networks = list(CAMERANET_ENGI)
radio_key = /obj/item/device/encryptionkey/headset_eng
sprites = list(
"Default" = "engibot",
"Engiseer" = "engiseer",
"Landmate" = "landmate",
"Wall-E" = "wall-e",
"Droid" = "droid-engineer",
"Marina" = "marinaEN",
"Sleek" = "sleekengineer",
"#25" = "servbot-engi",
"Kodiak" = "kodiak-eng",
"Noble" = "Noble-ENG",
"R34 - ENG7a 'Conagher'" = "conagher"
)
speed_modifier = CYBORG_ENGINEERING_SPEED_MODIFIER
respawnables = list(/obj/item/stack/cable_coil/yellow)
respawnables_max_amount = ENGINEERING_MAX_COIL
/obj/item/weapon/robot_module/engineering/New()
..()
modules += new /obj/item/tool/crowbar(src)
modules += new /obj/item/weapon/extinguisher(src)
modules += new /obj/item/weapon/extinguisher/foam(src)
modules += new /obj/item/device/rcd/borg/engineering(src)
modules += new /obj/item/device/rcd/rpd(src) //What could possibly go wrong?
modules += new /obj/item/tool/weldingtool/largetank(src)
modules += new /obj/item/tool/screwdriver(src)
modules += new /obj/item/tool/wrench(src)
modules += new /obj/item/tool/wirecutters(src)
modules += new /obj/item/device/multitool(src)
modules += new /obj/item/device/t_scanner(src)
modules += new /obj/item/device/analyzer(src)
modules += new /obj/item/taperoll/atmos(src)
modules += new /obj/item/taperoll/engineering(src)
modules += new /obj/item/device/material_synth/robot/engiborg(src)
modules += new /obj/item/device/silicate_sprayer(src)
modules += new /obj/item/device/holomap(src)
modules += new /obj/item/weapon/inflatable_dispenser/robot(src)
modules += new /obj/item/borg/fire_shield
var/obj/item/stack/cable_coil/W = new /obj/item/stack/cable_coil/yellow(src)
W.amount = ENGINEERING_MAX_COIL
W.max_amount = ENGINEERING_MAX_COIL
modules += W
emag = new /obj/item/borg/stun(src)
sensor_augs = list("Mesons", "Disable")
fix_modules()
/obj/item/weapon/robot_module/security
name = "security robot module"
module_holder = "security"
quirk_flags = MODULE_IS_THE_LAW | MODULE_CAN_LIFT_SECTAPE
radio_key = /obj/item/device/encryptionkey/headset_sec
sprites = list(
"Default" = "secbot",
"Bloodhound" = "bloodhound",
"Securitron" = "securitron",
"Droid 'Black Knight'" = "droid-security",
"Marina" = "marinaSC",
"Sleek" = "sleeksecurity",
"#9" = "servbot-sec",
"Kodiak" = "kodiak-sec",
"Noble" = "Noble-SEC",
"R34 - SEC10a 'Woody'" = "woody"
)
speed_modifier = CYBORG_SECURITY_SPEED_MODIFIER
/obj/item/weapon/robot_module/security/New()
..()
modules += new /obj/item/tool/crowbar(src)
modules += new /obj/item/weapon/melee/baton/loaded/borg(src)
modules += new /obj/item/weapon/gun/energy/taser/cyborg(src)
modules += new /obj/item/weapon/handcuffs/cyborg(src)
modules += new /obj/item/weapon/reagent_containers/spray/pepper(src)
modules += new /obj/item/taperoll/police(src)
modules += new /obj/item/device/hailer(src)
emag = new /obj/item/weapon/gun/energy/laser/cyborg(src)
sensor_augs = list("Security", "Medical", "Disable")
fix_modules()
/obj/item/weapon/robot_module/janitor
name = "janitorial robot module"
module_holder = "janitor"
quirk_flags = MODULE_CAN_BE_PUSHED | MODULE_CLEAN_ON_MOVE
sprites = list(
"Default" = "janbot",
"Mechaduster" = "mechaduster",
"HAN-D" = "han-d",
"Mop Gear Rex" = "mopgearrex",
"Droid - 'Mopbot'" = "droid-janitor",
"Marina" = "marinaJN",
"Sleek" = "sleekjanitor",
"#29" = "servbot-jani",
"Noble" = "Noble-JAN",
"R34 - CUS3a 'Flynn'" = "flynn"
)
speed_modifier = CYBORG_JANITOR_SPEED_MODIFIER
/obj/item/weapon/robot_module/janitor/New()
..()
modules += new /obj/item/tool/crowbar(src)
modules += new /obj/item/weapon/extinguisher/mini(src)
modules += new /obj/item/weapon/soap/nanotrasen(src)
modules += new /obj/item/weapon/storage/bag/trash(src)
modules += new /obj/item/weapon/mop(src)
modules += new /obj/item/device/lightreplacer/borg(src)
modules += new /obj/item/weapon/reagent_containers/glass/bucket(src)
emag = new /obj/item/weapon/reagent_containers/spray/lube(src)
fix_modules()
/obj/item/weapon/robot_module/butler
name = "service robot module"
module_holder = "service"
quirk_flags = MODULE_CAN_BE_PUSHED | MODULE_CAN_HANDLE_CHEMS | MODULE_CAN_HANDLE_FOOD | MODULE_CAN_BUY
radio_key = /obj/item/device/encryptionkey/headset_service
sprites = list(
"Default - 'Butler'" = "servbot_m",
"Default - 'Waitress'" = "servbot_f",
"Default - 'Bro'" = "brobot",
"Default - 'Fro'" = "frobot",
"Default - 'Maximillion'" = "maximillion",
"Default - 'Hydro'" = "hydrobot",
"Toiletbot" = "toiletbot",
"Marina" = "marinaSV",
"Sleek" = "sleekservice",
"#27" = "servbot-service",
"Kodiak - 'Teddy'" = "kodiak-service",
"Noble" = "Noble-SRV",
"R34 - SRV9a 'Llyod'" = "lloyd"
)
languages = list(
LANGUAGE_UNATHI,
LANGUAGE_CATBEAST,
LANGUAGE_SKRELLIAN,
LANGUAGE_GREY,
LANGUAGE_CLATTER,
LANGUAGE_VOX,
LANGUAGE_GOLEM,
LANGUAGE_SLIME,
)
speed_modifier = CYBORG_SERVICE_SPEED_MODIFIER
/obj/item/weapon/robot_module/butler/New()
..()
modules += new /obj/item/tool/crowbar(src)
modules += new /obj/item/weapon/extinguisher/mini(src)
modules += new /obj/item/weapon/gripper/service(src)
modules += new /obj/item/weapon/pen/robopen(src)
modules += new /obj/item/weapon/dice/borg(src)
modules += new /obj/item/device/rcd/borg/rsf(src)
modules += new /obj/item/device/rcd/tile_painter(src)
modules += new /obj/item/weapon/lighter/zippo(src)
modules += new /obj/item/device/instrument/instrument_synth(src)
modules += new /obj/item/weapon/tray/robotray(src)
modules += new /obj/item/weapon/reagent_containers/dropper/robodropper(src)
modules += new /obj/item/weapon/reagent_containers/food/drinks/shaker(src)
modules += new /obj/item/weapon/reagent_containers/glass/rag/robo(src)
modules += new /obj/item/device/chem_synth/robot/service(src)
modules += new /obj/item/weapon/kitchen/utensil/knife/large(src)
modules += new /obj/item/weapon/kitchen/rollingpin(src)
modules += new /obj/item/weapon/storage/bag/food/borg(src)
emag = new /obj/item/weapon/kitchen/utensil/knife/large/butch(src)
fix_modules()
/obj/item/weapon/robot_module/butler/on_emag()
//add some spicy chemicals to the synth
for(var/M in modules)
if(istype(M, /obj/item/device/chem_synth/robot/service))
var/obj/item/device/chem_synth/robot/service/synth = M
synth.emag_act(null)
break
. = ..()
/obj/item/weapon/robot_module/miner
name = "supply robot module"
module_holder = "miner"
quirk_flags = MODULE_CAN_CLOSE_CLOSETS
networks = list(CAMERANET_MINE)
radio_key = /obj/item/device/encryptionkey/headset_mining
sprites = list(
"Default" = "minerbot",
"Treadhead" = "miner",
"Wall-A" = "wall-a",
"Droid" = "droid-miner",
"Marina" = "marinaMN",
"Sleek" = "sleekminer",
"#31" = "servbot-miner",
"Kodiak" = "kodiak-miner",
"Noble" = "Noble-SUP",
"R34 - MIN2a 'Ishimura'" = "ishimura"
)
speed_modifier = CYBORG_SUPPLY_SPEED_MODIFIER
respawnables = list(/obj/item/stack/package_wrap)
respawnables_max_amount = SUPPLY_MAX_WRAP
/obj/item/weapon/robot_module/miner/New()
..()
modules += new /obj/item/tool/crowbar(src)
modules += new /obj/item/weapon/extinguisher/mini(src)
modules += new /obj/item/weapon/storage/bag/ore/auto(src)
modules += new /obj/item/weapon/pickaxe/drill/borg(src)
modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src)
modules += new /obj/item/device/mining_scanner(src)
modules += new /obj/item/weapon/gun/energy/kinetic_accelerator/cyborg(src)
modules += new /obj/item/weapon/gripper/no_use/inserter(src)
modules += new /obj/item/device/destTagger/cyborg(src)
modules += new /obj/item/weapon/storage/bag/clipboard(src)
modules += new /obj/item/device/gps/cyborg(src)
var/obj/item/stack/package_wrap/W = new /obj/item/stack/package_wrap(src)
W.amount = SUPPLY_MAX_WRAP
W.max_amount = SUPPLY_MAX_WRAP
modules += W
emag = new /obj/item/borg/stun(src)
sensor_augs = list("Mesons", "Disable")
fix_modules()
/obj/item/weapon/robot_module/syndicate
name = "syndicate-modded combat robot module"
module_holder = "malf"
quirk_flags = MODULE_IS_DEFINITIVE | MODULE_HAS_PROJ_RES
networks = list(CAMERANET_NUKE)
radio_key = /obj/item/device/encryptionkey/syndicate
speed_modifier = CYBORG_SYNDICATE_SPEED_MODIFIER
/obj/item/weapon/robot_module/syndicate/New()
..()
modules += new /obj/item/tool/crowbar(src)
fix_modules()
/obj/item/weapon/robot_module/syndicate/blitzkrieg
name = "syndicate blitzkrieg robot module"
sprites = list(
"Motile" = "motile-syndie"
)
/obj/item/weapon/robot_module/syndicate/blitzkrieg/New()
..()
modules += new /obj/item/weapon/card/emag(src)
modules += new /obj/item/tool/wrench(src) //This thing supposed to be a hacked and modded combat cyborg, is it really going to be stopped by a chair or table?
modules += new /obj/item/weapon/pinpointer/nukeop(src)
modules += new /obj/item/weapon/gun/projectile/automatic/c20r(src)
modules += new /obj/item/robot_rack/ammo/a12mm(src)
modules += new /obj/item/weapon/pickaxe/plasmacutter/heat_axe(src)
sensor_augs = list("Thermal", "Light Amplification", "Disable")
fix_modules()
/obj/item/weapon/robot_module/syndicate/crisis
name = "syndicate crisis robot module"
sprites = list(
"Droid" = "droid-crisis"
)
respawnables = list(
/obj/item/stack/medical/splint
)
respawnables_max_amount = MEDICAL_MAX_KIT
/obj/item/weapon/robot_module/syndicate/crisis/New()
..()
quirk_flags |= MODULE_CAN_HANDLE_MEDICAL | MODULE_CAN_HANDLE_CHEMS | MODULE_CAN_LIFT_VIROTAPE
modules += new /obj/item/weapon/card/emag(src)
modules += new /obj/item/weapon/extinguisher/mini(src)
modules += new /obj/item/weapon/inflatable_dispenser(src)
modules += new /obj/item/device/chameleon(src)
modules += new /obj/item/weapon/gripper/chemistry(src)
modules += new /obj/item/device/healthanalyzer(src)
modules += new /obj/item/device/reagent_scanner/adv(src)
modules += new /obj/item/weapon/reagent_containers/borghypo/crisis(src)
modules += new /obj/item/weapon/reagent_containers/borghypo/biofoam(src)
modules += new /obj/item/weapon/reagent_containers/spray/lube(src)
modules += new /obj/item/weapon/revivalprod(src)
modules += new /obj/item/weapon/switchtool/surgery/maxed(src)
modules += new /obj/item/robot_rack/bed/syndie(src)
modules += new /obj/item/weapon/cookiesynth/lollipop(src)
var/obj/item/stack/medical/splint/K = new /obj/item/stack/medical/splint(src)
K.max_amount = MEDICAL_MAX_KIT
K.amount = MEDICAL_MAX_KIT
modules += K
sensor_augs = list("Thermal", "Medical", "Disable")
fix_modules()
/obj/item/weapon/robot_module/combat
name = "combat robot module"
module_holder = "malf"
quirk_flags = MODULE_IS_THE_LAW | MODULE_HAS_PROJ_RES
radio_key = /obj/item/device/encryptionkey/headset_sec
sprites = list(
"Bladewolf" = "bladewolf",
"Bladewolf MK-2" = "bladewolfmk2",
"Mr. Gutsy" = "mrgutsy",
"Droid" = "droid-combat",
"Droid - 'Rottweiler'" = "rottweiler-combat",
"Marina" = "marinaCB",
"#41" = "servbot-combat",
"Kodiak - 'Grizzly'" = "kodiak-combat",
"Sleek" = "sleekcombat",
"R34 - WAR8a 'Chesty'" = "chesty"
)
speed_modifier = CYBORG_COMBAT_SPEED_MODIFIER
/obj/item/weapon/robot_module/combat/New()
..()
modules += new /obj/item/tool/crowbar(src)
modules += new /obj/item/weapon/gun/energy/laser/cyborg(src)
modules += new /obj/item/weapon/pickaxe/plasmacutter(src)
modules += new /obj/item/weapon/pickaxe/jackhammer/combat(src)
modules += new /obj/item/borg/combat/shield(src)
modules += new /obj/item/borg/combat/mobility(src)
modules += new /obj/item/tool/wrench(src) //Is a combat machine really going to be stopped by a chair?
emag = new /obj/item/weapon/gun/energy/laser/cannon/cyborg(src)
sensor_augs = list("Security", "Medical", "Mesons", "Thermal", "Light Amplification", "Disable")
fix_modules()
/obj/item/weapon/robot_module/tg17355
name = "tg17355 robot module"
module_holder = "brobot"
quirk_flags = MODULE_CAN_BE_PUSHED | MODULE_IS_DEFINITIVE
sprites = list(
"Peacekeeper" = "peaceborg",
"Omoikane" = "omoikane"
)
speed_modifier = CYBORG_TG17355_SPEED_MODIFIER
/obj/item/weapon/robot_module/tg17355/New()
..()
modules += new /obj/item/weapon/extinguisher/mini(src)
modules += new /obj/item/weapon/cookiesynth(src)
modules += new /obj/item/device/harmalarm(src)
modules += new /obj/item/weapon/reagent_containers/borghypo/peace(src)
modules += new /obj/item/weapon/inflatable_dispenser(src)
modules += new /obj/item/borg/cyborghug(src)
emag = new /obj/item/weapon/reagent_containers/borghypo/peace/hacked(src)
sensor_augs = list("Medical", "Disable")
fix_modules()
/obj/item/weapon/robot_module/starman
name = "starman robot module"
module_holder = "starman"
quirk_flags = MODULE_IS_DEFINITIVE | MODULE_IS_FLASHPROOF
sprites = list(
"Basic" = "starman",
)
speed_modifier = CYBORG_STARMAN_SPEED_MODIFIER
default_modules = FALSE
/obj/item/weapon/robot_module/starman/New()
modules += new /obj/item/weapon/gun/energy/starman_beam(src)
modules += new /obj/item/device/starman_hailer(src)
sensor_augs = list("Thermal", "Light Amplification", "Disable")
fix_modules()