同系祭品

back_recharge
duhui 2021-04-19 17:53:44 +08:00
parent 4761478c74
commit 174a0f799a
2 changed files with 33 additions and 4 deletions

View File

@ -1025,7 +1025,10 @@ public class HeroLogic{
int starLimit = sHeroRankupGroup.getStarLimit();
int isSameClan = sHeroRankupGroup.getIsSameClan();
int isId = sHeroRankupGroup.getIsId();
// 万能道具代替
List<Integer> items = Arrays.stream(sHeroRankupGroup.getItems()).boxed().collect(Collectors.toList());
// 专属道具代替
int[][] itemCamp = sHeroRankupGroup.getItemCamp();
for(HeroInfoProto.ConsumeItem consume : list){
// 英雄
if (consume.getType() == 1){
@ -1069,11 +1072,15 @@ public class HeroLogic{
}
// 道具
else {
if (!items.contains(Integer.parseInt(consume.getItemId()))){
throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT);
int itemId = Integer.parseInt(consume.getItemId());
if (!items.contains(itemId)){
boolean camp = upStartItemCamp(scHero.getPropertyName(), itemCamp, itemId);
if (!camp){
throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT);
}
}
Integer num = removeItemMap.getOrDefault(Integer.parseInt(consume.getItemId()), 0);
removeItemMap.put(Integer.parseInt(consume.getItemId()),num+1);
Integer num = removeItemMap.getOrDefault(itemId, 0);
removeItemMap.put(itemId,num+1);
}
}
// 校验道具数量
@ -1145,6 +1152,22 @@ public class HeroLogic{
ReportUtil.onReportEvent(user, ReportEventEnum.HERO_STRENGTHEN.getType(),String.valueOf(targetHero.getTemplateId()),String.valueOf(oldStar),String.valueOf(targetHero.getStar()),consume,reportConsumeHero.toString());
}
/**
*
* @param type
* @param itemCamp
* @param itemId
* @return
*/
private boolean upStartItemCamp(int type,int[][] itemCamp,int itemId){
for (int[] ints : itemCamp) {
if (type == ints[0] && itemId == ints[1]){
return true;
}
}
return false;
}
private void rankUpHeroExecute(Hero hero)throws Exception {
//是否解锁法宝

View File

@ -16,6 +16,8 @@ public class SHeroRankupGroup implements BaseConfig {
private int isId;
private int[] items;
private int[][] itemCamp;
@Override
public void init() throws Exception {
@ -44,4 +46,8 @@ public class SHeroRankupGroup implements BaseConfig {
public int[] getItems() {
return items;
}
public int[][] getItemCamp() {
return itemCamp;
}
}