diff options
author | Jesse Luehrs <doy@tozt.net> | 2009-06-02 18:52:25 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2009-06-02 18:54:01 -0500 |
commit | 880dfe8177549891a31f1632821f6fdefbd69c4f (patch) | |
tree | a3585657d18a1370ef33ddf51b0f7186d59d44d0 /lib/Bot/Games/Game/Role/CurrentPlayer.pm | |
parent | 7d059870682438390ed816330259a8e23550bfcb (diff) | |
download | bot-games-880dfe8177549891a31f1632821f6fdefbd69c4f.tar.gz bot-games-880dfe8177549891a31f1632821f6fdefbd69c4f.zip |
move maybe_add_player to the currentplayer role
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; |