File Coverage

lib/BalanceOfPower/Commands/ComTreaty.pm
Criterion Covered Total %
statement 18 26 69.2
branch 2 2 100.0
condition 2 3 66.6
subroutine 3 4 75.0
pod 0 2 0.0
total 25 37 67.5


line stmt bran cond sub pod time code
1             package BalanceOfPower::Commands::ComTreaty;
2             $BalanceOfPower::Commands::ComTreaty::VERSION = '0.400105';
3 13     13   42 use Moo;
  13         16  
  13         53  
4              
5 13     13   2279 use BalanceOfPower::Utils qw( prev_turn );
  13         19  
  13         3106  
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 10     10 0 13 my $self = shift;
23 10         17 my $actor = $self->get_nation();
24 10         31 my $prev_year = prev_turn($actor->current_year);
25 10         29 my @trade_ok = $actor->get_events("TRADE OK", $prev_year);
26 10         15 for(@trade_ok)
27             {
28 5         6 my $route = $_;
29 5         15 $route =~ s/^TRADE OK //;
30 5         16 $route =~ s/ \[.*$//;
31 5         20 my $status = $self->world->diplomacy_status($actor->name, $route);
32 5 100 66     18 if(! $self->world->exists_treaty($actor->name, $route) && $status ne 'HATE')
33             {
34 2         7 return "TREATY COM WITH " . $route;
35             }
36             }
37 8         16 return undef;
38             }
39              
40             1;