diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index 9c698e5f8..2e9d5b8e4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -33,6 +33,7 @@ import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.MissionType; import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.question.QuestionLogic; +import com.ljsd.jieling.logic.soldier.SoldierLogic; import com.ljsd.jieling.logic.store.BuyGoodsNewLogic; import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.logic.store.newRechargeInfo.PushRechargeType; @@ -85,6 +86,8 @@ public class GetPlayerInfoHandler extends BaseHandler{ boolean flag = GlobalDataManaager.checkNeedReFlush(iSession,user,null); GmSingleActivityLogic.getInstance().updateGmSingle(user); BuyGoodsNewLogic.refreshWelfareState(user); + //小兵修复 + SoldierLogic.getInstance().soliderReset(user); // 罗浮争锋,领取称号奖励 LuofuLogic.getInstance().takeTitleReward(user); if(!flag){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index 45ab2aab7..e2509da47 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -241,6 +241,7 @@ public class PlayerManager extends MongoBase { public int playerGodTowerNum;//主角神觉塔层数 public int playerGodLevel;//主角成神阶数(1半神2神3神王) public Map playerGodMeridiansLevels = new HashMap();//主角六道神脉等级 + public int soliderRest = 0;//小兵是否修复过属性 public void putDesireDraw(int type, int tempId) { this.desireDraw.put(type, tempId); @@ -1634,4 +1635,12 @@ public class PlayerManager extends MongoBase { return list; } + public int getSoliderRest() { + return soliderRest; + } + + public void setSoliderRest(int soliderRest) { + this.soliderRest = soliderRest; + updateString("soliderRest", this.soliderRest); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/soldier/SoldierLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/soldier/SoldierLogic.java index 3cf2d097a..80b51162a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/soldier/SoldierLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/soldier/SoldierLogic.java @@ -7,10 +7,7 @@ import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.SaveHeroForceEvent; -import com.ljsd.jieling.logic.dao.MainLevelManager; -import com.ljsd.jieling.logic.dao.Soldier; -import com.ljsd.jieling.logic.dao.TeamEnum; -import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.mission.GameEvent; @@ -435,4 +432,30 @@ public class SoldierLogic { } return HeroLogic.getInstance().calForce(attr); } + + /** + * 小兵属性修复 + * @param user + */ + public void soliderReset(User user){ + PlayerManager playerManager = user.getPlayerInfoManager(); + if(playerManager.getSoliderRest() == 1){ + return; + } + Collection values = user.getMainLevelManager().getSoldierMap().values(); + if(values == null || values.size() ==0){ + playerManager.setSoliderRest(1); + return; + } + for (Soldier soldier : values) { + Map attributes = new HashMap<>(); + for (Map.Entry entry : soldier.getAttributes().entrySet()) { + Integer id = entry.getKey(); + //属性削弱10倍 + attributes.put(id,entry.getValue()/10); + } + soldier.setAttributes(attributes); + } + playerManager.setSoliderRest(1); + } }