diff --git a/code/modules/mob/living/silicon/robot/chassis/quadruped.dm b/code/modules/mob/living/silicon/robot/chassis/quadruped.dm index 6635419986f..27288d94364 100644 --- a/code/modules/mob/living/silicon/robot/chassis/quadruped.dm +++ b/code/modules/mob/living/silicon/robot/chassis/quadruped.dm @@ -9,6 +9,7 @@ /obj/item/robot_builtin/dog_boop_module, /obj/item/robot_builtin/dog_tongue, /obj/item/robot_builtin/dog_jaws, + /obj/item/robot_builtin/dog_sleeper, ) if(emag_out) emag_out |= list( diff --git a/code/modules/mob/living/silicon/robot/modules/cybersun/triage.dm b/code/modules/mob/living/silicon/robot/modules/cybersun/triage.dm index 39888d52b3a..b36d3f0971f 100644 --- a/code/modules/mob/living/silicon/robot/modules/cybersun/triage.dm +++ b/code/modules/mob/living/silicon/robot/modules/cybersun/triage.dm @@ -8,6 +8,38 @@ store.provisioned_stack_store[/obj/item/stack/medical/advanced/bruise_pack] = new /datum/robot_resource/provisioned/preset/bandages/advanced store.provisioned_stack_store[/obj/item/stack/medical/advanced/ointment] = new /datum/robot_resource/provisioned/preset/ointment/advanced store.provisioned_stack_store[/obj/item/stack/nanopaste] = new /datum/robot_resource/provisioned/preset/nanopaste + store.provisioned_stack_store[/obj/item/stack/medical/splint] = new /datum/robot_resource/provisioned/preset/splints + +/datum/prototype/robot_module/cybersun/triage/create_mounted_item_descriptors(list/normal_out, list/emag_out) + ..() + if(normal_out) + normal_out |= list( + /obj/item/borg/sight/hud/med, + /obj/item/healthanalyzer/advanced, + /obj/item/reagent_containers/borghypo/merc, + /obj/item/reagent_containers/glass/beaker/large, + + // Surgery things. + /obj/item/autopsy_scanner, + /obj/item/surgical/scalpel/cyborg, + /obj/item/surgical/hemostat/cyborg, + /obj/item/surgical/retractor/cyborg, + /obj/item/surgical/cautery/cyborg, + /obj/item/surgical/bonegel/cyborg, + /obj/item/surgical/FixOVein/cyborg, + /obj/item/surgical/bonesetter/cyborg, + /obj/item/surgical/circular_saw/cyborg, + /obj/item/surgical/surgicaldrill/cyborg, + /obj/item/gripper/no_use/organ, + + // General healing. + /obj/item/gripper/medical, + /obj/item/shockpaddles/robot/combat, + /obj/item/reagent_containers/dropper, // Allows borg to fix necrosis apparently + /obj/item/reagent_containers/syringe/unbreakable, + /obj/item/robot_builtin/dog_mirrortool, + /obj/item/roller_holder, + ) #warn translate chassis below @@ -16,50 +48,3 @@ sprites = list( "Telemachus" = "toiletbotantag" ) - -/obj/item/robot_module/robot/syndicate/combat_medic/get_modules() - . = ..() - . |= list( - /obj/item/borg/sight/hud/med, - /obj/item/healthanalyzer/advanced, - /obj/item/reagent_containers/borghypo/merc, - - // Surgery things. - /obj/item/autopsy_scanner, - /obj/item/surgical/scalpel/cyborg, - /obj/item/surgical/hemostat/cyborg, - /obj/item/surgical/retractor/cyborg, - /obj/item/surgical/cautery/cyborg, - /obj/item/surgical/bonegel/cyborg, - /obj/item/surgical/FixOVein/cyborg, - /obj/item/surgical/bonesetter/cyborg, - /obj/item/surgical/circular_saw/cyborg, - /obj/item/surgical/surgicaldrill/cyborg, - /obj/item/gripper/no_use/organ, - - // General healing. - /obj/item/gripper/medical, - /obj/item/shockpaddles/robot/combat, - /obj/item/reagent_containers/dropper, // Allows borg to fix necrosis apparently - /obj/item/reagent_containers/syringe, - /obj/item/roller_holder - ) - -/obj/item/robot_module/robot/syndicate/combat_medic/Initialize(mapload) - . = ..() - - var/obj/item/stack/medical/splint/S = new /obj/item/stack/medical/splint(src) - S.uses_charge = 1 - S.charge_costs = list(1000) - S.synths = list(medicine) - . += S - -/obj/item/robot_module/robot/syndicate/combat_medic/respawn_consumable(var/mob/living/silicon/robot/R, var/amount) - - var/obj/item/reagent_containers/syringe/S = locate() in src.modules - if(S.mode == 2) - S.reagents.clear_reagents() - S.mode = initial(S.mode) - S.desc = initial(S.desc) - S.update_icon() - ..() diff --git a/code/modules/mob/living/silicon/robot/modules/nanotrasen/combat.dm b/code/modules/mob/living/silicon/robot/modules/nanotrasen/combat.dm index fa76d2233dd..6654d7ad007 100644 --- a/code/modules/mob/living/silicon/robot/modules/nanotrasen/combat.dm +++ b/code/modules/mob/living/silicon/robot/modules/nanotrasen/combat.dm @@ -14,6 +14,10 @@ /obj/item/melee/baton/robot, /obj/item/barrier_tape_roll/police, ) + if(emag_out) + emag_out |= list( + /obj/item/gun/energy/lasercannon/mounted, + ) return ..() #warn translate chassis below @@ -29,10 +33,6 @@ "ZOOM-BA" = "zoomba-combat" ) -/obj/item/robot_module/robot/security/combat/handle_special_module_init(mob/living/silicon/robot/R) - . = ..() - src.emag = new /obj/item/gun/energy/lasercannon/mounted(src) - /obj/item/robot_module/robot/quad/ert name = "Emergency Response module" channels = list("Security" = 1) @@ -51,12 +51,3 @@ . |= list( /obj/item/robot_builtin/dog_swordtail ) - -/obj/item/robot_module/robot/quad/ert/handle_special_module_init(mob/living/silicon/robot/R) - . = ..() - - src.emag = new /obj/item/gun/energy/laser/mounted(src) - - var/obj/item/robot_builtin/dog_sleeper/K9/B = new /obj/item/robot_builtin/dog_sleeper/K9(src) - B.water = synths_by_kind[MATSYN_WATER] - . += B diff --git a/code/modules/mob/living/silicon/robot/modules/nanotrasen/engineering.dm b/code/modules/mob/living/silicon/robot/modules/nanotrasen/engineering.dm index dbfce240477..bb999f1559b 100644 --- a/code/modules/mob/living/silicon/robot/modules/nanotrasen/engineering.dm +++ b/code/modules/mob/living/silicon/robot/modules/nanotrasen/engineering.dm @@ -24,6 +24,7 @@ /obj/item/stack/material/glass/reinforced, ) normal_out |= list( + /obj/item/matter_decompiler, /obj/item/borg/sight/meson, /obj/item/weldingtool/electric/mounted/cyborg, /obj/item/tool/screwdriver/cyborg, @@ -45,6 +46,10 @@ /obj/item/gripper/circuit, /obj/item/lightreplacer, ) + if(emag_out) + emag_out |= list( + /obj/item/melee/baton/robot/arm, + ) #warn translate chassis below /obj/item/robot_module/robot/engineering @@ -80,16 +85,6 @@ "W02M" = "worm-engineering" ) -/obj/item/robot_module/robot/engineering/handle_special_module_init(mob/living/silicon/robot/R) - . = ..() - - src.emag = new /obj/item/melee/baton/robot/arm(src) - - var/obj/item/matter_decompiler/MD = new /obj/item/matter_decompiler(src) - MD.metal = synths_by_kind[MATSYN_METAL] - MD.glass = synths_by_kind[MATSYN_GLASS] - src.modules += MD - /obj/item/robot_module/robot/quad/engi name = "EngiQuad module" sprites = list( diff --git a/code/modules/mob/living/silicon/robot/modules/nanotrasen/janitor.dm b/code/modules/mob/living/silicon/robot/modules/nanotrasen/janitor.dm index 6c3d6487e3c..ec0cfea1bc0 100644 --- a/code/modules/mob/living/silicon/robot/modules/nanotrasen/janitor.dm +++ b/code/modules/mob/living/silicon/robot/modules/nanotrasen/janitor.dm @@ -100,12 +100,6 @@ src.emag = new /obj/item/robot_builtin/dog_pounce(src) //Pounce - var/obj/item/robot_builtin/dog_sleeper/compactor/C = new /obj/item/robot_builtin/dog_sleeper/compactor(src) - C.metal = synths_by_kind[MATSYN_METAL] - C.glass = synths_by_kind[MATSYN_GLASS] - C.water = synths_by_kind[MATSYN_WATER] - . += C - //Sheet refiners can only produce raw sheets. var/obj/item/stack/material/cyborg/steel/M = new (src) M.name = "steel recycler" diff --git a/code/modules/mob/living/silicon/robot/modules/nanotrasen/medical.dm b/code/modules/mob/living/silicon/robot/modules/nanotrasen/medical.dm index 041ad16b709..4027325dfe9 100644 --- a/code/modules/mob/living/silicon/robot/modules/nanotrasen/medical.dm +++ b/code/modules/mob/living/silicon/robot/modules/nanotrasen/medical.dm @@ -7,12 +7,14 @@ ..() if(normal_out) normal_out |= list( + /obj/item/borg/sight/hud/med, /obj/item/healthanalyzer, /obj/item/reagent_containers/borghypo/surgeon, - /obj/item/autopsy_scanner, - /obj/item/reagent_scanner/adv, - /obj/item/roller_holder, /obj/item/reagent_containers/glass/beaker/large, + /obj/item/reagent_scanner/adv, + + // Surgery things. + /obj/item/autopsy_scanner, /obj/item/surgical/scalpel/cyborg, /obj/item/surgical/hemostat/cyborg, /obj/item/surgical/retractor/cyborg, @@ -23,10 +25,12 @@ /obj/item/surgical/circular_saw/cyborg, /obj/item/surgical/surgicaldrill/cyborg, /obj/item/gripper/no_use/organ, + /obj/item/gripper/medical, /obj/item/shockpaddles/robot, /obj/item/reagent_containers/dropper, // Allows surgeon borg to fix necrosis - /obj/item/reagent_containers/syringe, + /obj/item/reagent_containers/syringe/unbreakable, + /obj/item/roller_holder, /obj/item/robot_builtin/dog_mirrortool, ) @@ -34,6 +38,7 @@ ..() store.provisioned_stack_store[/obj/item/stack/medical/advanced/bruise_pack] = new /datum/robot_resource/provisioned/preset/bandages/advanced store.provisioned_stack_store[/obj/item/stack/medical/advanced/ointment] = new /datum/robot_resource/provisioned/preset/ointment/advanced + store.provisioned_stack_store[/obj/item/stack/medical/splint] = new /datum/robot_resource/provisioned/preset/splints store.provisioned_stack_store[/obj/item/stack/nanopaste] = new /datum/robot_resource/provisioned/preset/nanopaste #warn translate chassis below @@ -82,12 +87,6 @@ src.emag.name = "Polyacid spray" /obj/item/robot_module/robot/medical/surgeon/respawn_consumable(var/mob/living/silicon/robot/R, var/amount) - var/obj/item/reagent_containers/syringe/S = locate() in src.modules - if(S.mode == 2) - S.reagents.clear_reagents() - S.mode = initial(S.mode) - S.desc = initial(S.desc) - S.update_icon() if(src.emag) var/obj/item/reagent_containers/spray/PS = src.emag PS.reagents.add_reagent("pacid", 2 * amount) diff --git a/code/modules/mob/living/silicon/robot/modules/nanotrasen/security.dm b/code/modules/mob/living/silicon/robot/modules/nanotrasen/security.dm index 24a74e624c6..80499c34c60 100644 --- a/code/modules/mob/living/silicon/robot/modules/nanotrasen/security.dm +++ b/code/modules/mob/living/silicon/robot/modules/nanotrasen/security.dm @@ -1,8 +1,24 @@ /datum/prototype/robot_module/nanotrasen/security - use_robot_module_path = /obj/item/robot_module/robot/ + use_robot_module_path = /obj/item/robot_module/robot/security allowed_frames = list( ) +/datum/prototype/robot_module/nanotrasen/security/create_mounted_item_descriptors(list/normal_out, list/emag_out) + ..() + if(normal_out) + normal_out |= list( + /obj/item/handcuffs/cyborg, + /obj/item/melee/baton/robot, + /obj/item/gun/energy/taser/mounted/cyborg, + /obj/item/barrier_tape_roll/police, + /obj/item/reagent_containers/spray/pepper, + /obj/item/gripper/security, + ) + if(emag_out) + emag_out |= list( + /obj/item/gun/energy/laser/mounted, + ) + #warn translate chassis below /obj/item/robot_module/robot/security @@ -40,21 +56,6 @@ "W02M" = "worm-security" ) -/obj/item/robot_module/robot/security/general/get_modules() - . = ..() - . |= list( - /obj/item/handcuffs/cyborg, - /obj/item/melee/baton/robot, - /obj/item/gun/energy/taser/mounted/cyborg, - /obj/item/barrier_tape_roll/police, - /obj/item/reagent_containers/spray/pepper, - /obj/item/gripper/security - ) - -/obj/item/robot_module/robot/security/general/handle_special_module_init(mapload) - . = ..() - src.emag = new /obj/item/gun/energy/laser/mounted(src) - /obj/item/robot_module/robot/security/respawn_consumable(var/mob/living/silicon/robot/R, var/amount) var/obj/item/flash/F = locate() in src.modules if(F.broken) @@ -90,22 +91,9 @@ /obj/item/robot_module/robot/quad/sec/get_modules() . = ..() . |= list( - /obj/item/handcuffs/cyborg, //You need cuffs to be a proper sec borg! - /obj/item/robot_builtin/dog_jaws/big, //In case there's some kind of hostile mob. - /obj/item/melee/baton/robot, //Since the pounce module refused to work, they get a stunbaton instead. - /obj/item/barrier_tape_roll/police, //Block out crime scenes. - /obj/item/gun/energy/taser/mounted/cyborg, //They /are/ a security borg, after all. /obj/item/robot_builtin/dog_pounce //Pounce ) -/obj/item/robot_module/robot/quad/sec/handle_special_module_init(mob/living/silicon/robot/R) - . = ..() - src.emag = new /obj/item/gun/energy/laser/mounted(src) //Emag. Not a big problem. - - var/obj/item/robot_builtin/dog_sleeper/K9/B = new /obj/item/robot_builtin/dog_sleeper/K9(src) //Eat criminals. Bring them to the brig. - B.water = synths_by_kind[MATSYN_WATER] - src.modules += B - /obj/item/robot_module/robot/quad/sec/respawn_consumable(var/mob/living/silicon/robot/R, var/amount) var/obj/item/flash/F = locate() in src.modules if(F.broken) @@ -120,6 +108,3 @@ T.update_icon() else T.charge_tick = 0 - /*var/obj/item/melee/baton/robot/B = locate() in src.modules //Borg baton uses borg cell. - if(B && B.bcell) - B.bcell.give(amount)*/ diff --git a/code/modules/mob/living/silicon/robot/robot_resource.dm b/code/modules/mob/living/silicon/robot/robot_resource.dm index afbe5f45477..d03733b4882 100644 --- a/code/modules/mob/living/silicon/robot/robot_resource.dm +++ b/code/modules/mob/living/silicon/robot/robot_resource.dm @@ -65,6 +65,11 @@ //* presets - medical *// +/datum/robot_resource/provisioned/preset/splints + name = "splint magazine" + amount_max = 20 + regen_per_second = 2 + /datum/robot_resource/provisioned/preset/bandages name = "bandage roller" amount_max = 50 diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index fc1117b70ec..6592b8c1c5f 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -284,6 +284,9 @@ add_fingerprint(user) update_icon() +/obj/item/reagent_containers/syringe/unbreakable/break_syringe(mob/living/carbon/target, mob/living/carbon/user) + return + /obj/item/reagent_containers/syringe/ld50_syringe name = "Lethal Injection Syringe" desc = "A syringe used for lethal injections." @@ -351,3 +354,4 @@ /obj/item/reagent_containers/syringe/steroid/Initialize(mapload) . = ..() reagents.add_reagent("hyperzine",10) +