diff options
Diffstat (limited to 'lib/Bot/Games/Game/Role/CurrentPlayer.pm')
-rw-r--r-- | lib/Bot/Games/Game/Role/CurrentPlayer.pm | 12 |
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; |