mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-14 12:13:06 +00:00
New turf proc: assume_gas(). Maps to air.adjust_gas_temp(). Lots of optimizations to processing, fire, lighting, HasEntered() and more. Zones now process all fire data and existance in one go, fire objects only handle spreading. Most code has been ported straight so some of it mightn't be ideally structured for the new gas_mixtures. Signed-off-by: Mloc-Argent <colmohici@gmail.com>
68 lines
2.1 KiB
Plaintext
68 lines
2.1 KiB
Plaintext
/* Clown Items
|
|
* Contains:
|
|
* Banana Peels
|
|
* Soap
|
|
* Bike Horns
|
|
*/
|
|
|
|
/*
|
|
* Banana Peals
|
|
*/
|
|
/obj/item/weapon/bananapeel/Crossed(AM as mob|obj)
|
|
if (istype(AM, /mob/living/carbon))
|
|
var/mob/M = AM
|
|
if (istype(M, /mob/living/carbon/human) && (isobj(M:shoes) && M:shoes.flags&NOSLIP) || M.buckled)
|
|
return
|
|
|
|
M.stop_pulling()
|
|
M << "\blue You slipped on the [name]!"
|
|
playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
|
|
M.Stun(4)
|
|
M.Weaken(2)
|
|
|
|
/*
|
|
* Soap
|
|
*/
|
|
/obj/item/weapon/soap/Crossed(AM as mob|obj) //EXACTLY the same as bananapeel for now, so it makes sense to put it in the same dm -- Urist
|
|
if (istype(AM, /mob/living/carbon))
|
|
var/mob/M = AM
|
|
if (istype(M, /mob/living/carbon/human) && (isobj(M:shoes) && M:shoes.flags&NOSLIP) || M.buckled)
|
|
return
|
|
|
|
M.stop_pulling()
|
|
M << "\blue You slipped on the [name]!"
|
|
playsound(src.loc, 'sound/misc/slip.ogg', 50, 1, -3)
|
|
M.Stun(3)
|
|
M.Weaken(2)
|
|
|
|
/obj/item/weapon/soap/afterattack(atom/target, mob/user as mob, proximity)
|
|
if(!proximity) return
|
|
//I couldn't feasibly fix the overlay bugs caused by cleaning items we are wearing.
|
|
//So this is a workaround. This also makes more sense from an IC standpoint. ~Carn
|
|
if(user.client && (target in user.client.screen))
|
|
user << "<span class='notice'>You need to take that [target.name] off before cleaning it.</span>"
|
|
else if(istype(target,/obj/effect/decal/cleanable))
|
|
user << "<span class='notice'>You scrub \the [target.name] out.</span>"
|
|
del(target)
|
|
else
|
|
user << "<span class='notice'>You clean \the [target.name].</span>"
|
|
target.clean_blood()
|
|
return
|
|
|
|
/obj/item/weapon/soap/attack(mob/target as mob, mob/user as mob)
|
|
if(target && user && ishuman(target) && ishuman(user) && !target.stat && !user.stat && user.zone_sel &&user.zone_sel.selecting == "mouth" )
|
|
user.visible_message("\red \the [user] washes \the [target]'s mouth out with soap!")
|
|
return
|
|
..()
|
|
|
|
/*
|
|
* Bike Horns
|
|
*/
|
|
/obj/item/weapon/bikehorn/attack_self(mob/user as mob)
|
|
if (spam_flag == 0)
|
|
spam_flag = 1
|
|
playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1)
|
|
src.add_fingerprint(user)
|
|
spawn(20)
|
|
spam_flag = 0
|
|
return |