From 3f406159125e4abd7033b9b70765ac358268177f Mon Sep 17 00:00:00 2001 From: MsrSgtShooterPerson Date: Wed, 20 Nov 2024 21:27:51 +0800 Subject: [PATCH 1/3] New shape rules, deformed letter X's --- scripts/shapes.lua | 52 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/scripts/shapes.lua b/scripts/shapes.lua index 98c10530d..355658c5a 100644 --- a/scripts/shapes.lua +++ b/scripts/shapes.lua @@ -14547,6 +14547,58 @@ GROW_SKULL_P1_STEEPNESS_HALF = } }, +GROW_X_SHIFTED = +{ + prob = 7, + skip_prob = 80, + + structure = + { + "xxxx11xx..","xxxx11xx11", + "xxxx..xx..","xxxx11xx11", + "xxxx..x...","xxxx11x/11", + "x.........","x/1111111/", + ".........x","/1111111/x", + "...x..xxxx","11/x11xxxx", + "..xx..xxxx","11xx11xxxx", + "..xx..xxxx","11xx11xxxx", + }, + + diagonals = + { + ".1", + ".1","1.", + ".1","1.", + "1." + } +}, + +GROW_X_SHIFTED_NEW_AREA = +{ + prob = 10, + skip_prob = 75, + + structure = + { + "xxxx11xx..","xxxx11xxAA", + "xxxx..xx..","xxxx11xxAA", + "xxxx..x...","xxxx11x/AA", + "x.........","x/AAAAAAA/", + ".........x","/AAAAAAA/x", + "...x..xxxx","AA/x11xxxx", + "..xx..xxxx","AAxx11xxxx", + "..xx..xxxx","AAxx11xxxx", + }, + + diagonals = + { + ".A", + ".A","A.", + ".A","A.", + "A." + } +}, + -- other shapes GROW_DIAGONAL_STALK = From ceb5ecca951eb6fd78b4924f5a2394c4c3f9c801 Mon Sep 17 00:00:00 2001 From: MsrSgtShooterPerson Date: Wed, 20 Nov 2024 21:28:20 +0800 Subject: [PATCH 2/3] Debug only: Room tables now preserve list of successful shape rules applied. --- scripts/grower.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scripts/grower.lua b/scripts/grower.lua index 2c387e15f..570717ece 100644 --- a/scripts/grower.lua +++ b/scripts/grower.lua @@ -3628,6 +3628,12 @@ end R.shapes_applied = 1 end + if not R.shapes or table.empty(R.shapes) then + R.shapes = {} + else + R.shapes[cur_rule.name] = R.shapes[cur_rule.name] + 1 + end + if cur_rule.is_absurd then if R.absurd_shapes then table.add_unique(R.absurd_shapes, cur_rule.name) From c676735cdffaf0abb6b8845e5fdf5e61c2245b68 Mon Sep 17 00:00:00 2001 From: MsrSgtShooterPerson Date: Wed, 20 Nov 2024 21:29:34 +0800 Subject: [PATCH 3/3] 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)