team.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package constant
  2. import (
  3. "slices"
  4. )
  5. const (
  6. TeamMemberIndex_Start = 0 // 队伍阵容最小索引
  7. TeamMemberIndex_End = 5 // 队伍阵容最大索引
  8. TeamMemberTeamIndex_Start = 1 // 队伍位置最小索引
  9. TeamMemberTeamIndex_End = 3 // 队伍位置最大索引
  10. TeamMemberIndex_Leader = 1 // 主将下标
  11. TeamMemberIndex_2 = 2 // 副将下标
  12. TeamMemberIndex_3 = 3 // 副将下标
  13. )
  14. // ValidateTeamMemberIndex 检测队伍成员索引值是否正确
  15. func ValidateTeamMemberIndex(indexs ...int32) bool {
  16. return ValidateTeamIndex(TeamMemberIndex_Start, TeamMemberIndex_End, indexs...)
  17. }
  18. // ValidateTeamMemberTeamIndex 检测队伍成员索引值是否正确
  19. func ValidateTeamMemberTeamIndex(teamIndexs ...int32) bool {
  20. return ValidateTeamIndex(TeamMemberTeamIndex_Start, TeamMemberTeamIndex_End, teamIndexs...)
  21. }
  22. // ValidateTeamIndex 检测队伍索引值是否正确
  23. func ValidateTeamIndex(startIndex int32, endIndex int32, indexs ...int32) bool {
  24. for _, index := range indexs {
  25. if index < startIndex || index > endIndex {
  26. return false
  27. }
  28. }
  29. return true
  30. }
  31. // IsTeamMainIndex 是否是主将位置
  32. func IsTeamMainIndex(index int32) bool {
  33. return index == TeamMemberTeamIndex_Start
  34. }
  35. // 随机队伍阵容位置
  36. func RandomTeamLineupIndex(excludeIndexs []int32) int32 {
  37. for index := int32(TeamMemberIndex_Start); index <= TeamMemberIndex_End; index++ {
  38. if !slices.Contains(excludeIndexs, index) {
  39. return int32(index)
  40. }
  41. }
  42. return 0
  43. }
  44. const (
  45. TeamMaxCount int32 = 5
  46. )