package enum import "slices" // 行军状态 type MarchState int32 const ( // 基础状态 MarchState_None MarchState = -1 // 无 MarchState_Standby MarchState = 0 // 待命状态 MarchState_Retreat MarchState = 2 // 回城状态 MarchState_Occupy MarchState = 3 // 占领状态 MarchState_Gather MarchState = 4 // 采集状态 MarchState_Garrison MarchState = 5 // 驻守状态 MarchState_Siege MarchState = 6 // 攻城状态 MarchState_Redeploy MarchState = 7 // 调动状态 MarchState_Recruit MarchState = 9 // 征兵状态 MarchState_Entrust MarchState = 10 // 委托状态 MarchState_Snatch MarchState = 11 // 掠夺状态 MarchState_SiegeAssemble MarchState = 12 // 攻城集结状态(暂定,用来和军团集结区分) // 基础移动状态 MarchState_Stay MarchState = 1 // 停留状态 MarchState_March MarchState = 100 // 行军状态 // 行军到结果发生状态 MarchState_MarchAssemble MarchState = 102 // 行军集结状态 MarchState_MarchRedeploy MarchState = 101 // 调动行军状态 MarchState_TransportBack MarchState = 103 // 运输回城状态 MarchState_MarchEntrust MarchState = 104 // 委托行军状态 MarchState_MarchSiegeAssemble MarchState = 105 // 攻城集结行军(指部队集结到攻城大营时的移动状态) MarchState_Rout MarchState = 106 // 战败撤退 // 战斗相关状态 MarchState_Battle MarchState = 200 // 战斗状态 MarchState_BattleWait MarchState = 201 // 战斗等待状态 // 军团集结相关状态 MarchState_Assemble MarchState = 8 // 集结状态 MarchState_AssembleMarch MarchState = 300 // 集结行军状态 MarchState_AssembleBattleWait MarchState = 301 // 集结战斗等待状态 MarchState_AssembleBattle MarchState = 302 // 集结战斗状态 MarchState_AssembleCrusade MarchState = 303 // 集结讨伐状态 MarchState_AssembleSiege MarchState = 304 // 集结攻城状态 ) var ( marchStateName = map[MarchState]string{ MarchState_None: "None", MarchState_Standby: "Standby", MarchState_Stay: "Stay", MarchState_Retreat: "Retreat", MarchState_Occupy: "Occupy", MarchState_Gather: "Gather", MarchState_Garrison: "Garrison", MarchState_Siege: "Siege", MarchState_Redeploy: "Redeploy", MarchState_Assemble: "Assemble", MarchState_Recruit: "Recruit", MarchState_March: "March", MarchState_Snatch: "Snatch", MarchState_SiegeAssemble: "SiegeAssemble", MarchState_MarchRedeploy: "MarchRedeploy", MarchState_MarchAssemble: "MarchAssemble", MarchState_TransportBack: "TransportBack", MarchState_Rout: "Rout", MarchState_Battle: "Battle", MarchState_BattleWait: "BattleWait", } moveStates = []MarchState{ MarchState_March, MarchState_Retreat, MarchState_Rout, MarchState_MarchRedeploy, MarchState_MarchAssemble, MarchState_TransportBack, MarchState_MarchEntrust, MarchState_MarchSiegeAssemble, } notInMapStates = []MarchState{ MarchState_Standby, MarchState_SiegeAssemble, MarchState_Redeploy, MarchState_Assemble, MarchState_AssembleMarch, MarchState_AssembleBattleWait, MarchState_AssembleCrusade, MarchState_AssembleSiege, } assembleState = []MarchState{ MarchState_Assemble, MarchState_AssembleMarch, MarchState_AssembleBattleWait, MarchState_AssembleCrusade, MarchState_AssembleSiege, } legionStateToMarchState = map[LegionState]MarchState{ LegionState_None: MarchState_None, LegionState_AssembleWait: MarchState_None, LegionState_AssembleFinish: MarchState_None, LegionState_AssembleMarch: MarchState_AssembleMarch, LegionState_BattleWait: MarchState_AssembleBattleWait, LegionState_Crusade: MarchState_AssembleCrusade, LegionState_Siege: MarchState_AssembleSiege, } ) func GetMarchStateName(marchState MarchState) string { if val, found := marchStateName[marchState]; found { return val } return "Unknown" } func GetMarchStateByLegionState(legionState LegionState) MarchState { if val, found := legionStateToMarchState[legionState]; found { return val } return MarchState_None } // IsInMapState 拥有此状态的行军对象是否在地图上 func IsInMapState(state MarchState) bool { return !slices.Contains(notInMapStates, state) } // IsMovingState 拥有此状态的行军对象是否在移动中 func IsMovingState(state MarchState) bool { return slices.Contains(moveStates, state) } func IsMarchState(state MarchState) bool { return state == MarchState_March } func IsRetreatState(state MarchState) bool { return state == MarchState_Retreat } func IsAssembleState(state MarchState) bool { return slices.Contains(assembleState, state) }