jaroslavtyc/drd-plus-properties-by-levels

View on GitHub
DrdPlus/PropertiesByLevels/NextLevelsProperties.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php declare(strict_types=1);

namespace DrdPlus\PropertiesByLevels;

use DrdPlus\Person\ProfessionLevels\ProfessionLevels;
use DrdPlus\BaseProperties\Agility;
use DrdPlus\BaseProperties\Charisma;
use DrdPlus\BaseProperties\Intelligence;
use DrdPlus\BaseProperties\Knack;
use DrdPlus\BaseProperties\Strength;
use DrdPlus\BaseProperties\Will;
use Granam\Strict\Object\StrictObject;

class NextLevelsProperties extends StrictObject
{
    /** @var Strength */
    private $nextLevelsStrength;
    /** @var Agility */
    private $nextLevelsAgility;
    /** @var Knack */
    private $nextLevelsKnack;
    /** @var Will */
    private $nextLevelsWill;
    /** @var Intelligence */
    private $nextLevelsIntelligence;
    /** @var Charisma */
    private $nextLevelsCharisma;

    /**
     * @param ProfessionLevels $professionLevels
     */
    public function __construct(ProfessionLevels $professionLevels)
    {
        $this->nextLevelsStrength = Strength::getIt($professionLevels->getNextLevelsStrengthModifier());
        $this->nextLevelsAgility = Agility::getIt($professionLevels->getNextLevelsAgilityModifier());
        $this->nextLevelsKnack = Knack::getIt($professionLevels->getNextLevelsKnackModifier());
        $this->nextLevelsWill = Will::getIt($professionLevels->getNextLevelsWillModifier());
        $this->nextLevelsIntelligence = Intelligence::getIt($professionLevels->getNextLevelsIntelligenceModifier());
        $this->nextLevelsCharisma = Charisma::getIt($professionLevels->getNextLevelsCharismaModifier());
    }

    /**
     * @return Strength
     */
    public function getNextLevelsStrength()
    {
        return $this->nextLevelsStrength;
    }

    /**
     * @return Agility
     */
    public function getNextLevelsAgility()
    {
        return $this->nextLevelsAgility;
    }

    /**
     * @return Knack
     */
    public function getNextLevelsKnack()
    {
        return $this->nextLevelsKnack;
    }

    /**
     * @return Will
     */
    public function getNextLevelsWill()
    {
        return $this->nextLevelsWill;
    }

    /**
     * @return Intelligence
     */
    public function getNextLevelsIntelligence()
    {
        return $this->nextLevelsIntelligence;
    }

    /**
     * @return Charisma
     */
    public function getNextLevelsCharisma()
    {
        return $this->nextLevelsCharisma;
    }
}