新增任务类型 戒灵秘宝积分
parent
26c1259480
commit
e553272029
|
@ -2,6 +2,7 @@ package com.ljsd.jieling.handler.Expedition;
|
|||
|
||||
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
|
||||
import com.ljsd.jieling.config.clazzStaticCfg.PlayStaticConfig;
|
||||
import com.ljsd.jieling.config.clazzStaticCfg.WorldBossTreasureStaticConfig;
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
|
@ -18,13 +19,12 @@ import com.ljsd.jieling.protocols.Expedition;
|
|||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SExpeditionNodeConfig;
|
||||
import config.SExpeditionSetting;
|
||||
import config.SWorldBossTreasureConfig;
|
||||
import manager.STableManager;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Description: TOFIX 删除猎妖之路的原层数宝箱奖励功能。改为通关奖励
|
||||
|
@ -99,6 +99,9 @@ public class TakeLayRewardHandler extends BaseHandler<Expedition.TakeExpeditionB
|
|||
|
||||
int[][] fourthOpenRule = sExpeditionSetting.getFourthOpenRule();
|
||||
|
||||
SExpeditionNodeConfig sExpeditionNodeConfig = STableManager.getConfig(SExpeditionNodeConfig.class).get(nodeInfo.getType());
|
||||
int[][] taskScore = sExpeditionNodeConfig.getTaskScore();
|
||||
int score;
|
||||
if(expeditionManager.getExpeditionLeve()==2){
|
||||
objects.add(3);
|
||||
expeditionManager.setExpeditionLeve(expeditionManager.getExpeditionLeve()+1);
|
||||
|
@ -110,17 +113,26 @@ public class TakeLayRewardHandler extends BaseHandler<Expedition.TakeExpeditionB
|
|||
}
|
||||
ExpeditionManager manager = user.getExpeditionManager();
|
||||
manager.clearExpeditionNodeInfos();
|
||||
score= taskScore[1][1];
|
||||
}else if(expeditionManager.getExpeditionLeve()==1){
|
||||
expeditionManager.setExpeditionLeve(expeditionManager.getExpeditionLeve()+1);
|
||||
objects.add(2);
|
||||
ExpeditionManager manager = user.getExpeditionManager();
|
||||
manager.clearExpeditionNodeInfos();
|
||||
score= taskScore[0][1];
|
||||
}else {
|
||||
score= taskScore[2][1];
|
||||
}
|
||||
|
||||
if(expeditionManager.getExpeditionLeve()==3){
|
||||
expeditionManager.setPassTimes(expeditionManager.getPassTimes()+1);
|
||||
}
|
||||
user.getExpeditionManager().addRewardBox(laycfg);
|
||||
|
||||
user.getExpeditionManager().addScore(score);
|
||||
Map<Integer, Integer> rewardStatusMap = user.getExpeditionManager().getWorldTreasureReward().getRewardStatusMap();
|
||||
ExpeditionLogic.sendTreasureRewardUpdate(iSession,user.getExpeditionManager().getWorldTreasureReward().getScore(),rewardStatusMap);
|
||||
|
||||
Expedition.TakeExpeditionBoxRewardResponse builder = Expedition.TakeExpeditionBoxRewardResponse.newBuilder().setDrop(drop).addAllLeve(objects).build();
|
||||
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_TAKE_BOXREWARD_RESONSE_VALUE, builder, true);
|
||||
|
||||
|
|
|
@ -235,6 +235,7 @@ public class BehaviorUtil {
|
|||
.setUnitSkillIds(heroSkill.substring(0,heroSkill.length()-1))
|
||||
.setProperty(property.substring(0, property.length()-1))
|
||||
.setPosition(teamPosHeroInfo.getPosition())
|
||||
.setStar(hero.getStar())
|
||||
.build();
|
||||
heroFightInfos.add(heroFightInfo);
|
||||
}
|
||||
|
@ -275,6 +276,7 @@ public class BehaviorUtil {
|
|||
.setUnitId(Integer.toString(hero.getTemplateId()))
|
||||
.setUnitSkillIds(heroSkill.substring(0,heroSkill.length()-1))
|
||||
.setProperty(property.substring(0, property.length()-1))
|
||||
.setStar(hero.getStar())
|
||||
.build();
|
||||
heroFightInfos.add(heroFightInfo);
|
||||
}
|
||||
|
@ -319,6 +321,7 @@ public class BehaviorUtil {
|
|||
.setUnitSkillIds(heroSkill.substring(0,heroSkill.length()-1))
|
||||
.setProperty(property.substring(0, property.length()-1))
|
||||
.setPosition(++i)
|
||||
.setStar(hero.getStar())
|
||||
.build();
|
||||
heroFightInfos.add(heroFightInfo);
|
||||
}
|
||||
|
@ -363,6 +366,7 @@ public class BehaviorUtil {
|
|||
.setUnitSkillIds(heroSkill.substring(0,heroSkill.length()-1))
|
||||
.setProperty(property.substring(0, property.length()-1))
|
||||
.setPosition(++i)
|
||||
.setStar(heroStar)
|
||||
.build();
|
||||
heroFightInfos.add(heroFightInfo);
|
||||
}
|
||||
|
|
|
@ -118,6 +118,7 @@ public class BloodLogic {
|
|||
.setUnitSkillIds(heroSkill)//.substring(0, heroSkill.length() - 1)
|
||||
.setProperty(property.substring(0, property.length() - 1))
|
||||
.setPosition(++index)
|
||||
.setStar(entry.getValue().getStar())
|
||||
.build();
|
||||
heroDefendFightInfos.add(heroFightInfo);
|
||||
}
|
||||
|
|
|
@ -132,6 +132,16 @@ public class CumulationData {
|
|||
public Map<Integer,Integer> servenGiftTimes = new HashMap<>();//每日登陆次数
|
||||
public Map<Integer,Integer> dailyChallengeMap = new HashMap<>();//每日挑战副本
|
||||
|
||||
public int card_random_type;//使用普通召唤num次(十连抽num计10)
|
||||
public Map<Integer,Integer> guild_give_time ;//使用level级别(0不限、1普通、2钻石小、3钻石大)的公会捐献num次
|
||||
public int ten_challenge_time;// 挑战十绝阵num次
|
||||
// public Map<Integer,Integer> finisin_daily_challenge_times;//完成type(0不限、1金币、2武将经验、3武将碎片、4兵魂、5谋略)的日常副本num次
|
||||
public int six_random_times;//使用6灵阁召唤num次
|
||||
public Map<Integer,Integer> expedition_floor_times;//猎妖之路通过floor层num次
|
||||
public int decompose_times;//献祭武将次数
|
||||
public int death_path_times;// 击杀过关十绝阵num次
|
||||
public int jewl_all_leve;//全体上阵成员法宝等级达到level(需求人数6人,不满上阵不计完成度)
|
||||
|
||||
|
||||
|
||||
public Result updateData(MissionType missionType, Object...parm) throws Exception {
|
||||
|
|
|
@ -963,6 +963,7 @@ public class ExpeditionLogic {
|
|||
.setUnitSkillIds(heroSkill.substring(0,heroSkill.length()-1))
|
||||
.setProperty(property.substring(0, property.length()-1))
|
||||
.setPosition(teamPosHeroInfo.getPosition())
|
||||
.setStar(hero.getStar())
|
||||
.build();
|
||||
heroFightInfos.add(heroFightInfo);
|
||||
}
|
||||
|
|
|
@ -2029,6 +2029,22 @@ public class HeroLogic{
|
|||
}
|
||||
|
||||
|
||||
//妖灵师是否在阵容中
|
||||
public Set<Integer> isInTeam(User user,String heroId){
|
||||
Map<Integer, List<TeamPosHeroInfo>> teamPosForHero = user.getTeamPosManager().getTeamPosForHero();
|
||||
Set<Integer> collect = teamPosForHero.entrySet().stream().filter(integerListEntry ->
|
||||
{
|
||||
for (TeamPosHeroInfo teamPos : integerListEntry.getValue()) {
|
||||
if (teamPos.getHeroId().equals(heroId)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}).map(Map.Entry::getKey).collect(Collectors.toSet());
|
||||
return collect;
|
||||
}
|
||||
|
||||
|
||||
//妖灵师是否在阵容中
|
||||
public boolean isBattleArray (User user,String heroId){
|
||||
Map<Integer, List<TeamPosHeroInfo>> teamPosForHero = user.getTeamPosManager().getTeamPosForHero();
|
||||
|
|
|
@ -470,7 +470,7 @@ public class ItemLogic {
|
|||
if(b){
|
||||
hero.updateEspecial(hero.getEspecialEquipLevel()+1);
|
||||
Poster.getPoster().dispatchEvent(new EspecialEquipUpEvent(user.getId(),especialEquipId, hero.getEspecialEquipLevel()));
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ESPECIAL_EQUIP,hero.getEspecialEquipLevel());
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ESPECIAL_EQUIP,hero.getEspecialEquipLevel(),heroId);
|
||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,null,true);
|
||||
if(hero.getEspecialEquipLevel()>=SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_rankup_equiptalisman_content_parm)){
|
||||
SItem sItem = SItem.getsItemMap().get(especialEquipId);
|
||||
|
@ -480,6 +480,7 @@ public class ItemLogic {
|
|||
String message = SErrorCodeEerverConfig.getI18NMessage("lamp_rankup_equiptalisman_content", new Object[]{user.getPlayerInfoManager().getNickName(), sItem.getName(),hero.getEspecialEquipLevel()});
|
||||
ChatLogic.getInstance().sendSysChatMessage(message,Global.DILIGENT,sItem.getId(),0,0,0,0,0);
|
||||
}
|
||||
|
||||
}else{
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_ESPECIAL_EQUIP_UP_ITEM_NOT);
|
||||
}
|
||||
|
|
|
@ -775,6 +775,22 @@ public class MissionLoigc {
|
|||
count = cumulationData.dailyChallengeMap.get(missionSubType[0]);
|
||||
}
|
||||
break;
|
||||
case CARD_RANDOM_TYPE:
|
||||
count = cumulationData.card_random_type;
|
||||
break;
|
||||
case GUILD_GIVE_TIME:
|
||||
count = cumulationData.guild_give_time.get(missionSubType[0]);
|
||||
break;
|
||||
case TEN_CHALLENGE_TIME:
|
||||
count = cumulationData.ten_challenge_time;
|
||||
break;
|
||||
case SIX_RANDOM_TIMES:
|
||||
count = cumulationData.six_random_times;
|
||||
break;
|
||||
case EXPEDITION_FLOOR_TIMES:
|
||||
count = cumulationData.expedition_floor_times.get(missionSubType[0]);
|
||||
break;
|
||||
//100以后类型继承 AbstractDataManager
|
||||
default:
|
||||
count = 0;
|
||||
break;
|
||||
|
|
|
@ -88,13 +88,20 @@ public enum MissionType {
|
|||
COMHERO_STORY_PASS(72), //通关剧情副本或精英副本%s次
|
||||
LOGIN_TIMES(73), //当日登录%s次
|
||||
REARGE_TOTAL(74), //累计充值
|
||||
|
||||
CARD_RANDOM_TYPE(75),// 使用普通召唤num次(十连抽num计10)
|
||||
FINISH_MISSING_ROOM(76),//完成迷宫寻宝%品质%次
|
||||
REFRESH_MISSING_ROOM(77),//刷新迷宫寻宝%s次
|
||||
SPECIAL_EQUIP_LEVEL_UP(78),//法宝提升到%s级
|
||||
|
||||
GUILD_GIVE_TIME(79),//使用level级别(0不限、1普通、2钻石小、3钻石大)的公会捐献num次
|
||||
TEN_CHALLENGE_TIME(80),//挑战十绝阵num次
|
||||
|
||||
LUCKY_WHEELS_TIMES(83),//幸运探宝%次
|
||||
FINISH_EXPEDITION_HERO_TIMES(84),//完成猎妖之路次数达到
|
||||
SEVEN_GIFT_BUY(86),//购买7日狂欢福利礼包%s次七日狂欢积分
|
||||
FINISIN_DAILY_CHALLENGE_TIMES(87),//完成%s类型(0为不限类型)的日常副本%s次
|
||||
|
||||
SIX_RANDOM_TIMES(88),//使用6灵阁召唤num次
|
||||
EXPEDITION_FLOOR_TIMES(89),//猎妖之路通过第floor层的首领节点(每层最多一个)num次
|
||||
DECOMPOSE_TIMES(100),//献祭武将num个
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package com.ljsd.jieling.logic.mission.data;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
||||
public abstract class AbstractDataManager implements BaseDataManager,IBaseDataCheck{
|
||||
|
||||
@Override
|
||||
public boolean ishit(User user, CumulationData data, int[] missionSubType,Object... parm) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFinish(User user,CumulationData data,int[][] cfgValue, Object... parm) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getprocess(User user, CumulationData data, int[] missionSubType) {
|
||||
return 0;
|
||||
}
|
||||
}
|
|
@ -1,9 +1,16 @@
|
|||
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.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
|
||||
/**
|
||||
* 类型数据更新器 更新指定类型
|
||||
* fix 1 为类型处理器新增 进度获取和状态获取方法 IBaseDataCheck
|
||||
*
|
||||
* TODO fix指定类型使用了明确的字段 字段应该统一 现在每个类型都有字段来标识
|
||||
*/
|
||||
public interface BaseDataManager {
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object ...parm);
|
||||
CumulationData.Result updateData(CumulationData data, MissionType missionType, Object ...parm);
|
||||
}
|
||||
|
|
|
@ -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 CarRandomTimeManager implements BaseDataManager {
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
data.card_random_type++;
|
||||
return new CumulationData.Result(missionType);
|
||||
}
|
||||
}
|
|
@ -117,9 +117,15 @@ public class DataManagerDistributor {
|
|||
judges.put(MissionType.FINISH_EXPEDITION_HERO_TIMES,new ExpeditionManager());
|
||||
judges.put(MissionType.LOGIN_TIMES,new LoginTimeManager());
|
||||
judges.put(MissionType.SEVEN_GIFT_BUY,new SevenGiftManager());
|
||||
|
||||
judges.put(MissionType.CARD_RANDOM_TYPE,new CarRandomTimeManager());
|
||||
judges.put(MissionType.GUILD_GIVE_TIME,new GuildGiveTypeManger());
|
||||
judges.put(MissionType.FINISIN_DAILY_CHALLENGE_TIMES,new FinishDailyChallengeManger());
|
||||
|
||||
|
||||
judges.put(MissionType.SIX_RANDOM_TIMES,new SixRandomTimes());
|
||||
judges.put(MissionType.EXPEDITION_FLOOR_TIMES,new ExpeditionPassManger());
|
||||
judges.put(MissionType.DECOMPOSE_TIMES,new DecomposeTimes());
|
||||
judges.put(MissionType.DEATH_PATH_TIMES,new DeathPathTimes());
|
||||
judges.put(MissionType.JEWL_ALL_LEVE,new UpJewlDataManager());
|
||||
|
||||
}
|
||||
|
||||
|
@ -130,4 +136,8 @@ public class DataManagerDistributor {
|
|||
}
|
||||
return updater.updateData(data, missionType,parm);
|
||||
}
|
||||
|
||||
public static BaseDataManager getMissTypeData( MissionType missionType) {
|
||||
return judges.get(missionType);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
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;
|
||||
|
||||
/**
|
||||
* Description: 击杀过关十绝阵num次
|
||||
* Author: zsx
|
||||
* CreateDate: 2020/6/4 4:21
|
||||
*/
|
||||
public class DeathPathTimes extends AbstractDataManager {
|
||||
@Override
|
||||
public boolean isFinish(User user, CumulationData data, int[][] cfgValue, Object... parm) {
|
||||
return data.death_path_times>cfgValue[1][0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getprocess(User user, CumulationData data, int[] missionSubType) {
|
||||
return data.death_path_times;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
data.death_path_times+=(int)(parm[0]);
|
||||
return new CumulationData.Result(missionType);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
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;
|
||||
|
||||
/**
|
||||
* Description: 献祭武将num个
|
||||
* Author: zsx
|
||||
* CreateDate: 2020/6/4 4:21
|
||||
*/
|
||||
public class DecomposeTimes extends AbstractDataManager {
|
||||
@Override
|
||||
public boolean isFinish(User user, CumulationData data, int[][] cfgValue, Object... parm) {
|
||||
return data.decompose_times>cfgValue[1][0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getprocess(User user, CumulationData data, int[] missionSubType) {
|
||||
return data.decompose_times;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
data.decompose_times+=(int)(parm[0]);
|
||||
return new CumulationData.Result(missionType);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package com.ljsd.jieling.logic.mission.data;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
|
||||
|
||||
/**
|
||||
* Description: 猎妖之路通过第floor层的首领节点(每层最多一个)num次
|
||||
* Author: zsx
|
||||
* CreateDate: 2020/6/1 14:13
|
||||
*/
|
||||
public class ExpeditionPassManger implements BaseDataManager{
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
int type = (int) parm[0];
|
||||
data.expedition_floor_times.put(type,data.expedition_floor_times.getOrDefault(type, 0)+1);
|
||||
return new CumulationData.Result(missionType);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package com.ljsd.jieling.logic.mission.data;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
|
||||
|
||||
/**
|
||||
* Description: 使用level级别(0不限、1普通、2钻石小、3钻石大)的公会捐献num次
|
||||
* Author: zsx
|
||||
* CreateDate: 2020/6/1 14:13
|
||||
*/
|
||||
public class GuildGiveTypeManger implements BaseDataManager{
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
int type = (int) parm[0];
|
||||
data.guild_give_time.put(type,data.guild_give_time.getOrDefault(type, 0)+1);
|
||||
return new CumulationData.Result(missionType);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
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;
|
||||
|
||||
/**
|
||||
* 类型数据更新器 更新指定类型
|
||||
* fix 1 为类型处理器新增 进度获取和状态获取方法
|
||||
*/
|
||||
public interface IBaseDataCheck {
|
||||
|
||||
/**
|
||||
* TODO 事件更新进度 把事件分发条件判断转移到任务类型实现
|
||||
*/
|
||||
boolean ishit(User user, CumulationData data, int[] missionSubType,Object... parm);
|
||||
|
||||
/**
|
||||
* 进度完成 由类型区分 而不用把所有所有数据都揉到一起
|
||||
*/
|
||||
boolean isFinish(User user,CumulationData data, int[][] cfgValue, Object... parm);
|
||||
|
||||
/**
|
||||
* 在已有的映射关系里面取字段
|
||||
*/
|
||||
int getprocess(User user, CumulationData cumulationData, int[] missionSubType);
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package com.ljsd.jieling.logic.mission.data;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
|
||||
/**
|
||||
* Description: 使用6灵阁召唤num次
|
||||
* Author: zsx
|
||||
* CreateDate: 2020/6/1 14:13
|
||||
*/
|
||||
public class SixRandomTimes implements BaseDataManager {
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
data.six_random_times++;
|
||||
return new CumulationData.Result(missionType);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package com.ljsd.jieling.logic.mission.data;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
|
||||
|
||||
/**
|
||||
* Description: 挑战十绝阵num次
|
||||
* Author: zsx
|
||||
* CreateDate: 2020/6/1 14:13
|
||||
*/
|
||||
public class TenPassManager implements BaseDataManager {
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
data.ten_challenge_time++;
|
||||
return new CumulationData.Result(missionType);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
package com.ljsd.jieling.logic.mission.data;
|
||||
|
||||
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||
import com.ljsd.jieling.logic.dao.Hero;
|
||||
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Description: 全体上阵成员法宝等级达到level(需求人数6人,不满上阵不计完成度)
|
||||
* Author: zsx
|
||||
* CreateDate: 2020/6/1 12:03
|
||||
*/
|
||||
public class UpJewlDataManager extends AbstractDataManager{
|
||||
|
||||
@Override
|
||||
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
|
||||
return new CumulationData.Result(missionType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean ishit(User user, CumulationData data, int[] missionSubType,Object... parm) {
|
||||
return super.ishit(user, data, missionSubType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isFinish(User user,CumulationData data, int[][] cfgValue, Object... parm) {
|
||||
|
||||
for (Map.Entry<Integer, List<TeamPosHeroInfo>> entry:user.getTeamPosManager().getTeamPosForHero().entrySet()){
|
||||
List<TeamPosHeroInfo> teamPosHeroInfos =entry.getValue();
|
||||
if(teamPosHeroInfos.size()!=6){
|
||||
continue;
|
||||
}
|
||||
for (TeamPosHeroInfo info:teamPosHeroInfos){
|
||||
Hero hero = user.getHeroManager().getHero(info.getHeroId());
|
||||
if( hero.getEspecialEquipLevel()<cfgValue[1][0]){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
data.jewl_all_leve=1;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getprocess(User user, CumulationData data, int[] missionSubType) {
|
||||
return data.jewl_all_leve;
|
||||
}
|
||||
|
||||
}
|
|
@ -274,6 +274,7 @@ public class MissionEventDistributor {
|
|||
|
||||
typeList = new ArrayList<>();
|
||||
typeList.add(MissionType.ESPECIAL_EQUIP);
|
||||
typeList.add(MissionType.JEWL_ALL_LEVE);
|
||||
eventEnumListMap.put(GameEvent.ESPECIAL_EQUIP,typeList);
|
||||
eventProcessor.put(GameEvent.ESPECIAL_EQUIP,new CumulationDataEventProcessor());
|
||||
|
||||
|
|
|
@ -5,6 +5,9 @@ import com.ljsd.jieling.logic.dao.root.User;
|
|||
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||
import com.ljsd.jieling.logic.mission.MissionState;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
import com.ljsd.jieling.logic.mission.data.AbstractDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.BaseDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.DataManagerDistributor;
|
||||
import config.SAchievementConfig;
|
||||
import config.SBloodyBattleTask;
|
||||
import config.STreasureSunlongTaskConfig;
|
||||
|
@ -42,11 +45,23 @@ public class AchieveMissionIdsType extends AbstractMissionType{
|
|||
continue;
|
||||
}
|
||||
|
||||
int doingProgress = MissionLoigc.getDoingProgress(user, cumulationData, sAchievementConfig.getType(), sAchievementConfig.getValues()[0]);
|
||||
//完成
|
||||
int finishParm = sAchievementConfig.getValues()[1][0];
|
||||
|
||||
if (doingProgress<finishParm) {
|
||||
|
||||
boolean isfinish;
|
||||
int doingProgress;
|
||||
BaseDataManager missTypeData = DataManagerDistributor.getMissTypeData(result.subType);
|
||||
if(missTypeData instanceof AbstractDataManager&&((AbstractDataManager) missTypeData).isFinish(user,cumulationData, sAchievementConfig.getValues())){
|
||||
doingProgress = ((AbstractDataManager) missTypeData).getprocess(user,cumulationData,sAchievementConfig.getValues()[0]);
|
||||
isfinish=true;
|
||||
}else {
|
||||
doingProgress = MissionLoigc.getDoingProgress(user, cumulationData, sAchievementConfig.getType(), sAchievementConfig.getValues()[0]);
|
||||
//完成
|
||||
isfinish = doingProgress<finishParm;
|
||||
}
|
||||
|
||||
|
||||
if (isfinish) {
|
||||
boolean flag = false;
|
||||
for (MissionStateChangeInfo missionStateChangeInfo : missionStateChangeInfos) {
|
||||
if (missionStateChangeInfo.getMissionId() == id) {
|
||||
|
|
|
@ -4,6 +4,9 @@ import com.ljsd.jieling.logic.dao.CumulationData;
|
|||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||
import com.ljsd.jieling.logic.mission.MissionState;
|
||||
import com.ljsd.jieling.logic.mission.data.AbstractDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.BaseDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.DataManagerDistributor;
|
||||
import config.SBeginnerTask;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
@ -30,18 +33,24 @@ public class BeginerTaskIdsType extends AbstractMissionType{
|
|||
if (sBeginnerTasks == null) {
|
||||
return;
|
||||
}
|
||||
checkAndUpdateMision(user,sBeginnerTasks,missionStateChangeInfos,cumulationData);
|
||||
}
|
||||
|
||||
public void checkAndUpdateMision(User user, List<SBeginnerTask> sBeginnerTasks , List<MissionStateChangeInfo> missionStateChangeInfos, CumulationData cumulationData){
|
||||
Set<Integer> doingMissionIds = getDoingMissionIds();
|
||||
for (SBeginnerTask sBeginnerTask : sBeginnerTasks) {
|
||||
int missionId = sBeginnerTask.getId();
|
||||
if (!doingMissionIds.contains(missionId)) {
|
||||
continue;
|
||||
}
|
||||
boolean isFinish = MissionLoigc.getDoingProgress(user, cumulationData, sBeginnerTask.getTaskType(), sBeginnerTask.getTaskValue()[0]) >= sBeginnerTask.getTaskValue()[1][0];
|
||||
if (!isFinish) {
|
||||
|
||||
boolean isfinish;
|
||||
BaseDataManager missTypeData = DataManagerDistributor.getMissTypeData(result.subType);
|
||||
if(missTypeData instanceof AbstractDataManager ){
|
||||
isfinish=((AbstractDataManager) missTypeData).isFinish(user,cumulationData, sBeginnerTask.getTaskValue());
|
||||
}else {
|
||||
//完成
|
||||
isfinish = MissionLoigc.getDoingProgress(user, cumulationData, sBeginnerTask.getTaskType(), sBeginnerTask.getTaskValue()[0]) >= sBeginnerTask.getTaskValue()[1][0];
|
||||
}
|
||||
|
||||
if (!isfinish) {
|
||||
MissionStateChangeInfo doingInfo = new MissionStateChangeInfo(missionId,
|
||||
MissionState.DOING, null);
|
||||
boolean flag = false;
|
||||
|
|
|
@ -4,6 +4,9 @@ import com.ljsd.jieling.logic.dao.CumulationData;
|
|||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||
import com.ljsd.jieling.logic.mission.MissionState;
|
||||
import com.ljsd.jieling.logic.mission.data.AbstractDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.BaseDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.DataManagerDistributor;
|
||||
import config.SDailyTasksConfig;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
@ -31,17 +34,23 @@ public class DailyMissionIdsType extends AbstractMissionType{
|
|||
if (sTaskConfigs == null) {
|
||||
return;
|
||||
}
|
||||
checkAndUpdateMision(user,sTaskConfigs,missionStateChangeInfos,cumulationData);
|
||||
}
|
||||
|
||||
public void checkAndUpdateMision(User user, List<SDailyTasksConfig> sTaskConfigs, List<MissionStateChangeInfo> missionStateChangeInfos,CumulationData cumulationData){
|
||||
Set<Integer> doingMissionIds = getDoingMissionIds();
|
||||
for (SDailyTasksConfig sTaskConfig : sTaskConfigs) {
|
||||
int missionId = sTaskConfig.getId();
|
||||
if (!doingMissionIds.contains(missionId)) {
|
||||
continue;
|
||||
}
|
||||
boolean isFinish = MissionLoigc.getDoingProgress(user, cumulationData, sTaskConfig.getType(), sTaskConfig.getValues()[0]) >= sTaskConfig.getValues()[1][0];
|
||||
|
||||
boolean isFinish;
|
||||
BaseDataManager missTypeData = DataManagerDistributor.getMissTypeData(result.subType);
|
||||
if(missTypeData instanceof AbstractDataManager){
|
||||
isFinish=((AbstractDataManager) missTypeData).isFinish(user,cumulationData, sTaskConfig.getValues());
|
||||
}else {
|
||||
//完成
|
||||
isFinish = MissionLoigc.getDoingProgress(user, cumulationData, sTaskConfig.getType(), sTaskConfig.getValues()[0]) >= sTaskConfig.getValues()[1][0];
|
||||
}
|
||||
|
||||
if (!isFinish) {
|
||||
MissionStateChangeInfo doingInfo = new MissionStateChangeInfo(missionId,
|
||||
MissionState.DOING, null);
|
||||
|
|
|
@ -7,6 +7,9 @@ import com.ljsd.jieling.logic.mission.GameMisionType;
|
|||
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||
import com.ljsd.jieling.logic.mission.MissionState;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
import com.ljsd.jieling.logic.mission.data.AbstractDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.BaseDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.DataManagerDistributor;
|
||||
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
|
||||
import config.STreasureTaskConfig;
|
||||
import manager.STableManager;
|
||||
|
@ -51,8 +54,20 @@ public class ServenMissionIdsType extends AbstractMissionType{
|
|||
processSpecailMissionType(user,sTaskConfig,cumulationData);
|
||||
continue;
|
||||
}
|
||||
|
||||
int finishParm = sTaskConfig.getTaskValue()[1][0];
|
||||
int doingProgress = MissionLoigc.getDoingProgress(user, cumulationData, sTaskConfig.getTaskType(), sTaskConfig.getTaskValue()[0]);
|
||||
boolean isFinish;
|
||||
int doingProgress;
|
||||
BaseDataManager missTypeData = DataManagerDistributor.getMissTypeData(MissionType.findByMissionId(sTaskConfig.getTaskType()));
|
||||
if(missTypeData instanceof AbstractDataManager &&((AbstractDataManager) missTypeData).isFinish(user,cumulationData, sTaskConfig.getTaskValue())){
|
||||
doingProgress = ((AbstractDataManager) missTypeData).getprocess(user,cumulationData,sTaskConfig.getTaskValue()[0]);
|
||||
isFinish=true;
|
||||
}else {
|
||||
doingProgress = MissionLoigc.getDoingProgress(user, cumulationData, sTaskConfig.getTaskType(), sTaskConfig.getTaskValue()[0]);
|
||||
isFinish = doingProgress >= sTaskConfig.getTaskValue()[1][0];
|
||||
}
|
||||
|
||||
|
||||
if((doingProgress!=0 && finishParm<0 && ( doingProgress)>=finishParm)){
|
||||
doingMissionIds.remove(sTaskConfig.getId());
|
||||
getFinishMissionIds().add(sTaskConfig.getId());
|
||||
|
@ -63,7 +78,7 @@ public class ServenMissionIdsType extends AbstractMissionType{
|
|||
if(finishParm<0){
|
||||
continue;
|
||||
}
|
||||
boolean isFinish = doingProgress >= sTaskConfig.getTaskValue()[1][0];
|
||||
|
||||
if (!isFinish) {
|
||||
MissionStateChangeInfo doingInfo = new MissionStateChangeInfo(missionId,
|
||||
MissionState.DOING, doingProgress);
|
||||
|
|
|
@ -5,6 +5,9 @@ import com.ljsd.jieling.logic.dao.root.User;
|
|||
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||
import com.ljsd.jieling.logic.mission.MissionState;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
import com.ljsd.jieling.logic.mission.data.AbstractDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.BaseDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.DataManagerDistributor;
|
||||
import config.STreasureSunlongTaskConfig;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -72,10 +75,23 @@ public class TreasureMissionType extends AbstractMissionType{
|
|||
if(sTreasureTaskConfig.getType()!=result.getMissionTimeType()){
|
||||
continue;
|
||||
}
|
||||
int doingProgress = MissionLoigc.getDoingProgress(user, cumulationData, sTreasureTaskConfig.getTaskType(), sTreasureTaskConfig.getTaskValue()[0]);
|
||||
|
||||
//完成
|
||||
int finishParm = sTreasureTaskConfig.getTaskValue()[1][0];
|
||||
if( doingProgress>=finishParm){
|
||||
|
||||
boolean isFinish;
|
||||
int doingProgress;
|
||||
BaseDataManager missTypeData = DataManagerDistributor.getMissTypeData(MissionType.findByMissionId(sTreasureTaskConfig.getTaskType()));
|
||||
if(missTypeData instanceof AbstractDataManager &&((AbstractDataManager) missTypeData).isFinish(user,cumulationData, sTreasureTaskConfig.getTaskValue())){
|
||||
doingProgress = ((AbstractDataManager) missTypeData).getprocess(user,cumulationData,sTreasureTaskConfig.getTaskValue()[0]);
|
||||
isFinish=true;
|
||||
}else {
|
||||
doingProgress = MissionLoigc.getDoingProgress(user, cumulationData, sTreasureTaskConfig.getTaskType(), sTreasureTaskConfig.getTaskValue()[0]);
|
||||
isFinish =doingProgress>=finishParm;
|
||||
}
|
||||
|
||||
|
||||
if( isFinish){
|
||||
doingMissionIds.remove(id);
|
||||
getFinishMissionIds().add(id);
|
||||
MissionStateChangeInfo missionStateChangeInfo = new MissionStateChangeInfo(id, MissionState.FINISH,doingProgress,0);
|
||||
|
|
|
@ -4,6 +4,10 @@ import com.ljsd.jieling.logic.dao.CumulationData;
|
|||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||
import com.ljsd.jieling.logic.mission.MissionState;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
import com.ljsd.jieling.logic.mission.data.AbstractDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.BaseDataManager;
|
||||
import com.ljsd.jieling.logic.mission.data.DataManagerDistributor;
|
||||
import config.STaskConfig;
|
||||
|
||||
import java.util.Iterator;
|
||||
|
@ -56,7 +60,15 @@ public class VipMissionIdsType extends AbstractMissionType{
|
|||
if(!doingMissionIds.contains(missionId)){
|
||||
continue;
|
||||
}
|
||||
boolean isFinish = MissionLoigc.getDoingProgress(user,cumulationData,sTaskConfig.getTaskType(),sTaskConfig.getTaskValue()[0])>=sTaskConfig.getTaskValue()[1][0];
|
||||
|
||||
boolean isFinish;
|
||||
BaseDataManager missTypeData = DataManagerDistributor.getMissTypeData(MissionType.findByMissionId(sTaskConfig.getTaskType()));
|
||||
if(missTypeData instanceof AbstractDataManager &&((AbstractDataManager) missTypeData).isFinish(user,cumulationData, sTaskConfig.getTaskValue())){
|
||||
isFinish=true;
|
||||
}else {
|
||||
isFinish = MissionLoigc.getDoingProgress(user,cumulationData,sTaskConfig.getTaskType(),sTaskConfig.getTaskValue()[0])>=sTaskConfig.getTaskValue()[1][0];
|
||||
}
|
||||
|
||||
if(!isFinish){
|
||||
MissionStateChangeInfo doingInfo = new MissionStateChangeInfo(missionId,
|
||||
MissionState.DOING, null);
|
||||
|
|
Loading…
Reference in New Issue