diff pytouhou/vm/__init__.py @ 599:d471b07ce4fd

Add a sample Python ECL.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Sat, 25 Oct 2014 18:52:21 +0200
parents e15672733c93
children d1f0bb0b7a17
line wrap: on
line diff
--- a/pytouhou/vm/__init__.py
+++ b/pytouhou/vm/__init__.py
@@ -1,3 +1,29 @@
 from .anmrunner import ANMRunner
 from .msgrunner import MSGRunner
 from .eclrunner import ECLMainRunner
+
+
+class PythonMainRunner(object):
+    def __init__(self, main, game):
+        self.main = main
+        self.game = game
+
+    def run_iter(self):
+        self.main(self.game)
+
+
+class EnemyRunner(object):
+    def __init__(self, enemy, game, sub):
+        self.enemy = enemy
+        self.game = game
+        self.sub = sub
+
+    def run_iteration(self):
+        self.sub(self.enemy, self.game)
+
+
+def spawn_enemy(game, sub, x=0., y=0., life=1, item=-1, score=0, mirrored=False, random=False):
+    instr_type = (2 if mirrored else 0) | (4 if random else 0)
+    enemy = game.new_enemy((x, y, 0.), life, instr_type, item, score)
+    enemy.process = EnemyRunner(enemy, game, sub)
+    enemy.process.run_iteration()