2using System.Collections.Generic;
10 public static Action<Point, bool>
onVisit;
12 public static int MAX(
int a,
int b)
21 public static int ABS(
int a)
30 public static int ZSGN(
int a)
43 private static bool IsBlocked(
int x,
int z,
int sx,
int sz)
54 if ((sz == -1 && weights[0] == 0) || (sz == 1 && weights[2] == 0) || (sx == 1 && weights[1] == 0) || (sx == -1 && weights[3] == 0))
58 if (!flag && sx != 0 && sz != 0)
67 if ((sz < 0 && weights2[2] == 0) || (sx > 0 && weights2[3] == 0))
71 if ((sz > 0 && weights2[0] == 0) || (sx < 0 && weights2[1] == 0))
92 List<Point> list =
new List<Point>();
93 List<Point> vecs =
new List<Point>();
98 if (point3.
x != 0 || point3.
z != 0)
103 }, returnOnBlock:
false);
109 for (
int i = 0; i < radius; i++)
111 Point point2 = vecs[i % vecs.Count];
121 if (_onVisit !=
null)
123 _onVisit(
p, blocked);
144 Point rushPos =
null;
150 if (blocked || p.HasChara || p.IsBlocked)
169 return IsVisible(p1.
x, p2.
x, p1.
z, p2.
z, _onVisit);
177 public static bool IsVisible(
int x1,
int x2,
int z1,
int z2, Action<Point, bool> _onVisit =
null,
bool returnOnBlock =
true)
181 originalP.
Set(x1, z1);
184 int num = ABS(a) << 1;
185 int num2 = ABS(a2) << 1;
192 int num7 = num2 - (num >> 1);
200 onVisit(p, arg2:
false);
204 if (IsBlocked(num5, num6, num3, (num7 >= 0) ? num4 : 0) && returnOnBlock)
220 int num8 = num - (num2 >> 1);
228 onVisit(p, arg2:
false);
232 if (IsBlocked(num5, num6, (num8 >= 0) ? num3 : 0, num4) && returnOnBlock)
if(item3.idFile==idFirstFile &&item3.id==idFirstTopic)
static int MAX(int a, int b)
static bool IsVisible(int x1, int x2, int z1, int z2, Action< Point, bool > _onVisit=null, bool returnOnBlock=true)
static List< Point > ListVisible(Point p1, Point p2, int radius, Action< Point, bool > _onVisit=null)
static bool IsVisible(Card c1, Card c2)
static Point GetNearestNeighbor(Point p1, Point p2)
static bool IsBlocked(int x, int z, int sx, int sz)
static bool IsVisible(Point p1, Point p2, Action< Point, bool > _onVisit=null)
static Point GetRushPoint(Point p1, Point dest)
static Action< Point, bool > onVisit
Point Set(int _x, int _z)
bool Equals(int _x, int _z)