山河试炼
parent
06fb70ed2a
commit
30ad58d7f0
|
@ -85,6 +85,7 @@ public interface ActivityType {
|
|||
int LUCKY_GET = 63;//福星高照
|
||||
int FIFTEEN_LOGIN = 64;//十五日签到
|
||||
int EQUIP_UPLEVEL = 65;//云游商人
|
||||
int HARD_STAGE_EXERCISE = 68;//山河试炼
|
||||
|
||||
int SUB_ACTIVITY = 8000;//易经宝库
|
||||
int SKIN_RECHARGE_ACTIVITY = 71;
|
||||
|
|
|
@ -72,7 +72,7 @@ public enum ActivityTypeEnum {
|
|||
EQUIP_UPLEVEL(ActivityType.EQUIP_UPLEVEL,EquipUpLevelActivity::new),
|
||||
TA_SUI_LING_XIAO(ActivityType.TA_SUI_LING_XIAO,TaSuiLingXiaoActivity::new),
|
||||
CHOICE_DRAW_CRAD(ActivityType.CHOICE_DRAW_CRAD,ChoiceDrawCardActivity::new),
|
||||
|
||||
HARD_STAGE_EXERCISE(ActivityType.HARD_STAGE_EXERCISE,HardStageExerciseActivity::new),
|
||||
;
|
||||
private int type;
|
||||
private Function<Integer, AbstractActivity> toActivityFunction;
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
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.HardStageExerciseEvent;
|
||||
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.logic.hardStage.HardStageLogic;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class HardStageExerciseActivity extends AbstractActivity{
|
||||
public HardStageExerciseActivity(int id) {
|
||||
super(id);
|
||||
Poster.getPoster().listenEvent(this, HardStageExerciseEvent.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
if(event instanceof HardStageExerciseEvent){
|
||||
User user = UserManager.getUser(((HardStageExerciseEvent) event).getUid());
|
||||
if(user == null){
|
||||
return;
|
||||
}
|
||||
if(user.getActivityManager().getActivityMissionMap().get(id) == null){
|
||||
return;
|
||||
}
|
||||
//无用 功能线上 活动后上
|
||||
//update(user,((HardStageExerciseEvent) event).getCount());
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public boolean takeReward(ISession session, int missionId) throws Exception{
|
||||
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
if(user == null){
|
||||
return false;
|
||||
}
|
||||
checkState(user);
|
||||
super.takeReward(session,missionId);
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* 活动结束邮件
|
||||
*/
|
||||
@Override
|
||||
public void onActivityEndDealReward(User user) throws Exception {
|
||||
checkState(user);
|
||||
super.onActivityEndDealReward(user);
|
||||
}
|
||||
|
||||
//山河社稷功能已上 活动后上 为了保证老玩家这个活动数据正常 特在此容错
|
||||
private void checkState(User user)throws Exception{
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if( null == activityMission){
|
||||
return;
|
||||
}
|
||||
int starSum = HardStageLogic.getHardStageStarsSum(user);
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
|
||||
for (Map.Entry<Integer, ActivityProgressInfo> item : activityProgressInfoMap.entrySet()) {
|
||||
ActivityProgressInfo activityProgressInfo = item.getValue();
|
||||
if(starSum == item.getValue().getProgrss()){
|
||||
continue;
|
||||
}
|
||||
activityProgressInfo.setProgrss(starSum);
|
||||
activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
package com.ljsd.jieling.logic.activity.event;
|
||||
|
||||
public class HardStageExerciseEvent implements IEvent{
|
||||
private int uid;
|
||||
private int count;
|
||||
|
||||
public HardStageExerciseEvent(int uid, int count) {
|
||||
this.uid = uid;
|
||||
this.count = count;
|
||||
}
|
||||
|
||||
public int getUid() {
|
||||
return uid;
|
||||
}
|
||||
|
||||
public void setUid(int uid) {
|
||||
this.uid = uid;
|
||||
}
|
||||
|
||||
public int getCount() {
|
||||
return count;
|
||||
}
|
||||
|
||||
public void setCount(int count) {
|
||||
this.count = count;
|
||||
}
|
||||
}
|
|
@ -2,6 +2,8 @@ package com.ljsd.jieling.logic.hardStage;
|
|||
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.event.HardStageExerciseEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.dao.Hero;
|
||||
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
|
@ -246,6 +248,10 @@ public class HardStageLogic {
|
|||
HardStageNode node = chapterMap.get(nodeConfig.getChapter()).getNode(nodeConfig.getId());
|
||||
if (node.getType() == 1) {//大节点
|
||||
int star = passReward(user, node, resultNum, dropList);//星级通关奖励
|
||||
//山河试炼活动
|
||||
/*if(star >0 ){
|
||||
Poster.getPoster().dispatchEvent(new HardStageExerciseEvent(iSession.getUid(),star));
|
||||
}*/
|
||||
chapterMap.get(nodeConfig.getChapter()).addStars(star);
|
||||
if (!node.isHasPass()) {
|
||||
node.setHasPass(true);
|
||||
|
@ -431,6 +437,7 @@ public class HardStageLogic {
|
|||
if(n.getType()== 1){
|
||||
n.setState(7);
|
||||
chapter.addStars(3);
|
||||
Poster.getPoster().dispatchEvent(new HardStageExerciseEvent(user.getId(),3));
|
||||
user.getHardStageManager().updateString("chapterMap." + chapter.getChapterId(), chapter);
|
||||
//user.getHardStageManager().updateString("chapterMap",user.getHardStageManager().getChapterMap());
|
||||
|
||||
|
|
Loading…
Reference in New Issue