From 75b6546d5dfc94c868ceb4df095d5a509031f8e1 Mon Sep 17 00:00:00 2001 From: mikakoi <mikakoivuranta1@kamk.fi> Date: Mon, 27 Mar 2023 13:11:29 +0300 Subject: [PATCH] change sentence structure, add exit dialogue --- CMakeLists.txt | 4 +- CMakeLists.txt.user | 2 +- enemy.cpp | 10 ++--- exitdialogue.cpp | 14 +++++++ exitdialogue.h | 23 +++++++++++ exitdialogue.ui | 96 +++++++++++++++++++++++++++++++++++++++++++++ mainwindow.cpp | 33 ++++++++++++---- mainwindow.h | 2 + mainwindow.ui | 53 ++++++++++++------------- player.cpp | 10 ++--- 10 files changed, 199 insertions(+), 48 deletions(-) create mode 100644 exitdialogue.cpp create mode 100644 exitdialogue.h create mode 100644 exitdialogue.ui diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ba3673..5674b57 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,10 +14,10 @@ find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets) set(PROJECT_SOURCES main.cpp - mainwindow.cpp mainwindow.h - mainwindow.ui + mainwindow.cpp mainwindow.h mainwindow.ui player.h player.cpp enemy.h enemy.cpp + exitdialogue.h exitdialogue.cpp exitdialogue.ui ) if(${QT_VERSION_MAJOR} GREATER_EQUAL 6) diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user index 64055e3..e377dfb 100644 --- a/CMakeLists.txt.user +++ b/CMakeLists.txt.user @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE QtCreatorProject> -<!-- Written by QtCreator 9.0.1, 2023-03-20T15:24:45. --> +<!-- Written by QtCreator 9.0.1, 2023-03-27T13:08:41. --> <qtcreator> <data> <variable>EnvironmentId</variable> diff --git a/enemy.cpp b/enemy.cpp index d7b9262..8fe178d 100644 --- a/enemy.cpp +++ b/enemy.cpp @@ -20,7 +20,7 @@ void Enemy::DoAttack() int damage = DamageCalculation(5, 10); mw->TakeDamage(damage); - result = "Clawed for "; + result = "clawed for "; result.append(QString::number(damage)); } else if (random < 45) @@ -29,7 +29,7 @@ void Enemy::DoAttack() int damage = DamageCalculation(8, 10); mw->TakeDamage(damage); - result = "Bit for "; + result = "bit for "; result.append(QString::number(damage)); } else if (random < 65) @@ -39,7 +39,7 @@ void Enemy::DoAttack() mw->LowerMagic(damage); mw->TakeDisadvantage(); - result = "Leeched mana by "; + result = "leeched mana by "; result.append(QString::number(damage)); } else if (random < 85) @@ -49,7 +49,7 @@ void Enemy::DoAttack() mw->DealDamage(damage); mw->DealCleanse(); - result = "Curled up to heal for "; + result = "curled up to heal for "; result.append(QString::number(damage)); } else @@ -59,7 +59,7 @@ void Enemy::DoAttack() mw->TakeDamage(damage); mw->DealDisadvantage(); - result = "Breathed flames for "; + result = "breathed flames for "; result.append(QString::number(damage)); } mw->WriteEnemyAction(result); diff --git a/exitdialogue.cpp b/exitdialogue.cpp new file mode 100644 index 0000000..f863d15 --- /dev/null +++ b/exitdialogue.cpp @@ -0,0 +1,14 @@ +#include "exitdialogue.h" +#include "ui_exitdialogue.h" + +ExitDialogue::ExitDialogue(QWidget *parent) : + QDialog(parent), + ui(new Ui::ExitDialogue) +{ + ui->setupUi(this); +} + +ExitDialogue::~ExitDialogue() +{ + delete ui; +} diff --git a/exitdialogue.h b/exitdialogue.h new file mode 100644 index 0000000..0d1942a --- /dev/null +++ b/exitdialogue.h @@ -0,0 +1,23 @@ +#ifndef EXITDIALOGUE_H +#define EXITDIALOGUE_H + +#include <QDialog> + +namespace Ui { +class ExitDialogue; +} + +class ExitDialogue : public QDialog +{ + Q_OBJECT + +public: + explicit ExitDialogue(QWidget *parent = nullptr); + ~ExitDialogue(); + +private: + Ui::ExitDialogue *ui; +}; + +#endif // EXITDIALOGUE_H + diff --git a/exitdialogue.ui b/exitdialogue.ui new file mode 100644 index 0000000..88d5bff --- /dev/null +++ b/exitdialogue.ui @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>ExitDialogue</class> + <widget class="QDialog" name="ExitDialogue"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>400</width> + <height>300</height> + </rect> + </property> + <property name="windowTitle"> + <string>Dialog</string> + </property> + <widget class="QWidget" name="layoutWidget"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>391</width> + <height>301</height> + </rect> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Are you sure you want to close?</string> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="mouseTracking"> + <bool>false</bool> + </property> + <property name="layoutDirection"> + <enum>Qt::RightToLeft</enum> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::No|QDialogButtonBox::Yes</set> + </property> + <property name="centerButtons"> + <bool>true</bool> + </property> + </widget> + </item> + </layout> + </widget> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>ExitDialogue</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>248</x> + <y>254</y> + </hint> + <hint type="destinationlabel"> + <x>157</x> + <y>274</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>ExitDialogue</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>316</x> + <y>260</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>274</y> + </hint> + </hints> + </connection> + </connections> +</ui> diff --git a/mainwindow.cpp b/mainwindow.cpp index e7d17ea..968fc8f 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -1,6 +1,8 @@ #include "mainwindow.h" #include "./ui_mainwindow.h" +#include "exitdialogue.h" + MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) @@ -123,14 +125,14 @@ void MainWindow::DoEnemyAttack() void MainWindow::WritePlayerAction(QString text) { - QString result = "Player: "; + QString result = "Hero "; result.append(text); ui->playerAction->setText(result); } void MainWindow::WriteEnemyAction(QString text) { - QString result = "Enemy: "; + QString result = "Monster "; result.append(text); ui->enemyAction->setText(result); @@ -156,10 +158,10 @@ void MainWindow::CheckGameState() case GameStatus::MenuOpen: break; case GameStatus::PlayerDead: - WritePlayerAction("Was slain"); + WritePlayerAction("was slain"); break; case GameStatus::EnemyDead: - WriteEnemyAction("Was slain"); + WriteEnemyAction("was slain"); break; default: break; @@ -176,8 +178,8 @@ void MainWindow::RestartGame() DealCleanse(); gameStatus = GameStatus::Playing; - WritePlayerAction("Entered the dungeon"); - WriteEnemyAction("Drew near"); + WritePlayerAction("entered the dungeon"); + WriteEnemyAction("drew near"); } void MainWindow::NewEnemy() { @@ -188,8 +190,8 @@ void MainWindow::NewEnemy() DealCleanse(); gameStatus = GameStatus::Playing; - WritePlayerAction("Encountered an enemy"); - WriteEnemyAction("Drew near"); + WritePlayerAction("encountered an enemy"); + WriteEnemyAction("drew near"); } void MainWindow::on_attackButton_clicked() @@ -277,3 +279,18 @@ void MainWindow::on_RunButton_clicked() break; } } + +void MainWindow::on_actionExit_triggered() +{ + ExitDialogue exit; + exit.setModal(true); + connect(&exit, SIGNAL(accepted()), this, SLOT(close())); + exit.exec(); + + /* + ExitDialog *exit = new ExitDialog(this); + exit->setModal(false); + connect(exit, SIGNAL(accepted()), this, SLOT(close())); + exit->show(); + */ +} diff --git a/mainwindow.h b/mainwindow.h index b9b806d..9bf5f56 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -51,6 +51,8 @@ private slots: void on_RunButton_clicked(); + void on_actionExit_triggered(); + private: void CheckGameState(); diff --git a/mainwindow.ui b/mainwindow.ui index 9669ac4..38fa2ed 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -34,7 +34,7 @@ </rect> </property> </widget> - <widget class="QWidget" name=""> + <widget class="QWidget" name="layoutWidget"> <property name="geometry"> <rect> <x>10</x> @@ -114,7 +114,7 @@ </item> </layout> </widget> - <widget class="QWidget" name=""> + <widget class="QWidget" name="layoutWidget"> <property name="geometry"> <rect> <x>280</x> @@ -124,17 +124,10 @@ </rect> </property> <layout class="QGridLayout" name="gridLayout"> - <item row="1" column="1"> - <widget class="QProgressBar" name="enemyHealth"> - <property name="value"> - <number>24</number> - </property> - </widget> - </item> - <item row="1" column="0"> - <widget class="QProgressBar" name="playerHealth"> - <property name="value"> - <number>24</number> + <item row="4" column="1"> + <widget class="QLabel" name="enemyStatusCondition"> + <property name="text"> + <string>No status condition</string> </property> </widget> </item> @@ -145,15 +138,22 @@ </property> </widget> </item> - <item row="0" column="0"> - <widget class="QLabel" name="PlayerLabel"> - <property name="text"> - <string>Player health</string> + <item row="3" column="0"> + <widget class="QProgressBar" name="PlayerMana"> + <property name="value"> + <number>24</number> </property> </widget> </item> - <item row="3" column="0"> - <widget class="QProgressBar" name="PlayerMana"> + <item row="1" column="0"> + <widget class="QProgressBar" name="playerHealth"> + <property name="value"> + <number>24</number> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QProgressBar" name="enemyHealth"> <property name="value"> <number>24</number> </property> @@ -173,16 +173,16 @@ </property> </widget> </item> - <item row="4" column="1"> - <widget class="QLabel" name="enemyStatusCondition"> + <item row="0" column="0"> + <widget class="QLabel" name="PlayerLabel"> <property name="text"> - <string>No status condition</string> + <string>Player health</string> </property> </widget> </item> </layout> </widget> - <widget class="QWidget" name=""> + <widget class="QWidget" name="layoutWidget"> <property name="geometry"> <rect> <x>10</x> @@ -208,7 +208,7 @@ </item> </layout> </widget> - <widget class="QWidget" name=""> + <widget class="QWidget" name="layoutWidget"> <property name="geometry"> <rect> <x>281</x> @@ -221,14 +221,14 @@ <item> <widget class="QLabel" name="playerAction"> <property name="text"> - <string>Player: Started fight</string> + <string>Hero entered the dungeon</string> </property> </widget> </item> <item> <widget class="QLabel" name="enemyAction"> <property name="text"> - <string>Enemy: Started fight</string> + <string>Monster drew near</string> </property> </widget> </item> @@ -248,7 +248,6 @@ <property name="title"> <string>File</string> </property> - <addaction name="actionSave"/> <addaction name="actionExit"/> </widget> <addaction name="menuFile"/> diff --git a/player.cpp b/player.cpp index a97636a..d9bb96f 100644 --- a/player.cpp +++ b/player.cpp @@ -24,7 +24,7 @@ void Player::Attack() mw->DealDamage(damage); mw->DoEnemyAttack(); - QString result = "Stabbed for "; + QString result = "stabbed for "; result.append(QString::number(damage)); mw->WritePlayerAction(result); } @@ -34,7 +34,7 @@ void Player::HeavyAttack() int damage = DamageCalculation(3, 10); mw->DealDamage(damage); - QString result = "Bonked for "; + QString result = "bonked for "; result.append(QString::number(damage)); mw->WritePlayerAction(result); @@ -49,7 +49,7 @@ void Player::DarkMagic() int damage = 15; mw->DealDamage(damage); - QString result = "Spellcast for "; + QString result = "spellcast for "; result.append(QString::number(damage)); mw->WritePlayerAction(result); @@ -65,7 +65,7 @@ void Player::LightMagic() int damage = -15; mw->TakeDamage(damage); - QString result = "Healed for "; + QString result = "healed for "; result.append(QString::number(damage)); mw->WritePlayerAction(result); @@ -77,7 +77,7 @@ void Player::Run() mw->DealDisadvantage(); mw->TakeCleanse(); - QString result = "Distracted"; + QString result = "distracted opponent"; mw->WritePlayerAction(result); mw->DoEnemyAttack(); -- GitLab