trading debug and ship logs
This commit is contained in:
@@ -96,7 +96,7 @@ class Mission:
|
||||
}
|
||||
|
||||
def step_done(self):
|
||||
logging.info(f'mission finished for {self.ship}')
|
||||
self.ship.log(f'mission finished', 3)
|
||||
|
||||
def is_waiting(self):
|
||||
return self.next_step > time() or self.ship.cooldown > time() or self.ship.arrival > time()
|
||||
@@ -113,7 +113,7 @@ class Mission:
|
||||
self.init_state()
|
||||
status = self.status()
|
||||
if not status in steps:
|
||||
logging.warning(f"Invalid mission status {status}")
|
||||
self.ship.log(f"Invalid mission status {status}", 1)
|
||||
self.status('error')
|
||||
return
|
||||
handler, next_step = steps[status]
|
||||
@@ -127,12 +127,13 @@ class Mission:
|
||||
self.status(next_step)
|
||||
elif type(next_step) == dict:
|
||||
if result not in next_step:
|
||||
logging.warning(f'Invalid step result {result}')
|
||||
self.ship.log(f'Invalid step result {result}', 1)
|
||||
self.status('error')
|
||||
return
|
||||
else:
|
||||
if result is None: result=''
|
||||
self.status(next_step[result])
|
||||
print(f'{self.ship} {status} -> {self.status()}')
|
||||
self.ship.log(f'{status} {result} -> {self.status()}', 8)
|
||||
|
||||
class BaseMission(Mission):
|
||||
def step_go_dest(self):
|
||||
@@ -168,22 +169,19 @@ class BaseMission(Mission):
|
||||
return 'more'
|
||||
|
||||
def step_sell(self, except_resource=True):
|
||||
target = self.st('resource')
|
||||
market = self.store.get('Marketplace', self.ship.location.symbol)
|
||||
sellables = market.sellable_items(self.ship.cargo.keys())
|
||||
if target in sellables and except_resource:
|
||||
sellables.remove(target)
|
||||
if len(sellables) == 0:
|
||||
return 'done'
|
||||
resource = sellables[0]
|
||||
volume = market.volume(resource)
|
||||
|
||||
amount = self.ship.get_cargo(resource)
|
||||
while amount > 0:
|
||||
amt = min(amount, volume)
|
||||
self.api.sell(self.ship, resource, amt)
|
||||
amount -= amt
|
||||
if len(sellables) == 1:
|
||||
amt_cargo = self.ship.get_cargo(resource)
|
||||
|
||||
amount = min(amt_cargo, volume)
|
||||
self.api.sell(self.ship, resource, amount)
|
||||
|
||||
if len(sellables) == 1 and amt_cargo == amount:
|
||||
return 'done'
|
||||
else:
|
||||
return 'more'
|
||||
|
||||
@@ -17,7 +17,6 @@ class TradeMission(BaseMission):
|
||||
price = smkt.buy_price(resource)
|
||||
volume = smkt.volume(resource)
|
||||
affordable = credits // price
|
||||
print(cargo_space, affordable, volume)
|
||||
amount = min(cargo_space, affordable, volume)
|
||||
if amount == 0:
|
||||
return 'done'
|
||||
@@ -43,6 +42,9 @@ class TradeMission(BaseMission):
|
||||
'market-post': (self.step_market, 'travel-back'),
|
||||
**self.travel_steps('back', 'dest', 'dock-dest'),
|
||||
'dock-dest': (self.step_dock, 'unload'),
|
||||
'unload': (self.step_unload, 'market-dest'),
|
||||
'unload': (self.step_sell, {
|
||||
'more': 'unload',
|
||||
'done': 'market-dest'
|
||||
}),
|
||||
'market-dest': (self.step_market, 'done'),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user