Files
VOREStation/code/game/objects/random/unidentified/medicine.dm
2019-03-27 12:15:50 -04:00

149 lines
11 KiB
Plaintext

/*
Semi-randomized loot for PoIs involving medicine.
Note that most of these include both 'good' and 'bad' results, with the bad results often being
much more likely to show up. This is done for several purposes;
* A large influx of valuable medicine makes medical/SAR less needed for explorers, which is something we want to avoid.
* Blindly using autoinjectors should be risky, and to accomplish that, it needs to be more likely to get a bad effect.
* A large amount of bad loot helps make the good loot feel better to acquire.
*/
// This one makes a purely random hypo. Not recommended for PoIs since it will produce nonsensical results for a PoI's theme.
// It's more of a thing to help pick specific hypos for the other lists.
/obj/random/unidentified_medicine
name = "unidentified medicine"
desc = "This will make a random hypo."
icon = 'icons/obj/syringe.dmi'
icon_state = "autoinjector1"
/obj/random/unidentified_medicine/item_to_spawn()
return pick(
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/toxin/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/oxy/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/purity/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/pain/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/healing_nanites/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/stimm/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/space_drugs/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/expired/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/serotrotium/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/cryptobiolin/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/mindbreaker/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/psilocybin/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/soporific/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/cyanide/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/impedrezene/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/mutagen/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/defective_nanites/unidentified,
/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/contaminated/unidentified)
// Produces things you might find in an old medicine cabinet in a PoI.
// Old cabinets are typical of ruins and abandoned buildings in the plains, meaning they're usually easier to reach, and as such, inferior loot.
/obj/random/unidentified_medicine/old_medicine/item_to_spawn()
// 30 Good, 70 Bad. 30% to get something good.
// Poor odds, but these are fairly easy to reach as they're in abandoned areas.
return pick(
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/toxin/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/oxy/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/purity/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/pain/unidentified,
prob(65);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/expired/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/contaminated/unidentified)
// Medicine belonging to a place still being occupied (or was recently), meaning the goods might still be fresh, and better.
/obj/random/unidentified_medicine/fresh_medicine/item_to_spawn()
// More likely to get something good, and a chance to get rare medicines.
// 75 Good, 25 Bad. 75% chance of getting something good.
// Good odds, but the contents aren't super great unless someone gets lucky.
return pick(
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/toxin/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/oxy/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/purity/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/pain/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed/unidentified,
prob(25);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/expired/unidentified)
// For military PoIs like BSD. High odds of good loot since those PoIs are really hard.
/obj/random/unidentified_medicine/combat_medicine/item_to_spawn()
// More likely to get something good, and a chance to get rare medicines.
// 75 Good, 30 Bad, roughly 71.4% chance to get something good.
// Very high but very hard to reach and still has a chance of ending poorly if injecting blind.
return pick(
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/brute/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/pain/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed/unidentified,
prob(30);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/soporific/unidentified,
prob(30);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/cyanide/unidentified)
// Hyposprays found inside various illicit places.
/obj/random/unidentified_medicine/drug_den/item_to_spawn()
// Combat stims are common, but so are nasty drugs.
// 65 Good, 160 Bad, roughly 28.8% to get something good.
// Poor odds, but there are a lot of these scattered in the drug dens and illegal chem labs.
return pick(
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/pain/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed/unidentified,
prob(40);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified,
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/stimm/unidentified,
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/space_drugs/unidentified,
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/serotrotium/unidentified,
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/cryptobiolin/unidentified,
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/mindbreaker/unidentified,
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/psilocybin/unidentified,
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/soporific/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/impedrezene/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/cyanide/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/contaminated/unidentified)
// Medicine made FOR SCIENCE.
/obj/random/unidentified_medicine/scientific/item_to_spawn()
// Potential for amazing loot, also potential for very nasty consequences if injecting blind.
// 45 Good, 45 Bad, 50% chance to get something good.
// Do you feel lucky?
return pick(
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/clotting/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/bonemed/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/combat/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/healing_nanites/unidentified,
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/contaminated/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/cyanide/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/mutagen/unidentified,
prob(5);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/defective_nanites/unidentified)
// Nanomachines, son. Found in very advanced places such as the Crashed UFO.
/obj/random/unidentified_medicine/nanites/item_to_spawn()
// You better identify this if you value your life.
// 30 Good, 70 Bad. 30% of getting a good outcome.
return pick(
prob(30);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/healing_nanites/unidentified,
prob(70);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/defective_nanites/unidentified)
// Found in virus-related areas like the Quarantined Shuttle.
/obj/random/unidentified_medicine/viral/item_to_spawn()
// Another one where's its important to identify the hypo.
// 30 Good, 70 Bad. 30% of getting a good outcome.
return pick(
prob(30);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/purity/unidentified,
prob(40);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/expired/unidentified,
prob(10);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/mutagen/unidentified,
prob(20);/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/contaminated/unidentified)