mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-09 16:14:13 +00:00
* Running with scissors. * Fix. * Text stuff. * Change comment. * Fix randomized targeting. * Clumsyness. * . * . * . * Monkey messages. * . * . * Nicer conjugation. * . * More flexible attack messages. * . * . * Butter, butter on a stick, and slippery sliders. * Refactor slipping messages. * . * . * Nicer syringe messages. * You hit the camera with. * Remove debug. * Update items.dm Only when running. * Update items.dm * Update effect_system.dm * Remove unneeded arg.
109 lines
3.2 KiB
Plaintext
109 lines
3.2 KiB
Plaintext
/obj/item/weapon/grenade/clown_grenade
|
|
name = "Banana Grenade"
|
|
desc = "A grenade used for rapid slipping of larger areas. Contains banana peels that release acid when slipped on."
|
|
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/items_lefthand.dmi', "right_hand" = 'icons/mob/in-hand/right/items_righthand.dmi')
|
|
icon_state = "banana"
|
|
item_state = "banana" //banana inhand sprites when
|
|
w_class = W_CLASS_SMALL
|
|
force = 2.0
|
|
var/stage = 0
|
|
var/state = 0
|
|
var/path = 0
|
|
var/affected_area = 2
|
|
|
|
/obj/item/weapon/grenade/clown_grenade/New()
|
|
icon_state = initial(icon_state)
|
|
|
|
/obj/item/weapon/grenade/clown_grenade/prime()
|
|
..()
|
|
playsound(src, 'sound/items/bikehorn.ogg', 25, -3)
|
|
/*
|
|
for(var/turf/simulated/floor/T in view(affected_area, src.loc))
|
|
if(prob(75))
|
|
banana(T)
|
|
*/
|
|
var/i = 0
|
|
var/number = 0
|
|
for(var/direction in alldirs)
|
|
for(i = 0; i < 2; i++)
|
|
number++
|
|
var/obj/item/weapon/bananapeel/traitorpeel/peel = new /obj/item/weapon/bananapeel/traitorpeel(get_turf(src.loc))
|
|
/* var/direction = pick(alldirs)
|
|
var/spaces = pick(1;150, 2)
|
|
var/a = 0
|
|
for(a = 0; a < spaces; a++)
|
|
step(peel,direction)*/
|
|
var/a = 1
|
|
if(number & 2)
|
|
for(a = 1; a <= 2; a++)
|
|
step(peel,direction)
|
|
else
|
|
step(peel,direction)
|
|
new /obj/item/weapon/bananapeel/traitorpeel(get_turf(src.loc))
|
|
qdel(src)
|
|
return
|
|
/*
|
|
/obj/item/weapon/grenade/clown_grenade/proc/banana(turf/T as turf)
|
|
if(!T || !istype(T))
|
|
return
|
|
if(locate(/obj/structure/grille) in T)
|
|
return
|
|
if(locate(/obj/structure/window) in T)
|
|
return
|
|
new /obj/item/weapon/bananapeel/traitorpeel(T)
|
|
*/
|
|
|
|
/obj/item/weapon/bananapeel/traitorpeel
|
|
name = "banana peel"
|
|
desc = "A peel from a banana."
|
|
icon = 'icons/obj/hydroponics/banana.dmi'
|
|
icon_state = "peel"
|
|
item_state = "banana_peel"
|
|
w_class = W_CLASS_TINY
|
|
throwforce = 0
|
|
throw_speed = 4
|
|
throw_range = 20
|
|
|
|
var/slip_power = 4
|
|
|
|
/obj/item/weapon/bananapeel/traitorpeel/handle_slip(atom/movable/AM)
|
|
if(isliving(AM))
|
|
var/burned = rand(2,5)
|
|
var/mob/living/M = AM
|
|
if(M.lying)
|
|
M.take_overall_damage(0, max(0, (burned - 2)))
|
|
M.simple_message("<span class='danger'>Something burns your back!</span>",\
|
|
"<span class='userdanger'>They're eating your back!</span>")
|
|
return
|
|
|
|
if(ishuman(M))
|
|
if(M.CheckSlip())
|
|
M.simple_message("<span class='warning'>Your feet feel like they're on fire!</span>",\
|
|
"<span class='userdanger'>Egads! They bite your feet!</span>")
|
|
M.take_overall_damage(0, max(0, (burned - 2)))
|
|
else
|
|
return
|
|
|
|
if(!istype(M, /mob/living/carbon/slime) && !isrobot(M))
|
|
if(iscarbon(M))
|
|
var/mob/living/carbon/C = M
|
|
C.Slip(10, 10, slipped_on = src, drugged_message = "<span class='userdanger'>Please, just end the pain!</span>", spanclass = "notice")
|
|
else //Includes simple animals
|
|
M.Slip(10, 10)
|
|
M.simple_message("<span class='notice'>You slipped on \the [name]!</span>",\
|
|
"<span class='userdanger'>Please, just end the pain!</span>")
|
|
step(M, M.dir)
|
|
spawn(1)
|
|
for(var/i = 1 to slip_power)
|
|
step(M, M.dir)
|
|
sleep(1)
|
|
M.take_organ_damage(2) // Was 5 -- TLE
|
|
M.take_overall_damage(0, burned)
|
|
|
|
/obj/item/weapon/bananapeel/traitorpeel/throw_impact(atom/hit_atom)
|
|
var/burned = rand(1,3)
|
|
if(istype(hit_atom ,/mob/living))
|
|
var/mob/living/M = hit_atom
|
|
M.take_organ_damage(0, burned)
|
|
return ..()
|