File Coverage

lib/BalanceOfPower/Commands/ComTreaty.pm
Criterion Covered Total %
statement 12 26 46.1
branch 0 2 0.0
condition 0 3 0.0
subroutine 3 4 75.0
pod 0 2 0.0
total 15 37 40.5


line stmt bran cond sub pod time code
1             package BalanceOfPower::Commands::ComTreaty;
2             $BalanceOfPower::Commands::ComTreaty::VERSION = '0.400115';
3 13     13   53 use Moo;
  13         18  
  13         69  
4              
5 13     13   3085 use BalanceOfPower::Utils qw( prev_turn );
  13         21  
  13         4050  
6              
7             extends 'BalanceOfPower::Commands::TargetRoute';
8             with 'BalanceOfPower::Commands::Role::TreatiesUnderLimit';
9              
10             sub get_available_targets
11             {
12 0     0 0 0 my $self = shift;
13 0         0 my @targets = $self->SUPER::get_available_targets();
14 0         0 my $nation = $self->actor;
15 0         0 @targets = grep {! $self->world->exists_treaty($nation, $_) } @targets;
  0         0  
16 0         0 @targets = grep {! $self->world->diplomacy_status($nation, $_) ne 'HATE' } @targets;
  0         0  
17 0         0 return $self->nations_under_treaty_limit(@targets);
18             }
19              
20             sub IA
21             {
22 4     4 0 6 my $self = shift;
23 4         11 my $actor = $self->get_nation();
24 4         25 my $prev_year = prev_turn($actor->current_year);
25 4         21 my @trade_ok = $actor->get_events("TRADE OK", $prev_year);
26 4         9 for(@trade_ok)
27             {
28 0         0 my $route = $_;
29 0         0 $route =~ s/^TRADE OK //;
30 0         0 $route =~ s/ \[.*$//;
31 0         0 my $status = $self->world->diplomacy_status($actor->name, $route);
32 0 0 0     0 if(! $self->world->exists_treaty($actor->name, $route) && $status ne 'HATE')
33             {
34 0         0 return "TREATY COM WITH " . $route;
35             }
36             }
37 4         8 return undef;
38             }
39              
40             1;