Exemple #1
0
 /**
  * Ustaw statystyki dla wskazanej istoty
  * @param \Game\Creature $creature
  */
 private function setCustomStats(Creature $creature)
 {
     CLI::writeLine();
     CLI::write("Ustawianie statystyk dla: " . $creature);
     CLI::write(sprintf("Podaj sile (od 1 do 20) [domyslnie: %d]", $creature->getStrength()));
     $creature->setStrength(CLI::readInteger(1, 20, $creature->getStrength()));
     CLI::write(sprintf("Podaj zrecznosc (od 1 do 20) [domyslnie: %d]", $creature->getDexterity()));
     $creature->setDexterity(CLI::readInteger(1, 20, $creature->getDexterity()));
     CLI::write(sprintf("Podaj witalnosc (od 1 do 20) [domyslnie: %d]", $creature->getVitality()));
     $creature->setVitality(CLI::readInteger(1, 20, $creature->getVitality()));
     CLI::write(sprintf("Podaj szybkosc (od 1 do 20) [domyslnie: %d]", $creature->getSpeed()));
     $creature->setSpeed(CLI::readInteger(1, 20, $creature->getSpeed()));
 }
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}");
     }
 }