File Coverage

lib/BalanceOfPower/Commands/RebelMilitarySupport.pm
Criterion Covered Total %
statement 18 24 75.0
branch 1 6 16.6
condition n/a
subroutine 3 3 100.0
pod 0 2 0.0
total 22 35 62.8


line stmt bran cond sub pod time code
1             package BalanceOfPower::Commands::RebelMilitarySupport;
2             $BalanceOfPower::Commands::RebelMilitarySupport::VERSION = '0.400110';
3 13     13   43 use Moo;
  13         16  
  13         46  
4              
5             extends 'BalanceOfPower::Commands::TargetNation';
6              
7             sub get_available_targets
8             {
9 4     4 0 5 my $self = shift;
10 4         7 my $player = $self->actor;
11 4         4 my @ns = grep { $self->world->at_civil_war($_) } @{$self->world->nation_names};
  20         28  
  4         12  
12 4         6 my @out = ();
13 4         6 for(@ns)
14             {
15 0         0 my $rebsup = $self->world->rebel_supported($_);
16 0 0       0 if($rebsup)
17             {
18 0 0       0 if($rebsup->node1 eq $player)
19             {
20 0         0 push @out, $_;
21             }
22             }
23             else
24             {
25 0         0 push @out, $_;
26             }
27             }
28 4         6 return @out;
29             }
30              
31             sub IA
32             {
33 2     2 0 4 my $self = shift;
34 2         6 my $player = $self->actor;
35 2         12 my @enemies = $self->world->get_hates($self->actor);
36 2         44 @enemies = $self->world->shuffle("Choosing enemy for rebel support for " . $self->actor, @enemies);
37 2         7 foreach my $e (@enemies)
38             {
39 4         13 my $target = $e->destination($self->actor);
40 4 50       27 if($self->good_target($target))
41             {
42 0           return "REBEL MILITARY SUPPORT " . $e->destination($self->actor);
43             }
44             }
45             }
46              
47             1;