灵兽活动提交

lvxinran 2020-11-16 20:20:45 +08:00
parent 5a84536aa6
commit 36304b135e
6 changed files with 144 additions and 2 deletions

View File

@ -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<ActivityProto.SpecicalMonsterChooseRequest>{
@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());
}
}

View File

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

View File

@ -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;//灵兽礼包
}

View File

@ -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<Integer, AbstractActivity> toActivityFunction;

View File

@ -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<Integer, ActivityMission> 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<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
int progress;
for (Map.Entry<Integer, ActivityProgressInfo> 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);
}
}
}

View File

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