孙龙宝藏修改
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 EQUIPSIGN_LIMIT = "EquipSign_limit";//仓库中的魂印上限
|
||||||
public static final String FRIENDAMOUNT_LIMIT = "FriendAmount_limit";//好友上限
|
public static final String FRIENDAMOUNT_LIMIT = "FriendAmount_limit";//好友上限
|
||||||
public static final String FRIENDAPPLYAMOUNT_LIMIT = "FriendApplyAmount_limit";//好友申请上限
|
public static final String FRIENDAPPLYAMOUNT_LIMIT = "FriendApplyAmount_limit";//好友申请上限
|
||||||
|
public static final String SUNLONG_DAILYTASKS = "Sunlong_DailyTasks";//孙龙的宝藏每日、每周、每月任务个数
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
|
@ -53,6 +53,15 @@ public class SSpecialConfig implements BaseConfig {
|
||||||
}
|
}
|
||||||
return Integer.valueOf(value);
|
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() {
|
public int getId() {
|
||||||
|
|
|
@ -3,57 +3,69 @@ package com.ljsd.jieling.config;
|
||||||
import com.ljsd.jieling.logic.STableManager;
|
import com.ljsd.jieling.logic.STableManager;
|
||||||
import com.ljsd.jieling.logic.Table;
|
import com.ljsd.jieling.logic.Table;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@Table(name ="TreasureSunlongConfig")
|
@Table(name ="TreasureSunlongConfig")
|
||||||
public class STreasureSunlongConfig implements BaseConfig {
|
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 {
|
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;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getActivityId() {
|
public int getActivityId() {
|
||||||
return activityId;
|
return activityId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getType() {
|
public int getType() {
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getLevel() {
|
public int getLevel() {
|
||||||
return level;
|
return level;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getIntegral() {
|
public int[][] getIntegral() {
|
||||||
return integral;
|
return integral;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[][] getReward() {
|
public int[][] getReward() {
|
||||||
return reward;
|
return reward;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[][] getTreasureReward() {
|
public int[][] getTreasureReward() {
|
||||||
return treasureReward;
|
return treasureReward;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ public class STreasureSunlongTaskConfig implements BaseConfig {
|
||||||
if(!taskTypeMap.containsKey(entry.getValue().getType())){
|
if(!taskTypeMap.containsKey(entry.getValue().getType())){
|
||||||
taskTypeMap.put(entry.getValue().getType(),new ArrayList<>());
|
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 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 {
|
public void treasureScore(ISession session,int score) throws Exception {
|
||||||
User user = UserManager.getUser(session.getUid());
|
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)
|
.addAllTowerReceivedReward(towerFloorReceivedReward)
|
||||||
.addAllGoodsTypeDuration(goodsTypeDurations)
|
.addAllGoodsTypeDuration(goodsTypeDurations)
|
||||||
.setHadBuyTreasure(playerInfoManager.getHadBuyTreasure())
|
.setHadBuyTreasure(playerInfoManager.getHadBuyTreasure())
|
||||||
.setTreasureScore(playerInfoManager.getTreasureScore())
|
.setTreasureLevel(playerInfoManager.getTreasureLevel())
|
||||||
.setSignInInfo(CommonProto.SignInInfo.newBuilder().setDays(playerInfoManager.getSign()+1).setState(playerInfoManager.getSignTotay()).build())
|
.setSignInInfo(CommonProto.SignInInfo.newBuilder().setDays(playerInfoManager.getSign()+1).setState(playerInfoManager.getSignTotay()).build())
|
||||||
.setMonsterAttackTime(user.getMapManager().getLastMonsterAttack())
|
.setMonsterAttackTime(user.getMapManager().getLastMonsterAttack())
|
||||||
.setFirstTenth(user.getHeroManager().getFirstTenth())
|
.setFirstTenth(user.getHeroManager().getFirstTenth())
|
||||||
|
|
|
@ -283,6 +283,7 @@ public class GlobalDataManaager {
|
||||||
PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder);
|
PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder);
|
||||||
PlayerLogic.getInstance().flushUserdataEvery(user,fBuilder);
|
PlayerLogic.getInstance().flushUserdataEvery(user,fBuilder);
|
||||||
user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0);
|
user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_REFRESH,0);
|
||||||
|
user.getUserMissionManager().onGameEvent(user, GameEvent.TREASH_REFRESH,0);
|
||||||
user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_REFRESH,0);
|
user.getUserMissionManager().onGameEvent(user, GameEvent.BLOODY_REFRESH,0);
|
||||||
FriendLogic.getInstance().refreshState(session);
|
FriendLogic.getInstance().refreshState(session);
|
||||||
int sendDays = user.getPlayerInfoManager().getSendDays();
|
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.SGlobalActivity;
|
||||||
import com.ljsd.jieling.config.STreasureConfig;
|
import com.ljsd.jieling.config.STreasureConfig;
|
||||||
|
import com.ljsd.jieling.config.STreasureSunlongConfig;
|
||||||
import com.ljsd.jieling.globals.BIReason;
|
import com.ljsd.jieling.globals.BIReason;
|
||||||
import com.ljsd.jieling.ktbeans.KtEventUtils;
|
import com.ljsd.jieling.ktbeans.KtEventUtils;
|
||||||
import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
|
import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
|
||||||
|
@ -31,15 +32,12 @@ public class TreasureActivity extends AbstractActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initActivity(User user) throws Exception {
|
public void initActivity(User user) throws Exception {
|
||||||
|
LOGGER.info("戒灵秘宝初始化...");
|
||||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
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();
|
ActivityMission activityMission = new ActivityMission();
|
||||||
List<STreasureConfig> sTreasureConfigs = STreasureConfig.configByActivityIdMap.get(sGlobalActivity.getId());
|
List<Integer> levels = new ArrayList<>(STreasureSunlongConfig.levelTreasureConfigMap.keySet());
|
||||||
List<Integer> misionIds = new ArrayList<>(sTreasureConfigs.size());
|
activityMission.initOtherMission(levels);
|
||||||
for (STreasureConfig sTreasureConfig : sTreasureConfigs) {
|
|
||||||
misionIds.add(sTreasureConfig.getId());
|
|
||||||
}
|
|
||||||
activityMission.initOtherMission(misionIds);
|
|
||||||
long endTime = sGlobalActivity.getTimeLong(user.getPlayerInfoManager().getCreateTime(), 2) - 24 * 3600 * 1000;
|
long endTime = sGlobalActivity.getTimeLong(user.getPlayerInfoManager().getCreateTime(), 2) - 24 * 3600 * 1000;
|
||||||
user.getActivityManager().setTrsendTime(endTime);
|
user.getActivityManager().setTrsendTime(endTime);
|
||||||
user.getActivityManager().addActivity(sGlobalActivity.getId(), activityMission);
|
user.getActivityManager().addActivity(sGlobalActivity.getId(), activityMission);
|
||||||
|
@ -67,93 +65,123 @@ public class TreasureActivity extends AbstractActivity {
|
||||||
if (hadBuyTreasure == 1) {
|
if (hadBuyTreasure == 1) {
|
||||||
changeState = ActivityType.FINISH_TAKED;
|
changeState = ActivityType.FINISH_TAKED;
|
||||||
}
|
}
|
||||||
int treasureScore = playerInfoManager.getTreasureScore();
|
List<int[][]> dropList = new ArrayList<>(2);
|
||||||
CommonProto.Drop.Builder drop = null;
|
if(missionId==-1){
|
||||||
if (missionId == -1) {
|
for (Map.Entry<Integer, ActivityProgressInfo> entry : activityMission.getActivityProgressInfoMap().entrySet()) {
|
||||||
List<int[][]> dropList = new ArrayList<>(10);
|
if(entry.getKey()<user.getPlayerInfoManager().getTreasureLevel()){
|
||||||
boolean canTakeFinalReward = true;
|
int state =entry.getValue().getState();
|
||||||
STreasureConfig finalSTreasureConfig = null;
|
if(state==changeState||state==ActivityType.FINISH_TAKED) {
|
||||||
Map<Integer, ActivityProgressInfo> willUpdateAcP = new HashMap<>();
|
continue;
|
||||||
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 {
|
dropByState(dropList,state,changeState,missionId);
|
||||||
canTakeFinalReward = false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (Map.Entry<Integer, ActivityProgressInfo> item : willUpdateAcP.entrySet()) {
|
}else{
|
||||||
ActivityProgressInfo value = item.getValue();
|
int state = activityMission.getActivityProgressInfoMap().get(missionId).getState();
|
||||||
value.setState(changeState);
|
if(state==changeState||state==ActivityType.FINISH_TAKED){
|
||||||
activityMission.updateProgressInfo(item.getKey(), value);
|
MessageUtil.sendErrorResponse(session,0,rewardResponseValue,"该奖励已领取过");
|
||||||
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;
|
return;
|
||||||
}
|
}
|
||||||
drop = ItemUtil.drop(user, dropList, BIReason.TAKE_ACTIVITY_REWARD);
|
dropByState(dropList,state,changeState,missionId);
|
||||||
} 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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
// 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();
|
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
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 headFrame;
|
||||||
|
|
||||||
private int treasureScore; //孙龙的宝藏分数
|
private int treasureLevel; //孙龙的宝藏等级
|
||||||
|
|
||||||
private int hadBuyTreasure; //是否已购
|
private int hadBuyTreasure; //是否已购
|
||||||
|
|
||||||
|
@ -92,18 +92,18 @@ public class PlayerManager extends MongoBase {
|
||||||
this.setRootCollection(User._COLLECTION_NAME);
|
this.setRootCollection(User._COLLECTION_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getTreasureScore() {
|
public int getTreasureLevel() {
|
||||||
return treasureScore;
|
return treasureLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addTreasureScore(int treasureScore) {
|
public void addTreasureLevel() {
|
||||||
this.treasureScore += treasureScore;
|
this.treasureLevel++;
|
||||||
setTreasureScore(this.treasureScore);
|
setTreasureLevel(this.treasureLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTreasureScore(int treasureScore){
|
public void setTreasureLevel(int treasureLevel){
|
||||||
this.treasureScore = treasureScore;
|
this.treasureLevel = treasureLevel;
|
||||||
updateString("treasureScore", treasureScore);
|
updateString("treasureLevel", treasureLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getHadBuyTreasure() {
|
public int getHadBuyTreasure() {
|
||||||
|
|
|
@ -61,9 +61,13 @@ public class UserMissionManager extends MongoBase {
|
||||||
resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData);
|
resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData);
|
||||||
break;
|
break;
|
||||||
case TREASH_WEEK_REFRESH:
|
case TREASH_WEEK_REFRESH:
|
||||||
|
resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData);
|
||||||
resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData);
|
resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData);
|
||||||
break;
|
break;
|
||||||
case TREASH_MONTH_REFRESH:
|
case TREASH_MONTH_REFRESH:
|
||||||
|
System.out.println("戒灵秘宝月任务初始化");
|
||||||
|
resetTreasureTaskInfo(1,missionTypeEnumListMap,treasureCumulationData);
|
||||||
|
resetTreasureTaskInfo(2,missionTypeEnumListMap,treasureWeekCumulationData);
|
||||||
resetTreasureTaskInfo(3,missionTypeEnumListMap,treasureMonthCumulationData);
|
resetTreasureTaskInfo(3,missionTypeEnumListMap,treasureMonthCumulationData);
|
||||||
break;
|
break;
|
||||||
case SERVENHAPPY_REFRESH:
|
case SERVENHAPPY_REFRESH:
|
||||||
|
@ -218,6 +222,7 @@ public class UserMissionManager extends MongoBase {
|
||||||
|
|
||||||
|
|
||||||
private void resetTreasureTaskInfo(int type,Map<GameMisionType, List<MissionStateChangeInfo>> missionTypeEnumListMap,CumulationData treasureCumulationData){
|
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);
|
List<Integer> taskTypeMap = STreasureSunlongTaskConfig.taskTypeMap.get(type);
|
||||||
for(Integer treasure:taskTypeMap){
|
for(Integer treasure:taskTypeMap){
|
||||||
if(treasureMissionIdsType.getDoingMissionIds().contains(treasure)){
|
if(treasureMissionIdsType.getDoingMissionIds().contains(treasure)){
|
||||||
|
@ -234,10 +239,10 @@ public class UserMissionManager extends MongoBase {
|
||||||
for(int i = 0 ; i<randomTask.length;i++){
|
for(int i = 0 ; i<randomTask.length;i++){
|
||||||
int [] temp=new int[2];
|
int [] temp=new int[2];
|
||||||
temp[0] = taskTypeMap.get(i);
|
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;
|
randomTask[i] = temp;
|
||||||
}
|
}
|
||||||
int[] tasks= MathUtils.randomFromWeightWithTaking(randomTask, 5);
|
int[] tasks= MathUtils.randomFromWeightWithTaking(randomTask, typeMissionNum[type-1]);
|
||||||
List<MissionStateChangeInfo> missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION);
|
List<MissionStateChangeInfo> missionStateChangeInfos = missionTypeEnumListMap.get(GameMisionType.TREASUREMISSION);
|
||||||
for(Integer task:tasks){
|
for(Integer task:tasks){
|
||||||
treasureMissionIdsType.getDoingMissionIds().add(task);
|
treasureMissionIdsType.getDoingMissionIds().add(task);
|
||||||
|
|
|
@ -349,14 +349,11 @@ public class MissionLoigc {
|
||||||
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.TREASURE_MISSION_REWARD, missionId);
|
Map<GameMisionType, List<MissionStateChangeInfo>> gameMisionTypeListMap = userMissionManager.onGameEvent(user, GameEvent.TREASURE_MISSION_REWARD, missionId);
|
||||||
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.TREASUREMISSION);
|
missionStateChangeInfos = gameMisionTypeListMap.get(GameMisionType.TREASUREMISSION);
|
||||||
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
|
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
|
||||||
int takeTimes = missionStateChangeInfos.get(0).getProgress();
|
|
||||||
missionStateChangeInfos.get(0).setProgress(0);
|
// ItemUtil.drop(user,STreasureSunlongTaskConfig.treasureTaskConfig.get(missionId).getIntegral(),BIReason.TREASURE_SCORE);
|
||||||
// int score = STreasureSunlongTaskConfig.treasureTaskConfig.get(missionId). * takeTimes;
|
|
||||||
// user.getPlayerInfoManager().addTreasureScore(score);
|
|
||||||
ItemUtil.drop(user,STreasureSunlongTaskConfig.treasureTaskConfig.get(missionId).getIntegral(),BIReason.TREASURE_SCORE);
|
|
||||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserTaskEvent,type,missionId);
|
KtEventUtils.onKtEvent(user, ParamEventBean.UserTaskEvent,type,missionId);
|
||||||
Repot37EventUtil.onKtEvent(user, Repot37EventUtil.Report37EventType.TASK_FINISH_EVEMT,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);
|
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class MissionEventDistributor {
|
||||||
|
|
||||||
eventProcessor.put(GameEvent.DAILY_REFRESH,new DailyRefreshEventProcess());
|
eventProcessor.put(GameEvent.DAILY_REFRESH,new DailyRefreshEventProcess());
|
||||||
eventProcessor.put(GameEvent.BLOODY_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.SERVENHAPPY_REFRESH,new TreasureRefreshEventProcess());
|
||||||
eventProcessor.put(GameEvent.BEGINNER,new BeginneRefreshEventProcessor());
|
eventProcessor.put(GameEvent.BEGINNER,new BeginneRefreshEventProcessor());
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,15 @@
|
||||||
package com.ljsd.jieling.logic.mission.main;
|
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.config.STreasureTaskConfig;
|
||||||
|
import com.ljsd.jieling.globals.BIReason;
|
||||||
import com.ljsd.jieling.logic.dao.CumulationData;
|
import com.ljsd.jieling.logic.dao.CumulationData;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
import com.ljsd.jieling.logic.mission.MissionLoigc;
|
||||||
import com.ljsd.jieling.logic.mission.MissionState;
|
import com.ljsd.jieling.logic.mission.MissionState;
|
||||||
import com.ljsd.jieling.logic.mission.MissionType;
|
import com.ljsd.jieling.logic.mission.MissionType;
|
||||||
|
import com.ljsd.jieling.util.ItemUtil;
|
||||||
import com.ljsd.jieling.util.MathUtils;
|
import com.ljsd.jieling.util.MathUtils;
|
||||||
|
|
||||||
import java.util.HashMap;
|
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){
|
public void rewardMission(User user,int missionId, List<MissionStateChangeInfo> missionTypeEnumListMap, CumulationData cumulationData) throws Exception {
|
||||||
STreasureTaskConfig sTreasureTaskConfig = STreasureTaskConfig.sTreasureTaskConfigMap.get(missionId);
|
STreasureSunlongTaskConfig taskConfig = STreasureSunlongTaskConfig.treasureTaskConfig.get(missionId);
|
||||||
if(sTreasureTaskConfig == null){return;}
|
if(taskConfig == null){return;}
|
||||||
int doingProgress = MissionLoigc.getDoingProgress(user,cumulationData, sTreasureTaskConfig.getTaskType(), sTreasureTaskConfig.getTaskValue()[0]);
|
int doingProgress = MissionLoigc.getDoingProgress(user,cumulationData, taskConfig.getTaskType(), taskConfig.getTaskValue()[0]);
|
||||||
//完成
|
//完成
|
||||||
int finishParm = sTreasureTaskConfig.getTaskValue()[1][0];
|
int finishParm = taskConfig.getTaskValue()[1][0];
|
||||||
Integer takeTimes = this.takeTimes.get(missionId);
|
if(doingProgress<finishParm){
|
||||||
if(takeTimes == null){
|
return;
|
||||||
takeTimes = 0;
|
|
||||||
}
|
}
|
||||||
int reallyTakeTimes = (doingProgress - takeTimes * finishParm) / finishParm;
|
STreasureSunlongConfig levelConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(user.getPlayerInfoManager().getTreasureLevel());
|
||||||
if(doingProgress!=0 && finishParm<0 && doingProgress>finishParm){
|
if(ItemUtil.itemCost(user,levelConfig.getIntegral(), BIReason.TREASURE_LEVEL_UP_CONCUME,1)){
|
||||||
reallyTakeTimes =1;
|
user.getPlayerInfoManager().addTreasureLevel();
|
||||||
}
|
|
||||||
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);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
MissionStateChangeInfo stateChangeInfo = new MissionStateChangeInfo(missionId, MissionState.REWARD,taskConfig.getIntegral());
|
||||||
|
missionTypeEnumListMap.add(stateChangeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue