OpenAction   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 1
dl 0
loc 23
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A execute() 0 10 2
A getAlias() 0 4 1
A getArguments() 0 4 1
1
<?php
2
declare(strict_types=1);
3
namespace Thunder\Logeek\Action;
4
5
use Thunder\Logeek\ActionInterface;
6
use Thunder\Logeek\Board;
7
8
final class OpenAction implements ActionInterface
9
{
10
    public function execute(Board $board, string $alias, array $operation)
11
    {
12
        list($newX, $newY) = $board->getActorNextMove($alias);
13
        if('door' === $board->getField($newX, $newY)) {
14
            $board->setField($newX, $newY, 'ground');
15
            $board->debug('Door Open[%s:%s]', $newY, $newX);
16
            return;
17
        }
18
        $board->debug('Door Open[%s:%s] Failed', $newY, $newX);
19
    }
20
21
    public function getAlias(): string
22
    {
23
        return 'open';
24
    }
25
26
    public function getArguments(): array
27
    {
28
        return [];
29
    }
30
}
31