implemented lizard hurt animation
This commit is contained in:
parent
7d1e049614
commit
fa360ebb40
39
NS.py
39
NS.py
|
@ -1727,6 +1727,10 @@ class Chemtrails(Sprite):
|
|||
for directory in sorted(iglob(join(self.get_resource("littleSlimeGoop"), "[0-9]_*/"))):
|
||||
self.add_frameset(switch=True)
|
||||
self.load_from_path(directory, True)
|
||||
self.add_frameset(name="hurt", switch=True)
|
||||
self.load_from_path("littleSlimeGoop/Hurt", True)
|
||||
self.set_frameset(NS.N)
|
||||
self.register(self.cancel_hurt)
|
||||
self.life = Life(self)
|
||||
self.boys = Boys(self)
|
||||
self.timer = Timer(self)
|
||||
|
@ -1739,6 +1743,7 @@ class Chemtrails(Sprite):
|
|||
self.life.reset()
|
||||
self.boys.reset()
|
||||
self.timer.reset()
|
||||
self.set_frameset(NS.N)
|
||||
|
||||
def deactivate(self):
|
||||
self.active = False
|
||||
|
@ -1753,6 +1758,20 @@ class Chemtrails(Sprite):
|
|||
self.timer.reset()
|
||||
self.queue_index = 0
|
||||
|
||||
def display_hurt(self):
|
||||
"""
|
||||
Show hurt animation and trigger it to end after a delay
|
||||
"""
|
||||
self.set_frameset("hurt")
|
||||
self.play(self.cancel_hurt, delay=1000, play_once=True)
|
||||
|
||||
def cancel_hurt(self):
|
||||
"""
|
||||
Reset to a non-hurt frameset
|
||||
"""
|
||||
self.set_frameset(NS.N)
|
||||
self.orient()
|
||||
|
||||
def update(self):
|
||||
if self.active:
|
||||
self.orient()
|
||||
|
@ -1808,7 +1827,8 @@ class Chemtrails(Sprite):
|
|||
edge = self.get_game().platform.get_edge_pressed()
|
||||
dy = -Light.TITLE_OFFSET if self.get_game().title.active else 0
|
||||
if edge is not None:
|
||||
self.set_frameset(edge + 1)
|
||||
if self.get_current_frameset().name != "hurt":
|
||||
self.set_frameset(edge + 1)
|
||||
self.unhide()
|
||||
else:
|
||||
self.hide()
|
||||
|
@ -1816,24 +1836,19 @@ class Chemtrails(Sprite):
|
|||
self.location.center = ds.get_width() / 2, NS.FRONT + dy - 10
|
||||
self.orientation = NS.N
|
||||
elif edge == NS.E:
|
||||
self.location.center = ds.get_width() / 2 + NS.FRONT_WIDTH / 2 - 85, \
|
||||
NS.FRONT + NS.LENGTH * NS.STEP - 40 + dy
|
||||
self.location.center = ds.get_width() / 2 + NS.FRONT_WIDTH / 2 - 85, NS.FRONT + NS.LENGTH * NS.STEP - 40 + dy
|
||||
self.orientation = NS.E
|
||||
elif edge == NS.S:
|
||||
self.location.center = ds.get_width() / 2, \
|
||||
NS.FRONT + NS.LENGTH - NS.LENGTH * NS.STEP - 65 + dy
|
||||
self.location.center = ds.get_width() / 2, NS.FRONT + NS.LENGTH - NS.LENGTH * NS.STEP - 65 + dy
|
||||
self.orientation = NS.S
|
||||
elif edge == NS.W:
|
||||
self.location.center = ds.get_width() / 2 - NS.FRONT_WIDTH / 2 + 85, \
|
||||
NS.FRONT + NS.LENGTH * NS.STEP - 40 + dy
|
||||
self.location.center = ds.get_width() / 2 - NS.FRONT_WIDTH / 2 + 85, NS.FRONT + NS.LENGTH * NS.STEP - 40 + dy
|
||||
self.orientation = NS.W
|
||||
elif edge == NS.NW:
|
||||
self.location.center = ds.get_width() / 2, \
|
||||
NS.FRONT + NS.LENGTH * NS.STEP + dy - 45
|
||||
self.location.center = ds.get_width() / 2, NS.FRONT + NS.LENGTH * NS.STEP + dy - 45
|
||||
self.orientation = NS.NW
|
||||
elif edge == NS.NE:
|
||||
self.location.center = ds.get_width() / 2 - 5, \
|
||||
NS.FRONT + NS.LENGTH * NS.STEP - 45 + dy
|
||||
self.location.center = ds.get_width() / 2 - 5, NS.FRONT + NS.LENGTH * NS.STEP - 45 + dy
|
||||
self.orientation = NS.NE
|
||||
else:
|
||||
self.orientation = None
|
||||
|
@ -2330,6 +2345,7 @@ class Boss(Animation):
|
|||
else:
|
||||
self.level_sprite().set_frameset("normal")
|
||||
self.play(self.flash_player_damage)
|
||||
self.get_game().chemtrails.set_frameset("hurt")
|
||||
self.player_defeated = not win
|
||||
self.kills += not win
|
||||
self.play(self.show_end_dialogue, delay=3000, play_once=True)
|
||||
|
@ -2813,6 +2829,7 @@ class Sword(Animation):
|
|||
sprite.hide()
|
||||
self.get_game().boss.start_player_damage()
|
||||
self.get_audio().play_sfx("damage", x=sprite.location.centerx)
|
||||
self.get_game().chemtrails.display_hurt()
|
||||
else:
|
||||
center_save = sprite.location.center
|
||||
sprite.set_frameset("explode")
|
||||
|
|
Loading…
Reference in New Issue