mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 13:38:41 +01:00
Maintenance Pill Rebalance / Random reagent spawning refactor (XENOMICROBE MAINTPILLS!!) (#95320)
## About The Pull Request Refactors random reagent spawning to be divided into bitflags. This mean you can now decide from which random sources a reagent is allowed to spawn. Rejoice, now maintenance pills can have fun reagents without having to deal with the balance implications of a botanist producing 1000u of it! **SO NOW MAINTPILLS CAN HAVE CYBORG NANITES AND XENOMORPH MICROBES!! REJOICE, MY ABOMINATIONS!!!** Code stuff: CAN_SYNTH is now only for copying reagents, which is what it was originally intended for. A new randomized_spawns var has been added to reagents that decided where it can spawn. I've also changed some unsanitary reagent spawners to obey the spawn flags. This was the beebox kit (which could spawn literally every reagent in the game, including adminordrazine) and traitor bees, which now can't spawn the two spider toxins and gatfruit toxin (why do we even have gatfruit toxin?? shit does nothing). Balance overview: - Beeboxes no longer spawn everything - Traitor bees no longer spawn venom, viper venom and gatfruit toxin - Maintenance pills now spawn cyborg nanites and xenomorph microbes When I say maintpills, I mean REAL maintpills. The ones of which only a few spawn per round in maintenance, and not the fake ones that feature creepers added to cargo, blackmarket and that got mapped in ## Why It's Good For The Game We're limited to which reagents we can spawn randomly because sources like strange seeds, geysers and fake maintpills are infinitely reproducible, and can be used to get an infinite amount of every random spawnable reagent in every round (to be fair this is quite labor intensive, but never underestimate autism). Only about 3-6 maintenance pills spawn per round and there's about 700 spawnable reagents. There's simply no way to force the odds to get the reagent you want. I think the crew can have a little maintxenomicrobes and a little maintpill borgnanites As to why these two specifically: borgnanites are already only randomly obtainable, are cured easily and the effects of it are just one more cyborg player. It's a fun story, and not particularly disruptive to the round Xenomicrobes are admin only, so I would not be lessening any other features. Otherwise it's pretty much gonna cause an incident in-game when this happens, but who cares!!! I can make maintpills secretely reroll if the reagents are extracted instead of eaten to keep these always contained to the person eating them, but our playerbase so prefers eating over grinding that I think it's fine I have not included inverse reagents, blob spores etc because I respect them as their own features. I would however like to add some new, wacky maintpill reagents that can lead to some fun stories. ## Changelog 🆑 fix: Fixes beebox and traitor bees not obeying the reagent blacklist balance: Maintenance pills (the achievement variety that only spawns in maint) can now generate with xenomorph microbes and cyborg nanites /🆑 --------- Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
This commit is contained in:
@@ -198,21 +198,8 @@
|
||||
generate_bee_visuals()
|
||||
|
||||
/// Picks a random toxin and assigns it to the bee
|
||||
/mob/living/basic/bee/proc/assign_random_toxin_reagent(respect_can_synth = TRUE)
|
||||
var/list/toxin_pool = typesof(/datum/reagent/toxin)
|
||||
var/datum/reagent/toxin
|
||||
var/sanity = 0
|
||||
|
||||
do
|
||||
if(sanity > 20 || !length(toxin_pool))
|
||||
toxin = pick(/datum/reagent/toxin, /datum/reagent/toxin/histamine, /datum/reagent/toxin/venom)
|
||||
respect_can_synth = FALSE // in case someone removes cansynth from all of the above for some goofy reason
|
||||
else
|
||||
toxin = pick_n_take(toxin_pool)
|
||||
sanity += 1
|
||||
while(respect_can_synth && !(toxin::chemical_flags & REAGENT_CAN_BE_SYNTHESIZED))
|
||||
|
||||
assign_reagent(GLOB.chemical_reagents_list[toxin])
|
||||
/mob/living/basic/bee/proc/assign_random_toxin_reagent()
|
||||
assign_reagent(get_random_reagent_id(whitelist = subtypesof(/datum/reagent/toxin)))
|
||||
|
||||
/mob/living/basic/bee/mutate()
|
||||
. = ..()
|
||||
@@ -235,7 +222,7 @@
|
||||
|
||||
/mob/living/basic/bee/toxin/Initialize(mapload)
|
||||
. = ..()
|
||||
assign_random_toxin_reagent(respect_can_synth = FALSE)
|
||||
assign_random_toxin_reagent()
|
||||
|
||||
/// A bee which despawns after a short amount of time (beespawns?)
|
||||
/mob/living/basic/bee/timed
|
||||
|
||||
Reference in New Issue
Block a user