add rank filter to mhmoney

main
Bryce Allen 10 years ago
parent f89b848284
commit 26e376eefb

@ -6,6 +6,7 @@ Script to find the most lucrative monster parts to farm for money.
import codecs import codecs
import urllib import urllib
import os.path import os.path
import sys
import _pathfix import _pathfix
@ -17,7 +18,7 @@ from mhapi import rewards
ITEM_TYPES = "Bone Bug Flesh Ore Sac/Fluid".split() ITEM_TYPES = "Bone Bug Flesh Ore Sac/Fluid".split()
def print_top_items(db): def print_top_items(db, rank="G"):
items = db.get_items(ITEM_TYPES) items = db.get_items(ITEM_TYPES)
ev = dict() ev = dict()
strats = dict() strats = dict()
@ -33,7 +34,7 @@ def print_top_items(db):
item.sell = int(item.sell) item.sell = int(item.sell)
ir = rewards.ItemRewards(db, item) ir = rewards.ItemRewards(db, item)
strat = ir.get_best_strat() strat = ir.get_best_strat(rank=rank)
if strat is None: if strat is None:
ev[item.id] = 0 ev[item.id] = 0
else: else:
@ -43,15 +44,26 @@ def print_top_items(db):
def item_value(i): def item_value(i):
return i.sell * ev[i.id] / 100.0 return i.sell * ev[i.id] / 100.0
min_value = 10000
if rank == "LR":
min_value = 1000
if rank == "HR":
min_value = 5000
items.sort(key=item_value, reverse=True) items.sort(key=item_value, reverse=True)
for item in items: for item in items:
value = item_value(item) value = item_value(item)
if value < 10000: if value < min_value:
break break
print " %-20s % 7.f % 6d (% 5.f)" % \ print " %-20s % 7.f % 6d (% 5.f)" % \
(item.name, value, int(item.sell), ev[item.id]) (item.name, value, int(item.sell), ev[item.id])
if __name__ == '__main__': if __name__ == '__main__':
if len(sys.argv) > 1:
rank = sys.argv[1]
else:
rank = "G"
db = MHDB() db = MHDB()
print_top_items(db) print_top_items(db, rank)

Loading…
Cancel
Save