def construct(units, template, x, z, angle=0, autorepair=True, autocontinue=True, queued=False): unit_ids = [ unit.id() for unit in units ] return { 'type': 'construct', 'entities': unit_ids, 'template': template, 'x': x, 'z': z, 'angle': angle, 'autorepair': autorepair, 'autocontinue': autocontinue, 'queued': queued, } def gather(units, target, queued=False): unit_ids = [ unit.id() for unit in units ] return { 'type': 'gather', 'entities': unit_ids, 'target': target.id(), 'queued': queued, } def train(entities, unit_type, count=1): entity_ids = [ unit.id() for unit in entities ] return { 'type': 'train', 'entities': entity_ids, 'template': unit_type, 'count': count, } def chat(message): return { 'type': 'aichat', 'message': message } def reveal_map(): return { 'type': 'reveal-map', 'enable': True } def walk(units, x, z, queued=False): ids = [ unit.id() for unit in units ] return { 'type': 'walk', 'entities': ids, 'x': x, 'z': z, 'queued': queued } def attack(units, target, queued=False, allow_capture=True): unit_ids = [ unit.id() for unit in units ] return { 'type': 'attack', 'entities': unit_ids, 'target': target.id(), 'allowCapture': allow_capture, 'queued': queued }