lvxinran 2019-10-23 13:41:02 +08:00
commit d3158986b2
10 changed files with 51 additions and 67 deletions

View File

@ -105,7 +105,7 @@ public class CumulationData {
public Set<Integer> differentHeros = new HashSet<>();
public int buyGenerStoreTimes;
public Map<Integer,Integer> buyStoreTimes = new HashMap<>();
public int givePresents ; //好友赠礼
@ -115,68 +115,12 @@ public class CumulationData {
public int consumeAction;//无尽消耗行动力
public int takeFriendGifts;//领取好友赠礼次数
public Map<Integer,Integer> especialEquipStar = new HashMap<>();//法宝升到%s星级的数量为
//任务重置
public void reset(){
recruitmentRands=0;
buyGoldTimes =0;
buyStaminaTimes=0;
createEquips=0;
generalStoryTimes=0;
heroStoryTimes=0;
levelStoryTimes=0;
heroLevleTimes=0;
takeAdventurerewardTimes=0;
arenaFightsuccesTimes=0;
finsihDayilyTimes=0;
copyMaxLevel=0;
copyStoryTimes=0;
elementRands =0;
heroStoryPlayTimes=0;
invasionbossPlayTimes=0;
fastAdventurerewardTimes=0;
arenaRank=0;
exploreFight.clear();
storyFightInfo.clear();
heroLevleCountMap.clear();
levlePassMap.clear();
senvenScores = 0;
heroBreakTimes = 0;
takeChapterTimes = 0;
heroUpStarTimes = 0;
takeOnlineRewardTimes = 0;
takeSenvenLoinRewardTimes = 0;
takeDailyBoxTimes = 0;
wearEquipTimes = 0;
synthesisHeroStarTimesMap.clear();
clearArray(sEquipQualityCount);
clearArray(heroQualityCount);
consumerStamina=0;
differentHeros.clear();
heroUpStarTimesMap.clear();
heroInTeamNums=0;
buyGenerStoreTimes=0;
heroUpSomeStarTimesMap.clear();
givePresents=0;
friendNums=0;
monsterAttackTimes = 0;
toBeStronger = 0;
consumeAction = 0;
especialEquipStar.clear();
familyFightCount = 0;
findStar=0;
}
private void clearArray(int[] source){
for(int i =0;i<source.length;i++){
source[i]=0;
}
}
public Result updateData(MissionType missionType, Object...parm) throws Exception {
return DataManagerDistributor.updateData(this, missionType,parm);
}

View File

@ -575,6 +575,7 @@ public class FriendLogic {
return;
}
StringBuilder reward=new StringBuilder();
int takeTimes = 0;
if (type ==1){ //领取一个人
if (!friends.contains(friendId)) {
MessageUtil.sendErrorResponse(iSession, 0, msgId, "没有该好友");
@ -589,6 +590,7 @@ public class FriendLogic {
friendManager.updateHaveRewardMap(friendId,2);
playerInfoManager.updateVipPrivilage(STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getMaxEnergyGet(),1);
receieveFriends.add(friendId);
takeTimes++;
}else{
for (Integer friend : friends) {
if (haveRewardMap.containsKey(friend) && haveRewardMap.get(friend) != 1) {
@ -602,6 +604,7 @@ public class FriendLogic {
friendManager.updateHaveRewardMap(friend,2);
reward.append(SSpecialConfig.getStringValue(SSpecialConfig.Friend_Gift));
receieveFriends.add(friend);
takeTimes++;
}
}
@ -610,6 +613,7 @@ public class FriendLogic {
MessageUtil.sendErrorResponse(iSession, 0, msgId, "已领取赠礼");
return;
}
user.getUserMissionManager().onGameEvent(user,GameEvent.TAKE_FRIEND_GIFT,takeTimes);
CommonProto.Drop.Builder drop = ItemUtil.drop(user, StringUtil.parseFiledInt2(rewardStr), BIReason.FRIEND_GIVE);
PlayerInfoProto.FriendTakeHeartResponse friendTakeHeartResponse = PlayerInfoProto.FriendTakeHeartResponse
.newBuilder().setDrop(drop).addAllFriendId(receieveFriends)

View File

@ -66,6 +66,8 @@ public enum GameEvent {
FIND_STAR,//占星
TAKE_FRIEND_GIFT,//领取好友赠礼
}

View File

@ -312,12 +312,12 @@ public class MissionLoigc {
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.DAILY_MISSION_REWARD, missionId);
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.DAILYMISSION);
SDailyTasksConfig sDailyTasksConfig = SDailyTasksConfig.getSDailyTasksConfigById(missionId);
if(sDailyTasksConfig.getType() == MissionType.FINSIH_DAYILY_TIMES.getMissionTypeValue() && missionStateChangeInfos !=null){
if(sDailyTasksConfig.getType() == MissionType.FINSIH_DAYILY_TIMES.getMissionTypeValue() && missionStateChangeInfos !=null && !missionStateChangeInfos.isEmpty()){
user.getUserMissionManager().onGameEvent(user,GameEvent.TAKE_DAILY_BOX_REWARD);
}
}
if(type == GameMisionType.BEGINNERMISSION.getType()){ //日常 任务
if(type == GameMisionType.BEGINNERMISSION.getType()){ //新手 任务
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.BEGINNER_MISSION_REWARD, missionId);
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.BEGINNERMISSION);
}
@ -591,7 +591,10 @@ public class MissionLoigc {
count = cumulationData.heroInTeamNums;
break;
case BUY_GROCERY_TIMES:
count = cumulationData.buyGenerStoreTimes;
num = cumulationData.buyStoreTimes.get(missionSubType[0]);
if(num!=null){
count = num;
}
break;
case FRIEND_NUMS:
count = cumulationData.friendNums;
@ -626,6 +629,9 @@ public class MissionLoigc {
case ESPECIAL_EQUIP:
count = cumulationData.especialEquipStar.get(missionSubType[0]);
break;
case TAKE_FRIEND_GIFT:
count = cumulationData.takeFriendGifts;
break;
default:
count = 0;
break;

View File

@ -69,7 +69,7 @@ public enum MissionType {
HERO_IN_TEAM_NUMS(51), // 上阵卡牌数量
BUY_GROCERY_TIMES(52),//杂货店购买次数:%s
BUY_GROCERY_TIMES(52),//某商店购买次数
FRIEND_NUMS(53),//拥有好友的个数:%%s
GIVE_FRIEND_STAMIN_TIMES(54),//赠送好友体力次数:%s
HERO_UP_SOME_STAR_TIMES(55),//进阶x星卡牌个数达到%s
@ -81,7 +81,8 @@ public enum MissionType {
ENDLESS_CONSUME_ACTION(60),//无尽消耗行动力
FAMILY_FIGHT_ATTACK(61),//公会战进攻次数
ESPECIAL_EQUIP(62),//拥有%s星级法宝的数量为%s
FIND_STAR(65)//占星
FIND_STAR(65),//占星
TAKE_FRIEND_GIFT(66),//领取好友友情点
;
private int missionType;
@ -222,6 +223,8 @@ public enum MissionType {
return ESPECIAL_EQUIP;
case 65:
return FIND_STAR;
case 66:
return TAKE_FRIEND_GIFT;
default:
return null;
}

View File

@ -17,8 +17,13 @@ public class BuyGoodsManager implements BaseDataManager {
}else if(missionType == MissionType.BUY_STAMINA_TIMES && itemId == Global.STAMINA){
data.buyStaminaTimes = data.buyStaminaTimes + itemNum;
return new CumulationData.Result(missionType);
}else if(missionType == MissionType.BUY_GROCERY_TIMES && storeType == StoreType.GENERAL_STORE.getType()){
data.buyGenerStoreTimes = data.buyGenerStoreTimes + itemNum;
}else if(missionType == MissionType.BUY_GROCERY_TIMES){
Integer nums = data.buyStoreTimes.get(storeType);
if(nums == null){
nums=0;
}
nums+=itemNum;
data.buyStoreTimes.put(storeType,nums);
return new CumulationData.Result(missionType);
}
return null;

View File

@ -103,6 +103,8 @@ public class DataManagerDistributor {
judges.put(MissionType.FAMILY_FIGHT_ATTACK,new FamilyFightManager());
judges.put(MissionType.FIND_STAR,new FindStarManager());
judges.put(MissionType.TAKE_FRIEND_GIFT,new TakeFriendGiftTimesManager());
}

View File

@ -10,8 +10,9 @@ public class FinishDailyManager implements BaseDataManager{
int missionId = (int) parm[0];
if(SDailyTasksConfig.getSDailyTasksConfigById(missionId).getType()!= MissionType.FINSIH_DAYILY_TIMES.getMissionTypeValue()){
data.finsihDayilyTimes++;
return new CumulationData.Result(missionType);
}
return null;
return new CumulationData.Result(missionType);
}
}

View File

@ -0,0 +1,12 @@
package com.ljsd.jieling.logic.mission.data;
import com.ljsd.jieling.logic.dao.CumulationData;
import com.ljsd.jieling.logic.mission.MissionType;
public class TakeFriendGiftTimesManager implements BaseDataManager{
@Override
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
data.takeFriendGifts+=(int)(parm[0]);
return new CumulationData.Result(missionType);
}
}

View File

@ -269,6 +269,11 @@ public class MissionEventDistributor {
eventEnumListMap.put(GameEvent.FIND_STAR,typeList);
eventProcessor.put(GameEvent.FIND_STAR,new CumulationDataEventProcessor());
typeList = new ArrayList<>();
typeList.add(MissionType.TAKE_FRIEND_GIFT);
eventEnumListMap.put(GameEvent.TAKE_FRIEND_GIFT,typeList);
eventProcessor.put(GameEvent.TAKE_FRIEND_GIFT,new CumulationDataEventProcessor());
}
private static final ThreadLocal<Map<GameMisionType, List<MissionStateChangeInfo>>> threadMissionChangeList =