diff options
Diffstat (limited to 'diplomacy/engine/game.py')
-rw-r--r-- | diplomacy/engine/game.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/diplomacy/engine/game.py b/diplomacy/engine/game.py index 52ade4f..542bb27 100644 --- a/diplomacy/engine/game.py +++ b/diplomacy/engine/game.py @@ -475,9 +475,23 @@ class Game(Jsonable): return self.powers.keys() def get_dummy_power_names(self): - """ Return sequence of dummy power objects. """ + """ Return sequence of dummy power names. """ return set(power_name for power_name in self.get_map_power_names() if self.is_dummy(power_name)) + def get_dummy_unordered_power_names(self): + """ Return a sequence of playable dummy power names + without orders but still orderable and with orderable locations. + """ + return [power_name for power_name in self.get_map_power_names() if + # power must not be controlled by a user + self.is_dummy(power_name) + # power must be still playable + and not self.get_power(power_name).is_eliminated() + # power must not have yet orders + and not self.get_orders(power_name) + # power must have orderable locations + and self.get_orderable_locations(power_name)] + def get_controllers(self): """ Return a dictionary mapping each power name to its current controller name.""" return {power.name: power.get_controller() for power in self.powers.values()} |