Handle a few rogue talents

This commit is contained in:
Melledy
2023-11-25 03:07:43 -08:00
parent fa1b1b28bb
commit f6c356db15
3 changed files with 32 additions and 14 deletions

View File

@@ -27,13 +27,9 @@ public class RogueBuffSelectMenu {
public RogueBuffSelectMenu(RogueInstance rogue) { public RogueBuffSelectMenu(RogueInstance rogue) {
this.rogue = rogue; this.rogue = rogue;
this.maxBuffs = 3; this.maxBuffs = 3;
this.maxRerolls = rogue.getBaseRerolls();
this.buffs = new ArrayList<>(); this.buffs = new ArrayList<>();
// Reset blessings talent
if (rogue.getPlayer().getRogueManager().hasTalent(11)) {
this.maxRerolls = 1;
}
this.generateRandomBuffs(); this.generateRandomBuffs();
} }

View File

@@ -50,6 +50,7 @@ public class RogueInstance {
private int pendingMiracleSelects; private int pendingMiracleSelects;
private RogueMiracleSelectMenu miracleSelect; private RogueMiracleSelectMenu miracleSelect;
private int baseRerolls;
private int aeonId; private int aeonId;
private int aeonBuffType; private int aeonBuffType;
private boolean isWin; private boolean isWin;
@@ -72,6 +73,7 @@ public class RogueInstance {
} }
this.initRooms(); this.initRooms();
this.initTalents();
} }
public RogueStatus getStatus() { public RogueStatus getStatus() {
@@ -93,6 +95,17 @@ public class RogueInstance {
} }
} }
private void initTalents() {
// Reset blessings
if (player.getRogueManager().hasTalent(11)) {
this.baseRerolls = 1;
}
// Extra blessings
if (player.getRogueManager().hasTalent(21)) {
this.pendingBuffSelects += 1;
}
}
private RogueRoomData getRoomBySiteId(int siteId) { private RogueRoomData getRoomBySiteId(int siteId) {
return this.rooms.get(siteId); return this.rooms.get(siteId);
} }

View File

@@ -99,10 +99,13 @@ public class RogueManager extends BasePlayerManager {
RogueInstance instance = new RogueInstance(getPlayer(), rogueAreaExcel, aeonExcel); RogueInstance instance = new RogueInstance(getPlayer(), rogueAreaExcel, aeonExcel);
getPlayer().setRogueInstance(instance); getPlayer().setRogueInstance(instance);
// Set starting SP
boolean extraSP = this.hasTalent(32);
// Reset hp/sp // Reset hp/sp
lineup.forEachAvatar(avatar -> { lineup.forEachAvatar(avatar -> {
avatar.setCurrentHp(lineup, 10000); avatar.setCurrentHp(lineup, 10000);
avatar.setCurrentSp(lineup, avatar.getMaxSp()); avatar.setCurrentSp(lineup, extraSP ? avatar.getMaxSp() : avatar.getMaxSp() / 2);
instance.getBaseAvatarIds().add(avatar.getAvatarId()); instance.getBaseAvatarIds().add(avatar.getAvatarId());
}); });
@@ -181,23 +184,29 @@ public class RogueManager extends BasePlayerManager {
var data = RogueInfoData.newInstance() var data = RogueInfoData.newInstance()
.setRogueScoreInfo(score) .setRogueScoreInfo(score)
.setRogueSeasonInfo(season); .setRogueSeasonInfo(season);
var aeonInfo = RogueAeonInfo.newInstance()
.setUnlockAeonNum(GameData.getRogueAeonExcelMap().size());
for (var aeonExcel : GameData.getRogueAeonExcelMap().values()) {
aeonInfo.addAeonIdList(aeonExcel.getAeonID());
}
var proto = RogueInfo.newInstance() var proto = RogueInfo.newInstance()
.setRogueScoreInfo(score) .setRogueScoreInfo(score)
.setRogueAeonInfo(aeonInfo)
.setRogueData(data) .setRogueData(data)
.setRogueVirtualItemInfo(getPlayer().toRogueVirtualItemsProto()) .setRogueVirtualItemInfo(getPlayer().toRogueVirtualItemsProto())
.setSeasonId(seasonId) .setSeasonId(seasonId)
.setBeginTime(beginTime) .setBeginTime(beginTime)
.setEndTime(endTime); .setEndTime(endTime);
// Path resonance
var aeonInfo = RogueAeonInfo.newInstance();
if (this.hasTalent(1)) {
aeonInfo = RogueAeonInfo.newInstance()
.setUnlockAeonNum(GameData.getRogueAeonExcelMap().size());
for (var aeonExcel : GameData.getRogueAeonExcelMap().values()) {
aeonInfo.addAeonIdList(aeonExcel.getAeonID());
}
proto.setRogueAeonInfo(aeonInfo);
}
// Rogue data // Rogue data
RogueInstance instance = this.getPlayer().getRogueInstance(); RogueInstance instance = this.getPlayer().getRogueInstance();
if (instance != null) { if (instance != null) {