diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm index b0c1b6f9f03..f297317a27f 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm @@ -2,8 +2,8 @@ //Sleeper /obj/item/device/dogborg/sleeper - name = "Medbelly" - desc = "Equipment for medical hound. A mounted sleeper that stabilizes patients and can inject reagents in the borg's reserves." + name = "Sleeper Belly" + desc = "A mounted sleeper that stabilizes patients and can inject reagents in the borg's reserves." icon = 'icons/mob/dogborg_vr.dmi' icon_state = "sleeper" w_class = ITEMSIZE_TINY @@ -17,6 +17,7 @@ var/eject_port = "ingestion" var/list/items_preserved = list() var/UI_open = FALSE + var/stabilizer = TRUE var/compactor = FALSE var/analyzer = FALSE var/decompiler = FALSE @@ -678,7 +679,7 @@ clean_cycle() return - if(patient && !compactor) //We're caring for the patient. Medical emergency! Or endo scene. + if(patient && stabilizer) //We're caring for the patient. Medical emergency! Or endo scene. update_patient() if(patient.health < 0) patient.adjustOxyLoss(-1) //Heal some oxygen damage if they're in critical condition @@ -696,24 +697,26 @@ /obj/item/device/dogborg/sleeper/K9 //The K9 portabrig name = "Brig-Belly" - desc = "Equipment for a K9 unit. A mounted portable-brig that holds criminals." + desc = "A mounted portable-brig that holds criminals for processing or 'processing'." icon_state = "sleeperb" injection_chems = null //So they don't have all the same chems as the medihound! + stabilizer = TRUE medsensor = FALSE /obj/item/device/dogborg/sleeper/compactor //Janihound gut. name = "Garbage Processor" - desc = "A mounted garbage compactor unit with fuel processor." + desc = "A mounted garbage compactor unit with fuel processor, capable of processing any kind of contaminant." icon_state = "compactor" injection_chems = null //So they don't have all the same chems as the medihound! compactor = TRUE recycles = TRUE max_item_count = 25 + stabilizer = FALSE medsensor = FALSE /obj/item/device/dogborg/sleeper/compactor/analyzer //sci-borg gut. name = "Digestive Analyzer" - desc = "A mounted destructive analyzer unit with fuel processor." + desc = "A mounted destructive analyzer unit with fuel processor, for 'deep scientific analysis'." icon_state = "analyzer" max_item_count = 10 startdrain = 100 @@ -722,12 +725,12 @@ /obj/item/device/dogborg/sleeper/compactor/decompiler name = "Matter Decompiler" - desc = "A mounted matter decompiling unit with fuel processor." + desc = "A mounted matter decompiling unit with fuel processor, for recycling anything and everyone." icon_state = "decompiler" max_item_count = 10 decompiler = TRUE recycles = TRUE - +/* /obj/item/device/dogborg/sleeper/compactor/delivery //Unfinished and unimplemented, still testing. name = "Cargo Belly" desc = "A mounted cargo bay unit for tagged deliveries." @@ -735,23 +738,25 @@ max_item_count = 20 delivery = TRUE recycles = FALSE - -/obj/item/device/dogborg/sleeper/supply //Miner borg belly - name = "Supply Satchel" - desc = "A mounted survival unit with fuel processor." +*/ +/obj/item/device/dogborg/sleeper/compactor/supply //Miner borg belly + name = "Supply Storage" + desc = "A mounted survival unit with fuel processor, helpful with both deliveries and assisting injured miners." icon_state = "sleeperc" injection_chems = list("glucose","inaprovaline","tricordrazine") max_item_count = 10 recycles = FALSE + stabilizer = TRUE medsensor = FALSE -/obj/item/device/dogborg/sleeper/brewer +/obj/item/device/dogborg/sleeper/compactor/brewer name = "Brew Belly" - desc = "A mounted drunk tank unit with fuel processor." + desc = "A mounted drunk tank unit with fuel processor, for putting away particularly rowdy patrons." icon_state = "brewer" injection_chems = null //So they don't have all the same chems as the medihound! max_item_count = 10 recycles = FALSE + stabilizer = TRUE medsensor = FALSE /obj/item/device/dogborg/sleeper/compactor/generic @@ -762,15 +767,45 @@ recycles = FALSE /obj/item/device/dogborg/sleeper/K9/ert - name = "ERT Belly" + name = "Emergency Storage" desc = "A mounted 'emergency containment cell'." icon_state = "sleeperert" - injection_chems = list("inaprovaline", "paracetamol") // short list + injection_chems = list("inaprovaline", "tramadol") // short list /obj/item/device/dogborg/sleeper/trauma //Trauma borg belly name = "Recovery Belly" - desc = "A downgraded model of the medihound sleeper." + desc = "A downgraded model of the sleeper belly, intended primarily for post-surgery recovery." icon_state = "sleeper" injection_chems = list("inaprovaline", "dexalin", "tricordrazine", "spaceacillin", "oxycodone") +/obj/item/device/dogborg/sleeper/lost + name = "Multipurpose Belly" + desc = "A multipurpose belly, capable of functioning as both sleeper and processor." + icon_state = "sleeperlost" + injection_chems = list("tricordrazine", "bicaridine", "dexalin", "anti_toxin", "tramadol", "spaceacillin") + compactor = TRUE + max_item_count = 25 + stabilizer = TRUE + medsensor = TRUE + +/obj/item/device/dogborg/sleeper/syndie + name = "Combat Triage Belly" + desc = "A mounted sleeper that stabilizes patients and can inject reagents in the borg's reserves. This one is for more extreme combat scenarios." + icon_state = "sleepersyndiemed" + injection_chems = list("healing_nanites", "hyperzine", "tramadol", "oxycodone", "spaceacillin", "peridaxon", "osteodaxon", "myelamine", "synthblood") + digest_multiplier = 2 + +/obj/item/device/dogborg/sleeper/K9/syndie + name = "Cell-Belly" + desc = "A mounted portable cell that holds anyone you wish for processing or 'processing'." + icon_state = "sleepersyndiebrig" + digest_multiplier = 3 + +/obj/item/device/dogborg/sleeper/compactor/syndie + name = "Advanced Matter Decompiler" + desc = "A mounted matter decompiling unit with fuel processor, for recycling anything and everyone in your way." + icon_state = "sleepersyndieeng" + max_item_count = 35 + digest_multiplier = 3 + #undef SLEEPER_INJECT_COST diff --git a/code/modules/mob/living/silicon/robot/robot_modules/event.dm b/code/modules/mob/living/silicon/robot/robot_modules/event.dm index f6605b5a028..8bd5c505ed2 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/event.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/event.dm @@ -37,7 +37,7 @@ C.synths = list(wire) src.modules += C - src.modules += new /obj/item/device/dogborg/sleeper(src) + src.modules += new /obj/item/device/dogborg/sleeper/lost(src) src.modules += new /obj/item/weapon/dogborg/pounce(src) /obj/item/weapon/robot_module/robot/gravekeeper @@ -74,4 +74,8 @@ var/obj/item/stack/material/cyborg/wood/W = new (src) W.synths = list(wood) - src.modules += W \ No newline at end of file + src.modules += W + + // For uwu + src.modules += new /obj/item/device/dogborg/sleeper/compactor/generic(src) + src.emag += new /obj/item/weapon/dogborg/pounce(src) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station.dm b/code/modules/mob/living/silicon/robot/robot_modules/station.dm index f72ecac81a4..666de996056 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -636,7 +636,7 @@ var/global/list/robot_modules = list( PB.name = "Auntie Hong's Final Sip" PB.desc = "A bottle of very special mix of alcohol and poison. Some may argue that there's alcohol to die for, but Auntie Hong took it to next level." - src.modules += new /obj/item/device/dogborg/sleeper/brewer(src) + src.modules += new /obj/item/device/dogborg/sleeper/compactor/brewer(src) src.emag += new /obj/item/weapon/dogborg/pounce(src) //Pounce @@ -684,7 +684,7 @@ var/global/list/robot_modules = list( src.modules += new /obj/item/weapon/mining_scanner(src) src.emag += new /obj/item/weapon/kinetic_crusher/machete/dagger(src) - src.modules += new /obj/item/device/dogborg/sleeper/supply(src) + src.modules += new /obj/item/device/dogborg/sleeper/compactor/supply(src) src.emag += new /obj/item/weapon/dogborg/pounce(src) /obj/item/weapon/robot_module/robot/research diff --git a/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm b/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm index 8f4c7eeceb6..bc608343f73 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm @@ -55,6 +55,9 @@ src.modules += new /obj/item/weapon/handcuffs/cyborg(src) src.modules += new /obj/item/weapon/melee/baton/robot(src) + src.modules += new /obj/item/device/dogborg/sleeper/K9/syndie(src) + src.modules += new /obj/item/weapon/dogborg/pounce(src) + // 95% engi-borg and 15% roboticist. /obj/item/weapon/robot_module/robot/syndicate/mechanist name = "mechanist robot module" @@ -117,6 +120,12 @@ RG.synths = list(metal, glass) src.modules += RG + var/obj/item/device/dogborg/sleeper/compactor/syndie/MD = new /obj/item/device/dogborg/sleeper/compactor/syndie(src) + MD.metal = metal + MD.glass = glass + src.modules += MD + + src.modules += new /obj/item/weapon/dogborg/pounce(src) @@ -170,6 +179,9 @@ src.modules += B src.modules += S + src.modules += new /obj/item/device/dogborg/sleeper/syndie(src) + src.modules += new /obj/item/weapon/dogborg/pounce(src) + /obj/item/weapon/robot_module/robot/syndicate/combat_medic/respawn_consumable(var/mob/living/silicon/robot/R, var/amount) var/obj/item/weapon/reagent_containers/syringe/S = locate() in src.modules diff --git a/code/modules/mob/living/silicon/robot/sprites/syndicate.dm b/code/modules/mob/living/silicon/robot/sprites/syndicate.dm index 37ddba3a167..f380621d5bc 100644 --- a/code/modules/mob/living/silicon/robot/sprites/syndicate.dm +++ b/code/modules/mob/living/silicon/robot/sprites/syndicate.dm @@ -55,4 +55,39 @@ /datum/robot_sprite/combat_medic/toiletbot name = "Telemachus" - sprite_icon_state = "toiletbot" \ No newline at end of file + sprite_icon_state = "toiletbot" + +// Wide/dogborg sprites + +/datum/robot_sprite/dogborg/combat_medic + module_type = "Combat Medic" + sprite_icon = 'icons/mob/robot/combat_medic_wide.dmi' + + var/has_sleeper_light_indicator = FALSE + +/datum/robot_sprite/dogborg/crisis/get_belly_overlay(var/mob/living/silicon/robot/ourborg) + if(has_sleeper_light_indicator) + if(ourborg.sleeper_state == 2 && !(ourborg.vore_selected?.silicon_belly_overlay_preference == "Vorebelly")) return "[sprite_icon_state]-sleeper_g" + else return "[sprite_icon_state]-sleeper_r" + else + return ..() + +/datum/robot_sprite/dogborg/combat_medic/do_equipment_glamour(var/obj/item/weapon/robot_module/module) + if(!has_custom_equipment_sprites) + return + + ..() + + var/obj/item/weapon/shockpaddles/robot/SP = locate() in module.modules + if(SP) + SP.name = "paws of life" + SP.desc = "Zappy paws. For fixing cardiac arrest." + SP.icon = 'icons/mob/dogborg_vr.dmi' + SP.icon_state = "defibpaddles0" + SP.attack_verb = list("batted", "pawed", "bopped", "whapped") + +/datum/robot_sprite/dogborg/combat_medic/vale + name = "Stray" + sprite_icon_state = "vale" + has_eye_light_sprites = TRUE + has_sleeper_light_indicator = TRUE \ No newline at end of file diff --git a/icons/mob/dogborg_vr.dmi b/icons/mob/dogborg_vr.dmi index 479b3c795a8..f6c27374d43 100644 Binary files a/icons/mob/dogborg_vr.dmi and b/icons/mob/dogborg_vr.dmi differ diff --git a/icons/mob/robot/combat_medic_wide.dmi b/icons/mob/robot/combat_medic_wide.dmi new file mode 100644 index 00000000000..d0e1a707ef9 Binary files /dev/null and b/icons/mob/robot/combat_medic_wide.dmi differ