From b1ae4ddce95b0e311b8b84ed44d6282e4aa734d8 Mon Sep 17 00:00:00 2001 From: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com> Date: Fri, 29 May 2026 17:13:26 -0400 Subject: [PATCH] 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 :cl: 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. /:cl: --- code/_globalvars/lists/ores_spawned.dm | 26 +++++++--------- .../objects/structures/lavaland/ore_vent.dm | 26 +++++++++++----- .../boulder_processing/boulder_types.dm | 29 +++++++++++++++++- icons/effects/vent_overlays.dmi | Bin 781 -> 1860 bytes icons/obj/ore.dmi | Bin 10439 -> 12825 bytes 5 files changed, 58 insertions(+), 23 deletions(-) diff --git a/code/_globalvars/lists/ores_spawned.dm b/code/_globalvars/lists/ores_spawned.dm index 227e06061ad..a6a9654f823 100644 --- a/code/_globalvars/lists/ores_spawned.dm +++ b/code/_globalvars/lists/ores_spawned.dm @@ -9,27 +9,23 @@ */ GLOBAL_LIST_INIT(ore_vent_minerals_lavaland, list( - /datum/material/iron = 13, - /datum/material/glass = 12, - /datum/material/plasma = 9, + /datum/material/iron = 14, + /datum/material/glass = 13, + /datum/material/plasma = 10, + /datum/material/silver = 7, /datum/material/titanium = 6, - /datum/material/silver = 5, /datum/material/gold = 5, - /datum/material/diamond = 3, - /datum/material/uranium = 3, - /datum/material/bluespace = 3, + /datum/material/uranium = 4, /datum/material/plastic = 1, )) GLOBAL_LIST_INIT(ore_vent_minerals_triple_z, list( - /datum/material/iron = 24, - /datum/material/glass = 23, - /datum/material/plasma = 16, + /datum/material/iron = 25, + /datum/material/glass = 24, + /datum/material/plasma = 17, /datum/material/titanium = 10, - /datum/material/silver = 8, - /datum/material/gold = 7, - /datum/material/diamond = 4, - /datum/material/uranium = 4, - /datum/material/bluespace = 3, + /datum/material/silver = 10, + /datum/material/gold = 8, + /datum/material/uranium = 5, /datum/material/plastic = 1, )) diff --git a/code/game/objects/structures/lavaland/ore_vent.dm b/code/game/objects/structures/lavaland/ore_vent.dm index 38e5ac83537..244e88102be 100644 --- a/code/game/objects/structures/lavaland/ore_vent.dm +++ b/code/game/objects/structures/lavaland/ore_vent.dm @@ -1,4 +1,4 @@ -#define MAX_ARTIFACT_ROLL_CHANCE 10 +#define ARTIFACT_ROLL_CHANCE 7 #define MINERAL_TYPE_OPTIONS_RANDOM 4 #define OVERLAY_OFFSET_START 0 #define OVERLAY_OFFSET_EACH 5 @@ -72,7 +72,7 @@ /// What base icon_state do we use for this vent's boulders? var/boulder_icon_state = "boulder" /// Percent chance that this vent will produce an artifact boulder. - var/artifact_chance = 0 + var/artifact_chance = ARTIFACT_ROLL_CHANCE /// We use a cooldown to prevent the wave defense from being started multiple times. COOLDOWN_DECLARE(wave_cooldown) /// We use a cooldown to prevent players from tapping boulders rapidly from vents. @@ -161,6 +161,8 @@ . += span_notice("This vent produces [span_bold("large")] boulders containing [ore_string]") else . += span_notice("This vent can be scanned with a [span_bold("Mining Scanner")].") + if(artifact_chance) + . += span_notice("This vent has a low chance to produce an [span_bold("artifact boulder.")] These may contain rare minerals or strange artifacts.") /obj/structure/ore_vent/add_context(atom/source, list/context, obj/item/held_item, mob/living/user) if(is_type_in_list(held_item, scanning_equipment)) @@ -526,6 +528,11 @@ var/atom/movable/flick_visual/visual = flick_overlay_view(mutable_appearance('icons/effects/vent_overlays.dmi', selected_mat.name), 4.5 SECONDS) animate(visual, alpha = 0, time = 4.5 SECONDS, easing = CIRCULAR_EASING|EASE_IN) + if(artifact_chance) + var/atom/movable/flick_visual/rare = flick_overlay_view(mutable_appearance('icons/effects/vent_overlays.dmi', "rare_ore"), 4.5 SECONDS) + animate(rare, alpha = 0, time = 4.5 SECONDS, easing = CIRCULAR_EASING|EASE_IN) + + /** * Here is where we handle producing a new boulder, based on the qualities of this ore vent. * Returns the boulder produced. @@ -541,7 +548,8 @@ //produce the boulder var/obj/item/boulder/new_rock if(prob(artifact_chance)) - new_rock = new /obj/item/boulder/artifact(loc) + var/picked_artifact = pick(typesof(/obj/item/boulder/artifact)) + new_rock = new picked_artifact(loc) else new_rock = new /obj/item/boulder(loc) Shake(duration = 1.5 SECONDS) @@ -646,6 +654,10 @@ /datum/material/glass = 1, ) +/obj/structure/ore_vent/starter_resources/Initialize(mapload) + . = ..() + generate_description() + /obj/structure/ore_vent/random // Todo: determine if we need a boulder_size default thats unique from the override performed in vent_size_setup. @@ -654,7 +666,6 @@ if(!unique_vent && !mapload) generate_mineral_breakdown(map_loading = mapload) //Default to random mineral breakdowns, unless this is a unique vent or we're still setting up default vent distribution. generate_description() - artifact_chance = rand(0, MAX_ARTIFACT_ROLL_CHANCE) if(!mapload) vent_size_setup(random = TRUE) // We only do this here specific to random distribution ore vents, and within mapload we handle this manually within SSore_generation. @@ -700,9 +711,9 @@ /datum/material/titanium = 1, /datum/material/silver = 1, /datum/material/gold = 1, - /datum/material/diamond = 1, + /datum/material/diamond = 0.1, /datum/material/uranium = 1, - /datum/material/bluespace = 1, + /datum/material/bluespace = 0.1, /datum/material/plastic = 1, ) defending_mobs = list( @@ -785,6 +796,7 @@ var/value = tgui_input_number(user, "What weight should it have?", "ore pickweight", 1, 100, 1) mineral_breakdown[choice] = value balloon_alert_to_viewers("weighting of [value] added") + generate_description() /obj/structure/ore_vent/debug/attack_hand_secondary(mob/user, list/modifiers) . = ..() @@ -807,7 +819,7 @@ GLOB.mining_center += loc return INITIALIZE_HINT_QDEL -#undef MAX_ARTIFACT_ROLL_CHANCE +#undef ARTIFACT_ROLL_CHANCE #undef MINERAL_TYPE_OPTIONS_RANDOM #undef OVERLAY_OFFSET_START #undef OVERLAY_OFFSET_EACH diff --git a/code/modules/mining/boulder_processing/boulder_types.dm b/code/modules/mining/boulder_processing/boulder_types.dm index ec67648fe2a..1a6979f3885 100644 --- a/code/modules/mining/boulder_processing/boulder_types.dm +++ b/code/modules/mining/boulder_processing/boulder_types.dm @@ -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 diff --git a/icons/effects/vent_overlays.dmi b/icons/effects/vent_overlays.dmi index 375117f4c79f78fdc7bef6b8806b32f6a5e08435..c1e676591e7a984c4d14c832277d254c99310260 100644 GIT binary patch literal 1860 zcmbtSS6tHv7yT2%5Cu#asqD%UG$e&0Xc2-$0g>@BB+5#ue8>z01kyBtVg(^01w;}X zwp0`u+6Ivoz#oJS)q=FMsIq^PL~0DzK< zGulgvsQ@4YD9A|}Q9ynoh2HOdFbU|;`0w!Hu?gY07ywA7XXgzob|Q~<4|BX9aLwjR z<_0NIJ<2?F!`iqbiCpJzSTi%v*e-v?%)-cqh5`$M*|0C1;%ZdfbN_j+6Rpnr1kG7s zP8GWw>Ud2Gu*$Dvb#3KnQ2+caG^82(>cnfyt-VqEs!?{p15MDVqgwL{WExQFOJDXJ zrDzf(%BOm;H&-j@20BA(vl9{OcWecrj_M9Lx0bn^y4~*l5+pJRzL0`!@h?jk6y5eU zx41UeWuk|umM@kYxuJ{#0J$?RXa}EUI(OP5O5@@eEPgn*1GBBa;xH0oJMIZiQ_={z zAj;1=2K}x6q(pIlLXx?8`OY>ZaHbVY#2E(!4K9Og#DRla7JpHqy0T!@Z3sC0co8>zV$pPP=aT_tz0J?UGTi(#!L54*1CHaS&Gt}R`O5Cs$bnBGO^=nk&T-* zo$fKu$_P-*xawwaxv#(Kq2z^)*oa&6ke|OYCC5iTAynDJMlnTN?W>2ets%&Wd|Et9U4-&?1(Ib5ZN-L*;B)^y^f%wq!@pI$IHX_C1^@&maQ zP8Er#LUq!f&8n}eX{y(E6^_MBl6BW#{&lX$yW>rSB5LX+R!@oAuOsn)qK=}PW>y~X|Eow zjumcl)!|ORt#swj1o+`#_o}Q-C2t1d4$Np*+@hVg!G7Pq5DEf$8u^P>R#rBWC@_Ti zr-Af#7`Rlfu~BqY_7~o=lsYDBvkVJDj2uLo&%p zt!l&lZ6~jg4b0>@wQmh}?u%@&P)ykxBET}qTqUs9JEMHJ6?;0Ms$vjLwzbrR^{%Oq7#5HXAD0N$lc*Tb(&7>RaHDL?AQj+5| z5ZK&6t-3m74}<9|Nkh+w9Oy1W$WMj|?Uk;7Xb?Y*&!=UevQqecb-z}|JJplKBK{}t zyB9w^Jx-1!`m(O|3W5V)pjjJyeCOPeTo^v1IqKMBhIrks;OFM4tZ!0|%ld%ZLlNkp z9whG08o8Ov^ENe&QQH+68JdCE%0$A#%ru_m`Ukg2kKs`{1<~h8l{-a;6oQR^q+E@L zcew$TH9G=auYe_G=NWSa0d)I+-}%1?wLm}tnHU?tv;&X&w3un|6;knF)LBrewv6X} z;G`4qzyRoz=I4O%qeYd6=A+dPS+i3Uv_`UcmRV$NZLZ?y`+Ts%fW2Cb_J?kW~}BRvVig^>veLzLYaZmihyE!tJ=osS5JPdq5oLJt6^o z*PmGo(I;kGbZ{_je~K*j9)*h|ZIfqQPfc#LM!mNh($Y*0*8MF0Q*Pbw*XMMczhb~QOjQ(t+; z(B(lDK4>FnuRO66FHs&%h%fFDZ*Bkpc$|%q%L>9U5JlI?SA=#iK8iax(jr~he;AwC z4CYbtu=w{53hpG`-8&raFmr2h?k@cx+H23BDn#^7oJ6zPa<-sMn#^I(nN~RIMCRD= zm>?;V6$bAr&VM9^NOs5BJ%CkT{evb0F&3$rC<{gGX0nPij7p5*MN_jXIN@02asY?f z7P*Lq-c-KY8(D-Brgcjtg7vN(nBBwqjo=!W*w^c$Oqj^&mJN|yit0gXvSK~#90 z?bFe2f>01eQ53OKwE}8Y5N-AU|FJW8<5LrY5KnCPf`4acXBeYs6htDUaU92Eqbjff zn{ExlfY{&vy8-zTwweU8`AIUJCetKQ6-<1%(*@WH#2c6<$^iKhwt5R>^Ji%~bE*Oh z@F!IU*alMV2AT%l5r~hl)q5bDKVK~7PF3Im3y%;6G>>!x%~#MJf%pgk00000006v} zWiY@`eSZYq=C87B{yORvwTIwSl~2z~Dz%6y4@O z(>jpN-)y!Urz%+6{H?vpfUP>s9>RiA-u{%*H#UR41B7O>mfd|80}2mt^9 z0000006?3=ooIep7LBsh6dY`RRaIUf3#iIw3w*MG+xV&y2G}R?EesHF3_1n`{R58m z>2#`3b={#Le1f3@e0tqE!2Scne1coR0~=^gKooHPx;ys{c;pD9^IiY>t-gaNjQV~4 z<$Aqb>{S(5fR9%PXg8q!1o9&U00000008iZ`~Z46F&j?E=-U7Q002ovPDHLkV1h?X BP_h63 diff --git a/icons/obj/ore.dmi b/icons/obj/ore.dmi index 5a363aad95b535d43644765effdac4b428626306..8cb07a5312d0b1087570581891b7619e40659781 100644 GIT binary patch literal 12825 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