达人活动
parent
1e6ab3dfa4
commit
5af0c05c6b
|
@ -2,6 +2,9 @@ package com.ljsd.jieling.handler.equip;
|
|||
|
||||
import com.ljsd.jieling.config.SEquipSign;
|
||||
import com.ljsd.jieling.handler.BaseHandler;
|
||||
import com.ljsd.jieling.logic.activity.event.EquipEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.SoulEquipUpEvent;
|
||||
import com.ljsd.jieling.logic.dao.SoulEquip;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
|
@ -71,6 +74,7 @@ public class UpSoulEquipQuiickHandler extends BaseHandler<HeroInfoProto.UpQuickS
|
|||
}
|
||||
addleve += 1;
|
||||
leve += 1;
|
||||
Poster.getPoster().dispatchEvent(new SoulEquipUpEvent(user.getId(),equip.getEquipId(),leve));
|
||||
nextNeedExp = SEquipSign.getEquipExpMap().get(nextEcfg1.getId());
|
||||
}
|
||||
if (full) {
|
||||
|
|
|
@ -40,5 +40,9 @@ public interface ActivityType {
|
|||
int SIGN_IN = 23;//累计签到
|
||||
int RECHARGE_NUM = 24;//累计充值
|
||||
|
||||
int ESPECIALEQUIP_EXPERT = 37;//法宝达人
|
||||
int SOULEQUIP_EXPERT = 38;//魂印达人
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
import com.ljsd.jieling.config.SGlobalActivity;
|
||||
import com.ljsd.jieling.logic.dao.SoulEquip;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.function.Function;
|
||||
|
@ -31,6 +32,8 @@ public enum ActivityTypeEnum {
|
|||
STAMINA_EXPERT(ActivityType.STAMINA_EXPERT, StaminaExpectRankActivity::new),
|
||||
SIGN_IN(ActivityType.SIGN_IN, SignInSumActivity::new),
|
||||
RECHARGE_NUM(ActivityType.RECHARGE_NUM, RechargeSumActivity::new),
|
||||
ESPECIALEQUIP_EXPERT(ActivityType.ESPECIALEQUIP_EXPERT, EspecialEquipExpectActivity::new),
|
||||
SOULEQUIP_EXPERT(ActivityType.SOULEQUIP_EXPERT, SoulEquipExpectActivity::new),
|
||||
;
|
||||
private int type;
|
||||
private Function<Integer, AbstractActivity> toActivityFunction;
|
||||
|
|
|
@ -3,10 +3,18 @@ package com.ljsd.jieling.logic.activity;
|
|||
|
||||
import com.ljsd.jieling.config.SActivityRewardConfig;
|
||||
import com.ljsd.jieling.config.SEquipConfig;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.event.EquipEvent;
|
||||
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.dao.ActivityMission;
|
||||
import com.ljsd.jieling.logic.dao.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
class EquipExpectRankActivity extends ExpectRankActivity {
|
||||
|
||||
|
@ -20,14 +28,33 @@ class EquipExpectRankActivity extends ExpectRankActivity {
|
|||
|
||||
if (!(event instanceof EquipEvent))
|
||||
return;
|
||||
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).get(0);
|
||||
if (sActivityRewardConfig == null)
|
||||
return;
|
||||
int type = sActivityRewardConfig.getValues()[0][0];
|
||||
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(((EquipEvent) event).getEquipId());
|
||||
if (type != sEquipConfig.getQuality())
|
||||
return;
|
||||
update(UserManager.getUser(((EquipEvent) event).getUid()), 1);
|
||||
User user = UserManager.getUser(((EquipEvent) event).getUid());
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityProgressInfoMap();
|
||||
|
||||
for (SActivityRewardConfig sActivityRewardConfig : SActivityRewardConfig.getsActivityRewardConfigByActivityId(id)) {
|
||||
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(((EquipEvent) event).getEquipId());
|
||||
if (sEquipConfig.getQuality() == sActivityRewardConfig.getValues()[0][0]) {
|
||||
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(sActivityRewardConfig.getId(), null);
|
||||
if (null == activityProgressInfo)
|
||||
continue;
|
||||
activityProgressInfo.setProgrss(activityProgressInfo.getProgrss() + 1);
|
||||
activityMission.updateProgressInfo(sActivityRewardConfig.getId(), activityProgressInfo);
|
||||
}
|
||||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
int[][] values = sActivityRewardConfig.getValues();
|
||||
int missionProgress = activityProgressInfo.getProgrss();
|
||||
if (missionProgress < values[1][0]) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
|
||||
import com.ljsd.jieling.config.SActivityRewardConfig;
|
||||
import com.ljsd.jieling.config.SEquipConfig;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.event.*;
|
||||
import com.ljsd.jieling.logic.dao.ActivityMission;
|
||||
import com.ljsd.jieling.logic.dao.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
class EspecialEquipExpectActivity extends ExpectRankActivity {
|
||||
|
||||
public EspecialEquipExpectActivity(int id) {
|
||||
super(id);
|
||||
Poster.getPoster().listenEvent(this, EspecialEquipUpEvent.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
|
||||
if (!(event instanceof EspecialEquipUpEvent))
|
||||
return;
|
||||
User user = UserManager.getUser(((EspecialEquipUpEvent) event).getUid());
|
||||
if (null == user) {
|
||||
return;
|
||||
}
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityProgressInfoMap();
|
||||
|
||||
for (SActivityRewardConfig sActivityRewardConfig : SActivityRewardConfig.getsActivityRewardConfigByActivityId(id)) {
|
||||
if (((EspecialEquipUpEvent) event).getStar() == sActivityRewardConfig.getValues()[0][0]) {
|
||||
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(sActivityRewardConfig.getId(), null);
|
||||
if (null == activityProgressInfo)
|
||||
continue;
|
||||
activityProgressInfo.setProgrss(activityProgressInfo.getProgrss() + 1);
|
||||
activityMission.updateProgressInfo(sActivityRewardConfig.getId(), activityProgressInfo);
|
||||
}
|
||||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
int[][] values = sActivityRewardConfig.getValues();
|
||||
int missionProgress = activityProgressInfo.getProgrss();
|
||||
if (missionProgress < values[1][0]) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
package com.ljsd.jieling.logic.activity;
|
||||
|
||||
|
||||
import com.ljsd.jieling.config.SActivityRewardConfig;
|
||||
import com.ljsd.jieling.config.SEquipConfig;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.activity.event.EquipEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.activity.event.SoulEquipUpEvent;
|
||||
import com.ljsd.jieling.logic.dao.ActivityMission;
|
||||
import com.ljsd.jieling.logic.dao.ActivityProgressInfo;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
class SoulEquipExpectActivity extends ExpectRankActivity {
|
||||
|
||||
public SoulEquipExpectActivity(int id) {
|
||||
super(id);
|
||||
Poster.getPoster().listenEvent(this, SoulEquipUpEvent.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEvent(IEvent event) throws Exception {
|
||||
|
||||
if (!(event instanceof SoulEquipUpEvent))
|
||||
return;
|
||||
User user = UserManager.getUser(((SoulEquipUpEvent) event).getUid());
|
||||
if (null == user) {
|
||||
return;
|
||||
}
|
||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityProgressInfoMap();
|
||||
|
||||
for (SActivityRewardConfig sActivityRewardConfig : SActivityRewardConfig.getsActivityRewardConfigByActivityId(id)) {
|
||||
if (((SoulEquipUpEvent) event).getLeve() == sActivityRewardConfig.getValues()[0][0]) {
|
||||
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(sActivityRewardConfig.getId(), null);
|
||||
if (null == activityProgressInfo)
|
||||
continue;
|
||||
activityProgressInfo.setProgrss(activityProgressInfo.getProgrss() + 1);
|
||||
activityMission.updateProgressInfo(sActivityRewardConfig.getId(), activityProgressInfo);
|
||||
}
|
||||
}
|
||||
//更新进度
|
||||
ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId());
|
||||
sendActivityProgress(sessionByUid, activityMission, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception {
|
||||
int[][] values = sActivityRewardConfig.getValues();
|
||||
int missionProgress = activityProgressInfo.getProgrss();
|
||||
if (missionProgress < values[1][0]) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package com.ljsd.jieling.logic.activity.event;
|
||||
|
||||
/**
|
||||
* 法宝
|
||||
*/
|
||||
public class EspecialEquipUpEvent implements IEvent {
|
||||
|
||||
private int uid;
|
||||
private int equipId;
|
||||
private int star;
|
||||
|
||||
public EspecialEquipUpEvent(int uid, int equipId, int leve) {
|
||||
this.uid = uid;
|
||||
this.equipId = equipId;
|
||||
this.star = leve;
|
||||
}
|
||||
|
||||
public int getUid() {
|
||||
return uid;
|
||||
}
|
||||
|
||||
public void setUid(int uid) {
|
||||
this.uid = uid;
|
||||
}
|
||||
|
||||
public int getEquipId() {
|
||||
return equipId;
|
||||
}
|
||||
|
||||
public void setEquipId(int equipId) {
|
||||
this.equipId = equipId;
|
||||
}
|
||||
|
||||
public int getStar() {
|
||||
return star;
|
||||
}
|
||||
|
||||
public void setStar(int star) {
|
||||
this.star = star;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package com.ljsd.jieling.logic.activity.event;
|
||||
|
||||
/**
|
||||
* 魂印装备
|
||||
*/
|
||||
public class SoulEquipUpEvent implements IEvent {
|
||||
|
||||
private int uid;
|
||||
private int equipId;
|
||||
private int leve;
|
||||
|
||||
public SoulEquipUpEvent(int uid, int equipId, int leve) {
|
||||
this.uid = uid;
|
||||
this.equipId = equipId;
|
||||
this.leve = leve;
|
||||
}
|
||||
|
||||
public int getUid() {
|
||||
return uid;
|
||||
}
|
||||
|
||||
public void setUid(int uid) {
|
||||
this.uid = uid;
|
||||
}
|
||||
|
||||
public int getEquipId() {
|
||||
return equipId;
|
||||
}
|
||||
|
||||
public void setEquipId(int equipId) {
|
||||
this.equipId = equipId;
|
||||
}
|
||||
|
||||
public int getLeve() {
|
||||
return leve;
|
||||
}
|
||||
|
||||
public void setLeve(int leve) {
|
||||
this.leve = leve;
|
||||
}
|
||||
}
|
|
@ -6,6 +6,8 @@ import com.ljsd.jieling.globals.BIReason;
|
|||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.handler.map.MapManager;
|
||||
import com.ljsd.jieling.logic.STableManager;
|
||||
import com.ljsd.jieling.logic.activity.event.EspecialEquipUpEvent;
|
||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||
import com.ljsd.jieling.logic.dao.*;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||
|
@ -488,6 +490,7 @@ public class ItemLogic {
|
|||
}
|
||||
}
|
||||
user.getEquipManager().upStarEspecialEquip(equipId);
|
||||
Poster.getPoster().dispatchEvent(new EspecialEquipUpEvent(user.getId(),0, user.getEquipManager().getEspecialEquipMap().get(equipId).getStar()));
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ESPECIAL_EQUIP,especialEquip.getStar()+1);
|
||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,null,true);
|
||||
}else{
|
||||
|
|
Loading…
Reference in New Issue