Merge branch 'master_test_gn_mcz' into master_test_gn

back_recharge
mengchengzhen 2021-04-06 15:54:48 +08:00
commit bce07ebf64
3 changed files with 100 additions and 0 deletions

View File

@ -81,6 +81,8 @@ public interface ActivityType {
int GOOD_LUCK= 61;//扭转乾坤
int COW_FLY_SKY = 62;//牛气冲天
int LUCKY_GET = 63;//福星高照
int FIFTEEN_LOGIN = 64;//十五日签到
int SUB_ACTIVITY = 8000;//易经宝库
int SKIN_RECHARGE_ACTIVITY = 71;
int SPECIAL_MONSTER_RANDOM_ACTIVITY = 100;//灵兽限时抽卡
@ -88,4 +90,5 @@ public interface ActivityType {
int DEMON_TREASURE = 36;//降妖夺宝
int NEW_GENERAL_ATTACK = 200;//新将来袭
}

View File

@ -67,6 +67,7 @@ public enum ActivityTypeEnum {
NEW_GENERAL_ATTACK(ActivityType.NEW_GENERAL_ATTACK,DefaultEmptyActivity::new),
GOOD_LUCK(ActivityType.GOOD_LUCK,DefaultEmptyActivity::new),
COW_FLY_SKY(ActivityType.COW_FLY_SKY,CowFlySkyActivity::new),
FIFTEEN_LOGIN(ActivityType.FIFTEEN_LOGIN,FifteenActivity::new),
LUCKY_GET(ActivityType.LUCKY_GET,LuckyGetActivity::new),
;

View File

@ -0,0 +1,96 @@
package com.ljsd.jieling.logic.activity;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.jbean.ActivityProgressInfo;
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 com.ljsd.jieling.util.ToolsUtil;
import config.SActivityRewardConfig;
import config.SGlobalActivity;
import rpc.protocols.CommonProto;
import rpc.protocols.PlayerInfoProto;
import util.TimeUtils;
import java.util.*;
import static config.SGlobalActivity.getsGlobalActivityMapByType;
public class FifteenActivity extends AbstractActivity {
public FifteenActivity(int id) {
super(id);
}
@Override
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
User user = UserManager.getUser(session.getUid());
if(TimeUtils.getOverTimeCount(user.getPlayerInfoManager().getCreateTime(),
System.currentTimeMillis(),0)<sActivityRewardConfig.getValues()[0][0]-1){
return false;
}
return true;
}
@Override
public void initActivity(User user) throws Exception {
List<SGlobalActivity> typeList = SGlobalActivity.getsGlobalActivityMapByType(ActivityType.FIFTEEN_LOGIN);
if(typeList == null){
return;
}
for(SGlobalActivity globalActivity : typeList){
ActivityLogic.getInstance().initAllActivityMission(user.getActivityManager().getActivityMissionMap(),globalActivity.getId());
if(user.getActivityManager().getActivityMissionMap().get(globalActivity.getId()) == null){
continue;
}
long startTime = ToolsUtil.getTimeLong
(globalActivity.getStartTimeLong(),globalActivity.getEndTimeLong(),globalActivity.getTime(),
user.getPlayerInfoManager().getCreateTime(), 1);
int st = (int)(startTime/1000);
for(Map.Entry<Integer,ActivityProgressInfo> entry : user.getActivityManager().getActivityMissionMap().
get(globalActivity.getId()).getActivityMissionMap().entrySet()){
SActivityRewardConfig config = SActivityRewardConfig.getsActivityRewardConfigByMissionId(entry.getKey());
entry.getValue().setProgrss((int)((TimeUtils.DAY * (config.getValues()[0][0] - 1))/1000) + st);
}
}
}
@Override
public boolean takeReward(ISession session, int missionId) throws Exception {
if(missionId!=-1){
return super.takeReward(session, missionId);
}
User user = UserManager.getUser(session.getUid());
List<int[][]> reward = new ArrayList<>();
getAllMissRewards(user,session,reward);
Map<Integer,Integer> itemMap = new HashMap<>();
reward.forEach(n-> Arrays.stream(n).forEach(m->itemMap.put(m[0],itemMap.getOrDefault(m[0], 0)+m[1])));
int[][] rewardArray = ItemUtil.mapToArray(itemMap);
CommonProto.Drop.Builder drop = ItemUtil.drop(user, rewardArray, BIReason.TAKE_ACTIVITY_REWARD);
PlayerInfoProto.TakeActivityRewardResponse build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
reportTakeActivityReward(user,rewardArray,missionId);
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
boolean isAll = true;
for(Map.Entry<Integer,ActivityProgressInfo> entry:activityMission.getActivityMissionMap().entrySet()){
if(entry.getValue().getState()==0){
isAll=false;
break;
}
}
if(isAll){
activityMission.setV(2);
}
sendActivityProgress(session,activityMission , null);
return true;
}
}