From 0a72a6ea82288b850c8edba35f1ddf335aac0652 Mon Sep 17 00:00:00 2001 From: Melledy <121644117+Melledy@users.noreply.github.com> Date: Mon, 23 Oct 2023 06:28:09 -0700 Subject: [PATCH] Split `PlayerLineup` into normal and extra types --- .../lunarcore/game/player/LineupManager.java | 6 +-- .../game/player/PlayerExtraLineup.java | 53 +++++++++++++++++++ .../lunarcore/game/player/PlayerLineup.java | 36 ++++--------- 3 files changed, 66 insertions(+), 29 deletions(-) create mode 100644 src/main/java/emu/lunarcore/game/player/PlayerExtraLineup.java diff --git a/src/main/java/emu/lunarcore/game/player/LineupManager.java b/src/main/java/emu/lunarcore/game/player/LineupManager.java index 73be3d7..ceca821 100644 --- a/src/main/java/emu/lunarcore/game/player/LineupManager.java +++ b/src/main/java/emu/lunarcore/game/player/LineupManager.java @@ -22,7 +22,7 @@ public class LineupManager { // Extra lineups for challenges/simulated universe/etc private transient int currentExtraLineup; - private transient Int2ObjectMap extraLineups; + private transient Int2ObjectMap extraLineups; @Deprecated // Morphia only! public LineupManager() { @@ -95,7 +95,7 @@ public class LineupManager { * @return */ private PlayerLineup getExtraLineupByType(int extraLineupType) { - return getExtraLineups().computeIfAbsent(extraLineupType, type -> new PlayerLineup(getPlayer(), 0, type)); + return getExtraLineups().computeIfAbsent(extraLineupType, type -> new PlayerExtraLineup(getPlayer(), type)); } public PlayerLineup getCurrentLineup() { @@ -322,7 +322,7 @@ public class LineupManager { // Create new lineups for any missing ones for (int i = 0; i < this.lineups.length; i++) { if (this.lineups[i] == null) { - this.lineups[i] = new PlayerLineup(getPlayer(), i, 0); + this.lineups[i] = new PlayerLineup(getPlayer(), i); } else { this.lineups[i].setOwnerAndIndex(getPlayer(), i); } diff --git a/src/main/java/emu/lunarcore/game/player/PlayerExtraLineup.java b/src/main/java/emu/lunarcore/game/player/PlayerExtraLineup.java new file mode 100644 index 0000000..81e8571 --- /dev/null +++ b/src/main/java/emu/lunarcore/game/player/PlayerExtraLineup.java @@ -0,0 +1,53 @@ +package emu.lunarcore.game.player; + +import java.util.ArrayList; + +import emu.lunarcore.GameConstants; +import emu.lunarcore.server.packet.send.PacketSyncLineupNotify; +import lombok.Getter; + +public class PlayerExtraLineup extends PlayerLineup { + private int extraLineupType; + private int mp; + + @Deprecated // Morphia only! + public PlayerExtraLineup() { + + } + + public PlayerExtraLineup(Player player, int extraLineupType) { + super(player, 0); + this.extraLineupType = extraLineupType; + } + + @Override + public boolean isExtraLineup() { + return true; + } + + @Override + public int getExtraLineupType() { + return extraLineupType; + } + + @Override + public void addMp(int i) { + this.mp = Math.min(this.mp + i, GameConstants.MAX_MP); + this.getOwner().sendPacket(new PacketSyncLineupNotify(this.getOwner().getCurrentLineup())); + } + + @Override + public void setMp(int i) { + this.mp = i; + } + + @Override + public void removeMp(int i) { + this.mp = Math.max(this.mp - i, 0); + } + + @Override + public int getMp() { + return this.mp; + } +} diff --git a/src/main/java/emu/lunarcore/game/player/PlayerLineup.java b/src/main/java/emu/lunarcore/game/player/PlayerLineup.java index 6b624c7..3ed28bc 100644 --- a/src/main/java/emu/lunarcore/game/player/PlayerLineup.java +++ b/src/main/java/emu/lunarcore/game/player/PlayerLineup.java @@ -15,8 +15,6 @@ import lombok.Getter; public class PlayerLineup { private transient Player owner; private transient int index; - private transient int extraLineupType; - private transient int mp; private String name; private List avatars; @@ -26,10 +24,9 @@ public class PlayerLineup { } - public PlayerLineup(Player player, int index, int extraLineupType) { + public PlayerLineup(Player player, int index) { this.owner = player; this.index = index; - this.extraLineupType = extraLineupType; this.avatars = new ArrayList<>(GameConstants.MAX_AVATARS_IN_TEAM); // Set team name if not an extra lineup @@ -46,7 +43,11 @@ public class PlayerLineup { } public boolean isExtraLineup() { - return this.extraLineupType != 0; + return false; + } + + public int getExtraLineupType() { + return 0; } public void setName(String name) { @@ -62,36 +63,19 @@ public class PlayerLineup { } public void addMp(int i) { - if (this.getExtraLineupType() > 0) { - this.mp = Math.min(this.mp + i, GameConstants.MAX_MP); - this.getOwner().sendPacket(new PacketSyncLineupNotify(this.getOwner().getCurrentLineup())); - } else { - this.getOwner().getLineupManager().addMp(i); - } + this.getOwner().getLineupManager().addMp(i); } public void setMp(int i) { - if (this.getExtraLineupType() > 0) { - this.mp = i; - } else { - this.getOwner().getLineupManager().setMp(i); - } + this.getOwner().getLineupManager().setMp(i); } public void removeMp(int i) { - if (this.getExtraLineupType() > 0) { - this.mp = Math.max(this.mp - i, 0); - } else { - this.getOwner().getLineupManager().removeMp(i); - } + this.getOwner().getLineupManager().removeMp(i); } public int getMp() { - if (this.getExtraLineupType() > 0) { - return this.mp; - } else { - return this.getOwner().getLineupManager().getMp(); - } + return this.getOwner().getLineupManager().getMp(); } public void heal(int heal, boolean allowRevive) {