| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- package constant
- import (
- "f1-game/internal/enum"
- ctime "github.com/cherry-game/cherry/extend/time"
- )
- const (
- MapCreateMainCityNumber = 10 // 尝试创建主城次数,失败则返回
- MapMoveSpeedMin = 1000 // 最小移动速度
- MapTileMeetBattleCount = 5 // 单次触发遭遇战的数量
- MapLeastStartWarMinite = 1 // 最少宣战时间
- MapInitObjectID = 10000 // 初始化对象ID
- MapCastleSiegeTime = 60 * ctime.MillisecondsPerMinute // 攻城持续时间
- MapLeastCastleSiegeTime = 1 * 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 = 10 * ctime.MillisecondsPerSecond // 主力出击第二阶段等待时间
- MapSiegeSquadWaitTimePart1 = 5 * ctime.MillisecondsPerSecond // 拆迁队出击第一阶段等待时间
- MapSiegeSquadWaitTimePart2 = 60 * 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
- MapTowerWidth_ArmyLine int32 = 20
- MapTowerHeight_ArmyLine 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_SiegeCamp int32 = 201002 // 攻城大营
- MapBuild_LeagueCamp int32 = 201003 // 联盟大营
- MapBuild_LeagueFlag int32 = 201005 // 联盟旗帜
- MapBuild_ArrowTower int32 = 201006 // 箭塔
- MapBuild_Barricade int32 = 201007 // 拒马
- MapBuild_ResTown int32 = 201010 // 联盟农田
- MapBuild_MainCity int32 = 202001 // 玩家主城
- MapBuild_CityBase int32 = 202002 // 玩家地基
- MapBuild_Camp int32 = 202003 // 营账
- MapBuild_End = 300000
- )
- const (
- MapRes_Start = 300001
- MapRes_End = 400000
- )
- var (
- // 联盟建筑-建筑数量上限属性ID映射
- LeagueMapBuildCountLimitAttrIDMap = map[int32]int32{
- MapBuild_LeaguePoint: enum.LeagueAttrResidenceCountLimit,
- MapBuild_SiegeCamp: enum.LeagueAttrSiegeCampLimit,
- MapBuild_LeagueCamp: enum.LeagueAttrCampCountLimit,
- MapBuild_LeagueFlag: enum.LeagueAttrFlagCountLimit,
- MapBuild_Barricade: enum.LeagueAttrBarricadeCountLimit,
- MapBuild_ArrowTower: enum.LeagueAttrArrowTowerCountLimit,
- MapBuild_ResTown: enum.LeagueAttrResTownCountLimit,
- }
- // 联盟建筑-建筑等级上限属性ID映射
- LeagueMapBuildLevelLimitAttrIDMap = map[int32]int32{
- MapBuild_LeagueCamp: enum.LeagueAttrCampLevelLimit,
- MapBuild_LeagueFlag: enum.LeagueAttrFlagCountLimit,
- MapBuild_Barricade: enum.LeagueAttrBarricadeLevelLimit,
- MapBuild_ArrowTower: enum.LeagueAttrArrowTowerLevelLimit,
- MapBuild_ResTown: enum.LeagueAttrResTownLevelLimit,
- }
- )
- const (
- ArmyLine_AffectMinDistance = 200 // 军情线影响最小距离
- ArmyLine_UpdateInterval = 5 // 军情线更新间隔时间
- ArmyLine_SyncMinStepLen = 20 // 军情线增量同步最小步长
- ArmyLine_OneBatchStepLen = 100 // 军情线一批同步多少步
- )
- 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
- }
|