implement BattlePass (Except missions) (#1316)

* BattlePass

* BattlePass
This commit is contained in:
诗音澄鸢 镜苑芳依
2022-06-21 22:18:13 +08:00
committed by GitHub
parent c171b5904e
commit b9bf33c2f7
15 changed files with 416 additions and 1 deletions

View File

@@ -29,6 +29,9 @@ public class Account {
private List<String> permissions;
private Locale locale;
private int point;
private int awardTakenLevel;
private String banReason;
private int banEndTime;
private int banStartTime;
@@ -208,7 +211,23 @@ public class Account {
public boolean removePermission(String permission) {
return this.permissions.remove(permission);
}
public void setPoint(int point) {
this.point = point;
}
public int getPoint() {
return point;
}
public void setAwardTakenLevel(int level) {
this.awardTakenLevel = level;
}
public int getAwardTakenLevel() {
return awardTakenLevel;
}
// TODO make unique
public String generateLoginToken() {
this.token = Utils.bytesToHex(Crypto.createSessionKey(32));

View File

@@ -0,0 +1,40 @@
package emu.grasscutter.game.battlepass;
import emu.grasscutter.game.player.Player;
import emu.grasscutter.server.packet.send.PacketBattlePassCurScheduleUpdateNotify;
public class BattlePassManager {
private final Player player;
private int point;
private int awardTakenLevel;
public BattlePassManager(Player player){
this.player = player;
point = player.getAccount().getPoint();
awardTakenLevel = player.getAccount().getAwardTakenLevel();
}
public void addPoint(int point){
this.point += point;
player.getAccount().setPoint(point);
player.getSession().send(new PacketBattlePassCurScheduleUpdateNotify(player.getSession().getPlayer()));
//save the point data
player.getAccount().save();
}
public void updateAwardTakenLevel(int level){
this.awardTakenLevel = level;
player.getAccount().setAwardTakenLevel(awardTakenLevel);
player.getSession().send(new PacketBattlePassCurScheduleUpdateNotify(player.getSession().getPlayer()));
player.getAccount().save();
}
public int getPoint() {
return point;
}
public int getAwardTakenLevel() {
return awardTakenLevel;
}
}

View File

@@ -12,6 +12,7 @@ import emu.grasscutter.game.ability.AbilityManager;
import emu.grasscutter.game.avatar.Avatar;
import emu.grasscutter.game.avatar.AvatarProfileData;
import emu.grasscutter.game.avatar.AvatarStorage;
import emu.grasscutter.game.battlepass.BattlePassManager;
import emu.grasscutter.game.entity.EntityMonster;
import emu.grasscutter.game.entity.EntityVehicle;
import emu.grasscutter.game.home.GameHome;
@@ -169,6 +170,7 @@ public class Player {
@Transient private DeforestationManager deforestationManager;
@Transient private GameHome home;
@Transient private FurnitureManager furnitureManager;
@Transient private BattlePassManager battlePassManager;
private long springLastUsed;
private HashMap<String, MapMark> mapMarks;
@@ -290,6 +292,10 @@ public class Player {
this.account = account;
}
public void setBattlePassManager(Player player){
this.battlePassManager = new BattlePassManager(player);
}
public GameSession getSession() {
return session;
}
@@ -1206,6 +1212,10 @@ public class Player {
return furnitureManager;
}
public BattlePassManager getBattlePassManager(){
return battlePassManager;
}
public AbilityManager getAbilityManager() {
return abilityManager;
}
@@ -1348,6 +1358,7 @@ public class Player {
session.send(new PacketPlayerStoreNotify(this));
session.send(new PacketAvatarDataNotify(this));
session.send(new PacketFinishedParentQuestNotify(this));
session.send(new PacketBattlePassAllDataNotify(this));
session.send(new PacketQuestListNotify(this));
session.send(new PacketCodexDataFullNotify(this));
session.send(new PacketAllWidgetDataNotify(this));