# HG changeset patch # User Emmanuel Gil Peyrot # Date 1318980310 25200 # Node ID c4b4f7c068f29e22dc826de204bd646f6d801f02 # Parent b96d835c0807d4f8ecaca784cffc948539f3a691 Fix Cirno’s last spellcard and implement something for Patchy in extra stage. diff --git a/pytouhou/vm/eclrunner.py b/pytouhou/vm/eclrunner.py --- a/pytouhou/vm/eclrunner.py +++ b/pytouhou/vm/eclrunner.py @@ -857,10 +857,29 @@ class ECLRunner(object): bullet.angle = self._game.prng.rand_double() * pi #TODO bullet.delta = (cos(bullet.angle) * bullet.speed, sin(bullet.angle) * bullet.speed) elif function == 1: # Cirno + offset = self._enemy.bullet_launch_offset self._enemy.bullet_launch_offset = ( self._game.prng.rand_uint16() % arg - arg / 2, self._game.prng.rand_uint16() % arg - arg / 2) self._enemy.fire() + self._enemy.bullet_launch_offset = offset + elif function == 13: + if self._enemy.bullet_attributes is None: + return + + offset = self._enemy.bullet_launch_offset + pos = self._enemy.x, self._enemy.y + attributes = self._enemy.bullet_attributes + + self._enemy.x, self._enemy.y = (0, 0) + self._enemy.bullet_launch_offset = (192, 224) + type_, anim, sprite_idx_offset, bullets_per_shot, number_of_shots, speed, speed2, launch_angle, angle, flags = attributes + self._enemy.bullet_attributes = (69, anim, sprite_idx_offset, arg, number_of_shots, speed, speed2, launch_angle, angle, flags) + self._enemy.fire() + + self._enemy.bullet_attributes = attributes + self._enemy.x, self._enemy.y = pos + self._enemy.bullet_launch_offset = offset else: logger.warn("Unimplemented special function %d!", function)