副本buff机制修改
parent
c715f31468
commit
21b5709798
|
@ -65,36 +65,42 @@ public class CombatLogic {
|
|||
|
||||
|
||||
|
||||
public Map<Integer,Integer> bufferOneHeroAttrAfterEat(Map<Integer,Integer> value,int foodId){
|
||||
SFoodsConfig sFoodsConfig = STableManager.getConfig(SFoodsConfig.class).get(foodId);
|
||||
if(value.get(HeroAttributeEnum.CurHP.getPropertyId()) == 0 || sFoodsConfig.getContiue()!=0){
|
||||
return value;
|
||||
}
|
||||
for(int[] effectPara : sFoodsConfig.getEffectPara()){
|
||||
int effectId = effectPara[0];
|
||||
int effectValue = effectPara[1];
|
||||
SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByPID(effectId);
|
||||
if( sPropertyConfig.getStyle() == GlobalsDef.PERCENT_TYPE){
|
||||
if(effectId == HeroAttributeEnum.CurHpExtra.getPropertyId()){
|
||||
effectId = HeroAttributeEnum.CurHP.getPropertyId();
|
||||
effectValue = value.get(HeroAttributeEnum.Hp.getPropertyId()) * effectValue/10000;
|
||||
}else{
|
||||
if(sPropertyConfig.getTargetPropertyId()!=0){
|
||||
effectId = sPropertyConfig.getTargetPropertyId();
|
||||
effectValue = value.get(effectId) * effectValue/10000;
|
||||
public Map<Integer,Integer> bufferOneHeroAttrAfterEat(Map<Integer,Integer> value,int foodId) {
|
||||
List<Integer> foodIds = new ArrayList<>();
|
||||
foodIds.add(foodId);
|
||||
return bufferOneHeroAttrAfterEat(value,foodIds);
|
||||
}
|
||||
public Map<Integer,Integer> bufferOneHeroAttrAfterEat(Map<Integer,Integer> value,List<Integer> foodIds){
|
||||
Map<Integer,Integer> effectValueMap = new HashMap<>();
|
||||
for(int foodId:foodIds){
|
||||
SFoodsConfig sFoodsConfig = STableManager.getConfig(SFoodsConfig.class).get(foodId);
|
||||
if(value.get(HeroAttributeEnum.CurHP.getPropertyId()) == 0 || sFoodsConfig.getContiue()!=0){
|
||||
return value;
|
||||
}
|
||||
for(int[] effectPara : sFoodsConfig.getEffectPara()){
|
||||
int effectId = effectPara[0];
|
||||
int effectValue = effectPara[1];
|
||||
SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByPID(effectId);
|
||||
if( sPropertyConfig.getStyle() == GlobalsDef.PERCENT_TYPE){
|
||||
if(effectId == HeroAttributeEnum.CurHpExtra.getPropertyId()){
|
||||
effectId = HeroAttributeEnum.CurHP.getPropertyId();
|
||||
effectValue = value.get(HeroAttributeEnum.Hp.getPropertyId()) * effectValue/10000;
|
||||
}else{
|
||||
if(sPropertyConfig.getTargetPropertyId()!=0){
|
||||
effectId = sPropertyConfig.getTargetPropertyId();
|
||||
effectValue = Double.valueOf(value.get(effectId) /10000d* effectValue).intValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
effectValueMap.put(effectId,effectValueMap.getOrDefault(effectId,0)+effectValue);
|
||||
}
|
||||
|
||||
if(!value.containsKey(effectId)){
|
||||
value.put(effectId,effectValue);
|
||||
continue;
|
||||
}
|
||||
int finalValue = value.get(effectId) + effectValue;
|
||||
}
|
||||
for(Map.Entry<Integer,Integer> entry:effectValueMap.entrySet()){
|
||||
int finalValue = value.get(entry.getKey()) + entry.getValue();
|
||||
if(finalValue < 0){
|
||||
finalValue = 0;
|
||||
}
|
||||
if(effectId == HeroAttributeEnum.CurHP.getPropertyId()){
|
||||
if(entry.getKey() == HeroAttributeEnum.CurHP.getPropertyId()){
|
||||
Integer maxValue = value.get(HeroAttributeEnum.Hp.getPropertyId());
|
||||
if(finalValue>maxValue){
|
||||
finalValue = maxValue;
|
||||
|
@ -103,7 +109,7 @@ public class CombatLogic {
|
|||
finalValue =1;
|
||||
}
|
||||
}
|
||||
value.put( effectId,finalValue );
|
||||
value.put(entry.getKey(),finalValue );
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
|
|
@ -218,9 +218,8 @@ public class FightUtil {
|
|||
for(Map.Entry<Integer,Integer> tempProperty:trailHero.getProperty().entrySet()){
|
||||
propertyMap.put(tempProperty.getKey(),tempProperty.getValue());
|
||||
}
|
||||
for(int buffId:buffIds){
|
||||
CombatLogic.getInstance().bufferOneHeroAttrAfterEat(propertyMap,buffId);
|
||||
}
|
||||
CombatLogic.getInstance().bufferOneHeroAttrAfterEat(propertyMap,buffIds);
|
||||
|
||||
}else{
|
||||
propertyMap = trailHero.getProperty();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue