Fixes the clusterbang grenade

This commit is contained in:
Anewbe
2018-08-05 01:13:16 -05:00
parent 8410891af8
commit a7ffa471b7

View File

@@ -24,6 +24,7 @@
new/obj/effect/effect/sparks(src.loc) new/obj/effect/effect/sparks(src.loc)
new/obj/effect/effect/smoke/illumination(src.loc, 5, range=30, power=30, color="#FFFFFF") new/obj/effect/effect/smoke/illumination(src.loc, 5, range=30, power=30, color="#FFFFFF")
qdel(src) qdel(src)
return return
@@ -93,33 +94,35 @@
else if(M.ear_damage >= 5) else if(M.ear_damage >= 5)
to_chat(M, "<span class='danger'>Your ears start to ring!</span>") to_chat(M, "<span class='danger'>Your ears start to ring!</span>")
M.update_icons() //Forces matrix transform to proc if they are now laying, I guess?
/obj/item/weapon/grenade/flashbang/Destroy() /obj/item/weapon/grenade/flashbang/Destroy()
walk(src, 0) // Because we might have called walk_away, we must stop the walk loop or BYOND keeps an internal reference to us forever. walk(src, 0) // Because we might have called walk_away, we must stop the walk loop or BYOND keeps an internal reference to us forever.
return ..() return ..()
/obj/item/weapon/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve /obj/item/weapon/grenade/flashbang/clusterbang//Created by Polymorph, fixed by Sieve
desc = "Use of this weapon may constiute a war crime in your area, consult your local Colony Director." desc = "Use of this weapon may constiute a war crime in your area, consult your local Colony Director."
name = "clusterbang" name = "clusterbang"
icon = 'icons/obj/grenade.dmi' icon = 'icons/obj/grenade.dmi'
icon_state = "clusterbang" icon_state = "clusterbang"
var/can_repeat = TRUE // Does this thing drop mini-clusterbangs?
var/min_banglets = 4
var/max_banglets = 8
/obj/item/weapon/grenade/flashbang/clusterbang/prime() /obj/item/weapon/grenade/flashbang/clusterbang/prime()
var/numspawned = rand(4,8) var/numspawned = rand(min_banglets, max_banglets)
var/again = 0 var/again = 0
for(var/more = numspawned,more > 0,more--)
if(can_repeat)
for(var/more = numspawned, more > 0, more--)
if(prob(35)) if(prob(35))
again++ again++
numspawned -- numspawned--
for(,numspawned > 0, numspawned--) for(var/do_spawn = numspawned, do_spawn > 0, do_spawn--)
spawn(0)
new /obj/item/weapon/grenade/flashbang/cluster(src.loc)//Launches flashbangs new /obj/item/weapon/grenade/flashbang/cluster(src.loc)//Launches flashbangs
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
for(,again > 0, again--) for(var/do_again = again, do_again > 0, do_again--)
spawn(0)
new /obj/item/weapon/grenade/flashbang/clusterbang/segment(src.loc)//Creates a 'segment' that launches a few more flashbangs new /obj/item/weapon/grenade/flashbang/clusterbang/segment(src.loc)//Creates a 'segment' that launches a few more flashbangs
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3) playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
qdel(src) qdel(src)
@@ -130,41 +133,34 @@
name = "clusterbang segment" name = "clusterbang segment"
icon = 'icons/obj/grenade.dmi' icon = 'icons/obj/grenade.dmi'
icon_state = "clusterbang_segment" icon_state = "clusterbang_segment"
can_repeat = FALSE
banglet = TRUE
/obj/item/weapon/grenade/flashbang/clusterbang/segment/New()//Segments should never exist except part of the clusterbang, since these immediately 'do their thing' and asplode /obj/item/weapon/grenade/flashbang/clusterbang/segment/New()//Segments should never exist except part of the clusterbang, since these immediately 'do their thing' and asplode
..()
icon_state = "clusterbang_segment_active" icon_state = "clusterbang_segment_active"
active = 1
banglet = 1
var/stepdist = rand(1,4)//How far to step var/stepdist = rand(1,4)//How far to step
var/temploc = src.loc//Saves the current location to know where to step away from var/temploc = src.loc//Saves the current location to know where to step away from
walk_away(src,temploc,stepdist)//I must go, my people need me walk_away(src,temploc,stepdist)//I must go, my people need me
var/dettime = rand(15,60) var/dettime = rand(15,60)
spawn(dettime) spawn(dettime)
prime() prime()
..()
/obj/item/weapon/grenade/flashbang/clusterbang/segment/prime() /obj/item/weapon/grenade/flashbang/cluster
var/numspawned = rand(4,8) banglet = TRUE
for(var/more = numspawned,more > 0,more--)
if(prob(35))
numspawned --
for(,numspawned > 0, numspawned--)
spawn(0)
new /obj/item/weapon/grenade/flashbang/cluster(src.loc)
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
qdel(src)
return
/obj/item/weapon/grenade/flashbang/cluster/New()//Same concept as the segments, so that all of the parts don't become reliant on the clusterbang /obj/item/weapon/grenade/flashbang/cluster/New()//Same concept as the segments, so that all of the parts don't become reliant on the clusterbang
spawn(0) ..()
icon_state = "flashbang_active" icon_state = "flashbang_active"
active = 1
banglet = 1
var/stepdist = rand(1,3) var/stepdist = rand(1,3)
var/temploc = src.loc var/temploc = src.loc
walk_away(src,temploc,stepdist) walk_away(src,temploc,stepdist)
var/dettime = rand(15,60) var/dettime = rand(15,60)
spawn(dettime) spawn(dettime)
prime() prime()
..()