diff --git a/code/WorkInProgress/SkyMarshal/wardrobes.dm b/code/WorkInProgress/SkyMarshal/wardrobes.dm index 94993b7eab2..d04a108570b 100755 --- a/code/WorkInProgress/SkyMarshal/wardrobes.dm +++ b/code/WorkInProgress/SkyMarshal/wardrobes.dm @@ -62,6 +62,7 @@ update_icon() examine() + set src in oview(7) ..() if(src in usr) usr << "It claims to contain [contents.len ? descriptor : descriptor + "... but it looks empty"]." diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 0bc1ff24681..9846e313502 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -19,6 +19,7 @@ delay = 0 airlock_wire = null datum/radio_frequency/radio_connection + deadman = 0 proc signal() @@ -145,4 +146,23 @@ radio_controller.remove_object(src, frequency) frequency = new_frequency radio_connection = radio_controller.add_object(src, frequency, RADIO_CHAT) - return \ No newline at end of file + return + + process() + var/mob/M = src.loc + if(!M || !ismob(M)) + if(prob(5)) + signal() + deadman = 0 + processing_objects.Remove(src) + else if(prob(5)) + M.visible_message("[M]'s finger twitches a bit over [src]'s signal button!") + return + + proc/deadman_it() + set src in usr + set name = "Threaten to push the button!" + set desc = "BOOOOM!" + deadman = 1 + processing_objects.Add(src) + usr.visible_message("\red [usr] moves their finger over [src]'s signal button...") diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 0eb193d5bc8..ba9d524509a 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -42,9 +42,9 @@ if(!effect || (blocked >= 2)) return 0 switch(effecttype) if(STUN) - Stun((effect - (effect*getarmor(null, "laser")))) + Stun((effect - (min(effect*getarmor(null, "laser"), effect*(0.75 + (blocked*0.05)))))) if(WEAKEN) - Weaken((effect - (effect*getarmor(null, "laser")))) + Weaken((effect - (min(effect*getarmor(null, "laser"), effect*(0.75 + (blocked*0.05)))))) if(PARALYZE) Paralyse(effect/(blocked+1)) if(IRRADIATE) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 0ab59020ec3..c00e769dd3c 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -45,6 +45,12 @@ flash_weak_pain() + if(istype(equipped(),/obj/item/device/assembly/signaler)) + var/obj/item/device/assembly/signaler/signaler = equipped() + if(signaler.deadman && prob(80)) + src.visible_message("\red [src] triggers their deadman's switch!") + signaler.signal() + var/absorb = run_armor_check(def_zone, P.flag) if(absorb >= 2) P.on_hit(src,2) diff --git a/code/modules/mob/screen.dm b/code/modules/mob/screen.dm index bbd470d7b16..d1d09497040 100644 --- a/code/modules/mob/screen.dm +++ b/code/modules/mob/screen.dm @@ -5,6 +5,7 @@ unacidable = 1 var/id = 0.0 var/obj/master + var/gun_click_time = -100 //I'm lazy. /obj/screen/close name = "close" @@ -589,53 +590,77 @@ usr:module_active = null if("Allow Walking") + if(gun_click_time > world.time - 15) //give them 1.5 seconds between mode changes. + usr << "You need to wait some before you can change what they can do!" + return if(!istype(usr.equipped(),/obj/item/weapon/gun)) usr << "You need your gun in your active hand to do that!" return usr.AllowTargetMove() icon_state = "walking" name = "Disallow Walking" + gun_click_time = world.time if("Disallow Walking") + if(gun_click_time > world.time - 15) //give them 1.5 seconds between mode changes. + usr << "You need to wait some before you can change what they can do!" + return if(!istype(usr.equipped(),/obj/item/weapon/gun)) usr << "You need your gun in your active hand to do that!" return usr.AllowTargetMove() icon_state = "no_walk" name = "Allow Walking" + gun_click_time = world.time if("Allow Running") + if(gun_click_time > world.time - 15) //give them 1.5 seconds between mode changes. + usr << "You need to wait some before you can change what they can do!" + return if(!istype(usr.equipped(),/obj/item/weapon/gun)) usr << "You need your gun in your active hand to do that!" return usr.AllowTargetRun() icon_state = "running" name = "Disallow Running" + gun_click_time = world.time if("Disallow Running") + if(gun_click_time > world.time - 15) //give them 1.5 seconds between mode changes. + usr << "You need to wait some before you can change what they can do!" + return if(!istype(usr.equipped(),/obj/item/weapon/gun)) usr << "You need your gun in your active hand to do that!" return usr.AllowTargetRun() icon_state = "no_run" name = "Allow Running" + gun_click_time = world.time if("Allow Item Use") + if(gun_click_time > world.time - 15) //give them 1.5 seconds between mode changes. + usr << "You need to wait some before you can change what they can do!" + return if(!istype(usr.equipped(),/obj/item/weapon/gun)) usr << "You need your gun in your active hand to do that!" return name = "Disallow Item Use" icon_state = "act_throw_off" usr.AllowTargetClick() + gun_click_time = world.time if("Disallow Item Use") + if(gun_click_time > world.time - 15) //give them 1.5 seconds between mode changes. + usr << "You need to wait some before you can change what they can do!" + return if(!istype(usr.equipped(),/obj/item/weapon/gun)) usr << "You need your gun in your active hand to do that!" return name = "Allow Item Use" icon_state = "no_item" usr.AllowTargetClick() + gun_click_time = world.time else DblClick() diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 0f89206cec1..bbd3cf4586b 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -181,6 +181,7 @@ proc/TargetActed() var/mob/M = loc if(target == M) return + usr.last_move_intent = world.time Fire(target,usr) var/dir_to_fire = sd_get_approx_dir(M,target) if(dir_to_fire != M.dir) diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 859e734d05b..0f1f244a2e0 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -18,7 +18,7 @@ verb/rename_gun() set name = "Name Gun" - set desc = "Click to rename your gun. If you're the detective." + set desc = "Click to rename your gun." var/mob/M = usr if(!M.mind) return 0