48、49行为类型修改
parent
234bddfed8
commit
2c4a2f2218
|
@ -1260,6 +1260,9 @@ public class MapLogic {
|
|||
mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]);
|
||||
}
|
||||
}
|
||||
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4) {
|
||||
endlessRefreshMonster(session,destoryXY);
|
||||
}
|
||||
|
||||
BehaviorUtil.destoryApointXY(user, destoryXY);
|
||||
SMonsterGroup sMonsterGroup = SMonsterGroup.getsMonsterGroupMap().get(groupId);
|
||||
|
@ -1506,42 +1509,7 @@ public class MapLogic {
|
|||
fightEndResponse.build();
|
||||
|
||||
if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){
|
||||
Cell cell = mapManager.getMapInfo().get(triggerXY);
|
||||
MapPointConfig mapPointConfig = MapPointConfig.getScMapEventMap().get(cell.getPointId());
|
||||
if(mapPointConfig.getStyle()==1){
|
||||
Map<Integer, SCMap> map= SCMap.sCMap.get(mapManager.getCurMapId());
|
||||
List<Integer> points = new ArrayList<>();
|
||||
for(Map.Entry<Integer, SCMap> entry:map.entrySet()){
|
||||
if(entry.getValue().getEvent()!=cell.getPointId()){
|
||||
continue;
|
||||
}
|
||||
boolean flagToAddMonster = true;
|
||||
int[][] groups = entry.getValue().getGroups();
|
||||
for(int i = 0;i<groups.length;i++){
|
||||
if(mapManager.getMapInfo().get(CellUtil.xy2Pos(groups[i][0],groups[i][1]))==null){
|
||||
continue;
|
||||
}
|
||||
if(mapManager.getMapInfo().get(CellUtil.xy2Pos(groups[i][0],groups[i][1])).getPointId()!=0){
|
||||
flagToAddMonster = false;
|
||||
}
|
||||
}
|
||||
if(flagToAddMonster){
|
||||
for(int i = 0;i<groups.length;i++){
|
||||
points.add(CellUtil.xy2Pos(groups[i][0], groups[i][1]));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (points.size()>0){
|
||||
//无尽副本随机空地刷新小怪
|
||||
int cellPos = points.get(MathUtils.randomInt(points.size()));
|
||||
Cell addCell = new Cell(cellPos,mapPointConfig.getInitialEventId(),mapPointConfig.getId());
|
||||
LOGGER.info("刷新位置为{},{}",CellUtil.pos2XY(cellPos)[0],CellUtil.pos2XY(cellPos)[1]);
|
||||
mapManager.addOrUpdateCell(cellPos,addCell);
|
||||
MapInfoProto.RefreshMonsterResponse monsterResponse = MapInfoProto.RefreshMonsterResponse.newBuilder().addCell(CBean2Proto.getCell(addCell)).build();
|
||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.ENDLESS_MONSTER_REFRESH_INDICATION_VALUE,monsterResponse,true);
|
||||
}
|
||||
BehaviorUtil.destoryApointXY(user, triggerXY);
|
||||
}
|
||||
endlessRefreshMonster(session,triggerXY);
|
||||
}
|
||||
if (sOptionConfig != null) {
|
||||
int behaviorType = sOptionConfig.getBehaviorType();
|
||||
|
@ -3345,4 +3313,52 @@ public class MapLogic {
|
|||
}
|
||||
updateEndlessSeason(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 无尽小怪打死随机刷新
|
||||
* @param session
|
||||
* @param triggerXY
|
||||
* @throws Exception
|
||||
*/
|
||||
private void endlessRefreshMonster(ISession session,int triggerXY) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
MapManager mapManager = user.getMapManager();
|
||||
Cell cell = mapManager.getMapInfo().get(triggerXY);
|
||||
MapPointConfig mapPointConfig = MapPointConfig.getScMapEventMap().get(cell.getPointId());
|
||||
if(mapPointConfig.getStyle()==1){
|
||||
Map<Integer, SCMap> map= SCMap.sCMap.get(mapManager.getCurMapId());
|
||||
List<Integer> points = new ArrayList<>();
|
||||
for(Map.Entry<Integer, SCMap> entry:map.entrySet()){
|
||||
if(entry.getValue().getEvent()!=cell.getPointId()){
|
||||
continue;
|
||||
}
|
||||
boolean flagToAddMonster = true;
|
||||
int[][] groups = entry.getValue().getGroups();
|
||||
for(int i = 0;i<groups.length;i++){
|
||||
if(mapManager.getMapInfo().get(CellUtil.xy2Pos(groups[i][0],groups[i][1]))==null){
|
||||
continue;
|
||||
}
|
||||
if(mapManager.getMapInfo().get(CellUtil.xy2Pos(groups[i][0],groups[i][1])).getPointId()!=0){
|
||||
flagToAddMonster = false;
|
||||
}
|
||||
}
|
||||
if(flagToAddMonster){
|
||||
for(int i = 0;i<groups.length;i++){
|
||||
points.add(CellUtil.xy2Pos(groups[i][0], groups[i][1]));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (points.size()>0){
|
||||
//无尽副本随机空地刷新小怪
|
||||
int cellPos = points.get(MathUtils.randomInt(points.size()));
|
||||
Cell addCell = new Cell(cellPos,mapPointConfig.getInitialEventId(),mapPointConfig.getId());
|
||||
LOGGER.info("刷新位置为{},{}",CellUtil.pos2XY(cellPos)[0],CellUtil.pos2XY(cellPos)[1]);
|
||||
mapManager.addOrUpdateCell(cellPos,addCell);
|
||||
MapInfoProto.RefreshMonsterResponse monsterResponse = MapInfoProto.RefreshMonsterResponse.newBuilder().addCell(CBean2Proto.getCell(addCell)).build();
|
||||
MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.ENDLESS_MONSTER_REFRESH_INDICATION_VALUE,monsterResponse,true);
|
||||
}
|
||||
BehaviorUtil.destoryApointXY(user, triggerXY);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -433,8 +433,8 @@ public class BehaviorUtil {
|
|||
return monsterTeamList;
|
||||
}
|
||||
|
||||
public static void refreshTimeMonster(User user,int[][] behaviorTypeValues){
|
||||
user.getMapManager().updateEndlessCellTime(user.getMapManager().getCurXY(), (int)(TimeUtils.now()/1000)+behaviorTypeValues[0][1]);
|
||||
public static void refreshTimeMonster(User user,int value){
|
||||
user.getMapManager().updateEndlessCellTime(user.getMapManager().getCurXY(), (int)(TimeUtils.now()/1000)+value);
|
||||
Map<Integer, Integer> cellRefreshTime = user.getMapManager().getEndlessMapInfo().getCellRefreshTime();
|
||||
MapInfoProto.EndlessTimeIndication.Builder indication = MapInfoProto.EndlessTimeIndication.newBuilder();
|
||||
for(Map.Entry<Integer, Integer> entry:cellRefreshTime.entrySet()){
|
||||
|
|
|
@ -34,7 +34,7 @@ public class FourtyEightBehavior extends BaseBehavior{
|
|||
|
||||
@Override
|
||||
public boolean afterFight(User user, int[][] behaviorTypeValues, FightInfoProto.FightEndResponse.Builder fightEndResponse){
|
||||
BehaviorUtil.refreshTimeMonster(user,behaviorTypeValues);
|
||||
BehaviorUtil.refreshTimeMonster(user,behaviorTypeValues[0][1]);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -21,7 +21,7 @@ public class FourtyNineBehavior extends BaseBehavior {
|
|||
|
||||
@Override
|
||||
public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception {
|
||||
BehaviorUtil.refreshTimeMonster(user,behaviorTypeValues);
|
||||
BehaviorUtil.refreshTimeMonster(user,behaviorTypeValues[0][0]);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue