/** * \brief This function is called when a destructible item detects a non-pixel precise collision with this entity. * \param destructible the destructible item * \param collision_mode the collision mode that detected the event */ void Hookshot::notify_collision_with_destructible(Destructible& destructible, CollisionMode /* collision_mode */) { if (destructible.is_obstacle_for(*this) && is_flying()) { if (destructible.get_can_explode()) { destructible.explode(); go_back(); } else { attach_to(destructible); } } }
/** * \brief This function is called when a destructible item detects a non-pixel perfect collision with this entity. * \param destructible the destructible item * \param collision_mode the collision mode that detected the event */ void Arrow::notify_collision_with_destructible( Destructible& destructible, CollisionMode collision_mode) { if (destructible.is_obstacle_for(*this) && is_flying()) { if (destructible.get_can_explode()) { destructible.explode(); remove_from_map(); } else { attach_to(destructible); } } }