From da646a7f5c87d8fa876893a564cc8c9121c1c657 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Wed, 8 Jan 2020 16:18:40 +0800 Subject: [PATCH] =?UTF-8?q?TASK=E3=80=90ID1005460=E3=80=91=E3=80=90?= =?UTF-8?q?=E7=8E=A9=E6=B3=95=E9=9C=80=E6=B1=82=E3=80=91=E7=8C=8E=E5=A6=96?= =?UTF-8?q?=E4=B9=8B=E8=B7=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/db/mongo/MongoKey.java | 1 + .../Expedition/TakeLayRewardHandler.java | 44 ++++++++++++ .../jieling/logic/GlobalDataManaager.java | 3 + .../jieling/logic/dao/ExpeditionManager.java | 42 ++++++++++++ .../jieling/logic/dao/ExpeditionNodeInfo.java | 67 +++++++++++++++++++ .../com/ljsd/jieling/logic/dao/root/User.java | 7 ++ .../logic/expedition/ExpeditionLogic.java | 52 ++++++++++++++ 7 files changed, 216 insertions(+) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/TakeLayRewardHandler.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExpeditionManager.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExpeditionNodeInfo.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoKey.java b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoKey.java index b770bfbae..51f52b181 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoKey.java @@ -42,4 +42,5 @@ public class MongoKey { public final static String questionManager = "questionManager"; public final static String bloodyInfo = "bloodyInfo"; public final static String mainLevelManager = "mainLevelManager"; + public final static String expeditionManager = "expeditionManager"; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/TakeLayRewardHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/TakeLayRewardHandler.java new file mode 100644 index 000000000..51a53754d --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/TakeLayRewardHandler.java @@ -0,0 +1,44 @@ +package com.ljsd.jieling.handler.Expedition; + +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.Expedition; +import com.ljsd.jieling.protocols.MessageTypeProto; + +/** + * Description: des + * Author: zsx + * CreateDate: 2020/1/7 16:23 + */ +public class TakeLayRewardHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return null; + } + + @Override + public void processWithProto(ISession iSession, Expedition.TakeExpeditionBoxRewardRequest proto) throws Exception { + User user = UserManager.getUser(iSession.getUid()); + int lay = proto.getLay(); + if(user.getExpeditionManager().getLay()<=lay){ + throw new ErrorCodeException(ErrorCode.newDefineCode("条件未达成")); + } + //TODO cfg check + + + + //up miss +// int[][] reward ; +// CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD); +// +// +// +// PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build(); +// MessageUtil.sendMessage(iSession, 1, rewardResponseValue, build, true); + + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index ab900e8ce..31e5f2ff2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -18,10 +18,12 @@ import com.ljsd.jieling.logic.activity.UserLevelEventHandler; import com.ljsd.jieling.logic.arena.ArenaLogic; import com.ljsd.jieling.logic.blood.BloodLogic; import com.ljsd.jieling.logic.championship.ChampionshipLogic; +import com.ljsd.jieling.logic.dao.ExpeditionManager; import com.ljsd.jieling.logic.dao.ServerConfig; import com.ljsd.jieling.logic.dao.TimeControllerOfFunction; import com.ljsd.jieling.logic.dao.root.GlobalSystemControl; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.expedition.ExpeditionLogic; import com.ljsd.jieling.logic.family.GuildFightLogic; import com.ljsd.jieling.logic.friend.FriendLogic; import com.ljsd.jieling.logic.mission.GameEvent; @@ -322,6 +324,7 @@ public class GlobalDataManaager implements IManager { PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder); PlayerLogic.getInstance().flushUserdataEvery(user,fBuilder); BuyGoodsLogic.flushEveryDay(user); + ExpeditionLogic.getInstance().flushUserdataEveryDay(user); user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0); user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_REFRESH,0); FriendLogic.getInstance().refreshState(session); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExpeditionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExpeditionManager.java new file mode 100644 index 000000000..a7fc30663 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExpeditionManager.java @@ -0,0 +1,42 @@ +package com.ljsd.jieling.logic.dao; + +import com.ljsd.common.mogodb.MongoBase; + +import java.util.*; + +/** + * Description: + * Author: zsx + * CreateDate: 2020/1/7 11:46 + */ +public class ExpeditionManager extends MongoBase { + + private Map heroHP = new HashMap<>();//英雄血量 + private Map expeditionNodeInfos = new HashMap<>(); + private int lay=1;//当前层数 + + public void putExpeditionNodeInfos(Integer key,ExpeditionNodeInfo nodeInfo) { + this.expeditionNodeInfos.put(key,nodeInfo); + updateString("ExpeditionNodeInfo." + key, nodeInfo); + } + + public void setExpeditionNodeInfos(Map expeditionNodeInfos) { + this.expeditionNodeInfos = expeditionNodeInfos; + } + + public int getLay() { + return lay; + } + + public void setLay(int lay) { + this.lay = lay; + } + + public Map getHeroHP() { + return heroHP; + } + + public void setHeroHP(Map heroHP) { + this.heroHP = heroHP; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExpeditionNodeInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExpeditionNodeInfo.java new file mode 100644 index 000000000..a6a769814 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ExpeditionNodeInfo.java @@ -0,0 +1,67 @@ +package com.ljsd.jieling.logic.dao; + +import java.util.HashMap; +import java.util.Map; + +/** + * Description: des + * Author: zsx + * CreateDate: 2020/1/7 14:49 + */ +public class ExpeditionNodeInfo { + private int sortId;//节点id + private int lay;//节点层数 + private int type;//节点类型 + private int bossinfo; + private int state;//节点状态//0未开启 1未通过 2未领取圣物 3已完成 + private Map bossHP = new HashMap<>();//怪物血量 + + + public int getSortId() { + return sortId; + } + + public void setSortId(int sortId) { + this.sortId = sortId; + } + + public int getLay() { + return lay; + } + + public void setLay(int lay) { + this.lay = lay; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public int getBossinfo() { + return bossinfo; + } + + public void setBossinfo(int bossinfo) { + this.bossinfo = bossinfo; + } + + public int getState() { + return state; + } + + public void setState(int state) { + this.state = state; + } + + public Map getBossHP() { + return bossHP; + } + + public void setBossHP(Map bossHP) { + this.bossHP = bossHP; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java index 33e8f5f1b..e4a933a59 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/root/User.java @@ -46,6 +46,7 @@ public class User { private QuestionManager questionManager; private BloodyInfo bloodyInfo; private MainLevelManager mainLevelManager; + private ExpeditionManager expeditionManager; //构造函数必须要声明,否则从mongodb读出来反编译成类不通过 public User(){ @@ -72,6 +73,7 @@ public class User { this.questionManager = new QuestionManager(); this.bloodyInfo = new BloodyInfo(); this.mainLevelManager = new MainLevelManager(); + this.expeditionManager = new ExpeditionManager(); //綁定关系 @@ -94,6 +96,7 @@ public class User { this.questionManager.init(id,MongoKey.questionManager); this.bloodyInfo.init(id,MongoKey.bloodyInfo); this.mainLevelManager.init(id,MongoKey.mainLevelManager); + this.expeditionManager.init(id,MongoKey.expeditionManager); } public int getId() { @@ -196,6 +199,10 @@ public class User { return guildMyInfo; } + public ExpeditionManager getExpeditionManager() { + return expeditionManager; + } + public RoomInfo getRoomInfo() { if(roomInfo == null){ roomInfo = new RoomInfo(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java new file mode 100644 index 000000000..c6cebf037 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -0,0 +1,52 @@ +package com.ljsd.jieling.logic.expedition; + +import com.ljsd.jieling.logic.activity.IEventHandler; +import com.ljsd.jieling.logic.dao.ExpeditionManager; +import com.ljsd.jieling.logic.dao.ExpeditionNodeInfo; +import com.ljsd.jieling.logic.dao.root.User; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.HashMap; +import java.util.Map; + +/** + * Description: 远征 猎妖之路 + * Author: zsx + * CreateDate: 2020/1/7 11:46 + */ +public class ExpeditionLogic { + + private static final Logger LOGGER = LoggerFactory.getLogger(ExpeditionLogic.class); + + private ExpeditionLogic(){ + } + + public static class Instance { + public final static ExpeditionLogic instance = new ExpeditionLogic(); + } + + public static ExpeditionLogic getInstance() { + return ExpeditionLogic.Instance.instance; + } + + //每日重置 + public void flushUserdataEveryDay(User user){ + Map expeditionNodeInfoMap = new HashMap<>(); + + //TODO + ExpeditionManager manager = new ExpeditionManager(); + manager.setExpeditionNodeInfos(expeditionNodeInfoMap); + manager.setLay(1); + + } + + /** + * + */ + private void openLay(){ + + } + + +}