Skip to content
This repository has been archived by the owner on Aug 21, 2023. It is now read-only.

Adds a few more crates! #981

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
111 changes: 111 additions & 0 deletions monkestation/code/modules/cargo/packs.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,103 @@
//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Armory //////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

/datum/supply_pack/security/armory/revolver
name = "Revolver Single-Pack"
desc = "Contains one revolver, of the sort detectives are known to habitually smuggle on board."
cost = 1500
contraband = TRUE
small_item = TRUE
contains = list(/obj/item/gun/ballistic/revolver/detective)
crate_name = "single revolver crate"

//////////////////////////////////////////////////////////////////////////////
/////////////////////// Canisters & Materials ////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

/datum/supply_pack/materials/random_materials
name = "Contracted Materials"
desc = "No miners? We'll contract the work and send you the materials! Contains random processed materials, good luck!"
cost = 3000
contains = list()
crate_name = "contracted materials crate"

/datum/supply_pack/materials/random_materials/fill(obj/structure/closet/crate/C)
for(var/i in 1 to 5)
var/item = pick(
prob(200);
/obj/item/stack/sheet/iron/fifty,
prob(100);
Comment on lines +28 to +30
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

prob(200) and prob(100) would be redundant as that gives a 100% chance both times

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

According to the DM documentation, in this case prob(200) should be twice as common as the baseline, i.e. anything flagged prob(100). All the probs in a pick are supposed to be relative. What I tested seemed to line up with that.

/obj/item/stack/sheet/glass/fifty,
prob(50);
/obj/item/stack/sheet/plastic/fifty,
prob(50);
/obj/item/stack/sheet/mineral/copper/twenty,
prob(50);
/obj/item/stack/sheet/mineral/plasma/twenty,
prob(20);
/obj/item/stack/sheet/plasteel/twenty,
prob(20);
/obj/item/stack/sheet/mineral/titanium/twenty,
prob(10);
/obj/item/stack/sheet/mineral/silver/twenty,
prob(10);
/obj/item/stack/sheet/mineral/gold/five,
prob(5);
/obj/item/stack/sheet/mineral/diamond/five,
prob(5);
/obj/item/stack/sheet/mineral/uranium/five,
prob(5);
/obj/item/stack/sheet/bluespace_crystal/five
)
new item(C)

//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Medical /////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

/datum/supply_pack/medical/cadaver
name = "Cadaver Crate"
desc = "We won't ask why you need it if you don't ask why it's contraband. Contents not guaranteed deceased."
cost = 700
contraband = TRUE
contains = list(/mob/living/carbon/human/)
crate_name = "cadaver freezer"
crate_type = /obj/structure/closet/crate/freezer

/datum/supply_pack/medical/ass
name = "Ass Crate"
desc = "What's that smell? Why it's the ass crate of course! For when your coworkers have had prolific posterior pains. Contains abundant assorted asses."
cost = 800
contraband = TRUE
contains = list()
crate_name = "ass crate"
crate_type = /obj/structure/closet/crate/freezer

/datum/supply_pack/medical/ass/fill(obj/structure/closet/crate/C)
for(var/i in 1 to 6)
var/item = pick(
prob(200);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Redundant prob(200), it's automatically true

/obj/item/organ/butt,
prob(20);
/obj/item/organ/butt/cyber,
prob(20);
/obj/item/organ/butt/iron,
prob(20);
/obj/item/organ/butt/skeletal,
prob(10);
/obj/item/organ/butt/clown,
prob(10);
/obj/item/organ/butt/plasma,
prob(5);
/obj/item/organ/butt/bluespace,
prob(5);
/obj/item/organ/butt/xeno,
prob(1);
/obj/item/organ/butt/atomic
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh no.

)
new item(C)

//////////////////////////////////////////////////////////////////////////////
//////////////////////////// Miscellaneous ///////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -50,3 +150,14 @@
crate_name = "Experimental Cloner Crate"
crate_type = /obj/structure/closet/crate/medical
dangerous = TRUE

/datum/supply_pack/misc/cratecrate
name = "Crate crate"
desc = "A crate full of crates. Why? How?"
cost = 2000
access = FALSE
contains = list(/obj/structure/closet/crate,
/obj/structure/closet/crate,
/obj/structure/closet/crate)
crate_name = "Crate Crate"
crate_type = /obj/structure/closet/crate