幸运探宝活动奖励领完 重置进度

back_recharge
zhangshanxue 2019-10-10 11:08:30 +08:00
parent 3d769948ad
commit 2ff9f1583e
5 changed files with 47 additions and 19 deletions

View File

@ -131,4 +131,9 @@ public class SGlobalActivity implements BaseConfig {
public int getShopId() {
return shopId;
}
public int getResetGrade() {
return resetGrade;
}
}

View File

@ -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);
}

View File

@ -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) {

View File

@ -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);
}
/**
*
*/

View File

@ -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);