mirror of
https://github.com/Melledy/Nebula.git
synced 2025-12-13 12:54:36 +01:00
83 lines
1.9 KiB
Java
83 lines
1.9 KiB
Java
package emu.nebula.game.infinitytower;
|
|
|
|
import dev.morphia.annotations.Id;
|
|
import emu.nebula.data.GameData;
|
|
import emu.nebula.game.player.Player;
|
|
import emu.nebula.game.player.PlayerChangeInfo;
|
|
import emu.nebula.game.player.PlayerManager;
|
|
|
|
import lombok.Getter;
|
|
|
|
@Getter
|
|
public class InfinityTowerManager extends PlayerManager {
|
|
@Id
|
|
private int uid;
|
|
|
|
private transient int levelId;
|
|
private transient long buildId;
|
|
|
|
@Deprecated // Morphia only
|
|
public InfinityTowerManager() {
|
|
|
|
}
|
|
|
|
public InfinityTowerManager(Player player) {
|
|
super(player);
|
|
this.uid = player.getUid();
|
|
|
|
//this.save();
|
|
}
|
|
|
|
public int getBountyLevel() {
|
|
return 1;
|
|
}
|
|
|
|
public boolean apply(int levelId, long buildId) {
|
|
// Verify level data
|
|
var data = GameData.getInfinityTowerLevelDataTable().get(levelId);
|
|
if (data == null) {
|
|
return false;
|
|
}
|
|
|
|
// Set level id
|
|
this.levelId = levelId;
|
|
|
|
// Set build id
|
|
if (buildId >= 0) {
|
|
this.buildId = buildId;
|
|
}
|
|
|
|
// Success
|
|
return true;
|
|
}
|
|
|
|
public PlayerChangeInfo settle(int value) {
|
|
// Verify level data
|
|
var data = GameData.getInfinityTowerLevelDataTable().get(this.getLevelId());
|
|
if (data == null) {
|
|
return null;
|
|
}
|
|
|
|
// Init change info
|
|
var change = new PlayerChangeInfo();
|
|
|
|
// TODO
|
|
if (value != 1) {
|
|
return change;
|
|
}
|
|
|
|
// Calculate rewards
|
|
var rewards = data.generateRewards();
|
|
|
|
// Add items
|
|
this.getPlayer().getInventory().addItems(rewards, change);
|
|
|
|
// Set in change info
|
|
change.setExtraData(rewards);
|
|
|
|
// Success
|
|
return change.setSuccess(true);
|
|
}
|
|
|
|
}
|