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

TrumfieldMember::getUser()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nc 1
nop 0
dl 0
loc 4
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
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