易经宝库道具回收
parent
f303840402
commit
16ded73f10
|
@ -157,6 +157,7 @@ public interface BIReason {
|
||||||
int SPECIAL_MONSTER_REWARD = 88;//灵兽涅槃获得
|
int SPECIAL_MONSTER_REWARD = 88;//灵兽涅槃获得
|
||||||
int SPECIAL_FREE_PIECE_REWARD = 89;//灵兽放生获得
|
int SPECIAL_FREE_PIECE_REWARD = 89;//灵兽放生获得
|
||||||
int SKIN_USE_REWARD = 90;//激活皮肤获得头像
|
int SKIN_USE_REWARD = 90;//激活皮肤获得头像
|
||||||
|
int SUB_ACTIVITY_FINISH = 91;//易经宝库活动结束补发
|
||||||
|
|
||||||
int ADVENTURE_UPLEVEL_CONSUME = 1000;//秘境升级
|
int ADVENTURE_UPLEVEL_CONSUME = 1000;//秘境升级
|
||||||
int SECRETBOX_CONSUME = 1001;//秘盒抽卡
|
int SECRETBOX_CONSUME = 1001;//秘盒抽卡
|
||||||
|
@ -293,4 +294,5 @@ public interface BIReason {
|
||||||
|
|
||||||
int SKIN_USE_CONSUME = 1073;//激活皮肤消耗
|
int SKIN_USE_CONSUME = 1073;//激活皮肤消耗
|
||||||
int SUB_ACTIVITY_CONSUME = 1074;//易经宝库
|
int SUB_ACTIVITY_CONSUME = 1074;//易经宝库
|
||||||
|
int SUB_ACTIVITY_CONSUME_FINISH = 1075;//易经宝库活动结束补发消耗
|
||||||
}
|
}
|
|
@ -3,10 +3,13 @@ package com.ljsd.jieling.logic.activity;
|
||||||
import com.ljsd.jieling.exception.ErrorCode;
|
import com.ljsd.jieling.exception.ErrorCode;
|
||||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||||
import com.ljsd.jieling.globals.BIReason;
|
import com.ljsd.jieling.globals.BIReason;
|
||||||
|
import com.ljsd.jieling.globals.Global;
|
||||||
import com.ljsd.jieling.jbean.*;
|
import com.ljsd.jieling.jbean.*;
|
||||||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||||
|
import com.ljsd.jieling.logic.dao.Item;
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.protocols.CommonProto;
|
import com.ljsd.jieling.protocols.CommonProto;
|
||||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||||
|
@ -15,6 +18,7 @@ import com.ljsd.jieling.util.MessageUtil;
|
||||||
import config.*;
|
import config.*;
|
||||||
import manager.STableManager;
|
import manager.STableManager;
|
||||||
import util.MathUtils;
|
import util.MathUtils;
|
||||||
|
import util.TimeUtils;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -28,33 +32,34 @@ public class SubActivity extends AbstractActivity {
|
||||||
|
|
||||||
public static final int LAY_INDEX = 100;
|
public static final int LAY_INDEX = 100;
|
||||||
public static final int POOL_INDEX = 1000;
|
public static final int POOL_INDEX = 1000;
|
||||||
|
|
||||||
public SubActivity(int id) {
|
public SubActivity(int id) {
|
||||||
super(id);
|
super(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initActivity(User user)throws Exception{
|
public void initActivity(User user) throws Exception {
|
||||||
//重置奖励
|
//重置奖励
|
||||||
randomReward(user,true);
|
randomReward(user, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onResume(User user) throws Exception {
|
public void onResume(User user) throws Exception {
|
||||||
// super.onResume(user);
|
// super.onResume(user);
|
||||||
//重置奖励
|
//重置奖励
|
||||||
randomReward(user,false);
|
randomReward(user, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean takeReward(ISession session, int missionId) throws Exception {
|
public boolean takeReward(ISession session, int missionId) throws Exception {
|
||||||
User user = UserManager.getUser(session.getUid());
|
User user = UserManager.getUser(session.getUid());
|
||||||
|
|
||||||
// //checkAndUpdate state
|
// //checkAndUpdate state
|
||||||
ActivityManager activityManager = user.getActivityManager();
|
ActivityManager activityManager = user.getActivityManager();
|
||||||
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
|
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
|
||||||
if (activityMission == null){
|
if (activityMission == null) {
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
}
|
}
|
||||||
if (activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) {
|
if (activityMission.getActivityState() != ActivityType.OPEN_STATE || activityMission.getOpenType() == 0) {
|
||||||
|
@ -65,49 +70,52 @@ public class SubActivity extends AbstractActivity {
|
||||||
throw new ErrorCodeException(ErrorCode.newDefineCode("活动奖励已经领取"));
|
throw new ErrorCodeException(ErrorCode.newDefineCode("活动奖励已经领取"));
|
||||||
}
|
}
|
||||||
//check had select
|
//check had select
|
||||||
if(activityMission.getV()==0){
|
if (activityMission.getV() == 0) {
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE);
|
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
SBlessingConfigNew sBlessingConfigNew =SBlessingConfigNew.getsBlessingConfigNewHashMap().get(id);
|
SBlessingConfigNew sBlessingConfigNew = SBlessingConfigNew.getsBlessingConfigNewHashMap().get(id);
|
||||||
//check cost
|
//check cost
|
||||||
int integerValue = SSpecialConfig.getIntegerValue(SSpecialConfig.EXPEDITION_REBORN);
|
|
||||||
if(integerValue==0){
|
|
||||||
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
|
||||||
}
|
|
||||||
int[][] cost = new int[1][2];
|
int[][] cost = new int[1][2];
|
||||||
cost[0]=sBlessingConfigNew.getCost();
|
cost[0] = sBlessingConfigNew.getCost();
|
||||||
boolean b = ItemUtil.itemCost(user, cost, BIReason.SUB_ACTIVITY_CONSUME, 1);
|
boolean b = ItemUtil.itemCost(user, cost, BIReason.SUB_ACTIVITY_CONSUME, 1);
|
||||||
if(!b){
|
if (!b) {
|
||||||
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
|
||||||
}
|
}
|
||||||
int size = user.getActivityManager().getSubRewardPoolInfo().getSubRewardPool().size();
|
int size = user.getActivityManager().getSubRewardPoolInfo().getSubRewardPool().size();
|
||||||
if(size==0){
|
if (size == 0) {
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE);
|
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
//get reward
|
//get reward
|
||||||
long count = activityMission.getActivityMissionMap().values().stream().filter(activityProgressInfo1 -> activityProgressInfo1.getState() == ActivityType.HAD_TAKED).count();
|
long count = activityMission.getActivityMissionMap().values().stream().filter(activityProgressInfo1 -> activityProgressInfo1.getState() == ActivityType.HAD_TAKED).count();
|
||||||
|
//后5个概率提前结束抽奖
|
||||||
|
|
||||||
|
if (count != (size - 1) && count >= (size - 5) && (Math.random() * 5 < 1)) {
|
||||||
|
user.getActivityManager().getSubRewardPoolInfo().getSubRewardPool().add((int) count, activityMission.getV());
|
||||||
|
user.getActivityManager().getSubRewardPoolInfo().getSubRewardPool().remove(user.getActivityManager().getSubRewardPoolInfo().getSubRewardPool().size() - 1);
|
||||||
|
}
|
||||||
Integer rewardId = user.getActivityManager().getSubRewardPoolInfo().getSubRewardPool().get((int) count);
|
Integer rewardId = user.getActivityManager().getSubRewardPoolInfo().getSubRewardPool().get((int) count);
|
||||||
|
|
||||||
SBlessingRewardPoolNew sBlessingRewardPoolNew = STableManager.getConfig(SBlessingRewardPoolNew.class).get(rewardId);
|
SBlessingRewardPoolNew sBlessingRewardPoolNew = STableManager.getConfig(SBlessingRewardPoolNew.class).get(rewardId);
|
||||||
|
|
||||||
|
|
||||||
int[] reward = sBlessingRewardPoolNew.getReward();
|
int[] reward = sBlessingRewardPoolNew.getReward();
|
||||||
int[][] rewards = new int[1][];
|
int[][] rewards = new int[1][];
|
||||||
rewards[0]=reward;
|
rewards[0] = reward;
|
||||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, rewards, BIReason.TAKE_ACTIVITY_REWARD);
|
CommonProto.Drop.Builder drop = ItemUtil.drop(user, rewards, BIReason.TAKE_ACTIVITY_REWARD);
|
||||||
//up miss
|
//up miss
|
||||||
activityProgressInfo.setProgrss(rewardId);
|
activityProgressInfo.setProgrss(rewardId);
|
||||||
activityProgressInfo.setState( ActivityType.HAD_TAKED);
|
activityProgressInfo.setState(ActivityType.HAD_TAKED);
|
||||||
int curLay = user.getActivityManager().getSubRewardPoolInfo().getLay();
|
int curLay = user.getActivityManager().getSubRewardPoolInfo().getLay();
|
||||||
if(curLay!=sBlessingConfigNew.getFloorCount()&&count==(size-1)){
|
if (curLay != sBlessingConfigNew.getFloorCount() && rewardId == activityMission.getV()) {
|
||||||
ActivityLogic.getInstance().resumeActivity(user, ActivityType.SUB_ACTIVITY);
|
ActivityLogic.getInstance().resumeActivity(user, ActivityType.SUB_ACTIVITY);
|
||||||
sendActivityProgress(session, activityManager.getActivityMissionMap().get(id), null);
|
sendActivityProgress(session, activityManager.getActivityMissionMap().get(id), null);
|
||||||
}else {
|
} else {
|
||||||
sendActivityProgress(session, activityMission, Collections.singleton(missionId));
|
sendActivityProgress(session, activityMission, Collections.singleton(missionId));
|
||||||
}
|
}
|
||||||
reportTakeActivityReward(user,rewards,missionId);
|
reportTakeActivityReward(user, rewards, missionId);
|
||||||
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||||
|
|
||||||
|
@ -123,16 +131,16 @@ public class SubActivity extends AbstractActivity {
|
||||||
/**
|
/**
|
||||||
* 重置奖励
|
* 重置奖励
|
||||||
*/
|
*/
|
||||||
private void randomReward(User user,boolean start) throws Exception{
|
private void randomReward(User user, boolean start) throws Exception {
|
||||||
|
|
||||||
//init lay
|
//init lay
|
||||||
SubRewardPoolInfo subRewardPoolInfo = user.getActivityManager().getSubRewardPoolInfo();
|
SubRewardPoolInfo subRewardPoolInfo = user.getActivityManager().getSubRewardPoolInfo();
|
||||||
if(subRewardPoolInfo==null){
|
if (subRewardPoolInfo == null) {
|
||||||
subRewardPoolInfo = new SubRewardPoolInfo();
|
subRewardPoolInfo = new SubRewardPoolInfo();
|
||||||
user.getActivityManager().setSubRewardPoolInfo(subRewardPoolInfo);
|
user.getActivityManager().setSubRewardPoolInfo(subRewardPoolInfo);
|
||||||
}
|
}
|
||||||
int lay = user.getActivityManager().getSubRewardPoolInfo().getLay();
|
int lay = user.getActivityManager().getSubRewardPoolInfo().getLay();
|
||||||
int curLay=lay+1;
|
int curLay = lay + 1;
|
||||||
user.getActivityManager().getSubRewardPoolInfo().setLay(curLay);
|
user.getActivityManager().getSubRewardPoolInfo().setLay(curLay);
|
||||||
HashMap<Integer, HashSet<SBlessingRewardPoolNew>> integerHashSetHashMap = SBlessingRewardPoolNew.getsBlessingRewardPoolNewHashMap();
|
HashMap<Integer, HashSet<SBlessingRewardPoolNew>> integerHashSetHashMap = SBlessingRewardPoolNew.getsBlessingRewardPoolNewHashMap();
|
||||||
//init Activity
|
//init Activity
|
||||||
|
@ -149,24 +157,24 @@ public class SubActivity extends AbstractActivity {
|
||||||
//init reward
|
//init reward
|
||||||
|
|
||||||
SBlessingConfigNew sBlessingConfigNew = SBlessingConfigNew.getsBlessingConfigNewHashMap().get(id);
|
SBlessingConfigNew sBlessingConfigNew = SBlessingConfigNew.getsBlessingConfigNewHashMap().get(id);
|
||||||
if(null== sBlessingConfigNew){
|
if (null == sBlessingConfigNew) {
|
||||||
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
||||||
}
|
}
|
||||||
int[] basicPoolId = sBlessingConfigNew.getBasicPoolId();
|
int[] basicPoolId = sBlessingConfigNew.getBasicPoolId();
|
||||||
if(basicPoolId.length<curLay){
|
if (basicPoolId.length < curLay) {
|
||||||
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
||||||
}
|
}
|
||||||
int poolID = basicPoolId[curLay-1];
|
int poolID = basicPoolId[curLay - 1];
|
||||||
HashSet<SBlessingRewardPoolNew> sBlessingRewardPoolNews = integerHashSetHashMap.get(poolID);
|
HashSet<SBlessingRewardPoolNew> sBlessingRewardPoolNews = integerHashSetHashMap.get(poolID);
|
||||||
if(null == sBlessingRewardPoolNews){
|
if (null == sBlessingRewardPoolNews) {
|
||||||
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
||||||
}
|
}
|
||||||
List<int[]> ints = new LinkedList<>();
|
List<int[]> ints = new LinkedList<>();
|
||||||
for (SBlessingRewardPoolNew sBlessingRewardPoolNew:sBlessingRewardPoolNews) {
|
for (SBlessingRewardPoolNew sBlessingRewardPoolNew : sBlessingRewardPoolNews) {
|
||||||
for (int i = 0; i <sBlessingRewardPoolNew.getInitializeNum() ; i++) {
|
for (int i = 0; i < sBlessingRewardPoolNew.getInitializeNum(); i++) {
|
||||||
int[] reward= new int[2];
|
int[] reward = new int[2];
|
||||||
reward[0]=sBlessingRewardPoolNew.getId();
|
reward[0] = sBlessingRewardPoolNew.getId();
|
||||||
reward[1]=sBlessingRewardPoolNew.getInitializeNum();
|
reward[1] = sBlessingRewardPoolNew.getInitializeNum();
|
||||||
ints.add(reward);
|
ints.add(reward);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,26 +187,62 @@ public class SubActivity extends AbstractActivity {
|
||||||
user.getActivityManager().getSubRewardPoolInfo().getSubRewardPool().clear();
|
user.getActivityManager().getSubRewardPoolInfo().getSubRewardPool().clear();
|
||||||
user.getActivityManager().getSubRewardPoolInfo().getSubRewardPool().addAll(list2);
|
user.getActivityManager().getSubRewardPoolInfo().getSubRewardPool().addAll(list2);
|
||||||
|
|
||||||
for (int i = 0; i <=list2.size() ; i++) {
|
for (int i = 0; i <= list2.size(); i++) {
|
||||||
ActivityProgressInfo activityProgressInfo1 = new ActivityProgressInfo();
|
ActivityProgressInfo activityProgressInfo1 = new ActivityProgressInfo();
|
||||||
activityProgressInfo1.setProgrss(0);
|
activityProgressInfo1.setProgrss(0);
|
||||||
activityProgressInfo1.setState(0);
|
activityProgressInfo1.setState(0);
|
||||||
activityMission.getActivityMissionMap().put(i+1, activityProgressInfo1);
|
activityMission.getActivityMissionMap().put(i + 1, activityProgressInfo1);
|
||||||
}
|
}
|
||||||
|
|
||||||
//init finalRewards
|
//init finalRewards
|
||||||
if(start){
|
if (start) {
|
||||||
int finalPoolId = sBlessingConfigNew.getFinalPoolId();
|
int finalPoolId = sBlessingConfigNew.getFinalPoolId();
|
||||||
HashSet<SBlessingRewardPoolNew> sBlessingRewardPoolNews1 = integerHashSetHashMap.get(finalPoolId);
|
HashSet<SBlessingRewardPoolNew> sBlessingRewardPoolNews1 = integerHashSetHashMap.get(finalPoolId);
|
||||||
for (SBlessingRewardPoolNew sBlessingRewardPoolNew:sBlessingRewardPoolNews1) {
|
for (SBlessingRewardPoolNew sBlessingRewardPoolNew : sBlessingRewardPoolNews1) {
|
||||||
ActivityProgressInfo activityProgressInfo1 = new ActivityProgressInfo();
|
ActivityProgressInfo activityProgressInfo1 = new ActivityProgressInfo();
|
||||||
activityProgressInfo1.setProgrss(0);
|
activityProgressInfo1.setProgrss(0);
|
||||||
activityProgressInfo1.setState(0);
|
activityProgressInfo1.setState(0);
|
||||||
activityMission.getActivityMissionMap().put(POOL_INDEX+sBlessingRewardPoolNew.getId(), activityProgressInfo1);
|
activityMission.getActivityMissionMap().put(POOL_INDEX + sBlessingRewardPoolNew.getId(), activityProgressInfo1);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActivityEndOnMySelf(User user) throws Exception {
|
||||||
|
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||||
|
|
||||||
|
|
||||||
|
SBlessingConfigNew sBlessingConfigNew = SBlessingConfigNew.getsBlessingConfigNewHashMap().get(id);
|
||||||
|
|
||||||
|
int removeItemId = sBlessingConfigNew.getCost()[0];
|
||||||
|
Item item = user.getItemManager().getItem(removeItemId);
|
||||||
|
if (item != null) {
|
||||||
|
int costNum = item.getItemNum();
|
||||||
|
//check cost
|
||||||
|
int[][] cost = new int[1][];
|
||||||
|
cost[0] = new int[]{item.getItemId(), item.getItemNum()};
|
||||||
|
ItemUtil.itemCost(user, cost, BIReason.SUB_ACTIVITY_CONSUME_FINISH, sGlobalActivity.getId());
|
||||||
|
|
||||||
|
SItem sItem = SItem.getsItemMap().get(removeItemId);
|
||||||
|
//give
|
||||||
|
int integerValue = SSpecialConfig.getIntegerValue(SSpecialConfig.ITEM_1004_RETRIEVE);
|
||||||
|
if (integerValue == 0) {
|
||||||
|
throw new ErrorCodeException(ErrorCode.CFG_NULL);
|
||||||
|
}
|
||||||
|
int[][] rewards = new int[1][];
|
||||||
|
rewards[0] = new int[]{16, costNum*integerValue};
|
||||||
|
|
||||||
|
SItem getItem = SItem.getsItemMap().get(16);
|
||||||
|
String getName =costNum*integerValue+getItem.getName();
|
||||||
|
String title = SErrorCodeEerverConfig.getI18NMessage("activity_item_retrieve_mail_titile");
|
||||||
|
String content = SErrorCodeEerverConfig.getI18NMessage("activity_item_retrieve_mail_content", new Object[]{sGlobalActivity.getSesc(),sItem.getName(),costNum,getName});
|
||||||
|
String mailReward = ItemUtil.getMailReward(rewards);
|
||||||
|
int nowTime = (int) (TimeUtils.now() / 1000);
|
||||||
|
MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,6 +83,7 @@ public class SSpecialConfig implements BaseConfig {
|
||||||
public static final String DISCOUNT_MAIN = "discount_main";//关卡礼包
|
public static final String DISCOUNT_MAIN = "discount_main";//关卡礼包
|
||||||
|
|
||||||
public static final String ANIMAL_BROADCAST_QUALITY = "animal_broadcast_quality";
|
public static final String ANIMAL_BROADCAST_QUALITY = "animal_broadcast_quality";
|
||||||
|
public static final String ITEM_1004_RETRIEVE = "item_1004_retrieve";// 结算补发道具16 # 50
|
||||||
@Override
|
@Override
|
||||||
public void init() throws Exception {
|
public void init() throws Exception {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue