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