Mercurial > touhou
comparison pytouhou/vm/eclrunner.py @ 207:709f42eaa55e
Minor refactoring
author | Thibaut Girka <thib@sitedethib.com> |
---|---|
date | Sat, 05 Nov 2011 20:19:15 +0100 |
parents | 52c0b9399413 |
children | 577f45454402 |
comparison
equal
deleted
inserted
replaced
206:eca53abdfeab | 207:709f42eaa55e |
---|---|
884 for bullet in self._game.bullets: | 884 for bullet in self._game.bullets: |
885 bullet.speed = 2.0 #TODO | 885 bullet.speed = 2.0 #TODO |
886 bullet.angle = self._game.prng.rand_double() * pi #TODO | 886 bullet.angle = self._game.prng.rand_double() * pi #TODO |
887 bullet.delta = (cos(bullet.angle) * bullet.speed, sin(bullet.angle) * bullet.speed) | 887 bullet.delta = (cos(bullet.angle) * bullet.speed, sin(bullet.angle) * bullet.speed) |
888 elif function == 1: # Cirno | 888 elif function == 1: # Cirno |
889 offset = self._enemy.bullet_launch_offset | 889 offset = (self._game.prng.rand_uint16() % arg - arg / 2, |
890 self._enemy.bullet_launch_offset = ( | 890 self._game.prng.rand_uint16() % arg - arg / 2) |
891 self._game.prng.rand_uint16() % arg - arg / 2, | 891 self._enemy.fire(offset=offset) |
892 self._game.prng.rand_uint16() % arg - arg / 2) | |
893 self._enemy.fire() | |
894 self._enemy.bullet_launch_offset = offset | |
895 elif function == 13: | 892 elif function == 13: |
896 if self._enemy.bullet_attributes is None: | 893 if self._enemy.bullet_attributes is None: |
897 return | 894 return |
898 | 895 |
899 if self._enemy.frame % 6: | 896 if self._enemy.frame % 6: |
900 return | 897 return |
901 | 898 |
902 offset = self._enemy.bullet_launch_offset | 899 (type_, anim, sprite_idx_offset, bullets_per_shot, number_of_shots, |
903 pos = self._enemy.x, self._enemy.y | 900 speed, speed2, launch_angle, angle, flags) = self._enemy.bullet_attributes |
904 attributes = self._enemy.bullet_attributes | |
905 | |
906 self._enemy.x, self._enemy.y = (192, 224) | |
907 type_, anim, sprite_idx_offset, bullets_per_shot, number_of_shots, speed, speed2, launch_angle, angle, flags = attributes | |
908 for i in range(arg): | 901 for i in range(arg): |
909 _angle = i*2*pi/arg | 902 _angle = i*2*pi/arg |
910 _angle2 = _angle + self._getval(-10007) | 903 _angle2 = _angle + self._getval(-10007) |
911 _distance = self._getval(-10008) | 904 _distance = self._getval(-10008) |
912 self._enemy.bullet_launch_offset = (cos(_angle2) * _distance, sin(_angle2) * _distance) | 905 launch_pos = (192 + cos(_angle2) * _distance, |
913 self._enemy.bullet_attributes = (type_, anim, sprite_idx_offset, bullets_per_shot, number_of_shots, speed, speed2, self._getval(-10006) + _angle, angle, flags) | 906 224 + sin(_angle2) * _distance) |
914 self._enemy.fire() | 907 bullet_attributes = (type_, anim, sprite_idx_offset, |
915 | 908 bullets_per_shot, number_of_shots, |
916 self._enemy.bullet_attributes = attributes | 909 speed, speed2, |
917 self._enemy.x, self._enemy.y = pos | 910 self._getval(-10006) + _angle, angle, flags) |
918 self._enemy.bullet_launch_offset = offset | 911 self._enemy.fire(launch_pos=launch_pos, |
912 bullet_attributes=bullet_attributes) | |
919 else: | 913 else: |
920 logger.warn("Unimplemented special function %d!", function) | 914 logger.warn("Unimplemented special function %d!", function) |
921 | 915 |
922 | 916 |
923 @instruction(123) | 917 @instruction(123) |