mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 03:27:05 +01:00
Unused/WorkInProgress folder cleanup
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
obj/item/weapon/firework
|
||||
name = "fireworks"
|
||||
icon = 'icons/obj/fireworks.dmi'
|
||||
icon_state = "rocket_0"
|
||||
var/litzor = 0
|
||||
var/datum/effects/system/sparkel_spread/S
|
||||
obj/item/weapon/firework/attackby(obj/item/weapon/W,mob/user)
|
||||
if(litzor)
|
||||
return
|
||||
if (istype(W, /obj/item/weapon/weldingtool) && W:welding || istype(W,/obj/item/weapon/lighter) && W:lit)
|
||||
for(var/mob/M in viewers(user))
|
||||
M << "[user] lits \the [src]"
|
||||
litzor = 1
|
||||
icon_state = "rocket_1"
|
||||
S = new()
|
||||
S.set_up(5,0,src.loc)
|
||||
sleep(30)
|
||||
if(ismob(src.loc) || isobj(src.loc))
|
||||
S.attach(src.loc)
|
||||
S.start()
|
||||
del(src)
|
||||
|
||||
obj/item/weapon/sparkler
|
||||
name = "sparkler"
|
||||
icon = 'icons/obj/fireworks.dmi'
|
||||
icon_state = "sparkler_0"
|
||||
var/litzor = 0
|
||||
var/datum/effect/effect/system/spark_spread/S
|
||||
obj/item/weapon/sparkler/attackby(obj/item/weapon/W,mob/user)
|
||||
if(litzor)
|
||||
return
|
||||
if (istype(W, /obj/item/weapon/weldingtool) && W:welding || istype(W,/obj/item/weapon/lighter) && W:lit)
|
||||
for(var/mob/M in viewers(user))
|
||||
M << "[user] lits \the [src]"
|
||||
litzor = 1
|
||||
icon_state = "sparkler_1"
|
||||
var/b = rand(5,9)
|
||||
for(var/xy, xy<=b, xy++)
|
||||
S = new()
|
||||
S.set_up(1,0,src.loc)
|
||||
if(ismob(src.loc) || isobj(src.loc))
|
||||
S.attach(src.loc)
|
||||
S.start()
|
||||
sleep(10)
|
||||
del(src)
|
||||
/obj/crate/fireworks
|
||||
name = "Fireworks!"
|
||||
/obj/crate/fireworks/New()
|
||||
new /obj/item/weapon/sparkler(src)
|
||||
new /obj/item/weapon/sparkler(src)
|
||||
new /obj/item/weapon/sparkler(src)
|
||||
new /obj/item/weapon/sparkler(src)
|
||||
new /obj/item/weapon/sparkler(src)
|
||||
new /obj/item/weapon/sparkler(src)
|
||||
new /obj/item/weapon/sparkler(src)
|
||||
new /obj/item/weapon/sparkler(src)
|
||||
new /obj/item/weapon/firework(src)
|
||||
new /obj/item/weapon/firework(src)
|
||||
new /obj/item/weapon/firework(src)
|
||||
new /obj/item/weapon/firework(src)
|
||||
new /obj/item/weapon/firework(src)
|
||||
new /obj/item/weapon/firework(src)
|
||||
new /obj/item/weapon/firework(src)
|
||||
new /obj/item/weapon/firework(src)
|
||||
new /obj/item/weapon/firework(src)
|
||||
new /obj/item/weapon/firework(src)
|
||||
@@ -0,0 +1,481 @@
|
||||
/obj/item/weapon/grenade/chem_grenade/dirt
|
||||
payload_name = "dirt"
|
||||
desc = "From the makers of BLAM! brand foaming space cleaner, this bomb guarantees steady work for any janitor."
|
||||
stage = 2
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/list/muck = list("blood","carbon","flour","radium")
|
||||
var/filth = pick(muck - "radium") // not usually radioactive
|
||||
|
||||
B1.reagents.add_reagent(filth,25)
|
||||
if(prob(25))
|
||||
B1.reagents.add_reagent(pick(muck - filth,25)) // but sometimes...
|
||||
|
||||
beakers += B1
|
||||
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/meat
|
||||
payload_name = "meat"
|
||||
desc = "Not always as messy as the name implies."
|
||||
stage = 2
|
||||
|
||||
|
||||
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("blood",60)
|
||||
if(prob(5))
|
||||
B1.reagents.add_reagent("blood",1) // Quality control problems, causes a mess
|
||||
B2.reagents.add_reagent("clonexadone",30)
|
||||
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/holywater
|
||||
payload_name = "holy water"
|
||||
desc = "Then shalt thou count to three, no more, no less."
|
||||
stage = 2
|
||||
det_time = 30
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/large/B = new(src)
|
||||
B.reagents.add_reagent("holywater",100)
|
||||
beakers += B
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/soap
|
||||
payload_name = "soap"
|
||||
desc = "Not necessarily as clean as the name implies."
|
||||
stage = 2
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
|
||||
B1.reagents.add_reagent("cornoil",60)
|
||||
B2.reagents.add_reagent("enzyme",5)
|
||||
B2.reagents.add_reagent("ammonia",30)
|
||||
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/drugs
|
||||
payload_name = "miracle"
|
||||
desc = "How does it work?"
|
||||
stage = 2
|
||||
|
||||
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("space_drugs", 25)
|
||||
B1.reagents.add_reagent("mindbreaker", 25)
|
||||
B1.reagents.add_reagent("potassium", 25)
|
||||
B2.reagents.add_reagent("phosphorus", 25)
|
||||
B2.reagents.add_reagent("sugar", 25)
|
||||
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/ethanol
|
||||
payload_name = "ethanol"
|
||||
desc = "Ach, that hits the spot."
|
||||
stage = 2
|
||||
|
||||
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("ethanol", 75)
|
||||
B1.reagents.add_reagent("potassium", 25)
|
||||
B2.reagents.add_reagent("phosphorus", 25)
|
||||
B2.reagents.add_reagent("sugar", 25)
|
||||
B2.reagents.add_reagent("ethanol", 25)
|
||||
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
update_icon()
|
||||
|
||||
// -------------------------------------
|
||||
// Grenades using new grenade assemblies
|
||||
// -------------------------------------
|
||||
/obj/item/weapon/grenade/chem_grenade/lube
|
||||
payload_name = "lubricant"
|
||||
stage = 2
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
B1.reagents.add_reagent("lube",50)
|
||||
beakers += B1
|
||||
/obj/item/weapon/grenade/chem_grenade/lube/remote
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/signaler)
|
||||
/obj/item/weapon/grenade/chem_grenade/lube/prox
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/prox_sensor)
|
||||
/obj/item/weapon/grenade/chem_grenade/lube/tripwire
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/infra)
|
||||
|
||||
|
||||
// Basic explosion grenade
|
||||
/obj/item/weapon/grenade/chem_grenade/explosion
|
||||
payload_name = "conventional"
|
||||
stage = 2
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
B1.reagents.add_reagent("glycerol",30) // todo: someone says NG is overpowered, test.
|
||||
B1.reagents.add_reagent("sacid",15)
|
||||
B2.reagents.add_reagent("sacid",15)
|
||||
B2.reagents.add_reagent("pacid",30)
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
|
||||
// Assembly Variants
|
||||
/obj/item/weapon/grenade/chem_grenade/explosion/remote
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/signaler)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/explosion/prox
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/prox_sensor)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/explosion/mine
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/mousetrap)
|
||||
|
||||
// Basic EMP grenade
|
||||
/obj/item/weapon/grenade/chem_grenade/emp
|
||||
payload_name = "EMP"
|
||||
stage = 2
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
B1.reagents.add_reagent("uranium",50)
|
||||
B2.reagents.add_reagent("iron",50)
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
|
||||
// Assembly Variants
|
||||
/obj/item/weapon/grenade/chem_grenade/emp/remote
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/signaler)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/emp/prox
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/prox_sensor)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/emp/mine
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/mousetrap)
|
||||
|
||||
// --------------------------------------
|
||||
// Dangerous slime core grenades
|
||||
// --------------------------------------
|
||||
/*
|
||||
/obj/item/weapon/grenade/chem_grenade/large/bluespace
|
||||
payload_name = "bluespace slime"
|
||||
desc = "A standard grenade casing containing weaponized slime extract."
|
||||
stage = 2
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/slime_extract/bluespace/B1 = new(src)
|
||||
B1.Uses = rand(1,3)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
B2.reagents.add_reagent("plasma",5 * B1.Uses)
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/large/bluespace/prox
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/prox_sensor)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/large/bluespace/mine
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/mousetrap)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/large/bluespace/remote
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/signaler)
|
||||
*/
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/large/monster
|
||||
payload_name = "gold slime"
|
||||
desc = "A standard grenade containing weaponized slime extract."
|
||||
stage = 2
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/slime_extract/gold/B1 = new(src)
|
||||
B1.Uses = rand(1,3)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
B2.reagents.add_reagent("plasma",5 * B1.Uses)
|
||||
beakers += B1
|
||||
beakers += B2
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/large/monster/prox
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/prox_sensor)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/large/monster/mine
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/mousetrap)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/large/monster/remote
|
||||
New()
|
||||
..()
|
||||
CreateDefaultTrigger(/obj/item/device/assembly/signaler)
|
||||
|
||||
/obj/item/weapon/grenade/chem_grenade/large/feast
|
||||
payload_name = "silver slime"
|
||||
desc = "A standard grenade containing weaponized slime extract."
|
||||
stage = 2
|
||||
|
||||
New()
|
||||
..()
|
||||
var/obj/item/slime_extract/silver/B1 = new(src)
|
||||
B1.Uses = rand(1,3)
|
||||
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
|
||||
B2.reagents.add_reagent("plasma",5 * B1.Uses)
|
||||
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
|
||||
// --------------------------------------
|
||||
|
||||
/obj/item/weapon/storage/box/syndie_kit/remotegrenade
|
||||
name = "Remote Grenade Kit"
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/grenade/chem_grenade/explosion/remote(src)
|
||||
new /obj/item/device/multitool(src) // used to adjust the chemgrenade's signaller
|
||||
new /obj/item/device/assembly/signaler(src)
|
||||
return
|
||||
/obj/item/weapon/storage/box/syndie_kit/remoteemp
|
||||
name = "Remote EMP Kit"
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/grenade/chem_grenade/emp/remote(src)
|
||||
new /obj/item/device/multitool(src) // used to adjust the chemgrenade's signaller
|
||||
new /obj/item/device/assembly/signaler(src)
|
||||
return
|
||||
/obj/item/weapon/storage/box/syndie_kit/remotelube
|
||||
name = "Remote Lube Kit"
|
||||
New()
|
||||
..()
|
||||
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/soap
|
||||
name = "Megamaid's Passive-Aggressive Soap-creation Grenade"
|
||||
payload = /obj/item/weapon/grenade/chem_grenade/soap
|
||||
/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/machinery/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/monkey
|
||||
/obj/item/weapon/grenade/clusterbuster/fluffy
|
||||
name = "Fluffy Love Bomb"
|
||||
desc = "Exactly as snuggly as it sounds."
|
||||
payload = /mob/living/simple_animal/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)
|
||||
del(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)
|
||||
del(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/machinery/singularity)) // I can't emphasize enough how much you should never use this grenade
|
||||
A:energy = 200
|
||||
del src
|
||||
@@ -290,4 +290,158 @@
|
||||
/obj/item/weapon/storage/belt/fannypack/yellow
|
||||
name = "yellow fannypack"
|
||||
icon_state = "fannypack_yellow"
|
||||
item_state = "fannypack_yellow"
|
||||
item_state = "fannypack_yellow"
|
||||
|
||||
// -------------------------------------
|
||||
// Bluespace Belt
|
||||
// -------------------------------------
|
||||
|
||||
|
||||
/obj/item/weapon/storage/belt/bluespace
|
||||
name = "Belt of Holding"
|
||||
desc = "The greatest in pants-supporting technology."
|
||||
icon_state = "medicalbelt"
|
||||
item_state = "medical"
|
||||
storage_slots = 14
|
||||
w_class = 4
|
||||
max_w_class = 2
|
||||
max_combined_w_class = 21 // = 14 * 1.5, not 14 * 2. This is deliberate
|
||||
origin_tech = "bluespace=4"
|
||||
can_hold = list()
|
||||
New()
|
||||
if(prob(5))
|
||||
//Sometimes people choose justice.
|
||||
//Sometimes justice chooses you.
|
||||
visible_message("That doesn't look like a normal Toolbelt of Holding...")
|
||||
new /obj/item/weapon/storage/belt/bluespace/owlman(loc)
|
||||
spawn(1)
|
||||
del src
|
||||
return
|
||||
..()
|
||||
|
||||
proc/failcheck(mob/user as mob)
|
||||
if (prob(src.reliability)) return 1 //No failure
|
||||
if (prob(src.reliability))
|
||||
user << "\red The Bluespace portal resists your attempt to add another item." //light failure
|
||||
else
|
||||
user << "\red The Bluespace generator malfunctions!"
|
||||
for (var/obj/O in src.contents) //it broke, delete what was in it
|
||||
del(O)
|
||||
crit_fail = 1
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/storage/belt/bluespace/owlman
|
||||
name = "Owlman's utility belt"
|
||||
desc = "Sometimes people choose justice. Sometimes, justice chooses you..."
|
||||
icon_state = "securitybelt"
|
||||
item_state = "security"
|
||||
storage_slots = 14
|
||||
max_w_class = 3
|
||||
max_combined_w_class = 28 // = 14 * 2
|
||||
origin_tech = "bluespace=4;syndicate=2"
|
||||
allow_quick_empty = 1
|
||||
can_hold = list()
|
||||
New()
|
||||
..()
|
||||
new /obj/item/clothing/mask/gas/owl_mask(src)
|
||||
new /obj/item/clothing/under/owl(src)
|
||||
new /obj/item/weapon/grenade/smokebomb(src)
|
||||
new /obj/item/weapon/grenade/smokebomb(src)
|
||||
new /obj/item/device/detective_scanner(src)
|
||||
|
||||
|
||||
|
||||
// As a last resort, the belt can be used as a plastic explosive with a fixed timer (15 seconds). Naturally, you'll lose all your gear...
|
||||
// Of course, it could be worse. It could spawn a singularity!
|
||||
/obj/item/weapon/storage/belt/bluespace/owlman/afterattack(atom/target as obj|turf, mob/user as mob, flag)
|
||||
if (!flag)
|
||||
return
|
||||
if (istype(target, /turf/unsimulated) || istype(target, /turf/simulated/shuttle) || istype(target, /obj/item/weapon/storage) || istype(target, /obj/structure/table) || istype(target, /obj/structure/closet))
|
||||
return
|
||||
user << "Planting explosives..."
|
||||
user.visible_message("[user.name] is fiddling with their toolbelt.")
|
||||
if(ismob(target))
|
||||
user.attack_log += "\[[time_stamp()]\] <font color='red'> [user.real_name] tried planting [name] on [target:real_name] ([target:ckey])</font>"
|
||||
log_attack("<font color='red'> [user.real_name] ([user.ckey]) tried planting [name] on [target:real_name] ([target:ckey])</font>")
|
||||
user.visible_message("\red [user.name] is trying to strap a belt to [target.name]!")
|
||||
|
||||
|
||||
if(do_after(user, 50) && in_range(user, target))
|
||||
user.drop_item()
|
||||
target = target
|
||||
loc = null
|
||||
var/location
|
||||
if (isturf(target)) location = target
|
||||
if (ismob(target))
|
||||
target:attack_log += "\[[time_stamp()]\]<font color='orange'> Had the [name] planted on them by [user.real_name] ([user.ckey])</font>"
|
||||
user.visible_message("\red [user.name] finished planting an explosive on [target.name]!")
|
||||
target.overlays += image('icons/obj/assemblies.dmi', "plastic-explosive2")
|
||||
user << "You sacrifice your belt for the sake of justice. Timer counting down from 15."
|
||||
spawn(150)
|
||||
if(target)
|
||||
if(ismob(target) || isobj(target))
|
||||
location = target.loc // These things can move
|
||||
explosion(location, -1, -1, 2, 3)
|
||||
if (istype(target, /turf/simulated/wall)) target:dismantle_wall(1)
|
||||
else target.ex_act(1)
|
||||
if (isobj(target))
|
||||
if (target)
|
||||
del(target)
|
||||
if (src)
|
||||
del(src)
|
||||
/obj/item/weapon/storage/belt/bluespace/attack(mob/M as mob, mob/user as mob, def_zone)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/belt/bluespace/admin
|
||||
name = "Admin's Tool-belt"
|
||||
desc = "Holds everything for those that run everything."
|
||||
icon_state = "soulstonebelt"
|
||||
item_state = "soulstonebelt"
|
||||
w_class = 10 // permit holding other storage items
|
||||
storage_slots = 28
|
||||
max_w_class = 10
|
||||
max_combined_w_class = 280
|
||||
can_hold = list()
|
||||
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/crowbar(src)
|
||||
new /obj/item/weapon/screwdriver(src)
|
||||
new /obj/item/weapon/weldingtool/hugetank(src)
|
||||
new /obj/item/weapon/wirecutters(src)
|
||||
new /obj/item/weapon/wrench(src)
|
||||
new /obj/item/device/multitool(src)
|
||||
new /obj/item/stack/cable_coil(src)
|
||||
|
||||
new /obj/item/weapon/handcuffs(src)
|
||||
new /obj/item/weapon/dnainjector/xraymut(src)
|
||||
new /obj/item/weapon/dnainjector/firemut(src)
|
||||
new /obj/item/weapon/dnainjector/telemut(src)
|
||||
new /obj/item/weapon/dnainjector/hulkmut(src)
|
||||
// new /obj/item/weapon/spellbook(src) // for smoke effects, door openings, etc
|
||||
// new /obj/item/weapon/magic/spellbook(src)
|
||||
|
||||
// new/obj/item/weapon/reagent_containers/hypospray/admin(src)
|
||||
|
||||
/obj/item/weapon/storage/belt/bluespace/sandbox
|
||||
name = "Sandbox Mode Toolbelt"
|
||||
desc = "Holds whatever, you can spawn your own damn stuff."
|
||||
w_class = 10 // permit holding other storage items
|
||||
storage_slots = 28
|
||||
max_w_class = 10
|
||||
max_combined_w_class = 280
|
||||
can_hold = list()
|
||||
|
||||
New()
|
||||
..()
|
||||
new /obj/item/weapon/crowbar(src)
|
||||
new /obj/item/weapon/screwdriver(src)
|
||||
new /obj/item/weapon/weldingtool/hugetank(src)
|
||||
new /obj/item/weapon/wirecutters(src)
|
||||
new /obj/item/weapon/wrench(src)
|
||||
new /obj/item/device/multitool(src)
|
||||
new /obj/item/stack/cable_coil(src)
|
||||
|
||||
new /obj/item/device/analyzer(src)
|
||||
new /obj/item/device/healthanalyzer(src)
|
||||
|
||||
Reference in New Issue
Block a user