幸运探宝活动奖励领完 重置进度
parent
3d769948ad
commit
2ff9f1583e
|
@ -131,4 +131,9 @@ public class SGlobalActivity implements BaseConfig {
|
|||
public int getShopId() {
|
||||
return shopId;
|
||||
}
|
||||
|
||||
public int getResetGrade() {
|
||||
return resetGrade;
|
||||
}
|
||||
|
||||
}
|
|
@ -69,6 +69,18 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
|||
activityManager.initAllActivityMission(id);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 活动期间活动进度会进行多次 领完所有活动奖励重置
|
||||
* @param user
|
||||
* @throws Exception
|
||||
*/
|
||||
public void reSetValue(User user) throws Exception {
|
||||
ActivityManager activityManager = user.getActivityManager();
|
||||
activityManager.removeActivity(id);
|
||||
activityManager.initAllActivityMission(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(User user, int count) {
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
|
@ -135,8 +147,14 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
|||
int[][] reward = sActivityRewardConfig.getReward();
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
|
||||
checkAndSetProgress(activityMission, activityProgressInfo, sActivityRewardConfig, missionId);
|
||||
//send
|
||||
sendActivityProgress(session, activityMission, Collections.singleton(missionId));
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
if(null!=sGlobalActivity&&ActivityLogic.getInstance().checkActivityMissionFinishAndTaked(id,activityMission)&&sGlobalActivity.getResetGrade()==1){
|
||||
reSetValue(user);
|
||||
activityMission.setValue(activityMission.getValue()-sActivityRewardConfig.getValues()[0][0]);
|
||||
sendActivityProgress(session, activityMission,null);
|
||||
}else {
|
||||
sendActivityProgress(session, activityMission, Collections.singleton(missionId));
|
||||
}
|
||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserActivityEvent, id, missionId);
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
|
@ -226,7 +244,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
|||
return true;
|
||||
}
|
||||
|
||||
public void onActivityEndSelfWithDealReward(User user) throws Exception {
|
||||
void onActivityEndSelfWithDealReward(User user) throws Exception {
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
if (sGlobalActivity.getIsMail() == 1)
|
||||
onActivityEndDealReward(user);
|
||||
|
@ -261,7 +279,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
|||
takeAllReward(sessionByUid);
|
||||
}
|
||||
|
||||
public List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(ActivityMission activityMission) {
|
||||
List<CommonProto.ActivityInfo.MissionInfo> getAllMissInfo(ActivityMission activityMission) {
|
||||
return getAllMissInfo(activityMission, null);
|
||||
}
|
||||
|
||||
|
|
|
@ -467,29 +467,32 @@ public class ActivityLogic {
|
|||
}
|
||||
}
|
||||
|
||||
private void checkActivityMissionFinishAndTaked(int activityId, ActivityMission activityMission) {
|
||||
public boolean checkActivityMissionFinishAndTaked(int activityId, ActivityMission activityMission) {
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityProgressInfoMap();
|
||||
boolean isAllTaked = true;
|
||||
for (Map.Entry<Integer, ActivityProgressInfo> item : activityProgressInfoMap.entrySet()) {
|
||||
ActivityProgressInfo activityProgressInfo = item.getValue();
|
||||
Integer missionStatus = activityProgressInfo.getState();
|
||||
int missionStatus = activityProgressInfo.getState();
|
||||
if (missionStatus == ActivityType.WILL_TAKE) {
|
||||
isAllTaked = false;
|
||||
return false;
|
||||
}
|
||||
if (SGlobalActivity.getsGlobalActivityMap().get(activityId).getType() == ActivityType.TREASURE) {
|
||||
if (missionStatus == ActivityType.HAD_TAKED) {
|
||||
isAllTaked = false;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (activityProgressInfoMap.isEmpty()) {
|
||||
isAllTaked = false;
|
||||
return false;
|
||||
}
|
||||
if (isAllTaked) {
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(activityId);
|
||||
if(sGlobalActivity.getResetGrade()==0){
|
||||
activityMission.updateActivityState(ActivityType.FINISH_STATE);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public int getInitActivityMissionProgress(int activityId) {
|
||||
int defalutProgress = 0;
|
||||
switch (activityId) {
|
||||
|
|
|
@ -1,17 +1,11 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.config.SDailyTasksConfig;
|
||||
import com.ljsd.jieling.config.SDialRewardConfig;
|
||||
import com.ljsd.jieling.config.SDialRewardSetting;
|
||||
import com.ljsd.jieling.config.SGlobalActivity;
|
||||
import com.ljsd.jieling.config.*;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.LuckWheelAdvanceEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.LuckWheelEvent;
|
||||
import com.ljsd.jieling.logic.dao.ActivityMission;
|
||||
import com.ljsd.jieling.logic.dao.LuckWheelMission;
|
||||
import com.ljsd.jieling.logic.dao.LuckWheelPosInfo;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
|
@ -59,6 +53,11 @@ public abstract class LuckWheelActivity extends AbstractActivity {
|
|||
activityMission.setValue(count + activityMission.getValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
return checkValue(session, sActivityRewardConfig, activityProgressInfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置奖励
|
||||
*/
|
||||
|
|
|
@ -329,6 +329,9 @@ public class PlayerManager extends MongoBase {
|
|||
public void vipFlush( Set<Integer> removePrivileges) {
|
||||
for(Integer id : vipInfo.keySet()){
|
||||
SPrivilegeTypeConfig sPrivilegeTypeConfig = SPrivilegeTypeConfig.getsPrivilegeTypeConfigMap().get(id);
|
||||
if(null == sPrivilegeTypeConfig){
|
||||
continue;
|
||||
}
|
||||
int refreshType = sPrivilegeTypeConfig.getRefreshType()[0];
|
||||
if(refreshType == 1){
|
||||
vipInfo.put(id,0);
|
||||
|
|
Loading…
Reference in New Issue