Skip to content

Commit 56d0834

Browse files
Tweaked the item and spell loot
1 parent 71384d9 commit 56d0834

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

Autoload/Items.gd

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ var all_spells := {}
6161

6262
var base_spell_mods := {}
6363

64+
var last_category := 1
65+
var last_category_times := 1
6466

6567
func _ready():
6668
var generator_seed := hash(OS.get_time())
@@ -216,7 +218,12 @@ func pick_random_spell(rng:RandomNumberGenerator = LootRNG) -> Spell:
216218
tier = 3
217219
elif random < CHANCE_TIER1 + CHANCE_TIER2 + CHANCE_TIER3 + CHANCE_TIER4:
218220
tier = 4
219-
if spells[tier].empty():
221+
if tier == last_category:
222+
last_category_times += 1
223+
if spells[tier].empty() or (tier == last_category and rng.randf() < 1.0 / float(last_category_times)):
224+
if tier != last_category:
225+
last_category = tier
226+
last_category_times = 0
220227
return pick_random_spell(rng)
221228
return spells[tier].values()[rng.randi()%spells[tier].values().size()]
222229

@@ -232,7 +239,12 @@ func pick_random_item(rng:RandomNumberGenerator = LootRNG) -> Item:
232239
tier = 3
233240
elif random < CHANCE_TIER1 + CHANCE_TIER2 + CHANCE_TIER3 + CHANCE_TIER4:
234241
tier = 4
235-
if items[tier].empty():
242+
if tier == last_category:
243+
last_category_times += 1
244+
if items[tier].empty() or (tier == last_category and rng.randf() < 1.0 / float(last_category_times)):
245+
if tier != last_category:
246+
last_category = tier
247+
last_category_times = 0
236248
return pick_random_item(rng)
237249
return items[tier].values()[rng.randi()%items[tier].values().size()]
238250

0 commit comments

Comments
 (0)