public function __construct($Time, $Ability, $Actor, $DecreaseCooldown = false) { $this->Time = $Time; $this->Actor = $Actor; $this->Ability = $Ability; $Duration = AbilityItem::GetDuration($Ability); $Cooldown = AbilityItem::GetCooldown($Ability); $this->TimestampDone = $this->Time + AbilityItem::GetDuration($Ability); if ($DecreaseCooldown) { $Cooldown -= $Cooldown * AbilityItem::GetMultiplier(Enums\EAbility::Support_DecreaseCooldowns); } $this->TimestampCooldown = $this->Time + $Cooldown; }
private function GetActivePlayerAbilityMultipler($AbilityId) { # TODO: @Contex: Create an additional array that can cache the result? Instead of looping every single time... $Multiplier = 0; foreach ($this->ActivePlayerAbilities as $ActivePlayerAbility) { if ($ActivePlayerAbility->GetAbility() === $AbilityId) { $Multiplier += AbilityItem::GetMultiplier($ActivePlayerAbility->GetAbility()); } } return $Multiplier; }