Seperate mp from LineupManager for extra lineups

This commit is contained in:
Melledy
2023-10-08 05:29:29 -07:00
parent b53e3ec966
commit 5f92195253
4 changed files with 43 additions and 5 deletions

View File

@@ -35,12 +35,16 @@ public class LineupManager {
this.validate(player);
}
public void addMp(int i) {
protected void addMp(int i) {
this.mp = Math.min(this.mp + i, GameConstants.MAX_MP);
this.getPlayer().sendPacket(new PacketSyncLineupNotify(player.getCurrentLineup()));
}
public void removeMp(int i) {
protected void setMp(int i) {
this.mp = i;
}
protected void removeMp(int i) {
this.mp = Math.max(this.mp - i, 0);
}

View File

@@ -16,6 +16,7 @@ public class PlayerLineup {
private transient Player owner;
private transient int index;
private transient int extraLineupType;
private transient int mp;
private String name;
private List<Integer> avatars;
@@ -61,6 +62,39 @@ public class PlayerLineup {
return getAvatars().size();
}
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);
}
}
public void setMp(int i) {
if (this.getExtraLineupType() > 0) {
this.mp = i;
} else {
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);
}
}
public int getMp() {
if (this.getExtraLineupType() > 0) {
return this.mp;
} else {
return this.getOwner().getLineupManager().getMp();
}
}
public void heal(int heal) {
// Flag to set if at least one avatar in the team has been healed
boolean hasHealed = false;
@@ -88,7 +122,7 @@ public class PlayerLineup {
.setIndex(index)
.setName(this.getName())
.setLeaderSlot(this.getOwner().getLineupManager().getCurrentLeader())
.setMp(this.getOwner().getLineupManager().getMp())
.setMp(this.getMp())
.setMaxMp(GameConstants.MAX_MP)
.setExtraLineupTypeValue(this.getExtraLineupType());

View File

@@ -51,7 +51,7 @@ public class EntityProp implements GameEntity {
@Override
public void onRemove() {
if (excel.isRecoverMp()) {
scene.getPlayer().getLineupManager().addMp(2);
scene.getPlayer().getCurrentLineup().addMp(2);
} else if (excel.isRecoverHp()) {
scene.getPlayer().getCurrentLineup().heal(2500);
}

View File

@@ -22,7 +22,7 @@ public class HandlerSceneCastSkillCsReq extends PacketHandler {
// Check if player casted a maze skill
if (req.getSkillIndex() > 0 && session.getPlayer().getScene().getAvatarEntityIds().contains(req.getAttackerId())) {
// Spend one skill point
session.getPlayer().getLineupManager().removeMp(1);
session.getPlayer().getCurrentLineup().removeMp(1);
session.send(new PacketSceneCastSkillMpUpdateScNotify(req.getAttackedGroupId(), session.getPlayer().getLineupManager().getMp()));
// Cast skill effects
GameAvatar caster = session.getPlayer().getLineupManager().getCurrentLeaderAvatar();