//Banhammer deserves to be the first thing here
/obj/item/weapon/banhammer/attack(mob/M as mob, mob/user as mob)
M << " You have been banned FOR NO REISIN by [user]"
user << " You have BANNED [M]"
/obj/mine/proc/triggerrad(obj)
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
s.set_up(3, 1, src)
s.start()
obj:radiation += 50
randmutb(obj)
domutcheck(obj,null)
spawn(0)
del(src)
/obj/mine/proc/triggerstun(obj)
obj:stunned += 30
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
s.set_up(3, 1, src)
s.start()
spawn(0)
del(src)
/obj/mine/proc/triggern2o(obj)
//example: n2o triggerproc
//note: im lazy
for (var/turf/simulated/floor/target in range(1,src))
if(!target.blocks_air)
if(target.parent)
target.parent.suspend_group_processing()
var/datum/gas_mixture/payload = new
var/datum/gas/sleeping_agent/trace_gas = new
trace_gas.moles = 30
payload += trace_gas
target.air.merge(payload)
spawn(0)
del(src)
/obj/mine/proc/triggerplasma(obj)
for (var/turf/simulated/floor/target in range(1,src))
if(!target.blocks_air)
if(target.parent)
target.parent.suspend_group_processing()
var/datum/gas_mixture/payload = new
payload.toxins = 30
target.air.merge(payload)
target.hotspot_expose(1000, CELL_VOLUME)
spawn(0)
del(src)
/obj/mine/proc/triggerkick(obj)
var/datum/effects/system/spark_spread/s = new /datum/effects/system/spark_spread
s.set_up(3, 1, src)
s.start()
del(obj:client)
spawn(0)
del(src)
/obj/mine/proc/explode(obj)
explosion(loc, 0, 1, 2, 3)
spawn(0)
del(src)
/obj/mine/HasEntered(AM as mob|obj)
Bumped(AM)
/obj/mine/Bumped(mob/M as mob|obj)
if(triggered) return
if(istype(M, /mob/living/carbon/human) || istype(M, /mob/living/carbon/monkey))
for(var/mob/O in viewers(world.view, src.loc))
O << text("[M] triggered the \icon[] [src]", src)
triggered = 1
call(src,triggerproc)(M)
/obj/mine/New()
icon_state = "uglyminearmed"
/obj/item/weapon/directions/attack_hand(mob/user as mob)
if (istype(usr, /mob/living/carbon/human))
if (prob(50))
usr << "\blue You try to read the paper, but it breaks apart in your hand. Must have been pretty old.."
del(src)
return
else
if (user.knowledge < 1)
usr << "\red As you read over the paper, you slowly realize what you are reading. You quickly memorize the words on the paper before it breaks apart in your hand, and slips through your fingers."
user.knowledge++
del(src)
return
else
usr << "\blue You already have read this paper."
return
return
/atom/proc/ex_act()
return
/atom/proc/blob_act()
return
// bullet_act called when anything is hit buy a projectile (bullet, tazer shot, laser, etc.)
// flag is projectile type, can be:
//PROJECTILE_TASER = 1 taser gun
//PROJECTILE_LASER = 2 laser gun
//PROJECTILE_BULLET = 3 traitor pistol
//PROJECTILE_PULSE = 4 pulse rifle
//PROJECTILE_BOLT = 5 crossbow
//PROJECTILE_WEAKBULLET = 6 detective's revolver
/atom/proc/bullet_act(var/obj/item/projectile/Proj)
if(istype(Proj ,/obj/item/projectile/beam/pulse))
src.ex_act(2)
return
/turf/Entered(atom/A as mob|obj)
..()
if ((A && A.density && !( istype(A, /obj/beam) )))
for(var/obj/beam/i_beam/I in src)
spawn( 0 )
if (I)
I.hit()
return
return
/obj/item/weapon/mousetrap/examine()
set src in oview(12)
..()
if(armed)
usr << "\red It looks like it's armed."
/obj/item/weapon/mousetrap/proc/triggered(mob/target as mob, var/type = "feet")
if(!armed)
return
var/datum/organ/external/affecting = null
if(ishuman(target))
var/mob/living/carbon/human/H = target
switch(type)
if("feet")
if(!H.shoes)
affecting = H.organs[pick("l_foot", "r_foot")]
H.weakened = max(3, H.weakened)
if("l_hand", "r_hand")
if(!H.gloves)
affecting = H.organs[type]
H.stunned = max(3, H.stunned)
if(affecting)
affecting.take_damage(1, 0)
H.UpdateDamageIcon()
H.updatehealth()
playsound(target.loc, 'snap.ogg', 50, 1)
icon_state = "mousetrap"
armed = 0
/*
else if (ismouse(target))
target.bruteloss = 100
*/
/obj/item/weapon/mousetrap/attack_self(mob/user as mob)
if(!armed)
icon_state = "mousetraparmed"
user << "\blue You arm the mousetrap."
else
icon_state = "mousetrap"
if((user.brainloss >= 60 || user.mutations & CLOWN) && prob(50))
var/which_hand = "l_hand"
if(!user.hand)
which_hand = "r_hand"
src.triggered(user, which_hand)
user << "\red You accidentally trigger the mousetrap!"
for(var/mob/O in viewers(user, null))
if(O == user)
continue
O.show_message(text("\red [user] accidentally sets off the mousetrap, breaking their fingers."), 1)
return
user << "\blue You disarm the mousetrap."
armed = !armed
playsound(user.loc, 'handcuffs.ogg', 30, 1, -3)
/obj/item/weapon/mousetrap/attack_hand(mob/user as mob)
if(armed)
if((user.brainloss >= 60 || user.mutations & CLOWN) && prob(50))
var/which_hand = "l_hand"
if(!user.hand)
which_hand = "r_hand"
src.triggered(user, which_hand)
user << "\red You accidentally trigger the mousetrap!"
for(var/mob/O in viewers(user, null))
if(O == user)
continue
O.show_message(text("\red [user] accidentally sets off the mousetrap, breaking their fingers."), 1)
return
..()
/obj/item/weapon/mousetrap/HasEntered(AM as mob|obj)
if((ishuman(AM)) && (armed))
var/mob/living/carbon/H = AM
if(H.m_intent == "run")
src.triggered(H)
H << "\red You accidentally step on the mousetrap!"
for(var/mob/O in viewers(H, null))
if(O == H)
continue
O.show_message(text("\red [H] accidentally steps on the mousetrap."), 1)
..()
/obj/item/weapon/mousetrap/hitby(A as mob|obj)
if(!armed)
return ..()
for(var/mob/O in viewers(src, null))
O.show_message(text("\red The mousetrap is triggered by [A]."), 1)
src.triggered(null)