mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
405 lines
15 KiB
Plaintext
405 lines
15 KiB
Plaintext
// Legacy version. Need to investigate what the hell lootdrop in loot.dm does later. -Ace
|
|
/obj/effect/landmark/loot_spawn
|
|
name = "loot spawner"
|
|
icon_state = "grabbed1"
|
|
var/live_cargo = 1 // So you can turn off aliens.
|
|
var/low_probability = 0
|
|
var/spawned_faction = "hostile" // Spawned mobs can have their faction changed.
|
|
|
|
|
|
/obj/effect/landmark/loot_spawn/low
|
|
name = "low prob loot spawner"
|
|
icon_state = "grabbed"
|
|
low_probability = 1
|
|
|
|
/obj/effect/landmark/loot_spawn/New()
|
|
|
|
switch(pick( \
|
|
low_probability * 1000;"nothing", \
|
|
200 - low_probability * 175;"treasure", \
|
|
25 + low_probability * 75;"remains", \
|
|
50 + low_probability * 50;"clothes", \
|
|
"glasses", \
|
|
100 - low_probability * 50;"weapons", \
|
|
100 - low_probability * 50;"spacesuit", \
|
|
"health", \
|
|
25 + low_probability * 75;"snacks", \
|
|
/*25;"alien", \ */ //VORESTATION AI TEMPORARY REMOVAL
|
|
"lights", \
|
|
25 - low_probability * 25;"engineering", \
|
|
25 - low_probability * 25;"coffin", \
|
|
/*25;"mimic", \ //VORESTATION AI TEMPORARY REMOVAL
|
|
25;"viscerator", \ */ //VORESTATION AI TEMPORARY REMOVAL
|
|
))
|
|
if("treasure")
|
|
var/obj/structure/closet/crate/C = new(src.loc)
|
|
if(prob(33))
|
|
// Smuggled goodies.
|
|
new /obj/item/stolenpackage(C)
|
|
|
|
if(prob(33))
|
|
//coins
|
|
var/amount = rand(2,6)
|
|
var/list/possible_spawns = list()
|
|
for(var/coin_type in typesof(/obj/item/coin))
|
|
possible_spawns += coin_type
|
|
var/coin_type = pick(possible_spawns)
|
|
for(var/i=0,i<amount,i++)
|
|
new coin_type(C)
|
|
|
|
else if(prob(50))
|
|
//bars
|
|
var/amount = rand(2,6)
|
|
var/quantity = rand(10,50)
|
|
var/list/possible_spawns = list()
|
|
for(var/bar_type in typesof(/obj/item/stack/material) - /obj/item/stack/material - /obj/item/stack/animalhide - typesof(/obj/item/stack/material/cyborg))
|
|
possible_spawns += bar_type
|
|
|
|
var/bar_type = pick(possible_spawns)
|
|
for(var/i=0,i<amount,i++)
|
|
new bar_type(C, quantity)
|
|
else
|
|
//credits
|
|
var/amount = rand(2,6)
|
|
var/list/possible_spawns = list()
|
|
for(var/cash_type in subtypesof(/obj/item/spacecash))
|
|
possible_spawns += cash_type
|
|
|
|
var/cash_type = pick(possible_spawns)
|
|
for(var/i=0,i<amount,i++)
|
|
new cash_type(C)
|
|
if("remains")
|
|
if(prob(50))
|
|
new /obj/effect/decal/remains/human(src.loc)
|
|
else if(prob(50))
|
|
new /obj/effect/decal/remains/mouse(src.loc)
|
|
else
|
|
new /obj/effect/decal/remains/xeno(src.loc)
|
|
if("clothes")
|
|
var/obj/structure/closet/C = new(src.loc)
|
|
if(prob(33))
|
|
new /obj/item/clothing/under/color/rainbow(C)
|
|
new /obj/item/clothing/shoes/rainbow(C)
|
|
new /obj/item/clothing/head/soft/rainbow(C)
|
|
new /obj/item/clothing/gloves/rainbow(C)
|
|
else if(prob(5))
|
|
new /obj/item/storage/box/syndie_kit/chameleon(C)
|
|
else
|
|
new /obj/item/clothing/under/syndicate/combat(C)
|
|
new /obj/item/clothing/shoes/boots/swat(C)
|
|
new /obj/item/clothing/gloves/swat(C)
|
|
new /obj/item/clothing/mask/balaclava(C)
|
|
if("glasses")
|
|
var/obj/structure/closet/C = new(src.loc)
|
|
var/new_type = pick(
|
|
/obj/item/clothing/glasses/material,\
|
|
/obj/item/clothing/glasses/thermal,\
|
|
/obj/item/clothing/glasses/meson,\
|
|
/obj/item/clothing/glasses/night,\
|
|
/obj/item/clothing/glasses/hud/health)
|
|
new new_type(C)
|
|
if("weapons")
|
|
var/obj/structure/closet/crate/secure/weapon/C = new(src.loc)
|
|
if(prob(50))
|
|
var/new_gun = pick( // Copied from Random.dm
|
|
prob(11);/obj/random/ammo_all,\
|
|
prob(11);/obj/item/gun/energy/laser,\
|
|
prob(11);/obj/item/gun/projectile/pirate,\
|
|
prob(10);/obj/item/material/twohanded/spear,\
|
|
prob(10);/obj/item/gun/energy/stunrevolver,\
|
|
prob(10);/obj/item/gun/energy/taser,\
|
|
prob(10);/obj/item/gun/launcher/crossbow,\
|
|
prob(10);/obj/item/gun/projectile/shotgun/doublebarrel/pellet,\
|
|
prob(10);/obj/item/material/knife,\
|
|
prob(10);/obj/item/material/knife/tacknife/combatknife,\
|
|
prob(10);/obj/item/material/butterfly/switchblade,\
|
|
prob(10);/obj/item/gun/projectile/luger,\
|
|
prob(10);/obj/item/gun/projectile/luger/brown,\
|
|
/* prob(10);/obj/item/gun/projectile/pipegun,\ */
|
|
prob(10);/obj/item/gun/projectile/revolver,\
|
|
prob(10);/obj/item/gun/projectile/revolver/detective,\
|
|
prob(10);/obj/item/gun/projectile/revolver/mateba,\
|
|
prob(10);/obj/item/gun/projectile/revolver/judge,\
|
|
prob(10);/obj/item/gun/projectile/colt,\
|
|
prob(10);/obj/item/gun/projectile/shotgun/pump,\
|
|
prob(10);/obj/item/gun/projectile/shotgun/pump/rifle,\
|
|
/* prob(10);/obj/item/gun/projectile/shotgun/pump/rifle/mosin,\ */
|
|
prob(10);/obj/item/melee/baton,\
|
|
prob(10);/obj/item/melee/telebaton,\
|
|
prob(10);/obj/item/melee/classic_baton,\
|
|
prob(10);/obj/item/melee/energy/sword,\
|
|
prob(9);/obj/item/gun/projectile/automatic/wt550/lethal,\
|
|
prob(9);/obj/item/gun/projectile/automatic/pdw,\
|
|
prob(9);/obj/item/gun/projectile/derringer,\
|
|
prob(9);/obj/item/gun/energy/crossbow/largecrossbow,\
|
|
prob(9);/obj/item/gun/projectile/automatic/mini_uzi,\
|
|
prob(9);/obj/item/gun/projectile/pistol,\
|
|
prob(9);/obj/item/gun/projectile/shotgun/pump/combat,\
|
|
prob(9);/obj/item/material/twohanded/fireaxe,\
|
|
prob(9);/obj/item/cane/concealed,\
|
|
prob(9);/obj/item/gun/energy/gun,\
|
|
prob(8);/obj/item/gun/energy/ionrifle,\
|
|
prob(8);/obj/item/gun/energy/retro,\
|
|
prob(8);/obj/item/gun/energy/gun/eluger,\
|
|
prob(8);/obj/item/gun/energy/xray,\
|
|
prob(8);/obj/item/gun/projectile/automatic/c20r,\
|
|
prob(8);/obj/item/gun/projectile/automatic/stg,\
|
|
prob(8);/obj/item/melee/energy/sword,\
|
|
prob(7);/obj/item/gun/energy/captain,\
|
|
prob(7);/obj/item/gun/energy/sniperrifle,\
|
|
prob(7);/obj/item/gun/projectile/automatic/p90,\
|
|
prob(7);/obj/item/gun/projectile/automatic/as24,\
|
|
prob(7);/obj/item/gun/projectile/automatic/sts35,\
|
|
prob(7);/obj/item/gun/projectile/automatic/z8,\
|
|
prob(7);/obj/item/gun/energy/gun/burst,\
|
|
prob(7);/obj/item/gun/projectile/shotgun/pump/USDF,\
|
|
prob(7);/obj/item/gun/projectile/deagle,\
|
|
prob(7);/obj/item/gun/launcher/grenade,\
|
|
/* prob(6);/obj/item/gun/projectile/SVD,\*/
|
|
prob(6);/obj/item/gun/projectile/automatic/l6_saw,\
|
|
prob(6);/obj/item/gun/energy/lasercannon,\
|
|
prob(5);/obj/item/gun/projectile/automatic/bullpup,\
|
|
prob(5);/obj/item/gun/energy/pulse_rifle,\
|
|
/* prob(4);/obj/item/gun/projectile/automatic/battlerifle,\ */
|
|
prob(3);/obj/item/gun/projectile/deagle/camo,\
|
|
prob(3);/obj/item/gun/energy/gun/nuclear,\
|
|
prob(2);/obj/item/gun/projectile/deagle/gold,\
|
|
prob(1);/obj/item/gun/launcher/rocket,\
|
|
prob(1);/obj/item/gun/launcher/grenade,\
|
|
prob(1);/obj/item/gun/projectile/gyropistol,\
|
|
prob(1);/obj/item/gun/projectile/heavysniper,\
|
|
prob(1);/obj/item/plastique,\
|
|
prob(1);/obj/item/material/sword,\
|
|
prob(1);/obj/item/cane/concealed,\
|
|
prob(1);/obj/item/material/sword/katana)
|
|
new new_gun(C)
|
|
if(prob(50))
|
|
var/new_ammo = pick( // Copied from Random.dm
|
|
prob(5);/obj/item/ammo_magazine/ammo_box/b12g,\
|
|
prob(5);/obj/item/ammo_magazine/ammo_box/b12g/pellet,\
|
|
prob(5);/obj/item/ammo_magazine/s357,\
|
|
prob(5);/obj/item/ammo_magazine/clip/c762,\
|
|
prob(5);/obj/item/ammo_magazine/m45,\
|
|
prob(5);/obj/item/ammo_magazine/m45/rubber,\
|
|
prob(5);/obj/item/ammo_magazine/s38,\
|
|
prob(5);/obj/item/ammo_magazine/s38/rubber,\
|
|
prob(5);/obj/item/storage/box/flashbangs,\
|
|
prob(5);/obj/item/ammo_magazine/m545,\
|
|
prob(4);/obj/item/ammo_magazine/clip/c545,\
|
|
prob(4);/obj/item/ammo_magazine/clip/c45,\
|
|
prob(4);/obj/item/ammo_magazine/clip/c9mm,\
|
|
prob(4);/obj/item/ammo_magazine/m45uzi,\
|
|
prob(4);/obj/item/ammo_magazine/m545/ext,\
|
|
prob(4);/obj/item/ammo_magazine/m9mm,\
|
|
prob(4);/obj/item/ammo_magazine/m9mml,\
|
|
prob(4);/obj/item/ammo_magazine/m9mmt,\
|
|
prob(4);/obj/item/ammo_magazine/m9mmt/rubber,\
|
|
prob(4);/obj/item/ammo_magazine/m10mm,\
|
|
prob(4);/obj/item/ammo_magazine/m9mmp90,\
|
|
prob(4);/obj/item/ammo_magazine/m545/ext,
|
|
prob(4);/obj/item/ammo_magazine/m762,\
|
|
prob(4);/obj/item/ammo_magazine/ammo_box/b762/surplus/hunter,\
|
|
prob(4);/obj/item/ammo_magazine/ammo_box/b762/surplus,\
|
|
prob(4);/obj/item/ammo_magazine/m545/ext,\
|
|
prob(3);/obj/item/ammo_magazine/ammo_box/b10mm/emp,\
|
|
prob(3);/obj/item/ammo_magazine/ammo_box/b10mm,\
|
|
prob(3);/obj/item/ammo_magazine/clip/c44,\
|
|
prob(3);/obj/item/ammo_magazine/m545,\
|
|
prob(2);/obj/item/ammo_magazine/m44,\
|
|
prob(2);/obj/item/ammo_magazine/m545,\
|
|
prob(1);/obj/item/storage/box/frags,\
|
|
/* prob(1);/obj/item/ammo_magazine/m95,\ */
|
|
prob(1);/obj/item/ammo_casing/rocket,\
|
|
prob(1);/obj/item/ammo_magazine/ammo_box/b145,\
|
|
prob(1);/obj/item/ammo_magazine/ammo_box/b12g/flash,\
|
|
prob(1);/obj/item/ammo_magazine/ammo_box/b12g/beanbag,\
|
|
prob(1);/obj/item/ammo_magazine/ammo_box/b12g/practice,\
|
|
prob(1);/obj/item/ammo_magazine/ammo_box/b12g/stunshell,\
|
|
prob(1);/obj/item/ammo_magazine/ammo_box/b12g/blank,\
|
|
prob(1);/obj/item/ammo_magazine/mtg,\
|
|
prob(1);/obj/item/ammo_magazine/m45tommydrum,\
|
|
prob(1);/obj/item/ammo_magazine/m45tommy)
|
|
new new_ammo(C)
|
|
if("spacesuit")
|
|
var/obj/structure/closet/syndicate/C = new(src.loc)
|
|
if(prob(25))
|
|
new /obj/item/clothing/suit/space/syndicate/black(C)
|
|
new /obj/item/clothing/head/helmet/space/syndicate/black(C)
|
|
new /obj/item/tank/oxygen/red(C)
|
|
new /obj/item/clothing/mask/breath(C)
|
|
else if(prob(33))
|
|
new /obj/item/clothing/suit/space/syndicate/blue(C)
|
|
new /obj/item/clothing/head/helmet/space/syndicate/blue(C)
|
|
new /obj/item/tank/oxygen/red(C)
|
|
new /obj/item/clothing/mask/breath(C)
|
|
else if(prob(50))
|
|
new /obj/item/clothing/suit/space/syndicate/green(C)
|
|
new /obj/item/clothing/head/helmet/space/syndicate/green(C)
|
|
new /obj/item/tank/oxygen/red(C)
|
|
new /obj/item/clothing/mask/breath(C)
|
|
else
|
|
new /obj/item/clothing/suit/space/syndicate/orange(C)
|
|
new /obj/item/clothing/head/helmet/space/syndicate/orange(C)
|
|
new /obj/item/tank/oxygen/red(C)
|
|
new /obj/item/clothing/mask/breath(C)
|
|
if("health")
|
|
//hopefully won't be necessary, but there were an awful lot of hazards to get through...
|
|
var/obj/structure/closet/crate/medical/C = new(src.loc)
|
|
if(prob(50))
|
|
new /obj/item/storage/firstaid/regular(C)
|
|
if(prob(50))
|
|
new /obj/item/storage/firstaid/fire(C)
|
|
if(prob(50))
|
|
new /obj/item/storage/firstaid/o2(C)
|
|
if(prob(50))
|
|
new /obj/item/storage/firstaid/toxin(C)
|
|
if(prob(25))
|
|
new /obj/item/storage/firstaid/combat(C)
|
|
if(prob(25))
|
|
new /obj/item/storage/firstaid/adv(C)
|
|
if(prob(25))
|
|
new /obj/item/storage/firstaid/experimental(C) //CHOMP Add
|
|
if("snacks")
|
|
//you're come so far, you must be in need of refreshment
|
|
var/obj/structure/closet/crate/freezer/C = new(src.loc)
|
|
var/num = rand(2,6)
|
|
var/new_type = pick(
|
|
/obj/item/reagent_containers/food/drinks/bottle/small/beer, \
|
|
/obj/item/reagent_containers/food/drinks/tea, \
|
|
/obj/item/reagent_containers/food/drinks/dry_ramen, \
|
|
/obj/item/reagent_containers/food/snacks/candiedapple, \
|
|
/obj/item/reagent_containers/food/snacks/chocolatebar, \
|
|
/obj/item/reagent_containers/food/snacks/cookie, \
|
|
/obj/item/reagent_containers/food/snacks/meatball, \
|
|
/obj/item/reagent_containers/food/snacks/plump_pie, \
|
|
/obj/item/reagent_containers/food/snacks/liquidfood)
|
|
for(var/i=0,i<num,i++)
|
|
new new_type(C)
|
|
if("alien")
|
|
//ancient aliens
|
|
var/obj/structure/closet/acloset/C = new(src.loc)
|
|
if(prob(33))
|
|
if(live_cargo) // Carp! Since Facehuggers got removed.
|
|
var/num = rand(1,3)
|
|
for(var/i=0,i<num,i++)
|
|
new /mob/living/simple_mob/animal/space/carp(C)
|
|
else // Just a costume.
|
|
new /obj/item/clothing/suit/storage/hooded/costume/carp(C)
|
|
else if(prob(50))
|
|
if(live_cargo) // Something else very much alive and angry.
|
|
var/spawn_type = pick(/mob/living/simple_mob/animal/space/alien, /mob/living/simple_mob/animal/space/alien/drone, /mob/living/simple_mob/animal/space/alien/sentinel)
|
|
new spawn_type(C)
|
|
else // Just a costume.
|
|
new /obj/item/clothing/head/xenos(C)
|
|
new /obj/item/clothing/suit/xenos(C)
|
|
|
|
//33% chance of nothing
|
|
|
|
if("lights")
|
|
//flares, candles, matches
|
|
var/obj/structure/closet/crate/secure/gear/C = new(src.loc)
|
|
var/num = rand(2,6)
|
|
for(var/i=0,i<num,i++)
|
|
var/spawn_type = pick(
|
|
/obj/item/flashlight/flare, \
|
|
/obj/item/flame/candle, \
|
|
/obj/item/storage/box/matches, \
|
|
/obj/item/flashlight/glowstick, \
|
|
/obj/item/flashlight/glowstick/red, \
|
|
/obj/item/flashlight/glowstick/blue, \
|
|
/obj/item/flashlight/glowstick/orange, \
|
|
/obj/item/flashlight/glowstick/yellow)
|
|
new spawn_type(C)
|
|
if("engineering")
|
|
var/obj/structure/closet/crate/secure/gear/C = new(src.loc)
|
|
|
|
//chance to have any combination of up to two electrical/mechanical toolboxes and one cell
|
|
if(prob(33))
|
|
new /obj/item/storage/toolbox/electrical(C)
|
|
else if(prob(50))
|
|
new /obj/item/storage/toolbox/mechanical(C)
|
|
|
|
if(prob(33))
|
|
new /obj/item/storage/toolbox/mechanical(C)
|
|
else if(prob(50))
|
|
new /obj/item/storage/toolbox/electrical(C)
|
|
|
|
if(prob(25))
|
|
new /obj/item/cell(C)
|
|
|
|
if("coffin")
|
|
new /obj/structure/closet/coffin(src.loc)
|
|
if(prob(33))
|
|
new /obj/effect/decal/remains/human(src)
|
|
else if(prob(50))
|
|
new /obj/effect/decal/remains/xeno(src)
|
|
if("mimic")
|
|
//a guardian of the tomb!
|
|
// var/mob/living/simple_mob/hostile/mimic/crate/mimic = new(src.loc)
|
|
// mimic.faction = spawned_faction
|
|
var/obj/structure/closet/crate/secure/gear/C = new(src.loc) //VORESTATION AI TEMPORARY EDIT
|
|
new /obj/item/storage/toolbox/electrical(C) //Placeholder to prevent errors. //VORESTATION AI TEMPORARY EDIT
|
|
if("viscerator")
|
|
//more tomb guardians!
|
|
//var/num = rand(1,3) //VORESTATION AI TEMPORARY REMOVAL
|
|
var/obj/structure/closet/crate/secure/gear/C = new(src.loc) //VORESTATION AI TEMPORARY EDIT
|
|
new /obj/item/storage/toolbox/electrical(C) //Placeholder to prevent errors. //VORESTATION AI TEMPORARY EDIT
|
|
//for(var/i=0,i<num,i++) //VORESTATION AI TEMPORARY REMOVAL
|
|
//new /mob/living/simple_mob/hostile/viscerator(C) //VORESTATION AI TEMPORARY REMOVAL
|
|
|
|
qdel(src)
|
|
|
|
|
|
/**********************************/
|
|
|
|
/obj/structure/symbol
|
|
anchored = TRUE
|
|
layer = 3.5
|
|
name = "strange symbol"
|
|
icon = 'icons/obj/decals_vr.dmi'
|
|
|
|
/obj/structure/symbol/ca
|
|
desc = "It looks like a skull, or maybe a crown."
|
|
icon_state = "ca"
|
|
|
|
/obj/structure/symbol/da
|
|
desc = "It looks like a lightning bolt."
|
|
icon_state = "da"
|
|
|
|
/obj/structure/symbol/em
|
|
desc = "It looks kind of like a cup. Specifically, a martini glass."
|
|
icon_state = "em"
|
|
|
|
/obj/structure/symbol/es
|
|
desc = "It looks like two horizontal lines, with a dotted line in the middle, like a highway, or race track."
|
|
icon_state = "es"
|
|
|
|
/obj/structure/symbol/fe
|
|
desc = "It looks like an arrow pointing upward. Maybe even a spade."
|
|
icon_state = "fe"
|
|
|
|
/obj/structure/symbol/gu
|
|
desc = "It looks like an unfolded square box from the top with a cross on it."
|
|
icon_state = "gu"
|
|
|
|
/obj/structure/symbol/clock
|
|
desc = "It looks like some sort of gear."
|
|
icon_state = "gu"
|
|
|
|
/obj/structure/symbol/lo
|
|
desc = "It looks like the letter 'Y' with an underline."
|
|
icon_state = "lo"
|
|
|
|
/obj/structure/symbol/pr
|
|
desc = "It looks like a box with a cross on it."
|
|
icon_state = "pr"
|
|
|
|
/obj/structure/symbol/sa
|
|
desc = "It looks like a right triangle with a dot to the side. It reminds you of a wooden strut between a wall and ceiling."
|
|
icon_state = "sa"
|
|
|
|
/obj/structure/symbol/maint
|
|
name = "maintenance panel"
|
|
desc = "This sign suggests that the wall it's attached to can be opened somehow."
|
|
icon_state = "maintenance_panel"
|