mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 02:54:41 +01:00
Merge pull request #2058 from Fox-McCloud/cluster-grenade-cleanup
Cluster Grenade Cleanup
This commit is contained in:
@@ -276,7 +276,7 @@
|
||||
/mob/living/simple_animal/hostile/hivebot,/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/pirate)
|
||||
|
||||
visible_message("\red Something falls out of the [src]!")
|
||||
var/obj/item/weapon/grenade/flashbang/clusterbang/C = new(src.loc)
|
||||
var/obj/item/weapon/grenade/clusterbuster/C = new(src.loc)
|
||||
C.prime()
|
||||
spawn(10)
|
||||
new menace(src.loc)
|
||||
|
||||
@@ -415,8 +415,7 @@
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/large/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/large/B2 = new(src)
|
||||
|
||||
B1.reagents.add_reagent("aluminum", 25)
|
||||
B1.reagents.add_reagent("incendiaryfuel",25)
|
||||
B1.reagents.add_reagent("phosphorus", 25)
|
||||
B2.reagents.add_reagent("plasma", 25)
|
||||
B2.reagents.add_reagent("sacid", 25)
|
||||
|
||||
@@ -485,6 +484,26 @@
|
||||
beakers += B2
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/facid
|
||||
name = "acid grenade"
|
||||
desc = "Used for melting armoured opponents."
|
||||
stage = READY
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/facid/New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/bluespace/B2 = new(src)
|
||||
|
||||
B1.reagents.add_reagent("facid", 280)
|
||||
B1.reagents.add_reagent("potassium", 20)
|
||||
B2.reagents.add_reagent("phosphorus", 20)
|
||||
B2.reagents.add_reagent("sugar", 20)
|
||||
B2.reagents.add_reagent("facid", 260)
|
||||
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/tabungas
|
||||
payload_name = "tabungas"
|
||||
desc = "Contains tabun gas; extremely deadly and fast acting; use with extreme caution."
|
||||
|
||||
@@ -0,0 +1,266 @@
|
||||
////////////////////
|
||||
//Clusterbang
|
||||
////////////////////
|
||||
/obj/item/weapon/grenade/clusterbuster
|
||||
desc = "Use of this weapon may constiute a war crime in your area, consult your local captain."
|
||||
name = "clusterbang"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang"
|
||||
var/payload = /obj/item/weapon/grenade/flashbang/cluster
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/prime()
|
||||
update_mob()
|
||||
var/numspawned = rand(4,8)
|
||||
var/again = 0
|
||||
|
||||
for(var/more = numspawned,more > 0,more--)
|
||||
if(prob(35))
|
||||
again++
|
||||
numspawned--
|
||||
|
||||
for(var/loop = again ,loop > 0, loop--)
|
||||
new /obj/item/weapon/grenade/clusterbuster/segment(loc, payload)//Creates 'segments' that launches a few more payloads
|
||||
|
||||
new /obj/effect/payload_spawner(loc, payload, numspawned)//Launches payload
|
||||
|
||||
playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
|
||||
qdel(src)
|
||||
|
||||
|
||||
//////////////////////
|
||||
//Clusterbang segment
|
||||
//////////////////////
|
||||
/obj/item/weapon/grenade/clusterbuster/segment
|
||||
desc = "A smaller segment of a clusterbang. Better run."
|
||||
name = "clusterbang segment"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang_segment"
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/segment/New(var/loc, var/payload_type = /obj/item/weapon/grenade/flashbang/cluster)
|
||||
..()
|
||||
icon_state = "clusterbang_segment_active"
|
||||
payload = payload_type
|
||||
active = 1
|
||||
walk_away(src,loc,rand(1,4))
|
||||
spawn(rand(15,60))
|
||||
prime()
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/segment/prime()
|
||||
|
||||
new /obj/effect/payload_spawner(loc, payload, rand(4,8))
|
||||
|
||||
playsound(loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
|
||||
qdel(src)
|
||||
|
||||
//////////////////////////////////
|
||||
//The payload spawner effect
|
||||
/////////////////////////////////
|
||||
/obj/effect/payload_spawner/New(var/turf/newloc,var/type, var/numspawned as num)
|
||||
|
||||
for(var/loop = numspawned ,loop > 0, loop--)
|
||||
var/obj/item/weapon/grenade/P = new type(loc)
|
||||
if(istype(P, /obj/item/weapon/grenade))
|
||||
P.active = 1
|
||||
walk_away(P,loc,rand(1,4))
|
||||
|
||||
spawn(rand(15,60))
|
||||
if(P && isnull(P.gcDestroyed))
|
||||
if(istype(P, /obj/item/weapon/grenade))
|
||||
P.prime()
|
||||
qdel(src)
|
||||
|
||||
|
||||
//////////////////////////////////
|
||||
//Custom payload clusterbusters
|
||||
/////////////////////////////////
|
||||
/obj/item/weapon/grenade/flashbang/cluster
|
||||
icon_state = "flashbang_active"
|
||||
banglet = 1
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/emp
|
||||
name = "Electromagnetic Storm"
|
||||
payload = /obj/item/weapon/grenade/empgrenade
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/smoke
|
||||
name = "Ninja Vanish"
|
||||
payload = /obj/item/weapon/grenade/smokebomb
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/metalfoam
|
||||
name = "Instant Concrete"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/metalfoam
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/inferno
|
||||
name = "Inferno"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/incendiary
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/antiweed
|
||||
name = "RoundDown"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/antiweed
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/cleaner
|
||||
name = "Mr. Proper"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/cleaner
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/teargas
|
||||
name = "Oignon Grenade"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/teargas
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/facid
|
||||
name = "Aciding Rain"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/facid
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/syndieminibomb
|
||||
name = "SyndiWrath"
|
||||
payload = /obj/item/weapon/grenade/syndieminibomb
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/spawner_manhacks
|
||||
name = "iViscerator"
|
||||
payload = /obj/item/weapon/grenade/spawnergrenade/manhacks
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/spawner_spesscarp
|
||||
name = "Invasion of the Space Carps"
|
||||
payload = /obj/item/weapon/grenade/spawnergrenade/spesscarp
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/monster
|
||||
name = "Monster Megabomb"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/large/monster
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/meat
|
||||
name = "Mega Meat Grenade"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/meat
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/nervegas
|
||||
name = "Nerve Gas Clusterbomb"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/tabungas
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/megadirt
|
||||
name = "Megamaid's Revenge Grenade"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/dirt
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/ultima
|
||||
name = "Earth Shattering Kaboom"
|
||||
desc = "Contains one Aludium Q-36 explosive space modulator."
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/explosion
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/lube
|
||||
name = "Newton's First Law"
|
||||
desc = "An object in motion remains in motion."
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/lube
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/hippie
|
||||
name = "Hippie Grenade"
|
||||
desc = "Almost as good as the summer of '69."
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/drugs
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/holy
|
||||
name = "Purification Grenade"
|
||||
desc = "Blessed excessively."
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/holywater
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/hellwater
|
||||
name = "Righteous Fury"
|
||||
desc = "It's righteous, not badminnery."
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/hellwater
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/booze
|
||||
name = "Booze Grenade"
|
||||
payload = /obj/item/weapon/reagent_containers/food/drinks/bottle/random_drink
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/honk
|
||||
name = "Mega Honk Grenade"
|
||||
payload = /obj/item/weapon/bananapeel
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/honk_evil
|
||||
name = "Evil Mega Honk Grenade"
|
||||
payload = /obj/item/weapon/grenade/clown_grenade
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/xmas
|
||||
name = "Christmas Miracle"
|
||||
payload = /obj/item/weapon/a_gift
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/dirt
|
||||
name = "Megamaid's Job Security Grenade"
|
||||
payload = /obj/effect/decal/cleanable/random
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/apocalypsefake
|
||||
name = "Fun Bomb"
|
||||
desc = "Not like the other bomb."
|
||||
payload = /obj/item/toy/spinningtoy
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/apocalypse
|
||||
name = "Apocalypse Bomb"
|
||||
desc = "No matter what, do not EVER use this."
|
||||
payload = /obj/singularity
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/tools
|
||||
name = "Quick Repair Grenade"
|
||||
desc = "An assistant's every dream."
|
||||
payload = /obj/random/tool
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/tools
|
||||
name = "Engineering Deployment Platfom"
|
||||
desc = "For the that time when gearing up was just too hard."
|
||||
payload = /obj/random/tech_supply
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/toys
|
||||
name = "Toy Delivery System"
|
||||
desc = "Who needs skill at arcades anyway?"
|
||||
payload = /obj/item/toy/random
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/banquet
|
||||
name = "Bork Bork Bonanza"
|
||||
desc = "Bork bork bork."
|
||||
payload = /obj/item/weapon/grenade/clusterbuster/banquet/child
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/banquet/child
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/large/feast
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/aviary
|
||||
name = "Poly-Poly Grenade"
|
||||
desc = "That's an uncomfortable number of birds."
|
||||
payload = /mob/living/simple_animal/parrot
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/monkey
|
||||
name = "Barrel of Monkeys"
|
||||
desc = "Not really that much fun."
|
||||
payload = /mob/living/carbon/human/monkey
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/fluffy
|
||||
name = "Fluffy Love Bomb"
|
||||
desc = "Exactly as snuggly as it sounds."
|
||||
payload = /mob/living/simple_animal/pet/corgi/puppy
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/fox
|
||||
name = "Troublemaking Grenade"
|
||||
desc = "More trouble than two foxes combined."
|
||||
payload = /mob/living/simple_animal/pet/fox
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/crab
|
||||
name = "Crab Grenade"
|
||||
desc = "Reserved for those pesky request."
|
||||
payload = /mob/living/simple_animal/crab
|
||||
|
||||
////////////Clusterbuster of Clusterbusters////////////
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/mega_fox
|
||||
name = "Mega Troublemaking Grenade."
|
||||
payload = /obj/item/weapon/grenade/clusterbuster/fox
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/mega_bang
|
||||
name = "For when stunlocking is just too short."
|
||||
payload = /obj/item/weapon/grenade/clusterbuster
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/mega_syndieminibomb
|
||||
name = "Mega SyndiWrath."
|
||||
payload = /obj/item/weapon/grenade/clusterbuster/syndieminibomb
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/mega_honk_evil
|
||||
name = "Mega Evil Mega Honk Grenade."
|
||||
payload = /obj/item/weapon/grenade/clusterbuster/honk_evil
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/mega_emp
|
||||
name = "Electromagnetic Storm"
|
||||
payload = /obj/item/weapon/grenade/clusterbuster/emp
|
||||
+17
-179
@@ -47,6 +47,22 @@
|
||||
B.reagents.add_reagent("holywater",100)
|
||||
beakers += B
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/hellwater
|
||||
payload_name = "hell water"
|
||||
desc = "And he struck them down with an unholy fury that burn like one-thousands badmins."
|
||||
stage = 2
|
||||
det_time = 30
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/large/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/large/B2 = new(src)
|
||||
B1.reagents.add_reagent("hellwater",80)
|
||||
B1.reagents.add_reagent("sugar",20)
|
||||
B2.reagents.add_reagent("hellwater", 60)
|
||||
B2.reagents.add_reagent("potassium", 20)
|
||||
B2.reagents.add_reagent("phosphorus", 20)
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/drugs
|
||||
payload_name = "miracle"
|
||||
@@ -253,17 +269,6 @@
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
|
||||
// Slime Clusterbusters
|
||||
/*/obj/item/weapon/grenade/clusterbuster/bluespace
|
||||
name = "Bluespace Megabomb"
|
||||
desc = "Widely regarded as proof that while there is a God, He is Insane."
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/large/bluespace*/
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/monster
|
||||
name = "Monster Megabomb"
|
||||
desc = "Widely regarded as proof that there is no God."
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/large/monster
|
||||
|
||||
// --------------------------------------
|
||||
// Syndie Kits
|
||||
// --------------------------------------
|
||||
@@ -291,171 +296,4 @@
|
||||
new /obj/item/weapon/grenade/chem_grenade/lube(src)
|
||||
new /obj/item/device/multitool(src) // used to adjust the chemgrenade's signaller
|
||||
new /obj/item/device/assembly/signaler(src)
|
||||
return
|
||||
// --------------------------------------
|
||||
// Clusterbuster Variable Payload Grenade
|
||||
// Adapted from flashbang/clusterbang
|
||||
// --------------------------------------
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster
|
||||
desc = "This highly intimidating bunch of hardware seems eager to be let loose."
|
||||
name = "Clusterbang"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang"
|
||||
var/payload = /obj/item/weapon/grenade/flashbang
|
||||
|
||||
|
||||
// Subtypes
|
||||
|
||||
// Serious grenades
|
||||
/obj/item/weapon/grenade/clusterbuster/explosion
|
||||
name = "Cluster Grenade"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/explosion
|
||||
/obj/item/weapon/grenade/clusterbuster/emp
|
||||
name = "Electromagnetic Storm"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/emp
|
||||
/obj/item/weapon/grenade/clusterbuster/smoke
|
||||
name = "Ninja Vanish"
|
||||
payload = /obj/item/weapon/grenade/smokebomb
|
||||
|
||||
// Not serious grenades
|
||||
/obj/item/weapon/grenade/clusterbuster/meat
|
||||
name = "Mega Meat Grenade"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/meat
|
||||
/obj/item/weapon/grenade/clusterbuster/booze
|
||||
name = "Booze Grenade"
|
||||
payload = /obj/item/weapon/reagent_containers/food/drinks/bottle/random_drink
|
||||
/obj/item/weapon/grenade/clusterbuster/honk
|
||||
name = "Mega Honk Grenade"
|
||||
payload = /obj/item/weapon/bananapeel
|
||||
/obj/item/weapon/grenade/clusterbuster/xmas
|
||||
name = "Christmas Miracle"
|
||||
payload = /obj/item/weapon/a_gift
|
||||
/obj/item/weapon/grenade/clusterbuster/dirt
|
||||
name = "Megamaid's Job Security Grenade"
|
||||
payload = /obj/effect/decal/cleanable/random
|
||||
/obj/item/weapon/grenade/clusterbuster/megadirt
|
||||
name = "Megamaid's Revenge Grenade"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/dirt
|
||||
/obj/item/weapon/grenade/clusterbuster/inferno
|
||||
name = "Little Boy"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/incendiary
|
||||
/obj/item/weapon/grenade/clusterbuster/apocalypsefake
|
||||
name = "Fun Bomb"
|
||||
desc = "Not like the other bomb."
|
||||
payload = /obj/item/toy/spinningtoy
|
||||
|
||||
// Grenades that should never see the light of day
|
||||
/obj/item/weapon/grenade/clusterbuster/apocalypse
|
||||
name = "Apocalypse Bomb"
|
||||
desc = "No matter what, do not EVER use this."
|
||||
payload = /obj/singularity
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/ultima
|
||||
name = "Earth Shattering Kaboom"
|
||||
desc = "Contains one Aludium Q-36 explosive space modulator."
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/explosion
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/lube
|
||||
name = "Newton's First Law"
|
||||
desc = "An object in motion remains in motion."
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/lube
|
||||
|
||||
|
||||
/*/obj/item/weapon/grenade/clusterbuster/bluespace
|
||||
name = "Maximum Warp"
|
||||
desc = "Spacetime: Nice job breaking it, hero."
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/large/bluespace*/
|
||||
/obj/item/weapon/grenade/clusterbuster/monster
|
||||
name = "The Monster Mash"
|
||||
desc = "It's a graveyeard smash."
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/large/monster
|
||||
/obj/item/weapon/grenade/clusterbuster/banquet
|
||||
name = "Bork Bork Bonanza"
|
||||
desc = "Bork bork bork."
|
||||
payload = /obj/item/weapon/grenade/clusterbuster/banquet/child
|
||||
child
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/large/feast
|
||||
|
||||
// Mob spawning grenades
|
||||
/obj/item/weapon/grenade/clusterbuster/aviary
|
||||
name = "Poly-Poly Grenade"
|
||||
desc = "That's an uncomfortable number of birds."
|
||||
payload = /mob/living/simple_animal/parrot
|
||||
/obj/item/weapon/grenade/clusterbuster/monkey
|
||||
name = "Barrel of Monkeys"
|
||||
desc = "Not really that much fun."
|
||||
payload = /mob/living/carbon/human/monkey
|
||||
/obj/item/weapon/grenade/clusterbuster/fluffy
|
||||
name = "Fluffy Love Bomb"
|
||||
desc = "Exactly as snuggly as it sounds."
|
||||
payload = /mob/living/simple_animal/pet/corgi/puppy
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/prime()
|
||||
var/numspawned = rand(4,8)
|
||||
var/again = 0
|
||||
for(var/more = numspawned,more > 0,more--)
|
||||
if(prob(35))
|
||||
again++
|
||||
numspawned --
|
||||
|
||||
for(,numspawned > 0, numspawned--)
|
||||
spawn(0)
|
||||
new /obj/item/weapon/grenade/clusterbuster/node(src.loc,payload,name)//Launches payload
|
||||
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
|
||||
for(,again > 0, again--)
|
||||
spawn(0)
|
||||
new /obj/item/weapon/grenade/clusterbuster/segment(src.loc,payload,name)//Creates a 'segment' that launches more payloads
|
||||
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
spawn(0)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/segment
|
||||
desc = "What's happening? Aaah!"
|
||||
name = "clusterbuster segment"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang_segment"
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/segment/New(var/turf/newloc,var/T,var/N)//Segments should never exist except part of the clusterbang, since these immediately 'do their thing' and asplode
|
||||
icon_state = "clusterbang_segment_active"
|
||||
active = 1
|
||||
payload = T
|
||||
name = N
|
||||
var/stepdist = rand(1,5) //How far to step
|
||||
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
|
||||
var/dettime = rand(15,60)
|
||||
spawn(dettime)
|
||||
prime()
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/segment/prime()
|
||||
var/numspawned = rand(4,8)
|
||||
for(var/more = numspawned,more > 0,more--)
|
||||
if(prob(35))
|
||||
numspawned --
|
||||
|
||||
for(,numspawned > 0, numspawned--)
|
||||
new /obj/item/weapon/grenade/clusterbuster/node(src.loc,payload)
|
||||
spawn(0)
|
||||
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/grenade/clusterbuster/node/New(var/turf/newloc,var/T,var/N)
|
||||
icon_state = "flashbang_active"
|
||||
active = 1
|
||||
payload = T
|
||||
name = N
|
||||
var/stepdist = rand(1,4)
|
||||
var/temploc = src.loc
|
||||
walk_away(src,temploc,stepdist)
|
||||
var/dettime = rand(15,60)
|
||||
spawn(dettime)
|
||||
var/atom/A = new payload(loc)
|
||||
if(istype(A,/obj/item/weapon/grenade))
|
||||
A:prime()
|
||||
if(istype(A,/obj/singularity)) // I can't emphasize enough how much you should never use this grenade
|
||||
A:energy = 200
|
||||
qdel(src)
|
||||
return
|
||||
@@ -21,7 +21,7 @@
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/proc/bang(var/turf/T , var/mob/living/M)
|
||||
M.show_message("<span class='warning'>BANG</span>", 2)
|
||||
playsound(src.loc, 'sound/effects/bang.ogg', 25, 1)
|
||||
playsound(loc, 'sound/effects/bang.ogg', 25, 1)
|
||||
|
||||
//Checking for protections
|
||||
var/eye_safety = 0
|
||||
@@ -48,12 +48,12 @@
|
||||
M << "<span class='warning'>Your eyes start to burn badly!</span>"
|
||||
else
|
||||
M << "<span class='warning'>The flash blinds you!</span>"
|
||||
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
|
||||
if(!banglet)
|
||||
if (E.damage >= E.min_broken_damage)
|
||||
M << "<span class='warning'>You can't see anything!</span>"
|
||||
|
||||
//Bang
|
||||
if((src.loc == M) || src.loc == M.loc)//Holding on person or being exactly where lies is significantly more dangerous and voids protection
|
||||
if((loc == M) || loc == M.loc)//Holding on person or being exactly where lies is significantly more dangerous and voids protection
|
||||
M.Stun(10)
|
||||
M.Weaken(10)
|
||||
if(!ear_safety)
|
||||
@@ -63,81 +63,10 @@
|
||||
M.ear_deaf = max(M.ear_deaf,15)
|
||||
if (M.ear_damage >= 15)
|
||||
M << "<span class='warning'>Your ears start to ring badly!</span>"
|
||||
if(!banglet && !(istype(src , /obj/item/weapon/grenade/flashbang/clusterbang)))
|
||||
if(!banglet)
|
||||
if(prob(M.ear_damage - 10 + 5))
|
||||
M << "<span class='warning'>You can't hear anything!</span>"
|
||||
M.disabilities |= DEAF
|
||||
else
|
||||
if (M.ear_damage >= 5)
|
||||
M << "<span class='warning'>Your ears start to ring!</span>"
|
||||
|
||||
////////////////////
|
||||
//Clusterbang
|
||||
////////////////////
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang
|
||||
desc = "Use of this weapon may constiute a war crime in your area, consult your local captain."
|
||||
name = "clusterbang"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang"
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang/prime()
|
||||
update_mob()
|
||||
var/numspawned = rand(4,8)
|
||||
var/again = 0
|
||||
|
||||
for(var/more = numspawned,more > 0,more--)
|
||||
if(prob(35))
|
||||
again++
|
||||
numspawned--
|
||||
|
||||
for(var/loop = numspawned, loop > 0, loop--)
|
||||
new /obj/item/weapon/grenade/flashbang/cluster(loc)//Launches flashbangs
|
||||
|
||||
for(var/loop = again ,loop > 0, loop--)
|
||||
new /obj/item/weapon/grenade/flashbang/clusterbang/segment(loc)//Creates a 'segment' that launches a few more flashbangs
|
||||
|
||||
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
|
||||
qdel(src)
|
||||
|
||||
|
||||
//////////////////////
|
||||
//Clusterbang segment
|
||||
//////////////////////
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang/segment
|
||||
desc = "A smaller segment of a clusterbang. Better run."
|
||||
name = "clusterbang segment"
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "clusterbang_segment"
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang/segment/New()
|
||||
..()
|
||||
icon_state = "clusterbang_segment_active"
|
||||
active = 1
|
||||
walk_away(src,loc,rand(1,4))
|
||||
spawn(rand(15,60))
|
||||
prime()
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/flashbang/clusterbang/segment/prime()
|
||||
update_mob()
|
||||
var/numspawned = rand(4,8)
|
||||
|
||||
for(var/loop = numspawned ,loop > 0, loop--)
|
||||
new /obj/item/weapon/grenade/flashbang/cluster(loc)
|
||||
|
||||
playsound(src.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
|
||||
|
||||
qdel(src)
|
||||
|
||||
////////////////////////////////
|
||||
//Clusterbang spawned flashbang
|
||||
////////////////////////////////
|
||||
/obj/item/weapon/grenade/flashbang/cluster/New()
|
||||
..()
|
||||
icon_state = "flashbang_active"
|
||||
active = 1
|
||||
banglet = 1
|
||||
walk_away(src,loc,rand(1,3))
|
||||
spawn(rand(15,60))
|
||||
prime()
|
||||
M << "<span class='warning'>Your ears start to ring!</span>"
|
||||
@@ -81,7 +81,7 @@
|
||||
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/grenade/flashbang/clusterbang(src)
|
||||
new /obj/item/weapon/grenade/clusterbuster(src)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/lockbox/medal
|
||||
|
||||
Reference in New Issue
Block a user