@@ -74,7 +74,7 @@  | 
                                                    ||
| 74 | 74 | });  | 
                                                        
| 75 | 75 |      $resolver->setAllowedTypes("stat", ["string", "null"]); | 
                                                        
| 76 | 76 |      $resolver->setAllowedValues("stat", function(?string $value) { | 
                                                        
| 77 | - return is_null($value) OR in_array($value, $this->getAllowedStats(), true);  | 
                                                        |
| 77 | + return is_null($value) or in_array($value, $this->getAllowedStats(), true);  | 
                                                        |
| 78 | 78 | });  | 
                                                        
| 79 | 79 |      $resolver->setAllowedTypes("value", "integer"); | 
                                                        
| 80 | 80 |      $resolver->setAllowedValues("value", function(int $value) { | 
                                                        
@@ -27,7 +27,7 @@ discard block  | 
                                                    ||
| 27 | 27 | public const TARGET_PARTY = "party";  | 
                                                        
| 28 | 28 | public const TARGET_ENEMY_PARTY = "enemy_party";  | 
                                                        
| 29 | 29 | /** @var string[] */  | 
                                                        
| 30 | - public const NO_STAT_TYPES = [self::TYPE_STUN, self::TYPE_POISON, self::TYPE_HIDE,];  | 
                                                        |
| 30 | + public const NO_STAT_TYPES = [self::TYPE_STUN, self::TYPE_POISON, self::TYPE_HIDE, ];  | 
                                                        |
| 31 | 31 | |
| 32 | 32 | /** @var string */  | 
                                                        
| 33 | 33 | protected $type;  | 
                                                        
@@ -57,7 +57,7 @@ discard block  | 
                                                    ||
| 57 | 57 | |
| 58 | 58 |    protected function configureOptions(OptionsResolver $resolver): void { | 
                                                        
| 59 | 59 | parent::configureOptions($resolver);  | 
                                                        
| 60 | - $allStats = ["type", "stat", "value", "valueGrowth", "duration",];  | 
                                                        |
| 60 | + $allStats = ["type", "stat", "value", "valueGrowth", "duration", ];  | 
                                                        |
| 61 | 61 | $resolver->setRequired($allStats);  | 
                                                        
| 62 | 62 |      $resolver->setAllowedTypes("type", "string"); | 
                                                        
| 63 | 63 |      $resolver->setAllowedValues("type", function(string $value) { | 
                                                        
@@ -38,7 +38,7 @@  | 
                                                    ||
| 38 | 38 | }  | 
                                                        
| 39 | 39 | |
| 40 | 40 |    public function getHitRate(): int { | 
                                                        
| 41 | -    if(is_string($this->skill->hitRate) AND substr($this->skill->hitRate, -1) === "%") { | 
                                                        |
| 41 | +    if(is_string($this->skill->hitRate) and substr($this->skill->hitRate, -1) === "%") { | 
                                                        |
| 42 | 42 | return (int) $this->skill->hitRate;  | 
                                                        
| 43 | 43 | }  | 
                                                        
| 44 | 44 | return 100;  | 
                                                        
@@ -2,8 +2,8 @@  | 
                                                    ||
| 2 | 2 | declare(strict_types=1);  | 
                                                        
| 3 | 3 | |
| 4 | 4 | require __DIR__ . "/../vendor/autoload.php";  | 
                                                        
| 5 | -Testbench\Bootstrap::setup(__DIR__ . '/_temp', function (\Nette\Configurator $configurator) { | 
                                                        |
| 6 | - $configurator->addParameters(["appDir" => __DIR__,]);  | 
                                                        |
| 5 | +Testbench\Bootstrap::setup(__DIR__ . '/_temp', function(\Nette\Configurator $configurator) { | 
                                                        |
| 6 | + $configurator->addParameters(["appDir" => __DIR__, ]);  | 
                                                        |
| 7 | 7 | $configurator->addConfig(__DIR__ . "/tests.neon");  | 
                                                        
| 8 | 8 | });  | 
                                                        
| 9 | 9 | ?>  | 
                                                        
| 10 | 10 | \ No newline at end of file  | 
                                                        
@@ -48,7 +48,7 @@  | 
                                                    ||
| 48 | 48 | |
| 49 | 49 |    protected function configureOptions(OptionsResolver $resolver): void { | 
                                                        
| 50 | 50 | parent::configureOptions($resolver);  | 
                                                        
| 51 | - $allStats = ["baseDamage", "damageGrowth", "strikes", "hitRate",];  | 
                                                        |
| 51 | + $allStats = ["baseDamage", "damageGrowth", "strikes", "hitRate", ];  | 
                                                        |
| 52 | 52 | $resolver->setRequired($allStats);  | 
                                                        
| 53 | 53 |      $resolver->setAllowedTypes("baseDamage", "string"); | 
                                                        
| 54 | 54 |      $resolver->setAllowedTypes("damageGrowth", "string"); | 
                                                        
@@ -50,7 +50,7 @@ discard block  | 
                                                    ||
| 50 | 50 | * @return Character[]  | 
                                                        
| 51 | 51 | */  | 
                                                        
| 52 | 52 |    public function getAliveMembers(): array { | 
                                                        
| 53 | - return $this->getItems(["hitpoints>" => 0,]);  | 
                                                        |
| 53 | + return $this->getItems(["hitpoints>" => 0, ]);  | 
                                                        |
| 54 | 54 | }  | 
                                                        
| 55 | 55 | |
| 56 | 56 | /**  | 
                                                        
@@ -128,7 +128,7 @@ discard block  | 
                                                    ||
| 128 | 128 | return null;  | 
                                                        
| 129 | 129 | }  | 
                                                        
| 130 | 130 |      for($i = 1; $i <= PHP_INT_MAX; $i++) { | 
                                                        
| 131 | -      if($this->hasItems(["positionRow" => $i, "hitpoints>" => 0,])) { | 
                                                        |
| 131 | +      if($this->hasItems(["positionRow" => $i, "hitpoints>" => 0, ])) { | 
                                                        |
| 132 | 132 | return $i;  | 
                                                        
| 133 | 133 | }  | 
                                                        
| 134 | 134 | }  | 
                                                        
@@ -80,11 +80,11 @@ discard block  | 
                                                    ||
| 80 | 80 | */  | 
                                                        
| 81 | 81 |    public function setCharacterPosition($id, int $row, int $column): void { | 
                                                        
| 82 | 82 |      if(!$this->hasItems(["id" => $id])) { | 
                                                        
| 83 | -      throw new \OutOfBoundsException("Character $id is not in the team"); | 
                                                        |
| 83 | +      throw new \OutOfBoundsException("character $id is not in the team"); | 
                                                        |
| 84 | 84 |      } elseif(count($this->getItems(["positionRow" => $row])) >= $this->maxRowSize) { | 
                                                        
| 85 | -      throw new InvalidCharacterPositionException("Row $row is full.", InvalidCharacterPositionException::ROW_FULL); | 
                                                        |
| 85 | +      throw new InvalidCharacterPositionException("row $row is full.", InvalidCharacterPositionException::ROW_FULL); | 
                                                        |
| 86 | 86 |      } elseif($this->hasItems(["positionRow" => $row, "positionColumn" => $column])) { | 
                                                        
| 87 | -      throw new InvalidCharacterPositionException("Row $row column $column is occupied.", InvalidCharacterPositionException::POSITION_OCCUPIED); | 
                                                        |
| 87 | +      throw new InvalidCharacterPositionException("row $row column $column is occupied.", InvalidCharacterPositionException::POSITION_OCCUPIED); | 
                                                        |
| 88 | 88 | }  | 
                                                        
| 89 | 89 | $character = $this->getItems(["id" => $id])[0];  | 
                                                        
| 90 | 90 | $character->positionRow = $row;  | 
                                                        
@@ -112,7 +112,7 @@ discard block  | 
                                                    ||
| 112 | 112 | return null;  | 
                                                        
| 113 | 113 | }  | 
                                                        
| 114 | 114 |      foreach($this->aliveMembers as $index => $member) { | 
                                                        
| 115 | -      if($member->hitpoints <= $member->maxHitpoints * $threshold AND $member->hitpoints < $lowestHp) { | 
                                                        |
| 115 | +      if($member->hitpoints <= $member->maxHitpoints * $threshold and $member->hitpoints < $lowestHp) { | 
                                                        |
| 116 | 116 | $lowestHp = $member->hitpoints;  | 
                                                        
| 117 | 117 | $lowestIndex = $index;  | 
                                                        
| 118 | 118 | }  | 
                                                        
@@ -52,7 +52,7 @@  | 
                                                    ||
| 52 | 52 | }  | 
                                                        
| 53 | 53 | |
| 54 | 54 |    protected function configureOptions(OptionsResolver $resolver): void { | 
                                                        
| 55 | - $allStats = ["id", "name", "slot", "type", "strength", "worn",];  | 
                                                        |
| 55 | + $allStats = ["id", "name", "slot", "type", "strength", "worn", ];  | 
                                                        |
| 56 | 56 | $resolver->setRequired($allStats);  | 
                                                        
| 57 | 57 |      $resolver->setAllowedTypes("id", "integer"); | 
                                                        
| 58 | 58 |      $resolver->setAllowedTypes("name", "string"); | 
                                                        
@@ -37,7 +37,7 @@  | 
                                                    ||
| 37 | 37 | }  | 
                                                        
| 38 | 38 | |
| 39 | 39 |    protected function configureOptions(OptionsResolver $resolver): void { | 
                                                        
| 40 | - $allStats = ["id", "deployed", "bonusStat", "bonusValue",];  | 
                                                        |
| 40 | + $allStats = ["id", "deployed", "bonusStat", "bonusValue", ];  | 
                                                        |
| 41 | 41 | $resolver->setRequired($allStats);  | 
                                                        
| 42 | 42 |      $resolver->setAllowedTypes("id", "integer"); | 
                                                        
| 43 | 43 |      $resolver->setAllowedTypes("deployed", "boolean"); | 
                                                        
@@ -41,7 +41,7 @@  | 
                                                    ||
| 41 | 41 | protected $levels;  | 
                                                        
| 42 | 42 | |
| 43 | 43 |    protected function configureOptions(OptionsResolver $resolver): void { | 
                                                        
| 44 | - $resolver->setRequired(["id", "name", "target", "levels",]);  | 
                                                        |
| 44 | + $resolver->setRequired(["id", "name", "target", "levels", ]);  | 
                                                        |
| 45 | 45 |      $resolver->setAllowedTypes("id", "int"); | 
                                                        
| 46 | 46 |      $resolver->setAllowedTypes("name", "string"); | 
                                                        
| 47 | 47 |      $resolver->setAllowedTypes("target", "string"); | 
                                                        
@@ -52,9 +52,11 @@  | 
                                                    ||
| 52 | 52 | /**  | 
                                                        
| 53 | 53 | * @throws NotImplementedException  | 
                                                        
| 54 | 54 | */  | 
                                                        
| 55 | -  public function do(CombatBase $combat, Character $character): void { | 
                                                        |
| 55 | +  public function do { | 
                                                        |
| 56 | +    (CombatBase $combat, Character $character): void { | 
                                                        |
| 56 | 57 | /** @var CharacterSpecialSkill $skill */  | 
                                                        
| 57 | 58 | $skill = $character->usableSkills[0];  | 
                                                        
| 59 | + }  | 
                                                        |
| 58 | 60 | $targets = [];  | 
                                                        
| 59 | 61 |      switch($skill->skill->target) { | 
                                                        
| 60 | 62 | case Skill::TARGET_ENEMY:  | 
                                                        
@@ -37,7 +37,7 @@ discard block  | 
                                                    ||
| 37 | 37 | "character1" => $character1, "character2" => $target,  | 
                                                        
| 38 | 38 | ];  | 
                                                        
| 39 | 39 | $effect = new CharacterEffect([  | 
                                                        
| 40 | -      "id" => "skill{$skill->skill->id}Effect", | 
                                                        |
| 40 | +      "id" => "skill{$skill->skill->id}effect", | 
                                                        |
| 41 | 41 | "type" => $skill->skill->type,  | 
                                                        
| 42 | 42 | "stat" => ((in_array($skill->skill->type, Skill::NO_STAT_TYPES, true)) ? null : $skill->skill->stat),  | 
                                                        
| 43 | 43 | "value" => $skill->value,  | 
                                                        
@@ -70,7 +70,7 @@ discard block  | 
                                                    ||
| 70 | 70 | $targets = $combat->getEnemyTeam($character)->toArray();  | 
                                                        
| 71 | 71 | break;  | 
                                                        
| 72 | 72 | default:  | 
                                                        
| 73 | -        throw new NotImplementedException("Target {$skill->skill->target} for special skills is not implemented."); | 
                                                        |
| 73 | +        throw new NotImplementedException("target {$skill->skill->target} for special skills is not implemented."); | 
                                                        |
| 74 | 74 | }  | 
                                                        
| 75 | 75 |      foreach($targets as $target) { | 
                                                        
| 76 | 76 | $this->doSingleTarget($character, $target, $skill, $combat);  |