line |
true |
false |
branch |
60
|
0 |
1 |
unless @_ <= 2 |
|
0 |
1 |
unless @_ >= 1 |
|
0 |
1 |
@_ >= 2 ? : |
90
|
0 |
240 |
unless @_ <= 2 |
|
0 |
240 |
unless @_ >= 2 |
99
|
0 |
240 |
if (not $code && $value or ref $value ne 'HASH' or not $sender) { } |
|
0 |
240 |
elsif (exists $value->{'player'} and $sender ne 'A' and $value->{'player'} ne $sender) { } |
|
1 |
239 |
elsif (not exists $events{$code}) { } |
132
|
231 |
187 |
if ($first) { } |
158
|
8 |
231 |
if $@ |
164
|
0 |
30 |
unless @_ <= 2 |
|
0 |
30 |
unless @_ >= 2 |
169
|
0 |
30 |
unless $player_number and $location |
172
|
0 |
30 |
unless $self->is_players_turn($player_number) |
175
|
0 |
30 |
unless $self->phase =~ /^(?:Deployment|Play)$/u |
181
|
0 |
8 |
if $self->phase eq 'Deployment' and $self->round == 2 and scalar @{$self->player->settlements;} == 1 |
183
|
0 |
30 |
if $self->player->has_built_road and $self->phase eq 'Deployment' |
188
|
0 |
2 |
unless $self->phase eq 'Deployment' or $self->player->has_rolled_dice or defined $self->{'road_building'} and $self->{'road_building'}->can_build_road |
190
|
0 |
30 |
if $self->robber->active |
193
|
0 |
30 |
unless my $path = $self->map->find_path($location) |
198
|
0 |
120 |
if grep $path->is_colliding($_->location), @{$player->roads;} |
202
|
12 |
18 |
$self->phase eq 'Deployment' || defined $self->{'road_building'} && $self->{'road_building'}->can_build_road ? : |
211
|
0 |
43 |
unless @_ <= 1 |
|
0 |
43 |
unless @_ >= 1 |
230
|
104 |
68 |
if ($have_tested_leading_road) { } |
|
2 |
77 |
elsif (@players == 1 and $road_length >= 5 and not $player->longest_road) { } |
232
|
1 |
103 |
if $player->longest_road |
243
|
0 |
43 |
if (my $game_over = $self->game_over) |
250
|
0 |
46 |
unless @_ <= 1 |
|
0 |
46 |
unless @_ >= 1 |
252
|
1 |
45 |
if (my $player = $self->player_victory_check) |
258
|
0 |
15 |
unless @_ <= 2 |
|
0 |
15 |
unless @_ >= 2 |
263
|
0 |
15 |
unless $self->phase =~ /^(?:Deployment|Play)$/u |
266
|
0 |
15 |
unless $player_number and $location |
269
|
1 |
14 |
unless $self->is_players_turn($player_number) |
272
|
0 |
14 |
unless $self->phase eq 'Deployment' or $self->player->has_rolled_dice |
275
|
1 |
13 |
if $self->player->has_built_settlement and $self->phase eq 'Deployment' |
278
|
0 |
13 |
if $self->robber->active |
281
|
0 |
13 |
unless my $intersection = $self->map->find_intersection($location) |
287
|
0 |
52 |
unless 0 == grep(($intersection->is_colliding($_->location) || $intersection->is_adjacent($_->location)), @{$player->properties;}) |
290
|
8 |
5 |
$self->phase eq 'Deployment' ? : |
296
|
4 |
9 |
if ($self->phase eq 'Deployment' and $self->round == 2) |
304
|
0 |
6 |
unless @_ <= 2 |
|
0 |
6 |
unless @_ >= 2 |
309
|
0 |
6 |
unless $self->phase =~ /^(?:Deployment|Play)$/u |
312
|
0 |
6 |
unless $player_number and $location |
315
|
0 |
6 |
unless $self->is_players_turn($player_number) |
318
|
0 |
6 |
unless $self->player->has_rolled_dice |
321
|
0 |
6 |
if $self->robber->active |
324
|
0 |
6 |
unless my $intersection = $self->map->find_intersection($location) |
330
|
0 |
8 |
unless @_ <= 2 |
|
0 |
8 |
unless @_ >= 2 |
335
|
0 |
8 |
unless $self->phase =~ /^(?:Deployment|Play)$/u |
338
|
0 |
8 |
unless $player_number |
341
|
0 |
8 |
unless $self->player->number == $player_number |
344
|
0 |
8 |
unless $self->player->has_rolled_dice |
347
|
0 |
8 |
if $self->robber->active |
354
|
0 |
8 |
unless @_ <= 2 |
|
0 |
8 |
unless @_ >= 2 |
359
|
0 |
8 |
unless $player_number and $type |
362
|
0 |
8 |
unless $self->phase eq 'Play' |
365
|
0 |
8 |
unless $self->is_players_turn($player_number) |
368
|
0 |
8 |
if $self->player->has_played_dc |
371
|
0 |
8 |
if $self->robber->active |
379
|
3 |
4 |
if ($card->type eq 'KN') { } |
|
1 |
3 |
elsif ($card->type eq 'YP') { } |
|
1 |
2 |
elsif ($card->type eq 'MO') { } |
|
2 |
0 |
elsif ($card->type eq 'RB') { } |
425
|
9 |
3 |
if ($have_tested_leaders) { } |
|
1 |
4 |
elsif (@players == 1 and $knights_played >= 3 and not $player->largest_army) { } |
427
|
0 |
9 |
if $player->largest_army |
439
|
1 |
2 |
if (my $game_over = $self->game_over) |
446
|
0 |
1 |
unless @_ <= 2 |
|
0 |
1 |
unless @_ >= 2 |
451
|
0 |
1 |
unless $player_number and $code |
454
|
0 |
1 |
unless $self->is_players_turn($player_number) |
458
|
0 |
1 |
unless defined $self->{'monopoly'} |
460
|
0 |
1 |
if $self->robber->active |
469
|
0 |
1 |
unless @_ <= 2 |
|
0 |
1 |
unless @_ >= 2 |
474
|
0 |
1 |
unless $player_number and $resources and ref $resources eq 'HASH' |
477
|
0 |
1 |
unless $self->is_players_turn($player_number) |
481
|
0 |
1 |
unless defined $self->{'year_of_plenty'} |
492
|
0 |
4 |
unless @_ <= 2 |
|
0 |
4 |
unless @_ >= 1 |
|
1 |
3 |
@_ >= 2 ? : |
494
|
0 |
4 |
if $self->{'phase_index'} == $#phases |
505
|
1 |
3 |
if ($new_phase eq 'Deployment') { } |
|
1 |
2 |
elsif ($new_phase eq 'Play') { } |
516
|
0 |
0 |
unless @_ <= 2 |
|
0 |
0 |
unless @_ >= 2 |
525
|
0 |
0 |
unless $player and $resources and ref $resources eq 'HASH' and 1 == keys %$resources and exists $resources->{$player_number} |
528
|
0 |
0 |
unless &all(sub {
$_ < 0;
}
, values %{$$resources{$player_number};}) |
531
|
0 |
0 |
unless $self->phase eq 'Play' and 1 == grep(($player_number == $_->{'player'}->number), @{$self->robber->check_players_to_concede;}) |
546
|
0 |
0 |
if $msg |
551
|
0 |
9 |
unless @_ <= 2 |
|
0 |
9 |
unless @_ >= 2 |
557
|
0 |
9 |
unless $player_number eq 'A' || grep(($player_number eq $_->number), @{$self->players;}) and $msg |
562
|
0 |
1 |
unless @_ <= 2 |
|
0 |
1 |
unless @_ >= 1 |
|
0 |
1 |
@_ >= 2 ? : |
568
|
0 |
8 |
unless @_ <= 2 |
|
0 |
8 |
unless @_ >= 1 |
|
8 |
0 |
@_ >= 2 ? : |
572
|
5 |
3 |
$args->{'from_7'} ? : |
580
|
0 |
8 |
if $msg |
584
|
0 |
7 |
unless @_ <= 2 |
|
0 |
7 |
unless @_ >= 1 |
|
0 |
7 |
@_ >= 2 ? : |
591
|
0 |
6 |
unless @_ <= 2 |
|
0 |
6 |
unless @_ >= 2 |
597
|
0 |
6 |
unless $player and $target_player |
600
|
0 |
6 |
unless $self->is_players_turn($player->number) |
614
|
0 |
7 |
unless @_ <= 2 |
|
0 |
7 |
unless @_ >= 2 |
619
|
0 |
7 |
unless $player_number and $location |
622
|
0 |
7 |
unless $player_number == $self->player->number |
632
|
2 |
5 |
unless $self->robber->can_steal |
636
|
0 |
3 |
unless @_ <= 2 |
|
0 |
3 |
unless @_ >= 1 |
|
1 |
2 |
@_ >= 2 ? : |
639
|
1 |
2 |
if ($self->phase eq 'Setup') { } |
|
1 |
1 |
elsif ($self->phase eq 'Deployment') { } |
|
1 |
0 |
elsif ($self->phase eq 'Play') { } |
641
|
0 |
1 |
unless defined $self->map |
645
|
0 |
1 |
unless @{$self->players;} >= 3 |
650
|
0 |
1 |
unless $self->round == 2 and $self->player->number eq '1' |
655
|
0 |
1 |
unless defined $self->player_victory_check |
662
|
0 |
17 |
unless @_ <= 2 |
|
0 |
17 |
unless @_ >= 1 |
|
0 |
17 |
@_ >= 2 ? : |
667
|
0 |
16 |
unless @_ <= 2 |
|
0 |
16 |
unless @_ >= 1 |
|
0 |
16 |
@_ >= 2 ? : |
672
|
1 |
15 |
if ($self->phase eq 'Deployment' and $self->round == 2) |
679
|
0 |
65 |
unless @_ <= 2 |
|
0 |
65 |
unless @_ >= 1 |
|
0 |
65 |
@_ >= 2 ? : |
681
|
0 |
65 |
if $self->phase eq 'Setup' |
683
|
2 |
63 |
if ($self->turn == 0) { } |
|
1 |
62 |
elsif ($self->phase eq 'Deployment' and $self->turn == @{$self->players;} and @{$self->player->settlements;} == 1) { } |
|
3 |
59 |
elsif ($self->phase eq 'Deployment' and @{$self->player->settlements;} == 2) { } |
|
14 |
45 |
elsif ($self->phase eq 'Play' and $self->{'turn_index'} + 1 == @{$self->players;}) { } |
718
|
0 |
66 |
unless @_ <= 2 |
|
0 |
66 |
unless @_ >= 1 |
|
66 |
0 |
@_ >= 2 ? : |
722
|
0 |
66 |
unless $self->is_players_turn($player_number) |
725
|
1 |
65 |
unless $self->phase eq 'Deployment' or $self->player->has_rolled_dice |
728
|
1 |
64 |
if $self->phase eq 'Deployment' and not $self->player->has_built_road && $self->player->has_built_settlement |
734
|
0 |
64 |
if ($self->robber->active) |
736
|
0 |
0 |
if $self->robber->can_steal |
752
|
16 |
48 |
if ($self->turn == @{$self->players;} and $self->phase eq 'Play' or $self->phase eq 'Deployment' and @{$self->player->properties;} == 2 and $self->turn == 1 or $self->phase eq 'Deployment' and @{$self->player->properties;} == 1 and $self->turn == @{$self->players;}) { } |
771
|
0 |
47 |
unless @_ <= 2 |
|
0 |
47 |
unless @_ >= 1 |
|
0 |
47 |
@_ >= 2 ? : |
776
|
2 |
45 |
if $players_by_vps[0]->victory_points_count >= 10 |
779
|
0 |
5 |
unless @_ <= 2 |
|
0 |
5 |
unless @_ >= 1 |
|
5 |
0 |
@_ >= 2 ? : |
781
|
0 |
5 |
unless $self->phase eq 'Setup' |
783
|
1 |
4 |
unless $self->{'max_players'} > @{$self->players;} |
791
|
0 |
56 |
unless @_ <= 2 |
|
0 |
56 |
unless @_ >= 2 |
795
|
0 |
56 |
unless $self->is_players_turn($player_number) |
798
|
0 |
56 |
if $self->player->has_rolled_dice |
805
|
5 |
51 |
if ($dice_roll == 7) { } |
816
|
0 |
51 |
unless @_ <= 2 |
|
0 |
51 |
unless @_ >= 2 |
824
|
9 |
76 |
if $self->robber->location->uuid eq $tile->uuid |
830
|
120 |
692 |
if ($property->location->is_adjacent($tile)) |
833
|
94 |
26 |
$property->isa('Settlers::Asset::Settlement') ? : |
834
|
0 |
120 |
unless my $resource = $tile->yields($amount) |
842
|
77 |
127 |
if (exists $resources{$player->number}) |
857
|
0 |
4 |
unless @_ <= 2 |
|
0 |
4 |
unless @_ >= 2 |
866
|
0 |
12 |
unless $resource |
875
|
0 |
10 |
unless @_ <= 2 |
|
0 |
10 |
unless @_ >= 2 |
881
|
0 |
10 |
unless $self->phase eq 'Play' |
884
|
0 |
10 |
unless grep(($self->player->number == $_), keys %$details) |
887
|
0 |
10 |
unless grep(($offering_player == $_), keys %$details) |
890
|
0 |
10 |
unless $self->player->has_rolled_dice |
893
|
0 |
10 |
if exists $self->trades->{$uuid} |
905
|
0 |
5 |
unless @_ <= 2 |
|
0 |
5 |
unless @_ >= 2 |
910
|
0 |
5 |
unless grep(($self->player->number == $_), keys %$details) and $player_number == $self->player->number |
919
|
0 |
10 |
unless @_ <= 2 |
|
0 |
10 |
unless @_ >= 2 |
924
|
0 |
64 |
unless @_ <= 1 |
|
0 |
64 |
unless @_ >= 1 |
931
|
0 |
9 |
unless @_ <= 2 |
|
0 |
9 |
unless @_ >= 2 |
940
|
0 |
9 |
unless $player_number and $uuid and exists $self->trades->{$uuid} and $self->trades->{$uuid}{'player'} != $player_number and $self->trades->{$uuid}{'trade'}->resources($player_number) |
951
|
0 |
1 |
unless @_ <= 2 |
|
0 |
1 |
unless @_ >= 2 |
960
|
0 |
1 |
unless $player_number and $uuid and exists $self->trades->{$uuid} and $self->trades->{$uuid}{'player'} == $player_number and $self->trades->{$uuid}{'trade'}->resources($player_number) |
966
|
0 |
3 |
unless @_ <= 2 |
|
0 |
3 |
unless @_ >= 2 |
968
|
0 |
3 |
unless $self->phase eq 'Setup' |
984
|
0 |
12 |
unless @_ <= 2 |
|
0 |
12 |
unless @_ >= 2 |
986
|
0 |
12 |
unless $number |
988
|
0 |
12 |
unless @player |
992
|
0 |
189 |
unless @_ <= 2 |
|
0 |
189 |
unless @_ >= 2 |
994
|
0 |
189 |
unless $number |
1001
|
0 |
240 |
unless $msgs and ref $msgs eq 'ARRAY' |