Example #1
0
    //准备释放魔法
    public void PrepareMagic(Hero _hero, Magic _magic)
    {
        //判定魔法学派,根据英雄的相应学派等级释放不同效果
        int magicLevel = _magic.GetMagicLevel(_hero);

        MagicType type = _magic.type;

        if (type == MagicType.Battle)
        {
        }

        currentMagic = _magic;

        //隐藏节点
        NodeSelector.HideActionNodes();

        //目标类型:无目标直接释放
        int targetType = Mathf.Min(_magic.targetType.Length - 1, magicLevel);

        //int effect = Mathf.Min(_magic.effects.Length - 1, magicLevel);
        if (_magic.targetType[targetType] == MagicTargetType.Null)
        {
            CastMagic();
        }
        else
        {
            //是需要选择目标的技能
            MagicTargetFliter fliter = _magic.targetFliter[Mathf.Min(_magic.targetFliter.Length - 1, magicLevel)];

            NodeSelector.GetSpellableNodes(fliter);
        }
    }
Example #2
0
    //获取并高亮可施法节点
    public static void GetSpellableNodes(MagicTargetFliter _fliter)
    {
        spellableNodes = new List <NodeItem>();

        List <Unit> targetUnits;

        //否则选择目标
        if (_fliter == MagicTargetFliter.All)
        {
            //选择所有单位
            targetUnits = BattleManager.instance.allUnits;
        }
        else
        {
            int side = (BattleManager.currentSide + (int)_fliter) % 2;

            targetUnits = BattleManager.instance.units[side];
        }

        foreach (Unit item in targetUnits)
        {
            //设置为可施法节点
            item.nodeItem.GetComponent <NodeItem_Battle>().ChangeNodeType(BattleNodeType.spellable);

            spellableNodes.Add(item.nodeItem);
        }
    }