trade routes instead of resources
This commit is contained in:
@@ -61,6 +61,8 @@ class Mission:
|
||||
|
||||
def rst(self, typ, nm):
|
||||
symbol = self.st(nm)
|
||||
if symbol is None:
|
||||
return None
|
||||
return self.store.get(typ, symbol)
|
||||
|
||||
def st(self, nm):
|
||||
@@ -186,21 +188,6 @@ class BaseMission(Mission):
|
||||
else:
|
||||
return 'more'
|
||||
|
||||
def step_load(self):
|
||||
credits = self.api.agent.credits
|
||||
cargo_space = self.ship.cargo_capacity - self.ship.cargo_units
|
||||
resource = self.st('resource')
|
||||
loc = self.ship.location
|
||||
market = self.store.get('Marketplace', loc.symbol)
|
||||
price = market.buy_price(resource)
|
||||
volume = market.volume(resource)
|
||||
affordable = credits // price
|
||||
amount = min(cargo_space, affordable)
|
||||
while amount > 0:
|
||||
amt = min(amount, volume)
|
||||
self.api.buy(self.ship, resource, amt)
|
||||
amount -= amt
|
||||
|
||||
def step_travel(self):
|
||||
traject = self.st('traject')
|
||||
if traject is None or traject == []:
|
||||
|
||||
@@ -6,14 +6,29 @@ class TradeMission(BaseMission):
|
||||
def start_state(self):
|
||||
return 'travel-to'
|
||||
|
||||
def step_load(self):
|
||||
credits = self.api.agent.credits
|
||||
cargo_space = self.ship.cargo_capacity - self.ship.cargo_units
|
||||
smkt = self.store.get('Marketplace', self.st('site'))
|
||||
dmkt = self.store.get('Marketplace', self.st('dest'))
|
||||
resource = self.analyzer.find_deal(smkt, dmkt)
|
||||
if resource is None:
|
||||
return 'done'
|
||||
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'
|
||||
self.api.buy(self.ship, resource, amount)
|
||||
return 'done' if amount == cargo_space else 'more'
|
||||
|
||||
@classmethod
|
||||
def params(cls):
|
||||
return {
|
||||
'site': MissionParam(Waypoint, True),
|
||||
'resource': MissionParam(str, True),
|
||||
'dest': MissionParam(Waypoint, True),
|
||||
'delivery': MissionParam(str, True, 'deliver'),
|
||||
'contract': MissionParam(Contract, False)
|
||||
}
|
||||
|
||||
def steps(self):
|
||||
@@ -21,7 +36,10 @@ class TradeMission(BaseMission):
|
||||
**self.travel_steps('to', 'site', 'dock'),
|
||||
'dock': (self.step_dock, 'market-pre'),
|
||||
'market-pre': (self.step_market, 'load'),
|
||||
'load': (self.step_load, 'market-post'),
|
||||
'load': (self.step_load, {
|
||||
'more': 'market-pre',
|
||||
'done': 'market-post'
|
||||
}),
|
||||
'market-post': (self.step_market, 'travel-back'),
|
||||
**self.travel_steps('back', 'dest', 'dock-dest'),
|
||||
'dock-dest': (self.step_dock, 'unload'),
|
||||
|
||||
Reference in New Issue
Block a user