rewards: ignore duplicate fixed rewards

main
Bryce Allen 10 years ago
parent 984cc102a1
commit 99a2dc1ea6

@ -210,18 +210,30 @@ class QuestItemExpectedValue(object):
# preprocessing step - figure out how many fixed rewards there
# are, which we need to know in order to figure out how many
# chances there are to get other rewards.
for reward in rewards:
fixed_seen = dict(A=set(), B=set(), Sub=set())
dups = dict()
for i in xrange(len(rewards)):
reward = rewards[i]
slot = reward["reward_slot"]
if reward["percentage"] == 100:
self.fixed_rewards[slot] += 1
if reward["item_id"] in fixed_seen[slot]:
# db has some errors where fixed items appear twice
# TODO: this could be mislabeled fixed subquest reward,
# anecdotally S.Dalamadur Steel+ looks like that.
dups[i] = True
else:
self.fixed_rewards[slot] += 1
fixed_seen[slot].add(reward["item_id"])
else:
self.total_reward_p[slot] += reward["percentage"]
self._check_totals()
for reward in rewards:
for i, reward in enumerate(rewards):
if reward["item_id"] != self.item_id:
continue
if i in dups:
continue
self._add_reward(reward)
def _add_reward(self, r):
@ -803,6 +815,9 @@ class ItemRewards(object):
out.write(" %20s %5.2f / 100\n" % ("Shiny", shiny_ev))
out.write("\n")
def get_best_strat(self, rank="G", skill="No skills"):
return self.rank_skill_sets[rank][skill].best
def print_recommended_hunts(self, out):
out.write("*** Poogie Recommends ***\n")
for rank, skill_sets in self.rank_skill_sets.iteritems():

Loading…
Cancel
Save