青龙秘宝,新增任务类型

back_recharge
lilei 2020-08-17 19:53:26 +08:00
parent f73829b5d4
commit b797c85de6
10 changed files with 79 additions and 9 deletions

View File

@ -3254,6 +3254,9 @@ public class MapLogic {
idList.add(id);
}
BehaviorUtil.destoryCurPoint(user);
user.getUserMissionManager().onGameEvent(user, GameEvent.PLAY_MINI_GAME, 0);
MapInfoProto.MapGameResponse response = MapInfoProto.MapGameResponse.newBuilder().setType(mapGameInfo.getType()).addAllParam(idList).build();
MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true);
}

View File

@ -1260,6 +1260,10 @@ public class ActivityLogic implements IEventHandler{
}else{
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
}
PlayerInfoProto.TreasureLevelUpIndication indication = PlayerInfoProto.TreasureLevelUpIndication.newBuilder().setLevel(user.getPlayerInfoManager().getTreasureLevel()).build();
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.TREASURE_LEVELUP_INDICATION_VALUE,indication,true);
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
}

View File

@ -1,17 +1,18 @@
package com.ljsd.jieling.logic.activity;
import com.google.common.collect.Sets;
import com.ljsd.jieling.core.VipPrivilegeType;
import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.logic.dao.Item;
import com.ljsd.jieling.logic.dao.PlayerManager;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.VipInfo;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.logic.store.GiftGoodsType;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
@ -21,10 +22,7 @@ import com.ljsd.jieling.util.ItemUtil;
import com.ljsd.jieling.util.MessageUtil;
import config.*;
import javax.lang.model.type.PrimitiveType;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
public class TreasureActivity extends AbstractActivity {
@ -116,6 +114,7 @@ public class TreasureActivity extends AbstractActivity {
user.getPlayerInfoManager().updateVipPrivilage(VipPrivilegeType.DRAGON_TREASURE_SUPPLY,1);
int[][] rewards = SSpecialConfig.getTwiceArrayValue(SSpecialConfig.SUNLONG_REWARD);
dropList.add(rewards);
notifyClient(session,user);
} else if (missionId == -1) {
getAllTreasureRewards(user, activityMission, changeState, dropList);
} else {
@ -263,4 +262,16 @@ public class TreasureActivity extends AbstractActivity {
public void getAllMissRewards(User user, ISession session, List<int[][]> itemAttrs){
getAllTreasureRewards(user, user.getActivityManager().getActivityMissionMap().get(id), getChangerState(user), itemAttrs);
}
/**
*
* @param sesson
* @param user
*/
private void notifyClient(ISession sesson, User user) {
PlayerInfoProto.PrivilegeIndication.Builder indication = PlayerInfoProto.PrivilegeIndication.newBuilder();
Set<CommonProto.Privilege> privilege = PlayerLogic.getInstance().getPrivilege(user, Collections.singletonList(VipPrivilegeType.DRAGON_TREASURE_SUPPLY));
indication.addAllInfos(privilege);
MessageUtil.sendIndicationMessage(sesson, 1, MessageTypeProto.MessageType.PRIVILLEGE_ADD_INDICATION_VALUE, indication.build(), true);
}
}

View File

@ -21,6 +21,7 @@ import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.fight.*;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.mission.GameEvent;
import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.network.server.ProtocolsManager;
import com.ljsd.jieling.network.session.ISession;
@ -382,6 +383,7 @@ public class ChampionshipLogic {
if (user.getArenaManager().getTopMaxRank() == 0 || user.getArenaManager().getTopMaxRank() > rank) {
user.getArenaManager().setTopMaxRank(rank);
}
user.getUserMissionManager().onGameEvent(user, GameEvent.CHAMPIONSHIP_RANK, rank);
rank++;
String title = SErrorCodeEerverConfig.getI18NMessage("champion_reward_title");
String content = SErrorCodeEerverConfig.getI18NMessage("champion_reward_txt", new Object[]{sChampionshipReward.getTitleDesc()});

View File

@ -160,6 +160,9 @@ public class CumulationData {
//巅峰联赛名次
private int championshipRank;
//森罗幻境中参与小游戏次数
private int playMiniGameTimes;
public Result updateData(MissionType missionType, Object...parm) throws Exception {
return DataManagerDistributor.updateData(this, missionType,parm);
}
@ -354,4 +357,12 @@ public class CumulationData {
public void setChampionshipRank(int championshipRank) {
this.championshipRank = championshipRank;
}
public int getPlayMiniGameTimes() {
return playMiniGameTimes;
}
public void setPlayMiniGameTimes(int playMiniGameTimes) {
this.playMiniGameTimes = playMiniGameTimes;
}
}

View File

@ -99,6 +99,6 @@ public enum GameEvent {
CAR_PLAY_LOOT,//于车迟斗法中抢夺其他玩家积分num次//TODO
GOT_SOUL_MARK,//获取魂印事件
CHAMPIONSHIP_RANK,//巅峰联赛排名
PLAY_MINI_GAME,//参与森罗幻境小游戏
}

View File

@ -119,11 +119,11 @@ public enum MissionType {
CAR_PLAY_DAYS(110),//累计n天挑战车迟斗法
ARENA_CONSECUTIVE_WIN(111),//竞技场连胜
//森罗幻境中参与n次小游戏
PLAY_MINI_GAME_TIMES(112),//森罗幻境中参与n次小游戏
CHAMPIONSHIP_RANK(113),//巅峰联赛中达到num名
//天宫寻宝中接取任意星级任务n次
GOT_SOUL_MARK(115),//获得指定品质魂印数量
//累计探索森罗幻境n
//累计探索森罗幻境num
//充值达到num金额
;

View File

@ -139,7 +139,7 @@ public class DataManagerDistributor {
judges.put(MissionType.ARENA_CONSECUTIVE_WIN, new ArenaConsecutiveWinManager());
judges.put(MissionType.CHAMPIONSHIP_RANK, new ChampionshipRankManager());
judges.put(MissionType.PLAY_MINI_GAME_TIMES, new PlayMiniGameTimesManager());
}

View File

@ -0,0 +1,34 @@
package com.ljsd.jieling.logic.mission.data;
import com.ljsd.jieling.logic.dao.CumulationData;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mission.MissionType;
/**
* @author lilei
* @description
* @create 2020-08-17 15:17
*/
public class PlayMiniGameTimesManager extends AbstractDataManager {
@Override
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
CumulationData.Result result = null;
if (missionType == MissionType.PLAY_MINI_GAME_TIMES) {
data.setPlayMiniGameTimes(data.getPlayMiniGameTimes() + 1);
result = new CumulationData.Result(missionType);
}
return result;
}
@Override
public boolean isFinish(User user, CumulationData data, int[][] cfgValue, Object... parm) {
return data.getPlayMiniGameTimes() >= cfgValue[1][0];
}
@Override
public int getProcess(User user, CumulationData data, int[] missionSubType) {
return data.getPlayMiniGameTimes();
}
}

View File

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