特权加成主线挑战奖励

back_recharge
duhui 2022-11-04 17:58:00 +08:00
parent e7c9be735a
commit 861a89cc42
4 changed files with 79 additions and 36 deletions

View File

@ -1687,7 +1687,6 @@ public class MapLogic {
FightInfoProto.FightStartResponse.Builder fightStartResponse = FightInfoProto.FightStartResponse.newBuilder();
BehaviorUtil.getLevelDifficultyifficuFightInfo(user, FightType.StoryFight, sMainLevelConfig.getMonsterGroup(), teamId, sMainLevelConfig.getRankTime(), fightStartResponse, RedisKey.LEVE_DIFFICULTY_FIGHT);
MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightStartResponse.build(), true);
}
/**
@ -1820,7 +1819,7 @@ public class MapLogic {
return;
}
}
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sMainLevelConfig.getReward(), 1, 0, BIReason.LEVELDIFFICULTY_FIGHT_REWARD);
CommonProto.Drop.Builder drop = ItemUtil.dropToPrivilege(user, sMainLevelConfig.getReward(), BIReason.LEVELDIFFICULTY_FIGHT_REWARD);
openNextMainLevel(session, user, fightId);
FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse.newBuilder();
fightEndResponse.setEnventDrop(drop);
@ -1828,9 +1827,10 @@ public class MapLogic {
fightEndResponse.build();
MainLevelManager mainLevelManager = user.getMainLevelManager();
FightInfoProto.MainLevelFightUpdateIndication build = FightInfoProto.MainLevelFightUpdateIndication.newBuilder().setState(mainLevelManager.getState()).setFightId(mainLevelManager.getFightId()).build();
RankContext.getRankEnum(RankEnum.MAIN_LEVEL_RANK.getType()).addRank(uid, "", sMainLevelConfig.getVirtureId(), user.getPlayerInfoManager().getMaxForce());
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.MAIN_LEVEL_FIGHT_UPDATE_INDICATION_VALUE, build, true);
MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true);
RankContext.getRankEnum(RankEnum.MAIN_LEVEL_RANK.getType()).addRank(uid, "", sMainLevelConfig.getVirtureId(), user.getPlayerInfoManager().getMaxForce());
ReportUtil.onReportEvent(user, ReportEventEnum.PASS_STAGE.getType(), String.valueOf(fightId), "", sMainLevelConfig.getReward(), new Date());
}

View File

@ -38,7 +38,7 @@ public class FightEndRequestHandler extends BaseHandler {
case 5:
MapLogic.getInstance().endMonsterAttackFight(iSession, frames,MessageTypeProto.MessageType.FIGHT_END_RESPONSE);
break;
case 6:
case 6://主线
MapLogic.getInstance().endMainLevelFight(iSession, frames, fightEndRequest.getFightId(), MessageTypeProto.MessageType.FIGHT_END_RESPONSE);
break;
case 7:

View File

@ -36,7 +36,7 @@ public class StartFightRequestHandler extends BaseHandler<FightInfoProto.FightSt
case 5:
MapLogic.getInstance().startMonsterAttackFight(iSession,fightId,teamId, MessageTypeProto.MessageType.FIGHT_START_RESPONSE);
break;
case 6:
case 6://主线
MapLogic.getInstance().startMainLevelFight(iSession,fightId,teamId, MessageTypeProto.MessageType.FIGHT_START_RESPONSE);
break;
case 7:

View File

@ -203,10 +203,8 @@ public class ItemUtil {
}
//活动额外掉落
public static void activityDrop(User user,CommonProto.Drop.Builder dropBuilder ,int[] dropGroupIds, float dropRatio,int reason) throws Exception {
ItemMap itemObj = new ItemMap();
combineRewardDropGroup(user, dropGroupIds, dropRatio,itemObj);
// useRandomItem(user, randomMap,reason);
mapToAdd(user,itemObj,dropBuilder,reason);
}
@ -258,6 +256,21 @@ public class ItemUtil {
return dropBuilder;
}
/**
*
* @param user
* @param dropGroupIds
* @return
* @throws Exception
*/
public static CommonProto.Drop.Builder dropToPrivilege(User user, int[] dropGroupIds, int reason) throws Exception {
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
ItemMap itemObj = new ItemMap();
combineRewardDropGroup(user, dropGroupIds, 1,itemObj);
privilegeAddToMainLevelChallenge(user, itemObj);
mapToAdd(user,itemObj,dropBuilder,reason);
return dropBuilder;
}
public static CommonProto.Drop.Builder drop(User user, int[] dropGroupIds,CommonProto.Drop.Builder dropBuilder,float dropRatio, int isMapping,int reason) throws Exception {
ItemMap itemObj = new ItemMap();
@ -1866,45 +1879,31 @@ public class ItemUtil {
/**
*
* @param user
* @param reason
* @param itemType
* @param sourceNum
* @param itemMap
* @return
*/
public static long privilegeAdd(User user,int reason,int itemType,long sourceNum){
// 基础奖励,挑战
if(reason == BIReason.ADVENTURE_BASE_REWARD){
sourceNum = baseReward(user, itemType, sourceNum);
public static void privilegeAddToMainLevelChallenge(User user, ItemMap itemMap){
HashMap<Integer, Long> map = new HashMap<>();
// 基础奖励,挂机
for (Map.Entry<Integer, Long> entry : itemMap.getItemMap().entrySet()) {
long num = challengeRewardNum(user, entry.getKey(), entry.getValue());
map.put(entry.getKey(),num);
}
// 随机奖励,挂机
if(reason == BIReason.ADVENTURE_RANDOM_REWARDD){
sourceNum = randomReward(user, itemType, sourceNum);
}
return sourceNum;
itemMap.setItemMap(map);
}
/**
*
* @param user
* @param itemType
* @param itemId
* @param sourceNum
* @return
*/
private static long baseReward(User user,int itemType,long sourceNum){
switch (itemType){
private static long challengeRewardNum(User user,int itemId,long sourceNum){
switch (itemId){
case Global.EXP:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_EXP_REWARD);
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.CHALLENGE_MAINLINE_ADD_USER_EXP);
break;
case Global.MISSING_ROOM_ITEM:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum, VipPrivilegeType.ADVENTURE_BASE_REWARD);
break;
case GlobalItemType.MINERAL:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_MINERAL_REWARD);
break;
case GlobalItemType.RUNNE:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_RUNNE_REWARD);
break;
case GlobalItemType.ONE_RMB_RECHARGE_CARD:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.CHALLENGE_MAINLINE_ADD_ONE_RECHARGE_NUM);
break;
@ -1915,7 +1914,54 @@ public class ItemUtil {
}
/**
*
*
* @param user
* @param reason
* @param itemType
* @param sourceNum
* @return
*/
public static long privilegeAdd(User user,int reason,int itemType,long sourceNum){
// 基础奖励,挂机
if(reason == BIReason.ADVENTURE_BASE_REWARD){
sourceNum = baseReward(user, itemType, sourceNum);
}
// 随机奖励,挂机
if(reason == BIReason.ADVENTURE_RANDOM_REWARDD){
sourceNum = randomReward(user, itemType, sourceNum);
}
return sourceNum;
}
/**
*
* @param user
* @param itemType
* @param sourceNum
* @return
*/
private static long baseReward(User user,int itemType,long sourceNum){
switch (itemType){
case Global.EXP:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_EXP_REWARD);
break;
case Global.MISSING_ROOM_ITEM:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum, VipPrivilegeType.ADVENTURE_BASE_REWARD);
break;
case GlobalItemType.MINERAL:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_MINERAL_REWARD);
break;
case GlobalItemType.RUNNE:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_RUNNE_REWARD);
break;
default:
break;
}
return sourceNum;
}
/**
*
* @param user
* @param itemType
* @param sourceNum
@ -1929,9 +1975,6 @@ public class ItemUtil {
case GlobalItemType.RUNNE:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.ADVENTURE_RUNNE_REWARD);
break;
case GlobalItemType.ONE_RMB_RECHARGE_CARD:
sourceNum = parseTheValueByPrivilegeMap(user,sourceNum,VipPrivilegeType.HANGUP_ADD_ONE_RECHARGE_NUM);
break;
default:
break;
}