rewards: ignore duplicate fixed rewards
This commit is contained in:
@@ -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:
|
||||
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():
|
||||
|
||||
Reference in New Issue
Block a user