ConditionJudge.lua 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. local ConditionJudge = {}
  2. local JudgeFun = {}
  3. function ConditionJudge:ConditionPassResult(conditionId)
  4. local conditionData = ManagerContainer.CfgMgr:GetCondDataById(conditionId)
  5. local condition = conditionData.Condition
  6. return self:ConditionPassResult1(condition)
  7. end
  8. function ConditionJudge:ConditionPassResult1(condition)
  9. if not condition then
  10. return false, 0, ''
  11. end
  12. local typeId = condition[1]
  13. if not typeId then
  14. return false, 0, ''
  15. end
  16. local fun = JudgeFun[typeId]
  17. if not fun then
  18. return false, 0, ''
  19. end
  20. return fun(condition)
  21. end
  22. JudgeFun[1] = function(condition)
  23. local val = condition[2]
  24. local content = I18N.SetLanguageValue("FunUnLock1", val)
  25. local baseLv = ManagerContainer.DataMgr.UserData:GetRoleLv()
  26. return baseLv >= val, val, content
  27. end
  28. JudgeFun[11] = function(condition)
  29. local val = condition[2]
  30. local levelData = ManagerContainer.CfgMgr:GetLevelDataById(val)
  31. if not levelData then
  32. return false, val, ''
  33. end
  34. local content = I18N.SetLanguageValue("FunUnLock11", I18N.T(levelData.Name))
  35. local uniId = ManagerContainer.LuaBattleMgr:GetCurLevelUniqueId()
  36. return uniId >= val, val, content
  37. end
  38. JudgeFun[37] = function(condition)
  39. local val = condition[2]
  40. val = val + 1
  41. local climbingData = ManagerContainer.CfgMgr:GetClimbingTowerCfgById(val)
  42. local content = I18N.SetLanguageValue("FunUnLock37", I18N.T(climbingData.Desc))
  43. local climbingTowerLv = ManagerContainer.DataMgr.TowerDataMgr:GetCurChallengeLevel()
  44. return climbingTowerLv >= val, val, content
  45. end
  46. JudgeFun[1000] = function(condition)
  47. local val = condition[2]
  48. local vipLv = ManagerContainer.DataMgr.UserData:GetVipLv()
  49. local vipCfgData = ManagerContainer.CfgMgr:GetVipCfgById(val)
  50. if vipCfgData then
  51. local content = I18N.SetLanguageValue("FunUnLock1000", I18N.T(vipCfgData.Name))
  52. return vipLv >= val, val, content
  53. else
  54. return false, 0, ''
  55. end
  56. end
  57. JudgeFun[1001] = function(condition)
  58. local val = condition[2]
  59. if not Constant.OpenPay then
  60. if val == 0 then
  61. return false, val, ''
  62. else
  63. return true, val, ''
  64. end
  65. end
  66. return true, val, ''
  67. end
  68. JudgeFun[1002] = function(condition)
  69. local val = condition[2]
  70. if Constant.OpenPay then
  71. local curVal = ManagerContainer.PayMgr:GetTotalRecharge()
  72. return curVal >= val, val, ''
  73. end
  74. return false, val, ''
  75. end
  76. return ConditionJudge