Skip to content

Commit 11ddd0b

Browse files
committed
Fix events not working properly
1 parent ed850c5 commit 11ddd0b

File tree

4 files changed

+24
-14
lines changed

4 files changed

+24
-14
lines changed

src/sergittos/bedwars/game/event/presets/UpgradeGeneratorsTierEvent.php

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,20 @@ public function end(): void {
3939
}
4040

4141
public function getNextEvent(): ?Event {
42-
$type = match($this->type) {
42+
$next_type = match($this->type) {
4343
GeneratorType::DIAMOND => GeneratorType::EMERALD,
4444
GeneratorType::EMERALD => GeneratorType::DIAMOND
4545
};
46+
$next_tier = match($this->tier) {
47+
Tier::I => Tier::II,
48+
Tier::II => Tier::III,
49+
Tier::III => null
50+
};
4651

47-
if($type === GeneratorType::DIAMOND) {
48-
$this->tier = match($this->tier) {
49-
Tier::I => Tier::II,
50-
Tier::II => Tier::III
51-
};
52-
} elseif($this->tier === Tier::III) {
52+
if($next_tier === null) {
5353
return new BedDestructionEvent();
5454
}
55-
56-
return new UpgradeGeneratorsTierEvent($type, $this->tier);
55+
return new UpgradeGeneratorsTierEvent($next_type, $next_tier);
5756
}
5857

5958
}

src/sergittos/bedwars/game/generator/Generator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ private function dropItem(World $world): void {
8585
}
8686

8787
public function reset(): void {
88-
$this->setTier(Tier::I);
88+
$this->tier = Tier::I;
8989
$this->setSpeed($this->getInitialSpeed());
9090
}
9191

src/sergittos/bedwars/game/stage/PlayingStage.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,19 @@
2323

2424
class PlayingStage extends Stage {
2525

26-
private Event $next_event;
26+
private ?Event $next_event = null;
2727

2828
public function getNextEvent(): Event {
2929
return $this->next_event;
3030
}
3131

3232
public function hasStarted(): bool {
33-
return isset($this->next_event);
33+
return $this->next_event !== null;
3434
}
3535

3636
private function startNextEvent(?Event $event = null): void {
3737
$this->next_event = $event ?? $this->next_event->getNextEvent();
38-
$this->next_event->start($this->game);
38+
$this->next_event?->start($this->game);
3939
}
4040

4141
protected function onStart(): void {

src/sergittos/bedwars/game/team/Team.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
use pocketmine\world\Position;
1717
use sergittos\bedwars\game\Game;
1818
use sergittos\bedwars\game\generator\Generator;
19+
use sergittos\bedwars\game\generator\GeneratorType;
1920
use sergittos\bedwars\game\team\upgrade\trap\AlarmTrap;
20-
use sergittos\bedwars\game\team\upgrade\trap\DefaultTrap;
2121
use sergittos\bedwars\game\team\upgrade\trap\Trap;
2222
use sergittos\bedwars\session\Session;
2323
use sergittos\bedwars\utils\ColorUtils;
@@ -158,6 +158,15 @@ public function addGenerator(Generator $generator): void {
158158
$this->generators[] = $generator;
159159
}
160160

161+
private function removeEmeraldGenerator(): void {
162+
foreach($this->generators as $index => $generator) {
163+
if($generator->getType() === GeneratorType::TEAM_EMERALD) {
164+
unset($this->generators[$index]);
165+
break;
166+
}
167+
}
168+
}
169+
161170
public function addMember(Session $session): void {
162171
$this->members[] = $session;
163172

@@ -204,6 +213,8 @@ public function reset(): void {
204213
$this->bed_destroyed = false;
205214
$this->upgrades = new Upgrades();
206215

216+
$this->removeEmeraldGenerator();
217+
207218
foreach($this->generators as $generator) {
208219
$generator->reset();
209220
}

0 commit comments

Comments
 (0)