From 160eb45f8db6dcae567ca152dc84b807289c1a73 Mon Sep 17 00:00:00 2001 From: Mathieu Strypsteen Date: Mon, 23 Sep 2024 09:25:19 +0200 Subject: [PATCH] Add lives limit for final event --- .../java/gent/zeus/mc13dtl/events/EventRunner.java | 2 +- .../gent/zeus/mc13dtl/events/catalog/EndEvent.java | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/gent/zeus/mc13dtl/events/EventRunner.java b/src/main/java/gent/zeus/mc13dtl/events/EventRunner.java index e427c86..3ac99ca 100644 --- a/src/main/java/gent/zeus/mc13dtl/events/EventRunner.java +++ b/src/main/java/gent/zeus/mc13dtl/events/EventRunner.java @@ -55,7 +55,7 @@ public class EventRunner implements Runnable { case 9 -> new KillMobs2Event(team, difficulty, dayScore); case 10 -> new RunToSpawnEvent(team, difficulty, dayScore); case 11 -> new LightningEvent(team, difficulty, dayScore); - case 12 -> new EndEvent(team, difficulty, dayScore); // TODO: Move to last day + case 12 -> new EndEvent(team, difficulty, dayScore); default -> throw new IllegalStateException("Unexpected day: " + (int) day); }; event.start(); diff --git a/src/main/java/gent/zeus/mc13dtl/events/catalog/EndEvent.java b/src/main/java/gent/zeus/mc13dtl/events/catalog/EndEvent.java index 33e4170..600ee85 100644 --- a/src/main/java/gent/zeus/mc13dtl/events/catalog/EndEvent.java +++ b/src/main/java/gent/zeus/mc13dtl/events/catalog/EndEvent.java @@ -19,6 +19,7 @@ import gent.zeus.mc13dtl.events.Event; public class EndEvent extends Event { private PotionEffectType[] effects; + private int livesLeft = 5; public EndEvent(Team team, Difficulty difficulty, int scoreOnSuccess) { super(team, difficulty, scoreOnSuccess); @@ -60,8 +61,11 @@ public class EndEvent extends Event { @EventHandler public void onEntityDeath(EntityDeathEvent event) { if (event.getEntityType() == EntityType.ENDER_DRAGON) { - if (!MC13DTL.board.getPlayers(team).isEmpty()) { + if (!MC13DTL.board.getPlayers(team).isEmpty() && livesLeft > 0) { eventSuccess(); + } else { + eventFailed(); + } } } @@ -69,6 +73,10 @@ public class EndEvent extends Event { @Override @EventHandler public void onPlayerDeath(PlayerDeathEvent event) { + if (!MC13DTL.board.getPlayers(team).contains(event.getPlayer())) { + return; + } + livesLeft--; } @Override