Fix tower defense first clear rewards

This commit is contained in:
Melledy
2026-02-13 02:02:26 -08:00
parent 57b17f2d25
commit 300a838e06
@@ -22,17 +22,20 @@ public class HandlerActivityTowerDefenseLevelSettleReq extends NetHandler {
return session.encodeMsg(NetMsgId.activity_tower_defense_level_settle_failed_ack); return session.encodeMsg(NetMsgId.activity_tower_defense_level_settle_failed_ack);
} }
// Claim rewards // Only receive rewards if we havent completed the stage
var change = activity.claimReward(req.getLevelId()); if (!activity.getCompletedStages().containsKey(req.getLevelId())) {
// Claim rewards
var change = activity.claimReward(req.getLevelId());
// Update completed stages // Update completed stages and save activity to the database
activity.getCompletedStages().put(req.getLevelId(), req.getStar()); activity.getCompletedStages().put(req.getLevelId(), req.getStar());
activity.save();
// Save changes // Encode and send
session.getPlayer().save(); return session.encodeMsg(NetMsgId.activity_tower_defense_level_settle_succeed_ack, change.toProto());
} else {
// Encode and send return session.encodeMsg(NetMsgId.activity_tower_defense_level_settle_succeed_ack);
return session.encodeMsg(NetMsgId.activity_tower_defense_level_settle_succeed_ack, change.toProto()); }
} }
} }