From 2937d656837689424fb72f663e3bd313e6bd342e Mon Sep 17 00:00:00 2001 From: Lixfel Date: Wed, 31 Mar 2021 21:58:21 +0200 Subject: [PATCH] Fix relative wincondition Signed-off-by: Lixfel --- .../WinconditionRelativePercent.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionRelativePercent.java b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionRelativePercent.java index ba8c35b..0b13184 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionRelativePercent.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/winconditions/WinconditionRelativePercent.java @@ -50,17 +50,7 @@ public class WinconditionRelativePercent extends Wincondition implements Printab super("RelativePercent", null); teamMap.put(Fight.getBlueTeam(), new TeamPercent(Fight.getBlueTeam())); teamMap.put(Fight.getRedTeam(), new TeamPercent(Fight.getRedTeam())); - new StateDependent(Winconditions.RELATIVE_PERCENT, FightState.Running){ - @Override - public void enable() { - teamMap.values().forEach(TeamPercent::enable); - } - @Override - public void disable() { - teamMap.values().forEach(TeamPercent::disable); - } - }.register(); if(Config.ActiveWinconditions.contains(Winconditions.RELATIVE_PERCENT)){ printableWinconditions.add(this); percentWincondition = this; @@ -77,7 +67,7 @@ public class WinconditionRelativePercent extends Wincondition implements Printab return team.getPrefix() + "Schaden: " + (Math.round(100.0 * getPercent(team)) / 100.0) + "%"; } - public static class TeamPercent { + public static class TeamPercent extends StateDependent { private final FightTeam team; private int blockCount; @@ -85,15 +75,19 @@ public class WinconditionRelativePercent extends Wincondition implements Printab private int currentBlocks; public TeamPercent(FightTeam team){ + super(Winconditions.RELATIVE_PERCENT, FightState.Running); this.team = team; this.currentBlocks = 1; + register(); } + @Override public void enable(){ blockCount = currentBlocks(); task = Bukkit.getScheduler().runTaskTimer(FightSystem.getPlugin(), this::check, 400, 400); } + @Override public void disable(){ task.cancel(); } @@ -122,7 +116,7 @@ public class WinconditionRelativePercent extends Wincondition implements Printab private int currentBlocks(){ // Entern active - if(!Config.EnterStages.isEmpty() && Config.EnterStages.get(0) >= Config.TimeoutTime - Wincondition.getTimeOverCountdown().getTimeLeft()) + if(!Config.EnterStages.isEmpty() && Config.EnterStages.get(0) >= Wincondition.getTimeOverCountdown().getTimeLeft()) return currentBlocks; currentBlocks = 0;