达人活动
parent
1e6ab3dfa4
commit
5af0c05c6b
|
@ -2,6 +2,9 @@ package com.ljsd.jieling.handler.equip;
|
||||||
|
|
||||||
import com.ljsd.jieling.config.SEquipSign;
|
import com.ljsd.jieling.config.SEquipSign;
|
||||||
import com.ljsd.jieling.handler.BaseHandler;
|
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.SoulEquip;
|
||||||
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;
|
||||||
|
@ -71,6 +74,7 @@ public class UpSoulEquipQuiickHandler extends BaseHandler<HeroInfoProto.UpQuickS
|
||||||
}
|
}
|
||||||
addleve += 1;
|
addleve += 1;
|
||||||
leve += 1;
|
leve += 1;
|
||||||
|
Poster.getPoster().dispatchEvent(new SoulEquipUpEvent(user.getId(),equip.getEquipId(),leve));
|
||||||
nextNeedExp = SEquipSign.getEquipExpMap().get(nextEcfg1.getId());
|
nextNeedExp = SEquipSign.getEquipExpMap().get(nextEcfg1.getId());
|
||||||
}
|
}
|
||||||
if (full) {
|
if (full) {
|
||||||
|
|
|
@ -40,5 +40,9 @@ public interface ActivityType {
|
||||||
int SIGN_IN = 23;//累计签到
|
int SIGN_IN = 23;//累计签到
|
||||||
int RECHARGE_NUM = 24;//累计充值
|
int RECHARGE_NUM = 24;//累计充值
|
||||||
|
|
||||||
|
int ESPECIALEQUIP_EXPERT = 37;//法宝达人
|
||||||
|
int SOULEQUIP_EXPERT = 38;//魂印达人
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.ljsd.jieling.logic.activity;
|
package com.ljsd.jieling.logic.activity;
|
||||||
|
|
||||||
import com.ljsd.jieling.config.SGlobalActivity;
|
import com.ljsd.jieling.config.SGlobalActivity;
|
||||||
|
import com.ljsd.jieling.logic.dao.SoulEquip;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
|
@ -31,6 +32,8 @@ public enum ActivityTypeEnum {
|
||||||
STAMINA_EXPERT(ActivityType.STAMINA_EXPERT, StaminaExpectRankActivity::new),
|
STAMINA_EXPERT(ActivityType.STAMINA_EXPERT, StaminaExpectRankActivity::new),
|
||||||
SIGN_IN(ActivityType.SIGN_IN, SignInSumActivity::new),
|
SIGN_IN(ActivityType.SIGN_IN, SignInSumActivity::new),
|
||||||
RECHARGE_NUM(ActivityType.RECHARGE_NUM, RechargeSumActivity::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 int type;
|
||||||
private Function<Integer, AbstractActivity> toActivityFunction;
|
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.SActivityRewardConfig;
|
||||||
import com.ljsd.jieling.config.SEquipConfig;
|
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.EquipEvent;
|
||||||
|
import com.ljsd.jieling.logic.activity.event.HeroUpStarEvent;
|
||||||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
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.UserManager;
|
||||||
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
class EquipExpectRankActivity extends ExpectRankActivity {
|
class EquipExpectRankActivity extends ExpectRankActivity {
|
||||||
|
|
||||||
|
@ -20,14 +28,33 @@ class EquipExpectRankActivity extends ExpectRankActivity {
|
||||||
|
|
||||||
if (!(event instanceof EquipEvent))
|
if (!(event instanceof EquipEvent))
|
||||||
return;
|
return;
|
||||||
SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).get(0);
|
User user = UserManager.getUser(((EquipEvent) event).getUid());
|
||||||
if (sActivityRewardConfig == null)
|
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||||
return;
|
Map<Integer, ActivityProgressInfo> activityProgressInfoMap = activityMission.getActivityProgressInfoMap();
|
||||||
int type = sActivityRewardConfig.getValues()[0][0];
|
|
||||||
|
for (SActivityRewardConfig sActivityRewardConfig : SActivityRewardConfig.getsActivityRewardConfigByActivityId(id)) {
|
||||||
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(((EquipEvent) event).getEquipId());
|
SEquipConfig sEquipConfig = SEquipConfig.getsEquipConfigById(((EquipEvent) event).getEquipId());
|
||||||
if (type != sEquipConfig.getQuality())
|
if (sEquipConfig.getQuality() == sActivityRewardConfig.getValues()[0][0]) {
|
||||||
return;
|
ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(sActivityRewardConfig.getId(), null);
|
||||||
update(UserManager.getUser(((EquipEvent) event).getUid()), 1);
|
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.globals.Global;
|
||||||
import com.ljsd.jieling.handler.map.MapManager;
|
import com.ljsd.jieling.handler.map.MapManager;
|
||||||
import com.ljsd.jieling.logic.STableManager;
|
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.*;
|
||||||
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;
|
||||||
|
@ -488,6 +490,7 @@ public class ItemLogic {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
user.getEquipManager().upStarEspecialEquip(equipId);
|
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);
|
user.getUserMissionManager().onGameEvent(user, GameEvent.ESPECIAL_EQUIP,especialEquip.getStar()+1);
|
||||||
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,null,true);
|
MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,null,true);
|
||||||
}else{
|
}else{
|
||||||
|
|
Loading…
Reference in New Issue