cfg_pk_count_post.lua 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. ---@class cfg_pk_count_post @注释
  2. cfg_pk_count_post = class()
  3. local this = cfg_pk_count_post
  4. this.isInit = false
  5. this.pkInfo = {}
  6. ---@return void @使用时才调用
  7. --- 存储需要展示的人物属性l
  8. function this.InitOnUse()
  9. if this.isInit then
  10. return
  11. end
  12. this.isInit = true
  13. local cfg = SL:GetConfigTable('cfg_pk_count')
  14. if cfg then
  15. ---@param v cfg_pk_count_column
  16. for k, v in pairs(cfg) do
  17. local minCount = v.nameColor[1]
  18. local maxCount = v.nameColor[2]
  19. local nameColor = v.nameColor[3]
  20. this.pkInfo[v.id] = {minCount=minCount,maxCount=maxCount,nameColor=nameColor,level=v.id,label=v.label,
  21. displayColor=v.displayColor,redNameNeed=v.redNameNeed,shopPurchase = v.shopPurchase,mapTransmission = v.mapTransmission}
  22. end
  23. end
  24. end
  25. ---通过pk值获取pk数据
  26. function this.GetPkInfoByPkValue(pkValue)
  27. if not pkValue then
  28. SL:Log("pkvalue is nil")
  29. return nil
  30. end
  31. local nameColor
  32. local level = 0
  33. local redNameNeed = 0
  34. local label
  35. local displayColor
  36. local shopPurchase
  37. local mapTransmission
  38. for i, v in pairs(this.pkInfo) do
  39. if tonumber(v.minCount) <= tonumber(pkValue) and v.level > level then
  40. nameColor = v.nameColor
  41. level = v.level
  42. redNameNeed = v.redNameNeed
  43. displayColor = v.displayColor
  44. label = v.label
  45. shopPurchase = v.shopPurchase
  46. mapTransmission = v.mapTransmission
  47. end
  48. end
  49. return nameColor,level,displayColor,label,shopPurchase,mapTransmission
  50. end
  51. ---通过pk值,红名阈值获取对应信息
  52. ---@return cfg_pk_count_column
  53. function this.GetInfoByRedNamePkValue(pkValue)
  54. if not pkValue then
  55. SL:Log("pkvalue is nil")
  56. return nil
  57. end
  58. local len = #this.pkInfo
  59. for i = len, 1,-1 do
  60. if tonumber(pkValue) >= this.pkInfo[i].redNameNeed then
  61. return SL:GetConfig('cfg_pk_count',i)
  62. end
  63. end
  64. end
  65. function this.GetPkValueNameColor(value)
  66. if not value then
  67. SL:Log("pkvalue is nil")
  68. return nil
  69. end
  70. local nameColor, level, redNameNeed = this.GetPkInfoByPkValue(value)
  71. local color
  72. if nameColor then
  73. local colorTabl = SL:GetConfig("cfg_color",nameColor)
  74. color = SL:ConvertColorFromHexString(colorTabl.color)
  75. end
  76. return color
  77. end
  78. function this.GetPkValueRedNameColor(value)
  79. if not value then
  80. SL:Log("pkvalue is nil")
  81. return nil
  82. end
  83. local _,_,displayColor = this.GetPkInfoByPkValue(value)
  84. local color
  85. if displayColor then
  86. ---@type cfg_color_column
  87. local colorTabl = SL:GetConfig("cfg_color",displayColor)
  88. color = SL:ConvertColorFromHexString(colorTabl.color)
  89. end
  90. return color
  91. end
  92. this.InitOnUse()