示例#1
0
    // ***************************Attack*******************************************

    public TacticsActions FindTargetUnit(Tile tile)
    {
        RaycastHit     hit;
        TacticsActions TargetUnit = null;

        if (Physics.Raycast(tile.transform.position, Vector3.up, out hit, 1))
        {
            TargetUnit = hit.collider.GetComponent <TacticsActions>();
        }
        return(TargetUnit);
    }
示例#2
0
    public static void EndTurn()
    {
        TacticsActions unit = turnTeam.Dequeue();

        unit.EndTurn();



        if (turnTeam.Count > 0)
        {
            StartTurn();
        }
        else
        {
            string team = turnKey.Dequeue();
            turnKey.Enqueue(team);
            InitUnitTurnQueue();
        }
    }
示例#3
0
    public void AttackTile(Tile tile)
    {
        path.Clear();
        tile.target = true;
        attacking   = true;
        center      = true;
        edge        = false;
        Target      = FindTargetUnit(tile);



        Tile next = tile;

        while (next != null)
        {
            path.Push(next);
            next = next.parent;
        }
        path.Pop();
    }
示例#4
0
    public static void  AddUnit(TacticsActions unit)
    {
        List <TacticsActions> list;

        if (!units.ContainsKey(unit.tag))
        {
            list            = new List <TacticsActions>();
            units[unit.tag] = list;

            if (!turnKey.Contains(unit.tag))
            {
                turnKey.Enqueue(unit.tag);
            }
        }
        else
        {
            list = units[unit.tag];
        }

        list.Add(unit);
    }