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 da48b4f230f..7fda7ef0a5e 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 @@ -479,8 +479,7 @@ //Cleaning looks better with red on, even with nobody in it if(cleaning || (length(contents) > 10) || (decompiler && (length(contents) > 5)) || (analyzer && (length(contents) > 1))) - hound.sleeper_r = TRUE - hound.sleeper_g = FALSE + hound.sleeper_state = 1 hound.update_icon() return @@ -488,20 +487,14 @@ if(patient in contents) if(medsensor) if(patient_laststat != patient.stat) - if(cleaning) - hound.sleeper_r = TRUE - hound.sleeper_g = FALSE - patient_laststat = patient.stat - else if(patient.stat & DEAD) - hound.sleeper_r = TRUE - hound.sleeper_g = FALSE + if(cleaning || (patient.stat & DEAD)) + hound.sleeper_state = 1 patient_laststat = patient.stat else - hound.sleeper_r = FALSE - hound.sleeper_g = TRUE + hound.sleeper_state = 2 patient_laststat = patient.stat else - hound.sleeper_r = TRUE + hound.sleeper_state = 1 patient_laststat = patient.stat //Update icon hound.update_icon() @@ -513,20 +506,14 @@ for(var/mob/living/carbon/human/C in contents) patient = C if(medsensor) - if(cleaning) - hound.sleeper_r = TRUE - hound.sleeper_g = FALSE - patient_laststat = patient.stat - else if(patient.stat & DEAD) - hound.sleeper_r = TRUE - hound.sleeper_g = FALSE + if(cleaning || (patient.stat & DEAD)) + hound.sleeper_state = 1 patient_laststat = patient.stat else - hound.sleeper_r = FALSE - hound.sleeper_g = TRUE + hound.sleeper_state = 2 patient_laststat = patient.stat else - hound.sleeper_r = TRUE + hound.sleeper_state = 1 patient_laststat = patient.stat //Update icon and return new patient hound.update_icon() @@ -534,8 +521,7 @@ //Couldn't find anyone, and not cleaning if(!cleaning && !patient) - hound.sleeper_r = FALSE - hound.sleeper_g = FALSE + hound.sleeper_state = 0 patient_laststat = null patient = null @@ -779,7 +765,6 @@ name = "Brew Belly" desc = "A mounted drunk tank unit with fuel processor." icon_state = "brewer" - injection_chems = null /obj/item/device/dogborg/sleeper/K9/ert name = "ERT Belly" @@ -787,11 +772,10 @@ icon_state = "sleeperert" injection_chems = list("inaprovaline", "paracetamol") // short list -/obj/item/device/dogborg/sleeper/compactor/trauma //Trauma borg belly +/obj/item/device/dogborg/sleeper/trauma //Trauma borg belly name = "Recovery Belly" desc = "A downgraded model of the medihound sleeper." icon_state = "sleeper" injection_chems = list("inaprovaline", "dexalin", "bicaridine", "anti_toxin", "spaceacillin", "paracetamol") - max_item_count = 1 #undef SLEEPER_INJECT_COST diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index b9fc9004559..45c5fd3eab6 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -859,7 +859,7 @@ var/show_belly = FALSE if(sprite_datum.has_vore_belly_sprites) if(vore_selected.silicon_belly_overlay_preference == "Sleeper") - if(sleeper_g || sleeper_r) + if(sleeper_state) show_belly = TRUE else if(vore_selected.silicon_belly_overlay_preference == "Vorebelly") if(LAZYLEN(vore_selected.contents) >= vore_selected.visible_belly_minimum_prey) 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 67169c73fcc..73417e1dafd 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -212,30 +212,11 @@ var/global/list/robot_modules = list( channels = list("Medical" = 1) networks = list(NETWORK_MEDICAL) subsystems = list(/mob/living/silicon/proc/subsystem_crew_monitor) + pto_type = PTO_MEDICAL /obj/item/weapon/robot_module/robot/medical/surgeon name = "surgeon robot module" - sprites = list( - "M-USE NanoTrasen" = "robotMedi", - "Cabeiri" = "eyebot-medical", - "Haruka" = "marinaMD", - "Minako" = "arachne", - "Usagi" = "tallwhite", - "Telemachus" = "toiletbotsurgeon", - "WTOperator" = "sleekcmo", - "XI-ALP" = "heavyMed", - "Basic" = "Medbot", - "Advanced Droid" = "droid-medical", - "Needles" = "medicalrobot", - "Drone" = "drone-surgery", - "Handy" = "handy-med", - "Insekt" = "insekt-Med", - "Usagi-II" = "tall2medical", - "Pyralis" = "Glitterfly-Surgeon", - "Decapod" = "decapod-Surgeon", - "Pneuma" = "pneuma-Surgeon", - "Tower" = "drider-Surgeon" - ) + /obj/item/weapon/robot_module/robot/medical/surgeon/New() ..() @@ -297,27 +278,6 @@ var/global/list/robot_modules = list( /obj/item/weapon/robot_module/robot/medical/crisis name = "crisis robot module" - sprites = list( - "M-USE NanoTrasen" = "robotMedi", - "Cabeiri" = "eyebot-medical", - "Haruka" = "marinaMD", - "Minako" = "arachne", - "Usagi" = "tallwhite", - "Telemachus" = "toiletbotmedical", - "WTOperator" = "sleekmedic", - "XI-ALP" = "heavyMed", - "Basic" = "Medbot", - "Advanced Droid" = "droid-medical", - "Needles" = "medicalrobot", - "Drone - Medical" = "drone-medical", - "Drone - Chemistry" = "drone-chemistry", - "Insekt" = "insekt-Med", - "Usagi-II" = "tall2medical", - "Pyralis" = "Glitterfly-Crisis", - "Decapod" = "decapod-Crisis", - "Pneuma" = "pneuma-Crisis", - "Tower" = "drider-Crisis" - ) /obj/item/weapon/robot_module/robot/medical/crisis/New() ..() @@ -376,28 +336,7 @@ var/global/list/robot_modules = list( channels = list("Engineering" = 1) networks = list(NETWORK_ENGINEERING) subsystems = list(/mob/living/silicon/proc/subsystem_power_monitor) - sprites = list( - "M-USE NanoTrasen" = "robotEngi", - "Cabeiri" = "eyebot-engineering", - "Haruka" = "marinaENG", - "Usagi" = "tallyellow", - "Telemachus" = "toiletbotengineering", - "WTOperator" = "sleekce", - "XI-GUS" = "spidereng", - "XI-ALP" = "heavyEng", - "Basic" = "Engineering", - "Antique" = "engineerrobot", - "Landmate" = "landmate", - "Landmate - Treaded" = "engiborg+tread", - "Drone" = "drone-engineer", - "Treadwell" = "treadwell", - "Handy" = "handy-engineer", - "Usagi-II" = "tall2engineer", - "Pyralis" = "Glitterfly-Engineering", - "Decapod" = "decapod-Engineering", - "Pneuma" = "pneuma-Engineering", - "Tower" = "drider-Engineering" - ) + pto_type = PTO_ENGINEERING /obj/item/weapon/robot_module/robot/engineering/general/New() ..() diff --git a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm index f80200c4384..591f983d9d2 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station_vr.dm @@ -27,28 +27,6 @@ src.modules += new /obj/item/device/sleevemate(src) //Lets them scan people. . = ..() //Any Global vore modules will come from here -/obj/item/weapon/robot_module/robot/medical - pto_type = PTO_MEDICAL - -/obj/item/weapon/robot_module/robot/medical/surgeon - vr_sprites = list( - "Acheron" = "mechoid-Medical", - "Shellguard Noble" = "Noble-MED", - "ZOOM-BA" = "zoomba-medical", - "W02M" = "worm-surgeon", - "Feminine Humanoid" = "uptall-medical" - ) - -/obj/item/weapon/robot_module/robot/medical/crisis - vr_sprites = list( - "Handy" = "handy-med", - "Acheron" = "mechoid-Medical", - "Shellguard Noble" = "Noble-MED", - "ZOOM-BA" = "zoomba-crisis", - "W02M" = "worm-crisis", - "Feminine Humanoid" = "uptall-crisis" - ) - /obj/item/weapon/robot_module/robot/clerical pto_type = PTO_CIVILIAN @@ -94,18 +72,6 @@ "Feminine Humanoid" = "uptall-security" ) -/obj/item/weapon/robot_module/robot/engineering - pto_type = PTO_ENGINEERING - -/obj/item/weapon/robot_module/robot/engineering/general - vr_sprites = list( - "Acheron" = "mechoid-Engineering", - "Shellguard Noble" = "Noble-ENG", - "ZOOM-BA" = "zoomba-engineering", - "W02M" = "worm-engineering", - "Feminine Humanoid" = "uptall-engineering" - ) - /obj/item/weapon/robot_module/robot/security/knine name = "k9 robot module" sprites = list( @@ -184,20 +150,6 @@ /obj/item/weapon/robot_module/robot/medical/medihound name = "MediHound module" - sprites = list( - "Medical Hound" = "medihound", - "Dark Medical Hound (Static)" = "medihounddark", - "Mediborg model V-2" = "vale", - "Borgi" = "borgi-medi", - "Drake" = "drakemed", - "Raptor V-4" = "medraptor", - "MEKA" = "mekamed", - "MEKA v2" = "newmekamed", - "NIKA" = "fmekamed", - "NIKO" = "mmekamed", - "K4T" = "k4tmed", - "K4Talt" = "k4tmed_alt1" - ) /obj/item/weapon/robot_module/robot/medical/medihound/New(var/mob/living/silicon/robot/R) src.modules += new /obj/item/weapon/dogborg/jaws/small(src) //In case a patient is being attacked by carp. @@ -261,12 +213,6 @@ /obj/item/weapon/robot_module/robot/medical/traumahound name = "traumahound robot module" - sprites = list( - "Traumahound" = "traumavale", - "Drake" = "draketrauma", - "Borgi" = "borgi-trauma", - "Raptor V-4" = "traumaraptor" - ) /obj/item/weapon/robot_module/robot/medical/traumahound/New(var/mob/living/silicon/robot/R) src.modules += new /obj/item/device/healthanalyzer(src) @@ -304,7 +250,7 @@ H.water = water src.modules += H - var/obj/item/device/dogborg/sleeper/compactor/trauma/B = new /obj/item/device/dogborg/sleeper/compactor/trauma(src) //So they can nom people and heal them + var/obj/item/device/dogborg/sleeper/trauma/B = new /obj/item/device/dogborg/sleeper/trauma(src) //So they can nom people and heal them B.water = water src.modules += B @@ -542,21 +488,6 @@ /obj/item/weapon/robot_module/robot/engineering/engiedog name = "Construction Hound module" - sprites = list( - "Pupdozer" = "pupdozer", - "Borgi" = "borgi-eng", - "V2 Engidog" = "thottbot", - "EngiHound" = "engihound", - "EngiHoundDark" = "engihounddark", - "Drake" = "drakeeng", - "Raptor V-4" = "engiraptor", - "MEKA" = "mekaengi", - "MEKA v2" = "newmekaengi", - "NIKO" = "mmekaeng", - "NIKA" = "fmekaeng", - "K4T" = "k4tengi", - "K4Talt" = "k4tengi_alt1" - ) can_be_pushed = 0 /obj/item/weapon/robot_module/robot/engineering/engiedog/New(var/mob/living/silicon/robot/R) diff --git a/code/modules/mob/living/silicon/robot/robot_vr.dm b/code/modules/mob/living/silicon/robot/robot_vr.dm index 2bb0c916e2d..48c1cf6b84e 100644 --- a/code/modules/mob/living/silicon/robot/robot_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_vr.dm @@ -1,6 +1,5 @@ /mob/living/silicon/robot - var/sleeper_g //Set to True only for Medical mechs when patient alive - var/sleeper_r //Used in every other case. Currently also for Vorebellies. Ideally vorebellies will use sleeper_o once icons are made + var/sleeper_state = 0 // 0 for empty, 1 for normal, 2 for mediborg-healthy var/leaping = 0 var/pounce_cooldown = 0 var/pounce_cooldown_time = 40 diff --git a/code/modules/mob/living/silicon/robot/sprites/engineering.dm b/code/modules/mob/living/silicon/robot/sprites/engineering.dm new file mode 100644 index 00000000000..90089290a2d --- /dev/null +++ b/code/modules/mob/living/silicon/robot/sprites/engineering.dm @@ -0,0 +1,209 @@ +// Regular sprites + +/datum/robot_sprite/engineering + module_type = "Engineering" + sprite_icon = 'icons/mob/robot/engineering.dmi' + +/datum/robot_sprite/engineering/default + name = DEFAULT_ROBOT_SPRITE_NAME + default_sprite = TRUE + sprite_icon_state = "default" + +/datum/robot_sprite/engineering/eyebot + name = "Cabeiri" + sprite_icon_state = "eyebot" + +/datum/robot_sprite/engineering/marina + name = "Haruka" + sprite_icon_state = "marina" + +/datum/robot_sprite/engineering/tall + name = "Usagi" + sprite_icon_state = "tall" + +/datum/robot_sprite/engineering/toiletbot + name = "Telemachus" + sprite_icon_state = "toiletbot" + +/datum/robot_sprite/engineering/sleek + name = "WTOperator" + sprite_icon_state = "sleek" + +/datum/robot_sprite/engineering/spider + name = "XI-GUS" + sprite_icon_state = "spider" + +/datum/robot_sprite/engineering/heavy + name = "XI-ALP" + sprite_icon_state = "heavy" + +/datum/robot_sprite/engineering/old + name = "Basic" + sprite_icon_state = "old" + +/datum/robot_sprite/engineering/oldbot + name = "Antique" + sprite_icon_state = "oldbot" + has_eye_sprites = FALSE + +/datum/robot_sprite/engineering/landmate + name = "Landmate" + sprite_icon_state = "landmate" + +/datum/robot_sprite/engineering/landmatetread + name = "Landmate - Treaded" + sprite_icon_state = "landmatetread" + +/datum/robot_sprite/engineering/drone + name = "Drone" + sprite_icon_state = "drone" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/engineering/treadwell + name = "Treadwell" + sprite_icon_state = "treadwell" + +/datum/robot_sprite/engineering/handy + name = "Handy" + sprite_icon_state = "handy" + +/datum/robot_sprite/engineering/tall2 + name = "Usagi-II" + sprite_icon_state = "tall2" + +/datum/robot_sprite/engineering/glitterfly + name = "Pyralis" + sprite_icon_state = "glitterfly" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/engineering/decapod + name = "Decapod" + sprite_icon_state = "decapod" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/engineering/pneuma + name = "Pneuma" + sprite_icon_state = "pneuma" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/engineering/drider + name = "Tower" + sprite_icon_state = "drider" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/engineering/mechoid + name = "Acheron" + sprite_icon_state = "mechoid" + +/datum/robot_sprite/engineering/noble + name = "Shellguard Noble" + sprite_icon_state = "noble" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/engineering/zoomba + name = "ZOOM-BA" + sprite_icon_state = "zoomba" + has_dead_sprite = TRUE + +/datum/robot_sprite/engineering/worm + name = "W02M" + sprite_icon_state = "worm" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/engineering/uptall + name = "Feminine Humanoid" + sprite_icon_state = "uptall" + +// Wide/dogborg sprites + +/datum/robot_sprite/dogborg/engineering + module_type = "Engineering" + sprite_icon = 'icons/mob/robot/engineering_wide.dmi' + +/datum/robot_sprite/dogborg/engineering/pupdozer + name = "Pupdozer" + sprite_icon_state = "pupdozer" + rest_sprite_options = list("Default") + has_eye_light_sprites = TRUE + +/datum/robot_sprite/dogborg/engineering/borgi + name = "Borgi" + sprite_icon_state = "borgi" + has_eye_sprites = FALSE + has_eye_light_sprites = TRUE + has_dead_sprite_overlay = FALSE + +/datum/robot_sprite/dogborg/engineering/vale + name = "KMine" + sprite_icon_state = "vale" + has_eye_light_sprites = TRUE + +/datum/robot_sprite/dogborg/engineering/hound + name = "CargoHound" + sprite_icon_state = "hound" + has_eye_light_sprites = TRUE + +/datum/robot_sprite/dogborg/engineering/hounddark + name = "CargoHoundDark" + sprite_icon_state = "hounddark" + has_eye_light_sprites = TRUE + +/datum/robot_sprite/dogborg/engineering/drake + name = "Drake" + sprite_icon_state = "drake" + +// Tall sprites + +/datum/robot_sprite/dogborg/tall/engineering + module_type = "Engineering" + sprite_icon = 'icons/mob/robot/engineering_large.dmi' + +/datum/robot_sprite/dogborg/tall/engineering/raptor + name = "Raptor V-4" + sprite_icon_state = "raptor" + rest_sprite_options = list("Default", "Bellyup") + +/datum/robot_sprite/dogborg/tall/engineering/meka + name = "MEKA" + sprite_icon_state = "meka" + has_eye_light_sprites = TRUE + has_custom_open_sprites = TRUE + has_vore_belly_sprites = FALSE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/tall/engineering/newmeka + name = "MEKA v2" + sprite_icon_state = "newmeka" + has_eye_light_sprites = TRUE + has_custom_open_sprites = TRUE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/tall/engineering/mmeka + name = "NIKO" + sprite_icon_state = "mmeka" + has_eye_light_sprites = TRUE + has_custom_open_sprites = TRUE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/tall/engineering/fmeka + name = "NIKA" + sprite_icon_state = "fmeka" + has_eye_light_sprites = TRUE + has_custom_open_sprites = TRUE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/tall/engineering/k4t + name = "K4T" + sprite_icon_state = "k4t" + has_eye_light_sprites = TRUE + has_custom_open_sprites = TRUE + has_vore_belly_sprites = FALSE + rest_sprite_options = list("Default", "Bellyup") + +/datum/robot_sprite/dogborg/tall/engineering/k4t_alt1 + name = "K4Talt" + sprite_icon_state = "k4t_alt1" + has_eye_light_sprites = TRUE + has_custom_open_sprites = TRUE + has_vore_belly_sprites = FALSE + rest_sprite_options = list("Default", "Bellyup") \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/sprites/medical.dm b/code/modules/mob/living/silicon/robot/sprites/medical.dm new file mode 100644 index 00000000000..9f9f72981a9 --- /dev/null +++ b/code/modules/mob/living/silicon/robot/sprites/medical.dm @@ -0,0 +1,323 @@ +// Crisis and Surgeon modules have a lot of shared sprites so they're in same file + +// Both Surgeon and Crisis + +// Regular sprites + +/datum/robot_sprite/medical + module_type = list("Crisis", "Surgeon") + sprite_icon = 'icons/mob/robot/medical.dmi' + +/datum/robot_sprite/medical/default + name = DEFAULT_ROBOT_SPRITE_NAME + default_sprite = TRUE + sprite_icon_state = "default" + +/datum/robot_sprite/medical/eyebot + name = "Cabeiri" + sprite_icon_state = "eyebot" + +/datum/robot_sprite/medical/marina + name = "Haruka" + sprite_icon_state = "marina" + +/datum/robot_sprite/medical/arachne + name = "Minako" + sprite_icon_state = "arachne" + +/datum/robot_sprite/medical/tall + name = "Usagi" + sprite_icon_state = "tall" + +/datum/robot_sprite/medical/heavy + name = "XI-ALP" + sprite_icon_state = "heavy" + +/datum/robot_sprite/medical/old + name = "Basic" + sprite_icon_state = "old" + has_eye_sprites = FALSE + +/datum/robot_sprite/medical/droid + name = "Advanced Droid" + sprite_icon_state = "droid" + +/datum/robot_sprite/medical/needles + name = "Needles" + sprite_icon_state = "needles" + has_eye_sprites = FALSE + +/datum/robot_sprite/medical/handy + name = "Handy" + sprite_icon_state = "handy" + +/datum/robot_sprite/medical/insekt + name = "Insekt" + sprite_icon_state = "insekt" + +/datum/robot_sprite/medical/tall2 + name = "Usagi-II" + sprite_icon_state = "tall2" + +/datum/robot_sprite/medical/drider + name = "Tower" + sprite_icon_state = "drider" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/medical/mechoid + name = "Acheron" + sprite_icon_state = "mechoid" + +/datum/robot_sprite/medical/noble + name = "Shellguard Noble" + sprite_icon_state = "noble" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/medical/worm + name = "W02M" + sprite_icon_state = "worm" + has_custom_open_sprites = TRUE + +// Wide/dogborg sprites + +/datum/robot_sprite/dogborg/medical + module_type = list("Crisis", "Surgeon") + sprite_icon = 'icons/mob/robot/medical_wide.dmi' + + // None yet + +// Tall sprites + +/datum/robot_sprite/dogborg/tall/medical + module_type = list("Crisis", "Surgeon") + sprite_icon = 'icons/mob/robot/medical_large.dmi' + +/datum/robot_sprite/dogborg/tall/medical/meka + name = "MEKA" + sprite_icon_state = "meka" + has_eye_light_sprites = TRUE + has_custom_open_sprites = TRUE + has_vore_belly_sprites = FALSE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/tall/medical/newmeka + name = "MEKA v2" + sprite_icon_state = "newmeka" + has_eye_light_sprites = TRUE + has_custom_open_sprites = TRUE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/tall/medical/mmeka + name = "NIKO" + sprite_icon_state = "mmeka" + has_eye_light_sprites = TRUE + has_custom_open_sprites = TRUE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/tall/medical/fmeka + name = "NIKA" + sprite_icon_state = "fmeka" + has_eye_light_sprites = TRUE + has_custom_open_sprites = TRUE + rest_sprite_options = list("Default", "Sit") + +/datum/robot_sprite/dogborg/tall/medical/k4t + name = "K4T" + sprite_icon_state = "k4t" + has_eye_light_sprites = TRUE + has_custom_open_sprites = TRUE + has_vore_belly_sprites = FALSE + rest_sprite_options = list("Default", "Bellyup") + +/datum/robot_sprite/dogborg/tall/medical/k4t_alt1 + name = "K4Talt" + sprite_icon_state = "k4t_alt1" + has_eye_light_sprites = TRUE + has_custom_open_sprites = TRUE + has_vore_belly_sprites = FALSE + rest_sprite_options = list("Default", "Bellyup") + + +// Surgeon + +// Regular sprites + +/datum/robot_sprite/surgical + module_type = "Surgeon" + sprite_icon = 'icons/mob/robot/surgical.dmi' + +/datum/robot_sprite/surgical/toiletbot + name = "Telemachus" + sprite_icon_state = "toiletbot" + +/datum/robot_sprite/surgical/sleek + name = "WTOperator" + sprite_icon_state = "sleek" + +/datum/robot_sprite/surgical/drone + name = "Drone" + sprite_icon_state = "drone" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/surgical/glitterfly + name = "Pyralis" + sprite_icon_state = "glitterfly" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/surgical/decapod + name = "Decapod" + sprite_icon_state = "decapod" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/surgical/pneuma + name = "Pneuma" + sprite_icon_state = "pneuma" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/surgical/zoomba + name = "ZOOM-BA" + sprite_icon_state = "zoomba" + has_dead_sprite = TRUE + +/datum/robot_sprite/surgical/uptall + name = "Feminine Humanoid" + sprite_icon_state = "uptall" + +// Wide/dogborg sprites + +/datum/robot_sprite/dogborg/surgical + module_type = "Surgeon" + sprite_icon = 'icons/mob/robot/surgical_wide.dmi' + +/datum/robot_sprite/dogborg/surgical/vale + name = "Traumahound" + sprite_icon_state = "vale" + has_eye_light_sprites = TRUE + +/datum/robot_sprite/dogborg/surgical/borgi + name = "Borgi" + sprite_icon_state = "borgi" + has_eye_sprites = FALSE + has_eye_light_sprites = TRUE + has_dead_sprite_overlay = FALSE + +/datum/robot_sprite/dogborg/surgical/drake + name = "Drake" + sprite_icon_state = "drake" + +// Tall sprites + +/datum/robot_sprite/dogborg/tall/surgical + module_type = "Surgeon" + sprite_icon = 'icons/mob/robot/surgical_large.dmi' + +/datum/robot_sprite/dogborg/tall/surgical/raptor + name = "Raptor V-4" + sprite_icon_state = "raptor" + rest_sprite_options = list("Default", "Bellyup") + + +// Crisis + +// Regular sprites + +/datum/robot_sprite/crisis + module_type = "Crisis" + sprite_icon = 'icons/mob/robot/crisis.dmi' + +/datum/robot_sprite/crisis/toiletbot + name = "Telemachus" + sprite_icon_state = "toiletbot" + +/datum/robot_sprite/crisis/sleek + name = "WTOperator" + sprite_icon_state = "sleek" + +/datum/robot_sprite/crisis/drone + name = "Drone - Medical" + sprite_icon_state = "drone-crisis" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/crisis/drone_chem + name = "Drone - Chemistry" + sprite_icon_state = "drone-chem" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/crisis/glitterfly + name = "Pyralis" + sprite_icon_state = "glitterfly" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/crisis/decapod + name = "Decapod" + sprite_icon_state = "decapod" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/crisis/pneuma + name = "Pneuma" + sprite_icon_state = "pneuma" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/crisis/zoomba + name = "ZOOM-BA" + sprite_icon_state = "zoomba" + has_dead_sprite = TRUE + +/datum/robot_sprite/crisis/uptall + name = "Feminine Humanoid" + sprite_icon_state = "uptall" + +// Wide/dogborg sprites + +/datum/robot_sprite/dogborg/crisis + module_type = "Crisis" + sprite_icon = 'icons/mob/robot/crisis_wide.dmi' + +/datum/robot_sprite/dogborg/crisis/hound + name = "CargoHound" + sprite_icon_state = "hound" + has_eye_light_sprites = TRUE + +/datum/robot_sprite/dogborg/crisis/hound/get_belly_overlay(var/mob/living/silicon/robot/ourborg) + 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" + +/datum/robot_sprite/dogborg/crisis/hounddark + name = "CargoHoundDark" + sprite_icon_state = "hounddark" + has_eye_light_sprites = TRUE + +/datum/robot_sprite/dogborg/crisis/hounddark/get_belly_overlay(var/mob/living/silicon/robot/ourborg) + 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" + +/datum/robot_sprite/dogborg/crisis/vale + name = "KMine" + sprite_icon_state = "vale" + has_eye_light_sprites = TRUE + +/datum/robot_sprite/dogborg/crisis/vale/get_belly_overlay(var/mob/living/silicon/robot/ourborg) + 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" + +/datum/robot_sprite/dogborg/crisis/borgi + name = "Borgi" + sprite_icon_state = "borgi" + has_eye_sprites = FALSE + has_eye_light_sprites = TRUE + has_dead_sprite_overlay = FALSE + +/datum/robot_sprite/dogborg/crisis/drake + name = "Drake" + sprite_icon_state = "drake" + +// Tall sprites + +/datum/robot_sprite/dogborg/tall/crisis + module_type = "Crisis" + sprite_icon = 'icons/mob/robot/crisis_large.dmi' + +/datum/robot_sprite/dogborg/tall/crisis/raptor + name = "Raptor V-4" + sprite_icon_state = "raptor" + rest_sprite_options = list("Default", "Bellyup") diff --git a/icons/mob/robot/crisis.dmi b/icons/mob/robot/crisis.dmi new file mode 100644 index 00000000000..44fa37672ab Binary files /dev/null and b/icons/mob/robot/crisis.dmi differ diff --git a/icons/mob/robot/crisis_large.dmi b/icons/mob/robot/crisis_large.dmi new file mode 100644 index 00000000000..f981dc6a00c Binary files /dev/null and b/icons/mob/robot/crisis_large.dmi differ diff --git a/icons/mob/robot/crisis_wide.dmi b/icons/mob/robot/crisis_wide.dmi new file mode 100644 index 00000000000..a42e76715ea Binary files /dev/null and b/icons/mob/robot/crisis_wide.dmi differ diff --git a/icons/mob/robot/engineering.dmi b/icons/mob/robot/engineering.dmi new file mode 100644 index 00000000000..030117442da Binary files /dev/null and b/icons/mob/robot/engineering.dmi differ diff --git a/icons/mob/robot/engineering_large.dmi b/icons/mob/robot/engineering_large.dmi new file mode 100644 index 00000000000..6ae017860fe Binary files /dev/null and b/icons/mob/robot/engineering_large.dmi differ diff --git a/icons/mob/robot/engineering_wide.dmi b/icons/mob/robot/engineering_wide.dmi new file mode 100644 index 00000000000..50f76258599 Binary files /dev/null and b/icons/mob/robot/engineering_wide.dmi differ diff --git a/icons/mob/robot/janitor_large.dmi b/icons/mob/robot/janitor_large.dmi index 092c221d48a..641a253a635 100644 Binary files a/icons/mob/robot/janitor_large.dmi and b/icons/mob/robot/janitor_large.dmi differ diff --git a/icons/mob/robot/medical.dmi b/icons/mob/robot/medical.dmi new file mode 100644 index 00000000000..574fd329afb Binary files /dev/null and b/icons/mob/robot/medical.dmi differ diff --git a/icons/mob/robot/medical_large.dmi b/icons/mob/robot/medical_large.dmi new file mode 100644 index 00000000000..8fb19836e7b Binary files /dev/null and b/icons/mob/robot/medical_large.dmi differ diff --git a/icons/mob/robot/medical_wide.dmi b/icons/mob/robot/medical_wide.dmi new file mode 100644 index 00000000000..f1dfc3bf408 Binary files /dev/null and b/icons/mob/robot/medical_wide.dmi differ diff --git a/icons/mob/robot/mining_large.dmi b/icons/mob/robot/mining_large.dmi index be011eeb854..db80569d646 100644 Binary files a/icons/mob/robot/mining_large.dmi and b/icons/mob/robot/mining_large.dmi differ diff --git a/icons/mob/robot/surgical.dmi b/icons/mob/robot/surgical.dmi new file mode 100644 index 00000000000..39fd3b85bc9 Binary files /dev/null and b/icons/mob/robot/surgical.dmi differ diff --git a/icons/mob/robot/surgical_large.dmi b/icons/mob/robot/surgical_large.dmi new file mode 100644 index 00000000000..445386720f7 Binary files /dev/null and b/icons/mob/robot/surgical_large.dmi differ diff --git a/icons/mob/robot/surgical_wide.dmi b/icons/mob/robot/surgical_wide.dmi new file mode 100644 index 00000000000..6d0b1ae58a9 Binary files /dev/null and b/icons/mob/robot/surgical_wide.dmi differ diff --git a/vorestation.dme b/vorestation.dme index 991f57a8bf8..5c3795418db 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3030,7 +3030,9 @@ #include "code\modules\mob\living\silicon\robot\robot_modules\swarm.dm" #include "code\modules\mob\living\silicon\robot\robot_modules\syndicate.dm" #include "code\modules\mob\living\silicon\robot\sprites\_sprite_datum.dm" +#include "code\modules\mob\living\silicon\robot\sprites\engineering.dm" #include "code\modules\mob\living\silicon\robot\sprites\janitor.dm" +#include "code\modules\mob\living\silicon\robot\sprites\medical.dm" #include "code\modules\mob\living\silicon\robot\sprites\mining.dm" #include "code\modules\mob\living\silicon\robot\sprites\science.dm" #include "code\modules\mob\living\silicon\robot\sprites\standard.dm"