/** * \brief Starts this state. * \param previous_state the previous state */ void Hero::SpinAttackState::start(const State* previous_state) { State::start(previous_state); // play the sound play_spin_attack_sound(); // start the animation Hero& hero = get_entity(); if (get_equipment().has_ability(Ability::SWORD_KNOWLEDGE)) { get_sprites().set_animation_super_spin_attack(); std::shared_ptr<CircleMovement> movement = std::make_shared<CircleMovement>(false); movement->set_center(hero.get_xy()); movement->set_radius_speed(128); movement->set_radius(24); movement->set_angle_speed(540); movement->set_max_rotations(3); movement->set_clockwise(true); hero.set_movement(movement); } else { get_sprites().set_animation_spin_attack(); } }
/** * @brief Starts this state. * @param previous_state the previous state */ void Hero::SpinAttackState::start(State* previous_state) { State::start(previous_state); // play the sound play_spin_attack_sound(); // start the animation if (get_equipment().has_ability("sword_knowledge")) { get_sprites().set_animation_super_spin_attack(); CircleMovement* movement = new CircleMovement(false); movement->set_center(hero.get_xy()); movement->set_radius_speed(128); movement->set_radius(24); movement->set_angle_speed(540); movement->set_max_rotations(3); movement->set_clockwise(true); hero.set_movement(movement); } else { get_sprites().set_animation_spin_attack(); } }