track when cap = kill

main
Bryce Allen 11 years ago
parent 6c369172db
commit 2aa285fc59

@ -16,6 +16,7 @@ SKILL_NONE = None
STRAT_KILL = "kill"
STRAT_CAP = "cap"
STRAT_SHINY = "shiny"
STRAT_CAP_OR_KILL = "cap/kill"
def _format_range(min_v, max_v):
@ -337,7 +338,20 @@ class RankAndSkills(object):
return False
return True
def _compare_strat(self, new_strat):
def _compare_strats(self, kill_strat, cap_strat):
"""
Compare kill vs cap, and compare the best with current best. If cap
and kill are the same, keep track that it doesn't matter which is
used.
"""
if kill_strat == cap_strat:
new_strat = kill_strat
new_strat.strat = STRAT_CAP_OR_KILL
elif kill_strat > cap_strat:
new_strat = kill_strat
else:
new_strat = cap_strat
if self.best is None:
self.best = new_strat
return True
@ -350,15 +364,15 @@ class RankAndSkills(object):
if not self._rank_available(hunt_item.monster_rank):
return False
kill = ItemStrategy(STRAT_KILL,
kill_strat = ItemStrategy(STRAT_KILL,
cap_skill=self.cap_skill,
carving_skill=self.carving_skill)
cap = ItemStrategy(STRAT_CAP,
cap_strat = ItemStrategy(STRAT_CAP,
cap_skill=self.cap_skill,
carving_skill=self.carving_skill)
for strat in (kill, cap):
for strat in (kill_strat, cap_strat):
strat.add_hunt_item(hunt_item)
self._compare_strat(strat)
self._compare_strats(kill_strat, cap_strat)
def add_quest_option(self, quest_item, hunt_items):
if not self._rank_available(quest_item.quest.rank):
@ -376,7 +390,7 @@ class RankAndSkills(object):
strat.set_quest_item(quest_item)
for hi in hunt_items:
strat.add_hunt_item(hi)
self._compare_strat(strat)
self._compare_strats(kill_strat, cap_strat)
class ItemStrategy(object):

Loading…
Cancel
Save