extend_lord_level.go 1008 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package data
  2. import (
  3. "f1-game/internal/extend/math"
  4. clog "github.com/cherry-game/cherry/logger"
  5. )
  6. var maxLevel int32
  7. func (p *lordLevelConfig) OnAfterLoad(_ bool) {
  8. rows := p.List()
  9. lastLordLevelRow := rows[len(rows)-1]
  10. if lastLordLevelRow == nil {
  11. clog.Fatalf("lord max level config not found")
  12. }
  13. maxLevel = lastLordLevelRow.Level
  14. }
  15. func (p *lordLevelConfig) GetMaxLevel() int32 {
  16. return maxLevel
  17. }
  18. func (p *lordLevelConfig) GetLevelExp(startLevel, endLevel int32) int64 {
  19. needExp := int64(0)
  20. for level := startLevel; level < endLevel; level++ {
  21. row, found := p.GetByLevel(level)
  22. if !found {
  23. clog.Warnf("lord level config not found. [level = %d]", level)
  24. continue
  25. }
  26. needExp += row.Exp
  27. }
  28. return needExp
  29. }
  30. // 通过赛季获取等级上限
  31. func (p *lordLevelConfig) GetLevelLimitBySeason(seasonID int32) int32 {
  32. maxLevel := int32(1)
  33. for _, row := range p.List() {
  34. if row.SeasonID <= seasonID {
  35. maxLevel = math.Max(maxLevel, row.Level)
  36. }
  37. }
  38. return maxLevel
  39. }