OutDataManager.lua 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. --战斗外数据管理、
  2. OutDataManager = {}
  3. local this = OutDataManager
  4. local function _Split(input, delimiter)
  5. input = tostring(input)
  6. delimiter = tostring(delimiter)
  7. if (delimiter=='') then return false end
  8. local pos,arr = 0, {}
  9. -- for each divider found
  10. for st,sp in function() return string.find(input, delimiter, pos, true) end do
  11. table.insert(arr, string.sub(input, pos, st - 1))
  12. pos = sp + 1
  13. end
  14. table.insert(arr, string.sub(input, pos))
  15. return arr
  16. end
  17. local datalist = {}
  18. -- 分割字符串为2维数组
  19. local function _SplitToDic(dataStr)
  20. local ar2 = {}
  21. if not dataStr or dataStr == "" then return ar2 end
  22. local strs = _Split(dataStr, "|")
  23. for i, s in ipairs(strs) do
  24. local ss = _Split(s, "#")
  25. local key = tonumber(ss[1])
  26. local value = tonumber(ss[2])
  27. ar2[key] = value
  28. end
  29. return ar2
  30. end
  31. -- 初始化
  32. function this.Init(fightData)
  33. datalist[0] = _SplitToDic(fightData.playerData.outData)
  34. for i = 1, #fightData.enemyData do
  35. if not datalist[1] then
  36. datalist[1] = {}
  37. end
  38. datalist[1][i] = _SplitToDic(fightData.enemyData[i].outData)
  39. end
  40. end
  41. -- 获取战斗外数据
  42. function this.GetOutData(camp, id)
  43. if camp == 0 then
  44. return datalist[camp][id]
  45. else
  46. return datalist[camp][BattleLogic.CurOrder][id]
  47. end
  48. end
  49. return this