Exemplo n.º 1
0
    /// <summary>
    /// 決定技能效果目標
    /// <param name="data">技能效果資料</param>
    /// <param name="paramater">效果參數</param>
    private void OnEffectTarget(RuleLargeData data, bool isSelf = true, bool isExpend = false)
    {
        List <int> idxList = new List <int>();

        if (data.target > 20)
        {
            mainTarget [1] = isSelf == true ? mainTarget [1] : mainTarget [0];
        }
        else if (data.target > 10)
        {
            mainTarget [1] = mainTarget [0] == "P" ? "E" : "P";
            if (data.target < 7)
            {
                for (int i = 0; i < monsterCount; i++)
                {
                    idxList.Add(i);
                }
            }
        }
        else
        {
            mainTarget [1] = mainTarget [0] == "P" ? "P" : "E";
            if (data.target > 1)
            {
                for (int i = 0; i < playerCount; i++)
                {
                    idxList.Add(i);
                }
            }
        }

        switch (data.target)
        {
        case (int)Target.None:
            break;

        case (int)Target.Self:
            idxList = new List <int> ();
            if (isSelf)
            {
                idxList.Add(mainOrgIdx);
            }
            else
            {
                idxList.Add(mainTargetIdx);
            }
            break;

        case (int)Target.DirTeam:
            selLockRuleData = data;
            fightController.OnSelectSkillTarget(idxList, "P");
            return;

        case (int)Target.OnlyMate:        //移除發動者
            idxList.Remove(mainOrgIdx);
            break;

        case (int)Target.DirEnemy:
            selLockRuleData = data;
            fightController.OnSelectSkillTarget(idxList, "E");
            return;

        case (int)Target.Trigger:
            if (isSelf)
            {
                idxList.Add(mainTargetIdx);
            }
            else
            {
                idxList.Add(mainOrgIdx);
            }
            break;
        }

        fightController.OnSkillEffect(mainOrgIdx, idxList, data, mainTarget, mainSkillId, isExpend);
    }