diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/SpecialMonsterChooseHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/SpecialMonsterChooseHandler.java new file mode 100644 index 000000000..d72de5d5d --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/SpecialMonsterChooseHandler.java @@ -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 com.ljsd.jieling.protocols.ActivityProto; +import com.ljsd.jieling.protocols.MessageTypeProto; +import org.springframework.stereotype.Component; + +/** + * @author lvxinran + * @date 2020/11/11 + * @discribe + */ +@Component +public class SpecialMonsterChooseHandler extends BaseHandler{ + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.SPECICAL_MONSTER_CHOOSE_REQUEST; + } + + @Override + public void processWithProto(ISession iSession, ActivityProto.SpecicalMonsterChooseRequest proto) throws Exception { + ActivityLogic.getInstance().chooseSpecialMonster(iSession,proto.getActivityId(),proto.getSelectId()); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index 775cb3e61..64138cc53 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1374,4 +1374,25 @@ public class ActivityLogic implements IEventHandler{ return openActivityIds.contains(activityId); } + /** + * 灵兽活动选择灵兽 + * @param session + * @param activityId + * @param chooseId + */ + public void chooseSpecialMonster(ISession session,int activityId,int chooseId) throws Exception { + SGlobalActivity activity = SGlobalActivity.getsGlobalActivityMap().get(activityId); + if(activity==null||activity.getType()!=ActivityType.SPECIAL_MONSTER_RANDOM_ACTIVITY){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + User user = UserManager.getUser(session.getUid()); + Map activityMissionMap = user.getActivityManager().getActivityMissionMap(); + ActivityMission activityMission = activityMissionMap.get(activityId); + if(activityMission==null||!activityMission.getActivityMissionMap().containsKey(0)){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + activityMission.getActivityMissionMap().get(0).setProgrss(chooseId); + + MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.SPECICAL_MONSTER_CHOOSE_RESPONSE_VALUE,null,true); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java index 7a675c357..44428085a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityType.java @@ -80,5 +80,7 @@ public interface ActivityType { int SHEJI_ACTIVITY = 60;//社稷大典 int SUB_ACTIVITY = 8000;//易经宝库 int SKIN_RECHARGE_ACTIVITY = 71; + int SPECIAL_MONSTER_RANDOM_ACTIVITY = 100;//灵兽限时抽卡 + int SPECIAL_MONSTER_GIFT_ACTIVITY = 101;//灵兽礼包 } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java index e7e88996a..7b46d2156 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityTypeEnum.java @@ -61,8 +61,8 @@ public enum ActivityTypeEnum { SHEJI_ACTIVITY(ActivityType.SHEJI_ACTIVITY,SheJiActivity::new), SUB_ACTIVITY(ActivityType.SUB_ACTIVITY, SubActivity::new), SKIN_RECHARGE_ACTIVITY(ActivityType.SKIN_RECHARGE_ACTIVITY, DefaultEmptyActivity::new), - - + SPECIAL_MONSTER_RANDOM_ACTIVITY(ActivityType.SPECIAL_MONSTER_RANDOM_ACTIVITY,LimitRandomSpecialMonsterActivity::new), + SPECIAL_MONSTER_GIFT_ACTIVITY(ActivityType.SPECIAL_MONSTER_GIFT_ACTIVITY,DefaultEmptyActivity::new), ; private int type; private Function toActivityFunction; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java new file mode 100644 index 000000000..18399fa36 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomSpecialMonsterActivity.java @@ -0,0 +1,44 @@ +package com.ljsd.jieling.logic.activity; + +import com.ljsd.jieling.jbean.ActivityMission; +import com.ljsd.jieling.jbean.ActivityProgressInfo; +import com.ljsd.jieling.logic.dao.root.User; + +import java.util.Map; + +/** + * @author lvxinran + * @date 2020/11/11 + * @discribe + */ +public class LimitRandomSpecialMonsterActivity extends LimitRandomCardActivity { + + public LimitRandomSpecialMonsterActivity(int id) { + super(id); + } + + @Override + public void initActivity(User user) { + super.initActivity(user); + Map activityMissionMap = user.getActivityManager().getActivityMissionMap(); + ActivityMission activityMission = activityMissionMap.get(id); + if(activityMission!=null){ + activityMission.getActivityMissionMap().put(0,new ActivityProgressInfo()); + } + } + + @Override + void updateProgress(ActivityMission activityMission, int count) { + Map activityProgressInfoMap = activityMission.getActivityMissionMap(); + int progress; + for (Map.Entry item : activityProgressInfoMap.entrySet()) { + if(item.getKey()==0){ + continue; + } + ActivityProgressInfo activityProgressInfo = item.getValue(); + progress = item.getValue().getProgrss() + count; + activityProgressInfo.setProgrss(progress); + activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo); + } + } +} diff --git a/tablemanager/src/main/java/config/SSpiritAnimalSummon.java b/tablemanager/src/main/java/config/SSpiritAnimalSummon.java new file mode 100644 index 000000000..1e66cefa8 --- /dev/null +++ b/tablemanager/src/main/java/config/SSpiritAnimalSummon.java @@ -0,0 +1,49 @@ +package config; + +import manager.STableManager; +import manager.Table; + +import java.util.Map; + +@Table(name ="SpiritAnimalSummon") +public class SSpiritAnimalSummon implements BaseConfig { + + private int id; + + private int focusID; + + private int activityID; + + private int[] originalItemList; + + private int[] targetItemList; + + + @Override + public void init() throws Exception { + + } + + + public int getId() { + return id; + } + + public int getFocusID() { + return focusID; + } + + public int getActivityID() { + return activityID; + } + + public int[] getOriginalItemList() { + return originalItemList; + } + + public int[] getTargetItemList() { + return targetItemList; + } + + +} \ No newline at end of file