法宝聚灵增加属性百分比
parent
daa83310cd
commit
ad20cec591
|
@ -144,7 +144,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
StoreLogic.getInstance().reloadStoreInfo(user,7);//重载功能商店
|
||||
ExplorerMapLogic.getInstance().calOfflineReward(user);//挂机探索
|
||||
// monthCardRefresh(user);//月卡特殊处理
|
||||
faBaoJuLingHandler(user);//法宝修改
|
||||
// faBaoJuLingHandler(user);//法宝修改
|
||||
//森罗幻境自动挂机返回掉落展示清除
|
||||
Map<Integer,Integer> dropShow = mapManager.getTowerGetRewardInfoShowMap();
|
||||
if(dropShow != null && !dropShow.isEmpty()){
|
||||
|
@ -429,11 +429,4 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
|||
return lifeGridInfos;
|
||||
}
|
||||
|
||||
public static void faBaoJuLingHandler(User user) throws Exception {
|
||||
Set<Integer> keySet = user.getHeroManager().getFaBaoGongMingSkillMap().keySet();
|
||||
for (Integer bookId : keySet) {
|
||||
FaBaoSoulUpLvRequestHandler.updateFaBaoGongMingLv(user, bookId);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -8,13 +8,11 @@ import com.ljsd.jieling.logic.activity.event.Poster;
|
|||
import com.ljsd.jieling.logic.activity.event.SaveHeroForceEvent;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.STrump;
|
||||
import config.STrumpBook;
|
||||
import config.STrumpLevelupPool;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.HeroInfoProto;
|
||||
|
@ -32,50 +30,27 @@ public class FaBaoSoulUpLvRequestHandler extends BaseHandler<HeroInfoProto.FaBao
|
|||
public void processWithProto(ISession session, HeroInfoProto.FaBaoSoulUpLvRequest proto) throws Exception {
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
int faBaoId=proto.getId();
|
||||
int faBaoLv=proto.getLevel();
|
||||
STrump trumpConfig=STrump.sTrumpMap.get(faBaoId);
|
||||
int faBaoId = proto.getId();
|
||||
int faBaoLv = proto.getLevel();
|
||||
STrump trumpConfig = STrump.sTrumpMap.get(faBaoId);
|
||||
if (faBaoLv > trumpConfig.getLvMax()) {
|
||||
LOGGER.error("法宝之魂强化等级已达上限");
|
||||
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
|
||||
}
|
||||
int[][]costArr=new int[1][2];
|
||||
int costLv=faBaoLv-1;
|
||||
costArr[0][0]=trumpConfig.getLvupCostItem();
|
||||
costArr[0][1]=STrumpLevelupPool.levelPoolMap.get(trumpConfig.getLvupPool()).get(costLv).getLvupCostItemNum();
|
||||
int[][] costArr = new int[1][2];
|
||||
int costLv = faBaoLv-1;
|
||||
costArr[0][0] = trumpConfig.getLvupCostItem();
|
||||
costArr[0][1] = STrumpLevelupPool.levelPoolMap.get(trumpConfig.getLvupPool()).get(costLv).getLvupCostItemNum();
|
||||
boolean costResult = ItemUtil.itemCost(user,costArr, BIReason.FABAO_SOUL_UP_COST,faBaoId);
|
||||
if (!costResult) {
|
||||
LOGGER.error("法宝之魂强化材料不足");
|
||||
throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT);
|
||||
}
|
||||
user.getHeroManager().putFaBaoSoulMap(faBaoId,faBaoLv);
|
||||
updateFaBaoGongMingLv(user,trumpConfig.getBookId());
|
||||
user.getHeroManager().putFaBaoSoulMap(faBaoId, faBaoLv);
|
||||
int bookId = trumpConfig.getBookId();
|
||||
HeroLogic.getInstance().updateTrumpBookStarLv(user, bookId);
|
||||
// 更新战力
|
||||
Poster.getPoster().dispatchEvent(new SaveHeroForceEvent(user.getId(),""));
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.FA_BAO_SOUL_UPLV_RESPONSE_VALUE,null,true);
|
||||
}
|
||||
|
||||
public static void updateFaBaoGongMingLv(User user,int bookId) throws Exception {
|
||||
STrumpBook sTrumpBook=STrumpBook.sTrumpBookMap.get(bookId);
|
||||
int[] trumpList = sTrumpBook.getTrumpList();
|
||||
int gongmingLv=0;
|
||||
for (int trumpId : trumpList) {
|
||||
if (!user.getHeroManager().getFaBaoSoulMap().containsKey(trumpId)) {
|
||||
return;
|
||||
}
|
||||
if (gongmingLv==0){
|
||||
gongmingLv=user.getHeroManager().getFaBaoSoulMap().get(trumpId);
|
||||
}
|
||||
if (user.getHeroManager().getFaBaoSoulMap().get(trumpId)<gongmingLv){
|
||||
gongmingLv=user.getHeroManager().getFaBaoSoulMap().get(trumpId);
|
||||
}
|
||||
}
|
||||
int skillId=sTrumpBook.getSkillList()[gongmingLv-1][1];
|
||||
Integer integer = user.getHeroManager().getFaBaoGongMingSkillMap().getOrDefault(bookId, 0);
|
||||
if (integer == 0){
|
||||
// 触发任务,东海寻仙
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME,MissionType.GET_TREASURE_SKILL_NUM, sTrumpBook.getQuality(), 1);
|
||||
}
|
||||
user.getHeroManager().putFaBaoGongMingSkillMap(bookId,skillId);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.jbean.ActivityManager;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
|
@ -27,11 +28,8 @@ public class FifteenActivity extends AbstractActivity {
|
|||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
SGlobalActivity globalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
if(TimeUtils.getOverTimeCount(user.getPlayerInfoManager().getCreateTime()+globalActivity.getStartTimeLong()*1000,
|
||||
System.currentTimeMillis(),0)<sActivityRewardConfig.getValues()[0][0]-1){
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
long createTime = user.getPlayerInfoManager().getCreateTime();
|
||||
return TimeUtils.getOverTimeCount(createTime + globalActivity.getStartTimeLong() * 1000, TimeUtils.now(), 0) >= sActivityRewardConfig.getValues()[0][0] - 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -40,18 +38,19 @@ public class FifteenActivity extends AbstractActivity {
|
|||
if(globalActivity == null){
|
||||
return;
|
||||
}
|
||||
ActivityLogic.getInstance().initAllActivityMission(user.getActivityManager().getActivityMissionMap(),globalActivity.getId());
|
||||
if(user.getActivityManager().getActivityMissionMap().get(globalActivity.getId()) == null){
|
||||
ActivityManager activityManager = user.getActivityManager();
|
||||
Map<Integer, ActivityMission> activityMissionMap = activityManager.getActivityMissionMap();
|
||||
ActivityLogic.getInstance().initAllActivityMission(activityMissionMap,globalActivity.getId());
|
||||
ActivityMission activityMission = activityMissionMap.get(globalActivity.getId());
|
||||
if(activityMission == null){
|
||||
return;
|
||||
}
|
||||
long startTime = ToolsUtil.getTimeLong
|
||||
(globalActivity.getStartTimeLong(),globalActivity.getEndTimeLong(),globalActivity.getTime(),
|
||||
user.getPlayerInfoManager().getCreateTime(), 1);
|
||||
int st = (int)(startTime/1000);
|
||||
for(Map.Entry<Integer,ActivityProgressInfo> entry : user.getActivityManager().getActivityMissionMap().
|
||||
get(globalActivity.getId()).getActivityMissionMap().entrySet()){
|
||||
long startTime = ToolsUtil.getTimeLong(globalActivity.getStartTimeLong(),globalActivity.getEndTimeLong(),globalActivity.getTime(),user.getPlayerInfoManager().getCreateTime(), 1);
|
||||
int time = (int)(startTime/1000);
|
||||
Map<Integer, ActivityProgressInfo> progressInfoMap = activityMission.getActivityMissionMap();
|
||||
for(Map.Entry<Integer,ActivityProgressInfo> entry : progressInfoMap.entrySet()){
|
||||
SActivityRewardConfig config = SActivityRewardConfig.getsActivityRewardConfigByMissionId(entry.getKey());
|
||||
entry.getValue().setProgrss((int)((TimeUtils.DAY * (config.getValues()[0][0] - 1))/1000) + st);
|
||||
entry.getValue().setProgrss((int)((TimeUtils.DAY * (config.getValues()[0][0] - 1))/1000) + time);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -63,18 +62,17 @@ public class FifteenActivity extends AbstractActivity {
|
|||
User user = UserManager.getUser(session.getUid());
|
||||
List<int[][]> reward = new ArrayList<>();
|
||||
getAllMissRewards(user,session,reward);
|
||||
Map<Integer,Integer> itemMap = new HashMap<>();
|
||||
reward.forEach(n-> Arrays.stream(n).forEach(m->itemMap.put(m[0],itemMap.getOrDefault(m[0], 0)+m[1])));
|
||||
|
||||
int[][] rewardArray = ItemUtil.mapToArray(itemMap);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, rewardArray, BIReason.TAKE_ACTIVITY_REWARD);
|
||||
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
|
||||
reportTakeActivityReward(user,rewardArray,missionId);
|
||||
|
||||
// reportTakeActivityReward(user,rewardArray,missionId);
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
|
||||
updateActivityValue(session);
|
||||
return true;
|
||||
}
|
||||
|
||||
public void updateActivityValue(ISession session) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
boolean isAll = true;
|
||||
for(Map.Entry<Integer,ActivityProgressInfo> entry:activityMission.getActivityMissionMap().entrySet()){
|
||||
|
@ -87,7 +85,5 @@ public class FifteenActivity extends AbstractActivity {
|
|||
activityMission.setV(2);
|
||||
}
|
||||
sendActivityProgress(session, null);
|
||||
return true;
|
||||
|
||||
}
|
||||
}
|
|
@ -589,7 +589,7 @@ public class CumulationData {
|
|||
}
|
||||
|
||||
public void addTransfigurationNum(int quality,int num){
|
||||
get_transfiguration_num.merge(quality,num,(oldV, newV) -> oldV + newV);
|
||||
get_transfiguration_num.merge(quality,num, Integer::sum);
|
||||
}
|
||||
|
||||
public void setGet_transfiguration_num(Map<Integer, Integer> get_transfiguration_num) {
|
||||
|
@ -601,7 +601,7 @@ public class CumulationData {
|
|||
}
|
||||
|
||||
public void addActivate_treasure_skill_num(int quality,int num){
|
||||
get_transfiguration_num.merge(quality,num,(oldV, newV) -> oldV + newV);
|
||||
get_transfiguration_num.merge(quality, num, Integer::sum);
|
||||
}
|
||||
|
||||
public Map<Integer, Integer> getActivate_treasure_skill_num() {
|
||||
|
|
|
@ -116,39 +116,33 @@ public class HeroManager extends MongoBase {
|
|||
*/
|
||||
private Map<Integer, SixiangProfessionInfo> sixiangDataMap = new HashMap<>();
|
||||
|
||||
public Map<Integer, SixiangProfessionInfo> getSixiangDataMap() {
|
||||
return sixiangDataMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 四象心法进阶额外属性加成
|
||||
* key: 职业类型 value:< key: 属性类型 value: 属性加成值 >
|
||||
*/
|
||||
private Map<Integer, Map<Integer,Integer>> sixiangPropUpMap = new HashMap<>();
|
||||
|
||||
private Map<Integer,Integer> heroLikableMap = new HashMap<>();// 好感度数据 key: 英雄静态id value:好感度值
|
||||
private int likableSendTime;//好感度已赠送次数
|
||||
private Map<Integer,Integer> faBaoSoulMap = new HashMap<>();//法宝之魂数据
|
||||
private Map<Integer, Integer> trumpBookStarMap = new HashMap<>();// 法宝组合星级 key:bookid,value:星级
|
||||
private Map<Integer,Map<Integer,Integer>> LifeGridMap = new HashMap<>();//命格数据
|
||||
private Map<Integer,TransformationInfo> transformationList = new HashMap<>();//变身卡列表
|
||||
|
||||
public Map<Integer, SixiangProfessionInfo> getSixiangDataMap() {
|
||||
return sixiangDataMap;
|
||||
}
|
||||
|
||||
public Map<Integer, Map<Integer,Integer>> getSixiangPropUpMap() {
|
||||
return sixiangPropUpMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 好感度数据
|
||||
* key: 英雄静态id value:好感度值
|
||||
*/
|
||||
private Map<Integer,Integer> heroLikableMap = new HashMap<>();
|
||||
|
||||
public Map<Integer, Integer> getHeroLikableMap() {
|
||||
return heroLikableMap;
|
||||
}
|
||||
|
||||
//神将好感度属性加成, 20220812修改,好感度加成读表计算,不再记录到数据库
|
||||
private Map<Integer,Map<Integer,Integer>>heroLikablePropAddMap=new HashMap<>();
|
||||
//所有神将总好感度带来的属性加成(包含特权加成) 20220812修改,好感度加成属性读表计算,不再记录到数据库
|
||||
private Map<Integer,Integer> allLikablePropAddMap = new HashMap<>();
|
||||
|
||||
/**
|
||||
* 获取单个英雄好感度加成属性
|
||||
* @param heroTId
|
||||
* @return
|
||||
*/
|
||||
public Map<Integer,Integer> getHeroLikablePropAddMap(int heroTId) {
|
||||
Integer curHeroLikableNum = getHeroLikableMap().getOrDefault(heroTId, 0);
|
||||
|
@ -158,7 +152,6 @@ public class HeroManager extends MongoBase {
|
|||
|
||||
/**
|
||||
* 获取总好感度加成属性
|
||||
* @return
|
||||
*/
|
||||
public Map<Integer,Integer> getAllLikablePropAddMap() {
|
||||
int allHeroLikableNum = HeroUpLikableRequestHandler.GetAllHeroLikableNum(getHeroLikableMap());
|
||||
|
@ -174,27 +167,13 @@ public class HeroManager extends MongoBase {
|
|||
return HeroUpLikableRequestHandler.GetAllLikableLvByLikaNum(allHeroLikableNum);
|
||||
}
|
||||
|
||||
private int likableSendTime;//好感度已赠送次数
|
||||
public void setLifeGridMap(Map<Integer, Map<Integer, Integer>> lifeGridMap) {
|
||||
LifeGridMap = lifeGridMap;
|
||||
updateString("LifeGridMap", LifeGridMap);
|
||||
}
|
||||
|
||||
public int getLikableSendTime() { return likableSendTime; }
|
||||
|
||||
private Map<Integer,Integer> faBaoSoulMap= new HashMap<>();//法宝之魂数据
|
||||
|
||||
public Map<Integer, Integer> getFaBaoSoulMap() {
|
||||
return faBaoSoulMap;
|
||||
}
|
||||
|
||||
private Map<Integer,Integer> faBaoGongMingSkillMap = new HashMap<>();//法宝之魂共鸣数据<法宝组合id:技能id>
|
||||
|
||||
public Map<Integer, Integer> getFaBaoGongMingSkillMap() {
|
||||
return faBaoGongMingSkillMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 命格数据
|
||||
*/
|
||||
private Map<Integer,Map<Integer,Integer>>LifeGridMap=new HashMap<>();
|
||||
|
||||
public Map<Integer, Map<Integer, Integer>> getLifeGridMap() {
|
||||
return LifeGridMap;
|
||||
}
|
||||
|
@ -208,11 +187,6 @@ public class HeroManager extends MongoBase {
|
|||
updateString("LifeGridMap."+gridId, LifeGridMap.get(gridId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 变身卡列表
|
||||
*/
|
||||
private Map<Integer,TransformationInfo> transformationList = new HashMap<>();
|
||||
|
||||
public void setTransformationList(Map<Integer, TransformationInfo> transformationList) {
|
||||
this.transformationList = transformationList;
|
||||
updateString("transformationList", this.transformationList);
|
||||
|
@ -286,14 +260,40 @@ public class HeroManager extends MongoBase {
|
|||
updateString("heroLikableMap."+heroStaticId, likableNum);
|
||||
}
|
||||
|
||||
public void putFaBaoSoulMap(int fabaoId,int fabaoLv) {
|
||||
public void setFaBaoSoulMap(Map<Integer, Integer> faBaoSoulMap) {
|
||||
this.faBaoSoulMap = faBaoSoulMap;
|
||||
updateString("faBaoSoulMap", faBaoSoulMap);
|
||||
}
|
||||
|
||||
public void putFaBaoSoulMap(int fabaoId, int fabaoLv) {
|
||||
faBaoSoulMap.put(fabaoId,fabaoLv);
|
||||
updateString("faBaoSoulMap."+fabaoId, fabaoLv);
|
||||
}
|
||||
|
||||
public void putFaBaoGongMingSkillMap(int bookId,int skillId) {
|
||||
faBaoGongMingSkillMap.put(bookId,skillId);
|
||||
updateString("faBaoGongMingSkillMap."+bookId, skillId);
|
||||
public Map<Integer, Integer> getFaBaoSoulMap() {
|
||||
return faBaoSoulMap;
|
||||
}
|
||||
|
||||
public int getFaBaoSoulLv(int id) {
|
||||
return faBaoSoulMap.getOrDefault(id, 0);
|
||||
}
|
||||
|
||||
public Map<Integer, Integer> getTrumpBookStarMap() {
|
||||
return trumpBookStarMap;
|
||||
}
|
||||
|
||||
public int getTrumpBookStar(int bookId){
|
||||
return trumpBookStarMap.getOrDefault(bookId, 0);
|
||||
}
|
||||
|
||||
public void setTrumpBookStarMap(Map<Integer, Integer> trumpBookStarMap) {
|
||||
this.trumpBookStarMap = trumpBookStarMap;
|
||||
updateString("trumpBookStarMap", trumpBookStarMap);
|
||||
}
|
||||
|
||||
public void putTrumpBookStar(int bookID, int star){
|
||||
this.trumpBookStarMap.put(bookID, star);
|
||||
updateString("trumpBookStarMap", trumpBookStarMap);
|
||||
}
|
||||
|
||||
//刷新好感度赠送次数 参数传当日已赠送次数
|
||||
|
|
|
@ -27,7 +27,7 @@ public class HeroVo {
|
|||
private Map<Integer, Integer> godSealByPositionMap = new HashMap<>();
|
||||
private Map<Integer, PurpleMansionSeal> purpleMansionSealMap = new HashMap<>();
|
||||
private Map<Integer, Integer> equipPositionMap = new HashMap<>();
|
||||
private Map<Integer, Integer> faBaoGongMingSkillMap = new HashMap<>();
|
||||
private Map<Integer, Integer> trumpBookStarMap = new HashMap<>();
|
||||
private Map<Integer, Long> userMountValidTime = new HashMap<>();
|
||||
private Map<String, PropertyItem> jewelMap = new HashMap<>();
|
||||
private Map<String, PropertyItem> faxiangMap = new HashMap<>();
|
||||
|
@ -53,7 +53,7 @@ public class HeroVo {
|
|||
heroVo.godSealByPositionMap = new HashMap<>(hero.getGodSealByPositionMap());
|
||||
heroVo.purpleMansionSealMap = new HashMap<>(heroManager.getPurpleMansionSeal());
|
||||
heroVo.equipPositionMap = new HashMap<>(hero.getEquipByPositionMap());
|
||||
heroVo.faBaoGongMingSkillMap = new HashMap<>(heroManager.getFaBaoGongMingSkillMap());
|
||||
heroVo.trumpBookStarMap = new HashMap<>(heroManager.getTrumpBookStarMap());
|
||||
heroVo.userMountValidTime = new HashMap<>(user.getPlayerInfoManager().getUserMountValidTime());
|
||||
heroVo.jewelMap = CBean2Proto.propertyItemOfLocal(user,hero.getJewelInfo());
|
||||
heroVo.faxiangMap = CBean2Proto.propertyItemOfLocal(user,hero.getFaxiangList());
|
||||
|
@ -133,7 +133,7 @@ public class HeroVo {
|
|||
return equipPositionMap;
|
||||
}
|
||||
|
||||
public Map<Integer, Integer> getFaBaoGongMingSkillMap() {
|
||||
return faBaoGongMingSkillMap;
|
||||
public Map<Integer, Integer> getTrumpBookStarMap() {
|
||||
return trumpBookStarMap;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2129,31 +2129,33 @@ public class HeroLogic {
|
|||
}
|
||||
|
||||
///法宝之魂共鸣技能
|
||||
Map<Integer, Integer> faBaoGongMingSkillMap = heroVo.getFaBaoGongMingSkillMap();
|
||||
if (!faBaoGongMingSkillMap.isEmpty()) {
|
||||
Map<Integer, Integer> trumpBookStarMap = heroVo.getTrumpBookStarMap();
|
||||
if (!trumpBookStarMap.isEmpty()) {
|
||||
List<Integer> faBaoSoulSkills = new ArrayList<>();
|
||||
for (Map.Entry<Integer, Integer> entry : faBaoGongMingSkillMap.entrySet()) {
|
||||
SXiuXianSkill sXiuXianSkill = STableManager.getConfig(SXiuXianSkill.class).get(entry.getValue());
|
||||
Map<Integer, STrumpBook> trumpBookMap = STrumpBook.sTrumpBookMap;
|
||||
for (Map.Entry<Integer, Integer> entry : trumpBookStarMap.entrySet()) {
|
||||
STrumpBook trumpBook = trumpBookMap.get(entry.getKey());
|
||||
if (trumpBook == null){
|
||||
continue;
|
||||
}
|
||||
int xiuxianSkillId = trumpBook.getSkillList()[entry.getValue() - 1][0];
|
||||
SXiuXianSkill sXiuXianSkill = STableManager.getConfig(SXiuXianSkill.class).get(xiuxianSkillId);
|
||||
if (sXiuXianSkill == null){
|
||||
continue;
|
||||
}
|
||||
int[] fitList = sXiuXianSkill.getFitList();
|
||||
List<Integer> integerList = Arrays.stream(sXiuXianSkill.getSkillId()).boxed().collect(Collectors.toList());
|
||||
if (fitList[0] == 0) {
|
||||
for (int skillId : sXiuXianSkill.getSkillId()) {
|
||||
faBaoSoulSkills.add(skillId);
|
||||
}
|
||||
faBaoSoulSkills.addAll(integerList);
|
||||
}
|
||||
if (fitList[0] == 1 && fitList[1] == propertyId) {
|
||||
for (int skillId : sXiuXianSkill.getSkillId()) {
|
||||
faBaoSoulSkills.add(skillId);
|
||||
}
|
||||
faBaoSoulSkills.addAll(integerList);
|
||||
}
|
||||
if (fitList[0] == 2 && fitList[1] == propertyId) {
|
||||
for (int skillId : sXiuXianSkill.getSkillId()) {
|
||||
faBaoSoulSkills.add(skillId);
|
||||
}
|
||||
faBaoSoulSkills.addAll(integerList);
|
||||
}
|
||||
}
|
||||
if (!faBaoSoulSkills.isEmpty()) {
|
||||
skillList.addAll(faBaoSoulSkills);
|
||||
}
|
||||
skillList.addAll(faBaoSoulSkills);
|
||||
}
|
||||
|
||||
// 好感度技能
|
||||
|
@ -2861,16 +2863,37 @@ public class HeroLogic {
|
|||
// ... 法宝聚灵和命格增加属性逻辑 ...
|
||||
HeroManager heroManager = user.getHeroManager();
|
||||
|
||||
// 法宝聚灵
|
||||
Map<Integer, Integer> faBaoSoulMap = heroManager.getFaBaoSoulMap();
|
||||
// 计算基础属性加成
|
||||
int addition = 0;
|
||||
int trumpStarUp = SSpecialConfig.getIntegerValue("Trump_Star_Up");
|
||||
Map<Integer, STrumpBook> trumpBookMap = STrumpBook.sTrumpBookMap;
|
||||
for (STrumpBook book : trumpBookMap.values()) {
|
||||
int trumpBookStar = heroManager.getTrumpBookStar(book.getId());
|
||||
addition += (trumpBookStar * trumpStarUp);
|
||||
}
|
||||
// 法宝聚灵
|
||||
Map<Integer, STrump> sTrumpMap = STrump.sTrumpMap;
|
||||
Map<Integer, Map<Integer, STrumpLevelupPool>> levelPoolMap = STrumpLevelupPool.levelPoolMap;
|
||||
|
||||
HashMap<Integer, Long> trumpLvAttr = new HashMap<>();
|
||||
for (Map.Entry<Integer, Integer> faBaoSoulEntry : faBaoSoulMap.entrySet()) {
|
||||
// 等级处理
|
||||
STrump trumpConfig = STrump.sTrumpMap.get(faBaoSoulEntry.getKey());
|
||||
STrumpLevelupPool lvUpProps = STrumpLevelupPool.levelPoolMap.get(trumpConfig.getLvupPool()).get(faBaoSoulEntry.getValue());
|
||||
combinedAttribute(lvUpProps.getLvupProps(), heroAllAttribute);
|
||||
STrump trumpConfig = sTrumpMap.get(faBaoSoulEntry.getKey());
|
||||
STrumpLevelupPool lvUpProps = levelPoolMap.get(trumpConfig.getLvupPool()).get(faBaoSoulEntry.getValue());
|
||||
for (int[] lv : lvUpProps.getLvupProps()) {
|
||||
trumpLvAttr.merge(lv[0], (long) lv[1], Long::sum);
|
||||
}
|
||||
}
|
||||
for (Map.Entry<Integer, Long> entry : trumpLvAttr.entrySet()) {
|
||||
long value = Math.round(entry.getValue() * (1 + addition / 10000D));
|
||||
trumpLvAttr.put(entry.getKey(), value);
|
||||
}
|
||||
LOGGER.info("法宝聚灵属性加成======================={}=>{}",addition,trumpLvAttr);
|
||||
combinedAttribute(trumpLvAttr, heroAllAttribute);
|
||||
|
||||
// 法宝聚灵总星级属性
|
||||
Map<Integer, STrumpStar> trumpStarMap = STableManager.getConfig(STrumpStar.class);
|
||||
// 玩家全部的总星级
|
||||
int sumStar = faBaoSoulMap.values().stream().mapToInt(v -> v).sum();
|
||||
STrumpStar trumpStar = null;
|
||||
for (STrumpStar value : trumpStarMap.values()) {
|
||||
|
@ -7074,6 +7097,33 @@ public class HeroLogic {
|
|||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取法宝组合星级
|
||||
* @param user
|
||||
* @param bookId
|
||||
* @return
|
||||
*/
|
||||
public void updateTrumpBookStarLv(User user,int bookId) throws Exception {
|
||||
STrumpBook sTrumpBook = STrumpBook.sTrumpBookMap.get(bookId);
|
||||
if (sTrumpBook == null){
|
||||
return;
|
||||
}
|
||||
int[] trumpList = sTrumpBook.getTrumpList();
|
||||
HeroManager heroManager = user.getHeroManager();
|
||||
int result = heroManager.getFaBaoSoulLv(trumpList[0]);
|
||||
for (int i = 1; i < trumpList.length; i++) {
|
||||
int faBaoSoulLv = heroManager.getFaBaoSoulLv(trumpList[i]);
|
||||
if (faBaoSoulLv < result){
|
||||
result = faBaoSoulLv;
|
||||
}
|
||||
}
|
||||
if (heroManager.getTrumpBookStar(bookId) == 0){
|
||||
// 触发任务
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.GET_TREASURE_SKILL_NUM, sTrumpBook.getQuality(), 1);
|
||||
}
|
||||
heroManager.putTrumpBookStar(bookId, result);
|
||||
}
|
||||
|
||||
public static class Instance {
|
||||
public final static HeroLogic instance = new HeroLogic();
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ package config;
|
|||
import manager.STableManager;
|
||||
import manager.Table;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Table(name ="TrumpBook")
|
||||
|
@ -17,11 +16,10 @@ public class STrumpBook implements BaseConfig {
|
|||
|
||||
private int[][] skillList;
|
||||
|
||||
public static Map<Integer, STrumpBook> sTrumpBookMap;
|
||||
public static Map<Integer, STrumpBook> sTrumpBookMap;
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
sTrumpBookMap=new HashMap<>();
|
||||
sTrumpBookMap = STableManager.getConfig(STrumpBook.class);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue