diff --git a/src/main/java/emu/nebula/game/activity/type/TowerDefenseActivity.java b/src/main/java/emu/nebula/game/activity/type/TowerDefenseActivity.java index ffd71a0..6d7f50e 100644 --- a/src/main/java/emu/nebula/game/activity/type/TowerDefenseActivity.java +++ b/src/main/java/emu/nebula/game/activity/type/TowerDefenseActivity.java @@ -1,26 +1,25 @@ package emu.nebula.game.activity.type; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; - import dev.morphia.annotations.Entity; + import emu.nebula.data.GameData; import emu.nebula.data.resources.ActivityDef; import emu.nebula.game.activity.ActivityManager; import emu.nebula.game.activity.GameActivity; -import emu.nebula.game.inventory.ItemParamMap; import emu.nebula.game.player.PlayerChangeInfo; import emu.nebula.proto.ActivityDetail.ActivityMsg; import emu.nebula.proto.Public.ActivityQuest; import emu.nebula.proto.Public.ActivityTowerDefenseLevel; + +import it.unimi.dsi.fastutil.ints.Int2IntMap; +import it.unimi.dsi.fastutil.ints.Int2IntOpenHashMap; import lombok.Getter; @Getter @Entity public class TowerDefenseActivity extends GameActivity { - private Map completedStages; - private Map completedQuests; + private Int2IntMap completedStages; + private Int2IntMap completedQuests; @Deprecated // Morphia only public TowerDefenseActivity() { @@ -29,19 +28,16 @@ public class TowerDefenseActivity extends GameActivity { public TowerDefenseActivity(ActivityManager manager, ActivityDef data) { super(manager, data); - this.completedStages = new HashMap(); - this.completedQuests = new HashMap(); + this.completedStages = new Int2IntOpenHashMap(); + this.completedQuests = new Int2IntOpenHashMap(); } public PlayerChangeInfo claimReward(int level) { - // Initialize change info - var change = new PlayerChangeInfo(); - // Get rewards var rewards = GameData.getTowerDefenseLevelDataTable().get(level).getRewards(); // Add rewards - return getPlayer().getInventory().addItems(rewards, change); + return getPlayer().getInventory().addItems(rewards); } // public PlayerChangeInfo claimReward(int groupId) { diff --git a/src/main/java/emu/nebula/game/player/PlayerModule.java b/src/main/java/emu/nebula/game/player/PlayerModule.java index d88c967..e5c1743 100644 --- a/src/main/java/emu/nebula/game/player/PlayerModule.java +++ b/src/main/java/emu/nebula/game/player/PlayerModule.java @@ -10,6 +10,8 @@ import emu.nebula.Nebula; import emu.nebula.game.GameContext; import emu.nebula.game.GameContextModule; import emu.nebula.game.account.Account; +import emu.nebula.game.achievement.AchievementManager; +import emu.nebula.game.activity.ActivityManager; import emu.nebula.game.agent.AgentManager; import emu.nebula.game.battlepass.BattlePass; import emu.nebula.game.character.GameCharacter; @@ -179,6 +181,8 @@ public class PlayerModule extends GameContextModule { datastore.getCollection(StoryManager.class).deleteOne(idFilter); datastore.getCollection(QuestManager.class).deleteOne(idFilter); datastore.getCollection(AgentManager.class).deleteOne(idFilter); + datastore.getCollection(AchievementManager.class).deleteOne(idFilter); + datastore.getCollection(ActivityManager.class).deleteOne(idFilter); datastore.getCollection(BattlePass.class).deleteOne(idFilter); datastore.getCollection(ScoreBossRankEntry.class).deleteOne(idFilter); diff --git a/src/main/java/emu/nebula/game/quest/QuestManager.java b/src/main/java/emu/nebula/game/quest/QuestManager.java index 92f6dc0..3e88104 100644 --- a/src/main/java/emu/nebula/game/quest/QuestManager.java +++ b/src/main/java/emu/nebula/game/quest/QuestManager.java @@ -132,7 +132,6 @@ public class QuestManager extends PlayerManager implements GameDatabaseObject { } } - /** * Update this quest on the player client */ diff --git a/src/main/java/emu/nebula/server/handlers/HandlerActivityTowerDefenseLevelSettleReq.java b/src/main/java/emu/nebula/server/handlers/HandlerActivityTowerDefenseLevelSettleReq.java index 41d25b2..a770dca 100644 --- a/src/main/java/emu/nebula/server/handlers/HandlerActivityTowerDefenseLevelSettleReq.java +++ b/src/main/java/emu/nebula/server/handlers/HandlerActivityTowerDefenseLevelSettleReq.java @@ -4,7 +4,6 @@ import emu.nebula.net.NetHandler; import emu.nebula.net.NetMsgId; import emu.nebula.proto.ActivityTowerDefenseLevelSettle.ActivityTowerDefenseLevelSettleReq; import emu.nebula.net.HandlerId; -import emu.nebula.Nebula; import emu.nebula.game.activity.type.TowerDefenseActivity; import emu.nebula.net.GameSession; @@ -20,7 +19,7 @@ public class HandlerActivityTowerDefenseLevelSettleReq extends NetHandler { var activity = session.getPlayer().getActivityManager().getActivity(TowerDefenseActivity.class, 102001); // Claim rewards - var change = activity.claimReward((int)req.getLevelId()); + var change = activity.claimReward(req.getLevelId()); // Update completed stages activity.getCompletedStages().put(req.getLevelId(), req.getStar());