package constant import ( ctime "github.com/cherry-game/cherry/extend/time" ) const ( MapCreateMainCityNumber = 10 // 尝试创建主城次数,失败则返回 MapMoveSpeedMin = 1000 // 最小移动速度 MapTileMeetBattleCount = 5 // 单次触发遭遇战的数量 MapLeastStartWarMinite = 1 // 最少宣战时间 MapInitObjectID = 10000 // 初始化对象ID MapCastleSiegeTime = 10 * ctime.MillisecondsPerMinute // 攻城持续时间 MapMaxTileRetreat = 30 // 最大撤退数 MapDefaultStateID = 1 // 默认出生州 MapLeastSiegeWaitTime = 10 * ctime.MillisecondsPerSecond // 最少攻城等待时间 MapLeastSnatchWaitTime = 10 * ctime.MillisecondsPerSecond // 最少掠夺等待时间 MapLeastDiscardWaitTime = 10 * ctime.MillisecondsPerSecond // 最少放弃等待时间 MapLeastOccupyWaitTime = 10 * ctime.MillisecondsPerSecond // 最少占领等待时间 MapLeastBattleWaitTime = 1 * ctime.MillisecondsPerSecond // 最少战斗等待时间 MapMaxBattleWaitTime = 30 * ctime.MillisecondsPerSecond // 最大战斗等待时间,毕竟状态卡死 ) const ( MapMainForceWaitTimePart1 = ctime.MillisecondsPerSecond // 主力出击第一阶段等待时间 MapMainForceWaitTimePart2 = 5 * ctime.MillisecondsPerSecond // 主力出击第二阶段等待时间 MapSiegeSquadWaitTimePart1 = ctime.MillisecondsPerSecond // 拆迁队出击第一阶段等待时间 MapSiegeSquadWaitTimePart2 = 5 * ctime.MillisecondsPerSecond // 拆迁队出击第二阶段等待时间 MapAutoSiegeWaitTimePart3 = ctime.MillisecondsPerSecond // 自动攻城第三阶段等待时间 ) const ( MapAutoSiegeStage_MainForce_WaitTime = ctime.MillisecondsPerSecond // 自动攻城主力出击阶段等待时间 MapAutoSiegeStage_SiegeSquad_WaitTime = 5 * ctime.MillisecondsPerSecond // 自动攻城拆迁队出击阶段等待时间 ) const ( MapTowerWidth_Res int32 = 20 MapTowerHeight_Res int32 = 20 MapTowerWidth_Monster int32 = 20 MapTowerHeight_Monster int32 = 20 MapTowerWidth_Build int32 = 20 MapTowerHeight_Build int32 = 20 MapTowerHeight_Castle int32 = 50 MapTowerWidth_Castle int32 = 50 MapTowerWidth_March int32 = 20 MapTowerHeight_March int32 = 20 ) const ( MapMarkCommand_Min = 0 // 地图标记指令最小值 MapMarkCommand_Max = 6 // 地图标记指令最大值 ) const ( MapWalkableTile = 1 MapMaxPathDistance = 500 // 寻路最大距离 ) func GetStartWarWaitTime(requiredMinites int64) int64 { return max(requiredMinites, MapLeastStartWarMinite) * ctime.MillisecondsPerMinute } func IsWalkableTile(value int32) bool { return value >= MapWalkableTile } var ( evenOffsets = [][2]int32{ // x + 1 {1, 0}, {1, -1}, // x - 1 {-1, 0}, {-1, -1}, // x {0, -1}, {0, 1}, } oddOffsets = [][2]int32{ // x + 1 {1, 0}, {1, 1}, // x - 1 {-1, 0}, {-1, 1}, // x {0, -1}, {0, 1}, } ) func EvenOffsets() [][2]int32 { return evenOffsets } func OddOffsets() [][2]int32 { return oddOffsets } const MapTile_Unknown int32 = 0 const ( MapTile_Start = 1 MapTile_Space int32 = 1 // 空地 MapTile_Hil int32 = 2 // 山 MapTile_Water int32 = 3 // 水 MapTile_End = 100000 ) const ( MapCastle_Start = 100001 MapCastle_Dock1 int32 = 101401 // 码头(横向) MapCastle_Dock2 int32 = 101402 // 码头(纵向) MapCastle_End = 200000 ) const ( MapBuild_Start = 200001 MapBuild_SiegeBase int32 = 200001 // 攻城地基 MapBuild_LeaguePoint int32 = 201001 // 联盟驻地 MapBuild_LeagueCamp int32 = 201003 // 同盟大营 MapBuild_LeagueFlag int32 = 201005 // 联盟旗帜 MapBuild_ArrowTower int32 = 201006 // 箭塔 MapBuild_Barricade int32 = 201007 // 拒马 MapBuild_MainCity int32 = 202001 // 玩家主城 MapBuild_CityBase int32 = 202002 // 玩家地基 MapBuild_Camp int32 = 202003 // 营账 MapBuild_End = 300000 ) const ( MapRes_Start = 300001 MapRes_End = 400000 ) func IsMapTile(configID int32) bool { return configID >= MapTile_Start && configID <= MapTile_End } func IsMapCastle(configID int32) bool { return configID >= MapCastle_Start && configID <= MapCastle_End } func IsMapBuild(configID int32) bool { return configID >= MapBuild_Start && configID <= MapBuild_End } func IsMapRes(configID int32) bool { return configID >= MapRes_Start && configID <= MapRes_End } func IsMapMarkCommandFail(command int32) bool { return command < MapMarkCommand_Min || command > MapMarkCommand_Max } // 是否为可掠夺建筑 func IsSnatchableBuild(configID int32) bool { // 当前只有主城可以掠夺 return configID == MapBuild_MainCity }