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); }