//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/effect/mine/proc/triggerrad(obj) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() obj:radiation += 50 randmutb(obj) domutcheck(obj,null) spawn(0) del(src) /obj/effect/mine/proc/triggerstun(obj) if(ismob(obj)) var/mob/M = obj M.Stun(30) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() spawn(0) del(src) /obj/effect/mine/proc/triggern2o(obj) //example: n2o triggerproc //note: im lazy for (var/turf/simulated/floor/target in range(1,src)) if(!target.blocks_air) var/datum/gas_mixture/payload = new var/datum/gas/sleeping_agent/trace_gas = new trace_gas.moles = 30 payload += trace_gas payload.update_values() target.air.merge(payload) spawn(0) del(src) /obj/effect/mine/proc/triggerplasma(obj) for (var/turf/simulated/floor/target in range(1,src)) if(!target.blocks_air) var/datum/gas_mixture/payload = new payload.toxins = 30 payload.update_values() target.air.merge(payload) target.hotspot_expose(1000, CELL_VOLUME) spawn(0) del(src) /obj/effect/mine/proc/triggerkick(obj) var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(3, 1, src) s.start() del(obj:client) spawn(0) del(src) /obj/effect/mine/proc/explode(obj) explosion(loc, 0, 1, 2, 3) spawn(0) del(src) /obj/effect/mine/HasEntered(AM as mob|obj) Bumped(AM) /obj/effect/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 << "[M] triggered the \icon[src] [src]" triggered = 1 call(src,triggerproc)(M) /obj/effect/mine/New() icon_state = "uglyminearmed" /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 /turf/Entered(atom/A as mob|obj) ..() if ((A && A.density && !( istype(A, /obj/effect/beam) ))) for(var/obj/effect/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.get_organ(pick("l_leg", "r_leg")) if(!affecting.robot) H.Weaken(3) if("l_hand", "r_hand") if(!H.gloves) affecting = H.get_organ(type) if(!affecting.robot) H.Stun(3) if(affecting && !affecting.robot) 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.adjustBruteLoss(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.getBrainLoss() >= 60 || (CLUMSY in user.mutations)) && 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("\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.getBrainLoss() >= 60 || CLUMSY in user.mutations)) && 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("\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("\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("\red The mousetrap is triggered by [A].", 1) src.triggered(null)