summaryrefslogtreecommitdiffstats
path: root/lib/Bot/Games/Game/Role/CurrentPlayer.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Bot/Games/Game/Role/CurrentPlayer.pm')
-rw-r--r--lib/Bot/Games/Game/Role/CurrentPlayer.pm12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/Bot/Games/Game/Role/CurrentPlayer.pm b/lib/Bot/Games/Game/Role/CurrentPlayer.pm
index 9fd8023..2dbe524 100644
--- a/lib/Bot/Games/Game/Role/CurrentPlayer.pm
+++ b/lib/Bot/Games/Game/Role/CurrentPlayer.pm
@@ -1,7 +1,7 @@
package Bot::Games::Game::Role::CurrentPlayer;
use Bot::Games::OO::Game::Role;
-requires 'players', 'num_players';
+requires 'players', 'num_players', 'add_player';
has current_player => (
is => 'rw',
@@ -30,6 +30,16 @@ sub current_player_index {
return 0;
}
+sub maybe_add_player {
+ my $self = shift;
+ my ($player) = @_;
+ if (!grep { $player eq $_ } $self->players) {
+ if ($self->add_player($player)) {
+ $self->current_player($player);
+ }
+ }
+}
+
no Bot::Games::OO::Game::Role;
1;