public function takeDamage($result) { if ($result->getDamage() > 0 && $this->transfers > 0) { $this->transfers--; $this->getSim()->debug("[{$this->getName()}] transfered {$result->getDamage()}"); return $result; } return parent::takeDamage($result); }
private function attack(\Warrior $warrior1, \Warrior $warrior2) { $damage = $warrior1->generateDamage(); $finalDamage = $warrior2->takeDamage($damage); $missPart = ''; if (isset($finalDamage[1])) { switch ($finalDamage[1]) { case Warrior::NO_DAMAGE_MISS: $missPart = ' because enemy dodge'; break; case Warrior::NO_DAMAGE_BETTER_ARRMOR: $missPart = ' because enemy have bigger armor then your strength'; break; } } $this->addToFightLog($warrior1->name . ' attacking to ' . $warrior2->name . ' give damage ' . $damage . ' ' . $warrior2->name . ' take damage ' . $finalDamage[0] . $missPart . "<br>"); }