地图优化
parent
521edb1bfe
commit
44f726aaa7
|
@ -1111,13 +1111,12 @@ local effectList = {
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end,
|
end,
|
||||||
--造成[a]%的[b]伤害,自身每种/每层增益状态会提高此技能[c]%的伤害。
|
--造成[a]%的[b]伤害,自身每种/每层增益状态会提高此技能[c]%的伤害。【aoe】
|
||||||
--a[float],b[伤害类型],c[float]
|
--a[float],b[伤害类型],c[float]
|
||||||
[64] = function(caster, target, args, interval)
|
[64] = function(caster, target, args, interval)
|
||||||
local f1 = args[1]
|
local f1 = args[1]
|
||||||
local dt = args[2]
|
local dt = args[2]
|
||||||
local f2 = args[3]
|
local f2 = args[3]
|
||||||
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
|
|
||||||
BattleLogic.WaitForTrigger(interval, function ()
|
BattleLogic.WaitForTrigger(interval, function ()
|
||||||
local factor = 0
|
local factor = 0
|
||||||
BattleLogic.BuffMgr:QueryBuff(caster, function (buff)
|
BattleLogic.BuffMgr:QueryBuff(caster, function (buff)
|
||||||
|
@ -1163,7 +1162,7 @@ local effectList = {
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end,
|
end,
|
||||||
--造成[a]%的[b]伤害,[c]的概率附加一层增伤印记,最大[d]层。目标身上每层印记增加此技能[e]%的伤害。
|
--造成[a]%的[b]伤害,[c]的概率附加一层增伤印记,最大[d]层。目标身上每层印记增加此技能[e]%的伤害。【aoe】
|
||||||
--a[float],b[伤害类型],c[float],d[int],e[float]
|
--a[float],b[伤害类型],c[float],d[int],e[float]
|
||||||
[66] = function(caster, target, args, interval)
|
[66] = function(caster, target, args, interval)
|
||||||
local f1 = args[1]
|
local f1 = args[1]
|
||||||
|
@ -1171,7 +1170,6 @@ local effectList = {
|
||||||
local f2 = args[3]
|
local f2 = args[3]
|
||||||
local i1 = args[4]
|
local i1 = args[4]
|
||||||
local f3 = args[5]
|
local f3 = args[5]
|
||||||
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
|
|
||||||
BattleLogic.WaitForTrigger(interval, function ()
|
BattleLogic.WaitForTrigger(interval, function ()
|
||||||
local brand = Buff.Create(caster, BuffName.Brand, 0, "zengshang")
|
local brand = Buff.Create(caster, BuffName.Brand, 0, "zengshang")
|
||||||
brand.maxLayer = i1
|
brand.maxLayer = i1
|
||||||
|
@ -1222,14 +1220,13 @@ local effectList = {
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
--造成[a]%的[b]伤害,附带持续伤害,每秒造成目标最大生命值[c]%的真实伤害,持续[d]秒。(目标最大生命值伤害总上限为施法者2.5倍攻击)
|
--造成[a]%的[b]伤害,附带持续伤害,每秒造成目标最大生命值[c]%的真实伤害,持续[d]秒。(目标最大生命值伤害总上限为施法者2.5倍攻击)【aoe】
|
||||||
--a[float],b[伤害类型],c[float],d[int]
|
--a[float],b[伤害类型],c[float],d[int]
|
||||||
[68] = function(caster, target, args, interval)
|
[68] = function(caster, target, args, interval)
|
||||||
local f1 = args[1]
|
local f1 = args[1]
|
||||||
local dt = args[2]
|
local dt = args[2]
|
||||||
local f2 = args[3]
|
local f2 = args[3]
|
||||||
local f3 = args[4]
|
local f3 = args[4]
|
||||||
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
|
|
||||||
BattleLogic.WaitForTrigger(interval, function ()
|
BattleLogic.WaitForTrigger(interval, function ()
|
||||||
BattleUtil.CalDamage(caster, target, dt, f1)
|
BattleUtil.CalDamage(caster, target, dt, f1)
|
||||||
local dot = Buff.Create(caster, BuffName.DOT, f3, 1, 0, min(floor(target:GetRoleData(RoleDataName.MaxHp)*f2), floor(caster:GetRoleData(RoleDataName.Attack)*2.5)), 1)
|
local dot = Buff.Create(caster, BuffName.DOT, f3, 1, 0, min(floor(target:GetRoleData(RoleDataName.MaxHp)*f2), floor(caster:GetRoleData(RoleDataName.Attack)*2.5)), 1)
|
||||||
|
@ -1247,13 +1244,12 @@ local effectList = {
|
||||||
target.data:SubValue(RoleDataName.Hp, hp)
|
target.data:SubValue(RoleDataName.Hp, hp)
|
||||||
end)
|
end)
|
||||||
end,
|
end,
|
||||||
--造成[a]%的[b]伤害,每损失[c]%的生命,增加本技能[d]%的伤害。
|
--造成[a]%的[b]伤害,每损失[c]%的生命,增加本技能[d]%的伤害。【aoe】
|
||||||
--a[float],b[伤害类型],c[float],d[float]
|
--a[float],b[伤害类型],c[float],d[float]
|
||||||
[70] = function(caster, target, args, interval)
|
[70] = function(caster, target, args, interval)
|
||||||
local f1 = args[1]
|
local f1 = args[1]
|
||||||
local dt = args[2]
|
local dt = args[2]
|
||||||
local f2 = args[3]
|
local f2 = args[3]
|
||||||
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
|
|
||||||
BattleLogic.WaitForTrigger(interval, function ()
|
BattleLogic.WaitForTrigger(interval, function ()
|
||||||
local factor = 1 - BattleUtil.GetHPPencent(caster)
|
local factor = 1 - BattleUtil.GetHPPencent(caster)
|
||||||
local OnPassiveDamaging = function(damagingFunc, defRole, damage)
|
local OnPassiveDamaging = function(damagingFunc, defRole, damage)
|
||||||
|
@ -1306,12 +1302,11 @@ local effectList = {
|
||||||
buffRandomAction(f3, target, Buff.Create(caster, BuffName.DOT, f2, 1, d1, dt, f1))
|
buffRandomAction(f3, target, Buff.Create(caster, BuffName.DOT, f2, 1, d1, dt, f1))
|
||||||
end)
|
end)
|
||||||
end,
|
end,
|
||||||
--造成[a]%的[b]伤害,立即结算目标身上所有dot的剩余伤害。
|
--造成[a]%的[b]伤害,立即结算目标身上所有dot的剩余伤害。【aoe】
|
||||||
--a[float],b[伤害类型]
|
--a[float],b[伤害类型]
|
||||||
[73] = function(caster, target, args, interval)
|
[73] = function(caster, target, args, interval)
|
||||||
local f1 = args[1]
|
local f1 = args[1]
|
||||||
local dt = args[2]
|
local dt = args[2]
|
||||||
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
|
|
||||||
BattleLogic.WaitForTrigger(interval, function ()
|
BattleLogic.WaitForTrigger(interval, function ()
|
||||||
BattleUtil.CalDamage(caster, target, dt, f1)
|
BattleUtil.CalDamage(caster, target, dt, f1)
|
||||||
BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff)
|
BattleLogic.BuffMgr:HasBuff(target, BuffName.DOT, function (buff)
|
||||||
|
@ -1752,7 +1747,7 @@ local effectList = {
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
end,
|
end,
|
||||||
--造成[a]%的[b]伤害,若暴击,[c]概率驱散[d]个(0表示所有)[e]状态。
|
--造成[a]%的[b]伤害,若暴击,[c]概率驱散[d]个(0表示所有)[e]状态。【aoe】
|
||||||
--a[float],b[伤害类型],c[float],d[int],e[状态类型]
|
--a[float],b[伤害类型],c[float],d[int],e[状态类型]
|
||||||
[93] = function(caster, target, args, interval)
|
[93] = function(caster, target, args, interval)
|
||||||
local f1 = args[1]
|
local f1 = args[1]
|
||||||
|
@ -1760,7 +1755,6 @@ local effectList = {
|
||||||
local f2 = args[3]
|
local f2 = args[3]
|
||||||
local i1 = args[4]
|
local i1 = args[4]
|
||||||
local ct = args[5]
|
local ct = args[5]
|
||||||
caster.Event:DispatchEvent(BattleEventName.RoleViewBullet, interval, target)
|
|
||||||
BattleLogic.WaitForTrigger(interval, function ()
|
BattleLogic.WaitForTrigger(interval, function ()
|
||||||
local dmg, crit = BattleUtil.CalDamage(caster, target, dt, f1)
|
local dmg, crit = BattleUtil.CalDamage(caster, target, dt, f1)
|
||||||
if crit then
|
if crit then
|
||||||
|
|
|
@ -1281,7 +1281,6 @@ local passivityList = {
|
||||||
end
|
end
|
||||||
role.Event:AddEvent(BattleEventName.RoleKill, OnKill)
|
role.Event:AddEvent(BattleEventName.RoleKill, OnKill)
|
||||||
end,
|
end,
|
||||||
|
|
||||||
--受击后,[a]对攻击者造成自身[c]%的[d]伤害。
|
--受击后,[a]对攻击者造成自身[c]%的[d]伤害。
|
||||||
--a[float],c[float],d[伤害类型]
|
--a[float],c[float],d[伤害类型]
|
||||||
[71] = function(role, args)
|
[71] = function(role, args)
|
||||||
|
@ -1305,5 +1304,18 @@ local passivityList = {
|
||||||
end
|
end
|
||||||
role.Event:AddEvent(BattleEventName.RoleBeHit, OnBeHit)
|
role.Event:AddEvent(BattleEventName.RoleBeHit, OnBeHit)
|
||||||
end,
|
end,
|
||||||
|
--造成的伤害暴击时,有[a]概率在计算伤害时额外计算[b]的暴击伤害。
|
||||||
|
--a[float],b[float]
|
||||||
|
[72] = function(role, args)
|
||||||
|
local f1 = args[1]
|
||||||
|
local f2 = args[2]
|
||||||
|
|
||||||
|
local OnPassiveCriting = function(crit)
|
||||||
|
BattleUtil.RandomAction(f1, function ()
|
||||||
|
crit(role:GetRoleData(RoleDataName.CritDamageFactor)+f2)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
role.Event:AddEvent(BattleEventName.PassiveCriting, OnPassiveCriting)
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
return passivityList
|
return passivityList
|
|
@ -28,7 +28,7 @@ local record
|
||||||
local optionRecord
|
local optionRecord
|
||||||
|
|
||||||
--是否开启战斗日志
|
--是否开启战斗日志
|
||||||
BattleLogic.IsOpenBattleRecord = true
|
BattleLogic.IsOpenBattleRecord = false
|
||||||
--逻辑帧频
|
--逻辑帧频
|
||||||
BattleLogic.GameFrameRate = 30
|
BattleLogic.GameFrameRate = 30
|
||||||
BattleLogic.GameDeltaTime = 1 / BattleLogic.GameFrameRate
|
BattleLogic.GameDeltaTime = 1 / BattleLogic.GameFrameRate
|
||||||
|
|
|
@ -99,118 +99,9 @@ public class MapLogic {
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
public void initMap(MapManager mapManager, User user) throws Exception {
|
|
||||||
Map<Integer, SCMap> scMap =SCMap.sCMap.get(mapManager.getCurMapId());
|
|
||||||
Map<Integer, Cell> newMap = new HashMap<>();
|
|
||||||
Random random = new Random();
|
|
||||||
StoreManager storeManager = user.getStoreManager();
|
|
||||||
boolean alreadHadYunShop = StoreLogic.checkContainsStore(user,StoreType.CLOUD_STORE,true);
|
|
||||||
mapManager.checkSuddenlyBoss();
|
|
||||||
int suddenlyBoss = mapManager.getSuddenlyBoss();
|
|
||||||
boolean canFindsuddenlyBoss = System.currentTimeMillis()> (mapManager.getSuddenlyBossStartTime() + STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getIncidentalBossCd())*1000;
|
|
||||||
|
|
||||||
Map<Integer, Map<Integer, Integer>> initRandomPointMap = SEndlessMapConfig.initRandomPointMap;
|
|
||||||
Map<Integer,List<Integer>> endlessRandomPoint = new HashMap<>();
|
|
||||||
for (Map.Entry<Integer, SCMap> entry : scMap.entrySet()) {
|
|
||||||
SCMap scMap1 = entry.getValue();
|
|
||||||
// 必出现的事件点
|
|
||||||
if (scMap1.getIsMustAppear() == 1) {
|
|
||||||
for (int i = 0; i < scMap1.getGroups().length; i++) {
|
|
||||||
int x = scMap1.getGroups()[i][0];
|
|
||||||
int y = scMap1.getGroups()[i][1];
|
|
||||||
int xy = CellUtil.xy2Pos(x, y);
|
|
||||||
MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(scMap1.getEvent());
|
|
||||||
Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId());
|
|
||||||
newMap.put(xy, cellValue);
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 随机出现的事件点
|
public boolean mapPointCanAAppear(MapPointConfig mapPointConfig) {
|
||||||
int randomIndex = random.nextInt(scMap1.getGroups().length);
|
|
||||||
int x = scMap1.getGroups()[randomIndex][0];
|
|
||||||
int y = scMap1.getGroups()[randomIndex][1];
|
|
||||||
int xy = CellUtil.xy2Pos(x, y);
|
|
||||||
MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(scMap1.getEvent());
|
|
||||||
if (mapPointConfig == null) {
|
|
||||||
LOGGER.info("====initMap()====mapPointConfig == null======>{}", scMap1.getEvent());
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (!mapPointCanAAppear(mapPointConfig)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (mapPointConfig.getStyle() == EventType.businessman) {
|
|
||||||
if (alreadHadYunShop) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (mapPointConfig.getStyle() == EventType.suddenlyBoss && (suddenlyBoss != 0 || !canFindsuddenlyBoss) ){
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId());
|
|
||||||
//如果是无尽本
|
|
||||||
if(initRandomPointMap.get(mapManager.getCurMapId())!=null){
|
|
||||||
if(initRandomPointMap.get(mapManager.getCurMapId()).get(mapPointConfig.getId())!=null){
|
|
||||||
if(endlessRandomPoint.get( mapPointConfig.getId())!=null){
|
|
||||||
endlessRandomPoint.get(mapPointConfig.getId()).add(xy);
|
|
||||||
}else{
|
|
||||||
List<Integer> points = new ArrayList<>();
|
|
||||||
points.add(xy);
|
|
||||||
endlessRandomPoint.put(mapPointConfig.getId(),points);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
newMap.put(xy, cellValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//无尽本随机点处理
|
|
||||||
if(endlessRandomPoint.size()>0){
|
|
||||||
for(Map.Entry<Integer,List<Integer>> entry:endlessRandomPoint.entrySet()){
|
|
||||||
int count = initRandomPointMap.get(mapManager.getCurMapId()).get(entry.getKey());
|
|
||||||
List<Integer> points = entry.getValue();
|
|
||||||
Collections.shuffle(points);
|
|
||||||
for(int i = 0 ; i <count;i++){
|
|
||||||
MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(entry.getKey());
|
|
||||||
Cell cellValue = new Cell(points.get(i), mapPointConfig.getInitialEventId(),entry.getKey());
|
|
||||||
LOGGER.info("无尽生成{}的随机点为{},{}",entry.getKey(),CellUtil.pos2XY(points.get(i))[0],CellUtil.pos2XY(points.get(i))[1]);
|
|
||||||
newMap.put(points.get(i), cellValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (user.getPlayerInfoManager().getMapId() == 100) {
|
|
||||||
SGameSetting sGameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
|
||||||
int xy = CellUtil.xy2Pos(sGameSetting.getBornPosition()[0], sGameSetting.getBornPosition()[1]);
|
|
||||||
mapManager.setCurXY(xy);
|
|
||||||
}
|
|
||||||
SChallengeMapConfig challengeMapConfig = STableManager.getConfig(SChallengeMapConfig.class).get(mapManager.getCurMapId());
|
|
||||||
|
|
||||||
Mission mission = new Mission();
|
|
||||||
mission.setMissionId(challengeMapConfig.getMissionId());
|
|
||||||
mission.setMissionStep(0);
|
|
||||||
mission.setTime(0);
|
|
||||||
SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId());
|
|
||||||
int xy = CellUtil.xy2Pos(challengeMapConfig.getPosition()[0], challengeMapConfig.getPosition()[1]);
|
|
||||||
int type = sChallengeConfig.getType();
|
|
||||||
if(type==4){
|
|
||||||
if(mapManager.getEndlessMapInfo().getSeason()!=endlessSeason) {
|
|
||||||
for(Map.Entry<String,Integer> entry:mapManager.getEndlessMapInfo().getEndlessHeroInfo().entrySet()){
|
|
||||||
mapManager.updateEndlessHeroHp(entry.getKey(),10000);
|
|
||||||
}
|
|
||||||
mapManager.updateEndlessLocation(0);
|
|
||||||
}
|
|
||||||
if(mapManager.getEndlessMapInfo().getCurCell()!=0){
|
|
||||||
xy = mapManager.getEndlessMapInfo().getCurCell();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mapManager.setCurXY(xy);
|
|
||||||
mapManager.setMission(mission);
|
|
||||||
mapManager.setMapInfo(newMap);
|
|
||||||
initMapMission(mapManager);
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean mapPointCanAAppear(MapPointConfig mapPointConfig) {
|
|
||||||
int[][] randomProbability = mapPointConfig.getRandomProbability();
|
int[][] randomProbability = mapPointConfig.getRandomProbability();
|
||||||
if (randomProbability == null || randomProbability.length == 0) {
|
if (randomProbability == null || randomProbability.length == 0) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -374,6 +265,9 @@ public class MapLogic {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void initTrialMap(){
|
||||||
|
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 更新事件点
|
* 更新事件点
|
||||||
* optionConfig Id
|
* optionConfig Id
|
||||||
|
@ -783,12 +677,18 @@ public class MapLogic {
|
||||||
mapManager.setTemporaryItems(null);
|
mapManager.setTemporaryItems(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public static AbstractMap curMapType(ISession session) throws Exception {
|
private static int getMapTypeByMapId(int mapId){
|
||||||
User user = UserManager.getUser(session.getUid());
|
int type = SChallengeConfig.sChallengeConfigs.get(mapId).getType();
|
||||||
int curMapId = user.getMapManager().getCurMapId();
|
return type;
|
||||||
int type = SChallengeConfig.sChallengeConfigs.get(curMapId).getType();
|
|
||||||
return MapEnum.getAbstractMap(type);
|
|
||||||
}
|
}
|
||||||
|
public static AbstractMap getAbstractMap(User user){
|
||||||
|
MapManager mapManager = user.getMapManager();
|
||||||
|
return MapEnum.getToAbstractMap(getMapTypeByMapId(mapManager.getCurMapId()));
|
||||||
|
}
|
||||||
|
public static AbstractMap getAbstractMap(int mapId){
|
||||||
|
return MapEnum.getToAbstractMap(getMapTypeByMapId(mapId));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param teamId
|
* @param teamId
|
||||||
|
@ -1615,133 +1515,7 @@ public class MapLogic {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 初始化爬塔副本
|
|
||||||
* @param mapManager
|
|
||||||
* @param user
|
|
||||||
* @return
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public String initTrialMap(MapManager mapManager, User user) throws Exception {
|
|
||||||
|
|
||||||
STrialConfig sTrialConfig = STrialConfig.sTrialConfigMap.get(mapManager.getTower());
|
|
||||||
if(mapManager.getTower()>1&&mapManager.getMapIntoFlag()==0){
|
|
||||||
for(int i = 1 ; i <mapManager.getTower();i++){
|
|
||||||
ItemUtil.drop(user,STrialConfig.sTrialConfigMap.get(i).getReward(),1.0f,1,BIReason.TOWER_SWEEP_REWARD);
|
|
||||||
int type = MathUtils.randomFromWeight(STrialConfig.sTrialConfigMap.get(i).getRandomBossType());
|
|
||||||
if(type == 3){
|
|
||||||
STrialConfig config = STrialConfig.sTrialConfigMap.get(i);
|
|
||||||
int[][][] randomMapPointId = config.getRandomMapPointId();
|
|
||||||
int randomPoint = MathUtils.randomFromWeight(randomMapPointId[type-1]);
|
|
||||||
int initialEventId = MapPointConfig.getScMapEventMap().get(randomPoint).getInitialEventId();
|
|
||||||
mapManager.addTowerUnusedBuffer(i,initialEventId);
|
|
||||||
}
|
|
||||||
if(type == 4){
|
|
||||||
int storeIndex = MathUtils.randomFromWeight(STrialConfig.sTrialConfigMap.get(mapManager.getTower()).getRandomStore());
|
|
||||||
StoreLogic.initOrUpdateOneStore(user,8,storeIndex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (sTrialConfig == null) {
|
|
||||||
LOGGER.info("initTrialMap() uid=>{} sTrialConfig == null =>{} ", user.getId(), mapManager.getTower());
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
SChallengeMapConfig scMapConfig = STableManager.getConfig(SChallengeMapConfig.class).get(sTrialConfig.getMapId());
|
|
||||||
if (scMapConfig == null) {
|
|
||||||
LOGGER.info("initTrialMap() uid=>{} sChallengeConfig == null =>{} ", user.getId(), sTrialConfig.getMapId());
|
|
||||||
return "该地图不存在";
|
|
||||||
}
|
|
||||||
Map<Integer, Cell> newMap = new HashMap<>();
|
|
||||||
Random random = new Random();
|
|
||||||
Map<Integer, SCMap> scMap = SCMap.sCMap.get(sTrialConfig.getMapId());
|
|
||||||
Map<Integer, Cell> cellMap1 = new HashMap<>(sTrialConfig.getMonsterCount()[0]);
|
|
||||||
Map<Integer, Cell> cellMap2 = new HashMap<>(sTrialConfig.getMonsterCount()[1]);
|
|
||||||
|
|
||||||
/* if(mapManager.getTowerStartTime()!=0){
|
|
||||||
mapManager.setCurrTowerTime((TimeUtils.now()-mapManager.getTowerStartTime())/1000);
|
|
||||||
}*/
|
|
||||||
mapManager.setTowerStartTime(TimeUtils.now());
|
|
||||||
|
|
||||||
for (Map.Entry<Integer, SCMap> entry : scMap.entrySet()) {
|
|
||||||
SCMap scMap1 = entry.getValue();
|
|
||||||
// 必出现的事件点
|
|
||||||
if (scMap1.getIsMustAppear() == 1) {
|
|
||||||
for (int i = 0; i < scMap1.getGroups().length; i++) {
|
|
||||||
int x = scMap1.getGroups()[i][0];
|
|
||||||
int y = scMap1.getGroups()[i][1];
|
|
||||||
int xy = CellUtil.xy2Pos(x, y);
|
|
||||||
MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(scMap1.getEvent());
|
|
||||||
Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId());
|
|
||||||
newMap.put(xy, cellValue);
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (scMap1.getEvent() == 1) {
|
|
||||||
int i = 0;
|
|
||||||
while (cellMap1.size() < sTrialConfig.getMonsterCount()[0]) {
|
|
||||||
i++;
|
|
||||||
if (i >= 10000) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
int randomIndex = random.nextInt(scMap1.getGroups().length);
|
|
||||||
int x = scMap1.getGroups()[randomIndex][0];
|
|
||||||
int y = scMap1.getGroups()[randomIndex][1];
|
|
||||||
int xy = CellUtil.xy2Pos(x, y);
|
|
||||||
MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(sTrialConfig.getRandomMonsterType()[0][1]);
|
|
||||||
if (mapPointConfig == null) {
|
|
||||||
LOGGER.info("====initTrialMap()====mapPointConfig == null======>{}", scMap1.getEvent());
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId());
|
|
||||||
cellMap1.put(xy, cellValue);
|
|
||||||
}
|
|
||||||
} else if (scMap1.getEvent() == 2) {
|
|
||||||
int i = 0;
|
|
||||||
while (cellMap2.size() < sTrialConfig.getMonsterCount()[1]) {
|
|
||||||
i++;
|
|
||||||
if (i >= 10000) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
int randomIndex = random.nextInt(scMap1.getGroups().length);
|
|
||||||
int x = scMap1.getGroups()[randomIndex][0];
|
|
||||||
int y = scMap1.getGroups()[randomIndex][1];
|
|
||||||
int xy = CellUtil.xy2Pos(x, y);
|
|
||||||
MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(sTrialConfig.getRandomMonsterType()[1][1]);
|
|
||||||
if (mapPointConfig == null) {
|
|
||||||
LOGGER.info("====initTrialMap()====mapPointConfig == null======>{}", scMap1.getEvent());
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId());
|
|
||||||
cellMap2.put(xy, cellValue);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// 随机出现的事件点
|
|
||||||
int randomIndex = random.nextInt(scMap1.getGroups().length);
|
|
||||||
int x = scMap1.getGroups()[randomIndex][0];
|
|
||||||
int y = scMap1.getGroups()[randomIndex][1];
|
|
||||||
int xy = CellUtil.xy2Pos(x, y);
|
|
||||||
MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(scMap1.getEvent());
|
|
||||||
if (mapPointConfig == null) {
|
|
||||||
LOGGER.info("====initTrialMap()====mapPointConfig == null======>{}", scMap1.getEvent());
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId());
|
|
||||||
newMap.put(xy, cellValue);
|
|
||||||
}
|
|
||||||
newMap.putAll(cellMap1);
|
|
||||||
newMap.putAll(cellMap2);
|
|
||||||
}
|
|
||||||
SChallengeMapConfig challengeMapConfig = STableManager.getConfig(SChallengeMapConfig.class).get(sTrialConfig.getMapId());
|
|
||||||
int xy = CellUtil.xy2Pos(challengeMapConfig.getPosition()[0], challengeMapConfig.getPosition()[1]);
|
|
||||||
mapManager.setCurXY(xy);
|
|
||||||
mapManager.setMapInfo(newMap);
|
|
||||||
mapManager.setEssenceValue(0);
|
|
||||||
// mapManager.setHeroAllAttributeMap(mapManager.getHeroAllAttributeMap());
|
|
||||||
if(mapManager.getTowerUnusedBuffer()==null){
|
|
||||||
mapManager.setTowerUnusedBuffer(new HashMap<>());
|
|
||||||
}
|
|
||||||
return "";
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 召唤首领
|
* 召唤首领
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package com.ljsd.jieling.handler.map.behavior;
|
package com.ljsd.jieling.handler.map.behavior;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.handler.map.mapType.AbstractMap;
|
||||||
|
import com.ljsd.jieling.handler.map.mapType.MapEnum;
|
||||||
import config.SChallengeConfig;
|
import config.SChallengeConfig;
|
||||||
import config.STrialConfig;
|
import config.STrialConfig;
|
||||||
import com.ljsd.jieling.db.redis.RedisKey;
|
import com.ljsd.jieling.db.redis.RedisKey;
|
||||||
|
@ -57,7 +59,7 @@ public class FourtyTwoBehavior extends BaseBehavior {
|
||||||
mapManager.setStartExporeTime(0);
|
mapManager.setStartExporeTime(0);
|
||||||
mapManager.setMapIntoFlag(2);
|
mapManager.setMapIntoFlag(2);
|
||||||
|
|
||||||
MapLogic.getInstance().initTrialMap(mapManager, user);
|
MapLogic.getAbstractMap(user).initMap(mapManager, user);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,8 @@ package com.ljsd.jieling.handler.map.behavior;
|
||||||
|
|
||||||
import com.ljsd.jieling.handler.map.EventType;
|
import com.ljsd.jieling.handler.map.EventType;
|
||||||
import com.ljsd.jieling.handler.map.MapLogic;
|
import com.ljsd.jieling.handler.map.MapLogic;
|
||||||
|
import com.ljsd.jieling.handler.map.mapType.MapEnum;
|
||||||
|
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.protocols.MapInfoProto;
|
import com.ljsd.jieling.protocols.MapInfoProto;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
@ -18,7 +20,7 @@ public class JumpBehavior extends BaseBehavior {
|
||||||
if (behaviorTypeValues[0][0] != 0) {
|
if (behaviorTypeValues[0][0] != 0) {
|
||||||
user.getMapManager().setCurMapId(behaviorTypeValues[0][0]);
|
user.getMapManager().setCurMapId(behaviorTypeValues[0][0]);
|
||||||
user.getPlayerInfoManager().setMapId(behaviorTypeValues[0][0]);
|
user.getPlayerInfoManager().setMapId(behaviorTypeValues[0][0]);
|
||||||
MapLogic.getInstance().initMap(user.getMapManager(), user);
|
MapLogic.getAbstractMap(user).initMap(user.getMapManager(), user);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
MapLogic.getInstance().resetMapInfo(user, true);
|
MapLogic.getInstance().resetMapInfo(user, true);
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.ljsd.jieling.exception.ErrorCode;
|
||||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||||
import com.ljsd.jieling.handler.BaseHandler;
|
import com.ljsd.jieling.handler.BaseHandler;
|
||||||
import com.ljsd.jieling.handler.map.MapLogic;
|
import com.ljsd.jieling.handler.map.MapLogic;
|
||||||
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.protocols.FightInfoProto;
|
import com.ljsd.jieling.protocols.FightInfoProto;
|
||||||
|
@ -31,7 +32,7 @@ public class FightEndRequestHandler extends BaseHandler {
|
||||||
}else if(type == 2){
|
}else if(type == 2){
|
||||||
int dropout = fightEndRequest.getDropout();
|
int dropout = fightEndRequest.getDropout();
|
||||||
FightInfoProto.FightEndResponse.Builder builder = FightInfoProto.FightEndResponse.newBuilder();
|
FightInfoProto.FightEndResponse.Builder builder = FightInfoProto.FightEndResponse.newBuilder();
|
||||||
MapLogic.curMapType(iSession).endFight(iSession.getUid(), frames, builder,dropout);
|
MapLogic.getAbstractMap(UserManager.getUser(iSession.getUid())).endFight(iSession.getUid(), frames, builder,dropout);
|
||||||
MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.FIGHT_END_RESPONSE_VALUE,builder.build(),true );
|
MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.FIGHT_END_RESPONSE_VALUE,builder.build(),true );
|
||||||
}else if(type == 3){
|
}else if(type == 3){
|
||||||
MapLogic.getInstance().endSuddlenlyFight(iSession, frames, MessageTypeProto.MessageType.FIGHT_END_RESPONSE);
|
MapLogic.getInstance().endSuddlenlyFight(iSession, frames, MessageTypeProto.MessageType.FIGHT_END_RESPONSE);
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.ljsd.jieling.handler.BaseHandler;
|
||||||
import com.ljsd.jieling.handler.map.MapLogic;
|
import com.ljsd.jieling.handler.map.MapLogic;
|
||||||
import com.ljsd.jieling.handler.map.mapType.IMap;
|
import com.ljsd.jieling.handler.map.mapType.IMap;
|
||||||
import com.ljsd.jieling.handler.map.mapType.MapEnum;
|
import com.ljsd.jieling.handler.map.mapType.MapEnum;
|
||||||
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.protocols.MapInfoProto;
|
import com.ljsd.jieling.protocols.MapInfoProto;
|
||||||
|
@ -28,7 +29,7 @@ public class MapEnterRequestHandler extends BaseHandler{
|
||||||
int teamId = mapEnterRequest.getTeamId();
|
int teamId = mapEnterRequest.getTeamId();
|
||||||
// MapLogic.getInstance().enterMap();
|
// MapLogic.getInstance().enterMap();
|
||||||
MapInfoProto.MapEnterResponse.Builder builder = MapInfoProto.MapEnterResponse.newBuilder();
|
MapInfoProto.MapEnterResponse.Builder builder = MapInfoProto.MapEnterResponse.newBuilder();
|
||||||
MapEnum.getAbstractMap(SChallengeConfig.sChallengeConfigs.get(mapEnterRequest.getMapId()).getType()).enterMap(iSession.getUid(), mapEnterRequest.getMapId(), teamId,builder);
|
MapLogic.getAbstractMap(mapEnterRequest.getMapId()).enterMap(iSession.getUid(), mapEnterRequest.getMapId(), teamId,builder);
|
||||||
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.MAP_ENTER_RESPONSE.getNumber(), builder.build(), true);
|
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.MAP_ENTER_RESPONSE.getNumber(), builder.build(), true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ public class MapFastFightRequestHandler extends BaseHandler {
|
||||||
@Override
|
@Override
|
||||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||||
FightInfoProto.FastFightResponse.Builder builder = FightInfoProto.FastFightResponse.newBuilder();
|
FightInfoProto.FastFightResponse.Builder builder = FightInfoProto.FastFightResponse.newBuilder();
|
||||||
MapLogic.curMapType(iSession).fastFight(iSession.getUid(), builder);
|
MapLogic.getAbstractMap(UserManager.getUser(iSession.getUid())).fastFight(iSession.getUid(), builder);
|
||||||
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.MAP_FAST_FIGHT_RESPONSE.getNumber(), builder.build(), true);
|
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.MAP_FAST_FIGHT_RESPONSE.getNumber(), builder.build(), true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,8 +26,7 @@ public class MapOutRequestHandler extends BaseHandler{
|
||||||
MapInfoProto.MapOutRequest mapOutRequest = MapInfoProto.MapOutRequest.parseFrom(bytes);
|
MapInfoProto.MapOutRequest mapOutRequest = MapInfoProto.MapOutRequest.parseFrom(bytes);
|
||||||
int outType = mapOutRequest.getOutType();
|
int outType = mapOutRequest.getOutType();
|
||||||
int curXY = mapOutRequest.getCurXY();
|
int curXY = mapOutRequest.getCurXY();
|
||||||
int curMapId = UserManager.getUser(iSession.getUid()).getMapManager().getCurMapId();
|
AbstractMap abstractMap = MapLogic.getAbstractMap(UserManager.getUser(iSession.getUid()));
|
||||||
AbstractMap abstractMap = MapEnum.getAbstractMap(SChallengeConfig.sChallengeConfigs.get(curMapId).getType());
|
|
||||||
MapInfoProto.MapOutResponse.Builder builder = MapInfoProto.MapOutResponse.newBuilder();
|
MapInfoProto.MapOutResponse.Builder builder = MapInfoProto.MapOutResponse.newBuilder();
|
||||||
abstractMap.outMap(iSession.getUid(),outType,curXY,builder);
|
abstractMap.outMap(iSession.getUid(),outType,curXY,builder);
|
||||||
MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.MAP_OUT_RESPONSE_VALUE,builder.build());
|
MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.MAP_OUT_RESPONSE_VALUE,builder.build());
|
||||||
|
|
|
@ -70,7 +70,7 @@ public class StartFightRequestHandler extends BaseHandler<FightInfoProto.FightSt
|
||||||
// MapLogic.getInstance().startLevelDifficultyFight(iSession,fightId,teamId,type, MessageTypeProto.MessageType.FIGHT_START_RESPONSE);
|
// MapLogic.getInstance().startLevelDifficultyFight(iSession,fightId,teamId,type, MessageTypeProto.MessageType.FIGHT_START_RESPONSE);
|
||||||
}else if(type == 2){
|
}else if(type == 2){
|
||||||
FightInfoProto.FightStartResponse.Builder responseBuilder = FightInfoProto.FightStartResponse.newBuilder();
|
FightInfoProto.FightStartResponse.Builder responseBuilder = FightInfoProto.FightStartResponse.newBuilder();
|
||||||
MapLogic.curMapType(iSession).startFight(iSession.getUid(),responseBuilder);
|
MapLogic.getAbstractMap(UserManager.getUser(iSession.getUid())).startFight(iSession.getUid(),responseBuilder);
|
||||||
MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.FIGHT_START_RESPONSE_VALUE,responseBuilder.build(),true);
|
MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.FIGHT_START_RESPONSE_VALUE,responseBuilder.build(),true);
|
||||||
}else if(type == 3){
|
}else if(type == 3){
|
||||||
MapLogic.getInstance().startSuddlenlyFight(iSession,teamId, MessageTypeProto.MessageType.FIGHT_START_RESPONSE);
|
MapLogic.getInstance().startSuddlenlyFight(iSession,teamId, MessageTypeProto.MessageType.FIGHT_START_RESPONSE);
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.ljsd.jieling.handler.map.mapType;
|
||||||
|
|
||||||
|
|
||||||
import com.googlecode.protobuf.format.JsonFormat;
|
import com.googlecode.protobuf.format.JsonFormat;
|
||||||
|
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
|
||||||
import com.ljsd.jieling.config.clazzStaticCfg.MapStaticConfig;
|
import com.ljsd.jieling.config.clazzStaticCfg.MapStaticConfig;
|
||||||
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.db.redis.RedisUtil;
|
||||||
|
@ -14,9 +15,11 @@ import com.ljsd.jieling.handler.map.*;
|
||||||
|
|
||||||
import com.ljsd.jieling.handler.map.behavior.BaseBehavior;
|
import com.ljsd.jieling.handler.map.behavior.BaseBehavior;
|
||||||
import com.ljsd.jieling.handler.map.behavior.BehaviorUtil;
|
import com.ljsd.jieling.handler.map.behavior.BehaviorUtil;
|
||||||
|
import com.ljsd.jieling.handler.mission.Mission;
|
||||||
import com.ljsd.jieling.logic.activity.event.Poster;
|
import com.ljsd.jieling.logic.activity.event.Poster;
|
||||||
import com.ljsd.jieling.logic.activity.event.StoryEvent;
|
import com.ljsd.jieling.logic.activity.event.StoryEvent;
|
||||||
import com.ljsd.jieling.logic.dao.Hero;
|
import com.ljsd.jieling.logic.dao.Hero;
|
||||||
|
import com.ljsd.jieling.logic.dao.StoreManager;
|
||||||
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
|
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
|
||||||
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;
|
||||||
|
@ -25,6 +28,8 @@ import com.ljsd.jieling.logic.fight.FightType;
|
||||||
import com.ljsd.jieling.logic.hero.HeroAttributeEnum;
|
import com.ljsd.jieling.logic.hero.HeroAttributeEnum;
|
||||||
import com.ljsd.jieling.logic.hero.HeroLogic;
|
import com.ljsd.jieling.logic.hero.HeroLogic;
|
||||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||||
|
import com.ljsd.jieling.logic.store.StoreLogic;
|
||||||
|
import com.ljsd.jieling.logic.store.StoreType;
|
||||||
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.FightInfoProto;
|
import com.ljsd.jieling.protocols.FightInfoProto;
|
||||||
|
@ -49,9 +54,9 @@ import java.util.*;
|
||||||
* @discribe
|
* @discribe
|
||||||
*/
|
*/
|
||||||
public abstract class AbstractMap implements IMap {
|
public abstract class AbstractMap implements IMap {
|
||||||
|
abstract int getType();
|
||||||
static final Logger LOGGER = LoggerFactory.getLogger(AbstractMap.class);
|
static final Logger LOGGER = LoggerFactory.getLogger(AbstractMap.class);
|
||||||
private Map<Integer, BaseBehavior> baseBehaviorMap = new HashMap<>();
|
private Map<Integer, BaseBehavior> baseBehaviorMap = new HashMap<>();
|
||||||
int type;
|
|
||||||
public void init(ConfigurableApplicationContext configurableApplicationContext) {
|
public void init(ConfigurableApplicationContext configurableApplicationContext) {
|
||||||
Map<String, BaseBehavior> beansOfType = configurableApplicationContext.getBeansOfType(BaseBehavior.class);
|
Map<String, BaseBehavior> beansOfType = configurableApplicationContext.getBeansOfType(BaseBehavior.class);
|
||||||
for (BaseBehavior baseBehavior : beansOfType.values()) {
|
for (BaseBehavior baseBehavior : beansOfType.values()) {
|
||||||
|
@ -155,9 +160,9 @@ public abstract class AbstractMap implements IMap {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public AbstractMap(int type){
|
// public AbstractMap(int type){
|
||||||
this.type = type;
|
// this.type = type;
|
||||||
}
|
// }
|
||||||
|
|
||||||
public void enterNewMap(User user,int mapId,int teamId,MapInfoProto.MapEnterResponse.Builder mapEnterResponse)throws Exception{
|
public void enterNewMap(User user,int mapId,int teamId,MapInfoProto.MapEnterResponse.Builder mapEnterResponse)throws Exception{
|
||||||
MapManager mapManager = user.getMapManager();
|
MapManager mapManager = user.getMapManager();
|
||||||
|
@ -548,4 +553,118 @@ public abstract class AbstractMap implements IMap {
|
||||||
return groupId;
|
return groupId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void initMap(MapManager mapManager, User user) throws Exception {
|
||||||
|
Map<Integer, SCMap> scMap =SCMap.sCMap.get(mapManager.getCurMapId());
|
||||||
|
Map<Integer, Cell> newMap = new HashMap<>();
|
||||||
|
Random random = new Random();
|
||||||
|
StoreManager storeManager = user.getStoreManager();
|
||||||
|
boolean alreadHadYunShop = StoreLogic.checkContainsStore(user, StoreType.CLOUD_STORE,true);
|
||||||
|
mapManager.checkSuddenlyBoss();
|
||||||
|
int suddenlyBoss = mapManager.getSuddenlyBoss();
|
||||||
|
boolean canFindsuddenlyBoss = System.currentTimeMillis()> (mapManager.getSuddenlyBossStartTime() + STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getIncidentalBossCd())*1000;
|
||||||
|
|
||||||
|
Map<Integer, Map<Integer, Integer>> initRandomPointMap = SEndlessMapConfig.initRandomPointMap;
|
||||||
|
Map<Integer,List<Integer>> endlessRandomPoint = new HashMap<>();
|
||||||
|
for (Map.Entry<Integer, SCMap> entry : scMap.entrySet()) {
|
||||||
|
SCMap scMap1 = entry.getValue();
|
||||||
|
// 必出现的事件点
|
||||||
|
if (scMap1.getIsMustAppear() == 1) {
|
||||||
|
mustAppear(scMap1,newMap);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 随机出现的事件点
|
||||||
|
int randomIndex = random.nextInt(scMap1.getGroups().length);
|
||||||
|
int x = scMap1.getGroups()[randomIndex][0];
|
||||||
|
int y = scMap1.getGroups()[randomIndex][1];
|
||||||
|
int xy = CellUtil.xy2Pos(x, y);
|
||||||
|
MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(scMap1.getEvent());
|
||||||
|
if (mapPointConfig == null) {
|
||||||
|
LOGGER.info("====initMap()====mapPointConfig == null======>{}", scMap1.getEvent());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!MapLogic.getInstance().mapPointCanAAppear(mapPointConfig)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (mapPointConfig.getStyle() == EventType.businessman) {
|
||||||
|
if (alreadHadYunShop) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mapPointConfig.getStyle() == EventType.suddenlyBoss && (suddenlyBoss != 0 || !canFindsuddenlyBoss) ){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId());
|
||||||
|
//如果是无尽本
|
||||||
|
if(initRandomPointMap.get(mapManager.getCurMapId())!=null){
|
||||||
|
if(initRandomPointMap.get(mapManager.getCurMapId()).get(mapPointConfig.getId())!=null){
|
||||||
|
if(endlessRandomPoint.get( mapPointConfig.getId())!=null){
|
||||||
|
endlessRandomPoint.get(mapPointConfig.getId()).add(xy);
|
||||||
|
}else{
|
||||||
|
List<Integer> points = new ArrayList<>();
|
||||||
|
points.add(xy);
|
||||||
|
endlessRandomPoint.put(mapPointConfig.getId(),points);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
newMap.put(xy, cellValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//无尽本随机点处理
|
||||||
|
if(endlessRandomPoint.size()>0){
|
||||||
|
for(Map.Entry<Integer,List<Integer>> entry:endlessRandomPoint.entrySet()){
|
||||||
|
int count = initRandomPointMap.get(mapManager.getCurMapId()).get(entry.getKey());
|
||||||
|
List<Integer> points = entry.getValue();
|
||||||
|
Collections.shuffle(points);
|
||||||
|
for(int i = 0 ; i <count;i++){
|
||||||
|
MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(entry.getKey());
|
||||||
|
Cell cellValue = new Cell(points.get(i), mapPointConfig.getInitialEventId(),entry.getKey());
|
||||||
|
LOGGER.info("无尽生成{}的随机点为{},{}",entry.getKey(),CellUtil.pos2XY(points.get(i))[0],CellUtil.pos2XY(points.get(i))[1]);
|
||||||
|
newMap.put(points.get(i), cellValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (user.getPlayerInfoManager().getMapId() == 100) {
|
||||||
|
SGameSetting sGameSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting();
|
||||||
|
int xy = CellUtil.xy2Pos(sGameSetting.getBornPosition()[0], sGameSetting.getBornPosition()[1]);
|
||||||
|
mapManager.setCurXY(xy);
|
||||||
|
}
|
||||||
|
SChallengeMapConfig challengeMapConfig = STableManager.getConfig(SChallengeMapConfig.class).get(mapManager.getCurMapId());
|
||||||
|
|
||||||
|
Mission mission = new Mission();
|
||||||
|
mission.setMissionId(challengeMapConfig.getMissionId());
|
||||||
|
mission.setMissionStep(0);
|
||||||
|
mission.setTime(0);
|
||||||
|
SChallengeConfig sChallengeConfig = SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId());
|
||||||
|
int xy = CellUtil.xy2Pos(challengeMapConfig.getPosition()[0], challengeMapConfig.getPosition()[1]);
|
||||||
|
int type = sChallengeConfig.getType();
|
||||||
|
if(type==4){
|
||||||
|
if(mapManager.getEndlessMapInfo().getSeason()!=endlessSeason) {
|
||||||
|
for(Map.Entry<String,Integer> entry:mapManager.getEndlessMapInfo().getEndlessHeroInfo().entrySet()){
|
||||||
|
mapManager.updateEndlessHeroHp(entry.getKey(),10000);
|
||||||
|
}
|
||||||
|
mapManager.updateEndlessLocation(0);
|
||||||
|
}
|
||||||
|
if(mapManager.getEndlessMapInfo().getCurCell()!=0){
|
||||||
|
xy = mapManager.getEndlessMapInfo().getCurCell();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mapManager.setCurXY(xy);
|
||||||
|
mapManager.setMission(mission);
|
||||||
|
mapManager.setMapInfo(newMap);
|
||||||
|
MapLogic.getInstance().initMapMission(mapManager);
|
||||||
|
}
|
||||||
|
public void mustAppear(SCMap scMap,Map<Integer, Cell> newMap){
|
||||||
|
for (int i = 0; i < scMap.getGroups().length; i++) {
|
||||||
|
int x = scMap.getGroups()[i][0];
|
||||||
|
int y = scMap.getGroups()[i][1];
|
||||||
|
int xy = CellUtil.xy2Pos(x, y);
|
||||||
|
MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(scMap.getEvent());
|
||||||
|
Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId());
|
||||||
|
newMap.put(xy, cellValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,6 @@ import java.util.Map;
|
||||||
* @discribe
|
* @discribe
|
||||||
*/
|
*/
|
||||||
public class DifficultMap extends AbstractMap {
|
public class DifficultMap extends AbstractMap {
|
||||||
int type = 3;
|
|
||||||
@Override
|
@Override
|
||||||
public void outMap(int uid,int outType, int curXY,MapInfoProto.MapOutResponse.Builder builder) throws Exception{
|
public void outMap(int uid,int outType, int curXY,MapInfoProto.MapOutResponse.Builder builder) throws Exception{
|
||||||
super.outMap(uid,outType,curXY,builder);
|
super.outMap(uid,outType,curXY,builder);
|
||||||
|
@ -49,6 +48,11 @@ public class DifficultMap extends AbstractMap {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int getType() {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void enterMap(int uid, int mapId, int teamId, MapInfoProto.MapEnterResponse.Builder mapEnterResponse) throws Exception {
|
public void enterMap(int uid, int mapId, int teamId, MapInfoProto.MapEnterResponse.Builder mapEnterResponse) throws Exception {
|
||||||
super.enterMap(uid, mapId, teamId, mapEnterResponse);
|
super.enterMap(uid, mapId, teamId, mapEnterResponse);
|
||||||
|
@ -65,10 +69,7 @@ public class DifficultMap extends AbstractMap {
|
||||||
if(!enough){
|
if(!enough){
|
||||||
throw new ErrorCodeException(ErrorCode.newDefineCode("no ticket"));
|
throw new ErrorCodeException(ErrorCode.newDefineCode("no ticket"));
|
||||||
}
|
}
|
||||||
MapLogic.getInstance().initMap(user.getMapManager(), user);
|
initMap(user.getMapManager(), user);
|
||||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserGameType,type,mapId);
|
KtEventUtils.onKtEvent(user, ParamEventBean.UserGameType,getType(),mapId);
|
||||||
}
|
|
||||||
public DifficultMap(int type){
|
|
||||||
super();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,12 @@ import java.util.*;
|
||||||
* @discribe
|
* @discribe
|
||||||
*/
|
*/
|
||||||
public class EndlessMap extends AbstractMap{
|
public class EndlessMap extends AbstractMap{
|
||||||
int type=4;
|
|
||||||
|
@Override
|
||||||
|
int getType() {
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
|
|
||||||
int endlessMapId = 4001;
|
int endlessMapId = 4001;
|
||||||
@Override
|
@Override
|
||||||
public void enterMap(int uid, int mapId, int teamId, MapInfoProto.MapEnterResponse.Builder mapEnterResponse) throws Exception {
|
public void enterMap(int uid, int mapId, int teamId, MapInfoProto.MapEnterResponse.Builder mapEnterResponse) throws Exception {
|
||||||
|
@ -117,8 +122,8 @@ public class EndlessMap extends AbstractMap{
|
||||||
@Override
|
@Override
|
||||||
public void enterNewMap(User user, int mapId,int teamId, MapInfoProto.MapEnterResponse.Builder mapEnterResponse) throws Exception {
|
public void enterNewMap(User user, int mapId,int teamId, MapInfoProto.MapEnterResponse.Builder mapEnterResponse) throws Exception {
|
||||||
super.enterNewMap(user, mapId,teamId, mapEnterResponse);
|
super.enterNewMap(user, mapId,teamId, mapEnterResponse);
|
||||||
MapLogic.getInstance().initMap(user.getMapManager(), user);
|
initMap(user.getMapManager(), user);
|
||||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserGameType,type,mapId);
|
KtEventUtils.onKtEvent(user, ParamEventBean.UserGameType,getType(),mapId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
package com.ljsd.jieling.handler.map.mapType;
|
package com.ljsd.jieling.handler.map.mapType;
|
||||||
|
|
||||||
|
|
||||||
|
import com.ljsd.jieling.handler.map.MapManager;
|
||||||
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
import config.SChallengeConfig;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
public enum MapEnum {
|
public enum MapEnum {
|
||||||
|
@ -27,11 +33,14 @@ public enum MapEnum {
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
||||||
public AbstractMap getToAbstractMap() {
|
private AbstractMap getToAbstractMap() {
|
||||||
return toAbstractMap;
|
return toAbstractMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static AbstractMap getAbstractMap(int type) {
|
public static AbstractMap getToAbstractMap(int type) {
|
||||||
return MapEnumMap.get(type).getToAbstractMap();
|
return MapEnumMap.get(type).getToAbstractMap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,8 +19,10 @@ import com.ljsd.jieling.util.ItemUtil;
|
||||||
* @discribe
|
* @discribe
|
||||||
*/
|
*/
|
||||||
public class StoryMap extends AbstractMap{
|
public class StoryMap extends AbstractMap{
|
||||||
int type = 1;
|
|
||||||
public StoryMap() {
|
@Override
|
||||||
|
int getType() {
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -45,8 +47,8 @@ public class StoryMap extends AbstractMap{
|
||||||
}else{
|
}else{
|
||||||
mapManager.updatePlayGenMaps(mapId);
|
mapManager.updatePlayGenMaps(mapId);
|
||||||
}
|
}
|
||||||
MapLogic.getInstance().initMap(mapManager, user);
|
initMap(mapManager, user);
|
||||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserGameType,type,mapId);
|
KtEventUtils.onKtEvent(user, ParamEventBean.UserGameType,getType(),mapId);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,17 +14,18 @@ import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean;
|
||||||
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.mission.GameEvent;
|
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||||
|
import com.ljsd.jieling.logic.store.StoreLogic;
|
||||||
import com.ljsd.jieling.protocols.MapInfoProto;
|
import com.ljsd.jieling.protocols.MapInfoProto;
|
||||||
import com.ljsd.jieling.util.CBean2Proto;
|
import com.ljsd.jieling.util.CBean2Proto;
|
||||||
import com.ljsd.jieling.util.ItemUtil;
|
import com.ljsd.jieling.util.ItemUtil;
|
||||||
import com.ljsd.jieling.util.TowerRankUtil;
|
import com.ljsd.jieling.util.TowerRankUtil;
|
||||||
import config.STrialConfig;
|
import config.*;
|
||||||
import config.STrialSetting;
|
import manager.STableManager;
|
||||||
|
import util.CellUtil;
|
||||||
|
import util.MathUtils;
|
||||||
|
import util.TimeUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lvxinran
|
* @author lvxinran
|
||||||
|
@ -32,7 +33,12 @@ import java.util.Map;
|
||||||
* @discribe
|
* @discribe
|
||||||
*/
|
*/
|
||||||
public class TowerMap extends AbstractMap {
|
public class TowerMap extends AbstractMap {
|
||||||
int type = 2;
|
|
||||||
|
@Override
|
||||||
|
int getType() {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void outMap(int uid,int outType, int curXY,MapInfoProto.MapOutResponse.Builder builder) throws Exception{
|
public void outMap(int uid,int outType, int curXY,MapInfoProto.MapOutResponse.Builder builder) throws Exception{
|
||||||
super.outMap(uid,outType,curXY,builder);
|
super.outMap(uid,outType,curXY,builder);
|
||||||
|
@ -82,8 +88,8 @@ public class TowerMap extends AbstractMap {
|
||||||
}
|
}
|
||||||
|
|
||||||
user.getUserMissionManager().onGameEvent(user, GameEvent.COPY_TOWER_TIMES,1);
|
user.getUserMissionManager().onGameEvent(user, GameEvent.COPY_TOWER_TIMES,1);
|
||||||
MapLogic.getInstance().initTrialMap(user.getMapManager(), user);
|
initTrialMap(user.getMapManager(), user);
|
||||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserGameType,type,user.getMapManager().getTower());
|
KtEventUtils.onKtEvent(user, ParamEventBean.UserGameType,getType(),user.getMapManager().getTower());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,4 +111,116 @@ public class TowerMap extends AbstractMap {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
public void initTrialMap(MapManager mapManager, User user) throws Exception {
|
||||||
|
|
||||||
|
STrialConfig sTrialConfig = STrialConfig.sTrialConfigMap.get(mapManager.getTower());
|
||||||
|
if(mapManager.getTower()>1&&mapManager.getMapIntoFlag()==0){
|
||||||
|
for(int i = 1 ; i <mapManager.getTower();i++){
|
||||||
|
ItemUtil.drop(user,STrialConfig.sTrialConfigMap.get(i).getReward(),1.0f,1,BIReason.TOWER_SWEEP_REWARD);
|
||||||
|
int type = MathUtils.randomFromWeight(STrialConfig.sTrialConfigMap.get(i).getRandomBossType());
|
||||||
|
if(type == 3){
|
||||||
|
STrialConfig config = STrialConfig.sTrialConfigMap.get(i);
|
||||||
|
int[][][] randomMapPointId = config.getRandomMapPointId();
|
||||||
|
int randomPoint = MathUtils.randomFromWeight(randomMapPointId[type-1]);
|
||||||
|
int initialEventId = MapPointConfig.getScMapEventMap().get(randomPoint).getInitialEventId();
|
||||||
|
mapManager.addTowerUnusedBuffer(i,initialEventId);
|
||||||
|
}
|
||||||
|
if(type == 4){
|
||||||
|
int storeIndex = MathUtils.randomFromWeight(STrialConfig.sTrialConfigMap.get(mapManager.getTower()).getRandomStore());
|
||||||
|
StoreLogic.initOrUpdateOneStore(user,8,storeIndex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (sTrialConfig == null) {
|
||||||
|
LOGGER.info("initTrialMap() uid=>{} sTrialConfig == null =>{} ", user.getId(), mapManager.getTower());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
SChallengeMapConfig scMapConfig = STableManager.getConfig(SChallengeMapConfig.class).get(sTrialConfig.getMapId());
|
||||||
|
if (scMapConfig == null) {
|
||||||
|
LOGGER.info("initTrialMap() uid=>{} sChallengeConfig == null =>{} ", user.getId(), sTrialConfig.getMapId());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Map<Integer, Cell> newMap = new HashMap<>();
|
||||||
|
Random random = new Random();
|
||||||
|
Map<Integer, SCMap> scMap = SCMap.sCMap.get(sTrialConfig.getMapId());
|
||||||
|
Map<Integer, Cell> cellMap1 = new HashMap<>(sTrialConfig.getMonsterCount()[0]);
|
||||||
|
Map<Integer, Cell> cellMap2 = new HashMap<>(sTrialConfig.getMonsterCount()[1]);
|
||||||
|
|
||||||
|
/* if(mapManager.getTowerStartTime()!=0){
|
||||||
|
mapManager.setCurrTowerTime((TimeUtils.now()-mapManager.getTowerStartTime())/1000);
|
||||||
|
}*/
|
||||||
|
mapManager.setTowerStartTime(TimeUtils.now());
|
||||||
|
|
||||||
|
for (Map.Entry<Integer, SCMap> entry : scMap.entrySet()) {
|
||||||
|
SCMap scMap1 = entry.getValue();
|
||||||
|
// 必出现的事件点
|
||||||
|
if (scMap1.getIsMustAppear() == 1) {
|
||||||
|
mustAppear(scMap1,newMap);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (scMap1.getEvent() == 1) {
|
||||||
|
int i = 0;
|
||||||
|
while (cellMap1.size() < sTrialConfig.getMonsterCount()[0]) {
|
||||||
|
i++;
|
||||||
|
if (i >= 10000) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
int randomIndex = random.nextInt(scMap1.getGroups().length);
|
||||||
|
int x = scMap1.getGroups()[randomIndex][0];
|
||||||
|
int y = scMap1.getGroups()[randomIndex][1];
|
||||||
|
int xy = CellUtil.xy2Pos(x, y);
|
||||||
|
MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(sTrialConfig.getRandomMonsterType()[0][1]);
|
||||||
|
if (mapPointConfig == null) {
|
||||||
|
LOGGER.info("====initTrialMap()====mapPointConfig == null======>{}", scMap1.getEvent());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId());
|
||||||
|
cellMap1.put(xy, cellValue);
|
||||||
|
}
|
||||||
|
} else if (scMap1.getEvent() == 2) {
|
||||||
|
int i = 0;
|
||||||
|
while (cellMap2.size() < sTrialConfig.getMonsterCount()[1]) {
|
||||||
|
i++;
|
||||||
|
if (i >= 10000) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
int randomIndex = random.nextInt(scMap1.getGroups().length);
|
||||||
|
int x = scMap1.getGroups()[randomIndex][0];
|
||||||
|
int y = scMap1.getGroups()[randomIndex][1];
|
||||||
|
int xy = CellUtil.xy2Pos(x, y);
|
||||||
|
MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(sTrialConfig.getRandomMonsterType()[1][1]);
|
||||||
|
if (mapPointConfig == null) {
|
||||||
|
LOGGER.info("====initTrialMap()====mapPointConfig == null======>{}", scMap1.getEvent());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId());
|
||||||
|
cellMap2.put(xy, cellValue);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 随机出现的事件点
|
||||||
|
int randomIndex = random.nextInt(scMap1.getGroups().length);
|
||||||
|
int x = scMap1.getGroups()[randomIndex][0];
|
||||||
|
int y = scMap1.getGroups()[randomIndex][1];
|
||||||
|
int xy = CellUtil.xy2Pos(x, y);
|
||||||
|
MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(scMap1.getEvent());
|
||||||
|
if (mapPointConfig == null) {
|
||||||
|
LOGGER.info("====initTrialMap()====mapPointConfig == null======>{}", scMap1.getEvent());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId());
|
||||||
|
newMap.put(xy, cellValue);
|
||||||
|
}
|
||||||
|
newMap.putAll(cellMap1);
|
||||||
|
newMap.putAll(cellMap2);
|
||||||
|
}
|
||||||
|
SChallengeMapConfig challengeMapConfig = STableManager.getConfig(SChallengeMapConfig.class).get(sTrialConfig.getMapId());
|
||||||
|
int xy = CellUtil.xy2Pos(challengeMapConfig.getPosition()[0], challengeMapConfig.getPosition()[1]);
|
||||||
|
mapManager.setCurXY(xy);
|
||||||
|
mapManager.setMapInfo(newMap);
|
||||||
|
mapManager.setEssenceValue(0);
|
||||||
|
// mapManager.setHeroAllAttributeMap(mapManager.getHeroAllAttributeMap());
|
||||||
|
if(mapManager.getTowerUnusedBuffer()==null){
|
||||||
|
mapManager.setTowerUnusedBuffer(new HashMap<>());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue