diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index b2dcc1893..8b8526ad5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -171,11 +171,13 @@ public interface BIReason { int HERO_BACK_CONSUME = 1041;//英雄回溯消耗 - int TREASURE_LEVEL_UP_CONCUME = 1042;//孙龙宝藏等级提升消耗 + int TREASURE_LEVEL_UP_CONSUME = 1042;//孙龙宝藏等级提升消耗 int TREASURE_BUY_LEVEL_CONSUME = 1043;//孙龙宝藏等级快速购买 - int TREASURE_RESET_CONCUME = 1044;//孙龙宝藏重置删除积分 + int TREASURE_RESET_CONSUME = 1044;//孙龙宝藏重置删除积分 + + int RIDE_LEVEL_UP_CONSUME = 1045;//坐骑升级消耗 } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/player/RideLevelUpHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/player/RideLevelUpHandler.java new file mode 100644 index 000000000..b74db7694 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/player/RideLevelUpHandler.java @@ -0,0 +1,26 @@ +package com.ljsd.jieling.handler.player; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.player.PlayerLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +/** + * @author lvxinran + * @date 2019/11/21 + * @discribe 坐骑升级 + */ +@Component +public class RideLevelUpHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.RIDE_LEVEL_UP_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + PlayerLogic.getInstance().rideLevelUp(iSession, MessageTypeProto.MessageType.RIDE_LEVEL_UP_REQUEST); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index 5126b92c2..b21c731a9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -81,6 +81,7 @@ public class UserManager { playerManager.setHeadFrame(STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getDefaultPicture()); SPlayerLevelConfig sPlayerLevelConfig = SPlayerLevelConfig.getsPlayerLevelConfigMap().get(1); playerManager.setMaxStamina(sPlayerLevelConfig.getMaxEnergy()); + playerManager.setRideLevel(1); ItemUtil.drop(user,gameSetting.getBornItem(), BIReason.USER_BORN_REWARD); HeroManager heroManager = user.getHeroManager(); Map heroMap = heroManager.getHeroMap(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java index c319211c0..c076cff0e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java @@ -110,7 +110,7 @@ public class UserMissionManager extends MongoBase { Map treasureScore = new HashMap<>(); treasureScore.put(Global.TREASURE_SCORE,item.getItemNum()); try { - ItemUtil.itemCost(user,treasureScore, BIReason.TREASURE_RESET_CONCUME,1); + ItemUtil.itemCost(user,treasureScore, BIReason.TREASURE_RESET_CONSUME,1); } catch (Exception e) { e.printStackTrace(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 164678142..386727d4c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -1217,6 +1217,21 @@ public class HeroLogic { } combinedAttribute(sEquipSign.getProperty(),heroAllAttribute); } + //皮肤、称号加成 + int decoration = user.getPlayerInfoManager().getDecoration(); + int designation = user.getPlayerInfoManager().getDesignation(); + if(decoration!=0&&SPlayerAppearance.sPlayerAppearanceMap.get(decoration)!=null){ + combinedAttribute(SPlayerAppearance.sPlayerAppearanceMap.get(decoration).getProperty(),heroAllAttribute); + }if(designation!=0&&SPlayerAppearance.sPlayerAppearanceMap.get(designation)!=null){ + combinedAttribute(SPlayerAppearance.sPlayerAppearanceMap.get(designation).getProperty(),heroAllAttribute); + } + + //坐骑加成 + if(user.getPlayerInfoManager().getRide()!=0){ + int rideLevel = user.getPlayerInfoManager().getRideLevel(); + int[][] property = SPlayerMountLevelUp.sPlayerMountLevelUpMap.get(rideLevel).getProperty(); + combinedAttribute(property,heroAllAttribute); + } //阵营光环加成 if(!isForce){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index f19c4a073..70f5962f6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -695,4 +695,26 @@ public class PlayerLogic { } RedisUtil.getInstence().putMapEntry(RedisKey.PLAYER_INFO_CACHE,"",String.valueOf(user.getId()),cache); } + + /** + * 坐骑升级 + * @param session + * @param messageType + * @throws Exception + */ + public void rideLevelUp(ISession session, MessageTypeProto.MessageType messageType) throws Exception { + User user = UserManager.getUser(session.getUid()); + int rideLevel = user.getPlayerInfoManager().getRideLevel(); + SPlayerMountLevelUp sPlayerMountLevelUp = SPlayerMountLevelUp.sPlayerMountLevelUpMap.get(rideLevel); + int[][] consume = sPlayerMountLevelUp.getConsume(); + if(consume==null||consume.length<1){ + throw new ErrorCodeException(ErrorCode.FRIENDS_USER_NULL); + } + boolean result = ItemUtil.itemCost(user, consume, BIReason.RIDE_LEVEL_UP_CONSUME, 1); + if(!result){ + throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); + } + user.getPlayerInfoManager().setRideLevel(rideLevel++); + MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index bc11ecea8..f6268f432 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -628,7 +628,7 @@ public class ItemUtil { */ public static void treasureLevelUp(User user) throws Exception { STreasureSunlongConfig levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(user.getPlayerInfoManager().getTreasureLevel()); - while(levelConfig!=null&&levelConfig.getIntegral().length>0&&ItemUtil.itemCost(user,levelConfig.getIntegral(), BIReason.TREASURE_LEVEL_UP_CONCUME,1)){ + while(levelConfig!=null&&levelConfig.getIntegral().length>0&&ItemUtil.itemCost(user,levelConfig.getIntegral(), BIReason.TREASURE_LEVEL_UP_CONSUME,1)){ user.getPlayerInfoManager().addTreasureLevel(); levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(user.getPlayerInfoManager().getTreasureLevel()); } diff --git a/tablemanager/src/main/java/config/SPlayerAppearance.java b/tablemanager/src/main/java/config/SPlayerAppearance.java new file mode 100644 index 000000000..9c19d9602 --- /dev/null +++ b/tablemanager/src/main/java/config/SPlayerAppearance.java @@ -0,0 +1,33 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.Map; + +@Table(name ="PlayerAppearance") +public class SPlayerAppearance implements BaseConfig { + + private int id; + + private int[][] property; + + public static Map sPlayerAppearanceMap; + + @Override + public void init() throws Exception { + sPlayerAppearanceMap = STableManager.getConfig(SPlayerAppearance.class); + + } + + + public int getId() { + return id; + } + + public int[][] getProperty() { + return property; + } + + +} \ No newline at end of file diff --git a/tablemanager/src/main/java/config/SPlayerMountLevelUp.java b/tablemanager/src/main/java/config/SPlayerMountLevelUp.java new file mode 100644 index 000000000..9d5d40844 --- /dev/null +++ b/tablemanager/src/main/java/config/SPlayerMountLevelUp.java @@ -0,0 +1,40 @@ +package config; + + +import manager.STableManager; +import manager.Table; + +import java.util.Map; + +@Table(name ="PlayerMountLevelUp") +public class SPlayerMountLevelUp implements BaseConfig { + + private int level; + + private int[][] property; + + private int[][] consume; + + public static Map sPlayerMountLevelUpMap ; + + + @Override + public void init() throws Exception { + sPlayerMountLevelUpMap = STableManager.getConfig(SPlayerMountLevelUp.class); + } + + + public int getLevel() { + return level; + } + + public int[][] getProperty() { + return property; + } + + public int[][] getConsume() { + return consume; + } + + +} \ No newline at end of file