26 lines
914 B
Python
26 lines
914 B
Python
from nullptr.analyzer import Point
|
|
|
|
def assign_sitter_at(c, s, w):
|
|
c.captain.init_mission(s, 'sit')
|
|
c.captain.smipa(s, 'dest', w.symbol)
|
|
|
|
def assign_sitter(c, s):
|
|
system = s.location.system
|
|
ships = c.store.all('Ship')
|
|
markets = c.store.all_members(system, 'Marketplace')
|
|
origin = Point(0, 0)
|
|
markets = sorted(markets, key=lambda m: m.waypoint.distance(origin))
|
|
shipyards = c.store.all_members(system, 'Shipyard')
|
|
occupied = [s.mission_state['dest'] for s in ships if s.mission=='sit']
|
|
probe_shipyard = [y for y in shipyards if 'SHIP_PROBE' in y.types][0]
|
|
print('oc', occupied)
|
|
print('proya', probe_shipyard)
|
|
|
|
if probe_shipyard.symbol not in occupied:
|
|
return assign_sitter_at(c, s, probe_shipyard)
|
|
for y in shipyards:
|
|
if y.symbol not in occupied:
|
|
return assign_sitter_at(c, s, y)
|
|
for m in markets:
|
|
if m.symbol not in occupied:
|
|
return assign_sitter_at(c, s, m) |