示例#1
0
    protected void RangeInit()
    {
        if (comboJudgeUI)
        {
            GameObject.Destroy(comboJudgeUI);
        }
        if (skillRange > 0)
        {
            range = new SkillRange();
            switch (rangeType)
            {
            case RangeType.common:
                range.CreateSkillRange(skillRange, character);
                break;

            case RangeType.straight:
                range.CreateStraightSkillRange(skillRange, character, aliesObstruct);
                break;

            case RangeType.other:
                range.CreateCustomizedRange(customizedRangeList, customizedHoverRangeList, enablePathFinding, character);
                break;
            }

            focus = new Vector3(-1, -1, -1);
            final = false;
            foreach (var f in BattleFieldManager.GetInstance().floors)
            {
                if (f.Value.activeInHierarchy)
                {
                    var player = RoundManager.GetInstance().Players.Find(p => p.playerNumber == SkillManager.GetInstance().skillQueue.Peek().Key.character.GetComponent <Unit>().playerNumber);

                    if (player is HumanPlayer || (player is AIPlayer && ((AIPlayer)player).AI == false))
                    {
                        f.Value.GetComponent <Floor>().FloorClicked += Confirm;
                        f.Value.GetComponent <Floor>().FloorExited  += DeleteHoverRange;
                        f.Value.GetComponent <Floor>().FloorHovered += Focus;
                    }
                }
            }
            //角色加入忽略层,方便选取
            UnitManager.GetInstance().units.ForEach(u => u.gameObject.layer = 2);

            range.RecoverColor();
        }
        else
        {
            Focus(character.gameObject, null);
            ShowConfirm();
        }
    }
示例#2
0
    protected void RangeInit()
    {
        if (comboJudgeUI)
        {
            GameObject.Destroy(comboJudgeUI);
        }
        if (skillRange > 0)
        {
            range = new SkillRange();
            switch (rangeType)
            {
            case RangeType.common:
                range.CreateSkillRange(skillRange, character);
                break;

            case RangeType.straight:
                range.CreateStraightSkillRange(skillRange, character);
                break;
            }

            focus = new Vector3(-1, -1, -1);
            final = false;
            foreach (var f in BattleFieldManager.GetInstance().floors)
            {
                if (f.Value.activeInHierarchy)
                {
                    f.Value.GetComponent <Floor>().FloorClicked += Confirm;
                    f.Value.GetComponent <Floor>().FloorExited  += DeleteHoverRange;
                    f.Value.GetComponent <Floor>().FloorHovered += Focus;
                }
            }
            //角色加入忽略层,方便选取
            UnitManager.GetInstance().units.ForEach(u => u.gameObject.layer = 2);

            range.RecoverColor();
        }
        else
        {
            Focus(character.gameObject, null);
            ShowConfirm();
        }
    }