山河试炼

back_recharge
xuexinpeng 2021-06-18 00:06:44 +08:00
parent 06fb70ed2a
commit 30ad58d7f0
5 changed files with 110 additions and 1 deletions

View File

@ -85,6 +85,7 @@ public interface ActivityType {
int LUCKY_GET = 63;//福星高照 int LUCKY_GET = 63;//福星高照
int FIFTEEN_LOGIN = 64;//十五日签到 int FIFTEEN_LOGIN = 64;//十五日签到
int EQUIP_UPLEVEL = 65;//云游商人 int EQUIP_UPLEVEL = 65;//云游商人
int HARD_STAGE_EXERCISE = 68;//山河试炼
int SUB_ACTIVITY = 8000;//易经宝库 int SUB_ACTIVITY = 8000;//易经宝库
int SKIN_RECHARGE_ACTIVITY = 71; int SKIN_RECHARGE_ACTIVITY = 71;

View File

@ -72,7 +72,7 @@ public enum ActivityTypeEnum {
EQUIP_UPLEVEL(ActivityType.EQUIP_UPLEVEL,EquipUpLevelActivity::new), EQUIP_UPLEVEL(ActivityType.EQUIP_UPLEVEL,EquipUpLevelActivity::new),
TA_SUI_LING_XIAO(ActivityType.TA_SUI_LING_XIAO,TaSuiLingXiaoActivity::new), TA_SUI_LING_XIAO(ActivityType.TA_SUI_LING_XIAO,TaSuiLingXiaoActivity::new),
CHOICE_DRAW_CRAD(ActivityType.CHOICE_DRAW_CRAD,ChoiceDrawCardActivity::new), CHOICE_DRAW_CRAD(ActivityType.CHOICE_DRAW_CRAD,ChoiceDrawCardActivity::new),
HARD_STAGE_EXERCISE(ActivityType.HARD_STAGE_EXERCISE,HardStageExerciseActivity::new),
; ;
private int type; private int type;
private Function<Integer, AbstractActivity> toActivityFunction; private Function<Integer, AbstractActivity> toActivityFunction;

View File

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

View File

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

View File

@ -2,6 +2,8 @@ package com.ljsd.jieling.logic.hardStage;
import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.logic.OnlineUserManager; 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.Hero;
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo; import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.UserManager;
@ -246,6 +248,10 @@ public class HardStageLogic {
HardStageNode node = chapterMap.get(nodeConfig.getChapter()).getNode(nodeConfig.getId()); HardStageNode node = chapterMap.get(nodeConfig.getChapter()).getNode(nodeConfig.getId());
if (node.getType() == 1) {//大节点 if (node.getType() == 1) {//大节点
int star = passReward(user, node, resultNum, dropList);//星级通关奖励 int star = passReward(user, node, resultNum, dropList);//星级通关奖励
//山河试炼活动
/*if(star >0 ){
Poster.getPoster().dispatchEvent(new HardStageExerciseEvent(iSession.getUid(),star));
}*/
chapterMap.get(nodeConfig.getChapter()).addStars(star); chapterMap.get(nodeConfig.getChapter()).addStars(star);
if (!node.isHasPass()) { if (!node.isHasPass()) {
node.setHasPass(true); node.setHasPass(true);
@ -431,6 +437,7 @@ public class HardStageLogic {
if(n.getType()== 1){ if(n.getType()== 1){
n.setState(7); n.setState(7);
chapter.addStars(3); chapter.addStars(3);
Poster.getPoster().dispatchEvent(new HardStageExerciseEvent(user.getId(),3));
user.getHardStageManager().updateString("chapterMap." + chapter.getChapterId(), chapter); user.getHardStageManager().updateString("chapterMap." + chapter.getChapterId(), chapter);
//user.getHardStageManager().updateString("chapterMap",user.getHardStageManager().getChapterMap()); //user.getHardStageManager().updateString("chapterMap",user.getHardStageManager().getChapterMap());