/** * @param Combatant $attacker * @return bool */ public function defend(Combatant $attacker) { $defended = parent::defend($attacker); // Counter attack if ($defended) { $health = $attacker->getHealth(); $attacker->setHealth($health - 10); } return $defended; }
/** * @param Combatant $defender * @return bool|mixed */ public function attack(Combatant $defender) { // Damage = Attacker strength – Defender Defense $damage = $this->getStrength() - $defender->getDefense(); if ($defender->defend($this)) { return false; } $health = $defender->getHealth(); $defender->setHealth($health - $damage); return $damage; }