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