You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To see the problem in action, get to a random map from chapter 45 on-wards.
The message "WARNING: We don't know how to spawn [None]!" should show up a number of times in the log.
Currently, whenever you roll 0, or exactly the sum of a number of item weights, nothing is spawned.
For example, if the first few items are weighted at [1,3,2,3,1...], then roll() would return "None" if the rng hits 0,1,4,6,9 or 10.
I'm assuming this is unintended behavior, but you can see pretty clearly why this happens in the code:
while roll > 0{if roll < self.entries[index].weight{returnself.entries[index].name.clone();}
roll -= self.entries[index].weight;
index += 1;}
There are two easy fixes that I can see. Both effectively just looping more:
while roll >= 0{ ...
or
while index < self.entries.len(){ ..
The text was updated successfully, but these errors were encountered:
I think not subtracting one from the roll and using: if roll <= self.entries[index].weight { return self.entries[index].name.clone() }
instead of if roll < self.entries[index].weight { return self.entries[index].name.clone() }
should result in the intended behavior.
To see the problem in action, get to a random map from chapter 45 on-wards.
The message "WARNING: We don't know how to spawn [None]!" should show up a number of times in the log.
Currently, whenever you roll 0, or exactly the sum of a number of item weights, nothing is spawned.
For example, if the first few items are weighted at [1,3,2,3,1...], then roll() would return "None" if the rng hits 0,1,4,6,9 or 10.
I'm assuming this is unintended behavior, but you can see pretty clearly why this happens in the code:
There are two easy fixes that I can see. Both effectively just looping more:
or
The text was updated successfully, but these errors were encountered: