/** * @param $playerOne * @param $playerTwo * @return array */ public function run(Combatant $playerOne, Combatant $playerTwo) { $output = []; $playerOneHealth = $playerOne->getHealth(); if ($playerOne->isStunned()) { $output[] = $playerOne->getName() . " is stunned and misses attack turn"; return $output; } $output[] = $playerOne->getName() . " attacks"; $hit = $playerOne->attack($playerTwo); if ($hit) { $output[] = $playerOne->getName() . " does " . $hit . " damage"; if ($playerTwo->isStunned()) { $output[] = $playerTwo->getName() . " is stunned"; } } else { $output[] = $playerTwo->getName() . " dodged the attack"; if ($playerOne->getHealth() !== $playerOneHealth) { $lostHealth = $playerOneHealth - $playerOne->getHealth(); $output[] = $playerOne->getName() . " lost " . $lostHealth . " health during the attack"; } } return $output; }
/** * @param Combatant $player */ protected function outputPlayerStats(Combatant $player) { $class = str_pad($player->getClass(), 10); $health = str_pad($player->getHealth(), 7); $strength = str_pad($player->getStrength(), 9); $defense = str_pad($player->getDefense(), 8); $speed = str_pad($player->getSpeed(), 6); $luck = str_pad($player->getLuck(), 4); $this->info("{$class}| {$health}| {$strength}| {$defense}| {$speed}| {$luck}"); }