|
|
|
@ -31,8 +31,29 @@ class SellToVillagerStates: |
|
|
|
|
|
|
|
|
|
for v in w.find_villagers(p, 100): |
|
|
|
|
print('Found villager:', v) |
|
|
|
|
if v not in self.bad_villagers and v not in self.spent_villagers: |
|
|
|
|
break |
|
|
|
|
|
|
|
|
|
if v in self.bad_villagers: |
|
|
|
|
print('In bad villager list') |
|
|
|
|
continue |
|
|
|
|
|
|
|
|
|
if v in self.spent_villagers: |
|
|
|
|
print('In spent villager list') |
|
|
|
|
continue |
|
|
|
|
|
|
|
|
|
if 'profession' not in v: |
|
|
|
|
print('Villager has unknown profession') |
|
|
|
|
continue |
|
|
|
|
|
|
|
|
|
if v.profession not in mobs.TRADES: |
|
|
|
|
print('Villager doesnt sell stuff we collect') |
|
|
|
|
continue |
|
|
|
|
|
|
|
|
|
trades = mobs.TRADES[v.profession] |
|
|
|
|
if not self.g.game.count_items(trades): |
|
|
|
|
print('We dont have anything to sell him') |
|
|
|
|
continue |
|
|
|
|
|
|
|
|
|
break |
|
|
|
|
else: # for |
|
|
|
|
print('No good villagers left, aborting.') |
|
|
|
|
self.spent_villagers = [] |
|
|
|
@ -59,7 +80,7 @@ class SellToVillagerStates: |
|
|
|
|
if self.villager not in self.good_villagers: |
|
|
|
|
self.bad_villagers.append(self.villager) |
|
|
|
|
print('Added to bad villager list') |
|
|
|
|
self.state = self.cleanup |
|
|
|
|
self.state = self.find_villager |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
navpath = w.path_to_place(p, self.openings[0]) |
|
|
|
@ -144,8 +165,7 @@ class SellToVillagerStates: |
|
|
|
|
print('Villager has been spent, aborting') |
|
|
|
|
self.g.game.close_window() |
|
|
|
|
self.spent_villagers.append(self.villager) |
|
|
|
|
self.state = self.wait |
|
|
|
|
self.wait_time = 10 |
|
|
|
|
self.state = self.find_villager |
|
|
|
|
return |
|
|
|
|
|
|
|
|
|
def click_trade(self): |
|
|
|
|