mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
* :( * Ports https://github.com/PolarisSS13/Polaris/pull/2571 early. Need this for a map I wanna do. * need sleep * Emergency meds added Resolves https://github.com/VOREStation/VOREStation/issues/600 * Fixes Fax Machine showing Sif Government * Updates Tajaran lore to match Polaris. * Sleeping for tonight * Fixes #623 * Added more to the map * Fox sprites from Paradise added * Vore bee added * Technical stuff no one cares about. * Another update * Reverts Pull #508 https://github.com/VOREStation/VOREStation/pull/508 messed up digesting dead mobs and mice. * Sergaling are now Saru. * Saru * Zoo map update, near completion * Zoo map finished, plus Station Vault updated * Revert "Ports https://github.com/PolarisSS13/Polaris/pull/2571 early." This reverts commit 59e2bb211759604a95319ce6b1c74219a4b60800. * Buzz off, Travis. * Removed microwaves entirely so Travis stops bitching * Travis stop being dumb * Fix the zoo map once and for all..? * Removes backup files.
395 lines
16 KiB
Plaintext
395 lines
16 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/blobchance = 0 // So you can turn on blobs.
|
|
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", \
|
|
5; "blob", \
|
|
50 + low_probability * 50;"clothes", \
|
|
"glasses", \
|
|
100 - low_probability * 50;"weapons", \
|
|
100 - low_probability * 50;"spacesuit", \
|
|
"health", \
|
|
25 + low_probability * 75;"snacks", \
|
|
25;"alien", \
|
|
"lights", \
|
|
25 - low_probability * 25;"engineering", \
|
|
25 - low_probability * 25;"coffin", \
|
|
25;"mimic", \
|
|
25;"viscerator", \
|
|
))
|
|
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/weapon/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/material/animalhide - typesof(/obj/item/stack/material/cyborg))
|
|
possible_spawns += bar_type
|
|
|
|
var/bar_type = pick(possible_spawns)
|
|
for(var/i=0,i<amount,i++)
|
|
var/obj/item/stack/material/M = new bar_type(C)
|
|
M.amount = quantity
|
|
else
|
|
//credits
|
|
var/amount = rand(2,6)
|
|
var/list/possible_spawns = list()
|
|
for(var/cash_type in typesof(/obj/item/weapon/spacecash) - /obj/item/weapon/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("blob")
|
|
if(blobchance) new /obj/effect/blob/core(src.loc)
|
|
if("clothes")
|
|
var/obj/structure/closet/C = new(src.loc)
|
|
C.icon_state = "blue"
|
|
C.icon_closed = "blue"
|
|
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/weapon/storage/box/syndie_kit/chameleon(C)
|
|
else
|
|
new /obj/item/clothing/under/syndicate/combat(C)
|
|
new /obj/item/clothing/shoes/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/weapon/gun/energy/laser,\
|
|
prob(11);/obj/item/weapon/gun/projectile/pirate,\
|
|
prob(10);/obj/item/weapon/material/twohanded/spear,\
|
|
prob(10);/obj/item/weapon/gun/energy/stunrevolver,\
|
|
prob(10);/obj/item/weapon/gun/energy/taser,\
|
|
prob(10);/obj/item/weapon/gun/launcher/crossbow,\
|
|
prob(10);/obj/item/weapon/gun/projectile/shotgun/doublebarrel/pellet,\
|
|
prob(10);/obj/item/weapon/material/knife,\
|
|
prob(10);/obj/item/weapon/material/hatchet/tacknife/combatknife,\
|
|
prob(10);/obj/item/weapon/material/butterfly/switchblade,\
|
|
prob(10);/obj/item/weapon/gun/projectile/luger,\
|
|
prob(10);/obj/item/weapon/gun/projectile/luger/brown,\
|
|
/* prob(10);/obj/item/weapon/gun/projectile/pipegun,\ */
|
|
prob(10);/obj/item/weapon/gun/projectile/revolver,\
|
|
prob(10);/obj/item/weapon/gun/projectile/revolver/detective,\
|
|
prob(10);/obj/item/weapon/gun/projectile/revolver/mateba,\
|
|
prob(10);/obj/item/weapon/gun/projectile/revolver/judge,\
|
|
prob(10);/obj/item/weapon/gun/projectile/colt,\
|
|
prob(10);/obj/item/weapon/gun/projectile/shotgun/pump,\
|
|
prob(10);/obj/item/weapon/gun/projectile/shotgun/pump/rifle,\
|
|
prob(10);/obj/item/weapon/gun/projectile/shotgun/pump/rifle/mosin,\
|
|
prob(10);/obj/item/weapon/melee/baton,\
|
|
prob(10);/obj/item/weapon/melee/telebaton,\
|
|
prob(10);/obj/item/weapon/melee/classic_baton,\
|
|
prob(10);/obj/item/weapon/melee/energy/sword,\
|
|
prob(9);/obj/item/weapon/gun/projectile/automatic/wt550/lethal,\
|
|
prob(9);/obj/item/weapon/gun/projectile/automatic/pdw,\
|
|
prob(9);/obj/item/weapon/gun/projectile/derringer,\
|
|
prob(9);/obj/item/weapon/gun/energy/crossbow/largecrossbow,\
|
|
prob(9);/obj/item/weapon/gun/projectile/automatic/mini_uzi,\
|
|
prob(9);/obj/item/weapon/gun/projectile/pistol,\
|
|
prob(9);/obj/item/weapon/gun/projectile/shotgun/pump/combat,\
|
|
prob(9);/obj/item/weapon/twohanded/fireaxe,\
|
|
prob(9);/obj/item/weapon/cane/concealed,\
|
|
prob(9);/obj/item/weapon/gun/energy/gun,\
|
|
prob(8);/obj/item/weapon/gun/energy/ionrifle,\
|
|
prob(8);/obj/item/weapon/gun/energy/retro,\
|
|
prob(8);/obj/item/weapon/gun/energy/gun/eluger,\
|
|
prob(8);/obj/item/weapon/gun/energy/xray,\
|
|
prob(8);/obj/item/weapon/gun/projectile/automatic/c20r,\
|
|
prob(8);/obj/item/weapon/gun/projectile/automatic/stg,\
|
|
prob(8);/obj/item/weapon/melee/energy/sword,\
|
|
/* prob(8);/obj/item/weapon/gun/projectile/automatic/m41a,\ */
|
|
prob(7);/obj/item/weapon/gun/energy/captain,\
|
|
prob(7);/obj/item/weapon/gun/energy/sniperrifle,\
|
|
prob(7);/obj/item/weapon/gun/projectile/automatic/p90,\
|
|
prob(7);/obj/item/weapon/gun/projectile/automatic/as24,\
|
|
prob(7);/obj/item/weapon/gun/projectile/automatic/sts35,\
|
|
prob(7);/obj/item/weapon/gun/projectile/automatic/z8,\
|
|
prob(7);/obj/item/weapon/gun/energy/gun/burst,\
|
|
prob(7);/obj/item/weapon/gun/projectile/shotgun/pump/unsc,\
|
|
prob(7);/obj/item/weapon/gun/projectile/deagle,\
|
|
prob(7);/obj/item/weapon/gun/launcher/grenade,\
|
|
prob(6);/obj/item/weapon/gun/projectile/SVD,\
|
|
prob(6);/obj/item/weapon/gun/projectile/automatic/l6_saw,\
|
|
prob(6);/obj/item/weapon/gun/energy/lasercannon,\
|
|
prob(5);/obj/item/weapon/gun/projectile/automatic/carbine,\
|
|
prob(5);/obj/item/weapon/gun/energy/pulse_rifle,\
|
|
/* prob(4);/obj/item/weapon/gun/projectile/automatic/battlerifle,\ */
|
|
prob(3);/obj/item/weapon/gun/projectile/deagle/camo,\
|
|
prob(3);/obj/item/weapon/gun/energy/gun/nuclear,\
|
|
prob(2);/obj/item/weapon/gun/projectile/deagle/gold,\
|
|
prob(1);/obj/item/weapon/gun/launcher/rocket,\
|
|
prob(1);/obj/item/weapon/gun/launcher/grenade,\
|
|
prob(1);/obj/item/weapon/gun/projectile/gyropistol,\
|
|
prob(1);/obj/item/weapon/gun/projectile/heavysniper,\
|
|
prob(1);/obj/item/weapon/plastique,\
|
|
prob(1);/obj/item/weapon/material/sword,\
|
|
prob(1);/obj/item/weapon/cane/concealed,\
|
|
prob(1);/obj/item/weapon/material/sword/katana)
|
|
new new_gun(C)
|
|
if(prob(50))
|
|
var/new_ammo = pick( // Copied from Random.dm
|
|
prob(5);/obj/item/weapon/storage/box/shotgunammo,\
|
|
prob(5);/obj/item/weapon/storage/box/shotgunshells,\
|
|
prob(5);/obj/item/ammo_magazine/a357,\
|
|
prob(5);/obj/item/ammo_magazine/clip/a762,\
|
|
prob(5);/obj/item/ammo_magazine/c45m,\
|
|
prob(5);/obj/item/ammo_magazine/c45m/rubber,\
|
|
prob(5);/obj/item/ammo_magazine/c38,\
|
|
prob(5);/obj/item/ammo_magazine/c38/rubber,\
|
|
prob(5);/obj/item/weapon/storage/box/flashbangs,\
|
|
prob(5);/obj/item/ammo_magazine/s762,\
|
|
prob(4);/obj/item/ammo_magazine/clip/a556,\
|
|
prob(4);/obj/item/ammo_magazine/clip/c45,\
|
|
prob(4);/obj/item/ammo_magazine/clip/c9mm,\
|
|
prob(4);/obj/item/ammo_magazine/c45uzi,\
|
|
prob(4);/obj/item/ammo_magazine/c762,\
|
|
prob(4);/obj/item/ammo_magazine/mc9mm,\
|
|
prob(4);/obj/item/ammo_magazine/mc9mml,\
|
|
prob(4);/obj/item/ammo_magazine/mc9mmt,\
|
|
prob(4);/obj/item/ammo_magazine/mc9mmt/rubber,\
|
|
prob(4);/obj/item/ammo_magazine/a10mm,\
|
|
prob(4);/obj/item/ammo_magazine/p90,\
|
|
/* prob(4);/obj/item/ammo_magazine/m14,\
|
|
prob(4);/obj/item/ammo_magazine/m14/large,\ */
|
|
prob(4);/obj/item/ammo_magazine/c762,\
|
|
prob(4);/obj/item/ammo_magazine/a556,\
|
|
prob(4);/obj/item/ammo_magazine/a556m,\
|
|
prob(3);/obj/item/ammo_magazine/clip/a10mm,\
|
|
prob(3);/obj/item/ammo_magazine/clip/a50,\
|
|
prob(3);/obj/item/ammo_magazine/s762,\
|
|
prob(2);/obj/item/ammo_magazine/a50,\
|
|
prob(2);/obj/item/ammo_magazine/a762,\
|
|
prob(1);/obj/item/weapon/storage/box/frags,\
|
|
/* prob(1);/obj/item/ammo_magazine/battlerifle,\ */
|
|
prob(1);/obj/item/ammo_casing/rocket,\
|
|
prob(1);/obj/item/weapon/storage/box/sniperammo,\
|
|
prob(1);/obj/item/weapon/storage/box/flashshells,\
|
|
prob(1);/obj/item/weapon/storage/box/beanbags,\
|
|
prob(1);/obj/item/weapon/storage/box/practiceshells,\
|
|
prob(1);/obj/item/weapon/storage/box/stunshells,\
|
|
prob(1);/obj/item/weapon/storage/box/blanks,\
|
|
prob(1);/obj/item/ammo_magazine/stg,\
|
|
prob(1);/obj/item/ammo_magazine/tommydrum,\
|
|
prob(1);/obj/item/ammo_magazine/tommymag)
|
|
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/weapon/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/weapon/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/weapon/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/weapon/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/weapon/storage/firstaid/regular(C)
|
|
if(prob(50))
|
|
new /obj/item/weapon/storage/firstaid/fire(C)
|
|
if(prob(50))
|
|
new /obj/item/weapon/storage/firstaid/o2(C)
|
|
if(prob(50))
|
|
new /obj/item/weapon/storage/firstaid/toxin(C)
|
|
if(prob(25))
|
|
new /obj/item/weapon/storage/firstaid/combat(C)
|
|
if(prob(25))
|
|
new /obj/item/weapon/storage/firstaid/adv(C)
|
|
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/weapon/reagent_containers/food/drinks/bottle/small/beer, \
|
|
/obj/item/weapon/reagent_containers/food/drinks/tea, \
|
|
/obj/item/weapon/reagent_containers/food/drinks/dry_ramen, \
|
|
/obj/item/weapon/reagent_containers/food/snacks/candiedapple, \
|
|
/obj/item/weapon/reagent_containers/food/snacks/chocolatebar, \
|
|
/obj/item/weapon/reagent_containers/food/snacks/cookie, \
|
|
/obj/item/weapon/reagent_containers/food/snacks/meatball, \
|
|
/obj/item/weapon/reagent_containers/food/snacks/plump_pie, \
|
|
/obj/item/weapon/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_animal/hostile/vore/carp(C)
|
|
else // Just a costume.
|
|
new /obj/item/clothing/suit/storage/hooded/carp_costume(C)
|
|
else if(prob(50))
|
|
if(live_cargo) // Something else very much alive and angry.
|
|
var/spawn_type = pick(/mob/living/simple_animal/hostile/vore/alien, /mob/living/simple_animal/hostile/vore/alien/drone, /mob/living/simple_animal/hostile/vore/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/device/flashlight/flare, \
|
|
/obj/item/weapon/flame/candle, \
|
|
/obj/item/weapon/storage/box/matches, \
|
|
/obj/item/device/flashlight/glowstick, \
|
|
/obj/item/device/flashlight/glowstick/red, \
|
|
/obj/item/device/flashlight/glowstick/blue, \
|
|
/obj/item/device/flashlight/glowstick/orange, \
|
|
/obj/item/device/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/weapon/storage/toolbox/electrical(C)
|
|
else if(prob(50))
|
|
new /obj/item/weapon/storage/toolbox/mechanical(C)
|
|
|
|
if(prob(33))
|
|
new /obj/item/weapon/storage/toolbox/mechanical(C)
|
|
else if(prob(50))
|
|
new /obj/item/weapon/storage/toolbox/electrical(C)
|
|
|
|
if(prob(25))
|
|
new /obj/item/weapon/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_animal/hostile/vore/mimic/crate/mimic = new(src.loc)
|
|
mimic.faction = spawned_faction
|
|
if("viscerator")
|
|
//more tomb guardians!
|
|
var/num = rand(1,3)
|
|
var/obj/structure/closet/crate/secure/gear/C = new(src.loc)
|
|
for(var/i=0,i<num,i++)
|
|
new /mob/living/simple_animal/hostile/viscerator(C)
|
|
|
|
qdel(src)
|
|
|
|
|
|
/**********************************/
|
|
|
|
/obj/effect/floor_decal/symbol
|
|
name = "strange symbol"
|
|
icon = 'icons/obj/decals_vr.dmi'
|
|
|
|
/obj/effect/floor_decal/symbol/ca
|
|
desc = "It looks like a skull, or maybe a crown."
|
|
icon_state = "ca"
|
|
|
|
/obj/effect/floor_decal/symbol/da
|
|
desc = "It looks like a lightning bolt."
|
|
icon_state = "da"
|
|
|
|
/obj/effect/floor_decal/symbol/em
|
|
desc = "It looks like the letter 'Y' with an underline."
|
|
icon_state = "em"
|
|
|
|
/obj/effect/floor_decal/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/effect/floor_decal/symbol/fe
|
|
desc = "It looks like an arrow pointing upward. Maybe even a spade."
|
|
icon_state = "fe"
|
|
|
|
/obj/effect/floor_decal/symbol/gu
|
|
desc = "It looks like an unfolded square box from the top with a cross on it."
|
|
icon_state = "gu"
|
|
|
|
/obj/effect/floor_decal/symbol/lo
|
|
desc = "It looks kind of like a cup. Specifically, a martini glass."
|
|
icon_state = "lo"
|
|
|
|
/obj/effect/floor_decal/symbol/pr
|
|
desc = "It looks like a box with a cross on it."
|
|
icon_state = "pr"
|
|
|
|
/obj/effect/floor_decal/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" |