升星活动脚本修改提交
parent
c532cad640
commit
bb15b379ea
|
@ -1592,11 +1592,11 @@ public class ActivityLogic implements IEventHandler{
|
|||
Map<Integer, ActivityMission> activityMissionMap = user.getActivityManager().getActivityMissionMap();
|
||||
ActivityMission activityMission = activityMissionMap.get(activityId);
|
||||
///ChoiceRewardId存的是已经选择的英雄id 一期只能选一次
|
||||
if(activityMission==null||activityMission.getV()>0){
|
||||
throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
|
||||
}
|
||||
// if(activityMission==null||activityMission.getV()>0){
|
||||
// throw new ErrorCodeException(ErrorCode.HANDLE_FAILED);
|
||||
// }
|
||||
activityMission.setV(heroTemId);
|
||||
Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(), heroTemId, 1));
|
||||
Poster.getPoster().dispatchEvent(new SelectHeroUpStarEvent(user.getId(), heroTemId));
|
||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_STAR_ACTIVITY_SELECT_RESPONSE_VALUE,null,true);
|
||||
}
|
||||
//扭转乾坤
|
||||
|
|
|
@ -1,59 +1,77 @@
|
|||
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.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.event.HeroUpStarEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.*;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
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 java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
public class HeroUpStarActivity extends AbstractActivity {
|
||||
public HeroUpStarActivity(int id) {
|
||||
super(id);
|
||||
Poster.getPoster().listenEvent(this, HeroUpStarEvent.class);
|
||||
Poster.getPoster().listenEvent(this, FiveStarGetEvent.class);
|
||||
Poster.getPoster().listenEvent(this, SelectHeroUpStarEvent.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
if (!(event instanceof HeroUpStarEvent))
|
||||
int uid = 0;
|
||||
int heroTid = 0;
|
||||
if (event instanceof HeroUpStarEvent) {
|
||||
heroTid = ((HeroUpStarEvent) event).getHeroTid();
|
||||
uid = ((HeroUpStarEvent) event).getUid();
|
||||
}
|
||||
else if (event instanceof FiveStarGetEvent){
|
||||
heroTid = ((FiveStarGetEvent) event).getHeroid();
|
||||
uid = ((FiveStarGetEvent) event).getUid();
|
||||
}else if(event instanceof SelectHeroUpStarEvent) {
|
||||
heroTid = ((SelectHeroUpStarEvent) event).getHeroTid();
|
||||
User user = UserManager.getUser(((SelectHeroUpStarEvent) event).getUid());
|
||||
selectHeroUpdateMission(user,heroTid);
|
||||
return;
|
||||
HeroUpStarEvent heroUpStarEvent = (HeroUpStarEvent) event;
|
||||
if (heroUpStarEvent.getStar()==0){
|
||||
}else{
|
||||
return;
|
||||
}
|
||||
User user = UserManager.getUser(heroUpStarEvent.getUid());
|
||||
User user = UserManager.getUser(uid);
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if( null == activityMission){
|
||||
return;
|
||||
}
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
if (heroUpStarEvent.getStar()==1){
|
||||
selectHeroUpdateMission(activityProgressInfoMap,heroUpStarEvent.getHeroTid());
|
||||
}else{
|
||||
for (SActivityRewardConfig sActivityRewardConfig : SActivityRewardConfig.getsActivityRewardConfigByActivityId(id)) {
|
||||
if (heroUpStarEvent.getHeroTid() == sActivityRewardConfig.getValues()[0][0] && heroUpStarEvent.getStar() == sActivityRewardConfig.getValues()[0][1]) {
|
||||
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(sActivityRewardConfig.getId(), null);
|
||||
if (null == activityProgressInfo)
|
||||
continue;
|
||||
activityProgressInfo.setProgrss(activityProgressInfo.getProgrss() + 1);
|
||||
activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo);
|
||||
List<SActivityRewardConfig> list = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
|
||||
int maxstar = user.getHeroManager().getHeroStarMap().get(heroTid);
|
||||
for (SActivityRewardConfig sActivityRewardConfig : list) {
|
||||
if (sActivityRewardConfig.getValues()[0][0] == heroTid && maxstar >= sActivityRewardConfig.getValues()[0][1]) {
|
||||
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(sActivityRewardConfig.getId(), null);
|
||||
if (null != activityProgressInfo && activityProgressInfo.getState()<1) {
|
||||
activityProgressInfo.setState(1);
|
||||
}else{
|
||||
continue;
|
||||
}
|
||||
activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo);
|
||||
}
|
||||
}
|
||||
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -66,13 +84,84 @@ public class HeroUpStarActivity extends AbstractActivity {
|
|||
return true;
|
||||
}
|
||||
|
||||
public void selectHeroUpdateMission( Map<Integer, ActivityProgressInfo> activityProgressInfoMap, int heroTId) throws Exception
|
||||
///选择要升星的英雄
|
||||
public void selectHeroUpdateMission(User user, int heroTId) throws Exception
|
||||
{
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap=activityMission.getActivityMissionMap();
|
||||
for (SActivityRewardConfig rewardConfig : SActivityRewardConfig.getsActivityRewardConfigByActivityId(id)) {
|
||||
if (rewardConfig.getValues()[0][0]!=heroTId&&activityProgressInfoMap.containsKey(rewardConfig.getId())){
|
||||
activityProgressInfoMap.remove(rewardConfig.getId());
|
||||
}
|
||||
}
|
||||
Integer maxstar = user.getHeroManager().getHeroStarMap().get(heroTId);
|
||||
if(maxstar != null){
|
||||
for (Map.Entry<Integer, ActivityProgressInfo> progressInfoEntry : activityProgressInfoMap.entrySet()) {
|
||||
SActivityRewardConfig sActivityRewardConfig=SActivityRewardConfig.getsActivityRewardConfigByMissionId(progressInfoEntry.getKey());
|
||||
if (maxstar.intValue() >= sActivityRewardConfig.getValues()[0][1]) {
|
||||
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(sActivityRewardConfig.getId(), null);
|
||||
if (null == activityProgressInfo)
|
||||
continue;
|
||||
if(activityProgressInfo.getState()<1){
|
||||
activityProgressInfo.setState(1);
|
||||
}
|
||||
activityMission.getActivityMissionMap().put(sActivityRewardConfig.getId(), activityProgressInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean takeReward(ISession session, int missionId) throws Exception {
|
||||
PlayerInfoProto.TakeActivityRewardResponse build = null;
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
SGlobalActivity sGlobalActivity = SGlobalActivity.getsGlobalActivityMap().get(id);
|
||||
if (sGlobalActivity == null || !user.getActivityManager().getActivityMissionMap().containsKey(id)) {
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.get(missionId);
|
||||
if (activityProgressInfo == null || activityProgressInfo.getState() == 2) {
|
||||
throw new ErrorCodeException(ErrorCode.newDefineCode("活动奖励已经领取"));
|
||||
}
|
||||
activityProgressInfo.setState(2);
|
||||
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByMissionId(missionId);
|
||||
if(sActivityRewardConfig==null){
|
||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||
}
|
||||
sendActivityProgress(session, activityMission, null);
|
||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfig.getReward(), BIReason.TAKE_ACTIVITY_REWARD);
|
||||
build = PlayerInfoProto.TakeActivityRewardResponse.newBuilder().setDrop(drop).build();
|
||||
MessageUtil.sendMessage(session, 1, rewardResponseValue, build, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<Integer> getCloseGoods(User user){
|
||||
HashSet<Integer> set = new HashSet<>();
|
||||
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if (mission == null){
|
||||
return set;
|
||||
}
|
||||
// 活动奖励条件
|
||||
List<SActivityRewardConfig> rewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
for (SActivityRewardConfig rewardConfig : rewardConfigs) {
|
||||
Map<Integer, ActivityProgressInfo> map = mission.getActivityMissionMap();
|
||||
ActivityProgressInfo progressInfo = map.get(rewardConfig.getId());
|
||||
// 页签不存在或者状态不为可领取状态
|
||||
if (progressInfo == null || progressInfo.getState() != 1){
|
||||
int goodsId = rewardConfig.getValues()[2][0];
|
||||
set.add(goodsId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return set;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
package com.ljsd.jieling.logic.activity.event;
|
||||
|
||||
/**
|
||||
* 升星
|
||||
*/
|
||||
public class SelectHeroUpStarEvent implements IEvent {
|
||||
|
||||
private int uid;
|
||||
private int heroTid;
|
||||
|
||||
public SelectHeroUpStarEvent(int uid, int heroTid) {
|
||||
this.uid = uid;
|
||||
this.heroTid = heroTid;
|
||||
}
|
||||
|
||||
public int getUid() {
|
||||
return uid;
|
||||
}
|
||||
|
||||
public int getHeroTid() {
|
||||
return heroTid;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue