From c676735cdffaf0abb6b8845e5fdf5e61c2245b68 Mon Sep 17 00:00:00 2001 From: MsrSgtShooterPerson Date: Wed, 20 Nov 2024 21:29:34 +0800 Subject: [PATCH] Revised behavior of secret room bonus items, now more likely to include up to 1 kind of ammo, maximum 2 kinds as opposed to just health/armor. --- scripts/item.lua | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/scripts/item.lua b/scripts/item.lua index e12c0c4d8..4a7a98b6f 100644 --- a/scripts/item.lua +++ b/scripts/item.lua @@ -1002,13 +1002,31 @@ function Item_pickups_for_class(LEVEL, CL) if not stats.health then stats.health = 1 end + + local pick1 + local pick2 + if R.zone.weap_palette + and not table.empty(R.zone.weap_palette) + and OB_CONFIG.secrets_bonus ~= nil then + pick1 = rand.key_by_probs(R.zone.weap_palette) + if rand.odds(33 + LEVEL.id) then + pick2 = rand.key_by_probs(R.zone.weap_palette) + end + end + + if pick1 and not stats[GAME.WEAPONS[pick1].ammo] then + stats[GAME.WEAPONS[pick1].ammo] = 1 + end + if pick2 and not stats[GAME.WEAPONS[pick2].ammo] then + stats[GAME.WEAPONS[pick2].ammo] = 1 + end end for stat,qty in pairs(stats) do -- this secret room is a treasure trove, baby! if R.is_secret and OB_CONFIG.secrets_bonus ~= nil then - qty = R.svolume * SECRET_BONUS_FACTORS[OB_CONFIG.secrets_bonus] + qty = qty + (R.svolume/2) * SECRET_BONUS_FACTORS[OB_CONFIG.secrets_bonus] end select_pickups(R, item_list, stat, qty)