Save Monolith and Menace Arena progress to the database

This commit is contained in:
Melledy
2025-11-11 04:42:41 -08:00
parent d9bd61c50d
commit b106541f44
6 changed files with 121 additions and 29 deletions
@@ -1,6 +1,7 @@
package emu.nebula.game.infinitytower;
import emu.nebula.data.GameData;
import emu.nebula.data.resources.InfinityTowerLevelDef;
import emu.nebula.game.player.Player;
import emu.nebula.game.player.PlayerChangeInfo;
import emu.nebula.game.player.PlayerManager;
@@ -9,7 +10,9 @@ import lombok.Getter;
@Getter
public class InfinityTowerManager extends PlayerManager {
private InfinityTowerLevelDef levelData;
private int levelId;
private long buildId;
public InfinityTowerManager(Player player) {
@@ -28,6 +31,7 @@ public class InfinityTowerManager extends PlayerManager {
}
// Set level id
this.levelData = data;
this.levelId = levelId;
// Set build id
@@ -41,21 +45,21 @@ public class InfinityTowerManager extends PlayerManager {
public PlayerChangeInfo settle(int value) {
// Verify level data
var data = GameData.getInfinityTowerLevelDataTable().get(this.getLevelId());
if (data == null) {
if (this.getLevelData() == null) {
return null;
}
// Init change info
var change = new PlayerChangeInfo();
// TODO
// Check if the player has won or not TODO
if (value != 1) {
// Player lost, so we return nothing
return change;
}
// Calculate rewards
var rewards = data.generateRewards();
var rewards = this.getLevelData().generateRewards();
// Add items
this.getPlayer().getInventory().addItems(rewards, change);
@@ -63,6 +67,9 @@ public class InfinityTowerManager extends PlayerManager {
// Set in change info
change.setExtraData(rewards);
// Log in player progress
this.getPlayer().getProgress().addInfinityArenaLog(this.getLevelId());
// Success
return change.setSuccess(true);
}