#include "Carrot.hpp" #include "Arguments.hpp" #include #include #include #include Carrot::Carrot(const std::vector &angry_paths, const std::vector &neutral_paths, const std::vector &happy_paths, sf::Font &mFont) : angryAnimation(angry_paths), neutralAnimation(neutral_paths), happyAnimation(happy_paths), carrotState(Angry), carrotText(mFont) { goodArguments = GOOD_ARGUMENTS; neutralArguments = NEUTRAL_ARGUMENTS; badArguments = BAD_ARGUMENTS; } void Carrot::draw(sf::RenderWindow &RenderWindow, float dtime) { switch (carrotState) { case Angry: RenderWindow.draw(angryAnimation); angryAnimation.update(dtime); break; case Neutral: RenderWindow.draw(neutralAnimation); neutralAnimation.update(dtime); break; case Happy: RenderWindow.draw(happyAnimation); happyAnimation.update(dtime); break; } } void Carrot::handleText(sf::RenderWindow &renderWindow, float dtime) { renderWindow.draw(carrotText); timeBuffer += dtime; if (timeBuffer < timePerText) return; timeBuffer = 0; int random = rand(); switch (carrotState) { case Angry: carrotText.setString(badArguments[random % badArguments.size()]); break; case Neutral: carrotText.setString(neutralArguments[random % neutralArguments.size()]); break; case Happy: carrotText.setString(goodArguments[random % goodArguments.size()]); break; } } void Carrot::setPosition(sf::Vector2f new_pos) { angryAnimation.setPosition(new_pos); neutralAnimation.setPosition(new_pos); happyAnimation.setPosition(new_pos); } void Carrot::setScale(sf::Vector2f new_scale) { angryAnimation.setScale(new_scale); neutralAnimation.setScale(new_scale); happyAnimation.setScale(new_scale); } void Carrot::changeState(CarrotState new_state) { carrotState = new_state; };