Improve Boss Blitz UI

This commit is contained in:
Melledy
2025-12-07 16:02:44 -08:00
parent c6ac09f112
commit be5a6709fd
5 changed files with 64 additions and 11 deletions
@@ -2,6 +2,7 @@ package emu.nebula.server.handlers;
import emu.nebula.net.NetHandler;
import emu.nebula.net.NetMsgId;
import emu.nebula.proto.Public.ScoreBossLevel;
import emu.nebula.proto.ScoreBossInfoOuterClass.ScoreBossInfo;
import emu.nebula.net.HandlerId;
import emu.nebula.net.GameSession;
@@ -15,6 +16,33 @@ public class HandlerScoreBossInfoReq extends NetHandler {
var rsp = ScoreBossInfo.newInstance()
.setControlId(session.getPlayer().getScoreBossManager().getControlId());
// Get rank entry
var rankEntry = session.getPlayer().getScoreBossManager().getRankEntry();
if (rankEntry != null) {
// Set total score
rsp.setScore(rankEntry.getScore());
rsp.setStar(rankEntry.getStars());
// Encode team data to proto
for (var teamEntry : rankEntry.getTeams().entrySet()) {
int id = teamEntry.getKey();
var team = teamEntry.getValue();
var info = ScoreBossLevel.newInstance()
.setBuildId(team.getBuildId())
.setLevelId(id)
.setScore(team.getLevelScore())
.setSkillScore(team.getSkillScore())
.setStar(team.getStars());
for (var charEntry : team.getCharacters()) {
info.addCharIds(charEntry.getId());
}
rsp.addLevels(info);
}
}
// Encode and send
return session.encodeMsg(NetMsgId.score_boss_info_succeed_ack, rsp);
}
@@ -17,7 +17,7 @@ public class HandlerScoreBossRankReq extends NetHandler {
.setLastRefreshTime(Nebula.getCurrentTime());
// Get self
var self = session.getPlayer().getScoreBossManager().getRanking();
var self = session.getPlayer().getScoreBossManager().getRankEntry();
if (self != null) {
rsp.setSelf(self.toProto());
@@ -16,7 +16,7 @@ public class HandlerScoreBossSettleReq extends NetHandler {
var req = ScoreBossSettleReq.parseFrom(message);
// Settle
boolean success = session.getPlayer().getScoreBossManager().settle(req.getStar(), req.getScore());
boolean success = session.getPlayer().getScoreBossManager().settle(req.getStar(), req.getScore(), req.getSkillScore());
if (success == false) {
return session.encodeMsg(NetMsgId.score_boss_settle_failed_ack);