playervsplayerintro.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #include "ui/hotseat_intro/playervsplayerintro.h"
  2. #include "gui/guiscenemanager.h"
  3. #include "playermanager.h"
  4. #include "soundengine.h"
  5. #include "gui/scene.h"
  6. #include "ui_playervsplayerintro.h"
  7. #include <QMovie>
  8. PlayerVsPlayerIntro::PlayerVsPlayerIntro(QWidget *parent) :
  9. Scene(parent),
  10. ui(new Ui::PlayerVsPlayerIntro)
  11. {
  12. ui->setupUi(this);
  13. watcher = new PvPIntroButtonHoverWatcher(this);
  14. ui->back_button->installEventFilter(watcher);
  15. ui->continue_button->installEventFilter(watcher);
  16. movie = new QMovie(":/assets/hotseat_intro/image.gif");
  17. ui->image->setMovie(movie);
  18. movie->start();
  19. }
  20. void PlayerVsPlayerIntro::init()
  21. {
  22. // GuiSceneManager::getInstance().show("main_menu_background");
  23. // raise();
  24. }
  25. PlayerVsPlayerIntro::~PlayerVsPlayerIntro()
  26. {
  27. delete ui;
  28. delete watcher;
  29. }
  30. PvPIntroButtonHoverWatcher::PvPIntroButtonHoverWatcher(QObject * parent) :
  31. QObject(parent)
  32. {}
  33. bool PvPIntroButtonHoverWatcher::eventFilter(QObject * watched, QEvent * event) {
  34. QPushButton * button = qobject_cast<QPushButton*>(watched);
  35. if (!button) {
  36. return false;
  37. }
  38. if (event->type() == QEvent::Enter) {
  39. button->setStyleSheet("border-image: url(:/assets/hotseat_intro/" + button->objectName() + "_hover.png);");
  40. SoundEngine::getInstance().playAsync("qrc:/assets/hotseat_intro/button_hover.mp3");
  41. return false;
  42. }
  43. if (event->type() == QEvent::Leave){
  44. button->setStyleSheet("border-image: url(:/assets/hotseat_intro/" + button->objectName() + ".png);");
  45. return false;
  46. }
  47. if (event->type() == QEvent::MouseButtonPress) {
  48. SoundEngine::getInstance().playAsync("qrc:/assets/hotseat_intro/button_click.mp3");
  49. return false;
  50. }
  51. return false;
  52. }
  53. void PlayerVsPlayerIntro::on_back_button_clicked() {
  54. GuiSceneManager::getInstance().changeScene("main_menu");
  55. }
  56. void PlayerVsPlayerIntro::on_continue_button_clicked() {
  57. PlayerManager::getInstance().setPlayersNum(2);
  58. /// TODO - Check if money input correct
  59. GuiSceneManager::getInstance().changeScene("recruit_army", "0|" + ui->money->text());
  60. }