def neutral_player(self, **environment): """ Start war with neutral player -make a SurpriseAttack if possible. -break diplomacy otherwise. """ idle_ships = environment['idle_ships'] enemy_player = environment['player'] # Nothing to do when AI or enemy don't have a settlement yet if not enemy_player.settlements or not self.owner.settlements: return None # Send a surprise attack if there are ships available, otherwise simply declare war if idle_ships: target_point = self.unit_manager.get_warehouse_area( enemy_player.settlements[0]) return_point = self.unit_manager.get_warehouse_area( self.owner.settlements[0], 15) mission = SurpriseAttack.create( self.owner.strategy_manager.report_success, self.owner.strategy_manager.report_failure, idle_ships, target_point, return_point, enemy_player) return mission else: AddEnemyPair(self.owner, enemy_player).execute(self.session)
def player_shares_island(self, **environment): """ Response to player that shares an island with AI player. Regular AI should simply attack given player. """ enemy_player = environment['player'] idle_ships = environment['idle_ships'] if not enemy_player.settlements: return None target_point = self.unit_manager.get_warehouse_area(enemy_player.settlements[0], 13) return_point = idle_ships[0].position.copy() mission = SurpriseAttack.create(self.owner.strategy_manager.report_success, self.owner.strategy_manager.report_failure, idle_ships, target_point, return_point, enemy_player) return mission
def neutral_player(self, **environment): """ Start war with neutral player -make a SurpriseAttack if possible. -break diplomacy otherwise. """ idle_ships = environment['idle_ships'] enemy_player = environment['player'] # Nothing to do when AI or enemy don't have a settlement yet if not enemy_player.settlements or not self.owner.settlements: return None # Send a surprise attack if there are ships available, otherwise simply declare war if idle_ships: target_point = self.unit_manager.get_warehouse_area(enemy_player.settlements[0]) return_point = self.unit_manager.get_warehouse_area(self.owner.settlements[0], 15) mission = SurpriseAttack.create(self.owner.strategy_manager.report_success, self.owner.strategy_manager.report_failure, idle_ships, target_point, return_point, enemy_player) return mission else: AddEnemyPair(self.owner, enemy_player).execute(self.session)