diff --git a/modular_citadel/code/modules/client/loadout/backpack.dm b/modular_citadel/code/modules/client/loadout/backpack.dm index 1c0b40f4..550726ed 100644 --- a/modular_citadel/code/modules/client/loadout/backpack.dm +++ b/modular_citadel/code/modules/client/loadout/backpack.dm @@ -18,6 +18,16 @@ category = SLOT_IN_BACKPACK path = /obj/item/toy/plush/slimeplushie +/datum/gear/toy/plush/borgplushie/secdrake + name = "SecDrake Plushie" + category = SLOT_IN_BACKPACK + path = /obj/item/toy/plush/borgplushie/secdrake + +/datum/gear/toy/plush/borgplushie/meddrake + name = "MediDrake Plushie" + category = SLOT_IN_BACKPACK + path = /obj/item/toy/plush/borgplushie/meddrake + /datum/gear/plushlamp name = "Lamp plushie" category = SLOT_IN_BACKPACK @@ -138,4 +148,4 @@ name = "A diamond ring box" category = SLOT_IN_BACKPACK path = /obj/item/storage/fancy/ringbox/diamond - cost = 5 \ No newline at end of file + cost = 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 081316a9..68e542b6 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 @@ -27,6 +27,19 @@ var/moduleselect_alternate_icon var/dogborg = FALSE +/** + * check_menu: Checks if we are allowed to interact with a radial menu + * + * Arguments: + * * user The mob interacting with a menu + */ +/obj/item/robot_module/proc/check_menu(mob/user) + if(!istype(user)) + return FALSE + if(user.incapacitated() || !user.Adjacent(src)) + return FALSE + return TRUE + /obj/item/robot_module/k9 name = "Security K-9 Unit" basic_modules = list( @@ -62,14 +75,23 @@ /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", "Drake") - 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 - if(!borg_icon) - return FALSE - switch(borg_icon) - if("Default") + var/static/list/k9_models + + if(!k9_models) + k9_models = list( + "k9" = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "k9"), + "Drake" = image(icon = 'icons/mob/cyborg/drakemech.dmi', icon_state = "drakesecbox") + ) + if(R.client?.ckey == "nezuli") + var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-sec") + bad_snowflake.pixel_x = -16 + k9_models["Alina"] = bad_snowflake + k9_models = sortList(k9_models) + var/k9_borg_icon = show_radial_menu(R, R , k9_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE) + if(!k9_borg_icon) + return + switch(k9_borg_icon) + if("k9") cyborg_base_icon = "k9" moduleselect_icon = "k9" if("Drake") @@ -117,13 +139,22 @@ /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", "Drake") - 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 - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/medihound_models + if(!medihound_models) + medihound_models = list( + "medihound" = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "medihound"), + "Dark" = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "medihounddark"), + "Drake" = image(icon = 'icons/mob/cyborg/drakemech.dmi', icon_state = "drakemedbox") + ) + if(R.client?.ckey == "nezuli") + var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-med") + bad_snowflake.pixel_x = -16 + medihound_models["Alina"] = bad_snowflake + medihound_models = sortList(medihound_models) + var/medihound_borg_icon = show_radial_menu(R, R , medihound_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE) + if(!medihound_borg_icon) + return + switch(medihound_borg_icon) if("Default") cyborg_base_icon = "medihound" if("Dark") @@ -166,6 +197,26 @@ cyborg_pixel_offset = -16 dogborg = TRUE +/obj/item/robot_module/scrubpup/be_transformed_to(obj/item/robot_module/old_module) + var/mob/living/silicon/robot/R = loc + var/static/list/scrubpup_models + if(!scrubpup_models) + scrubpup_models = list( + "scrubpup" = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "scrubpup"), + "Drake" = image(icon = 'icons/mob/cyborg/drakemech.dmi', icon_state = "drakejanitbox") + ) + var/scrubpup_borg_icon = show_radial_menu(R, R , scrubpup_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE) + if(!scrubpup_borg_icon) + return + switch(scrubpup_borg_icon) + if("scrubpup") + cyborg_base_icon = "scrubpup" + if("Drake") + cyborg_base_icon = "drakejanit" + cyborg_icon_override = 'icons/mob/cyborg/drakemech.dmi' + sleeper_overlay = "drakejanitsleeper" + return ..() + /obj/item/robot_module/scrubpup/respawn_consumable(mob/living/silicon/robot/R, coeff = 1) ..() var/obj/item/lightreplacer/LR = locate(/obj/item/lightreplacer) in basic_modules @@ -242,10 +293,25 @@ /obj/item/robot_module/medical/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("Default", "Heavy", "Sleek", "Marina", "Droid", "Eyebot", "BootyF", "BootyM", "BootyS", "Haydee") - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/med_models + if(!med_models) + med_models = list( + "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "medical"), + "Droid" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "medical"), + "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmed"), + "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamed"), + "Eyebot" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "eyebotmed"), + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymed"), + "BootyF" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootymedical"), + "BootyM" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootymedicalM"), + "BootyS" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootymedicalS"), + "Haydee" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "haydeemedical") + ) + med_models = sortList(med_models) + var/medi_borg_icon = show_radial_menu(R, R , med_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE) + if(!medi_borg_icon) + return + switch(medi_borg_icon) if("Default") cyborg_base_icon = "medical" if("Droid") @@ -284,11 +350,23 @@ /obj/item/robot_module/janitor/be_transformed_to(obj/item/robot_module/old_module) var/mob/living/silicon/robot/R = loc - var/list/janimodels = list("Default", "Sleek", "Marina", "Can", "Drake", "Heavy", "BootyF", "BootyM", "BootyS") - var/borg_icon = input(R, "Select an icon!", "Robot Icon", null) as null|anything in janimodels - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/jani_models + if(!jani_models) + jani_models = list( + "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "janitor"), + "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekjan"), + "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinajan"), + "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canjan"), + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyres"), + "BootyF" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootyjanitor"), + "BootyM" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootyjanitorM"), + "BootyS" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootyjanitorS") + ) + jani_models = sortList(jani_models) + var/jani_borg_icon = show_radial_menu(R, R , jani_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE) + if(!jani_borg_icon) + return + switch(jani_borg_icon) if("Default") cyborg_base_icon = "janitor" if("Marina") @@ -300,15 +378,6 @@ if("Can") cyborg_base_icon = "canjan" cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi' - if("Drake") - cyborg_base_icon = "drakejanti" - can_be_pushed = FALSE - hat_offset = INFINITY - cyborg_icon_override = 'icons/mob/cyborg/drakemech.dmi' - sleeper_overlay = "drakejantisleeper" - has_snowflake_deadsprite = TRUE - dogborg = TRUE - cyborg_pixel_offset = -16 if("Heavy") cyborg_base_icon = "heavyres" cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi' @@ -328,24 +397,26 @@ /obj/item/robot_module/peacekeeper/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("Default", "Spider", "Drake", "BootyF", "BootyM", "BootyS") - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/peace_models + if(!peace_models) + peace_models = list( + "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "peace"), + "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "whitespider"), + "BootyF" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootypeace"), + "BootyM" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootypeaceM"), + "BootyS" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootypeaceS"), + "Drake" = image(icon = 'icons/mob/cyborg/drakemech.dmi', icon_state = "drakepeacebox") + ) + peace_models = sortList(peace_models) + var/peace_borg_icon = show_radial_menu(R, R , peace_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE) + if(!peace_borg_icon) + return + switch(peace_borg_icon) if("Default") cyborg_base_icon = "peace" if("Spider") cyborg_base_icon = "whitespider" cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi' - if("Drake") - cyborg_base_icon = "drakepeace" - can_be_pushed = FALSE - hat_offset = INFINITY - cyborg_icon_override = 'icons/mob/cyborg/drakemech.dmi' - sleeper_overlay = "drakepeacesleeper" - has_snowflake_deadsprite = TRUE - dogborg = TRUE - cyborg_pixel_offset = -16 if("BootyF") cyborg_base_icon = "bootypeace" cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi' @@ -358,14 +429,38 @@ cyborg_base_icon = "bootypeaceS" cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi' hat_offset = 3 + if("Drake") + cyborg_base_icon = "drakepeace" + can_be_pushed = FALSE + hat_offset = INFINITY + cyborg_icon_override = 'icons/mob/cyborg/drakemech.dmi' + sleeper_overlay = "drakepeacesleeper" + has_snowflake_deadsprite = TRUE + dogborg = TRUE + cyborg_pixel_offset = -16 return ..() /obj/item/robot_module/security/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("Default", "Default - Treads", "Heavy", "Sleek", "Can", "Marina", "Spider", "BootyF", "BootyM", "BootyS") - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/sec_models + if(!sec_models) + sec_models = list( + "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "sec"), + "Default - Treads" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sec-tread"), + "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleeksec"), + "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinasec"), + "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "cansec"), + "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidersec"), + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavysec"), + "BootyF" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootysecurity"), + "BootyM" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootysecurityM"), + "BootyS" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootysecurityS") + ) + sec_models = sortList(sec_models) + var/sec_borg_icon = show_radial_menu(R, R , sec_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE) + if(!sec_borg_icon) + return + switch(sec_borg_icon) if("Default") cyborg_base_icon = "sec" if("Default - Treads") @@ -403,10 +498,25 @@ /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", "BootyF", "BootyM", "BootyS") - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/butler_models + if(!butler_models) + butler_models = list( + "Waitress" = image(icon = 'icons/mob/robots.dmi', icon_state = "service_f"), + "Butler" = image(icon = 'icons/mob/robots.dmi', icon_state = "service_m"), + "Bro" = image(icon = 'icons/mob/robots.dmi', icon_state = "brobot"), + "Kent" = image(icon = 'icons/mob/robots.dmi', icon_state = "kent"), + "Tophat" = image(icon = 'icons/mob/robots.dmi', icon_state = "tophat"), + "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekserv"), + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyserv"), + "BootyF" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootyservice"), + "BootyM" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootyserviceM"), + "BootyS" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootyserviceS") + ) + butler_models = sortList(butler_models) + var/butler_borg_icon = show_radial_menu(R, R , butler_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE) + if(!butler_borg_icon) + return + switch(butler_borg_icon) if("Waitress") cyborg_base_icon = "service_f" if("Butler") @@ -445,13 +555,36 @@ /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", "Drake", "BootyF", "BootyM", "BootyS") - 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 - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/eng_models + if(!eng_models) + eng_models = list( + "Default" = image(icon = 'icons/mob/robots.dmi', icon_state = "engineer"), + "Default - Treads" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "engi-tread"), + "Loader" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "loaderborg"), + "Handy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "handyeng"), + "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekeng"), + "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "caneng"), + "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinaeng"), + "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidereng"), + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavyeng"), + "BootyF" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootyengineer"), + "BootyM" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootyengineerM"), + "BootyS" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootyengineerS") + ) + var/list/L = list("Pupdozer" = "pupdozer") + for(var/a in L) + var/image/wide = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = L[a]) + wide.pixel_x = -16 + eng_models[a] = wide + if(R.client?.ckey == "nezuli") + var/image/bad_snowflake = image(icon = 'modular_citadel/icons/mob/widerobot.dmi', icon_state = "alina-sec") + bad_snowflake.pixel_x = -16 + eng_models["Alina"] = bad_snowflake + eng_models = sortList(eng_models) + var/eng_borg_icon = show_radial_menu(R, R , eng_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE) + if(!eng_borg_icon) + return + switch(eng_borg_icon) if("Default") cyborg_base_icon = "engineer" if("Default - Treads") @@ -522,10 +655,27 @@ /obj/item/robot_module/miner/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("Lavaland", "Heavy", "Sleek", "Marina", "Drake", "Can", "Spider", "Asteroid", "Droid", "BootyF", "BootyM", "BootyS") - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/miner_models + if(!miner_models) + miner_models = list( + "Lavaland" = image(icon = 'icons/mob/robots.dmi', icon_state = "miner"), + "Asteroid" = image(icon = 'icons/mob/robots.dmi', icon_state = "minerOLD"), + "Droid" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "miner"), + "Sleek" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "sleekmin"), + "Can" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "canmin"), + "Marina" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "marinamin"), + "Spider" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "spidermin"), + "Heavy" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "heavymin"), + "BootyF" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootyminer"), + "BootyM" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootyminerM"), + "BootyS" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootyminerS"), + "Drake" = image(icon = 'icons/mob/cyborg/drakemech.dmi', icon_state = "drakeminebox") + ) + miner_models = sortList(miner_models) + var/miner_borg_icon = show_radial_menu(R, R , miner_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE) + if(!miner_borg_icon) + return + switch(miner_borg_icon) if("Lavaland") cyborg_base_icon = "miner" if("Asteroid") @@ -544,15 +694,6 @@ if("Marina") cyborg_base_icon = "marinamin" cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi' - if("Drake") - cyborg_base_icon = "drakemine" - can_be_pushed = FALSE - hat_offset = INFINITY - cyborg_icon_override = 'icons/mob/cyborg/drakemech.dmi' - sleeper_overlay = "drakeminesleeper" - has_snowflake_deadsprite = TRUE - dogborg = TRUE - cyborg_pixel_offset = -16 if("Spider") cyborg_base_icon = "spidermin" cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi' @@ -571,16 +712,34 @@ cyborg_base_icon = "bootyminerS" cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi' hat_offset = 3 + if("Drake") + cyborg_base_icon = "drakemine" + can_be_pushed = FALSE + hat_offset = INFINITY + cyborg_icon_override = 'icons/mob/cyborg/drakemech.dmi' + sleeper_overlay = "drakeminesleeper" + has_snowflake_deadsprite = TRUE + dogborg = TRUE + cyborg_pixel_offset = -16 return ..() /obj/item/robot_module/standard/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("Standard", "BootyF", "BootyM", "BootyS") - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/stand_models + if(!stand_models) + stand_models = list( + "Standard" = image(icon = 'icons/mob/robots.dmi', icon_state = "robot"), + "BootyF" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootystandard"), + "BootyM" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootystandardM"), + "BootyS" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootystandardS") + ) + stand_models = sortList(stand_models) + var/stand_borg_icon = show_radial_menu(R, R , stand_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE) + if(!stand_borg_icon) + return + switch(stand_borg_icon) if("Standard") - cyborg_base_icon = "standard" + cyborg_base_icon = "robot" if("BootyF") cyborg_base_icon = "bootystandard" cyborg_icon_override = 'modular_citadel/icons/mob/robots.dmi' @@ -597,10 +756,19 @@ /obj/item/robot_module/clown/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("Standard", "BootyF", "BootyM", "BootyS") - if(!borg_icon) - return FALSE - switch(borg_icon) + var/static/list/clown_models + if(!clown_models) + clown_models = list( + "Standard" = image(icon = 'icons/mob/robots.dmi', icon_state = "clown"), + "BootyF" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootystandard"), + "BootyM" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootystandardM"), + "BootyS" = image(icon = 'modular_citadel/icons/mob/robots.dmi', icon_state = "bootystandardS") + ) + clown_models = sortList(clown_models) + var/clown_borg_icon = show_radial_menu(R, R , clown_models, custom_check = CALLBACK(src, .proc/check_menu, R), radius = 42, require_near = TRUE, tooltips = TRUE) + if(!clown_borg_icon) + return + switch(clown_borg_icon) if("Standard") cyborg_base_icon = "clown" if("BootyF")