# HG changeset patch # User Thibaut Girka # Date 1340550007 -7200 # Node ID 1bb78c469f6406541ef2e21a0c4edba54480c63b # Parent 56523a16db1dffafb7f480f15c30813a70649884 Fix difficulty influence on bullet launch interval, and fix instruction 77's rand usage diff --git a/TODO b/TODO --- a/TODO +++ b/TODO @@ -25,7 +25,6 @@ Engine - Patchouli replaces Flandre in the last MSG ECL -- fix 77 interval - 118 and 102 - 121 * 12 diff --git a/pytouhou/game/enemy.py b/pytouhou/game/enemy.py --- a/pytouhou/game/enemy.py +++ b/pytouhou/game/enemy.py @@ -109,12 +109,13 @@ class Enemy(object): self.fire() - def set_bullet_launch_interval(self, value, start=0.): + def set_bullet_launch_interval(self, value, start=0): # Apply difficulty-specific modifiers: - value *= 1. - .4 * (self._game.difficulty - 16.) / 32. + #TODO: check every value possible! Look around 102h.exe@0x408720 + value -= value * (self._game.difficulty - 16) // 80 - self.bullet_launch_interval = int(value) - self.bullet_launch_timer = int(value * start) + self.bullet_launch_interval = value + self.bullet_launch_timer = start % value if value else 0 def fire(self, offset=None, bullet_attributes=None, launch_pos=None): diff --git a/pytouhou/vm/eclrunner.py b/pytouhou/vm/eclrunner.py --- a/pytouhou/vm/eclrunner.py +++ b/pytouhou/vm/eclrunner.py @@ -647,7 +647,7 @@ class ECLRunner(object): @instruction(77) def set_bullet_interval_ex(self, value): - self._enemy.set_bullet_launch_interval(value, self._game.prng.rand_double()) #TODO: check + self._enemy.set_bullet_launch_interval(value, self._game.prng.rand_uint32()) @instruction(78)