SkillMapDecoder.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. var SkillData = require("SkillData");
  2. var CostData = require("CostData");
  3. var SkillMapDecoder = cc.Class({
  4. extends: cc.Component,
  5. properties: {
  6. jsonName:"skill",
  7. skillList:{
  8. default:[],
  9. type:[SkillData],
  10. },
  11. },
  12. //解析数据
  13. DecodeJson:function (event) {
  14. //cc.log("===解析技能数据===");
  15. var self = this;
  16. self.reCb = event;
  17. cc.loader.loadRes("json/"+self.jsonName, function (error, obj) {
  18. if(error)
  19. {
  20. //cc.log("+++解析出错,查下json+++" + error);
  21. self.reCb(false);
  22. return;
  23. }
  24. var jsonRoot = obj.json.skill;
  25. //cc.log("===数据长度===" + jsonRoot.length);
  26. for (var i = 0; i < jsonRoot.length; i++) {
  27. var skillData = new SkillData();
  28. skillData.Id = jsonRoot[i].Id;
  29. skillData.subId = jsonRoot[i].subId;
  30. skillData.icon = jsonRoot[i].icon;
  31. skillData.desId = jsonRoot[i].desId;
  32. skillData.name = jsonRoot[i].name;
  33. skillData.skillType = jsonRoot[i].skillType;
  34. skillData.upLevel = jsonRoot[i].upCostList.length;//jsonRoot[i].upLevel;
  35. for (var j = 0; j < jsonRoot[i].upCostList.length; j++) {
  36. var costD = new CostData();
  37. costD.cost = jsonRoot[i].upCostList[j][2];
  38. costD.toLevel = jsonRoot[i].upCostList[j][0];
  39. costD.addBonus = jsonRoot[i].upCostList[j][1];
  40. skillData.upCostList[j] = costD;
  41. }
  42. self.skillList[i] = skillData;
  43. }
  44. self.reCb(true);
  45. });
  46. },
  47. //通过名字拿到当前的数据 不建议用,你要用我也没办法
  48. getDataByName:function (name) {
  49. var data = null;
  50. for (var i = this.skillList.length - 1; i >= 0; i--) {
  51. if(name == this.skillList[i].name)
  52. {
  53. data = this.skillList[i];
  54. break;
  55. }
  56. }
  57. return data;
  58. },
  59. //通过itemid获取数据
  60. getDataByItemId:function(itemId){
  61. var data = null;
  62. for (var i = this.skillList.length - 1; i >= 0; i--) {
  63. if(itemId == this.skillList[i].Id)
  64. {
  65. data = this.skillList[i];
  66. break;
  67. }
  68. }
  69. return data;
  70. },
  71. getJsonLength:function(){
  72. return this.skillList.length
  73. },
  74. getDataList:function(){
  75. return this.skillList;
  76. },
  77. //获取升级技能消费数据 需要提供两个 Id
  78. getUpgradeCostByTwoId:function(Id,subId,tolv){
  79. var Cost = 20;
  80. for (var i = this.skillList.length - 1; i >= 0; i--) {
  81. var data = this.skillList[i];
  82. if(data.Id == Id && data.subId == subId)
  83. {
  84. for (var i = data.upCostList.length - 1; i >= 0; i--) {
  85. var dt = data.upCostList[i];
  86. if(dt.toLevel == tolv)
  87. {
  88. //cc.log("Id subId toLv 花费技能点===================" + dt.cost + " " + tolv);
  89. Cost = dt.cost;
  90. return dt.cost;
  91. }
  92. }
  93. }
  94. }
  95. return Cost;
  96. },
  97. getSkillAddBonusByTwoIdAndLv:function(Id,subId,lv){
  98. var bonus = 0;
  99. for (var i = this.skillList.length - 1; i >= 0; i--) {
  100. var data = this.skillList[i];
  101. if(data.Id == Id && data.subId == subId)
  102. {
  103. for (var i = data.upCostList.length - 1; i >= 0; i--) {
  104. var dt = data.upCostList[i];
  105. if(dt.toLevel == lv)
  106. {
  107. bonus = dt.addBonus;
  108. return dt.addBonus;
  109. }
  110. }
  111. }
  112. }
  113. return bonus;
  114. },
  115. getSkillDataByTwoId:function(Id, subId){
  116. var dt = null;
  117. for (var i = this.skillList.length - 1; i >= 0; i--) {
  118. var data = this.skillList[i];
  119. if(data.Id == Id && data.subId == subId)
  120. {
  121. dt = data;
  122. return data;
  123. }
  124. }
  125. return dt;
  126. },
  127. getSkillListById:function(Id){
  128. var param = [];
  129. for (var i = this.skillList.length - 1; i >= 0; i--) {
  130. var data = this.skillList[i];
  131. if(data.Id == Id)
  132. {
  133. param.push(data);
  134. }
  135. }
  136. return param;
  137. },
  138. });
  139. module.exports = SkillMapDecoder;