123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- var SkillData = require("SkillData");
- var CostData = require("CostData");
- var SkillMapDecoder = cc.Class({
- extends: cc.Component,
- properties: {
- jsonName:"skill",
- skillList:{
- default:[],
- type:[SkillData],
- },
- },
- //解析数据
- DecodeJson:function (event) {
- //cc.log("===解析技能数据===");
- var self = this;
- self.reCb = event;
- cc.loader.loadRes("json/"+self.jsonName, function (error, obj) {
- if(error)
- {
- //cc.log("+++解析出错,查下json+++" + error);
- self.reCb(false);
- return;
- }
-
- var jsonRoot = obj.json.skill;
- //cc.log("===数据长度===" + jsonRoot.length);
- for (var i = 0; i < jsonRoot.length; i++) {
- var skillData = new SkillData();
- skillData.Id = jsonRoot[i].Id;
- skillData.subId = jsonRoot[i].subId;
- skillData.icon = jsonRoot[i].icon;
- skillData.desId = jsonRoot[i].desId;
- skillData.name = jsonRoot[i].name;
- skillData.skillType = jsonRoot[i].skillType;
- skillData.upLevel = jsonRoot[i].upCostList.length;//jsonRoot[i].upLevel;
- for (var j = 0; j < jsonRoot[i].upCostList.length; j++) {
- var costD = new CostData();
- costD.cost = jsonRoot[i].upCostList[j][2];
- costD.toLevel = jsonRoot[i].upCostList[j][0];
- costD.addBonus = jsonRoot[i].upCostList[j][1];
- skillData.upCostList[j] = costD;
- }
- self.skillList[i] = skillData;
- }
- self.reCb(true);
- });
- },
- //通过名字拿到当前的数据 不建议用,你要用我也没办法
- getDataByName:function (name) {
- var data = null;
- for (var i = this.skillList.length - 1; i >= 0; i--) {
- if(name == this.skillList[i].name)
- {
- data = this.skillList[i];
- break;
- }
- }
- return data;
- },
- //通过itemid获取数据
- getDataByItemId:function(itemId){
- var data = null;
- for (var i = this.skillList.length - 1; i >= 0; i--) {
- if(itemId == this.skillList[i].Id)
- {
- data = this.skillList[i];
- break;
- }
- }
- return data;
- },
- getJsonLength:function(){
- return this.skillList.length
- },
- getDataList:function(){
- return this.skillList;
- },
- //获取升级技能消费数据 需要提供两个 Id
- getUpgradeCostByTwoId:function(Id,subId,tolv){
- var Cost = 20;
- for (var i = this.skillList.length - 1; i >= 0; i--) {
- var data = this.skillList[i];
- if(data.Id == Id && data.subId == subId)
- {
- for (var i = data.upCostList.length - 1; i >= 0; i--) {
- var dt = data.upCostList[i];
- if(dt.toLevel == tolv)
- {
- //cc.log("Id subId toLv 花费技能点===================" + dt.cost + " " + tolv);
- Cost = dt.cost;
- return dt.cost;
- }
- }
- }
- }
- return Cost;
- },
- getSkillAddBonusByTwoIdAndLv:function(Id,subId,lv){
- var bonus = 0;
- for (var i = this.skillList.length - 1; i >= 0; i--) {
- var data = this.skillList[i];
- if(data.Id == Id && data.subId == subId)
- {
- for (var i = data.upCostList.length - 1; i >= 0; i--) {
- var dt = data.upCostList[i];
- if(dt.toLevel == lv)
- {
- bonus = dt.addBonus;
- return dt.addBonus;
- }
- }
- }
- }
- return bonus;
- },
- getSkillDataByTwoId:function(Id, subId){
- var dt = null;
- for (var i = this.skillList.length - 1; i >= 0; i--) {
- var data = this.skillList[i];
- if(data.Id == Id && data.subId == subId)
- {
- dt = data;
- return data;
- }
- }
- return dt;
- },
- getSkillListById:function(Id){
- var param = [];
- for (var i = this.skillList.length - 1; i >= 0; i--) {
- var data = this.skillList[i];
- if(data.Id == Id)
- {
- param.push(data);
- }
- }
- return param;
- },
- });
- module.exports = SkillMapDecoder;
|