//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)