mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-28 22:47:59 +01:00
-Adding pepper spray for security officers.
-Fixed a storage bug for chemsprayers and space cleaner git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2618 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -14,7 +14,7 @@ MOP
|
||||
return
|
||||
|
||||
/obj/item/weapon/cleaner/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
if (istype(A, /obj/item/weapon/storage/backpack ))
|
||||
if (istype(A, /obj/item/weapon/storage ))
|
||||
return
|
||||
if (istype(A, /obj/effect/proc_holder/spell ))
|
||||
return
|
||||
@@ -91,7 +91,7 @@ MOP
|
||||
return
|
||||
|
||||
/obj/item/weapon/chemsprayer/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
if (istype(A, /obj/item/weapon/storage/backpack ))
|
||||
if (istype(A, /obj/item/weapon/storage ))
|
||||
return
|
||||
if (istype(A, /obj/effect/proc_holder/spell ))
|
||||
return
|
||||
@@ -165,7 +165,95 @@ MOP
|
||||
|
||||
return
|
||||
|
||||
/obj/item/weapon/chemsprayer/examine()
|
||||
/obj/item/weapon/pepperspray/New()
|
||||
var/datum/reagents/R = new/datum/reagents(45)
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
R.add_reagent("condensedcapsaicin", 45)
|
||||
|
||||
/obj/item/weapon/pepperspray/attack(mob/living/carbon/human/M as mob, mob/user as mob)
|
||||
return
|
||||
|
||||
/obj/item/weapon/pepperspray/afterattack(atom/A as mob|obj, mob/user as mob)
|
||||
if (istype(A, /obj/item/weapon/storage ))
|
||||
return
|
||||
if (istype(A, /obj/effect/proc_holder/spell ))
|
||||
return
|
||||
else if (istype(A, /obj/structure/reagent_dispensers/peppertank) && get_dist(src,A) <= 1)
|
||||
A.reagents.trans_to(src, 45)
|
||||
user << "\blue Pepper spray refilled"
|
||||
playsound(src.loc, 'refill.ogg', 50, 1, -6)
|
||||
return
|
||||
else if (src.reagents.total_volume < 1)
|
||||
user << "\blue [src] is empty!"
|
||||
return
|
||||
playsound(src.loc, 'spray2.ogg', 50, 1, -6)
|
||||
|
||||
var/Sprays[3]
|
||||
for(var/i=1, i<=3, i++) // intialize sprays
|
||||
if(src.reagents.total_volume < 1) break
|
||||
var/obj/effect/decal/D = new/obj/effect/decal(get_turf(src))
|
||||
D.name = "chemicals"
|
||||
D.icon = 'chempuff.dmi'
|
||||
D.create_reagents(15)
|
||||
src.reagents.trans_to(D, 15)
|
||||
|
||||
var/rgbcolor[3]
|
||||
var/finalcolor
|
||||
for(var/datum/reagent/re in D.reagents.reagent_list)
|
||||
if(!finalcolor)
|
||||
rgbcolor = GetColors(re.color)
|
||||
finalcolor = re.color
|
||||
else
|
||||
var/newcolor[3]
|
||||
var/prergbcolor[3]
|
||||
prergbcolor = rgbcolor
|
||||
newcolor = GetColors(re.color)
|
||||
|
||||
rgbcolor[1] = (prergbcolor[1]+newcolor[1])/2
|
||||
rgbcolor[2] = (prergbcolor[2]+newcolor[2])/2
|
||||
rgbcolor[3] = (prergbcolor[3]+newcolor[3])/2
|
||||
|
||||
finalcolor = rgb(rgbcolor[1], rgbcolor[2], rgbcolor[3])
|
||||
|
||||
D.icon += finalcolor
|
||||
|
||||
Sprays[i] = D
|
||||
|
||||
var/direction = get_dir(src, A)
|
||||
var/turf/T = get_turf(A)
|
||||
var/turf/T1 = get_step(T,turn(direction, 90))
|
||||
var/turf/T2 = get_step(T,turn(direction, -90))
|
||||
var/list/the_targets = list(T,T1,T2)
|
||||
|
||||
for(var/i=1, i<=Sprays.len, i++)
|
||||
spawn()
|
||||
var/obj/effect/decal/D = Sprays[i]
|
||||
if(!D) continue
|
||||
|
||||
// Spreads the sprays a little bit
|
||||
var/turf/my_target = pick(the_targets)
|
||||
the_targets -= my_target
|
||||
|
||||
for(var/j=1, j<=rand(6,8), j++)
|
||||
step_towards(D, my_target)
|
||||
D.reagents.reaction(get_turf(D))
|
||||
for(var/atom/t in get_turf(D))
|
||||
D.reagents.reaction(t)
|
||||
sleep(2)
|
||||
del(D)
|
||||
sleep(1)
|
||||
|
||||
if(isrobot(user)) //Cyborgs can clean forever if they keep charged
|
||||
var/mob/living/silicon/robot/janitor = user
|
||||
janitor.cell.charge -= 20
|
||||
var/refill = src.reagents.get_master_reagent_id()
|
||||
spawn(600)
|
||||
src.reagents.add_reagent(refill, 10)
|
||||
|
||||
return
|
||||
|
||||
/obj/item/weapon/pepperspray/examine()
|
||||
set src in usr
|
||||
usr << text("\icon[] [] units of cleaner left!", src, src.reagents.total_volume)
|
||||
..()
|
||||
|
||||
Reference in New Issue
Block a user