Passed
Push — dev ( b2109c...60db09 )
by Janko
10:33
created

PirateBehaviourEnum::getProbability()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 12
nc 1
nop 0
dl 0
loc 14
ccs 0
cts 13
cp 0
crap 2
rs 9.8666
c 0
b 0
f 0
1
<?php
2
3
namespace Stu\Lib\Pirate;
4
5
enum PirateBehaviourEnum: int
6
{
7
        // passive
8
    case DO_NOTHING = 0;
9
    case FLY = 1;
10
    case HIDE = 2;
11
    case SEARCH_FRIEND = 3;
12
13
        // aggressive
14
    case RUB_COLONY = 4;
15
    case ATTACK_SHIP = 5;
16
    case RAGE = 6;
17
    case CALL_FOR_SUPPORT = 7;
18
    case ASSAULT_PHALANX = 8;
19
20
        // auxiliary
21
    case GO_ALERT_RED = 9;
22
    case DEACTIVATE_SHIELDS = 10;
23
24
    public function getProbability(): int
25
    {
26
        return match ($this) {
27
            self::FLY => 40,
28
            self::DO_NOTHING => 30,
29
            self::HIDE => 20,
30
            self::RUB_COLONY => 5,
31
            self::ATTACK_SHIP => 5,
32
            self::RAGE => 2,
33
            self::CALL_FOR_SUPPORT => 1,
34
            self::ASSAULT_PHALANX => 1,
35
            self::GO_ALERT_RED => 0,
36
            self::SEARCH_FRIEND => 0,
37
            self::DEACTIVATE_SHIELDS => 0
38
        };
39
    }
40
41
    /** @return array<int, int> */
42
    public static function getBehaviourProbabilities(): array
43
    {
44
        return array_map(fn(PirateBehaviourEnum $behaviour): int => $behaviour->getProbability(), self::cases());
45
    }
46
}
47