This commit is contained in:
DragonTrance
2021-02-21 08:37:10 -07:00
parent 58b69503e3
commit 24cb27b67c
30 changed files with 637 additions and 45 deletions
+3
View File
@@ -8,6 +8,7 @@
var/access_any = FALSE //Do we care about access?
var/list/contains = null //What items are in the crate
var/crate_name = "crate" //The crate that comes with each order
var/crate_desc = "" //Crate's description
var/desc = ""//no desc by default
var/crate_type = /obj/structure/closet/crate //what kind of crate - Locked crates needed for access locked crates
var/dangerous = FALSE // Should we message admins?
@@ -19,6 +20,8 @@
/datum/supply_pack/proc/generate(atom/A)
var/obj/structure/closet/crate/C = new crate_type(A)
C.name = crate_name
if(crate_desc)
C.desc = crate_desc
if(access)
C.req_access = list(access)
if(access_any)
+1 -1
View File
@@ -267,7 +267,7 @@
/datum/supply_pack/misc/lewd
name = "Lewd Crate" // OwO
desc = "Psss want to have a good time with your sluts? Well I got what you want! Maid clothing, dildos, collars and more!"
desc = "Psst, want to have a good time with your sluts? Well I got what you want! Maid clothing, dildos, collars and more!"
cost = 5000
contraband = TRUE
contains = list(/obj/item/dildo/custom,
+212 -5
View File
@@ -196,6 +196,188 @@
/obj/item/reagent_containers/food/snacks/grown/strawberry)
crate_name = "fruit crate"
//ALIEN-ESQUE SEEDS CRATE
/datum/supply_pack/organic/rareseeds
name = "Galactic Seeds Crate"
desc = "Feel the need to explore the vastness of space, condensed into a single crate! Contains at least 4 seeds from random regions of space."
cost = 9500 //See fill proc. I know this costs a lot
contains = list()
crate_name = "galactic seeds crate"
crate_desc = "A rectangular steel crate."
crate_type = /obj/structure/closet/crate/hydroponics
/datum/supply_pack/organic/rareseeds/fill(obj/structure/closet/crate/C)
. = ..()
var/iteration = 0
var/common_seeds = list(
/obj/item/seeds/wheat,
/obj/item/seeds/wheat/oat,
/obj/item/seeds/peas,
/obj/item/seeds/tea,
/obj/item/seeds/coffee,
/obj/item/seeds/poppy,
/obj/item/seeds/sunflower,
/obj/item/seeds/grass,
/obj/item/seeds/glowshroom,
/obj/item/seeds/cotton,
/obj/item/seeds/reishi,
/obj/item/seeds/kudzu, //For some sort of realism that kudzu generally grows everywhere, have it a common seed
/obj/item/seeds/starthistle)
var/uncommon_seeds = list(
/obj/item/seeds/chanterelle/jupitercup,
/obj/item/seeds/sunflower/moonflower,
/obj/item/seeds/bee_balm,
/obj/item/seeds/random,
/obj/item/seeds/tea/astra,
/obj/item/seeds/peas/laugh,
/obj/item/seeds/galaxythistle,
/obj/item/seeds/coconut,
/obj/item/seeds/ambrosia/deus,
/obj/item/seeds/aloe,
/obj/item/seeds/cannabis/rainbow,
/obj/item/seeds/cannabis/ultimate,
/obj/item/seeds/angel,
/obj/item/seeds/liberty,
/obj/item/seeds/plump/walkingmushroom,
/obj/item/seeds/chanterelle,
/obj/item/seeds/glowshroom/shadowshroom)
var/xenoarch_seeds = list(
/obj/item/seeds/amauri,
/obj/item/seeds/gelthi,
/obj/item/seeds/jurlmah,
/obj/item/seeds/nofruit,
/obj/item/seeds/shand,
/obj/item/seeds/surik,
/obj/item/seeds/telriis,
/obj/item/seeds/thaadra,
/obj/item/seeds/vale,
/obj/item/seeds/vaporsac)
var/lavaland_seeds = list(
/obj/item/seeds/lavaland/polypore,
/obj/item/seeds/lavaland/porcini,
/obj/item/seeds/lavaland/inocybe,
/obj/item/seeds/lavaland/ember,
/obj/item/seeds/lavaland/cactus)
while((prob(68) || iteration <= 4) && iteration <= 15)
iteration++
var/obj/item/seeds/chosen_seed = null
var/obj/item/seeds/cache = null
switch(iteration)
if(1 to 3)
chosen_seed = pick(common_seeds)
if(4)
if(prob(25))
chosen_seed = pick(lavaland_seeds)
else
chosen_seed = pick(common_seeds)
if(5)
if(prob(40))
chosen_seed = pick(lavaland_seeds)
else
chosen_seed = pick(common_seeds)
if(6)
if(prob(70))
chosen_seed = pick(common_seeds)
else
chosen_seed = pick(uncommon_seeds)
if(7)
if(prob(3))
chosen_seed = pick(xenoarch_seeds)
else if(prob(40))
chosen_seed = pick(common_seeds)
else
chosen_seed = pick(uncommon_seeds)
if(8 to 10)
if(prob(8))
chosen_seed = pick(xenoarch_seeds)
else
chosen_seed = pick(uncommon_seeds)
if(11 to INFINITY)
if(prob(15))
chosen_seed = pick(xenoarch_seeds)
else if (prob(50))
chosen_seed = pick(uncommon_seeds)
else
chosen_seed = pick(lavaland_seeds)
cache = chosen_seed
if(istype(chosen_seed,/obj/item/seeds/starthistle)
new chosen_seed(C)
continue
//Make it actually seem like it's from another galaxy with all this stuff
if(prob(15) && !istype(chosen_seed, /obj/item/seeds/starthistle)
chosen_seed.rarity += 1
var/mutated = FALSE
for(var/datum/plant_gene/G in cache.genes)
if(locate(G) in chosen_seed.genes && prob(60))
if(prob(50))
chosen_seed.unset_mutability(G, PLANT_GENE_EXTRACTABLE)
chosen_seed.rarity += 5
else if(prob(70))
chosen_seed.unset_mutability(G, PLANT_GENE_REMOVABLE)
chosen_seed.rarity += 5
else if(!istype(G, /datum/plant_gene/core))
chosen_seed.forbiddengenes += G.type //Has the slim chance to make this plant unable to produce anything it started out with
chosen_seed.genes -= locate(G) in chosen_seed.genes //Sanity check
chosen_seed.rarity += 10
if(prob(65)) //To make this seem even more otherworldly
//Our own version of add_random_reagents
var/random_amount = round(rand(0, 25), 5) * 0.01
if(random_amount <= 0) random_amount = 0.02
var/datum/plant_gene/reagent/R = new(get_random_reagent_id(), random_amount)
if(R.can_add(chosen_seed))
chosen_seed.genes += R
chosen_seed.rarity += 5
else
qdel(R)
chosen_seed.reagents_from_genes()
if(prob(3)) //This is insanely rare, but we will use different grow sprites. Probably will fuck something up
var/obj/item/seeds/S = pick(subtypesof(/obj/item/seeds))
if(prob(85))
chosen_seed.plantname = "[pick("Alien", "Supernatural", "Artificial", "Modified")] [S.plantname]"
chosen_seed.rarity += 20*(!mutated)
else
chosen_seed.plantname = S.plantname
chosen_seed.growing_icon = S.growing_icon
chosen_seed.species = S.species
chosen_seed.icon_grow = S.icon_grow
chosen_seed.icon_harvest = S.icon_harvest
chosen_seed.icon_dead = S.icon_dead
chosen_seed.rarity += 35*(!mutated) //woah nelly
mutated = TRUE
else if(prob(70)) //Add basic reagents from grounded sheets, but only small amounts
var/A = rand(1, 5)
var/chosen_reagent
switch(A)
if(1)
chosen_reagent = /datum/reagent/toxin/plasma
if(2)
chosen_reagent = /datum/reagent/uranium
if(3)
chosen_reagent = /datum/reagent/iron
if(4)
chosen_reagent = /datum/reagent/gold
if(5)
chosen_reagent = /datum/reagent/cellulose
var/datum/plant_gene/reagent/R = new(chosen_reagent, A*0.02)
if(R.can_add(chosen_seed))
chosen_seed.genes += R
chosen_seed.rarity += 5
else
qdel(R)
chosen_seed.reagents_from_genes()
new chosen_seed(C)
//All in a while() loop! Very efficient I know
/datum/supply_pack/organic/grill
name = "Grilling Starter Kit"
desc = "Hey dad I'm Hungry. Hi Hungry I'm THE NEW GRILLING STARTER KIT ONLY 5000 BUX GET NOW! Contains a cooking grill and five fuel coal sheets."
@@ -277,11 +459,9 @@
/datum/supply_pack/organic/hydroponics
name = "Hydroponics Crate"
desc = "Supplies for growing a great garden! Contains two bottles of ammonia, two Plant-B-Gone spray bottles, a hatchet, cultivator, plant analyzer, as well as a pair of leather gloves and a botanist's apron."
desc = "Supplies for growing a great garden! Contains two bottles of ammonia, a hatchet, cultivator, plant analyzer, as well as a pair of leather gloves and a botanist's apron."
cost = 1750
contains = list(/obj/item/reagent_containers/spray/plantbgone,
/obj/item/reagent_containers/spray/plantbgone,
/obj/item/reagent_containers/glass/bottle/ammonia,
contains = list(/obj/item/reagent_containers/glass/bottle/ammonia,
/obj/item/reagent_containers/glass/bottle/ammonia,
/obj/item/hatchet,
/obj/item/cultivator,
@@ -326,6 +506,33 @@
/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass)
crate_name = "kitchen cutlery deluxe set"
/datum/supply_pack/organic/hydroponics/maintgarden
name = "Maintenance Garden Crate"
desc = "Set up your own tiny paradise with do-it-yourself botany kit. Contains sandstone for dirt plots, pest spray, ammonia, a portable seed generator, basic botanical tools, and some seeds to start off with."
cost = 2700
contains = list(/obj/item/storage/bag/plants/portaseeder,
/obj/item/reagent_containers/spray/pestspray,
/obj/item/stack/sheet/mineral/sandstone/twelve,
/obj/item/reagent_containers/glass/bucket,
/obj/item/reagent_containers/glass/bottle/ammonia,
/obj/item/reagent_containers/glass/bottle/ammonia,
/obj/item/hatchet,
/obj/item/cultivator,
/obj/item/plant_analyzer,
/obj/item/clothing/gloves/botanic_leather,
/obj/item/clothing/suit/apron,
/obj/item/flashlight,
/obj/item/seeds/carrot,
/obj/item/seeds/carrot,
/obj/item/seeds/tower,
/obj/item/seeds/tower,
/obj/item/seeds/watermelon,
/obj/item/seeds/watermelon,
/obj/item/seeds/grass,
/obj/item/seeds/grass)
crate_name = "maint garden crate"
crate_type = /obj/structure/closet/crate/hydroponics
/datum/supply_pack/organic/mre
name = "MRE supply kit (emergency rations)"
desc = "The lights are out. Oxygen's running low. You've run out of food except space weevils. Don't let this be you! Order our NT branded MRE kits today! This pack contains 5 MRE packs with a randomized menu and an oxygen tank."
@@ -398,7 +605,7 @@
/obj/item/seeds/wheat/rice,
/obj/item/seeds/carrot,
/obj/item/seeds/sunflower,
/obj/item/seeds/chanter,
/obj/item/seeds/chanterelle,
/obj/item/seeds/potato,
/obj/item/seeds/sugarcane)
crate_name = "seeds crate"
+8
View File
@@ -314,6 +314,14 @@
crate_name = "games supply crate"
crate_type = /obj/structure/closet/crate
/datum/supply_pack/vending/hydro
name = "Hydroponics Supply Crate"
desc = "Arnt you glad you dont have to do it the natural way? Contains a megaseed and nutrimax vending machine refill."
cost = 5000
contains = list(/obj/item/vending_refill/hydroseeds,
/obj/item/vending_refill/hydronutrients)
crate_name = "hydroponics supply crate"
/datum/supply_pack/service/vending/snack
name = "Snack Supply Crate"
desc = "One vending machine refill of cavity-bringin' goodness! The number one dentist recommended order!"