Commit Graph

2 Commits

Author SHA1 Message Date
ArcaneMusic b1ae4ddce9 Diamonds and Bluespace Crystals ore vent rebalance. (#96135)
## About The Pull Request

A few tweaks regarding diamonds and bluespace crystals with regards to
ore vents.
With the quantity of bluespace crystals and diamonds that have been
reintroduced to the game, in an attempt to maintain their status as the
rarest tier of material to obtain for the station, both materials have
been removed from the standard pools of ores that can spawn into
boulders. What this **means** is that it can't roll as a primary
material for a boulder, providing 25-10 sheets worth of material.

**However,** diamonds and BS crystals are now available from all tapped
vents as an artifact boulder spawn. These artifact boulders will spawn
at a flat 7% chance, previously set as a random range of 0-10% randomly
per vent. Because this chance was never communicated to players, I think
it's fine at this point to split the difference, lock it in at 7%
(Considering that we're adding more things onto the artifact boulder
outcomes as is, I've elected to throw it to a slightly higher chance,
based purely on vibes). For clarity, these two artifact boulders add a
flat 1-5 sheets of their respective material to the boulder on spawn,
the same as mining a single tile of their respective ore from a wall.

Additionally, the overlays when scanning an ore vent will now show a
flashing icon to represent the rare chance that these two materials may
spawn. Text has been added to the examine for ore vents to explain this
behavior.

Boss vents may still spawn diamond and bluespace crystals, but at a
lower weighting than all other materials.

Due to diamonds and BS crystals being removed from the standard ore vent
weightings, their distributions within the ore vent mineral distribution
used on roundstart has been shifted, while otherwise keeping a similar
distribution of minerals across vents, according to the rough intent of
what minerals should show up at what rarities.

As previously stated, these two artifact material boulders add their ore
to the boulder itself, meaning that you may also want to pick out
artifact boulders in order to do limited chemical boosting for up to 50%
more materials.

## Why It's Good For The Game

Diamonds and bluespace crystals are intended to be rare, valuable, and
desirable enough to go out of your way to obtain. Ore vents ideally
should have had some sort of built-in scaling that tweaked the amount of
that specific material they produced, but I never got around to
implementing that and as a result they've been really, REALLY common for
the last while. One of the design goals of the new mining PRs that have
been released recently as to try and reintroduce some rarity and
desirability into these high tier minerals by adjusting their
availability while not completely locking them off from the rest of the
game.

This was a compromise to also still provide some utility to doing ore
vents with the reintroduction of ores being more common from
wall-mining. Wall diamonds and bluespace crystals will still exist, but
this way completing a small collection of ore vents will help to supply
the station with materials, where it's the quantity, not the quality of
vents that provides the best value, while noting you're still going to
be recieving these drops somewhat rarely unless optimizing your factory
output.

## Changelog

🆑
balance: Non-boss ore vents may no longer contain bluespace crystals and
diamonds.
balance: All ore vents now have a flat 7% chance to spawn an artifact
boulder.
balance: There are now 2 new artifact boulder types, which may contain
1-5 sheets worth of bluespace crystals or diamonds respectively. These
boulders may have their rare ore boosted via chemical boosting.
balance: ore distribution in vents have been adjusted to accommodate for
bluespace and diamonds being removed from vents accordingly.
spellcheck: Ore vents now explain the artifact boulder mechanic on
examine.
/🆑
2026-05-29 23:13:26 +02:00
ArcaneMusic ed31397cc4 Fixes ore vents spawning without ores on icebox, sets up map specific ore configurations (#81103)
## About The Pull Request

In short, we used a static list previously within the ore_generation
subsystem that held the amount of each ore that we expected a single map
to uniformly need. We held this number constant, since we were spawning
15 vents per map.

**Pros:** This worked flawlessly for Lavaland since 15 vents on a single
Z level makes it pretty densely packed map with a good amount of
map-based ore spawns, and it worked consistently.

**Cons:** 15 vents did not work well on Icebox however, even when split
so that the majority of the ores were spawning on the lower levels,
players did not feel like icebox spawned nearly enough ores and reported
the map spawning empty.

**Result:** As a result, we adjusted the ratio, so that we spawned
vastly more ores on the lower levels, now up to 4 vents on the upper
level, and 21 vents on the lower level. However, as we were still using
the ore distribution list based on lavaland, icebox vents were quickly
running out of ores to distribute between them, resulting in empty vents
-> which produced empty boulders -> which not only don't really let you
process them properly, but also just result in a metric ton of runtimes.

Icebox now has it's own list of ore distributions. These distributions
are now moved to a set of global lists as opposed to being saved on the
subsystem as a static list, which will make going and setting up new ore
distribution lists very very easy. Additionally, we've moved the setting
and getting of those ore_distributions over to the seedRuins proc, so
that we're actually setting the list of ores right before we actually
place them to make sure that the order that it's set is roughly as it's
needed, while still setting the list at the same time the
map-appropriate ruin placements are dropped in.

**Plus some misc cleanup fixes:**
`var/list/ore_vent_sizes` in SSore_generation wasn't being treated as a
similar budget list as `ore_vent_minerals`, since it `pick()`s off it's
own static size list. Which is honestly fine for this five seconds, I
can handle that later while we make sure the rest of the code code is
stable. In the meantime, I've just tweak it so that it's easy to see at
a glance how many of each random vent has spawned into the map.

Tweaked the description to not include anything about chemical
processing, as I'm planning on hitting on that in a part 2 PR that I'll
be picking back up after the freeze.

## Why It's Good For The Game

Cleans up the code a bit, but primarily fixes ores not spawning on
icebox as they should.
Should fix #81058.
Improves description to not mention mechanics that aren't in game.
Also, cleans up a piece of code that currently isn't serving much of a
purpose.

## Changelog

🆑
fix: Icebox should have it's ore distribution and it's ore vents fixed,
so that vents should now produce ore.
spellcheck: Boulder processing machines now don't mention things they
don't do.
/🆑
2024-02-07 05:20:25 +01:00