英雄归元,被动技能战力增加
parent
3a8d9cc527
commit
a8a46da07b
|
@ -1,6 +1,7 @@
|
|||
package com.ljsd.jieling.logic.fight.passiveSkillCal;
|
||||
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import config.SCHero;
|
||||
import config.SPropertyConfig;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
@ -26,8 +27,8 @@ public enum PassiveskillCalEnum {
|
|||
parm = value[1]*10000;
|
||||
}
|
||||
|
||||
int extreeValue = (int) cal(optCode, parm);
|
||||
heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(),0)+extreeValue);
|
||||
int extraValue = (int) cal(optCode, parm);
|
||||
heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(),0)+extraValue);
|
||||
}),
|
||||
AllAdd(94,(config,hero,heroSkillAdMap)->{
|
||||
float[] value = config.getValue();
|
||||
|
@ -47,8 +48,8 @@ public enum PassiveskillCalEnum {
|
|||
parm = value[0]*10000;
|
||||
}
|
||||
|
||||
int extreeValue = (int) cal(optCode, parm);
|
||||
heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(),0)+extreeValue);
|
||||
int extraValue = (int) cal(optCode, parm);
|
||||
heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(),0)+extraValue);
|
||||
}),
|
||||
HEROAFTER100ADD(171,(config,hero,heroSkillAdMap)->{
|
||||
float[] value = config.getValue();
|
||||
|
@ -62,6 +63,30 @@ public enum PassiveskillCalEnum {
|
|||
int parm = (int) value[1]*times;
|
||||
heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(),0)+parm);
|
||||
}),//武将100级后每升一级[c]额外增加[d]
|
||||
HERO_PROFESSION_ADD(129,(config,hero,heroSkillAdMap)->{
|
||||
float[] value = config.getValue();
|
||||
|
||||
if(SCHero.getsCHero().get(hero.getTemplateId()).getProfession()!=value[0]){
|
||||
return;
|
||||
}
|
||||
float parm = value[1];
|
||||
int optCode = (int) value[3];
|
||||
|
||||
SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID((int)(value[2]));
|
||||
|
||||
if(optCode%2==0){
|
||||
if( sPropertyConfig.getStyle()!= GlobalsDef.PERCENT_TYPE){
|
||||
sPropertyConfig = SPropertyConfig.getsPropertyConfigByTargetPropertyId(sPropertyConfig.getPropertyId());
|
||||
}
|
||||
parm = value[0]*10000;
|
||||
}
|
||||
|
||||
if( sPropertyConfig.getStyle()== GlobalsDef.PERCENT_TYPE){
|
||||
parm = value[0]*10000;
|
||||
}
|
||||
int extraValue = (int) cal(optCode, parm);
|
||||
heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(),0)+extraValue);
|
||||
}),
|
||||
;
|
||||
private int type;
|
||||
private PassiveSkillProcessor passiveSkillProcessor;
|
||||
|
|
|
@ -2329,24 +2329,28 @@ public class HeroLogic{
|
|||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
}
|
||||
int star = hero.getStar();
|
||||
int breakId = hero.getBreakId();
|
||||
int templateId = hero.getTemplateId();
|
||||
int star = hero.getStar();
|
||||
Map<Integer, SHeroReturn> sHeroReturnMap = SHeroReturn.sheroReturnMap.get(templateId);
|
||||
if(sHeroReturnMap == null || !sHeroReturnMap.containsKey(star)){
|
||||
if(sHeroReturnMap == null || !sHeroReturnMap.containsKey(breakId)){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("not satisfy"));
|
||||
}
|
||||
SHeroReturn sHeroReturn = sHeroReturnMap.get(star);
|
||||
SHeroReturn sHeroReturn = sHeroReturnMap.get(breakId);
|
||||
boolean b = ItemUtil.itemCost(user, sHeroReturn.getReturnConsume(), BIReason.HERO_BACK_CONSUME, templateId * 100 + star);
|
||||
if(!b){
|
||||
throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT);
|
||||
}
|
||||
|
||||
heroManager.removeHero(uid,heroId);
|
||||
int[] returnMaterials = sHeroReturn.getRankupReturn();
|
||||
int[][] returnMaterials = sHeroReturn.getRankupReturn();
|
||||
int returnHero = sHeroReturn.getHeroId();
|
||||
//进阶材料返还乘万分比
|
||||
returnMaterials[1]*=(double)returnPercent/10000;
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user,new int[][]{returnMaterials}, BIReason.HERO_BACK_REWARD);
|
||||
int[][] realReturnMaterials = new int[returnMaterials.length][];
|
||||
for(int i = 0 ; i <realReturnMaterials.length;i++){
|
||||
realReturnMaterials[i] = new int[]{returnMaterials[i][0],(int)(returnMaterials[i][1]/10000d*returnPercent)};
|
||||
}
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user,realReturnMaterials, BIReason.HERO_BACK_REWARD);
|
||||
ItemUtil.drop(user, new int[][]{{returnHero,1}},drop, BIReason.HERO_BACK_REWARD);
|
||||
CommonProto.Hero.Builder heroProto = drop.getHero(0).toBuilder();
|
||||
String createHeroId = heroProto.getId();
|
||||
|
|
|
@ -33,12 +33,6 @@ public class SHeroReturn implements BaseConfig {
|
|||
for(SHeroReturn sHeroReturn : config.values()){
|
||||
int heroId = sHeroReturn.getHeroId();
|
||||
int star = sHeroReturn.getStar();
|
||||
int[][] rankUpReturn = sHeroReturn.getRankupReturn();
|
||||
int[][] returnMaterialsTmp = new int[rankUpReturn.length][];
|
||||
for(int i=0;i<rankUpReturn.length;i++){
|
||||
returnMaterialsTmp[i]=rankUpReturn[i];
|
||||
}
|
||||
sHeroReturn.setReturnMaterials(returnMaterialsTmp);
|
||||
sheroReturnMap.computeIfAbsent(heroId,v->new HashMap<>()).put(star,sHeroReturn);
|
||||
}
|
||||
}
|
||||
|
@ -71,8 +65,4 @@ public class SHeroReturn implements BaseConfig {
|
|||
public int[][] getReturnMaterials() {
|
||||
return returnMaterials;
|
||||
}
|
||||
|
||||
public void setReturnMaterials(int[][] returnMaterials) {
|
||||
this.returnMaterials = returnMaterials;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue