summaryrefslogtreecommitdiff
path: root/actor.py
diff options
context:
space:
mode:
Diffstat (limited to 'actor.py')
-rw-r--r--actor.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/actor.py b/actor.py
new file mode 100644
index 0000000..f963941
--- /dev/null
+++ b/actor.py
@@ -0,0 +1,29 @@
+import net.mapserv as mapserv
+from net.common import distance
+
+
+def find_nearest_being(name='', type='', ignored_ids=[], allowed_jobs=[]):
+
+ if mapserv.beings_cache is None:
+ return None
+
+ min_disance = 1000000
+ px = mapserv.player_pos['x']
+ py = mapserv.player_pos['y']
+ nearest = None
+
+ for b in mapserv.beings_cache.values():
+ if b.id in ignored_ids:
+ continue
+ if name and b.name != name:
+ continue
+ if type and b.type != type:
+ continue
+ if allowed_jobs and b.job not in allowed_jobs:
+ continue
+ dist = distance(px, py, b.x, b.y)
+ if dist < min_disance:
+ min_disance = dist
+ nearest = b
+
+ return nearest