Mercurial > touhou
comparison eosd @ 499:5426825c11a6
Fix boss mode
author | Thibaut Girka <thib@sitedethib.com> |
---|---|
date | Fri, 08 Nov 2013 13:24:37 +0100 |
parents | 6be9c99a3a24 |
children | 777544d11578 |
comparison
equal
deleted
inserted
replaced
498:c9c2fb873dbd | 499:5426825c11a6 |
---|---|
71 if args.game == 'EoSD': | 71 if args.game == 'EoSD': |
72 from pytouhou.games.eosd import EoSDCommon as Common, EoSDGame as Game | 72 from pytouhou.games.eosd import EoSDCommon as Common, EoSDGame as Game |
73 | 73 |
74 | 74 |
75 class GameBossRush(Game): | 75 class GameBossRush(Game): |
76 def run_iter(self, keystate): | 76 def run_iter(self, keystates): |
77 for i in range(20): | 77 for i in range(20): |
78 skip = not (self.enemies or self.items or self.lasers | 78 skip = not (self.enemies or self.items or self.lasers |
79 or self.bullets or self.cancelled_bullets) | 79 or self.bullets or self.cancelled_bullets) |
80 if skip: | 80 if skip: |
81 keystate &= ~1 | 81 keystates = [k & ~1 for k in keystates] |
82 Game.run_iter(self, keystate | 256 if i == 0 else 0) | 82 Game.run_iter(self, [0 if i else k | 256 for k in keystates]) |
83 if not self.enemies and self.frame % 90 == 0: | 83 if not self.enemies and self.frame % 90 == 0: |
84 for player in self.players: | 84 for player in self.players: |
85 if player.power < 128: | 85 if player.power < 128: |
86 player.power += 1 | 86 player.power += 1 |
87 if not skip: | 87 if not skip: |
89 | 89 |
90 def cleanup(self): | 90 def cleanup(self): |
91 boss_wait = any(ecl_runner.boss_wait for ecl_runner in self.ecl_runners) | 91 boss_wait = any(ecl_runner.boss_wait for ecl_runner in self.ecl_runners) |
92 if not (self.boss or self.msg_wait or boss_wait): | 92 if not (self.boss or self.msg_wait or boss_wait): |
93 self.enemies = [enemy for enemy in self.enemies | 93 self.enemies = [enemy for enemy in self.enemies |
94 if enemy.boss_callback != -1 or enemy.frame > 1] | 94 if enemy.boss_callback or enemy.frame > 1] |
95 self.lasers = [laser for laser in self.lasers if laser.frame > 1] | 95 self.lasers = [laser for laser in self.lasers if laser.frame > 1] |
96 self.effects = [effect for effect in self.effects | 96 self.effects = [effect for effect in self.effects |
97 if not hasattr(effect, '_laser') | 97 if not hasattr(effect, '_laser') |
98 or effect._laser in self.lasers] | 98 or effect._laser in self.lasers] |
99 self.bullets = [bullet for bullet in self.bullets if bullet.frame > 1] | 99 self.bullets = [bullet for bullet in self.bullets if bullet.frame > 1] |