Completed
Branch develop (defee6)
by Benjamin
06:13
created

Bb2020Rule::setPlayerDefaultValues()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 31
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 20
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 31
rs 9.6
1
<?php
2
3
namespace Obblm\Core\Service\Rule;
4
5
use Obblm\Core\Contracts\RuleHelperInterface;
6
use Obblm\Core\Entity\PlayerVersion;
7
use Obblm\Core\Form\Player\ActionBb2020Type;
8
use Obblm\Core\Helper\CoreTranslation;
9
use Obblm\Core\Helper\Rule\AbstractRuleHelper;
10
11
class Bb2020Rule extends AbstractRuleHelper implements RuleHelperInterface
12
{
13
    public function getActionsFormClass(): string
14
    {
15
        return ActionBb2020Type::class;
16
    }
17
18
    public function getKey(): string
19
    {
20
        return 'bb2020';
21
    }
22
23
    public function setPlayerDefaultValues(PlayerVersion $version): ?PlayerVersion
24
    {
25
        /**
26
         * -characteristics: []
27
         * -skills: []
28
         * -spp_level: null
29
         * -value: null
30
         */
31
        list($ruleKey, $roster, $type) = explode(CoreTranslation::TRANSLATION_GLUE, $version->getPlayer()->getType());
32
        $types = $this->getAvailablePlayerTypes($roster);
33
        $base = $types[$type];
34
        $characteristics = $base['characteristics'];
35
        $version->setCharacteristics([
36
            'ma' => $characteristics['ma'],
37
            'st' => $characteristics['st'],
38
            'pa' => $characteristics['pa'],
39
            'ag' => $characteristics['ag'],
40
            'av' => $characteristics['av']
41
        ])
42
            ->setActions([
43
                'td' => 0,
44
                'cas' => 0,
45
                'pas' => 0,
46
                'int' => 0,
47
                'mvp' => 0,
48
            ])
49
            ->setSkills(($base['skills'] ?? []))
50
            ->setValue($base['cost'])
51
            ->setSppLevel($this->getSppLevel($version));
0 ignored issues
show
Bug introduced by
It seems like $this->getSppLevel($version) can also be of type null; however, parameter $sppLevel of Obblm\Core\Entity\PlayerVersion::setSppLevel() does only seem to accept string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

51
            ->setSppLevel(/** @scrutinizer ignore-type */ $this->getSppLevel($version));
Loading history...
52
53
        return $version;
54
    }
55
}
56