The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Games::Pandemic::Player - pandemic game player

VERSION

version 1.120510

SYNOPSIS

    use Games::Pandemic::Player;
    my $role = 'Games::Pandemic::Role::Medic';
    my $player = Games::Pandemic::Player->new_with_traits(traits=>[$role]);

DESCRIPTION

This is a class implementing a player.

Among other things, a player has a role. In fact, it is consuming one of the Games::Pandemic::Role::* roles, which is applied as a trait during object construction.

Therefore, to create a player, use the new_with_traits() method (as is done in the synopsis section).

METHODS

my $color = $player->color;

Return the $color (html notation) to be used for this player.

my $role = $player->role;

Return the (localized) name of $player's role.

my $bool = $player->auto_clean_on_cure;

Return true if the $player applies automatically a cure by just being in the city.

my $bool = $player->can_build_anywhere;

Return true if the $player can build a research station in a city even if she doesn't have the city card.

my $bool = $player->can_join_others;

Return true if the $player can move till a city where there's another player.

my $bool = $player->can_move_others;

Return true if the $player can move the other's pawns during her turn.

my $bool = $player->can_share_anywhere;

Return true if the $player can give a card to another player even if it isn't the card of the city in which they are.

my $nb = $player->cards_needed;

Return the number of cards of the same color that the $player needs to find a cure for a disease.

my $bool = $player->treat_all;

Return true if the $player treats all the disease cubes in a city in one go, even if the cure for the disease has not been discovered yet.

my $max = $player->max_cards;

Return the maximum number of cards that a player can have in her hands.

my $path = $player->image( $what, $size );

Return the C$<path> to an image for the player role. $what can be either icon or pawn. $size can be one of orig, or 32 or 16. Note that not all combinations are possible.

my @cards = $player->all_cards;

Return the list of cards owned by $player. The list is sorted by type of card, then by disease and by name.

my $card = $player->owns_city_card( $city );

Return the $card representing $city if the $player owns it, undef otherwise.

$player->gain_card( $card )

$player gains a new $card.

my $bool = $player->is_move_possible;

Return true if $player can move, starting from her current location. Always true. Included here for the sake of completeness.

my $bool = $player->is_flight_possible;

Return true if $player can fly (regular flight) starting from her current location. Flight is possible if the player has at least one city card, which is not the card representing the city in which the player is.

my $bool = $player->is_charter_possible;

my $bool = $player->is_shuttle_possible;

my $bool = $player->is_join_possible;

my $bool = $player->is_build_possible;

Return true if $player can build a research station in her current location. It is possible if she owns the card of the city, or if she is the operation expert. Of course it is impossible if there's already a station in the city.

my $disease = $player->is_discover_possible;

Return the $disease that $player can cure, that is, if she owns enough city cards of this disease and she is in a city with a research station. Return undef otherwise.

my $bool = $player->is_treat_possible;

Return true if $player can treat a disease. It is possible if her current location is infected by one (or more) disease.

my $bool = $player->is_share_possible;

Return true if $player can share a card in her current location. It is possible if she owns the card of the city, or if she is the researcher. Of course it is impossible if player's alone in the city.

my $bool = $player->is_pass_possible;

Return true if $player can pass. Always true. Included here for the sake of completeness.

my $bool = $player->is_drop_possible;

Return true if $player can drop a card. True if she has at least one card.

my $bool = $player->can_travel_to($city);

Return true if $player can travel to $city by proximity. This means that $player is in a location next to $city.

my $bool = $player->can_shuttle_to($city);

Return true if $player can shuttle through research station to $city. This means that both current player location and remote $city have a research station. Of course, return value is false if $player is currently located in <$city>.

my $bool = $player->can_join_to($city);

AUTHOR

Jerome Quelin

COPYRIGHT AND LICENSE

This software is Copyright (c) 2009 by Jerome Quelin.

This is free software, licensed under:

  The GNU General Public License, Version 2, June 1991