Exemple #1
0
 /**
  * Wykonaj atak
  * @param \Game\Creature $attacker
  * @param \Game\Creature $defender
  */
 private function makeAttack(Creature $attacker, Creature $defender)
 {
     CLI::write("{$attacker} atakuje cel: {$defender}");
     // Wylicz skutecznosc ataku
     $sk = round(\max(\min(50 + ($attacker->getDexterity() - $defender->getDexterity()) / $defender->getDexterity() * 100, 90), 10));
     CLI::write("Oszacowana skutecznosc ataku: {$sk}%");
     if (\rand(1, 100) <= $sk) {
         $defender->setVitality($defender->getVitality() - 1);
         CLI::write("Atak celny {$attacker} zadaje celny cios w {$defender}");
         CLI::write("Aktualna witalnosc przeciwnika: {$defender->getVitality()}");
     } else {
         CLI::write("Pudlo, {$attacker} nie trafia w {$defender}");
     }
 }
Exemple #2
0
 /**
  * Wykonaj atak
  * @param \Game\Creature $attacker
  * @param \Game\Creature $defender
  */
 private function makeAttack(Creature $attacker, Creature $defender)
 {
     // Wylicz skutecznosc ataku
     $sk = round(\max(\min(50 + ($attacker->getDexterity() - $defender->getDexterity()) / $defender->getDexterity() * 100, 90), 10));
     CLI::write("{$attacker} atakuje cel: {$defender}, ze skutecznoscia ataku: {$sk}%");
     // Losuj atak
     if (\rand(1, 100) <= $sk) {
         // Odejmij staty witalnosci
         $defender->setVitality(max($defender->getVitality() - $attacker->getStrength(), 0));
         // Pokaz informacje wyniku ataku
         CLI::write("Atak celny {$attacker} zadaje celny cios w {$defender} za {$attacker->getStrength()} punktow sily");
         CLI::write("Aktualna witalnosc przeciwnika: {$defender->getVitality()}");
     } else {
         CLI::write("Pudlo, {$attacker} nie trafia w {$defender}");
     }
 }