diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 45c5fd3eab6..e1b937ca17a 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -897,16 +897,7 @@ var/eyes_overlay = sprite_datum.get_eye_light_overlay(src) if(eyes_overlay) add_overlay(eyes_overlay) -/* - if(istype(module_active,/obj/item/weapon/gun/energy/laser/mounted)) - add_overlay("laser") - if(istype(module_active,/obj/item/weapon/gun/energy/taser/mounted/cyborg)) - add_overlay("taser") - if(lights_on) - add_overlay("eyes-[module_sprites[icontype]]-lights") - else - icon_state = "[module_sprites[icontype]]" -*/ + if(stat == DEAD && sprite_datum.has_dead_sprite) cut_overlays() icon_state = sprite_datum.get_dead_sprite(src) 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 73417e1dafd..bc5c2765cbc 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules/station.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules/station.dm @@ -432,29 +432,10 @@ var/global/list/robot_modules = list( networks = list(NETWORK_SECURITY) subsystems = list(/mob/living/silicon/proc/subsystem_crew_monitor) supported_upgrades = list(/obj/item/borg/upgrade/tasercooler) + pto_type = PTO_SECURITY /obj/item/weapon/robot_module/robot/security/general - sprites = list( - "M-USE NanoTrasen" = "robotSecy", - "Cabeiri" = "eyebot-security", - "Cerberus" = "bloodhound", - "Cerberus - Treaded" = "treadhound", - "Haruka" = "marinaSC", - "Usagi" = "tallred", - "Telemachus" = "toiletbotsecurity", - "WTOperator" = "sleeksecurity", - "XI-GUS" = "spidersec", - "XI-ALP" = "heavySec", - "Basic" = "secborg", - "Black Knight" = "securityrobot", - "Drone" = "drone-sec", - "Insekt" = "insekt-Sec", - "Usagi-II" = "tall2security", - "Pyralis" = "Glitterfly-Security", - "Decapod" = "decapod-Security", - "Pneuma" = "pneuma-Security", - "Tower" = "drider-Security" - ) + name = "security robot module" /obj/item/weapon/robot_module/robot/security/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 591f983d9d2..0642c0b4553 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 @@ -51,19 +51,6 @@ "Feminine Humanoid" = "uptall-service" ) -/obj/item/weapon/robot_module/robot/security - pto_type = PTO_SECURITY - -/obj/item/weapon/robot_module/robot/security/general - vr_sprites = list( - "Handy" = "handy-sec", - "Acheron" = "mechoid-Security", - "Shellguard Noble" = "Noble-SEC", - "ZOOM-BA" = "zoomba-security", - "W02M" = "worm-security", - "Feminine Humanoid" = "uptall-security" - ) - /obj/item/weapon/robot_module/robot/security/combat vr_sprites = list( "Acheron" = "mechoid-Combat", @@ -74,20 +61,6 @@ /obj/item/weapon/robot_module/robot/security/knine name = "k9 robot module" - sprites = list( - "K9 hound" = "k9", - "K9 Alternative" = "k92", - "Secborg model V-2" = "secborg", - "Borgi" = "borgi-sec", - "Otieborg" = "oties", - "Drake" = "drakesec", - "Raptor V-4" = "secraptor", - "MEKA" = "mekasec", - "MEKA v2" = "newmekasec", - "NIKO" = "mmekasec", - "NIKA" = "fmekasec", - "K4T" = "k4tsec" - ) /obj/item/weapon/robot_module/robot/security/knine/New(var/mob/living/silicon/robot/R) src.modules += new /obj/item/weapon/handcuffs/cyborg(src) //You need cuffs to be a proper sec borg! diff --git a/code/modules/mob/living/silicon/robot/robot_vr.dm b/code/modules/mob/living/silicon/robot/robot_vr.dm index 48c1cf6b84e..df74fe64fb7 100644 --- a/code/modules/mob/living/silicon/robot/robot_vr.dm +++ b/code/modules/mob/living/silicon/robot/robot_vr.dm @@ -100,77 +100,7 @@ rest_style = tgui_alert(src, "Select resting pose", "Resting Pose", sprite_datum.rest_sprite_options) if(!rest_style) rest_style = "Default" -/* -/mob/living/silicon/robot/update_icon() - vr_sprite_check() - ..() - if(dogborg == TRUE && stat == CONSCIOUS) - if(vore_selected.silicon_belly_overlay_preference == "Sleeper") - if(sleeper_g == TRUE) - add_overlay("[module_sprites[icontype]]-sleeper_g") - if(sleeper_r == TRUE) - add_overlay("[module_sprites[icontype]]-sleeper_r") - else if(vore_selected.silicon_belly_overlay_preference == "Vorebelly") - if(LAZYLEN(vore_selected.contents) >= vore_selected.visible_belly_minimum_prey) - if(vore_selected.overlay_min_prey_size == 0) //if min size is 0, we dont check for size - add_overlay("[module_sprites[icontype]]-sleeper_r") - else - var/show_belly = FALSE - if(vore_selected.override_min_prey_size && (LAZYLEN(vore_selected.contents) > vore_selected.override_min_prey_num)) - show_belly = TRUE //Override regardless of content size - else - for(var/content in vore_selected.contents) //If ANY in belly are big enough, we set to true - if(!istype(content, /mob/living)) continue - var/mob/living/prey = content - if(prey.size_multiplier >= vore_selected.overlay_min_prey_size) - show_belly = TRUE - break - if(show_belly) - add_overlay("[module_sprites[icontype]]-sleeper_r") - if(istype(module_active,/obj/item/weapon/gun/energy/laser/mounted)) - add_overlay("laser") - if(istype(module_active,/obj/item/weapon/gun/energy/taser/mounted/cyborg)) - add_overlay("taser") - if(lights_on) - add_overlay("eyes-[module_sprites[icontype]]-lights") - if(resting) - cut_overlays() // Hide that gut for it has no ground sprite yo. - if(sitting) - icon_state = "[module_sprites[icontype]]-sit" - if(bellyup) - icon_state = "[module_sprites[icontype]]-bellyup" - else if(!sitting && !bellyup) - icon_state = "[module_sprites[icontype]]-rest" - else - icon_state = "[module_sprites[icontype]]" - if(dogborg == TRUE && stat == DEAD) - icon_state = "[module_sprites[icontype]]-wreck" - add_overlay("wreck-overlay") - -/mob/living/silicon/robot/proc/vr_sprite_check() - vis_height = 32 - if(custom_sprite == TRUE) - return - if(wideborg == TRUE) - if(icontype == "Drake") // Why, Why can't we have normal nice things - icon = 'icons/mob/drakeborg/drakeborg_vr.dmi' - else if(icontype == "Raptor V-4" || icontype == "Raptor V-4000") //Added for raptor sprites - icon = 'icons/mob/raptorborg/raptor.dmi' - else if(icontype == "MEKA" || icontype == "MEKA v2" || icontype == "NIKO" || icontype == "NIKA" || icontype == "K4T" || icontype == "K4Talt") //tallborgs. if anyone can code them not to be a dogborg subtype please do so, but this'll do for now. - icon = 'icons/mob/tallborg/tallborg.dmi' - vis_height = 64 - update_transform() - else - icon = wideborg_dept - return - if((!(original_icon == icon)) && (!(icon == 'icons/mob/robots_vr.dmi'))) - original_icon = icon - if((icon_state in vr_icons) && (icon == 'icons/mob/robots.dmi')) - icon = 'icons/mob/robots_vr.dmi' - else if(!(icon_state in vr_icons)) - icon = original_icon -*/ /mob/living/silicon/robot/proc/ex_reserve_refill() set name = "Refill Extinguisher" set category = "Object" diff --git a/code/modules/mob/living/silicon/robot/sprites/security.dm b/code/modules/mob/living/silicon/robot/sprites/security.dm new file mode 100644 index 00000000000..358df10e5cd --- /dev/null +++ b/code/modules/mob/living/silicon/robot/sprites/security.dm @@ -0,0 +1,215 @@ +// Regular sprites + +/datum/robot_sprite/security + module_type = "Security" + sprite_icon = 'icons/mob/robot/security.dmi' + +/datum/robot_sprite/security/default + name = DEFAULT_ROBOT_SPRITE_NAME + default_sprite = TRUE + sprite_icon_state = "default" + +/datum/robot_sprite/security/eyebot + name = "Cabeiri" + sprite_icon_state = "eyebot" + +/datum/robot_sprite/security/bloodhound + name = "Cerberus" + sprite_icon_state = "bloodhound" + +/datum/robot_sprite/security/treadhound + name = "Cerberus - Treaded" + sprite_icon_state = "treadhound" + +/datum/robot_sprite/security/marina + name = "Haruka" + sprite_icon_state = "marina" + +/datum/robot_sprite/security/tall + name = "Usagi" + sprite_icon_state = "tall" + +/datum/robot_sprite/security/toiletbot + name = "Telemachus" + sprite_icon_state = "toiletbot" + +/datum/robot_sprite/security/sleek + name = "WTOperator" + sprite_icon_state = "sleek" + +/datum/robot_sprite/security/spider + name = "XI-GUS" + sprite_icon_state = "spider" + +/datum/robot_sprite/security/heavy + name = "XI-ALP" + sprite_icon_state = "heavy" + +/datum/robot_sprite/security/old + name = "Basic" + sprite_icon_state = "old" + has_eye_sprites = FALSE + +/datum/robot_sprite/security/oldbot + name = "Black Knight" + sprite_icon_state = "oldbot" + has_eye_sprites = FALSE + +/datum/robot_sprite/security/insekt + name = "Insekt" + sprite_icon_state = "insekt" + +/datum/robot_sprite/security/tall2 + name = "Usagi-II" + sprite_icon_state = "tall2" + +/datum/robot_sprite/security/glitterfly + name = "Pyralis" + sprite_icon_state = "glitterfly" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/security/decapod + name = "Decapod" + sprite_icon_state = "decapod" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/security/pneuma + name = "Pneuma" + sprite_icon_state = "pneuma" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/security/drider + name = "Tower" + sprite_icon_state = "drider" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/security/handy + name = "Handy" + sprite_icon_state = "handy" + +/datum/robot_sprite/security/mechoid + name = "Acheron" + sprite_icon_state = "mechoid" + +/datum/robot_sprite/security/noble + name = "Shellguard Noble" + sprite_icon_state = "noble" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/security/zoomba + name = "ZOOM-BA" + sprite_icon_state = "zoomba" + has_dead_sprite = TRUE + +/datum/robot_sprite/security/worm + name = "W02M" + sprite_icon_state = "worm" + has_custom_open_sprites = TRUE + +/datum/robot_sprite/security/uptall + name = "Feminine Humanoid" + sprite_icon_state = "uptall" + +// Wide/dogborg sprites + +/datum/robot_sprite/dogborg/security + module_type = "Security" + sprite_icon = 'icons/mob/robot/security_wide.dmi' + + var/has_laser_sprite = FALSE + var/has_taser_sprite = FALSE + +/datum/robot_sprite/dogborg/security/handle_extra_icon_updates(var/mob/living/silicon/robot/ourborg) + if(has_laser_sprite && istype(ourborg.module_active, /obj/item/weapon/gun/energy/laser/mounted)) + ourborg.add_overlay("[sprite_icon_state]-laser") + if(has_taser_sprite && istype(ourborg.module_active, /obj/item/weapon/gun/energy/taser/mounted/cyborg)) + ourborg.add_overlay("[sprite_icon_state]-taser") + +/datum/robot_sprite/dogborg/security/k9 + name = "K9" + sprite_icon_state = "k9" + has_eye_light_sprites = TRUE + has_laser_sprite = TRUE + has_taser_sprite = TRUE + +/datum/robot_sprite/dogborg/security/k92 + name = "K9 Alt" + sprite_icon_state = "k92" + has_eye_sprites = FALSE + has_laser_sprite = TRUE + has_taser_sprite = TRUE + +/datum/robot_sprite/dogborg/security/vale + name = "Secborg Model V-2" + sprite_icon_state = "vale" + has_eye_light_sprites = TRUE + has_laser_sprite = TRUE + has_taser_sprite = TRUE + +/datum/robot_sprite/dogborg/security/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/security/otie + name = "Otieborg" + sprite_icon_state = "otie" + has_eye_light_sprites = TRUE + has_laser_sprite = TRUE + has_taser_sprite = TRUE + +/datum/robot_sprite/dogborg/security/drake + name = "Drake" + sprite_icon_state = "drake" + has_laser_sprite = TRUE + has_taser_sprite = TRUE + +// Tall sprites + +/datum/robot_sprite/dogborg/tall/security + module_type = "Security" + sprite_icon = 'icons/mob/robot/security_large.dmi' + +/datum/robot_sprite/dogborg/tall/security/raptor + name = "Raptor V-4" + sprite_icon_state = "raptor" + rest_sprite_options = list("Default", "Bellyup") + +/datum/robot_sprite/dogborg/tall/security/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/security/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/security/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/security/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/security/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") \ No newline at end of file diff --git a/icons/mob/robot/security.dmi b/icons/mob/robot/security.dmi new file mode 100644 index 00000000000..422e902f087 Binary files /dev/null and b/icons/mob/robot/security.dmi differ diff --git a/icons/mob/robot/security_large.dmi b/icons/mob/robot/security_large.dmi new file mode 100644 index 00000000000..3eebfc655ea Binary files /dev/null and b/icons/mob/robot/security_large.dmi differ diff --git a/icons/mob/robot/security_wide.dmi b/icons/mob/robot/security_wide.dmi new file mode 100644 index 00000000000..6d33cfdf57d Binary files /dev/null and b/icons/mob/robot/security_wide.dmi differ diff --git a/vorestation.dme b/vorestation.dme index 4f40a2f5635..7794023b0ad 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -3036,6 +3036,7 @@ #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\security.dm" #include "code\modules\mob\living\silicon\robot\sprites\standard.dm" #include "code\modules\mob\living\silicon\robot\subtypes\gravekeeper.dm" #include "code\modules\mob\living\silicon\robot\subtypes\lost_drone.dm"