public class BattleGui extends Screen {
private AtomicInteger timeRemaining;
+
+ private int timerMax;
private boolean turnTimerEnabled;
private long lastInstant;
private long elapsedTime;
public BattleGui() {
super(new TextComponent("Battle Gui"));
timeRemaining = new AtomicInteger((int) (Config.BATTLE_DECISION_DURATION_NANO_DEFAULT / 1000000000L));
+ timerMax = timeRemaining.get();
lastInstant = System.nanoTime();
elapsedTime = 0;
state = MenuState.MAIN_MENU;
if (TurnBasedMinecraftMod.proxy.getLocalBattle() != null) {
TurnBasedMinecraftMod.proxy.getLocalBattle().setState(Battle.State.DECISION);
}
- timeRemaining.set(TurnBasedMinecraftMod.proxy.getConfig().getDecisionDurationSeconds());
+ timeRemaining.set(timerMax);
elapsedTime = 0;
lastInstant = System.nanoTime();
setState(MenuState.MAIN_MENU);
public void setTurnTimerEnabled(boolean enabled) {
turnTimerEnabled = enabled;
}
+
+ public void setTurnTimerMax(int timerMax) {
+ this.timerMax = timerMax;
+ }
}
if (!isServer) {
return;
}
- PacketBattleInfo infoPacket = new PacketBattleInfo(getSideAIDs(), getSideBIDs(), timer, !TurnBasedMinecraftMod.proxy.getConfig().isBattleDecisionDurationForever());
+ PacketBattleInfo infoPacket = new PacketBattleInfo(getSideAIDs(), getSideBIDs(), timer, TurnBasedMinecraftMod.proxy.getConfig().getDecisionDurationNanos(), !TurnBasedMinecraftMod.proxy.getConfig().isBattleDecisionDurationForever());
for (Combatant p : players.values()) {
TurnBasedMinecraftMod.getHandler().send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) p.entity), infoPacket);
}
private Collection<Integer> sideA;
private Collection<Integer> sideB;
private long decisionNanos;
+
+ private long maxDecisionNanos;
private boolean turnTimerEnabled;
public PacketBattleInfo()
sideA = new ArrayList<Integer>();
sideB = new ArrayList<Integer>();
decisionNanos = TurnBasedMinecraftMod.proxy.getConfig().getDecisionDurationNanos();
+ maxDecisionNanos = decisionNanos;
turnTimerEnabled = false;
}
- public PacketBattleInfo(Collection<Integer> sideA, Collection<Integer> sideB, long decisionNanos, boolean turnTimerEnabled)
+ public PacketBattleInfo(Collection<Integer> sideA, Collection<Integer> sideB, long decisionNanos, long maxDecisionNanos, boolean turnTimerEnabled)
{
this.sideA = sideA;
this.sideB = sideB;
this.decisionNanos = decisionNanos;
+ this.maxDecisionNanos = maxDecisionNanos;
this.turnTimerEnabled = turnTimerEnabled;
}
buf.writeInt(id);
}
buf.writeLong(msg.decisionNanos);
+ buf.writeLong(msg.maxDecisionNanos);
buf.writeBoolean(msg.turnTimerEnabled);
}
sideB.add(buf.readInt());
}
long decisionNanos = buf.readLong();
+ long maxDecisionNanos = buf.readLong();
boolean turnTimerEnabled = buf.readBoolean();
- return new PacketBattleInfo(sideA, sideB, decisionNanos, turnTimerEnabled);
+ return new PacketBattleInfo(sideA, sideB, decisionNanos, maxDecisionNanos, turnTimerEnabled);
}
public static void handle(final PacketBattleInfo pkt, Supplier<NetworkEvent.Context> ctx) {
TurnBasedMinecraftMod.proxy.setBattleGuiTime((int)(pkt.decisionNanos / 1000000000L));
TurnBasedMinecraftMod.proxy.setBattleGuiBattleChanged();
TurnBasedMinecraftMod.proxy.setBattleGuiTurnTimerEnabled(pkt.turnTimerEnabled);
+ TurnBasedMinecraftMod.proxy.setBattleGuiTurnTimerMax((int)(pkt.maxDecisionNanos / 1000000000L));
});
ctx.get().setPacketHandled(true);
}
if(b == null) {
return;
}
- TurnBasedMinecraftMod.getHandler().reply(new PacketBattleInfo(b.getSideAIDs(), b.getSideBIDs(), b.getTimerNanos(), !TurnBasedMinecraftMod.proxy.getConfig().isBattleDecisionDurationForever()), ctx.get());
+ TurnBasedMinecraftMod.getHandler().reply(new PacketBattleInfo(b.getSideAIDs(), b.getSideBIDs(), b.getTimerNanos(), TurnBasedMinecraftMod.proxy.getConfig().getDecisionDurationNanos(), !TurnBasedMinecraftMod.proxy.getConfig().isBattleDecisionDurationForever()), ctx.get());
});
ctx.get().setPacketHandled(true);
}