Mercurial > touhou
changeset 457:4ccc47828002
Display the name of a spellcard and the face of its invoker.
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Sat, 10 Aug 2013 13:36:42 +0200 |
parents | cae1ae9de430 |
children | 1b56d62250ab |
files | pytouhou/game/game.pyx pytouhou/game/player.pxd pytouhou/game/player.pyx pytouhou/vm/eclrunner.py |
diffstat | 4 files changed, 34 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/pytouhou/game/game.pyx +++ b/pytouhou/game/game.pyx @@ -46,7 +46,7 @@ cdef class Game: self.items = [] self.labels = [] self.faces = [None, None] - self.texts = [None, None, None, None] + self.texts = [None, None, None, None, None, None] self.interface = interface self.hints = hints @@ -100,13 +100,33 @@ cdef class Game: def enable_spellcard_effect(self): - self.spellcard_effect = Effect((-32., -16.), 0, - self.spellcard_effect_anm) #TODO: find why this offset is necessary. - self.spellcard_effect.sprite.allow_dest_offset = True #TODO: should be the role of anm’s 25th instruction. Investigate! + pos = (-32, -16) + self.spellcard_effect = Effect(pos, 0, + self.spellcard_effect_anm) + self.spellcard_effect.sprite.allow_dest_offset = True + + face = Effect(pos, 3, self.msg_anm[0][0][0]) + face.sprite.allow_dest_offset = True + face.sprite.anm, face.sprite.texcoords = self.msg_anm[1][self.spellcard[2]] + self.effects.append(face) + + self.texts[5] = self.new_native_text((384-24, 24), self.spellcard[1], align='right') def disable_spellcard_effect(self): self.spellcard_effect = None + self.texts[5] = None + + + def set_player_bomb(self): + face = Effect((-32, -16), 1, self.msg_anm[0][0][0]) + face.sprite.allow_dest_offset = True + self.effects.append(face) + self.texts[4] = self.new_native_text((24, 24), u'Player Spellcard') + + + def unset_player_bomb(self): + self.texts[4] = None cpdef drop_bonus(self, double x, double y, long _type, end_pos=None):
--- a/pytouhou/game/player.pxd +++ b/pytouhou/game/player.pxd @@ -14,7 +14,7 @@ cdef class Player(Element): cdef object anm cdef tuple speeds - cdef long fire_time, direction + cdef long fire_time, bomb_time, direction cdef void set_anim(self, index) cpdef play_sound(self, str name)
--- a/pytouhou/game/player.pyx +++ b/pytouhou/game/player.pyx @@ -230,6 +230,14 @@ cdef class Player(Element): self.fire() self.fire_time -= 1 + if keystate & 2 and self.bomb_time == 0: + self._game.set_player_bomb() + self.bomb_time = 240 + if self.bomb_time > 0: + self.bomb_time -= 1 + if self.bomb_time == 0: + self._game.unset_player_bomb() + if self.death_time: time = self._game.frame - self.death_time if time == 6: # too late, you are dead :(
--- a/pytouhou/vm/eclrunner.py +++ b/pytouhou/vm/eclrunner.py @@ -746,7 +746,7 @@ class ECLRunner(object): #TODO: display it on the game. self._enemy.difficulty_coeffs = (-.5, .5, 0, 0, 0, 0) self._game.change_bullets_into_star_items() - self._game.spellcard = (number, name) + self._game.spellcard = (number, name, face) self._game.enable_spellcard_effect()