@@ -77,11 +77,11 @@ |
||
77 | 77 | */ |
78 | 78 | public function setCharacterPosition($id, int $row, int $column): void { |
79 | 79 | if(!$this->hasItems(["id" => $id])) { |
80 | - throw new \OutOfBoundsException("Character $id is not in the team"); |
|
80 | + throw new \OutOfBoundsException("character $id is not in the team"); |
|
81 | 81 | } elseif(count($this->getItems(["positionRow" => $row])) >= $this->maxRowSize) { |
82 | - throw new InvalidCharacterPositionException("Row $row is full.", InvalidCharacterPositionException::ROW_FULL); |
|
82 | + throw new InvalidCharacterPositionException("row $row is full.", InvalidCharacterPositionException::ROW_FULL); |
|
83 | 83 | } elseif($this->hasItems(["positionRow" => $row, "positionColumn" => $column])) { |
84 | - throw new InvalidCharacterPositionException("Row $row column $column is occupied.", InvalidCharacterPositionException::POSITION_OCCUPIED); |
|
84 | + throw new InvalidCharacterPositionException("row $row column $column is occupied.", InvalidCharacterPositionException::POSITION_OCCUPIED); |
|
85 | 85 | } |
86 | 86 | $character = $this->getItems(["id" => $id])[0]; |
87 | 87 | $character->positionRow = $row; |
@@ -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); |
@@ -54,9 +54,11 @@ |
||
54 | 54 | /** |
55 | 55 | * @throws NotImplementedException |
56 | 56 | */ |
57 | - public function do(CombatBase $combat, Character $character): void { |
|
57 | + public function do { |
|
58 | + (CombatBase $combat, Character $character): void { |
|
58 | 59 | /** @var CharacterAttackSkill $skill */ |
59 | 60 | $skill = $character->usableSkills[0]; |
61 | + } |
|
60 | 62 | $targets = []; |
61 | 63 | /** @var Character $primaryTarget */ |
62 | 64 | $primaryTarget = $combat->selectAttackTarget($character); |
@@ -74,7 +74,7 @@ |
||
74 | 74 | $targets = $combat->getTeam($primaryTarget)->getItems(["positionColumn" => $primaryTarget->positionColumn]); |
75 | 75 | break; |
76 | 76 | default: |
77 | - throw new NotImplementedException("Target {$skill->skill->target} for attack skills is not implemented."); |
|
77 | + throw new NotImplementedException("target {$skill->skill->target} for attack skills is not implemented."); |
|
78 | 78 | } |
79 | 79 | /** @var Character $target */ |
80 | 80 | foreach($targets as $target) { |
@@ -10,6 +10,8 @@ |
||
10 | 10 | public function getName(): string; |
11 | 11 | public function getPriority(): int; |
12 | 12 | public function shouldUse(CombatBase $combat, Character $character): bool; |
13 | - public function do(CombatBase $combat, Character $character): void; |
|
14 | -} |
|
13 | + public function do { |
|
14 | + (CombatBase $combat, Character $character): void; |
|
15 | + } |
|
16 | + } |
|
15 | 17 | ?> |
16 | 18 | \ No newline at end of file |
@@ -2,7 +2,7 @@ |
||
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) { |
|
5 | +Testbench\Bootstrap::setup(__DIR__ . '/_temp', function(\Nette\Configurator $configurator) { |
|
6 | 6 | $configurator->addParameters(["appDir" => __DIR__, ]); |
7 | 7 | $configurator->addConfig(__DIR__ . "/tests.neon"); |
8 | 8 | }); |
@@ -26,8 +26,10 @@ |
||
26 | 26 | return (in_array($character, $this->findHealers($combat)->toArray(), true) && $this->selectHealingTarget($character, $combat) !== null); |
27 | 27 | } |
28 | 28 | |
29 | - public function do(CombatBase $combat, Character $character): void { |
|
29 | + public function do { |
|
30 | + (CombatBase $combat, Character $character): void { |
|
30 | 31 | $result = []; |
32 | + } |
|
31 | 33 | /** @var Character $patient */ |
32 | 34 | $patient = $this->selectHealingTarget($character, $combat); |
33 | 35 | $result["result"] = $combat->successCalculator->hasHealed($character); |
@@ -30,8 +30,10 @@ |
||
30 | 30 | * Hit chance = Attacker's hit - Defender's dodge, but at least 15% |
31 | 31 | * Damage = Attacker's damage - defender's defense |
32 | 32 | */ |
33 | - public function do(CombatBase $combat, Character $character): void { |
|
33 | + public function do { |
|
34 | + (CombatBase $combat, Character $character): void { |
|
34 | 35 | $result = []; |
36 | + } |
|
35 | 37 | $defender = $combat->selectAttackTarget($character); |
36 | 38 | if($defender === null) { |
37 | 39 | return; |
@@ -32,7 +32,7 @@ |
||
32 | 32 | */ |
33 | 33 | protected function setTemplate(string $template): void { |
34 | 34 | if(!is_file($template)) { |
35 | - throw new \RuntimeException("File $template does not exist."); |
|
35 | + throw new \RuntimeException("file $template does not exist."); |
|
36 | 36 | } |
37 | 37 | $this->template = $template; |
38 | 38 | } |