新版升星活动脚本提交
parent
c03ae4a02f
commit
2594a30e6a
|
|
@ -0,0 +1,26 @@
|
|||
package com.ljsd.jieling.handler.activity;
|
||||
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.ActivityProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
|
||||
/**
|
||||
* @author lvxinran
|
||||
* @date 2020/11/11
|
||||
* @discribe
|
||||
*/
|
||||
@Component
|
||||
public class UpStarActivitySelectRequestHandler extends BaseHandler<ActivityProto.UpStarActivitySelectRequest>{
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.UP_STAR_ACTIVITY_SELECT_REQUEST;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processWithProto(ISession iSession, ActivityProto.UpStarActivitySelectRequest proto) throws Exception {
|
||||
ActivityLogic.getInstance().upStarActivitySelectHero(iSession,proto.getActivityId(),proto.getSelectId());
|
||||
}
|
||||
}
|
||||
|
|
@ -1576,6 +1576,29 @@ public class ActivityLogic implements IEventHandler{
|
|||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.SPECICAL_MONSTER_CHOOSE_RESPONSE_VALUE,null,true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 升星活动选择英雄
|
||||
* @param session
|
||||
* @param activityId
|
||||
* @param heroTemId
|
||||
* @throws Exception
|
||||
*/
|
||||
public void upStarActivitySelectHero(ISession session,int activityId,int heroTemId) throws Exception{
|
||||
SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(activityId);
|
||||
if(activity==null){
|
||||
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
|
||||
}
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
Map<Integer, ActivityMission> activityMissionMap = user.getActivityManager().getActivityMissionMap();
|
||||
ActivityMission activityMission = activityMissionMap.get(activityId);
|
||||
///ChoiceRewardId存的是已经选择的英雄id 一期只能选一次
|
||||
if(activityMission==null||activityMission.getV()>0){
|
||||
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
|
||||
}
|
||||
activityMission.setV(heroTemId);
|
||||
Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(), heroTemId, 1));
|
||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_STAR_ACTIVITY_SELECT_RESPONSE_VALUE,null,true);
|
||||
}
|
||||
//扭转乾坤
|
||||
public void goodLuckRandom(ISession session, int activityId, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
|
||||
|
|
|
|||
|
|
@ -112,6 +112,7 @@ public interface ActivityType {
|
|||
int SPECIAL_MONSTER_GIFT_ACTIVITY = 101;//灵兽礼包
|
||||
|
||||
int NEW_PLAYER_SHOP = 91; // 新人商城
|
||||
int HERO_UP_STAR_ACTIVITY=94;//限时升星活动
|
||||
|
||||
|
||||
int NEW_GENERAL_ATTACK = 200;//新将来袭
|
||||
|
|
|
|||
|
|
@ -99,7 +99,8 @@ public enum ActivityTypeEnum {
|
|||
DAILY_PREFERENTIAL_GIFT(ActivityType.DAILY_PREFERENTIAL_GIFT,DailyPreferentialGiftActivity::new),
|
||||
SUMMON_TREASURE(ActivityType.SUMMON_TREASURE,SummonTreasureActivity::new),//招募秘宝
|
||||
NEW_PLAYER_SHOP(ActivityType.NEW_PLAYER_SHOP, NewPlayerShopActivity::new),
|
||||
NEW_DAILY_RECHARGE(ActivityType.NEW_DAILY_RECHARGE, RechargeRewardActivity::new)
|
||||
NEW_DAILY_RECHARGE(ActivityType.NEW_DAILY_RECHARGE, RechargeRewardActivity::new),
|
||||
HERO_UP_STAR_ACTIVITY(ActivityType.HERO_UP_STAR_ACTIVITY,HeroUpStarActivity::new)
|
||||
;
|
||||
|
||||
private int type;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,78 @@
|
|||
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.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ToolsUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SGlobalActivity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
|
||||
public class HeroUpStarActivity extends AbstractActivity {
|
||||
public HeroUpStarActivity(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;
|
||||
if (heroUpStarEvent.getStar()==0){
|
||||
return;
|
||||
}
|
||||
User user = UserManager.getUser(heroUpStarEvent.getUid());
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if( null == activityMission){
|
||||
return;
|
||||
}
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
if (heroUpStarEvent.getStar()==1){
|
||||
selectHeroUpdateMission(activityProgressInfoMap,heroUpStarEvent.getHeroTid());
|
||||
}else{
|
||||
for (SActivityRewardConfig sActivityRewardConfig : SActivityRewardConfig.getsActivityRewardConfigByActivityId(id)) {
|
||||
if (heroUpStarEvent.getHeroTid() == sActivityRewardConfig.getValues()[0][0] && heroUpStarEvent.getStar() == sActivityRewardConfig.getValues()[0][1]) {
|
||||
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(sActivityRewardConfig.getId(), null);
|
||||
if (null == activityProgressInfo)
|
||||
continue;
|
||||
activityProgressInfo.setProgrss(activityProgressInfo.getProgrss() + 1);
|
||||
activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
int[][] values = sActivityRewardConfig.getValues();
|
||||
int missionProgress = activityProgressInfo.getProgrss();
|
||||
if (missionProgress < values[1][0]) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void selectHeroUpdateMission( Map<Integer, ActivityProgressInfo> activityProgressInfoMap, int heroTId) throws Exception
|
||||
{
|
||||
for (SActivityRewardConfig rewardConfig : SActivityRewardConfig.getsActivityRewardConfigByActivityId(id)) {
|
||||
if (rewardConfig.getValues()[0][0]!=heroTId&&activityProgressInfoMap.containsKey(rewardConfig.getId())){
|
||||
activityProgressInfoMap.remove(rewardConfig.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -161,6 +161,9 @@ public class CrossServiceLogic {
|
|||
if(bol && player != null){
|
||||
return player;
|
||||
}
|
||||
if (true) {
|
||||
return null;
|
||||
}
|
||||
User user = PlayerLogic.getInstance().getUserByRpc(uid);
|
||||
if (user == null) {
|
||||
return null;
|
||||
|
|
|
|||
Loading…
Reference in New Issue