新版积天豪礼活动提交

back_recharge
yuanshuai 2021-12-17 16:13:50 +08:00
parent d814ecb635
commit df0059632a
7 changed files with 68 additions and 54 deletions

View File

@ -409,18 +409,20 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
* @param filterMissId miss
*/
public void sendActivityProgress(ISession session, ActivityMission activityMission, Set<Integer> filterMissId) {
if (session == null) {
return;
}
PlayerInfoProto.ActivityUpateProgressIndication.Builder builder = PlayerInfoProto.ActivityUpateProgressIndication.newBuilder();
if (session != null) {
User user = UserManager.getUserInMem(session.getUid());
if (user != null && activityMission != null){
List<CommonProto.ActivityInfo.MissionInfo> missInfo = getAllMissInfo(user, activityMission, filterMissId);
CommonProto.ActivityInfo.Builder builder1 = CommonProto.ActivityInfo.newBuilder()
.setValue(activityMission.getV())
.addAllMission(missInfo)
.setActivityId(id);
builder.setActivityInfo(builder1);
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ACTIVITY_UPDATE_PROGRESS_INDICATION_VALUE, builder.build(), true);
}
User user = UserManager.getUserInMem(session.getUid());
if (user != null && activityMission != null) {
List<CommonProto.ActivityInfo.MissionInfo> missInfo = getAllMissInfo(user, activityMission, filterMissId);
CommonProto.ActivityInfo.Builder builder1 = CommonProto.ActivityInfo.newBuilder()
.setValue(activityMission.getV())
.addAllMission(missInfo)
.setActivityId(id);
builder.setActivityInfo(builder1);
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ACTIVITY_UPDATE_PROGRESS_INDICATION_VALUE, builder.build(), true);
}
}

View File

@ -101,7 +101,8 @@ public class ActivityLogic implements IEventHandler{
ActivityLogic.getInstance().resumeActivity(user, ActivityType.RECHARGE_SUM_DAY);
//更新新积天豪礼天数
ActivityLogic.getInstance().resumeActivity(user, ActivityType.NEW_RECHARGE_SUM_DAY);
ActivityLogic.getInstance().resumeActivity(user, ActivityType.NEW_RECHARGE_SUM_DAY_6);
ActivityLogic.getInstance().resumeActivity(user, ActivityType.NEW_RECHARGE_SUM_DAY_30);
ActivityLogic.getInstance().resumeActivity(user, ActivityType.LUCKY_GET);
@ -601,6 +602,7 @@ public class ActivityLogic implements IEventHandler{
if(sGlobalActivity == null){
continue;
}
///旧版积天豪礼数据兼容
if (sGlobalActivity.getType()==ActivityType.RECHARGE_SUM_DAY){
if (activityMissionMap.get(activityId).getV()<=0||activityMissionMap.get(activityId).getV()>=15) {
continue;

View File

@ -105,7 +105,8 @@ public interface ActivityType {
int CONTINUOUS_GIFT_NEW = 87;//新连续礼包
int ARENA_RANK_EXPERIMENT = 88;//竞技试炼
int DAILY_PREFERENTIAL_GIFT = 89;//每日特惠礼包开启的活动
int NEW_RECHARGE_SUM_DAY = 90;//新积天豪礼
int NEW_RECHARGE_SUM_DAY_6 = 90;//新积天豪礼6元充值活动
int NEW_RECHARGE_SUM_DAY_30 = 92;//新积天豪礼30元充值活动
int SPECIAL_MONSTER_RANDOM_ACTIVITY = 100;//灵兽宝阁活动
int SPECIAL_MONSTER_GIFT_ACTIVITY = 101;//灵兽礼包

View File

@ -94,7 +94,8 @@ public enum ActivityTypeEnum {
TRANSFORMATION_DRAW_CARD(ActivityType.TRANSFORMATION_DRAW_CARD,DefaultEmptyActivity::new),//方寸寻宝
CONTINUOUS_GIFT_NEW(ActivityType.CONTINUOUS_GIFT_NEW,ContinuousGiftActivity::new),//新连续礼包
ARENA_RANK_EXPERIMENT(ActivityType.ARENA_RANK_EXPERIMENT,ArenaRankActivity::new),//竞技试炼
NEW_RECHARGE_SUM_DAY(ActivityType.NEW_RECHARGE_SUM_DAY,NewRechargeSumDayActivity::new),//新积天豪礼
NEW_RECHARGE_SUM_DAY_6(ActivityType.NEW_RECHARGE_SUM_DAY_6,NewRechargeSumDayActivity::new),//新积天豪礼
NEW_RECHARGE_SUM_DAY_30(ActivityType.NEW_RECHARGE_SUM_DAY_30,NewRechargeSumDayActivity::new),//新积天豪礼
DAILY_PREFERENTIAL_GIFT(ActivityType.DAILY_PREFERENTIAL_GIFT,DailyPreferentialGiftActivity::new),
SUMMON_TREASURE(ActivityType.SUMMON_TREASURE,SummonTreasureActivity::new),//招募秘宝
NEW_PLAYER_SHOP(ActivityType.NEW_PLAYER_SHOP, NewPlayerShopActivity::new)

View File

@ -5,10 +5,17 @@ import com.ljsd.jieling.jbean.ActivityManager;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.event.BuyGoodsDirectEvent;
import com.ljsd.jieling.logic.activity.event.IEvent;
import com.ljsd.jieling.logic.activity.event.NewWelfareEvent;
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.logic.store.GiftGoodsType;
import com.ljsd.jieling.logic.store.newRechargeInfo.RechargeType;
import com.ljsd.jieling.network.session.ISession;
import config.SActivityRewardConfig;
import config.SRechargeCommodityNewConfig;
import manager.STableManager;
import java.util.Map;
@ -17,10 +24,44 @@ class NewRechargeSumDayActivity extends AbstractActivity {
public NewRechargeSumDayActivity(int id) {
super(id);
Poster.getPoster().listenEvent(this, BuyGoodsDirectEvent.class);
}
@Override
public void onResume(User user) {
public void onEvent(IEvent event) throws Exception {
super.onEvent(event);
if (!(event instanceof BuyGoodsDirectEvent)) {
return;
}
BuyGoodsDirectEvent buyGoodsDirectEvent = (BuyGoodsDirectEvent) event;
int goodsId=buyGoodsDirectEvent.getGoodsId();
SRechargeCommodityNewConfig rechargeConfig=SRechargeCommodityNewConfig.getConfigById(goodsId);
if (rechargeConfig==null||rechargeConfig.getType()!= GiftGoodsType.RechargeSumDay){
return;
}
User user = UserManager.getUser(buyGoodsDirectEvent.getUid());
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
boolean isSend=false;
for (Map.Entry<Integer, ActivityProgressInfo> item : activityMission.getActivityMissionMap().entrySet()) {
ActivityProgressInfo activityProgressInfo = item.getValue();
int missionId=item.getKey();
SActivityRewardConfig missionConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
if (missionConfig.getValues()[0][0]==goodsId&&missionConfig.getSort()-1==activityMission.getV()&&activityProgressInfo.getState()==ActivityType.WILL_TAKE){
activityProgressInfo.setState(1);
isSend=true;
}
activityMission.getActivityMissionMap().put(item.getKey(), activityProgressInfo);
}
if (isSend){
//更新进度
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
sendActivityProgress(sessionByUid, activityMission, null);
}
}
@Override
public void onResume(User user)throws Exception {
ActivityManager activityManager = user.getActivityManager();
ActivityMission activityMission = activityManager.getActivityMissionMap().get(id);
int buyNum=0;
@ -35,42 +76,9 @@ class NewRechargeSumDayActivity extends AbstractActivity {
if (activityMission.getV() >= SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).size()) {
ActivityLogic.getInstance().initMissionInfo(activityMission,id);
}
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
sendActivityProgress(sessionByUid, activityMission, null);
}
@Override
void updateProgress(ActivityMission activityMission, int count) {
int missionId =STableManager.getFigureConfig(ActivityStaticConfig.class).getRechargeDaySum().get(activityMission.getV() + 1);
ActivityProgressInfo activityProgressInfo = activityMission.getActivityMissionMap().get(missionId);
if (activityProgressInfo == null || activityProgressInfo.getProgrss() == 1) {
return;
}
if (count>0 ) {//只要是充值就算
//>= SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId).getValues()[0][0]
activityProgressInfo.setProgrss(1);
}
}
@Override
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
return checkValue(session, sActivityRewardConfig, activityProgressInfo);
}
/**
*
*/
@Override
boolean checkValue(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
int[][] values = sActivityRewardConfig.getValues();
User user = UserManager.getUser(session.getUid());
int value = user.getActivityManager().getActivityMissionMap().get(sActivityRewardConfig.getActivityId()).getV() + 1;
if (value < values[0][1]) {
return false;
}
if(activityProgressInfo.getProgrss()!=1){
return false;
}
return true;
}
}

View File

@ -382,9 +382,8 @@ public class BuyGoodsNewLogic {
if(dropArray!=null && dropArray.length>=1){
drop = ItemUtil.drop(user,dropArray, BIReason.DIRECT_BUY);
}
if(type==GiftGoodsType.RED_PACKET){
//红包事件
//红包事件 和积天豪礼事件
if(type==GiftGoodsType.RED_PACKET||type==GiftGoodsType.RechargeSumDay){
Poster.getPoster().dispatchEvent(new BuyGoodsDirectEvent(user.getId(),config.getId()));
}
if(type==GiftGoodsType.SKY_TREASURE){

View File

@ -15,6 +15,7 @@ public interface GiftGoodsType {
int SKY_TREASURE = 12; //天宫秘宝
int ENDLESS_TREASURE = 14;//无尽秘宝
int DailyPreferentialGift = 17 ;//每日特惠礼包
int RechargeSumDay = 18 ;//超值返利礼包(在积天豪礼活动里购买)
}