修仙修改

back_recharge
jiahuiwen 2021-11-24 11:30:48 +08:00
parent a4027f9f0f
commit 294bae6c89
2 changed files with 39 additions and 4 deletions

View File

@ -1,5 +1,6 @@
package com.ljsd.jieling.handler.hero;
import com.googlecode.protobuf.format.JsonFormat;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.handler.BaseHandler;
@ -43,20 +44,42 @@ public class XiuxianLevelUpRequestHandler extends BaseHandler<HeroInfoProto.Sixi
}
PlayerManager playerInfoManager = user.getPlayerInfoManager();
int xiuweiLevel = heroManager.getXiuweiLevel();
int maxLevel = SSpecialConfig.getIntegerValue(SSpecialConfig.FightForPerXiuweiLevel);
int[] maxLevelArr = SSpecialConfig.getOnceArrayValue(SSpecialConfig.MaxXiuweiLevel);
int maxLevel = maxLevelArr[maxLevelArr.length - 1];
if (xiuweiLevel >= maxLevel) {
throw new ErrorCodeException("已修行至最大等级");
}
int integerValue = SSpecialConfig.getIntegerValue(SSpecialConfig.FightForPerXiuweiLevel);
int maxForce = playerInfoManager.getMaxForce();
int curMaxLevel = maxForce / integerValue;
long[] fightForPerXiuweiForces = SSpecialConfig.getOnceArrayLongValue(SSpecialConfig.FightForPerXiuweiForces);
int curIndex = -1;
for (int i = 0; i < fightForPerXiuweiForces.length; i++) {
if (maxForce < fightForPerXiuweiForces[i]) {
curIndex = i;
break;
}
}
int curMaxLevel = 0;
if (curIndex == -1) {
curMaxLevel = maxLevel;
} else {
int integerValue[] = SSpecialConfig.getIntegerArrayValue(SSpecialConfig.FightForPerXiuweiLevel);
int fightForPerXiuweiLevel = integerValue[curIndex];
if (curIndex - 1 >= 0) {
maxForce -= fightForPerXiuweiForces[curIndex - 1];
}
curMaxLevel = maxForce / fightForPerXiuweiLevel;
if (curIndex - 1 >= 0) {
curMaxLevel += maxLevelArr[curIndex - 1];
}
}
if (xiuweiLevel >= curMaxLevel) {
throw new ErrorCodeException("已修行至当前战力最大等级");
}
heroManager.setXiuweiLevel(curMaxLevel);
HeroInfoProto.XiuxianLevelUpResponse xiuxianLevelUpResponse = HeroInfoProto.XiuxianLevelUpResponse.newBuilder()
.setXiuxianLevel(heroManager.getXiuweiLevel())
.setXiuxianLevel(curMaxLevel)
.build();
String s = JsonFormat.printToString(xiuxianLevelUpResponse);
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.XIUXIAN_XIUWEI_UP_RESPONSE_VALUE, xiuxianLevelUpResponse, true);
}
}

View File

@ -39,6 +39,7 @@ public class SSpecialConfig implements BaseConfig {
public static final String MaxXiuweiLevel = "MaxXiuweiLevel";//修为等级最大值
public static final String FightForPerXiuweiLevel = "FightForPerXiuweiLevel";//修为单级别所需战力
public static final String FightForPerXiuweiForces = "FightForPerXiuweiForces";//修为各阶段最大战力
public static final String DailyNumForStarsOfHardStage = "DailyNumForStarsOfHardStage";//每有1困难关卡星级每日可领取玉衡龙魂丹数量
public static final String BasicNumOfHardStage = "BasicNumOfHardStage";//每日领取玉衡龙魂丹基础数量
@ -158,6 +159,17 @@ public class SSpecialConfig implements BaseConfig {
}
return arrayNum;
}
public static long[] getOnceArrayLongValue(String key) {
String value = enumers.get(key);
String[] array = value.split("\\#");
long[] arrayNum = new long[array.length];
for (int i = 0; i < array.length; i++) {
arrayNum[i] = Long.parseLong(array[i]);
}
return arrayNum;
}
public static List<Integer> getListValue(String key) {
List<Integer> list = new LinkedList<>();
String value = enumers.get(key);