Games-AIBots
view release on metacpan or search on metacpan
lib/Games/AIBots.pm view on Meta::CPAN
if ($bot->{'fuel'} >= $Cloak_fuel and bot_pay($bot, ammo => $Cloak_ammo)) {
$bot->{'fuel'} -= $Cloak_fuel;
}
else {
$bot->{'cloak'} = 0;
}
}
sub tick_check {
my (%alive, $hasfuel, $missiles);
return if !$Running;
foreach my $bot (@Bots) {
$alive{$bot->{'team'} || bot_id($bot)}++ unless $bot->{'dead'};
$hasfuel++ unless $bot->{'dead'} or $bot->{'fuel'} <= 0;
foreach my $missile (@{$bot->{'missiles'}}) {
$missiles++ unless $missile->{'dead'};
}
}
if (!$missiles and (scalar keys(%alive) <= 1) or !$hasfuel) {
# Game Over
display('end');
my %TScore;
foreach my $bot (@Bots) {
$bot->{'score'} += 50 * $bot->{'life'};
$bot->{'score'} -= $bot->{'burn'};
$bot->{'score'} += 500 / $alive{$bot->{'team'} || bot_id($bot)}
unless $bot->{'dead'} or (scalar keys(%alive) > 1);
$TScore{$bot->{'team'} || bot_id($bot)} += $bot->{'score'} || 0;
$bot->{'lastcmd'} = '**End**';
}
my @BScore = sort {$b->{'score'} <=> $a->{'score'}} @Bots;
my @TScore = sort {$TScore{$b} <=> $TScore{$a}} keys(%TScore);
if ($GUI) {
$Btn_stop->configure(-state => 'disabled');
$Btn_play->configure(-image => 'play');
( run in 0.981 second using v1.01-cache-2.11-cpan-39bf76dae61 )