diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 29fbd39e2c..0e04eab78d 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -108,6 +108,9 @@ buckle_lying = FALSE var/static/list/can_ride_typecache = typecacheof(/mob/living/carbon/human) + var/sitting = 0 + var/bellyup = 0 + /mob/living/silicon/robot/get_cell() return cell @@ -173,6 +176,7 @@ diag_hud_set_borgcell() verbs += /mob/living/proc/lay_down //CITADEL EDIT gimmie rest verb kthx + verbs += /mob/living/silicon/robot/proc/rest_style //If there's an MMI in the robot, have it ejected when the mob goes away. --NEO /mob/living/silicon/robot/Destroy() @@ -657,13 +661,6 @@ add_overlay("[module.sleeper_overlay]_g[sleeper_nv ? "_nv" : ""]") if(sleeper_r && module.sleeper_overlay) add_overlay("[module.sleeper_overlay]_r[sleeper_nv ? "_nv" : ""]") - if(module.dogborg == TRUE) - if(resting) - cut_overlays() - icon_state = "[module.cyborg_base_icon]-rest" - else - icon_state = "[module.cyborg_base_icon]" - if(stat == DEAD && module.has_snowflake_deadsprite) icon_state = "[module.cyborg_base_icon]-wreck" @@ -697,6 +694,18 @@ add_overlay(head_overlay) update_fire() + if(module.dogborg == TRUE) + if(resting) + if(sitting) + icon_state = "[module.cyborg_base_icon]-sit" + if(bellyup) + icon_state = "[module.cyborg_base_icon]-bellyup" + else if(!sitting && !bellyup) + icon_state = "[module.cyborg_base_icon]-rest" + cut_overlays() + else + icon_state = "[module.cyborg_base_icon]" + /mob/living/silicon/robot/proc/self_destruct() if(emagged) if(mmi) @@ -1242,3 +1251,19 @@ connected_ai.aicamera.stored[i] = TRUE for(var/i in connected_ai.aicamera.stored) aicamera.stored[i] = TRUE + +/mob/living/silicon/robot/proc/rest_style() + set name = "Switch Rest Style" + set category = "Robot Commands" + set desc = "Select your resting pose." + sitting = 0 + bellyup = 0 + var/choice = alert(src, "Select resting pose", "", "Resting", "Sitting", "Belly up") + switch(choice) + if("Resting") + return 0 + if("Sitting") + sitting = 1 + if("Belly up") + bellyup = 1 + update_icons() \ No newline at end of file diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot.dm index 66147a41e7..de98f9685c 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/robot.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/robot.dm @@ -10,7 +10,7 @@ mob/living/silicon /mob/living/silicon/robot/update_canmove() ..() - if(client && stat != DEAD && dogborg == TRUE) + if(client && stat != DEAD && dogborg == FALSE) if(resting) cut_overlays() icon_state = "[module.cyborg_base_icon]-rest" @@ -18,6 +18,9 @@ mob/living/silicon icon_state = "[module.cyborg_base_icon]" update_icons() + + + /mob/living/silicon/robot/adjustStaminaLossBuffered(amount, updating_stamina = 1) if(istype(cell)) cell.charge -= amount*5 diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm index a0dbe3a02a..b16ac1d586 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -61,7 +61,7 @@ /obj/item/robot_module/k9/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc - var/list/sechoundmodels = list("Default") + var/list/sechoundmodels = list("Default", "Dark", "Vale") if(R.client && R.client.ckey in list("nezuli")) sechoundmodels += "Alina" var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in sechoundmodels @@ -70,11 +70,14 @@ switch(borg_icon) if("Default") cyborg_base_icon = "k9" - moduleselect_icon = "k9" if("Alina") cyborg_base_icon = "alina-sec" special_light_key = "alina" sleeper_overlay = "alinasleeper" + if("Dark") + cyborg_base_icon = "k9dark" + if("Vale") + cyborg_base_icon = "valesec" return ..() /obj/item/robot_module/medihound @@ -109,7 +112,7 @@ /obj/item/robot_module/medihound/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc - var/list/medhoundmodels = list("Default", "Dark") + var/list/medhoundmodels = list("Default", "Dark", "Vale") if(R.client && R.client.ckey in list("nezuli")) medhoundmodels += "Alina" var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in medhoundmodels @@ -121,6 +124,9 @@ if("Dark") cyborg_base_icon = "medihounddark" sleeper_overlay = "mdsleeper" + if("Vale") + cyborg_base_icon = "valemed" + sleeper_overlay = "valemedsleeper" if("Alina") cyborg_base_icon = "alina-med" special_light_key = "alina" @@ -313,7 +319,7 @@ /obj/item/robot_module/butler/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc - var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Waitress", "Heavy", "Sleek", "Butler", "Tophat", "Kent", "Bro") + var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in list("Waitress", "Heavy", "Sleek", "Butler", "Tophat", "Kent", "Bro", "DarkK9", "Vale", "ValeDark") if(!borg_icon) return FALSE switch(borg_icon) @@ -339,11 +345,32 @@ cyborg_base_icon = "heavyserv" special_light_key = "heavyserv" cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi' + if("DarkK9") + cyborg_base_icon = "k50" + special_light_key = "k50" + cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' + has_snowflake_deadsprite = TRUE + dogborg = TRUE + cyborg_pixel_offset = -16 + if("Vale") + cyborg_base_icon = "valeserv" + special_light_key = "valeserv" + cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' + has_snowflake_deadsprite = TRUE + dogborg = TRUE + cyborg_pixel_offset = -16 + if("ValeDark") + cyborg_base_icon = "valeservdark" + special_light_key = "valeservdark" + cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' + has_snowflake_deadsprite = TRUE + dogborg = TRUE + cyborg_pixel_offset = -16 return ..() /obj/item/robot_module/engineering/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc - var/list/engymodels = list("Default", "Default - Treads", "Heavy", "Sleek", "Marina", "Can", "Spider", "Loader","Handy", "Pup Dozer") + var/list/engymodels = list("Default", "Default - Treads", "Heavy", "Sleek", "Marina", "Can", "Spider", "Loader","Handy", "Pup Dozer", "Vale") if(R.client && R.client.ckey in list("nezuli")) engymodels += "Alina" var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in engymodels @@ -386,6 +413,14 @@ has_snowflake_deadsprite = TRUE dogborg = TRUE cyborg_pixel_offset = -16 + if("Vale") + cyborg_base_icon = "valeeng" + can_be_pushed = FALSE + hat_offset = INFINITY + cyborg_icon_override = 'modular_citadel/icons/mob/widerobot.dmi' + has_snowflake_deadsprite = TRUE + dogborg = TRUE + cyborg_pixel_offset = -16 if("Alina") cyborg_base_icon = "alina-eng" special_light_key = "alina" diff --git a/modular_citadel/icons/mob/widerobot.dmi b/modular_citadel/icons/mob/widerobot.dmi index c730467e1d..7c4a4fa0e2 100644 Binary files a/modular_citadel/icons/mob/widerobot.dmi and b/modular_citadel/icons/mob/widerobot.dmi differ