diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 48ec9a5e286..7951554dc05 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -182,21 +182,17 @@ return to_chat(user, "You swipe the sequencer across [src]'s interface and watch its eyes flicker.") - to_chat(src, "You feel a sudden burst of malware loaded into your execute-as-root buffer. Your tiny brain methodically parses, loads and executes the script.") + to_chat(src, "You feel a sudden burst of malware loaded into your execute-as-root buffer. Your tiny brain methodically parses, loads and executes the script. You sense you have five minutes before the drone server detects this and automatically shuts you down.") message_admins("[key_name_admin(user)] emagged drone [key_name_admin(src)]. Laws overridden.") log_game("[key_name(user)] emagged drone [key_name(src)]. Laws overridden.") var/time = time2text(world.realtime,"hh:mm:ss") lawchanges.Add("[time] : [H.name]([H.key]) emagged [name]([key])") + emagged_time = world.time emagged = 1 density = 1 - ventcrawler = 0 pass_flags = 0 - add_language("Galactic Common", 1) - emagged_time = world.time - to_chat(src, "The new malware has destroyed your ability to ventcrawl or crawl on tables, but has granted you the ability to speak Galactic Common!") - default_language = "Galactic Common" icon_state = "repairbot-emagged" holder_type = /obj/item/weapon/holder/drone/emagged update_icons() @@ -254,10 +250,16 @@ full_law_reset() show_laws() -/mob/living/silicon/robot/drone/proc/shut_down() - if(stat != 2) - to_chat(src, "You feel a system kill order percolate through your tiny brain, and you obediently destroy yourself.") - death() +/mob/living/silicon/robot/drone/proc/shut_down(force=FALSE) + if(stat == 2) + return + + if(emagged && !force) + to_chat(src, "You feel a system kill order percolate through your tiny brain, but it doesn't seem like a good idea to you.") + return + + to_chat(src, "You feel a system kill order percolate through your tiny brain, and you obediently destroy yourself.") + death() /mob/living/silicon/robot/drone/proc/full_law_reset() clear_supplied_laws() @@ -356,7 +358,7 @@ if(emagged) density = 1 if(world.time - emagged_time > EMAG_TIMER) - shut_down() + shut_down(TRUE) return density = 0 //this is reset every canmove update otherwise