48、49行为类型修改

back_recharge
lvxinran 2019-09-04 16:07:13 +08:00
parent 234bddfed8
commit 2c4a2f2218
4 changed files with 56 additions and 40 deletions

View File

@ -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);
}
}
}

View File

@ -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()){

View File

@ -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;
}
}

View File

@ -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;
}
}