升星活动
parent
9baf176021
commit
04001f09b6
|
@ -1,43 +1,57 @@
|
|||
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.network.session.ISession;
|
||||
import com.ljsd.jieling.util.ItemUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import config.SActivityRewardConfig;
|
||||
import config.SGlobalActivity;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class HeroStarActivity extends AbstractActivity {
|
||||
private int heroId;
|
||||
|
||||
public HeroStarActivity(int id) {
|
||||
super(id);
|
||||
Poster.getPoster().listenEvent(this, HeroUpStarEvent.class);
|
||||
Poster.getPoster().listenEvent(this, FiveStarGetEvent.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
if (!(event instanceof HeroUpStarEvent))
|
||||
return;
|
||||
HeroUpStarEvent heroUpStarEvent = (HeroUpStarEvent) event;
|
||||
User user = UserManager.getUser(heroUpStarEvent.getUid());
|
||||
User user = null;
|
||||
if(event instanceof FiveStarGetEvent){
|
||||
FiveStarGetEvent fiveStarGetEvent = (FiveStarGetEvent)event;
|
||||
if(heroId != fiveStarGetEvent.getHeroid())
|
||||
return;
|
||||
user = UserManager.getUser(fiveStarGetEvent.getUid());
|
||||
}else if(event instanceof HeroUpStarEvent){
|
||||
HeroUpStarEvent heroUpStarEvent = (HeroUpStarEvent) event;
|
||||
if(heroUpStarEvent.getHeroTid() != heroId){
|
||||
return;
|
||||
}
|
||||
user = UserManager.getUser(heroUpStarEvent.getUid());
|
||||
}
|
||||
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
if( null == activityMission){
|
||||
return;
|
||||
}
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
List<SActivityRewardConfig> list = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
int heroId = list.get(0).getValues()[0][0];
|
||||
if(heroUpStarEvent.getHeroTid() != heroId){
|
||||
return;
|
||||
}
|
||||
|
||||
int maxstar = user.getHeroManager().getHeroHandBook().get(heroId);
|
||||
for (SActivityRewardConfig sActivityRewardConfig : list) {
|
||||
if (maxstar >= sActivityRewardConfig.getValues()[0][1]) {
|
||||
|
@ -71,11 +85,12 @@ public class HeroStarActivity extends AbstractActivity {
|
|||
}
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityMissionMap();
|
||||
List<SActivityRewardConfig> list = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id);
|
||||
int heroId = list.get(0).getValues()[0][0];
|
||||
heroId = list.get(0).getValues()[0][0];
|
||||
Integer maxstar = user.getHeroManager().getHeroHandBook().get(heroId);
|
||||
if(maxstar == null){
|
||||
return;
|
||||
}
|
||||
|
||||
for (SActivityRewardConfig sActivityRewardConfig : list) {
|
||||
if (maxstar.intValue() >= sActivityRewardConfig.getValues()[0][1]) {
|
||||
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(sActivityRewardConfig.getId(), null);
|
||||
|
@ -89,4 +104,30 @@ public class HeroStarActivity extends AbstractActivity {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
@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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
package com.ljsd.jieling.logic.activity.event;
|
||||
|
||||
public class FiveStarGetEvent implements IEvent {
|
||||
private int uid;
|
||||
private int heroid;
|
||||
|
||||
public FiveStarGetEvent(int uid,int heroid){
|
||||
this.heroid = heroid;
|
||||
}
|
||||
|
||||
public int getHeroid() {
|
||||
return heroid;
|
||||
}
|
||||
|
||||
public int getUid() {
|
||||
return uid;
|
||||
}
|
||||
}
|
|
@ -20,10 +20,7 @@ import com.ljsd.jieling.ktbeans.ReportUtil;
|
|||
import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.ActivityType;
|
||||
import com.ljsd.jieling.logic.activity.event.HeroFiveStarGetEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.UseItemEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.UserLevelEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.*;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
|
@ -1262,6 +1259,7 @@ public class ItemUtil {
|
|||
SItem sItem = SItem.getsItemMap().get(entry.getKey());
|
||||
extraDropAop(user,dropBuilder,sItem);
|
||||
}
|
||||
fiveStarEvent(user,entry.getKey());
|
||||
if(reason != BIReason.HERO_RANDOM){
|
||||
fiveStarPushByCombine(user,entry.getKey(),count);
|
||||
}
|
||||
|
@ -1728,4 +1726,11 @@ public class ItemUtil {
|
|||
}
|
||||
}
|
||||
|
||||
public static void fiveStarEvent(User user,int itemId){
|
||||
SCHero scHero = SCHero.getsCHero().get(itemId);
|
||||
if(scHero != null && scHero.getStar()==5){
|
||||
Poster.getPoster().dispatchEvent(new FiveStarGetEvent(user.getId(),itemId));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue