Merge branch 'dh_dev_activiyDraw' into master_test_gn
commit
a8a013ec5c
|
|
@ -336,4 +336,6 @@ public interface BIReason {
|
|||
int UP_PRACTICE_LEVEL = 1100;//修行升级
|
||||
int SVIP_LEVEL_REWARD = 1101;//特权升级等级奖励
|
||||
|
||||
int CHOICE_DRAW_CARD = 1102;//心愿抽奖
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
package com.ljsd.jieling.handler.activity;
|
||||
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.activity.ActivityLogic;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.ActivityProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
|
||||
/**
|
||||
* @Author hj
|
||||
* @Date 2021/5/24 18:11
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Component
|
||||
public class ChoiceDrawCardHandler extends BaseHandler<ActivityProto.choiceDrawCardRequest> {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.choiceDrawCardRequest;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processWithProto(ISession iSession, ActivityProto.choiceDrawCardRequest proto) throws Exception {
|
||||
// 用户信息
|
||||
User user = UserManager.getUser(iSession.getUid());
|
||||
if (user == null) {
|
||||
throw new ErrorCodeException(ErrorCode.UNKNOWN);
|
||||
}
|
||||
|
||||
int activityId = proto.getActivityId();
|
||||
int type = proto.getType();
|
||||
|
||||
ActivityLogic.getInstance().choiceDrawCard(user,activityId,type);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
package com.ljsd.jieling.handler.activity;
|
||||
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.logic.activity.AbstractActivity;
|
||||
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SWishActivityUp;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.ActivityProto;
|
||||
import rpc.protocols.Family;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author hj
|
||||
* @Date 2021/5/24 17:04
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
@Component
|
||||
public class ChoiceHeroRewardHandler extends BaseHandler<ActivityProto.choiceHeroRewardRequest> {
|
||||
@Override
|
||||
public MessageTypeProto.MessageType getMessageCode() {
|
||||
return MessageTypeProto.MessageType.choiceHeroRewardRequest;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void processWithProto(ISession iSession, ActivityProto.choiceHeroRewardRequest proto) throws Exception {
|
||||
// 用户信息
|
||||
User user = UserManager.getUser(iSession.getUid());
|
||||
if (user == null) {
|
||||
throw new ErrorCodeException(ErrorCode.UNKNOWN);
|
||||
}
|
||||
// 客户端参数
|
||||
int activityId = proto.getActivityId();
|
||||
int rewardId = proto.getRewardId();
|
||||
// 验证所选奖励是否正确
|
||||
int[][] upList = SWishActivityUp.map.get(activityId).getUpList();
|
||||
|
||||
boolean result = false;
|
||||
for (int[] incs : upList) {
|
||||
if (incs[0] == rewardId){
|
||||
result = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!result){
|
||||
throw new ErrorCodeException("英雄id错误,不在本期活动");
|
||||
}
|
||||
|
||||
// 修改默认英雄id
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(activityId);
|
||||
mission.setChoiceRewardId(rewardId);
|
||||
|
||||
ActivityProto.choiceHeroRewardResponse builder = ActivityProto.choiceHeroRewardResponse.newBuilder().build();
|
||||
MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.choiceHeroRewardResponse_VALUE,builder,true);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -18,6 +18,10 @@ public final class ActivityMission extends MongoBase {
|
|||
private int openType;
|
||||
private int v;
|
||||
private long creatTime;
|
||||
/**
|
||||
* 心愿抽奖专用,选择得奖励id
|
||||
*/
|
||||
private int choiceRewardId;
|
||||
|
||||
public ActivityMission() {
|
||||
}
|
||||
|
|
@ -30,6 +34,7 @@ public final class ActivityMission extends MongoBase {
|
|||
this.openType = _o_.openType;
|
||||
this.v = _o_.v;
|
||||
this.creatTime = _o_.creatTime;
|
||||
this.choiceRewardId = _o_.choiceRewardId;
|
||||
}
|
||||
|
||||
public Map<Integer, com.ljsd.jieling.jbean.ActivityProgressInfo> getActivityMissionMap() {
|
||||
|
|
@ -74,6 +79,15 @@ public final class ActivityMission extends MongoBase {
|
|||
this.creatTime = creatTime;
|
||||
}
|
||||
|
||||
public int getChoiceRewardId() {
|
||||
return choiceRewardId;
|
||||
}
|
||||
|
||||
public void setChoiceRewardId(int choiceRewardId) {
|
||||
this.choiceRewardId = choiceRewardId;
|
||||
updateString("choiceRewardId",choiceRewardId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder _sb_ = new StringBuilder(super.toString());
|
||||
|
|
@ -83,6 +97,7 @@ public final class ActivityMission extends MongoBase {
|
|||
_sb_.append(this.openType).append(",");
|
||||
_sb_.append(this.v).append(",");
|
||||
_sb_.append(this.creatTime).append(",");
|
||||
_sb_.append(this.choiceRewardId).append(",");
|
||||
_sb_.append(")");
|
||||
return _sb_.toString();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -530,7 +530,16 @@ public class ActivityLogic implements IEventHandler{
|
|||
continue;
|
||||
}
|
||||
List<CommonProto.ActivityInfo.MissionInfo> missionInfos =abstractActivity.getAllMissInfo(activityMission);
|
||||
activityInfoList.add(CommonProto.ActivityInfo.newBuilder().setActivityId(activityId).addAllMission(missionInfos).setStartTime(startTime).setEndTime(endTime).setValue(activityMission.getV()).setReallyOpen(activityMission.getOpenType()).build());
|
||||
CommonProto.ActivityInfo build = CommonProto.ActivityInfo.newBuilder()
|
||||
.setActivityId(activityId)
|
||||
.addAllMission(missionInfos)
|
||||
.setStartTime(startTime)
|
||||
.setEndTime(endTime)
|
||||
.setValue(activityMission.getV())
|
||||
.setReallyOpen(activityMission.getOpenType())
|
||||
.setChoiceRewardId(activityMission.getChoiceRewardId())
|
||||
.build();
|
||||
activityInfoList.add(build);
|
||||
}
|
||||
return activityInfoList;
|
||||
}
|
||||
|
|
@ -1508,4 +1517,154 @@ public class ActivityLogic implements IEventHandler{
|
|||
result[1] = endTime;
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 心愿抽奖
|
||||
* @param user
|
||||
* @param activityId
|
||||
* @param type
|
||||
* @throws Exception
|
||||
*/
|
||||
public void choiceDrawCard(User user,int activityId,int type) throws Exception {
|
||||
// 初始值
|
||||
ActivityProto.choiceDrawCardResponse.Builder build = ActivityProto.choiceDrawCardResponse.newBuilder();
|
||||
SWishActivitySetting setting = STableManager.getConfig(SWishActivitySetting.class).get(1);
|
||||
// 抽奖次数
|
||||
int num = type == 1?1:10;
|
||||
// 抽奖上限
|
||||
boolean check1 = PlayerLogic.getInstance().check(user, setting.getMaxTimes(), num);
|
||||
if (!check1){
|
||||
throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT, "抽奖次数不足");
|
||||
}
|
||||
CommonProto.Drop.Builder drop;
|
||||
// 单抽
|
||||
if (num == 1){
|
||||
// 验证免费特权
|
||||
boolean check = PlayerLogic.getInstance().checkAndUpdate(user, setting.getFreeTimes(), num);
|
||||
if (check){
|
||||
drop = getDrawReward(user, activityId, num);
|
||||
// 发送奖励
|
||||
build.setDrop(drop);
|
||||
MessageUtil.sendMessage(user.getId(),1, MessageTypeProto.MessageType.choiceDrawCardResponse_VALUE,build.build(),true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// 十连抽还是单抽消耗物品获取
|
||||
int[][] item = type == 1?setting.getCostItemMul():setting.getCostItemSingle();
|
||||
// 验证道具消耗
|
||||
int[][] cost = new int[][]{{item[0][0],item[0][1]}};
|
||||
boolean itemCost = ItemUtil.itemCost(user, cost, BIReason.CHOICE_DRAW_CARD, 0);
|
||||
// 道具抽奖
|
||||
if (itemCost){
|
||||
drop = getDrawReward(user, activityId, num);
|
||||
}
|
||||
// 妖晶抽奖
|
||||
else {
|
||||
// 验证妖晶购买特权
|
||||
boolean check = PlayerLogic.getInstance().check(user, setting.getDiamondMaxTimes(), num);
|
||||
if (!check){
|
||||
throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT,"妖晶抽奖次数不足");
|
||||
}
|
||||
|
||||
// 验证妖晶消耗
|
||||
int[][] cost2 = new int[][]{{item[1][0],item[1][1]}};
|
||||
boolean itemCost2 = ItemUtil.itemCost(user, cost2, BIReason.CHOICE_DRAW_CARD, 0);
|
||||
if (!itemCost2){
|
||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||
}
|
||||
|
||||
//特权次数消耗
|
||||
PlayerLogic.getInstance().checkAndUpdate(user, setting.getDiamondMaxTimes(), num);
|
||||
drop = getDrawReward(user, activityId, num);
|
||||
}
|
||||
|
||||
// 特权消耗
|
||||
PlayerLogic.getInstance().checkAndUpdate(user, setting.getMaxTimes(), num);
|
||||
|
||||
// 事件分发
|
||||
Poster.getPoster().dispatchEvent(new ChoiceDrawCardEvent(user.getId(),activityId,num));
|
||||
|
||||
// 返回奖励信息
|
||||
build.setDrop(drop);
|
||||
MessageUtil.sendMessage(user.getId(),1, MessageTypeProto.MessageType.choiceDrawCardResponse_VALUE,build.build(),true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 心愿 获取奖励
|
||||
* @param user
|
||||
* @param activityId
|
||||
* @param num
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private CommonProto.Drop.Builder getDrawReward(User user,int activityId,int num) throws Exception {
|
||||
// 奖励信息
|
||||
int[][] reward = new int[num][];
|
||||
// 活动信息
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(activityId);
|
||||
// 累计得抽奖次数
|
||||
int count = mission.getV();
|
||||
// up奖励id
|
||||
int upRewardId = mission.getChoiceRewardId();
|
||||
|
||||
// 排序权重map
|
||||
Map<Integer, Integer> weight = new TreeMap<>(SWishActivityPool.weight);
|
||||
// 常驻卡池
|
||||
Map<Integer, SWishActivityPool> poolMap = SWishActivityPool.map;
|
||||
// 根据活动获取本期得全部up信息
|
||||
Map<Integer, int[]> up = SWishActivityUp.upMap.get(activityId);
|
||||
// 根据玩家选取得up奖励id获取详细信息
|
||||
int[] incs = up.get(upRewardId);
|
||||
// 讲up奖励id得权重加入到整个卡池权重中
|
||||
weight.put(weight.size(),incs[2]);
|
||||
// 计算总权重
|
||||
int totalWeight = weight.values().stream().mapToInt(Integer::intValue).sum();
|
||||
|
||||
int i = 0;
|
||||
// 根据抽奖次数循环
|
||||
while (i < num){
|
||||
// 已抽奖次数+1
|
||||
count++;
|
||||
// 随机数
|
||||
int randomInt = MathUtils.randomInt(totalWeight);
|
||||
// up奖励信息
|
||||
int[] result = new int[]{incs[0],incs[1]};
|
||||
|
||||
// 抽奖次数达到必出up次数
|
||||
if (count >= incs[3]){
|
||||
// 次数归0
|
||||
count = 0;
|
||||
// 添加奖励
|
||||
reward[i++] = result;
|
||||
continue;
|
||||
}
|
||||
|
||||
// 权重循环
|
||||
for (Map.Entry<Integer, Integer> entry : weight.entrySet()) {
|
||||
// 随机值小于等于当前次数权重,证明抽到了
|
||||
if (randomInt <= entry.getValue()){
|
||||
// 根据id获取奖池信息
|
||||
SWishActivityPool pool = poolMap.get(entry.getKey());
|
||||
// null意味着是up奖励
|
||||
if (pool == null){
|
||||
count = 0;
|
||||
reward[i++] = result;
|
||||
}
|
||||
// 非up奖励
|
||||
else {
|
||||
reward[i++] = pool.getItemId();
|
||||
}
|
||||
break;
|
||||
}
|
||||
// 未抽到, 减去当前次数权重
|
||||
randomInt -= entry.getValue();
|
||||
}
|
||||
}
|
||||
|
||||
// 更新抽奖次数和up奖励id
|
||||
mission.setV(count);
|
||||
// 返回奖励信息
|
||||
return ItemUtil.dropPer(user, reward, BIReason.CHOICE_DRAW_CARD);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,6 +76,7 @@ public interface ActivityType {
|
|||
int JADE_DYNASTY_MISSION = 20000;//破阵诛仙任务
|
||||
int JADE_DYNASTY_SHOP = 20001;//破阵诛仙限时商市
|
||||
int JADE_DYNASTY_RARE_SHOP = 20002;//破阵诛仙珍奇宝阁
|
||||
int CHOICE_DRAW_CRAD = 20003;//心愿抽奖(选择抽卡)
|
||||
int ITEMS_STORE= 6000;//百宝商会
|
||||
int TRIAL_EXPERT = 70;//幻境达人
|
||||
int SHEJI_ACTIVITY = 60;//社稷大典
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public enum ActivityTypeEnum {
|
|||
LUCKY_GET(ActivityType.LUCKY_GET,LuckyGetActivity::new),
|
||||
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),
|
||||
|
||||
;
|
||||
private int type;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,126 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.jbean.ActivityMission;
|
||||
import com.ljsd.jieling.jbean.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.logic.activity.event.ChoiceDrawCardEvent;
|
||||
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.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SWishActivityUp;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author hj
|
||||
* 心愿抽奖活动
|
||||
*/
|
||||
@SuppressWarnings("ALL")
|
||||
public class ChoiceDrawCardActivity extends AbstractActivity {
|
||||
|
||||
ChoiceDrawCardActivity(int id) {
|
||||
super(id);
|
||||
Poster.getPoster().listenEvent(this, ChoiceDrawCardEvent.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initActivity(User user) throws Exception {
|
||||
ActivityMission mission = new ActivityMission();
|
||||
// 读表获取阶段奖励信息
|
||||
List<SActivityRewardConfig> configs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
List<Integer> list = configs.stream().mapToInt(SActivityRewardConfig::getId).boxed().collect(Collectors.toList());
|
||||
// 初始化阶段奖励
|
||||
ActivityLogic.getInstance().initOtherMission(mission, list);
|
||||
// 添加默认选择奖励
|
||||
mission.setChoiceRewardId(SWishActivityUp.defaultMap.get(id));
|
||||
|
||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||
LOGGER.info("心愿抽卡初始化..."+id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
// 类型验证
|
||||
if (!(event instanceof ChoiceDrawCardEvent)) {
|
||||
return;
|
||||
}
|
||||
// 获取信息
|
||||
ChoiceDrawCardEvent drawCardEvent = (ChoiceDrawCardEvent) event;
|
||||
// 用户
|
||||
int userId = drawCardEvent.getUserId();
|
||||
User user = UserManager.getUser(userId);
|
||||
// 更新进度
|
||||
update(user,drawCardEvent.getNum());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean takeReward(ISession session, int missionId) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
//checkAndUpdate cfg
|
||||
SActivityRewardConfig config = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||
if (config == null || config.getActivityId() != id) {
|
||||
throw new ErrorCodeException(ErrorCode.CFG_NULL,"功能不存在:"+missionId);
|
||||
}
|
||||
// acitvityinfo check
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if (mission == null){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE,"数据错误");
|
||||
}
|
||||
if (mission.getActivityState() != ActivityType.OPEN_STATE || mission.getOpenType() == 0) {
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN,"活动未开启");
|
||||
}
|
||||
ActivityProgressInfo progressInfo = mission.getActivityMissionMap().get(missionId);
|
||||
if (progressInfo == null || progressInfo.getState() == ActivityType.HAD_TAKED) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("活动奖励已经领取"));
|
||||
}
|
||||
// 验证领取条件值
|
||||
if (!takeRewardsProcess(session,config,progressInfo)) {
|
||||
LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", session.getUid(), config.getId(), progressInfo.getProgrss(), config.getValues());
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("未达到领取条件"));
|
||||
}
|
||||
// 验证配置表
|
||||
int[] incs = SWishActivityUp.rewardMap.get(id).get(mission.getChoiceRewardId());
|
||||
if (incs == null){
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("数据错误"));
|
||||
}
|
||||
// 更改任务状态
|
||||
checkAndSetProgress(mission,progressInfo,missionId);
|
||||
//up miss
|
||||
int[][] reward = getReward(config.getReward(),incs[config.getSort()-1]);
|
||||
// reward
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.TAKE_ACTIVITY_REWARD);
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
// 状态推送
|
||||
sendActivityProgress(session, mission, null);
|
||||
// 打点上报
|
||||
reportTakeActivityReward(user,reward,missionId);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 特殊处理奖励
|
||||
* @param reward 默认奖励配置
|
||||
* @param replace 替换得奖励配置
|
||||
* @return
|
||||
*/
|
||||
private int[][] getReward(int[][] reward, int rewardId){
|
||||
int[][] result = new int[reward.length][2];
|
||||
for (int i = 0; i < reward.length; i++) {
|
||||
result[i][0] = rewardId;
|
||||
result[i][1] = reward[i][1];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
package com.ljsd.jieling.logic.activity.event;
|
||||
|
||||
/**
|
||||
* @Author hj
|
||||
* @Date 2021/5/26 11:05
|
||||
* @Description:
|
||||
* @Version 1.0
|
||||
*/
|
||||
public class ChoiceDrawCardEvent implements IEvent {
|
||||
|
||||
private int userId;
|
||||
private int activityId;
|
||||
private int num;
|
||||
|
||||
public ChoiceDrawCardEvent(int userId, int activityId, int num) {
|
||||
this.userId = userId;
|
||||
this.activityId = activityId;
|
||||
this.num = num;
|
||||
}
|
||||
|
||||
public int getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(int userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public int getActivityId() {
|
||||
return activityId;
|
||||
}
|
||||
|
||||
public void setActivityId(int activityId) {
|
||||
this.activityId = activityId;
|
||||
}
|
||||
|
||||
public int getNum() {
|
||||
return num;
|
||||
}
|
||||
|
||||
public void setNum(int num) {
|
||||
this.num = num;
|
||||
}
|
||||
}
|
||||
|
|
@ -18,6 +18,8 @@ public class SActivityRewardConfig implements BaseConfig {
|
|||
|
||||
private int[][] reward;
|
||||
|
||||
private int sort;
|
||||
|
||||
private static Map<Integer, SActivityRewardConfig> sActivityRewardConfigMap;
|
||||
|
||||
private static Map<Integer, List<SActivityRewardConfig>> sActivityRewardConfigListMap;
|
||||
|
|
@ -64,5 +66,7 @@ public class SActivityRewardConfig implements BaseConfig {
|
|||
return reward;
|
||||
}
|
||||
|
||||
|
||||
public int getSort() {
|
||||
return sort;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
package config;
|
||||
|
||||
import manager.STableManager;
|
||||
import manager.Table;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
@Table(name ="WishActivityPool")
|
||||
public class SWishActivityPool implements BaseConfig {
|
||||
|
||||
private int id;
|
||||
|
||||
private int[] itemId;
|
||||
|
||||
private int getRate;
|
||||
|
||||
public static Map<Integer,Integer> weight = new TreeMap<>();
|
||||
|
||||
public static Map<Integer,SWishActivityPool> map = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
Map<Integer, SWishActivityPool> config = STableManager.getConfig(SWishActivityPool.class);
|
||||
config.values().forEach(v->{
|
||||
map.put(v.getId(),v);
|
||||
weight.put(v.getId(),v.getGetRate());
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public int[] getItemId() {
|
||||
return itemId;
|
||||
}
|
||||
|
||||
public int getGetRate() {
|
||||
return getRate;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
package config;
|
||||
|
||||
import manager.STableManager;
|
||||
import manager.Table;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Table(name ="WishActivitySetting")
|
||||
public class SWishActivitySetting implements BaseConfig {
|
||||
|
||||
private int id;
|
||||
|
||||
private int[][] costItemSingle;
|
||||
|
||||
private int[][] costItemMul;
|
||||
|
||||
private int freeTimes;
|
||||
|
||||
private int maxTimes;
|
||||
|
||||
private int diamondMaxTimes;
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public int[][] getCostItemSingle() {
|
||||
return costItemSingle;
|
||||
}
|
||||
|
||||
public int[][] getCostItemMul() {
|
||||
return costItemMul;
|
||||
}
|
||||
|
||||
public int getFreeTimes() {
|
||||
return freeTimes;
|
||||
}
|
||||
|
||||
public int getMaxTimes() {
|
||||
return maxTimes;
|
||||
}
|
||||
|
||||
public int getDiamondMaxTimes() {
|
||||
return diamondMaxTimes;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
package config;
|
||||
|
||||
import manager.STableManager;
|
||||
import manager.Table;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
@Table(name ="WishActivityUp")
|
||||
public class SWishActivityUp implements BaseConfig {
|
||||
|
||||
private int id;
|
||||
|
||||
private int activityId;
|
||||
|
||||
private int[][] upList;
|
||||
|
||||
private int[][] rewardList;
|
||||
|
||||
/**
|
||||
* 每期活动
|
||||
* key: 活动id value: SWishActivityUp对象
|
||||
*/
|
||||
public static Map<Integer,SWishActivityUp> map = new HashMap<>();
|
||||
|
||||
/**
|
||||
* 每期得up
|
||||
* key: 活动id value->map: key: upList[0][0](道具id) value: upList[0](道具详情)
|
||||
*/
|
||||
public static Map<Integer,Map<Integer,int[]>> upMap = new HashMap<>();
|
||||
|
||||
/**
|
||||
* 每期得reward
|
||||
* key: 活动id value->map: key: upList[0][0](道具id) value: rewardList[0](奖励详情)
|
||||
*/
|
||||
public static Map<Integer,Map<Integer,int[]>> rewardMap = new HashMap<>();
|
||||
|
||||
/**
|
||||
* 默认up
|
||||
* key: 活动id value: 默认up奖励id
|
||||
*/
|
||||
public static Map<Integer, Integer> defaultMap = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
Map<Integer, SWishActivityUp> config = STableManager.getConfig(SWishActivityUp.class);
|
||||
config.values().forEach(v->{
|
||||
// 每期活动
|
||||
map.put(v.getActivityId(),v);
|
||||
|
||||
// 每期up默认奖励id
|
||||
defaultMap.put(v.getActivityId(),v.getUpList()[0][0]);
|
||||
|
||||
// 每期全部up
|
||||
HashMap<Integer, int[]> map1 = new HashMap<>(v.getUpList().length);
|
||||
// 每期得奖励
|
||||
HashMap<Integer, int[]> map2 = new HashMap<>(v.getRewardList().length);
|
||||
|
||||
for (int i = 0; i < v.getUpList().length; i++) {
|
||||
map1.put(v.getUpList()[i][0],v.getUpList()[i]);
|
||||
map2.put(v.getUpList()[i][0],v.getRewardList()[i]);
|
||||
}
|
||||
|
||||
upMap.put(v.getActivityId(),map1);
|
||||
rewardMap.put(v.getActivityId(),map2);
|
||||
});
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public int getActivityId() {
|
||||
return activityId;
|
||||
}
|
||||
|
||||
public int[][] getUpList() {
|
||||
return upList;
|
||||
}
|
||||
|
||||
public int[][] getRewardList() {
|
||||
return rewardList;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue