summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2015-09-22 18:21:38 +0200
committerFlorian Jung <flo@windfisch.org>2015-09-22 18:21:38 +0200
commit7bfa215e4ce3850cfa2cc4812ad62d8725ba372b (patch)
tree0e6fbe48efe1ac86c84e53dea6a15143e41fcf72
parentdf65f6fbf6a08c767450e488c6863406f3a44ede (diff)
parent6b01cbf241173e9047654eef02786669216e2e9d (diff)
Merge branch 'master' into pathfinding
-rw-r--r--mechanics.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/mechanics.py b/mechanics.py
index 3aaa405..c290a5f 100644
--- a/mechanics.py
+++ b/mechanics.py
@@ -13,3 +13,22 @@ def viewport_diag(sizesum):
return 370 * max(sizesum,70)**0.431776
eject_delta = 22 # how many degrees do ejects deviate from the original direction (maximum)
+
+def get_my_smallest_cell(c):
+ return sorted(c.player.own_cells, key = lambda x: x.mass)[0]
+
+def get_my_largest_cell(c):
+ return sorted(c.player.own_cells, key = lambda x: x.mass)[-1]
+
+def is_enemy(cell, c):
+ return (not cell.same_player(c.player.own_cells[0])) and cell.mass > 1.25 * get_my_smallest_cell(c).mass
+
+def is_splitkiller(cell, c):
+ return (not cell.same_player(c.player.own_cells[0])) and cell.mass > 2.5 * get_my_smallest_cell(c).mass
+
+def is_edible(cell, c):
+ return cell.is_food or cell.is_ejected_mass or ( (not cell.same_player(c.player.own_cells[0])) and not is_enemy(cell,c) and get_my_largest_cell(c).mass > 1.25 * cell.mass )
+
+def is_dangerous_virus(cell, c):
+ return cell.is_virus and (cell.mass < self.get_my_largest().mass)
+