新活动

mengchengzhen 2021-06-22 10:41:33 +08:00
parent 9193d8b6da
commit 6cd02d8979
3 changed files with 94 additions and 0 deletions

View File

@ -95,5 +95,6 @@ public interface ActivityType {
int NEW_GENERAL_ATTACK = 200;//新将来袭
int SUPER_BOX = 69;//惊喜礼盒
int HERO_STAR = 500;
}

View File

@ -73,6 +73,7 @@ public enum ActivityTypeEnum {
TA_SUI_LING_XIAO(ActivityType.TA_SUI_LING_XIAO,TaSuiLingXiaoActivity::new),
CHOICE_DRAW_CRAD(ActivityType.CHOICE_DRAW_CRAD,ChoiceDrawCardActivity::new),
SUPER_BOX(ActivityType.SUPER_BOX,SuperBoxActivity::new),
HERO_STAR(ActivityType.HERO_STAR,HeroStarActivity::new),
;
private int type;

View File

@ -0,0 +1,92 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.event.HeroUpStarEvent;
import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.network.session.ISession;
import config.SActivityRewardConfig;
import config.SGlobalActivity;
import java.util.List;
import java.util.Map;
public class HeroStarActivity extends AbstractActivity {
public HeroStarActivity(int id) {
super(id);
Poster.getPoster().listenEvent(this, HeroUpStarEvent.class);
}
@Override
public void onEvent(IEvent event) throws Exception {
if (!(event instanceof HeroUpStarEvent))
return;
HeroUpStarEvent heroUpStarEvent = (HeroUpStarEvent) event;
User user = UserManager.getUser(heroUpStarEvent.getUid());
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
if( null == activityMission){
return;
}
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
List<SActivityRewardConfig> list = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
int heroId = list.get(0).getValues()[0][0];
if(heroUpStarEvent.getHeroTid() != heroId){
return;
}
int maxstar = user.getHeroManager().getHeroHandBook().get(heroId);
for (SActivityRewardConfig sActivityRewardConfig : list) {
if (maxstar >= sActivityRewardConfig.getValues()[0][1]) {
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(sActivityRewardConfig.getId(), null);
if (null == activityProgressInfo)
continue;
if(activityProgressInfo.getState()<1){
activityProgressInfo.setState(1);
}
activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo);
}
}
//更新进度
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
sendActivityProgress(sessionByUid, activityMission, null);
}
@Override
public void initActivity(User user) throws Exception {
SGlobalActivity globalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
if(globalActivity == null){
return;
}
ActivityLogic.getInstance().initAllActivityMission(user.getActivityManager().getActivityMissionMap(),globalActivity.getId());
if(user.getActivityManager().getActivityMissionMap().get(globalActivity.getId()) == null){
return;
}
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
if( null == activityMission){
return;
}
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
List<SActivityRewardConfig> list = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
int heroId = list.get(0).getValues()[0][0];
Integer maxstar = user.getHeroManager().getHeroHandBook().get(heroId);
if(maxstar == null){
return;
}
for (SActivityRewardConfig sActivityRewardConfig : list) {
if (maxstar.intValue() >= sActivityRewardConfig.getValues()[0][1]) {
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(sActivityRewardConfig.getId(), null);
if (null == activityProgressInfo)
continue;
if(activityProgressInfo.getState()<1){
activityProgressInfo.setState(1);
}
activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo);
}
}
}
}