File tree Expand file tree Collapse file tree 4 files changed +24
-14
lines changed
src/sergittos/bedwars/game Expand file tree Collapse file tree 4 files changed +24
-14
lines changed Original file line number Diff line number Diff 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}
Original file line number Diff line number Diff 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
Original file line number Diff line number Diff line change 2323
2424class 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 {
Original file line number Diff line number Diff line change 1616use pocketmine \world \Position ;
1717use sergittos \bedwars \game \Game ;
1818use sergittos \bedwars \game \generator \Generator ;
19+ use sergittos \bedwars \game \generator \GeneratorType ;
1920use sergittos \bedwars \game \team \upgrade \trap \AlarmTrap ;
20- use sergittos \bedwars \game \team \upgrade \trap \DefaultTrap ;
2121use sergittos \bedwars \game \team \upgrade \trap \Trap ;
2222use sergittos \bedwars \session \Session ;
2323use 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 }
You can’t perform that action at this time.
0 commit comments