Files
VOREStation/code/modules/mining/abandonedcrates_vr.dm
T
cdafe425a5 Adds Trait Genetics (#16921)
* Adds Trait Genetics from Outpost21

Adds trait genetics from Outpost 21
- Tried to update each file it touched to be equivalent to their Chomp specific variants in order to maintain functionality and make sure no oddities would happen due to code differences. (Some things like the eardeaf loop were left there but commented out)

* Morph trait

* Fixes a server crashing bug with flip

aa

* flip

* Makes morph superpower better

- Makes it use the appearance_changer instead of 1000 different  procs

- Makes cocoon weaver able to change eye and skin color.

I did NOT select you. BAD

* begone

* fix dna modifier

* Fixes massive memory leak

* Brain Runtime Fix

* There was no reason for this to be a spawn(0)

And no I didn't spawn with no blood - https://i.imgur.com/vPizqCD.png

* revert

revert the dna changes there

* Deconf

* gets rid of unused proc vars that did nothing

* expects enough free slots

* glob

* fixed and added two other tests

* another few tests

* this is a list

* fixed bad injector

* lets wrap these for sanity

* better feedback

* wrong name

* don't allow multiple occupants into the dna pod

* future traits will have activation levels instead of binary on/off

---------

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
Co-authored-by: Willburd <7099514+Willburd@users.noreply.github.com>
2025-02-11 02:01:27 -05:00

179 lines
7.5 KiB
Plaintext

/obj/structure/closet/crate/secure/loot
tamper_proof = 2
/obj/structure/closet/crate/secure/loot/proc/generate_loot()
var/lootvalue = 0
while(lootvalue <= 10) //if the initial generation gives you less than 10 points of stuff, add more stuff
//pick a thing to add to the crate - the format is "list(filepath, value) = weight,"
var/choice = list()
choice = pickweight(list(
list(pick(/obj/item/ore/diamond,
/obj/item/ore/osmium,
/obj/item/ore/hydrogen,
/obj/item/ore/verdantium,
/obj/item/ore/uranium), 1) = 10,
list(pick(subtypesof(/obj/item/coin)), 2) = 10,
list(/obj/item/spacecash/c500, 4) = 5,
list(/obj/item/spacecash/c200, 2) = 10,
list(/obj/item/spacecash/c100, 1) = 10,
list(/obj/item/spacecash/c50, 1) = 10,
list(/obj/item/spacecash/c20, 1) = 10,
list(pick(subtypesof(/obj/item/reagent_containers/food/drinks/bottle/) - /obj/item/reagent_containers/food/drinks/bottle/small), 1) = 5,
list(/obj/item/storage/backpack/dufflebag/cratebooze,5) = 5,
list(/obj/item/storage/backpack/dufflebag/cratedrills, 5) = 5,
list(/obj/item/reagent_containers/glass/beaker/bluespace, 3) = 5,
list(/obj/item/reagent_containers/glass/beaker/noreact, 3) = 5,
list(/obj/item/melee/baton, 5) = 4,
list(pick(subtypesof(/obj/item/storage/mre)), 2) = 3,
list(/obj/item/seeds/random, 2) = 3,
list(/obj/item/clothing/under/chameleon, 5) = 3,
list(/obj/item/melee/classic_baton, 6) = 3,
list(/obj/item/rig/industrial, 6) = 3,
list(/obj/item/multitool/hacktool, 5) = 3,
list(/obj/item/multitool/hacktool/modified, 4) = 4,
list(/obj/item/toy/katana, 1) = 2,
list(/obj/item/clothing/head/kitty, 1) = 2,
list(pick(subtypesof(/obj/item/soap)), 1) = 2,
list(/obj/item/clothing/under/shorts/red, 1) = 2,
list(/obj/item/clothing/under/shorts/blue, 1) = 2,
list(/obj/item/clothing/accessory/tie/horrible, 1) = 2,
list(pick(subtypesof(/obj/item/stock_parts) - /obj/item/stock_parts/subspace), 2) = 3,
list(/obj/item/latexballon, 2) = 2,
list(/obj/item/toy/syndicateballoon, 3) = 2,
list(/obj/item/clothing/suit/ianshirt, 3) = 2,
list(/obj/item/clothing/head/bearpelt, 4) = 2,
//list(/obj/item/archaeological_find, 3) = 2, // Removed, causes runtimes
list(pick(subtypesof(/obj/item/toy/mecha)), 4) = 2,
list(pick(subtypesof(/obj/item/toy/figure)), 4) = 2,
list(pick(subtypesof(/obj/item/toy/plushie)), 4) = 2,
list(pick(subtypesof(/obj/item/storage/firstaid)), 4) = 2,
list(/obj/item/pickaxe/silver, 3) = 2,
list(/obj/item/pickaxe/drill, 3) = 2,
list(/obj/item/pickaxe/jackhammer, 4) = 2,
list(/obj/item/pickaxe/gold, 4) = 2,
list(/obj/item/pickaxe/diamond, 5) = 2,
list(/obj/item/pickaxe/diamonddrill, 6) = 2,
list(/obj/item/pickaxe/plasmacutter, 5) = 2,
list(/obj/item/soulstone, 5) = 2,
list(/obj/item/material/sword/katana, 5) = 2,
list(/obj/item/storage/belt/utility/chief/full, 8) = 2,
list(/obj/item/personal_shield_generator/belt/mining/loaded, 6) = 2,
list(pick(subtypesof(/obj/item/melee/energy/sword) - /obj/item/melee/energy/sword/charge), 6) = 2,
// Traitgenes New injector loot
list(pick(/obj/item/dnainjector/random_good,/obj/item/dnainjector/random_good_labeled,/obj/item/dnainjector/random_labeled,/obj/item/dnainjector/random), 6) = 2,
list(/obj/item/gun/energy/netgun, 7) = 2,
list(pick(prob(300);/obj/item/gun/energy/mouseray,
prob(50);/obj/item/gun/energy/mouseray/corgi,
prob(50);/obj/item/gun/energy/mouseray/woof,
prob(50);/obj/item/gun/energy/mouseray/cat,
prob(50);/obj/item/gun/energy/mouseray/chicken,
prob(50);/obj/item/gun/energy/mouseray/lizard,
prob(50);/obj/item/gun/energy/mouseray/rabbit,
prob(50);/obj/item/gun/energy/mouseray/fennec,
prob(5);/obj/item/gun/energy/mouseray/monkey,
prob(5);/obj/item/gun/energy/mouseray/wolpin,
prob(5);/obj/item/gun/energy/mouseray/otie,
prob(5);/obj/item/gun/energy/mouseray/direwolf,
prob(5);/obj/item/gun/energy/mouseray/giantrat,
prob(50);/obj/item/gun/energy/mouseray/redpanda,
prob(5);/obj/item/gun/energy/mouseray/catslug,
prob(5);/obj/item/gun/energy/mouseray/teppi,
prob(1);/obj/item/gun/energy/mouseray/metamorphosis,
prob(1);/obj/item/gun/energy/mouseray/metamorphosis/advanced/random
), 8) = 2,
list(/obj/item/gun/energy/pummeler, 11) = 2,
list(pick(subtypesof(/obj/item/reagent_containers/food/drinks/glass2/coffeemug)), 1) = 1,
list(/obj/item/xenos_claw, 1) = 1,
list(/obj/item/organ/internal/heart, 1) = 1,
list(/obj/item/vampiric, 2) = 1,
list(/obj/item/weed_extract, 2) = 1,
list(/obj/item/storage/backpack/luchador/loaded, 3) = 1,
list(/obj/item/storage/backpack/clown/loaded, 5) = 1,
list(/obj/item/storage/backpack/mime/loaded, 5) = 1,
list(pick(/obj/item/multitool/alien,
/obj/item/stack/cable_coil/alien,
/obj/item/tool/crowbar/alien,
/obj/item/tool/screwdriver/alien,
/obj/item/weldingtool/alien,
/obj/item/tool/wirecutters/alien,
/obj/item/tool/wrench/alien), 7) = 1,
list(pick(/obj/item/melee/energy/axe, /obj/item/melee/energy/spear), 11) = 1,
list(/obj/item/card/emag/used, 7) = 1,
list(pick(/obj/item/grenade/spawnergrenade/spesscarp, /obj/item/grenade/spawnergrenade/spider, /obj/item/grenade/explosive/frag), 7) = 1,
list(/obj/item/grenade/flashbang/clusterbang, 7) = 1,
list(/obj/item/card/emag, 11) = 1,
list(/obj/item/melee/shock_maul, 11) = 3,
list(/obj/item/clothing/suit/storage/vest/martian_miner/reinforced, 4) = 6,
list(/obj/item/storage/backpack/sport/hyd/catchemall, 11) = 1,
list(/obj/item/prop/alien/junk, 12) = 1,
))
var/path = choice[1]
var/value = choice[2]
contents += new path()
lootvalue += value
//putting the multi-object loot items as their own things
/obj/item/storage/backpack/dufflebag/cratebooze
starts_with = list(
/obj/item/reagent_containers/food/drinks/bottle/rum,
/obj/item/reagent_containers/food/drinks/bottle/whiskey,
/obj/item/reagent_containers/food/snacks/grown/ambrosiadeus,
/obj/item/reagent_containers/food/snacks/grown/ambrosiadeus,
/obj/item/reagent_containers/food/snacks/grown/ambrosiadeus,
)
/obj/item/storage/backpack/dufflebag/cratedrills
starts_with = list(
/obj/item/pickaxe/advdrill,
/obj/item/taperecorder,
/obj/item/clothing/suit/space,
/obj/item/clothing/head/helmet/space
)
/obj/item/storage/backpack/clown/loaded
starts_with = list(
/obj/item/clothing/under/rank/clown,
/obj/item/clothing/shoes/clown_shoes,
/obj/item/pda/clown,
/obj/item/clothing/mask/gas/clown_hat,
/obj/item/bikehorn,
/obj/item/pen/crayon/rainbow,
/obj/item/reagent_containers/spray/waterflower
)
/obj/item/storage/backpack/mime/loaded
starts_with = list(
/obj/item/clothing/under/mime,
/obj/item/clothing/shoes/black,
/obj/item/pda/mime,
/obj/item/clothing/gloves/white,
/obj/item/clothing/mask/gas/mime,
/obj/item/clothing/head/beret,
/obj/item/clothing/suit/suspenders,
/obj/item/pen/crayon/mime,
/obj/item/reagent_containers/food/drinks/bottle/bottleofnothing
)
/obj/item/storage/backpack/luchador/loaded
starts_with = list(
/obj/item/storage/belt/champion,
/obj/item/clothing/mask/luchador
)
/obj/item/storage/backpack/sport/hyd/catchemall
name = "sports backpack"
desc = "A green sports backpack."
starts_with = list(
/obj/item/clothing/head/soft/red,
/obj/item/clothing/suit/varsity/blue,
/obj/item/clothing/under/pants/youngfolksjeans,
/obj/item/capture_crystal
)
/obj/item/storage/backpack/sport/hyd/catchemall/Initialize() //gotta have your starter 'mon too (or an improved way to catch one)
. = ..()
var/path = pick(subtypesof(/obj/item/capture_crystal))
contents += new path()