diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm index 140f13e6695..102b13780ca 100644 --- a/code/game/objects/items/devices/chameleonproj.dm +++ b/code/game/objects/items/devices/chameleonproj.dm @@ -180,7 +180,7 @@ var/active = FALSE var/activationCost = 300 var/activationUpkeep = 50 - var/disguise = "landmate" + var/image/disguise var/mob/living/silicon/robot/syndicate/saboteur/S /obj/item/borg_chameleon/Destroy() @@ -207,44 +207,78 @@ /obj/item/borg_chameleon/proc/toggle(mob/living/silicon/robot/syndicate/saboteur/user) if(active) - playsound(src, 'sound/effects/pop.ogg', 100, 1, -6) - to_chat(user, "You deactivate [src].") - deactivate(user) + to_chat(user, "You reconfigure [src].") + activate(user) + return + to_chat(user, "You activate [src].") + apply_wibbly_filters(user) + if(do_after(user, 5 SECONDS, target = user) && user.cell.use(activationCost)) + activate(user) else - to_chat(user, "You activate [src].") - apply_wibbly_filters(user) - if(do_after(user, 50, target = user) && user.cell.use(activationCost)) - playsound(src, 'sound/effects/bamf.ogg', 100, 1, -6) - to_chat(user, "You are now disguised as a Nanotrasen engineering cyborg.") - activate(user) - else - to_chat(user, "The chameleon field fizzles.") - do_sparks(3, FALSE, user) - remove_wibbly_filters(user) + to_chat(user, "The chameleon field fizzles.") + do_sparks(3, FALSE, user) + remove_wibbly_filters(user) /obj/item/borg_chameleon/process() if(S) if(!S.cell || !S.cell.use(activationUpkeep)) disrupt(S) - else - return PROCESS_KILL + return + return PROCESS_KILL /obj/item/borg_chameleon/proc/activate(mob/living/silicon/robot/syndicate/saboteur/user) + var/static/list/module_options = list( + "Engineering" = image('icons/mob/robots.dmi', "engi-radial"), + "Janitor" = image('icons/mob/robots.dmi', "jan-radial"), + "Medical" = image('icons/mob/robots.dmi', "med-radial"), + "Mining" = image('icons/mob/robots.dmi', "mining-radial"), + "Service" = image('icons/mob/robots.dmi', "serv-radial"), + "Cancel Cloaking" = image('icons/mob/screen_gen.dmi', "x")) + var/selected_module = show_radial_menu(user, user, module_options, radius = 42) + if(!selected_module) + return + var/examine_text = "you shouldn't see this" + switch(selected_module) + if("Mining") + examine_text = "miner robot module" + if("Service") + examine_text = "service robot module" + if("Medical") + examine_text = "medical robot module" + if("Janitor") + examine_text = "janitorial robot module" + if("Engineering") + examine_text = "engineering robot module" + if("Cancel Cloaking") + deactivate(user) + return + var/module_sprites = user.get_module_sprites(selected_module) + var/selected_sprite = show_radial_menu(user, user, module_sprites, radius = 42) + if(!selected_sprite) + return + disguise = module_sprites[selected_sprite] + var/list/name_check = splittext(selected_sprite, "-") + user.custom_panel = trim(name_check[1]) START_PROCESSING(SSobj, src) S = user - user.base_icon = disguise - user.icon_state = disguise + user.icon = disguise.icon + user.icon_state = disguise.icon_state user.cham_proj = src + user.module.name = examine_text user.bubble_icon = "robot" active = TRUE user.update_icons() + playsound(src, 'sound/effects/bamf.ogg', 100, TRUE, -6) + to_chat(user, "You are now disguised as a Nanotrasen [selected_module] cyborg.") /obj/item/borg_chameleon/proc/deactivate(mob/living/silicon/robot/syndicate/saboteur/user) STOP_PROCESSING(SSobj, src) S = user - user.base_icon = initial(user.base_icon) + user.icon = initial(user.icon) user.icon_state = initial(user.icon_state) + user.module.name = initial(user.module.name) user.bubble_icon = "syndibot" + user.custom_panel = null active = FALSE user.update_icons() diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index b2e234ba5b7..d4a6dd3b755 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -651,7 +651,7 @@ // Sydicate engineer/sabotuer cyborg module. /obj/item/robot_module/syndicate_saboteur - name = "engineering robot module" //to disguise in examine + name = "saboteur robot module" // Disguises are handled in the actual cyborg projector module_type = "Malf" basic_modules = list( /obj/item/flash/cyborg,