Health/Afflictions/SpecificAfflictions/Cold.php
<?php declare(strict_types=1);
namespace DrdPlus\Health\Afflictions\SpecificAfflictions;
use DrdPlus\Codes\Properties\PropertyCode;
use DrdPlus\Health\Afflictions\AfflictionByWound;
use DrdPlus\Health\Afflictions\AfflictionDangerousness;
use DrdPlus\Health\Afflictions\AfflictionDomain;
use DrdPlus\Health\Afflictions\AfflictionName;
use DrdPlus\Health\Afflictions\AfflictionProperty;
use DrdPlus\Health\Afflictions\AfflictionSize;
use DrdPlus\Health\Afflictions\AfflictionSource;
use DrdPlus\Health\Afflictions\AfflictionVirulence;
use DrdPlus\Health\Afflictions\Effects\ColdEffect;
use DrdPlus\Health\Afflictions\ElementalPertinence\WaterPertinence;
use DrdPlus\Health\SeriousWound;
/**
* See PPH page 78, left column
*
* @method ColdEffect getAfflictionEffect(): int
*/
class Cold extends AfflictionByWound
{
public const COLD = 'cold';
/**
* @param SeriousWound $seriousWound
* @return Cold
* @throws \DrdPlus\Health\Afflictions\Exceptions\WoundHasToBeFreshForAffliction
*/
public static function createIt(SeriousWound $seriousWound): Cold
{
return new static(
$seriousWound,
AfflictionProperty::getIt(PropertyCode::TOUGHNESS),
AfflictionDangerousness::getIt(7),
AfflictionDomain::getPhysicalDomain(),
AfflictionVirulence::getDayVirulence(),
AfflictionSource::getActiveSource(),
AfflictionSize::getIt(4),
WaterPertinence::getPlus(),
ColdEffect::getIt(),
new \DateInterval('P1D'),
AfflictionName::getIt(self::COLD)
);
}
public function getHealMalus(): int
{
return 0;
}
public function getMalusToActivities(): int
{
return 0;
}
public function getStrengthMalus(): int
{
return $this->getAfflictionEffect()->getStrengthMalus($this);
}
public function getAgilityMalus(): int
{
return $this->getAfflictionEffect()->getAgilityMalus($this);
}
public function getKnackMalus(): int
{
return $this->getAfflictionEffect()->getKnackMalus($this);
}
}