轩辕宝镜代码提交
parent
5c23253d5e
commit
00198786e9
|
@ -261,6 +261,8 @@ public class RedisKey {
|
||||||
|
|
||||||
public static final String DEATH_PATH_TOTAL_GUILD_RANK = "DEATH_PATH_TOTAL_GUILD_RANK";
|
public static final String DEATH_PATH_TOTAL_GUILD_RANK = "DEATH_PATH_TOTAL_GUILD_RANK";
|
||||||
|
|
||||||
|
public static final String SITUATION_RANK = "SITUATION_RANK";
|
||||||
|
|
||||||
|
|
||||||
public static final String DEATH_PAHT_TOTAL_CHALLENGE_COUNT = "DEATH_PAHT_TOTAL_CHALLENGE_COUNT";
|
public static final String DEATH_PAHT_TOTAL_CHALLENGE_COUNT = "DEATH_PAHT_TOTAL_CHALLENGE_COUNT";
|
||||||
|
|
||||||
|
|
|
@ -144,6 +144,8 @@ public interface BIReason {
|
||||||
int EQUIP_UNLOAD_REWARD = 79;
|
int EQUIP_UNLOAD_REWARD = 79;
|
||||||
int ESPECIAL_BACK = 80;//法宝归元获得
|
int ESPECIAL_BACK = 80;//法宝归元获得
|
||||||
|
|
||||||
|
int SITUATION_CHALLENGE_REWARD = 81;//轩辕宝镜获得
|
||||||
|
|
||||||
int ADVENTURE_UPLEVEL_CONSUME = 1000;//秘境升级
|
int ADVENTURE_UPLEVEL_CONSUME = 1000;//秘境升级
|
||||||
int SECRETBOX_CONSUME = 1001;//秘盒抽卡
|
int SECRETBOX_CONSUME = 1001;//秘盒抽卡
|
||||||
int DECOMPOSE_ITEM_CONSUME = 1002;//分解道具消耗
|
int DECOMPOSE_ITEM_CONSUME = 1002;//分解道具消耗
|
||||||
|
|
|
@ -332,7 +332,9 @@ public class GlobalDataManaager implements IManager {
|
||||||
FriendLogic.getInstance().refreshState(session);
|
FriendLogic.getInstance().refreshState(session);
|
||||||
PlayerLogic.getInstance().sendTimingMail(user);
|
PlayerLogic.getInstance().sendTimingMail(user);
|
||||||
user.getGuildMyInfo().setLastHurt(0);
|
user.getGuildMyInfo().setLastHurt(0);
|
||||||
|
if(TimeUtils.isSpanTime(user.getPlayerInfoManager().getLoginTime(),TimeUtils.now(),1,5)){
|
||||||
|
user.getPlayerInfoManager().updateSituationPass(new HashMap<>());
|
||||||
|
}
|
||||||
if(fBuilder!=null){
|
if(fBuilder!=null){
|
||||||
fBuilder.setSignInInfo(CommonProto.SignInInfo.newBuilder().setDays(user.getPlayerInfoManager().getSign()+1).setState(user.getPlayerInfoManager().getSignTotay()).build());
|
fBuilder.setSignInInfo(CommonProto.SignInInfo.newBuilder().setDays(user.getPlayerInfoManager().getSign()+1).setState(user.getPlayerInfoManager().getSignTotay()).build());
|
||||||
user.getPlayerInfoManager().setLoginTime(TimeUtils.now());
|
user.getPlayerInfoManager().setLoginTime(TimeUtils.now());
|
||||||
|
|
|
@ -1,39 +1,44 @@
|
||||||
package com.ljsd.jieling.logic;
|
package com.ljsd.jieling.logic;
|
||||||
|
|
||||||
|
|
||||||
|
import com.ljsd.fight.CheckFight;
|
||||||
import com.ljsd.jieling.core.FunctionIdEnum;
|
import com.ljsd.jieling.core.FunctionIdEnum;
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
import com.ljsd.jieling.exception.ErrorCode;
|
import com.ljsd.jieling.exception.ErrorCode;
|
||||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||||
|
import com.ljsd.jieling.globals.BIReason;
|
||||||
import com.ljsd.jieling.ktbeans.ReportEventEnum;
|
import com.ljsd.jieling.ktbeans.ReportEventEnum;
|
||||||
import com.ljsd.jieling.ktbeans.ReportUtil;
|
import com.ljsd.jieling.ktbeans.ReportUtil;
|
||||||
import com.ljsd.jieling.logic.dao.PlayerManager;
|
import com.ljsd.jieling.logic.dao.PlayerManager;
|
||||||
|
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
|
||||||
import com.ljsd.jieling.logic.dao.TimeControllerOfFunction;
|
import com.ljsd.jieling.logic.dao.TimeControllerOfFunction;
|
||||||
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.logic.fight.FightDispatcher;
|
import com.ljsd.jieling.logic.fight.*;
|
||||||
import com.ljsd.jieling.logic.fight.GameFightType;
|
|
||||||
import com.ljsd.jieling.logic.fight.PVEFightEvent;
|
|
||||||
import com.ljsd.jieling.logic.fight.result.FightResult;
|
import com.ljsd.jieling.logic.fight.result.FightResult;
|
||||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||||
|
import com.ljsd.jieling.logic.rank.RankContext;
|
||||||
|
import com.ljsd.jieling.logic.rank.RankEnum;
|
||||||
|
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.protocols.CommonProto;
|
import com.ljsd.jieling.protocols.CommonProto;
|
||||||
import com.ljsd.jieling.protocols.MapInfoProto;
|
import com.ljsd.jieling.protocols.MapInfoProto;
|
||||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
import com.ljsd.jieling.protocols.PlayerInfoProto;
|
||||||
|
import com.ljsd.jieling.util.FightDataUtil;
|
||||||
import com.ljsd.jieling.util.ItemUtil;
|
import com.ljsd.jieling.util.ItemUtil;
|
||||||
import com.ljsd.jieling.util.MessageUtil;
|
import com.ljsd.jieling.util.MessageUtil;
|
||||||
import com.ljsd.jieling.util.MonsterUtil;
|
import com.ljsd.jieling.util.MonsterUtil;
|
||||||
import config.SDailyChallengeConfig;
|
import config.*;
|
||||||
import config.SMainLevelConfig;
|
|
||||||
import config.SRaceTowerConfig;
|
|
||||||
import config.SSpecialConfig;
|
|
||||||
import manager.STableManager;
|
import manager.STableManager;
|
||||||
|
import org.luaj.vm2.LuaValue;
|
||||||
import util.TimeUtils;
|
import util.TimeUtils;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import static com.ljsd.jieling.logic.fight.FightUtil.makePersonFightData;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lvxinran
|
* @author lvxinran
|
||||||
* @date 2020/8/6
|
* @date 2020/8/6
|
||||||
|
@ -56,7 +61,7 @@ public class SituationLogic {
|
||||||
private int[] overTime;
|
private int[] overTime;
|
||||||
|
|
||||||
|
|
||||||
public void createCheckstatusTask(){
|
public void createCheckStatusTask(){
|
||||||
Runnable runnable = this::checkStatus;
|
Runnable runnable = this::checkStatus;
|
||||||
runnable.run();
|
runnable.run();
|
||||||
}
|
}
|
||||||
|
@ -80,6 +85,7 @@ public class SituationLogic {
|
||||||
if(hourOfDay<5){
|
if(hourOfDay<5){
|
||||||
week = week==0?7:week-1;
|
week = week==0?7:week-1;
|
||||||
}
|
}
|
||||||
|
boolean isIndication = false;
|
||||||
for(int[] config:openConfig){
|
for(int[] config:openConfig){
|
||||||
boolean isOpen = false;
|
boolean isOpen = false;
|
||||||
for(int i = 1;i<config.length;i++){
|
for(int i = 1;i<config.length;i++){
|
||||||
|
@ -88,22 +94,59 @@ public class SituationLogic {
|
||||||
}
|
}
|
||||||
isOpen = true;
|
isOpen = true;
|
||||||
}
|
}
|
||||||
|
if((isOpen&&status[config[0]-1]==1)||(!isOpen&&status[config[0]-1]==0)){
|
||||||
|
isIndication = true;
|
||||||
|
}
|
||||||
status[config[0]-1] = isOpen?1:0;
|
status[config[0]-1] = isOpen?1:0;
|
||||||
overTime[config[0]-1] =isOpen?(int)(TimeUtils.getLastOrUnderHour(now,5,0,false)/1000):0;
|
overTime[config[0]-1] =isOpen?(int)(TimeUtils.getLastOrUnderHour(now,5,0,false)/1000):0;
|
||||||
}
|
}
|
||||||
|
if(isIndication){
|
||||||
|
//周一刷新
|
||||||
|
boolean remove = false;
|
||||||
|
if(TimeUtils.getDayOfWeek()==1){
|
||||||
|
remove = true;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
Map<Integer, ISession> sessionMap = OnlineUserManager.sessionMap;
|
||||||
|
for(Map.Entry<Integer, ISession> entry:sessionMap.entrySet()){
|
||||||
|
//发推送
|
||||||
|
PlayerManager playerInfoManager= UserManager.getUser(entry.getKey()).getPlayerInfoManager();
|
||||||
|
if (remove){
|
||||||
|
playerInfoManager.updateSituationPass(new HashMap<>());
|
||||||
|
}
|
||||||
|
MapInfoProto.GetAllSituationInfoResponse.Builder indication = MapInfoProto.GetAllSituationInfoResponse.newBuilder();
|
||||||
|
for(int i = 0 ; i < status.length;i++){
|
||||||
|
if(status[i]==0){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
CommonProto.SituationInfo info = CommonProto.SituationInfo.newBuilder().setId(i+1)
|
||||||
|
.setOverTime(overTime[i])
|
||||||
|
.setPassId(playerInfoManager.getSituationPass().getOrDefault(i+1,0)).build();
|
||||||
|
indication.addInfos(info);
|
||||||
|
}
|
||||||
|
MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.SITUATION_INFO_INDICATION_VALUE,indication.build(),true);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void getAllSituationStatus(ISession session, MessageTypeProto.MessageType messageType){
|
public void getAllSituationStatus(ISession session, MessageTypeProto.MessageType messageType) throws Exception {
|
||||||
|
User user = UserManager.getUser(session.getUid());
|
||||||
MapInfoProto.GetAllSituationInfoResponse.Builder response = MapInfoProto.GetAllSituationInfoResponse.newBuilder();
|
MapInfoProto.GetAllSituationInfoResponse.Builder response = MapInfoProto.GetAllSituationInfoResponse.newBuilder();
|
||||||
|
Map<Integer, Integer> situationPass = user.getPlayerInfoManager().getSituationPass();
|
||||||
for(int i = 0 ; i < status.length;i++){
|
for(int i = 0 ; i < status.length;i++){
|
||||||
if(status[i]==0){
|
if(status[i]==0){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
CommonProto.SituationInfo info = CommonProto.SituationInfo.newBuilder().setId(i+1).setOverTime(overTime[i]).build();
|
CommonProto.SituationInfo info = CommonProto.SituationInfo.newBuilder().setId(i+1)
|
||||||
|
.setOverTime(overTime[i])
|
||||||
|
.setPassId(situationPass.getOrDefault(i+1,0)).build();
|
||||||
response.addInfos(info);
|
response.addInfos(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
|
MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -113,27 +156,49 @@ public class SituationLogic {
|
||||||
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
PlayerManager playerInfoManager = user.getPlayerInfoManager();
|
||||||
// //次数校验
|
// //次数校验
|
||||||
SRaceTowerConfig sRaceTowerConfig = STableManager.getConfig(SRaceTowerConfig.class).get(id);
|
SRaceTowerConfig sRaceTowerConfig = STableManager.getConfig(SRaceTowerConfig.class).get(id);
|
||||||
Set<Integer> situationPass = playerInfoManager.getSituationPass();
|
Map<Integer,Integer> situationPass = playerInfoManager.getSituationPass();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
boolean consumeCount = false;
|
boolean consumeCount = false;
|
||||||
if(type==2){
|
if(type==2){
|
||||||
if(!situationPass.contains(id)){
|
if(!situationPass.containsKey(sRaceTowerConfig.getType())||situationPass.get(sRaceTowerConfig.getType())<id){
|
||||||
throw new ErrorCodeException(ErrorCode.DAILY_ALREADY_PASS);
|
throw new ErrorCodeException(ErrorCode.DAILY_ALREADY_PASS);
|
||||||
}
|
}
|
||||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sRaceTowerConfig.getReward(), 1, 0, 1);
|
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sRaceTowerConfig.getReward(), 1, 0, BIReason.SITUATION_CHALLENGE_REWARD);
|
||||||
builder.setDrop(drop);
|
builder.setDrop(drop);
|
||||||
consumeCount = true;
|
consumeCount = true;
|
||||||
}else if(type==1){
|
}else if(type==1){
|
||||||
// //判断上一关是否已过
|
// //判断上一关是否已过
|
||||||
int openRules = sRaceTowerConfig.getOpenRules();
|
int openRules = sRaceTowerConfig.getOpenRules();
|
||||||
if(openRules!=0&&!situationPass.contains(openRules)){
|
if(openRules!=0&&situationPass.get(sRaceTowerConfig.getType())!=openRules){
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
}
|
}
|
||||||
|
//编队规则校验
|
||||||
PVEFightEvent pveFightEvent = new PVEFightEvent(user.getId(), GlobalsDef.FORMATION_NORMAL, 1000, "", GameFightType.DailyChallenge, sRaceTowerConfig.getMonsterId(), 3);
|
int formation = sRaceTowerConfig.getFormation();
|
||||||
FightResult fightResult = FightDispatcher.dispatcher(pveFightEvent);
|
List<TeamPosHeroInfo> teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(formation);
|
||||||
|
if(teamPosHeroInfos==null||teamPosHeroInfos.isEmpty()){
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
int[] heroType = new int[5];
|
||||||
|
teamPosHeroInfos.forEach(hero->{
|
||||||
|
int tempId = user.getHeroManager().getHero(hero.getHeroId()).getTemplateId();
|
||||||
|
int profession = SCHero.getsCHero().get(tempId).getPropertyName();
|
||||||
|
heroType[profession] = heroType[profession]+1;
|
||||||
|
});
|
||||||
|
for(int[] rule:sRaceTowerConfig.getTeamRules()){
|
||||||
|
if(heroType[rule[0]]<rule[1]){
|
||||||
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Map<Integer,List<Integer>> buffMap = new HashMap<>();
|
||||||
|
for(int[] buffid:sRaceTowerConfig.getAttribute()){
|
||||||
|
buffMap.computeIfAbsent(buffid[0],n->new ArrayList<>()).add(buffid[1]);
|
||||||
|
}
|
||||||
|
//组装战斗数据
|
||||||
|
PVEFightEvent pveFightEvent = new PVEFightEvent(user.getId(), formation, 20, "", GameFightType.DailyChallenge, sRaceTowerConfig.getMonsterId(), 3);
|
||||||
|
// FightResult fightResult = FightDispatcher.dispatcher(pveFightEvent);
|
||||||
|
FightResult fightResult = getFightForSituation(pveFightEvent, buffMap);
|
||||||
CommonProto.FightData fightData = CommonProto.FightData.newBuilder()
|
CommonProto.FightData fightData = CommonProto.FightData.newBuilder()
|
||||||
.setFightMaxTime(20)
|
.setFightMaxTime(20)
|
||||||
.setFightSeed(fightResult.getSeed())
|
.setFightSeed(fightResult.getSeed())
|
||||||
|
@ -142,11 +207,15 @@ public class SituationLogic {
|
||||||
.build();
|
.build();
|
||||||
int[] checkResult = fightResult.getCheckResult();
|
int[] checkResult = fightResult.getCheckResult();
|
||||||
builder.setFightData(fightData);
|
builder.setFightData(fightData);
|
||||||
|
//挑战成功
|
||||||
if(checkResult[0]>0){
|
if(checkResult[0]>0){
|
||||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sRaceTowerConfig.getFirstReward(), 1, 0, 1);
|
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sRaceTowerConfig.getFirstReward(), 1, 0, BIReason.SITUATION_CHALLENGE_REWARD);
|
||||||
builder.setDrop(drop);
|
builder.setDrop(drop);
|
||||||
situationPass.add(id);
|
situationPass.put(sRaceTowerConfig.getType(),id);
|
||||||
playerInfoManager.updateSituationPass(situationPass);
|
playerInfoManager.updateSituationPass(situationPass);
|
||||||
|
AbstractRank rankEnum = RankContext.getRankEnum(RankEnum.SITUATION_RANK.getType());
|
||||||
|
int score = Double.valueOf(rankEnum.getScoreById(user.getId(), "")).intValue();
|
||||||
|
rankEnum.addRank(user.getId(),"",score==-1?1:score+1);
|
||||||
consumeCount = true;
|
consumeCount = true;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
|
@ -154,7 +223,7 @@ public class SituationLogic {
|
||||||
}
|
}
|
||||||
// ReportUtil.onReportEvent(user, ReportEventEnum.START_DAILY_DUNGEON.getType(),id,sDailyChallengeConfig.getMonsterId(), MonsterUtil.getMonsterForce(new int[]{sDailyChallengeConfig.getMonsterId()}),"",0);
|
// ReportUtil.onReportEvent(user, ReportEventEnum.START_DAILY_DUNGEON.getType(),id,sDailyChallengeConfig.getMonsterId(), MonsterUtil.getMonsterForce(new int[]{sDailyChallengeConfig.getMonsterId()}),"",0);
|
||||||
if(consumeCount){
|
if(consumeCount){
|
||||||
boolean consume = PlayerLogic.getInstance().checkAndUpdate(user, sRaceTowerConfig.getPrivilege()[1], 1);
|
boolean consume = PlayerLogic.getInstance().checkAndUpdate(user, sRaceTowerConfig.getPrivilege()[0], 1);
|
||||||
if(!consume){
|
if(!consume){
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
|
||||||
}
|
}
|
||||||
|
@ -162,5 +231,24 @@ public class SituationLogic {
|
||||||
// user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_CHALLENGE,sDailyChallengeConfig.getType());
|
// user.getUserMissionManager().onGameEvent(user, GameEvent.DAILY_CHALLENGE,sDailyChallengeConfig.getType());
|
||||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),builder.build());
|
MessageUtil.sendMessage(session,1,messageType.getNumber(),builder.build());
|
||||||
}
|
}
|
||||||
|
public static FightResult getFightForSituation(FightEvent fightEvent,Map<Integer,List<Integer>> buffInfo){
|
||||||
|
PVEFightEvent pveFightEvent = (PVEFightEvent)fightEvent;
|
||||||
|
User userInMem = UserManager.getUserInMem(pveFightEvent.getAttackUid());
|
||||||
|
CommonProto.FightTeamInfo fightTeamInfo = FightUtil.getFightTeamInfoWithSomeBuff(userInMem, pveFightEvent.getTeamId(),pveFightEvent.getAttackBloodMap(),buffInfo);
|
||||||
|
int fightSeed = FightUtil.getFightSeed();
|
||||||
|
List<CommonProto.FightTeamInfo> monsterfightTeamInfos = FightUtil.makeMonsterFightData(pveFightEvent.getMonsterGroupId(), pveFightEvent.getNums());
|
||||||
|
LuaValue getFightData = FightDataUtil.getFinalFightData(fightTeamInfo, monsterfightTeamInfos);
|
||||||
|
LuaValue getOptionData = FightDataUtil.getOptionData(pveFightEvent.getAttackUid()+"");
|
||||||
|
int[] fightResult = CheckFight.getInstance().checkFight(fightSeed, fightEvent.getMostTime(), getFightData, getOptionData, fightEvent.getFightType().getFightType());
|
||||||
|
|
||||||
|
FightResult.Builder builder = FightResult.newBuilder();
|
||||||
|
builder.setCheckResult(fightResult);
|
||||||
|
builder.setSeed(fightSeed);
|
||||||
|
builder.setFightTeamInfo(fightTeamInfo);
|
||||||
|
builder.setMonsterTeamList(monsterfightTeamInfos);
|
||||||
|
CommonProto.FightData fightData = CommonProto.FightData.newBuilder().setFightType(fightEvent.getFightType().getFightType().getType()).setHeroFightInfos(fightTeamInfo).addAllMonsterList(monsterfightTeamInfos).setFightSeed(fightSeed).setFightMaxTime(fightEvent.getMostTime()).build();
|
||||||
|
builder.setFightData(fightData);
|
||||||
|
return builder.build();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,7 +116,7 @@ public class PlayerManager extends MongoBase {
|
||||||
|
|
||||||
private String ip;
|
private String ip;
|
||||||
|
|
||||||
private Set<Integer> situationPass = new HashSet<>();
|
private Map<Integer,Integer> situationPass = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
public PlayerManager(){
|
public PlayerManager(){
|
||||||
|
@ -777,11 +777,13 @@ public class PlayerManager extends MongoBase {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<Integer> getSituationPass() {
|
|
||||||
|
public Map<Integer, Integer> getSituationPass() {
|
||||||
return situationPass;
|
return situationPass;
|
||||||
}
|
}
|
||||||
public void updateSituationPass(Set<Integer> dailyPass){
|
|
||||||
this.dailyPass = dailyPass;
|
public void updateSituationPass(Map<Integer, Integer> situationPass){
|
||||||
|
this.situationPass = situationPass;
|
||||||
updateString("situationPass",situationPass);
|
updateString("situationPass",situationPass);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -287,6 +287,42 @@ public class FightUtil {
|
||||||
.setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId,user))
|
.setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId,user))
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
//
|
||||||
|
public static CommonProto.FightTeamInfo getFightTeamInfoWithSomeBuff(User user, int teamId, Map<String, Integer> attackBloodMap,Map<Integer,List<Integer>> buffInfo) {
|
||||||
|
user.getTeamPosManager().setCurTeamPosId(teamId);
|
||||||
|
List<CommonProto.FightUnitInfo> heroFightInfos = new ArrayList<>();
|
||||||
|
List<TeamPosHeroInfo> teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(teamId);
|
||||||
|
for (TeamPosHeroInfo teamPosHeroInfo : teamPosHeroInfos) {
|
||||||
|
Hero hero = user.getHeroManager().getHero(teamPosHeroInfo.getHeroId());
|
||||||
|
if (hero == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Map<Integer, Integer> heroAttributeMap = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero, false, teamId);
|
||||||
|
SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId());
|
||||||
|
if(buffInfo.containsKey(scHero.getPropertyName())){
|
||||||
|
CombatLogic.getInstance().bufferOneHeroAttrAfterEat(heroAttributeMap,buffInfo.get(scHero.getPropertyName()));
|
||||||
|
}
|
||||||
|
StringBuilder skillSb = new StringBuilder();
|
||||||
|
StringBuilder propertySb = new StringBuilder();
|
||||||
|
String heroSkill = HeroLogic.getInstance().getHeroSkills(user,hero,skillSb).toString();
|
||||||
|
String property = HeroLogic.getInstance().getHeroPropertyBuilder(propertySb, hero.getTemplateId(),hero.getLevel(), heroAttributeMap).toString();
|
||||||
|
CommonProto.FightUnitInfo heroFightInfo = CommonProto.FightUnitInfo
|
||||||
|
.newBuilder()
|
||||||
|
.setUnitId(Integer.toString(hero.getTemplateId()))
|
||||||
|
.setUnitSkillIds(heroSkill.substring(0,heroSkill.length()-1))
|
||||||
|
.setProperty(property.substring(0, property.length()-1))
|
||||||
|
.setStar(hero.getStar())
|
||||||
|
.build();
|
||||||
|
heroFightInfos.add(heroFightInfo);
|
||||||
|
}
|
||||||
|
return CommonProto.FightTeamInfo.
|
||||||
|
newBuilder()
|
||||||
|
.addAllFightUnitList(heroFightInfos)
|
||||||
|
.setTeamSkillList(HeroLogic.getInstance().getPokenmonSkills(user,teamId))
|
||||||
|
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user,teamId))
|
||||||
|
.setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId,user))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.ljsd.jieling.logic.rank;
|
package com.ljsd.jieling.logic.rank;
|
||||||
|
|
||||||
import com.ljsd.jieling.db.redis.RedisKey;
|
import com.ljsd.jieling.db.redis.RedisKey;
|
||||||
|
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||||
import com.ljsd.jieling.logic.rank.rankImpl.*;
|
import com.ljsd.jieling.logic.rank.rankImpl.*;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
@ -30,8 +31,10 @@ public enum RankEnum {
|
||||||
DEATH_PATH_TOTAL_GUILD_RANK(18,RedisKey.DEATH_PATH_TOTAL_GUILD_RANK,DeathPathTotalGuildRank::new),//param1:工会总伤害 param2:无 param3:无
|
DEATH_PATH_TOTAL_GUILD_RANK(18,RedisKey.DEATH_PATH_TOTAL_GUILD_RANK,DeathPathTotalGuildRank::new),//param1:工会总伤害 param2:无 param3:无
|
||||||
GUILD_FORCE_RANK(20,RedisKey.GUILD_FORCE_RANK,GuildForceRank::new),//param1:公会总战力 param2:无 param3:无
|
GUILD_FORCE_RANK(20,RedisKey.GUILD_FORCE_RANK,GuildForceRank::new),//param1:公会总战力 param2:无 param3:无
|
||||||
EXPERT_RANK(21,RedisKey.EXPERT_RANK,GoldRank::new),//param1:活动进度 param2:无 param3:无
|
EXPERT_RANK(21,RedisKey.EXPERT_RANK,GoldRank::new),//param1:活动进度 param2:无 param3:无
|
||||||
FORCE_CURR_RANK(22,RedisKey.FORCE_CURR_RANK,ForceCurrRank::new);//param1:人物战力 param2:无 param3:无
|
FORCE_CURR_RANK(22,RedisKey.FORCE_CURR_RANK,ForceCurrRank::new),//param1:人物战力 param2:无 param3:无
|
||||||
|
SITUATION_RANK(24,RedisKey.SITUATION_RANK,SituationRank::new),//param1:通关次数 param2:无 param3:无
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
private int type;
|
private int type;
|
||||||
private String redisKey;
|
private String redisKey;
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
package com.ljsd.jieling.logic.rank.rankImpl;
|
||||||
|
|
||||||
|
import util.TimeUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lvxinran
|
||||||
|
* @date 2020/8/14
|
||||||
|
* @discribe
|
||||||
|
*/
|
||||||
|
public class SituationRank extends AbstractRank {
|
||||||
|
|
||||||
|
public SituationRank(int type, String redisKey) {
|
||||||
|
super(type, redisKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long[] getDataByScore(Double score) {
|
||||||
|
return new long[]{score.longValue()};
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getScore(double... data) {
|
||||||
|
return data[0]+ TimeUtils.getDoubleTime();
|
||||||
|
}
|
||||||
|
}
|
|
@ -70,7 +70,7 @@ public class MinuteTask extends Thread {
|
||||||
ActivityLogic.getInstance().checkSecretBoxSeason();
|
ActivityLogic.getInstance().checkSecretBoxSeason();
|
||||||
StoreLogic.checkGlobalStore(false);
|
StoreLogic.checkGlobalStore(false);
|
||||||
MapLogic.getInstance().minuteCheckAndRemoveMapRank();
|
MapLogic.getInstance().minuteCheckAndRemoveMapRank();
|
||||||
|
SituationLogic.getInstance().createCheckStatusTask();
|
||||||
everyZeroTask();
|
everyZeroTask();
|
||||||
everyFiveTask();
|
everyFiveTask();
|
||||||
everyMondyFiveClockTask();
|
everyMondyFiveClockTask();
|
||||||
|
@ -87,7 +87,6 @@ public class MinuteTask extends Thread {
|
||||||
BuyGoodsLogic.minuteCheckReharge();
|
BuyGoodsLogic.minuteCheckReharge();
|
||||||
RedisUtil.getInstence().set(RedisKey.ONLINE_NUM+RedisKey.Delimiter_colon+GameApplication.serverId, String.valueOf(OnlineUserManager.sessionMap.entrySet().size()));
|
RedisUtil.getInstence().set(RedisKey.ONLINE_NUM+RedisKey.Delimiter_colon+GameApplication.serverId, String.valueOf(OnlineUserManager.sessionMap.entrySet().size()));
|
||||||
DeathPathLogic.getInstance().statusCheck();
|
DeathPathLogic.getInstance().statusCheck();
|
||||||
SituationLogic.getInstance().createCheckstatusTask();
|
|
||||||
GuildFightLogic.minuteCheckForCarFight();
|
GuildFightLogic.minuteCheckForCarFight();
|
||||||
reportUserOnline();
|
reportUserOnline();
|
||||||
OnlineUserManager.checkOnline();
|
OnlineUserManager.checkOnline();
|
||||||
|
@ -134,8 +133,6 @@ public class MinuteTask extends Thread {
|
||||||
LOGGER.info("everyHourTask end ...");
|
LOGGER.info("everyHourTask end ...");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//每日凌晨执行
|
|
||||||
public void everyZeroTask() throws Exception {
|
public void everyZeroTask() throws Exception {
|
||||||
Calendar calendar = Calendar.getInstance();
|
Calendar calendar = Calendar.getInstance();
|
||||||
int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
||||||
|
|
|
@ -26,7 +26,7 @@ public class SRaceTowerConfig implements BaseConfig {
|
||||||
|
|
||||||
private int[] privilege;
|
private int[] privilege;
|
||||||
|
|
||||||
private String remarks;
|
private int formation;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -71,9 +71,7 @@ public class SRaceTowerConfig implements BaseConfig {
|
||||||
return privilege;
|
return privilege;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getremarks() {
|
public int getFormation() {
|
||||||
return remarks;
|
return formation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue