孙龙宝藏修改
parent
1cd0fe5ce7
commit
138af14f00
|
@ -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() {
|
||||
|
|
|
@ -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;
|
||||
|
||||
public static Map<Integer,STreasureSunlongConfig> treasureSunlongConfigMap;
|
||||
|
||||
@Override
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -152,4 +152,6 @@ public interface BIReason {
|
|||
|
||||
int FAMILY_SET_ICON = 1037;//工会修改图腾
|
||||
|
||||
int TREASURE_LEVEL_UP_CONCUME = 1038;//孙龙宝藏等级提升消耗
|
||||
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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())
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue