孙龙宝藏修改

lvxinran 2019-10-19 16:49:38 +08:00
parent 1cd0fe5ce7
commit 138af14f00
13 changed files with 194 additions and 172 deletions

View File

@ -26,7 +26,7 @@ public class SSpecialConfig implements BaseConfig {
public static final String EQUIPSIGN_LIMIT = "EquipSign_limit";//仓库中的魂印上限
public static final String FRIENDAMOUNT_LIMIT = "FriendAmount_limit";//好友上限
public static final String FRIENDAPPLYAMOUNT_LIMIT = "FriendApplyAmount_limit";//好友申请上限
public static final String SUNLONG_DAILYTASKS = "Sunlong_DailyTasks";//孙龙的宝藏每日、每周、每月任务个数
@Override
public void init() throws Exception {
@ -53,6 +53,15 @@ public class SSpecialConfig implements BaseConfig {
}
return Integer.valueOf(value);
}
public static int[] getOnceArrayValue(String key){
String value = enumers.get(key);
String[] array = value.split("#");
int[] arrayNum = new int[array.length];
for (int i = 0 ; i < array.length;i++) {
arrayNum[i] = Integer.parseInt(array[i]);
}
return arrayNum;
}
public int getId() {

View File

@ -3,57 +3,69 @@ package com.ljsd.jieling.config;
import com.ljsd.jieling.logic.STableManager;
import com.ljsd.jieling.logic.Table;
import java.util.HashMap;
import java.util.Map;
@Table(name ="TreasureSunlongConfig")
public class STreasureSunlongConfig implements BaseConfig {
private int id;
private int id;
private int activityId;
private int activityId;
private int type;
private int type;
private int level;
private int level;
private int integral;
private int[][] integral;
private int[][] reward;
private int[][] reward;
private int[][] treasureReward;
private int[][] treasureReward;
@Override
public static Map<Integer,STreasureSunlongConfig> treasureSunlongConfigMap;
public static Map<Integer,STreasureSunlongConfig> levelTreasureConfigMap;
@Override
public void init() throws Exception {
treasureSunlongConfigMap=STableManager.getConfig(STreasureSunlongConfig.class);
levelTreasureConfigMap= new HashMap<>(treasureSunlongConfigMap.size());
for(Map.Entry<Integer,STreasureSunlongConfig> entry:treasureSunlongConfigMap.entrySet()){
STreasureSunlongConfig config = entry.getValue();
if(config.getActivityId()!=40){
continue;
}
levelTreasureConfigMap.put(config.getLevel(), config);
}
}
public int getId() {
public int getId() {
return id;
}
public int getActivityId() {
public int getActivityId() {
return activityId;
}
public int getType() {
public int getType() {
return type;
}
public int getLevel() {
public int getLevel() {
return level;
}
public int getIntegral() {
public int[][] getIntegral() {
return integral;
}
public int[][] getReward() {
public int[][] getReward() {
return reward;
}
public int[][] getTreasureReward() {
public int[][] getTreasureReward() {
return treasureReward;
}

View File

@ -37,7 +37,7 @@ public class STreasureSunlongTaskConfig implements BaseConfig {
if(!taskTypeMap.containsKey(entry.getValue().getType())){
taskTypeMap.put(entry.getValue().getType(),new ArrayList<>());
}
taskTypeMap.get(entry.getValue()).add(entry.getKey());
taskTypeMap.get(entry.getValue().getType()).add(entry.getKey());
}
}

View File

@ -152,4 +152,6 @@ public interface BIReason {
int FAMILY_SET_ICON = 1037;//工会修改图腾
int TREASURE_LEVEL_UP_CONCUME = 1038;//孙龙宝藏等级提升消耗
}

View File

@ -330,7 +330,7 @@ public class GMRequestHandler extends BaseHandler{
}
public void treasureScore(ISession session,int score) throws Exception {
User user = UserManager.getUser(session.getUid());
user.getPlayerInfoManager().setTreasureScore(score);
// user.getPlayerInfoManager().setTreasureScore(score);
}
}

View File

@ -150,7 +150,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
.addAllTowerReceivedReward(towerFloorReceivedReward)
.addAllGoodsTypeDuration(goodsTypeDurations)
.setHadBuyTreasure(playerInfoManager.getHadBuyTreasure())
.setTreasureScore(playerInfoManager.getTreasureScore())
.setTreasureLevel(playerInfoManager.getTreasureLevel())
.setSignInInfo(CommonProto.SignInInfo.newBuilder().setDays(playerInfoManager.getSign()+1).setState(playerInfoManager.getSignTotay()).build())
.setMonsterAttackTime(user.getMapManager().getLastMonsterAttack())
.setFirstTenth(user.getHeroManager().getFirstTenth())

View File

@ -283,6 +283,7 @@ public class GlobalDataManaager {
PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder);
PlayerLogic.getInstance().flushUserdataEvery(user,fBuilder);
user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0);
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH,0);
user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_REFRESH,0);
FriendLogic.getInstance().refreshState(session);
int sendDays = user.getPlayerInfoManager().getSendDays();

View File

@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.config.SGlobalActivity;
import com.ljsd.jieling.config.STreasureConfig;
import com.ljsd.jieling.config.STreasureSunlongConfig;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.ktbeans.KtEventUtils;
import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
@ -31,15 +32,12 @@ public class TreasureActivity extends AbstractActivity {
@Override
public void initActivity(User user) throws Exception {
LOGGER.info("戒灵秘宝初始化...");
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH, sGlobalActivity.getId());
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_MONTH_REFRESH, sGlobalActivity.getId());
ActivityMission activityMission = new ActivityMission();
List<STreasureConfig> sTreasureConfigs = STreasureConfig.configByActivityIdMap.get(sGlobalActivity.getId());
List<Integer> misionIds = new ArrayList<>(sTreasureConfigs.size());
for (STreasureConfig sTreasureConfig : sTreasureConfigs) {
misionIds.add(sTreasureConfig.getId());
}
activityMission.initOtherMission(misionIds);
List<Integer> levels = new ArrayList<>(STreasureSunlongConfig.levelTreasureConfigMap.keySet());
activityMission.initOtherMission(levels);
long endTime = sGlobalActivity.getTimeLong(user.getPlayerInfoManager().getCreateTime(), 2) - 24 * 3600 * 1000;
user.getActivityManager().setTrsendTime(endTime);
user.getActivityManager().addActivity(sGlobalActivity.getId(), activityMission);
@ -67,93 +65,123 @@ public class TreasureActivity extends AbstractActivity {
if (hadBuyTreasure == 1) {
changeState = ActivityType.FINISH_TAKED;
}
int treasureScore = playerInfoManager.getTreasureScore();
CommonProto.Drop.Builder drop = null;
if (missionId == -1) {
List<int[][]> dropList = new ArrayList<>(10);
boolean canTakeFinalReward = true;
STreasureConfig finalSTreasureConfig = null;
Map<Integer, ActivityProgressInfo> willUpdateAcP = new HashMap<>();
for (Map.Entry<Integer, ActivityProgressInfo> activityProgressInfoItem : activityMission.getActivityProgressInfoMap().entrySet()) {
Integer mineMision = activityProgressInfoItem.getKey();
STreasureConfig sTreasureConfig = STreasureConfig.configMap.get(mineMision);
if (sTreasureConfig.getType() == 2) {
finalSTreasureConfig = sTreasureConfig;
continue;
}
ActivityProgressInfo value = activityProgressInfoItem.getValue();
int stateTmp = value.getState();
if (treasureScore >= sTreasureConfig.getPoints()) {
if (changeState != stateTmp) {
STreasureConfig sTreasureConfigTmp = STreasureConfig.configMap.get(mineMision);
if (stateTmp == ActivityType.WILL_TAKE) {
dropList.add(sTreasureConfigTmp.getReward());
}
if (changeState == ActivityType.FINISH_TAKED) {
dropList.add(sTreasureConfigTmp.getTreasureReward());
}
willUpdateAcP.put(mineMision, value);
List<int[][]> dropList = new ArrayList<>(2);
if(missionId==-1){
for (Map.Entry<Integer, ActivityProgressInfo> entry : activityMission.getActivityProgressInfoMap().entrySet()) {
if(entry.getKey()<user.getPlayerInfoManager().getTreasureLevel()){
int state =entry.getValue().getState();
if(state==changeState||state==ActivityType.FINISH_TAKED) {
continue;
}
} else {
canTakeFinalReward = false;
dropByState(dropList,state,changeState,missionId);
}
}
for (Map.Entry<Integer, ActivityProgressInfo> item : willUpdateAcP.entrySet()) {
ActivityProgressInfo value = item.getValue();
value.setState(changeState);
activityMission.updateProgressInfo(item.getKey(), value);
KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, activityId, item.getKey());
}
if (canTakeFinalReward && finalSTreasureConfig != null) {
ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(finalSTreasureConfig.getId());
int stateTmp = activityProgressInfo.getState();
if (changeState != stateTmp) {
if (stateTmp == ActivityType.WILL_TAKE) {
dropList.add(finalSTreasureConfig.getReward());
}
if (changeState == ActivityType.FINISH_TAKED) {
dropList.add(finalSTreasureConfig.getTreasureReward());
}
activityProgressInfo.setState(changeState);
activityMission.updateProgressInfo(finalSTreasureConfig.getId(), activityProgressInfo);
KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, activityId, finalSTreasureConfig.getId());
}
}
if (dropList.isEmpty()) {
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "no one can take");
}else{
int state = activityMission.getActivityProgressInfoMap().get(missionId).getState();
if(state==changeState||state==ActivityType.FINISH_TAKED){
MessageUtil.sendErrorResponse(session,0,rewardResponseValue,"该奖励已领取过");
return;
}
drop = ItemUtil.drop(user, dropList, BIReason.TAKE_ACTIVITY_REWARD);
} else {
STreasureConfig sTreasureConfig = STreasureConfig.configMap.get(missionId);
int type = sTreasureConfig.getType();
ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(missionId);
int state = activityProgressInfo.getState();
if (state == changeState) {
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "had taked");
return;
}
if (type == 1) {
List<int[][]> dropList = new ArrayList<>(2);
if (treasureScore < sTreasureConfig.getPoints()) {
MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "not finish");
return;
}
if (state == ActivityType.WILL_TAKE) {
dropList.add(sTreasureConfig.getReward());
}
if (changeState == ActivityType.FINISH_TAKED) {
dropList.add(sTreasureConfig.getTreasureReward());
}
drop = ItemUtil.drop(user, dropList, BIReason.TAKE_ACTIVITY_REWARD);
activityProgressInfo.setState(changeState);
activityMission.updateProgressInfo(missionId, activityProgressInfo);
KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, activityId, missionId);
}
dropByState(dropList,state,changeState,missionId);
}
// if (missionId == -1) {
// List<int[][]> dropList = new ArrayList<>(10);
// boolean canTakeFinalReward = true;
// STreasureConfig finalSTreasureConfig = null;
// Map<Integer, ActivityProgressInfo> willUpdateAcP = new HashMap<>();
// for (Map.Entry<Integer, ActivityProgressInfo> activityProgressInfoItem : activityMission.getActivityProgressInfoMap().entrySet()) {
// Integer mineMision = activityProgressInfoItem.getKey();
// STreasureConfig sTreasureConfig = STreasureConfig.configMap.get(mineMision);
// if (sTreasureConfig.getType() == 2) {
// finalSTreasureConfig = sTreasureConfig;
// continue;
// }
// ActivityProgressInfo value = activityProgressInfoItem.getValue();
// int stateTmp = value.getState();
// if (treasureScore >= sTreasureConfig.getPoints()) {
// if (changeState != stateTmp) {
// STreasureConfig sTreasureConfigTmp = STreasureConfig.configMap.get(mineMision);
// if (stateTmp == ActivityType.WILL_TAKE) {
// dropList.add(sTreasureConfigTmp.getReward());
// }
// if (changeState == ActivityType.FINISH_TAKED) {
// dropList.add(sTreasureConfigTmp.getTreasureReward());
// }
// willUpdateAcP.put(mineMision, value);
// }
// } else {
// canTakeFinalReward = false;
// }
// }
// for (Map.Entry<Integer, ActivityProgressInfo> item : willUpdateAcP.entrySet()) {
// ActivityProgressInfo value = item.getValue();
// value.setState(changeState);
// activityMission.updateProgressInfo(item.getKey(), value);
// KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, activityId, item.getKey());
// }
// if (canTakeFinalReward && finalSTreasureConfig != null) {
// ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(finalSTreasureConfig.getId());
// int stateTmp = activityProgressInfo.getState();
// if (changeState != stateTmp) {
// if (stateTmp == ActivityType.WILL_TAKE) {
// dropList.add(finalSTreasureConfig.getReward());
// }
// if (changeState == ActivityType.FINISH_TAKED) {
// dropList.add(finalSTreasureConfig.getTreasureReward());
// }
// activityProgressInfo.setState(changeState);
// activityMission.updateProgressInfo(finalSTreasureConfig.getId(), activityProgressInfo);
// KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, activityId, finalSTreasureConfig.getId());
// }
// }
// if (dropList.isEmpty()) {
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "no one can take");
// return;
// }
// drop = ItemUtil.drop(user, dropList, BIReason.TAKE_ACTIVITY_REWARD);
// } else {
// STreasureConfig sTreasureConfig = STreasureConfig.configMap.get(missionId);
// int type = sTreasureConfig.getType();
// ActivityProgressInfo activityProgressInfo = activityMission.getActivityProgressInfoMap().get(missionId);
// int state = activityProgressInfo.getState();
// if (state == changeState) {
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "had taked");
// return;
// }
// if (type == 1) {
// List<int[][]> dropList = new ArrayList<>(2);
// if (treasureScore < sTreasureConfig.getPoints()) {
// MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "not finish");
// return;
// }
// if (state == ActivityType.WILL_TAKE) {
// dropList.add(sTreasureConfig.getReward());
// }
// if (changeState == ActivityType.FINISH_TAKED) {
// dropList.add(sTreasureConfig.getTreasureReward());
// }
// activityProgressInfo.setState(changeState);
// activityMission.updateProgressInfo(missionId, activityProgressInfo);
// KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, activityId, missionId);
// }
// }
CommonProto.Drop.Builder drop = ItemUtil.drop(user, dropList, BIReason.TAKE_ACTIVITY_REWARD);
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
}
private void dropByState(List<int[][]> dropList,int curState,int targetState,int missionId){
STreasureSunlongConfig rewardConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(missionId);
if(curState==ActivityType.WILL_TAKE){
dropList.add(rewardConfig.getReward());
if(targetState == ActivityType.FINISH_TAKED){
dropList.add(rewardConfig.getTreasureReward());
}
}else if(curState==ActivityType.HAD_TAKED){
if(targetState == ActivityType.FINISH_TAKED){
dropList.add(rewardConfig.getTreasureReward());
}
}
}
}

View File

@ -62,7 +62,7 @@ public class PlayerManager extends MongoBase {
private int headFrame;
private int treasureScore; //孙龙的宝藏分数
private int treasureLevel; //孙龙的宝藏等级
private int hadBuyTreasure; //是否已购
@ -92,18 +92,18 @@ public class PlayerManager extends MongoBase {
this.setRootCollection(User._COLLECTION_NAME);
}
public int getTreasureScore() {
return treasureScore;
public int getTreasureLevel() {
return treasureLevel;
}
public void addTreasureScore(int treasureScore) {
this.treasureScore += treasureScore;
setTreasureScore(this.treasureScore);
public void addTreasureLevel() {
this.treasureLevel++;
setTreasureLevel(this.treasureLevel);
}
public void setTreasureScore(int treasureScore){
this.treasureScore = treasureScore;
updateString("treasureScore", treasureScore);
public void setTreasureLevel(int treasureLevel){
this.treasureLevel = treasureLevel;
updateString("treasureLevel", treasureLevel);
}
public int getHadBuyTreasure() {

View File

@ -61,9 +61,13 @@ public class UserMissionManager extends MongoBase {
resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData);
break;
case TREASH_WEEK_REFRESH:
resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData);
resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData);
break;
case TREASH_MONTH_REFRESH:
System.out.println("戒灵秘宝月任务初始化");
resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData);
resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData);
resetTreasureTaskInfo(3,missionTypeEnumListMap,treasureMonthCumulationData);
break;
case SERVENHAPPY_REFRESH:
@ -218,6 +222,7 @@ public class UserMissionManager extends MongoBase {
private void resetTreasureTaskInfo(int type,Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap,CumulationData treasureCumulationData){
int[] typeMissionNum = SSpecialConfig.getOnceArrayValue(SSpecialConfig.SUNLONG_DAILYTASKS);
List<Integer> taskTypeMap = STreasureSunlongTaskConfig.taskTypeMap.get(type);
for(Integer treasure:taskTypeMap){
if(treasureMissionIdsType.getDoingMissionIds().contains(treasure)){
@ -234,10 +239,10 @@ public class UserMissionManager extends MongoBase {
for(int i = 0 ; i<randomTask.length;i++){
int [] temp=new int[2];
temp[0] = taskTypeMap.get(i);
temp[1] = STreasureSunlongTaskConfig.treasureTaskConfig.get(taskTypeMap.get(i)).getweight();
temp[1] = STreasureSunlongTaskConfig.treasureTaskConfig.get(taskTypeMap.get(i)).getWeight();
randomTask[i] = temp;
}
int[] tasks= MathUtils.randomFromWeightWithTaking(randomTask, 5);
int[] tasks= MathUtils.randomFromWeightWithTaking(randomTask, typeMissionNum[type-1]);
List<MissionStateChangeInfo> missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION);
for(Integer task:tasks){
treasureMissionIdsType.getDoingMissionIds().add(task);

View File

@ -349,14 +349,11 @@ public class MissionLoigc {
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.TREASURE_MISSION_REWARD, missionId);
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.TREASUREMISSION);
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
int takeTimes = missionStateChangeInfos.get(0).getProgress();
missionStateChangeInfos.get(0).setProgress(0);
// int score = STreasureSunlongTaskConfig.treasureTaskConfig.get(missionId). * takeTimes;
// user.getPlayerInfoManager().addTreasureScore(score);
ItemUtil.drop(user,STreasureSunlongTaskConfig.treasureTaskConfig.get(missionId).getIntegral(),BIReason.TREASURE_SCORE);
// ItemUtil.drop(user,STreasureSunlongTaskConfig.treasureTaskConfig.get(missionId).getIntegral(),BIReason.TREASURE_SCORE);
KtEventUtils.onKtEvent(user, ParamEventBean.UserTaskEvent,type,missionId);
Repot37EventUtil.onKtEvent(user, Repot37EventUtil.Report37EventType.TASK_FINISH_EVEMT,missionId,"");
PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setTreasureScore(user.getPlayerInfoManager().getTreasureScore()).build();
PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().build();
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true);
return;
}

View File

@ -34,7 +34,7 @@ public class MissionEventDistributor {
eventProcessor.put(GameEvent.DAILY_REFRESH,new DailyRefreshEventProcess());
eventProcessor.put(GameEvent.BLOODY_REFRESH,new DailyRefreshEventProcess());
eventProcessor.put(GameEvent.TREASH_REFRESH,new TreasureRefreshEventProcess());
eventProcessor.put(GameEvent.TREASH_MONTH_REFRESH,new TreasureRefreshEventProcess());
eventProcessor.put(GameEvent.SERVENHAPPY_REFRESH,new TreasureRefreshEventProcess());
eventProcessor.put(GameEvent.BEGINNER,new BeginneRefreshEventProcessor());

View File

@ -1,11 +1,15 @@
package com.ljsd.jieling.logic.mission.main;
import com.ljsd.jieling.config.STreasureSunlongConfig;
import com.ljsd.jieling.config.STreasureSunlongTaskConfig;
import com.ljsd.jieling.config.STreasureTaskConfig;
import com.ljsd.jieling.globals.BIReason;
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.util.ItemUtil;
import com.ljsd.jieling.util.MathUtils;
import java.util.HashMap;
@ -22,57 +26,21 @@ public class TreasureMissionType extends AbstractMissionType{
}
public void rewardMission(User user,int missionId, List<MissionStateChangeInfo> missionTypeEnumListMap, CumulationData cumulationData){
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionId);
if(sTreasureTaskConfig == null){return;}
int doingProgress = MissionLoigc.getDoingProgress(user,cumulationData, sTreasureTaskConfig.getTaskType(), sTreasureTaskConfig.getTaskValue()[0]);
public void rewardMission(User user,int missionId, List<MissionStateChangeInfo> missionTypeEnumListMap, CumulationData cumulationData) throws Exception {
STreasureSunlongTaskConfig taskConfig = STreasureSunlongTaskConfig.treasureTaskConfig.get(missionId);
if(taskConfig == null){return;}
int doingProgress = MissionLoigc.getDoingProgress(user,cumulationData, taskConfig.getTaskType(), taskConfig.getTaskValue()[0]);
//完成
int finishParm = sTreasureTaskConfig.getTaskValue()[1][0];
Integer takeTimes = this.takeTimes.get(missionId);
if(takeTimes == null){
takeTimes = 0;
int finishParm = taskConfig.getTaskValue()[1][0];
if(doingProgress<finishParm){
return;
}
int reallyTakeTimes = (doingProgress - takeTimes * finishParm) / finishParm;
if(doingProgress!=0 && finishParm<0 && doingProgress>finishParm){
reallyTakeTimes =1;
}
if(reallyTakeTimes>0){
if(sTreasureTaskConfig.getTimes()>0){
reallyTakeTimes = MathUtils.setBetweenWithMax(reallyTakeTimes,0,sTreasureTaskConfig.getTimes() - takeTimes);
}
int hadTakes = takeTimes + reallyTakeTimes;
if(sTreasureTaskConfig.getTimes()>0 && hadTakes>=sTreasureTaskConfig.getTimes()){
hadTakes = sTreasureTaskConfig.getTimes();
}
int[][] rewward = sTreasureTaskConfig.getRewward();
int[][] rewardFinal = new int[rewward.length][];
if(rewward.length>0){
for(int i=0;i<rewward.length;i++){
rewardFinal[i] = new int[2];
rewardFinal[i][0] = rewward[i][0];
rewardFinal[i][1] = rewward[i][1] * reallyTakeTimes;
}
}
this.takeTimes.put(missionId,hadTakes);
if(sTreasureTaskConfig.getTimes()>0 && this.takeTimes.get(missionId)>=sTreasureTaskConfig.getTimes()){
getRewardedMissionIds().set(missionId);
getDoingMissionIds().remove(missionId);
getFinishMissionIds().remove(missionId);
MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD,reallyTakeTimes,hadTakes);
if(rewward.length>0){
stateChangeInfo.setRewwards(rewardFinal);
}
missionTypeEnumListMap.add(stateChangeInfo);
return;
}else{
MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.DOING,reallyTakeTimes,hadTakes);
if(rewward.length>0){
stateChangeInfo.setRewwards(rewardFinal);
}
missionTypeEnumListMap.add(stateChangeInfo);
}
STreasureSunlongConfig levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(user.getPlayerInfoManager().getTreasureLevel());
if(ItemUtil.itemCost(user,levelConfig.getIntegral(), BIReason.TREASURE_LEVEL_UP_CONCUME,1)){
user.getPlayerInfoManager().addTreasureLevel();
}
MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD,taskConfig.getIntegral());
missionTypeEnumListMap.add(stateChangeInfo);
}