public override void Init() { base.Init(); //技能动作 string actionConifg = Util.GetConfigString(normalSkill.skillAction); JsonData dt = JsonMapper.ToObject(actionConifg); skillAction = dt["action"].ToString(); int ic = dt["time"].Count; skillTime = new float[ic]; for (int i = 0; i < ic; i++) { skillTime[i] = float.Parse(dt["time"][i].ToString()); } //魔法动作 string strMagicDelay = Util.GetConfigString(normalSkill.delay); JsonData magicDt = JsonMapper.ToObject(strMagicDelay); magicDelay = new float[magicDt.Count]; for (int i = 0; i < magicDelay.Length; i++) { magicDelay[i] = float.Parse(magicDt[i].ToString()); } //buff string buffString = Util.GetConfigString(normalSkillLvUp.buff); JsonData dt_1 = JsonMapper.ToObject(buffString); for (int i = 0; i < dt_1.Count; i++) { JsonData dt_2 = dt_1[i]; buffConfig bc = new buffConfig(); bc.id = int.Parse(dt_2[0].ToString()); bc.percent = float.Parse(dt_2[1].ToString()); bc.value = float.Parse(dt_2[2].ToString()); bc.time = float.Parse(dt_2[3].ToString()); bc.level = int.Parse(dt_2[4].ToString()); buffConfigList.Add(bc); } //附加效果 attachExtension = (SkillAttach)normalSkillLvUp.addEffect; attachExtensionParam = JsonMapper.ToObject(Util.GetConfigString(normalSkillLvUp.addEffectVal)); }
public override void Init() { CEventDispatcher.GetInstance().AddEventListener(CEventType.GAME_WIN, EndSkill); CEventDispatcher.GetInstance().AddEventListener(CEventType.MOVE_TO_NEXT, EndSkill); CEventDispatcher.GetInstance().AddEventListener(CEventType.ENERGY_EMPTY, EndSkill); //魔法动作 string magicDt = Util.GetConfigString(specialSkill.delay); JsonData jd00 = JsonMapper.ToObject(magicDt); if (jd00.Count > 0) { magicDelay = new float[jd00.Count]; for (int i = 0; i < jd00.Count; i++) { magicDelay[i] = float.Parse(jd00[i].ToString()); } } //施法动作 string action01 = Util.GetConfigString(specialSkill.preAction); JsonData jd01 = JsonMapper.ToObject(action01); if (jd01.Count > 0) { preActionName = jd01[0].ToString(); preActionWorkTime = new float[jd01[1].Count]; for (int i = 0; i < jd01[1].Count; i++) { preActionWorkTime[i] = float.Parse(jd01[1][i].ToString()); } } //持续施法动作 string action02 = Util.GetConfigString(specialSkill.skillAction); JsonData jd02 = JsonMapper.ToObject(action02); if (jd02.Count > 0) { actionName = jd02[0].ToString(); actionWorkTime = new float[jd02[1].Count]; for (int i = 0; i < jd02[1].Count; i++) { actionWorkTime[i] = float.Parse(jd02[1][i].ToString()); } } //buff string buffString = Util.GetConfigString(specialSkillLvUp.buff); JsonData dt_1 = JsonMapper.ToObject(buffString); for (int i = 0; i < dt_1.Count; i++) { JsonData dt_2 = dt_1[i]; buffConfig bc = new buffConfig(); bc.id = int.Parse(dt_2[0].ToString()); bc.percent = float.Parse(dt_2[1].ToString()); bc.value = float.Parse(dt_2[2].ToString()); bc.time = float.Parse(dt_2[3].ToString()); bc.level = int.Parse(dt_2[4].ToString()); bc.bindSkill = this; buffConfigList.Add(bc); } //附加效果 attachExtension = (SkillAttach)specialSkillLvUp.addEffect; attachExtensionParam = JsonMapper.ToObject(Util.GetConfigString(specialSkillLvUp.addEffectVal)); base.Init(); }
/// <summary> /// 技能附加效果 /// </summary> public static void AttachExtension(FightUnit attacker, FightUnit target, int hurtNum, SkillAttach attachType, JsonData param) { if (attachType == SkillAttach.None) { return; } switch (attachType) { case SkillAttach.Beatback: Beatback(attacker, target, int.Parse(param[0].ToString()), float.Parse(param[1].ToString())); break; case SkillAttach.ManaRecover: target.mana += int.Parse(param[0].ToString()); /* -- 特效 -- */ break; case SkillAttach.EnegyRecover: FightEnergy.instance.EnergyVal += int.Parse(param[0].ToString()); /* -- 特效 -- */ break; case SkillAttach.Taunt: target.attack.StopCurrent(); target.targetUnit = attacker; /* -- 特效 -- */ break; case SkillAttach.Dispel: target.ClearAllDebuff(); /* -- 特效 -- */ break; case SkillAttach.CallTotem: /* -- 图腾功能 -- */ break; case SkillAttach.GetBlood: float rate = float.Parse(param[0].ToString()); XixueCure(Mathf.RoundToInt(hurtNum * rate), attacker); /* -- 特效 -- */ break; case SkillAttach.LoseMana: int manalose = int.Parse(param[0].ToString()); target.mana -= manalose; /* -- 特效 -- */ break; } }