mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-13 00:55:20 +01:00
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. /🆑
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
#define BONUS_MATS_MINIMUM 1
|
||||
#define BONUS_MATS_MAXIMUM 5
|
||||
|
||||
///Boulders with special artificats that can give higher mining points
|
||||
/obj/item/boulder/artifact
|
||||
name = "artifact boulder"
|
||||
@@ -7,10 +10,14 @@
|
||||
var/artifact_type = /obj/item/relic/lavaland
|
||||
/// References to the relic inside the boulder, if any.
|
||||
var/obj/item/artifact_inside
|
||||
/// Bonus materials to add to this boulder, in addition to existing materials created by the ore vent.
|
||||
var/datum/material/bonus_mat
|
||||
|
||||
/obj/item/boulder/artifact/Initialize(mapload)
|
||||
. = ..()
|
||||
artifact_inside = new artifact_type(src) /// This could be poggers for archaeology in the future.
|
||||
if(bonus_mat)
|
||||
add_bonus_mats()
|
||||
|
||||
/obj/item/boulder/artifact/Destroy(force)
|
||||
QDEL_NULL(artifact_inside)
|
||||
@@ -27,7 +34,24 @@
|
||||
|
||||
/obj/item/boulder/artifact/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = "boulder_artifact" // Hardset to artifact sprites for consistency
|
||||
icon_state = initial(icon_state) // Hardset to artifact sprites for consistency
|
||||
|
||||
/// Adds a random amount of material to an artifact boulder, determined by BONUS_MAT defines and of the type bonus_mat defined on the boulder.
|
||||
/obj/item/boulder/artifact/proc/add_bonus_mats()
|
||||
var/list/bonus_mats = list()
|
||||
if(custom_materials)
|
||||
bonus_mats = custom_materials.Copy()
|
||||
bonus_mats[bonus_mat] += rand(BONUS_MATS_MINIMUM, BONUS_MATS_MAXIMUM) * SHEET_MATERIAL_AMOUNT
|
||||
set_custom_materials(bonus_mats)
|
||||
|
||||
|
||||
/obj/item/boulder/artifact/bluespace
|
||||
icon_state = "boulder_artifact_BS"
|
||||
bonus_mat = /datum/material/bluespace
|
||||
|
||||
/obj/item/boulder/artifact/diamond
|
||||
icon_state = "boulder_artifact_diamond"
|
||||
bonus_mat = /datum/material/diamond
|
||||
|
||||
///Boulders usually spawned in lavaland labour camp area
|
||||
/obj/item/boulder/gulag
|
||||
@@ -77,3 +101,6 @@
|
||||
desc = "A bizarre, twisted boulder. Wait, wait no, it's just a rock."
|
||||
custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.1, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 1.1)
|
||||
durability = 1
|
||||
|
||||
#undef BONUS_MATS_MINIMUM
|
||||
#undef BONUS_MATS_MAXIMUM
|
||||
|
||||
Reference in New Issue
Block a user