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