Exemple #1
0
    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));
    }
Exemple #2
0
    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();
    }
Exemple #3
0
    /// <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;
        }
    }