view 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 source

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()