Passed
Push — master ( 2b008e...fee5d9 )
by Janko
11:16 queued 05:43
created

TrumfieldMember   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Test Coverage

Coverage 64.29%

Importance

Changes 2
Bugs 2 Features 0
Metric Value
eloc 15
c 2
b 2
f 0
dl 0
loc 44
ccs 9
cts 14
cp 0.6429
rs 10
wmc 8

6 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 1 1
A get() 0 4 1
A canAccess() 0 6 1
A canBeAccessedFrom() 0 14 3
A getLocation() 0 4 1
A getUser() 0 4 1
1
<?php
2
3
namespace Stu\Lib\Interaction\Member;
4
5
use Stu\Component\Anomaly\Type\AnomalyTypeEnum;
6
use Stu\Lib\Interaction\InteractionCheckType;
7
use Stu\Orm\Entity\Map;
8
use Stu\Orm\Entity\StarSystemMap;
9
use Stu\Orm\Entity\Trumfield;
10
use Stu\Orm\Entity\User;
11
12
class TrumfieldMember implements InteractionMemberInterface
13
{
14 1
    public function __construct(private Trumfield $trumfield) {}
15
16
    #[\Override]
17
    public function get(): Trumfield
18
    {
19
        return $this->trumfield;
20
    }
21
22
    #[\Override]
23
    public function canAccess(
24
        InteractionMemberInterface $other,
25
        callable $shouldCheck
26
    ): ?InteractionCheckType {
27
        return null;
28
    }
29
30 1
    #[\Override]
31
    public function canBeAccessedFrom(
32
        InteractionMemberInterface $other,
33
        callable $shouldCheck
34
    ): ?InteractionCheckType {
35
36
        if (
37 1
            $shouldCheck(InteractionCheckType::EXPECT_TARGET_DOCKED_OR_NO_ION_STORM)
38 1
            && $this->trumfield->getLocation()->hasAnomaly(AnomalyTypeEnum::ION_STORM)
39
        ) {
40
            return InteractionCheckType::EXPECT_TARGET_DOCKED_OR_NO_ION_STORM;
41
        }
42
43 1
        return null;
44
    }
45
46 1
    #[\Override]
47
    public function getLocation(): Map|StarSystemMap
48
    {
49 1
        return $this->trumfield->getLocation();
50
    }
51
52 1
    #[\Override]
53
    public function getUser(): ?User
54
    {
55 1
        return null;
56
    }
57
}
58