Example #1
0
    public virtual List <NodeA> MovmentArea()
    {
        List <NodeA> result = new List <NodeA> ();
        int          x = 0, y = 0;

        x = GridABS.NodeFromWorldPoint(transform.position).x;
        y = GridABS.NodeFromWorldPoint(transform.position).y;
        for (var d = 0; d < 4; d++)
        {
            for (var i = 0; i <= MaxMovement; i++)
            {
                try {
                    var nodes = GridABS.GridOfArena[x + i * MatfSub.MPAer(d, true), y + i * MatfSub.MPAer(d, false)];
                    if (nodes.TypeBloc == NodeA.NodeType.Walkable &&
                        nodes.UnitOnNode == null)
                    {
                        result.Add(nodes);
                    }
                    if (nodes.TypeBloc == NodeA.NodeType.Wall)
                    {
                        break;
                    }
                } catch { }
            }
        }
        return(result);
    }
    public virtual List <NodeA> AttackArea()
    {
        List <NodeA> result = new List <NodeA> ();
        int          x, y;

        GridABS.NodeCoordinat(transform.position, out x, out y);
        for (var d = 0; d < 4; d++)
        {
            for (var i = 1; i <= MaxDist; i++)
            {
                try {
                    var nodes = GridABS.GridOfArena[x + i * MatfSub.MPAer(d, true), y + i * MatfSub.MPAer(d, false)];
                    if (nodes.TypeBloc != NodeA.NodeType.Wall)
                    {
                        if (nodes.TypeBloc == NodeA.NodeType.Walkable)
                        {
                            result.Add(nodes);
                        }
                        if (nodes.UnitOnNode != null && i > 1)
                        {
                            break;
                        }
                    }
                    else
                    {
                        break;
                    }
                } catch { }
            }
        }
        return(result);
    }