爬塔最后一层时间、爬塔扫荡、退出地图修改
parent
1c7be8d183
commit
dc92619cbe
|
|
@ -16,6 +16,7 @@ public class STrialConfig implements BaseConfig {
|
|||
@Override
|
||||
public void init() throws Exception {
|
||||
sTrialConfigMap = STableManager.getConfig(STrialConfig.class);
|
||||
this.highestTower = sTrialConfigMap.size();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -66,7 +67,10 @@ public class STrialConfig implements BaseConfig {
|
|||
private int eliteEnergy;
|
||||
|
||||
private int[][] randomStore;
|
||||
|
||||
/**
|
||||
* 最高层
|
||||
*/
|
||||
private static int highestTower;
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
|
|
@ -109,4 +113,8 @@ public class STrialConfig implements BaseConfig {
|
|||
}
|
||||
|
||||
public int[][] getRandomStore() { return randomStore;}
|
||||
|
||||
public static int getHighestTower() {
|
||||
return highestTower;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@ public interface BIReason {
|
|||
|
||||
int BOMB_REWARD = 33;//炸弹掉落
|
||||
|
||||
int TOWER_SWEEP_REWARD = 34;//爬塔扫荡奖励
|
||||
|
||||
//道具消耗原因 1000开头
|
||||
int ADVENTURE_UPLEVEL_CONSUME = 1000; //秘境升级
|
||||
|
|
|
|||
|
|
@ -802,7 +802,7 @@ public class MapLogic {
|
|||
* @param messageType
|
||||
* @throws Exception
|
||||
*/
|
||||
public void outMap(ISession session, int mapId, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
public void outMap(ISession session, int mapId,int outType, MessageTypeProto.MessageType messageType) throws Exception {
|
||||
int uid = session.getUid();
|
||||
User user = UserManager.getUser(uid);
|
||||
MapManager mapManager = user.getMapManager();
|
||||
|
|
@ -810,29 +810,31 @@ public class MapLogic {
|
|||
if(challengeConfig.getType()==2){
|
||||
int time = (int)((System.currentTimeMillis()-mapManager.getStartExporeTime())/1000);
|
||||
mapManager.setCurrTowerTime(time);
|
||||
// if(mapManager.getEveryTowerTime()!=null&&mapManager.getEveryTowerTime().get(mapManager.getTower())!=null){
|
||||
// if(mapManager.getEveryTowerTi
|
||||
// me()!=null&&mapManager.getEveryTowerTime().get(mapManager.getTower())!=null){
|
||||
// mapManager.setTowerTimeByTower(mapManager.getTower(),time);
|
||||
// }
|
||||
if(mapManager.getTower()>=1){
|
||||
mapManager.setMapIntoFlag(1);
|
||||
}
|
||||
MapInfoProto.MapOutResponse.Builder builder = MapInfoProto.MapOutResponse.newBuilder();
|
||||
builder.setUseTime(mapManager.getCurrTowerTime());
|
||||
LOGGER.info("当前层使用时间{}"+mapManager.getCurrTowerTime());
|
||||
if(mapManager.getTower()>mapManager.getHighestTower()){
|
||||
mapManager.setHighestTower(mapManager.getTower());
|
||||
|
||||
|
||||
}
|
||||
if(outType == 0||mapManager.getTower()-1==STrialConfig.getHighestTower()){
|
||||
boolean result = onlyLevelMap(user, true);
|
||||
if (!result) {
|
||||
MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "");
|
||||
return;
|
||||
}
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), builder.build(), true);
|
||||
return;
|
||||
|
||||
}
|
||||
boolean result = onlyLevelMap(user, true);
|
||||
if (!result) {
|
||||
MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), "");
|
||||
return;
|
||||
MapInfoProto.MapOutResponse.Builder builder = MapInfoProto.MapOutResponse.newBuilder();
|
||||
builder.setUseTime(mapManager.getCurrTowerTime());
|
||||
LOGGER.info("当前层使用时间{}"+mapManager.getCurrTowerTime());
|
||||
if(mapManager.getTower()>mapManager.getHighestTower()){
|
||||
mapManager.setHighestTower(mapManager.getTower());
|
||||
}
|
||||
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), null, true);
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), builder.build(), true);
|
||||
return;
|
||||
}
|
||||
|
||||
public void whenLogin(User user) throws Exception {
|
||||
|
|
@ -1243,7 +1245,12 @@ public class MapLogic {
|
|||
if (monsterGroupId == mapManager.getSuddenlyBoss()) {
|
||||
mapManager.findSuddenlyBoss(0, 0);
|
||||
}
|
||||
fightEndResponse.setEssenceValue(mapManager.getEssenceValue());
|
||||
// if(mapManager.getBossType()==1)
|
||||
if(mapManager.getTower()==STrialConfig.getHighestTower()&&mapManager.getBossType()!=0){
|
||||
fightEndResponse.setLastTowerTime(mapManager.getCurrTowerTime());
|
||||
}else{
|
||||
fightEndResponse.setLastTowerTime(0);
|
||||
}
|
||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true);
|
||||
}
|
||||
|
||||
|
|
@ -1945,6 +1952,14 @@ public class MapLogic {
|
|||
public String initTrialMap(MapManager mapManager, User user) throws Exception {
|
||||
|
||||
STrialConfig sTrialConfig = STrialConfig.sTrialConfigMap.get(mapManager.getTower());
|
||||
if(mapManager.getTower()>1){
|
||||
for(int i = 1 ; i <mapManager.getTower();i++){
|
||||
int type = MathUtils.randomFromWeight(STrialConfig.sTrialConfigMap.get(i).getRandomMonsterType());
|
||||
if(type==3||type==4){
|
||||
ItemUtil.drop(user,STrialConfig.sTrialConfigMap.get(i).getReward(),1.0f,1,BIReason.TOWER_SWEEP_REWARD);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (sTrialConfig == null) {
|
||||
LOGGER.info("initTrialMap() uid=>{} sTrialConfig == null =>{} ", user.getId(), mapManager.getTower());
|
||||
return "";
|
||||
|
|
@ -2065,10 +2080,12 @@ public class MapLogic {
|
|||
|
||||
type = MathUtils.randomFromWeight(bossType);
|
||||
if(mapManager.getTower()==1){
|
||||
type = 3;
|
||||
type = 2;
|
||||
}else if(mapManager.getTower()==2){
|
||||
type = 4;
|
||||
}
|
||||
|
||||
|
||||
// int amount = 0;
|
||||
// for(int i = 0 ; i <bossType.length;i++){
|
||||
// amount+=bossType[i][1];
|
||||
|
|
@ -2153,15 +2170,15 @@ public class MapLogic {
|
|||
MapManager mapManager = user.getMapManager();
|
||||
STrialSetting setting = STrialSetting.sTrialSetting;
|
||||
int[][] bomb = setting.getBombId();
|
||||
if(mapManager.getEssenceValue()==-1){
|
||||
MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"已经召唤首领,无需使用炸弹");
|
||||
return;
|
||||
}
|
||||
boolean isUse = ItemUtil.itemCost(user,bomb,BIReason.BOMB_CONSUME,mapManager.getCurMapId());
|
||||
if(isUse){
|
||||
MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"无炸弹");
|
||||
return;
|
||||
}
|
||||
if(mapManager.getEssenceValue()==-1){
|
||||
MessageUtil.sendErrorResponse(session,0,messageType.getNumber(),"已经召唤首领,无需使用炸弹");
|
||||
return;
|
||||
}
|
||||
Map<Integer, Cell> mapInfo = mapManager.getMapInfo();
|
||||
Map<Integer,SEventPointConfig> sEventPointConfig = SEventPointConfig.sEventPointConfigMap;
|
||||
Set<Integer> destoryCell = new HashSet<>();
|
||||
|
|
@ -2282,12 +2299,6 @@ public class MapLogic {
|
|||
return "使用错误,当前层不存在buff";
|
||||
}
|
||||
int mapPointId = mapManager.getTowerUnusedBuffer().get(towerLevel);
|
||||
// MapPointConfig mapPointConfig = MapPointConfig.getScMapEventMap().get(mapPointId);
|
||||
// if(mapPointId == null){
|
||||
// return "parm wrong";
|
||||
// }
|
||||
// int initialEventId = mapPointConfig.getInitialEventId();
|
||||
// mapManager.consunmeTowerBuffer(towerLevel);
|
||||
SEventPointConfig sEventPointConfig = SEventPointConfig.sEventPointConfigMap.get(mapPointId);
|
||||
int[] options = sEventPointConfig.getOption();
|
||||
for(int optionTmp : options){
|
||||
|
|
|
|||
|
|
@ -562,4 +562,8 @@ public class MapManager extends MongoBase {
|
|||
everyTowerTime.put(tower,time);
|
||||
}
|
||||
}
|
||||
public void removeBoss(){
|
||||
this.setBossXY(0);
|
||||
this.setBossType(0);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,8 +9,6 @@ import com.ljsd.jieling.logic.dao.root.User;
|
|||
import com.ljsd.jieling.protocols.MapInfoProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Component
|
||||
public class FourtyTwoBehavior extends BaseBehavior{
|
||||
@Override
|
||||
|
|
@ -21,19 +19,15 @@ public class FourtyTwoBehavior extends BaseBehavior{
|
|||
@Override
|
||||
public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception {
|
||||
MapManager mapManager = user.getMapManager();
|
||||
int maxTower = 0;
|
||||
Map<Integer,STrialConfig> sTrialConfig = STrialConfig.sTrialConfigMap;
|
||||
for(Map.Entry<Integer,STrialConfig> entry:sTrialConfig.entrySet()){
|
||||
if(entry.getValue().getId()>maxTower){
|
||||
maxTower = entry.getValue().getId();
|
||||
}
|
||||
}
|
||||
int maxTower = STrialConfig.getHighestTower();
|
||||
SChallengeConfig challengeConfig = SChallengeConfig.sChallengeConfigs.get(user.getMapManager().getCurMapId());
|
||||
if(challengeConfig.getType()==2&&mapManager.getTower()>=maxTower){
|
||||
LOGGER.info("当前层为{},最大层为{}"+mapManager.getTower()+maxTower);
|
||||
mapManager.setTower(mapManager.getTower()+1);
|
||||
LOGGER.info("当前层为{},最大层为{}",mapManager.getTower(),maxTower);
|
||||
return false;
|
||||
}
|
||||
LOGGER.info("当前层为{},进入下一层"+mapManager.getTower());
|
||||
LOGGER.info("当前层为{},进入下一层",mapManager.getTower());
|
||||
mapManager.removeBoss();
|
||||
mapManager.setTower(mapManager.getTower()+1);
|
||||
mapManager.setEssenceValue(0);
|
||||
MapLogic.getInstance().initTrialMap(mapManager, user);
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ public class MapOutRequestHandler extends BaseHandler{
|
|||
byte[] bytes = netData.parseClientProtoNetData();
|
||||
MapInfoProto.MapOutRequest mapOutRequest = MapInfoProto.MapOutRequest.parseFrom(bytes);
|
||||
int mapId = mapOutRequest.getMapId();
|
||||
MapLogic.getInstance().outMap(iSession, mapId,MessageTypeProto.MessageType.MAP_OUT_RESPONSE);
|
||||
int outType = mapOutRequest.getOutType();
|
||||
MapLogic.getInstance().outMap(iSession, mapId,outType,MessageTypeProto.MessageType.MAP_OUT_RESPONSE);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue