易经宝库道具回收

zhangshanxue 2020-11-17 16:59:04 +08:00
parent f303840402
commit 16ded73f10
3 changed files with 84 additions and 37 deletions

View File

@ -157,6 +157,7 @@ public interface BIReason {
int SPECIAL_MONSTER_REWARD = 88;//灵兽涅槃获得
int SPECIAL_FREE_PIECE_REWARD = 89;//灵兽放生获得
int SKIN_USE_REWARD = 90;//激活皮肤获得头像
int SUB_ACTIVITY_FINISH = 91;//易经宝库活动结束补发
int ADVENTURE_UPLEVEL_CONSUME = 1000;//秘境升级
int SECRETBOX_CONSUME = 1001;//秘盒抽卡
@ -293,4 +294,5 @@ public interface BIReason {
int SKIN_USE_CONSUME = 1073;//激活皮肤消耗
int SUB_ACTIVITY_CONSUME = 1074;//易经宝库
int SUB_ACTIVITY_CONSUME_FINISH = 1075;//易经宝库活动结束补发消耗
}

View File

@ -3,10 +3,13 @@ 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.globals.Global;
import com.ljsd.jieling.jbean.*;
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.root.User;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.PlayerInfoProto;
@ -15,6 +18,7 @@ import com.ljsd.jieling.util.MessageUtil;
import config.*;
import manager.STableManager;
import util.MathUtils;
import util.TimeUtils;
import java.util.*;
import java.util.stream.Collectors;
@ -28,6 +32,7 @@ public class SubActivity extends AbstractActivity {
public static final int LAY_INDEX = 100;
public static final int POOL_INDEX = 1000;
public SubActivity(int id) {
super(id);
}
@ -72,10 +77,6 @@ public class SubActivity extends AbstractActivity {
SBlessingConfigNew sBlessingConfigNew = SBlessingConfigNew.getsBlessingConfigNewHashMap().get(id);
//check cost
int integerValue = SSpecialConfig.getIntegerValue(SSpecialConfig.EXPEDITION_REBORN);
if(integerValue==0){
throw new ErrorCodeException(ErrorCode.CFG_NULL);
}
int[][] cost = new int[1][2];
cost[0] = sBlessingConfigNew.getCost();
boolean b = ItemUtil.itemCost(user, cost, BIReason.SUB_ACTIVITY_CONSUME, 1);
@ -89,7 +90,14 @@ public class SubActivity extends AbstractActivity {
//get reward
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);
SBlessingRewardPoolNew sBlessingRewardPoolNew = STableManager.getConfig(SBlessingRewardPoolNew.class).get(rewardId);
@ -101,7 +109,7 @@ public class SubActivity extends AbstractActivity {
activityProgressInfo.setProgrss(rewardId);
activityProgressInfo.setState(ActivityType.HAD_TAKED);
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);
sendActivityProgress(session, activityManager.getActivityMissionMap().get(id), null);
} else {
@ -201,4 +209,40 @@ public class SubActivity extends AbstractActivity {
}
@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);
}
}
}

View File

@ -83,6 +83,7 @@ public class SSpecialConfig implements BaseConfig {
public static final String DISCOUNT_MAIN = "discount_main";//关卡礼包
public static final String ANIMAL_BROADCAST_QUALITY = "animal_broadcast_quality";
public static final String ITEM_1004_RETRIEVE = "item_1004_retrieve";// 结算补发道具16 # 50
@Override
public void init() throws Exception {