master_ob2
parent
3915f25665
commit
3e70166697
|
@ -1,4 +1,4 @@
|
||||||
{
|
{
|
||||||
"version":"5",
|
"version":"6",
|
||||||
"tables":""
|
"tables":"StoreConfig|RechargeCommodityConfig"
|
||||||
}
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"version":"5",
|
"version":"6",
|
||||||
"classes":[
|
"classes":[
|
||||||
|
{"name":"HeroLogic.class","fullName":"com.ljsd.jieling.logic.hero.HeroLogic"}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -5342,211 +5342,215 @@ public class HeroLogic {
|
||||||
* @param session
|
* @param session
|
||||||
* @param judge true:返回,false:推送
|
* @param judge true:返回,false:推送
|
||||||
*/
|
*/
|
||||||
public void addOrUpdateHongmeng(ISession session, boolean judge) throws Exception {
|
public void addOrUpdateHongmeng(ISession session, boolean judge){
|
||||||
User user = UserManager.getUser(session.getUid());
|
try {
|
||||||
// 英雄星级排行榜
|
User user = UserManager.getUser(session.getUid());
|
||||||
SaveHeroForceEventHandler.heroStarHandle(user);
|
// 英雄星级排行榜
|
||||||
// 鸿蒙阵逻辑
|
SaveHeroForceEventHandler.heroStarHandle(user);
|
||||||
HeroInfoProto.HongmengInfoIndication.Builder hongmengInfoIndication = HeroInfoProto.HongmengInfoIndication.newBuilder();
|
// 鸿蒙阵逻辑
|
||||||
|
HeroInfoProto.HongmengInfoIndication.Builder hongmengInfoIndication = HeroInfoProto.HongmengInfoIndication.newBuilder();
|
||||||
|
|
||||||
SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.HongMeng.getFunctionType());
|
SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.HongMeng.getFunctionType());
|
||||||
boolean open = GlobleSystemLogic.checkOpen(user, sGlobalSystemConfig);
|
boolean open = GlobleSystemLogic.checkOpen(user, sGlobalSystemConfig);
|
||||||
// 鸿蒙阵开启条件
|
// 鸿蒙阵开启条件
|
||||||
if (open) {
|
if (open) {
|
||||||
/** ========================== 共鸣信息初始化 =========================== **/
|
/** ========================== 共鸣信息初始化 =========================== **/
|
||||||
// 限制表 鸿蒙守卫数量#鸿蒙碑使者等级
|
// 限制表 鸿蒙守卫数量#鸿蒙碑使者等级
|
||||||
String[] openLevel = SSpecialConfig.getStringValue(SSpecialConfig.HONGMENG_UPGRADE_LIMIT).split("#");
|
String[] openLevel = SSpecialConfig.getStringValue(SSpecialConfig.HONGMENG_UPGRADE_LIMIT).split("#");
|
||||||
|
|
||||||
Map<Integer, String> hongmengs = new HashMap<>(Integer.parseInt(openLevel[0]));
|
Map<Integer, String> hongmengs = new HashMap<>(Integer.parseInt(openLevel[0]));
|
||||||
int defaultValue = 1000;
|
int defaultValue = 1000;
|
||||||
// 只要任意鸿蒙守卫中有未穿戴装备的部位,就不会触发装备共鸣,共鸣区域放入神将时不再自动卸下装备 -1:不用卸下装备,其他表示装备星级
|
// 只要任意鸿蒙守卫中有未穿戴装备的部位,就不会触发装备共鸣,共鸣区域放入神将时不再自动卸下装备 -1:不用卸下装备,其他表示装备星级
|
||||||
HongMengAddAttribute hongMengAddAttributeEquip = new HongMengAddAttribute(0, defaultValue);
|
HongMengAddAttribute hongMengAddAttributeEquip = new HongMengAddAttribute(0, defaultValue);
|
||||||
// 只要任意鸿蒙守卫未穿戴魂宝/灵宝,或强化等级为0,便不会触发对应宝物的共鸣
|
// 只要任意鸿蒙守卫未穿戴魂宝/灵宝,或强化等级为0,便不会触发对应宝物的共鸣
|
||||||
HongMengAddAttribute soulEquip = new HongMengAddAttribute(0, defaultValue);
|
HongMengAddAttribute soulEquip = new HongMengAddAttribute(0, defaultValue);
|
||||||
HongMengAddAttribute spiritEquip = new HongMengAddAttribute(0, defaultValue);
|
HongMengAddAttribute spiritEquip = new HongMengAddAttribute(0, defaultValue);
|
||||||
|
|
||||||
// 共鸣等级=鸿蒙守卫中最低的等级
|
// 共鸣等级=鸿蒙守卫中最低的等级
|
||||||
HongMengAddAttribute resonanceLevel = new HongMengAddAttribute(0, defaultValue);
|
HongMengAddAttribute resonanceLevel = new HongMengAddAttribute(0, defaultValue);
|
||||||
|
|
||||||
// 共鸣法宝=鸿蒙守卫中法宝强化最低等级
|
// 共鸣法宝=鸿蒙守卫中法宝强化最低等级
|
||||||
HongMengAddAttribute especialEquipLevel = new HongMengAddAttribute(0, defaultValue);
|
HongMengAddAttribute especialEquipLevel = new HongMengAddAttribute(0, defaultValue);
|
||||||
|
|
||||||
/** ========================== 开始处理玩家信息,更 =========================== **/
|
/** ========================== 开始处理玩家信息,更 =========================== **/
|
||||||
HeroManager heroManager = user.getHeroManager();
|
HeroManager heroManager = user.getHeroManager();
|
||||||
// 共鸣英雄池
|
// 共鸣英雄池
|
||||||
Map<Integer, String> resonances = heroManager.getResonances();
|
Map<Integer, String> resonances = heroManager.getResonances();
|
||||||
// 第一个格子免费开启
|
// 第一个格子免费开启
|
||||||
if (!resonances.containsKey(1)) {
|
if (!resonances.containsKey(1)) {
|
||||||
resonances.put(1, "");
|
resonances.put(1, "");
|
||||||
heroManager.setResonances(resonances);
|
heroManager.setResonances(resonances);
|
||||||
// 成就任务
|
// 成就任务
|
||||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.HONGMENG_RESONANCE_LATTICE, resonances.size());
|
user.getUserMissionManager().onGameEvent(user, GameEvent.ONE_MISSION_TYPE_CONSUME, MissionType.HONGMENG_RESONANCE_LATTICE, resonances.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取玩家全部英雄
|
// 获取玩家全部英雄
|
||||||
Collection<Hero> values = heroManager.getHeroMap().values();
|
Collection<Hero> values = heroManager.getHeroMap().values();
|
||||||
List<Hero> heroes = new ArrayList<>(values);
|
List<Hero> heroes = new ArrayList<>(values);
|
||||||
|
|
||||||
// 是否开启鸿蒙碑
|
// 是否开启鸿蒙碑
|
||||||
int tabletMax = 0;
|
int tabletMax = 0;
|
||||||
// 是否为鸿蒙碑
|
// 是否为鸿蒙碑
|
||||||
if (heroManager.getHongmengTablet() > 0) {
|
if (heroManager.getHongmengTablet() > 0) {
|
||||||
// 等级
|
// 等级
|
||||||
resonanceLevel.value = heroManager.getHongmengTablet();
|
resonanceLevel.value = heroManager.getHongmengTablet();
|
||||||
tabletMax = heroManager.getHongmengMaxLevelByInt();
|
tabletMax = heroManager.getHongmengMaxLevelByInt();
|
||||||
} else {
|
} else {
|
||||||
// 玩家英雄背包按等级排序
|
// 玩家英雄背包按等级排序
|
||||||
Collections.sort(heroes);
|
Collections.sort(heroes);
|
||||||
|
|
||||||
for (int i = 0; i < heroes.size(); i++) {
|
for (int i = 0; i < heroes.size(); i++) {
|
||||||
Hero hero = heroes.get(i);
|
Hero hero = heroes.get(i);
|
||||||
resonances.forEach((k, v) -> {
|
resonances.forEach((k, v) -> {
|
||||||
if (v.equals(hero.getId())) {
|
if (v.equals(hero.getId())) {
|
||||||
try {
|
try {
|
||||||
// 共鸣格子更新
|
// 共鸣格子更新
|
||||||
unLoadResonance(session, MessageTypeProto.MessageType.HONGMENG_RESONANCE_RESPONSE, k, 0);
|
unLoadResonance(session, MessageTypeProto.MessageType.HONGMENG_RESONANCE_RESPONSE, k, 0);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// 是否开启鸿蒙碑
|
||||||
|
if (hero.getOriginalLevel() >= Integer.parseInt(openLevel[1])) {
|
||||||
|
tabletMax++;
|
||||||
|
}
|
||||||
|
// 等级
|
||||||
|
hongmengLevel(resonanceLevel, hero);
|
||||||
|
hongmengs.put(i + 1, hero.getId());
|
||||||
|
if (hongmengs.size() >= Integer.parseInt(openLevel[0])) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新鸿蒙使者
|
||||||
|
heroManager.setHongmengGuards(hongmengs);
|
||||||
|
|
||||||
|
// 鸿蒙碑,觉醒限制
|
||||||
|
if (tabletMax >= Integer.parseInt(openLevel[0]) && heroManager.getHongmengTablet() == 0) {
|
||||||
|
// 开启鸿蒙碑
|
||||||
|
heroManager.setHongmengTablet(Integer.parseInt(openLevel[1]));
|
||||||
|
for (String resetLevelId : heroManager.getHongmengGuards().values()) {
|
||||||
|
Hero hero = heroManager.getHero(resetLevelId);
|
||||||
|
if (hero == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
hero.setLevel(1);
|
||||||
|
hero.setBreakId(0);
|
||||||
|
}
|
||||||
|
// 初始化鸿蒙碑等级上限
|
||||||
|
for (Hero hero : heroes) {
|
||||||
|
if (hero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_awaken_hero_content_parm)) {
|
||||||
|
heroManager.addHongmengMaxLevel(hero.getTemplateId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
tabletMax = heroManager.getHongmengMaxLevelByInt();
|
||||||
// 是否开启鸿蒙碑
|
resonanceLevel.heroTid = 0;
|
||||||
if (hero.getOriginalLevel() >= Integer.parseInt(openLevel[1])) {
|
resonanceLevel.value = heroManager.getHongmengTablet();
|
||||||
tabletMax++;
|
|
||||||
}
|
// 鸿蒙碑新手引导推送
|
||||||
// 等级
|
HeroInfoProto.HongmengSteleNewHandIndication.Builder builder = HeroInfoProto.HongmengSteleNewHandIndication.newBuilder().setState(1);
|
||||||
hongmengLevel(resonanceLevel, hero);
|
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.HONGMENG_STELE_NEW_HAND_INDICATION.getNumber(), builder.build(), true);
|
||||||
hongmengs.put(i + 1, hero.getId());
|
|
||||||
if (hongmengs.size() >= Integer.parseInt(openLevel[0])) {
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 守卫/使者英雄池
|
||||||
|
Map<Integer, String> guards = heroManager.getHongmengGuards();
|
||||||
|
// 英雄装备
|
||||||
|
Map<String, PropertyItem> equipMap = user.getEquipManager().getEquipMap();
|
||||||
|
|
||||||
// 更新鸿蒙使者
|
// if (guards.size() >= Integer.parseInt(openLevel[0])) {
|
||||||
heroManager.setHongmengGuards(hongmengs);
|
// for (int i = 0; i < guards.size(); i++) {
|
||||||
|
// Hero hero = user.getHeroManager().getHero(guards.get(i + 1));
|
||||||
|
// if (hero == null) {
|
||||||
|
// // 找不到英雄,不存在这些共鸣属性
|
||||||
|
// hongMengAddAttributeEquip = new HongMengAddAttribute(0, defaultValue);
|
||||||
|
// soulEquip = new HongMengAddAttribute(0, defaultValue);
|
||||||
|
// spiritEquip = new HongMengAddAttribute(0, defaultValue);
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// // 装备
|
||||||
|
// hongmengEquip(hongMengAddAttributeEquip, hero);
|
||||||
|
// // 魂宝 灵宝
|
||||||
|
// soulOrSpirit(soulEquip, 1, equipMap, hero);
|
||||||
|
// soulOrSpirit(spiritEquip, 2, equipMap, hero);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
// 鸿蒙碑,觉醒限制
|
/*** ============================= 计算共鸣信息 ==================================== **/
|
||||||
if (tabletMax >= Integer.parseInt(openLevel[0]) && heroManager.getHongmengTablet() == 0) {
|
Map<HongMengAttributeEnum, HongMengAddAttribute> resonanceAddition = heroManager.getResonanceAddition();
|
||||||
// 开启鸿蒙碑
|
resonanceAddition.clear();
|
||||||
heroManager.setHongmengTablet(Integer.parseInt(openLevel[1]));
|
if (resonanceLevel.value == defaultValue) {
|
||||||
for (String resetLevelId : heroManager.getHongmengGuards().values()) {
|
resonanceLevel.value = -1;
|
||||||
Hero hero = heroManager.getHero(resetLevelId);
|
}
|
||||||
if (hero == null) {
|
// if (hongMengAddAttributeEquip.value == defaultValue) {
|
||||||
continue;
|
// hongMengAddAttributeEquip.value = -1;
|
||||||
}
|
// }
|
||||||
hero.setLevel(1);
|
// if (soulEquip.value == defaultValue) {
|
||||||
hero.setBreakId(0);
|
// soulEquip.value = -1;
|
||||||
}
|
// }
|
||||||
// 初始化鸿蒙碑等级上限
|
// if (spiritEquip.value == defaultValue) {
|
||||||
for (Hero hero : heroes) {
|
// spiritEquip.value = -1;
|
||||||
if (hero.getStar() >= SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_awaken_hero_content_parm)) {
|
// }
|
||||||
heroManager.addHongmengMaxLevel(hero.getTemplateId());
|
// if (especialEquipLevel.value == defaultValue) {
|
||||||
}
|
// especialEquipLevel.value = -1;
|
||||||
}
|
// }
|
||||||
tabletMax = heroManager.getHongmengMaxLevelByInt();
|
resonanceAddition.put(HongMengAttributeEnum.LEVEL, resonanceLevel);
|
||||||
resonanceLevel.heroTid = 0;
|
// resonanceAddition.put(HongMengAttributeEnum.EQUIP, hongMengAddAttributeEquip);
|
||||||
resonanceLevel.value = heroManager.getHongmengTablet();
|
// resonanceAddition.put(HongMengAttributeEnum.SOUL_EQUIP, soulEquip);
|
||||||
|
// resonanceAddition.put(HongMengAttributeEnum.SPIRIT_EQUIP, spiritEquip);
|
||||||
|
heroManager.setResonanceAddition(resonanceAddition);
|
||||||
|
|
||||||
// 鸿蒙碑新手引导推送
|
/*** ============================= 开始组装鸿蒙阵信息 ==================================== **/
|
||||||
HeroInfoProto.HongmengSteleNewHandIndication.Builder builder = HeroInfoProto.HongmengSteleNewHandIndication.newBuilder().setState(1);
|
// 当前时间,秒
|
||||||
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.HONGMENG_STELE_NEW_HAND_INDICATION.getNumber(), builder.build(), true);
|
long now = TimeUtils.now() / 1000;
|
||||||
|
// 鸿蒙守卫
|
||||||
|
List<HeroInfoProto.HongmengHeroInfo> hongmengGuardsProto = new ArrayList<>();
|
||||||
|
Map<Integer, String> hongmengGuards = heroManager.getHongmengGuards();
|
||||||
|
Map<Integer, Long> hongmengGuardTime = heroManager.getHongmengGuardTime();
|
||||||
|
for (Map.Entry<Integer, String> entry : hongmengGuards.entrySet()) {
|
||||||
|
HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder()
|
||||||
|
.setGridId(entry.getKey())
|
||||||
|
.setHeroId(entry.getValue())
|
||||||
|
.setTime(hongmengGuardTime.containsKey(entry.getKey()) ? (hongmengGuardTime.get(entry.getKey()) - now < 0 ? 0 : (hongmengGuardTime.get(entry.getKey()) - now)) : 0)
|
||||||
|
.build();
|
||||||
|
hongmengGuardsProto.add(hongmengHeroInfo);
|
||||||
|
}
|
||||||
|
// 共鸣属性
|
||||||
|
List<HeroInfoProto.HongmengAddition> hongmengAdditions = new ArrayList<>();
|
||||||
|
for (Map.Entry<HongMengAttributeEnum, HongMengAddAttribute> entry : resonanceAddition.entrySet()) {
|
||||||
|
HeroInfoProto.HongmengAddition hongmengAddition = HeroInfoProto.HongmengAddition
|
||||||
|
.newBuilder()
|
||||||
|
.setAdditionType(entry.getKey().getPropertyId())
|
||||||
|
.setValue(entry.getValue().value)
|
||||||
|
.setHeroTid(entry.getValue().heroTid)
|
||||||
|
.build();
|
||||||
|
hongmengAdditions.add(hongmengAddition);
|
||||||
|
}
|
||||||
|
// 共鸣使者
|
||||||
|
List<HeroInfoProto.HongmengHeroInfo> hongmengResonancesProto = new ArrayList<>();
|
||||||
|
Map<Integer, String> hongmengResonances = heroManager.getResonances();
|
||||||
|
Map<Integer, Long> hongmengResonanceTime = heroManager.getResonancesTime();
|
||||||
|
for (Map.Entry<Integer, String> entry : hongmengResonances.entrySet()) {
|
||||||
|
HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder()
|
||||||
|
.setGridId(entry.getKey())
|
||||||
|
.setHeroId(entry.getValue())
|
||||||
|
.setTime(hongmengResonanceTime.containsKey(entry.getKey()) ? (hongmengResonanceTime.get(entry.getKey()) - now < 0 ? 0 : (hongmengResonanceTime.get(entry.getKey()) - now)) : 0)
|
||||||
|
.build();
|
||||||
|
hongmengResonancesProto.add(hongmengHeroInfo);
|
||||||
|
}
|
||||||
|
hongmengInfoIndication.addAllHongmengGuards(hongmengGuardsProto).addAllHongmengAdditions(hongmengAdditions)
|
||||||
|
.addAllHongmengResonacnes(hongmengResonancesProto).setHongmengTabletMax(tabletMax).build();
|
||||||
|
}
|
||||||
|
// 返回协议
|
||||||
|
if (judge) {
|
||||||
|
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.HONGMENG_GET_INFO_RESPONSE_VALUE, hongmengInfoIndication.build(), true);
|
||||||
|
} else {
|
||||||
|
if (hongmengInfoIndication.getHongmengGuardsCount() > 0 || hongmengInfoIndication.getHongmengAdditionsCount() > 0 || hongmengInfoIndication.getHongmengResonacnesCount() > 0) {
|
||||||
|
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.HONGMENG_INFO_INDICATION_VALUE, hongmengInfoIndication.build(), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 守卫/使者英雄池
|
} catch (Exception e) {
|
||||||
Map<Integer, String> guards = heroManager.getHongmengGuards();
|
throw new RuntimeException(e);
|
||||||
// 英雄装备
|
|
||||||
Map<String, PropertyItem> equipMap = user.getEquipManager().getEquipMap();
|
|
||||||
|
|
||||||
// if (guards.size() >= Integer.parseInt(openLevel[0])) {
|
|
||||||
// for (int i = 0; i < guards.size(); i++) {
|
|
||||||
// Hero hero = user.getHeroManager().getHero(guards.get(i + 1));
|
|
||||||
// if (hero == null) {
|
|
||||||
// // 找不到英雄,不存在这些共鸣属性
|
|
||||||
// hongMengAddAttributeEquip = new HongMengAddAttribute(0, defaultValue);
|
|
||||||
// soulEquip = new HongMengAddAttribute(0, defaultValue);
|
|
||||||
// spiritEquip = new HongMengAddAttribute(0, defaultValue);
|
|
||||||
// break;
|
|
||||||
// }
|
|
||||||
// // 装备
|
|
||||||
// hongmengEquip(hongMengAddAttributeEquip, hero);
|
|
||||||
// // 魂宝 灵宝
|
|
||||||
// soulOrSpirit(soulEquip, 1, equipMap, hero);
|
|
||||||
// soulOrSpirit(spiritEquip, 2, equipMap, hero);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
/*** ============================= 计算共鸣信息 ==================================== **/
|
|
||||||
Map<HongMengAttributeEnum, HongMengAddAttribute> resonanceAddition = heroManager.getResonanceAddition();
|
|
||||||
resonanceAddition.clear();
|
|
||||||
if (resonanceLevel.value == defaultValue) {
|
|
||||||
resonanceLevel.value = -1;
|
|
||||||
}
|
|
||||||
// if (hongMengAddAttributeEquip.value == defaultValue) {
|
|
||||||
// hongMengAddAttributeEquip.value = -1;
|
|
||||||
// }
|
|
||||||
// if (soulEquip.value == defaultValue) {
|
|
||||||
// soulEquip.value = -1;
|
|
||||||
// }
|
|
||||||
// if (spiritEquip.value == defaultValue) {
|
|
||||||
// spiritEquip.value = -1;
|
|
||||||
// }
|
|
||||||
// if (especialEquipLevel.value == defaultValue) {
|
|
||||||
// especialEquipLevel.value = -1;
|
|
||||||
// }
|
|
||||||
resonanceAddition.put(HongMengAttributeEnum.LEVEL, resonanceLevel);
|
|
||||||
// resonanceAddition.put(HongMengAttributeEnum.EQUIP, hongMengAddAttributeEquip);
|
|
||||||
// resonanceAddition.put(HongMengAttributeEnum.SOUL_EQUIP, soulEquip);
|
|
||||||
// resonanceAddition.put(HongMengAttributeEnum.SPIRIT_EQUIP, spiritEquip);
|
|
||||||
heroManager.setResonanceAddition(resonanceAddition);
|
|
||||||
|
|
||||||
/*** ============================= 开始组装鸿蒙阵信息 ==================================== **/
|
|
||||||
// 当前时间,秒
|
|
||||||
long now = TimeUtils.now() / 1000;
|
|
||||||
// 鸿蒙守卫
|
|
||||||
List<HeroInfoProto.HongmengHeroInfo> hongmengGuardsProto = new ArrayList<>();
|
|
||||||
Map<Integer, String> hongmengGuards = heroManager.getHongmengGuards();
|
|
||||||
Map<Integer, Long> hongmengGuardTime = heroManager.getHongmengGuardTime();
|
|
||||||
for (Map.Entry<Integer, String> entry : hongmengGuards.entrySet()) {
|
|
||||||
HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder()
|
|
||||||
.setGridId(entry.getKey())
|
|
||||||
.setHeroId(entry.getValue())
|
|
||||||
.setTime(hongmengGuardTime.containsKey(entry.getKey()) ? (hongmengGuardTime.get(entry.getKey()) - now < 0 ? 0 : (hongmengGuardTime.get(entry.getKey()) - now)) : 0)
|
|
||||||
.build();
|
|
||||||
hongmengGuardsProto.add(hongmengHeroInfo);
|
|
||||||
}
|
|
||||||
// 共鸣属性
|
|
||||||
List<HeroInfoProto.HongmengAddition> hongmengAdditions = new ArrayList<>();
|
|
||||||
for (Map.Entry<HongMengAttributeEnum, HongMengAddAttribute> entry : resonanceAddition.entrySet()) {
|
|
||||||
HeroInfoProto.HongmengAddition hongmengAddition = HeroInfoProto.HongmengAddition
|
|
||||||
.newBuilder()
|
|
||||||
.setAdditionType(entry.getKey().getPropertyId())
|
|
||||||
.setValue(entry.getValue().value)
|
|
||||||
.setHeroTid(entry.getValue().heroTid)
|
|
||||||
.build();
|
|
||||||
hongmengAdditions.add(hongmengAddition);
|
|
||||||
}
|
|
||||||
// 共鸣使者
|
|
||||||
List<HeroInfoProto.HongmengHeroInfo> hongmengResonancesProto = new ArrayList<>();
|
|
||||||
Map<Integer, String> hongmengResonances = heroManager.getResonances();
|
|
||||||
Map<Integer, Long> hongmengResonanceTime = heroManager.getResonancesTime();
|
|
||||||
for (Map.Entry<Integer, String> entry : hongmengResonances.entrySet()) {
|
|
||||||
HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder()
|
|
||||||
.setGridId(entry.getKey())
|
|
||||||
.setHeroId(entry.getValue())
|
|
||||||
.setTime(hongmengResonanceTime.containsKey(entry.getKey()) ? (hongmengResonanceTime.get(entry.getKey()) - now < 0 ? 0 : (hongmengResonanceTime.get(entry.getKey()) - now)) : 0)
|
|
||||||
.build();
|
|
||||||
hongmengResonancesProto.add(hongmengHeroInfo);
|
|
||||||
}
|
|
||||||
hongmengInfoIndication.addAllHongmengGuards(hongmengGuardsProto).addAllHongmengAdditions(hongmengAdditions)
|
|
||||||
.addAllHongmengResonacnes(hongmengResonancesProto).setHongmengTabletMax(tabletMax).build();
|
|
||||||
}
|
|
||||||
// 返回协议
|
|
||||||
if (judge) {
|
|
||||||
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.HONGMENG_GET_INFO_RESPONSE_VALUE, hongmengInfoIndication.build(), true);
|
|
||||||
} else {
|
|
||||||
if (hongmengInfoIndication.getHongmengGuardsCount() > 0 || hongmengInfoIndication.getHongmengAdditionsCount() > 0 || hongmengInfoIndication.getHongmengResonacnesCount() > 0) {
|
|
||||||
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.HONGMENG_INFO_INDICATION_VALUE, hongmengInfoIndication.build(), true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue