use ggez::GameResult; use num_traits::clamp; use crate::caret::CaretType; use crate::common::Direction; use crate::npc::list::NPCList; use crate::npc::NPC; use crate::player::Player; use crate::shared_game_state::SharedGameState; impl NPC { pub(crate) fn tick_n154_gaudi_dead(&mut self, state: &mut SharedGameState) -> GameResult { let dir_offset = if self.direction == Direction::Left { 0 } else { 3 }; self.anim_rect = state.constants.npc.n154_gaudi_dead[self.anim_num as usize + dir_offset]; Ok(()) } pub(crate) fn tick_n156_gaudi_projectile(&mut self, state: &mut SharedGameState) -> GameResult { if self.action_counter > 300 || (self.flags.0 & 0xff) != 0 { self.cond.set_alive(false); state.create_caret(self.x, self.y, CaretType::ProjectileDissipation, Direction::Left); } self.x += self.vel_x; self.y += self.vel_y; self.anim_num = (self.anim_num + 1) % 3; self.anim_rect = state.constants.npc.n156_gaudi_projectile[self.anim_num as usize]; Ok(()) } }