-
Notifications
You must be signed in to change notification settings - Fork 0
/
ui.cpp
139 lines (125 loc) · 2.93 KB
/
ui.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
// ui.cpp
// ross spicer
//
// this class is for user inteaction
//
#include "ui.h"
#include <cstdlib>
//void UI::keyDown(char key, Dungeon & myDungeon , Player & myPlayer, ImportantMessage & splash)
// this is the ui function for key presses
// pramaters
// key -- the key presed
// myDungeon -- the games dungeon
// myPlayey -- the games player
// splash -- for iportant messeges
//
void UI::keyDown(char key, Dungeon & myDungeon , Player & myPlayer, ImportantMessage & splash)
{
const int EXIT_TIME = 3;
// player can exit whenever
if (key == '`' )
{
exit(0);
}
// show victory messege
if(myPlayer.getLevel() == 6)
{
splash.splashMessage("You've Just Reached level 6,\n You Win!!, \nthe Game will now exit", EXIT_TIME, true);
}
// allow commands while alive and less than level 4
if (myPlayer.getHitPoints() > 0 && myPlayer.getLevel() != 6)
{
// ui for movement phase
if (!myDungeon.occupied())
{
if ((key == 'w')||(key == 'a')||(key == 'd'))
{
bool moved;
moved = myDungeon.ChangeRoom(key, myPlayer.getLevel());
if (moved)
{
myPlayer.movementDescription();
}
}
// heal
if (key == 'h')
{
myPlayer.drinkHPPotion();
}
// magic potion
if (key == 'g')
{
myPlayer.drinkManaPotion();
}
// cheat for potions
if (key == '9')
{
myPlayer.setHPPotions(1);
myPlayer.setManaPotions(1);
}
}
// battle phase
else
{
Player::fightVictor victor;
// attack
if (key == ' ')
{
victor = myPlayer.turn(myDungeon.getMonster(),Player::ATTACK);
if (victor == Player::PLAYER)
{
myPlayer.enemyDrop(myDungeon.getMonster());
myDungeon.killMonster();
}
if (victor == Player::MONSTER)
{
splash.splashMessage("You've Just Died,\nthe Game will now exit", EXIT_TIME, true);
}
}
// magic attack
if (key == 'm')
{
victor = myPlayer.turn(myDungeon.getMonster(),Player::MAGICATTACK);
if (victor == Player::PLAYER)
{
myPlayer.enemyDrop(myDungeon.getMonster());
myDungeon.killMonster();
}
if (victor == Player::MONSTER)
{
splash.splashMessage("You've Just Died,\r\nthe Game will now exit", EXIT_TIME, true);
}
}
// dring HP
if (key == 'h')
{
victor = myPlayer.turn(myDungeon.getMonster(),Player::DRINKHP);
if (victor == Player::MONSTER)
{
splash.splashMessage("You've Just Died,\nthe Game will now exit", EXIT_TIME, true);
}
}
// drink mana
if (key == 'g')
{
victor = myPlayer.turn(myDungeon.getMonster(),Player::DRINKMANA);
if (victor == Player::MONSTER)
{
splash.splashMessage("You've Just Died,\nthe Game will now exit", EXIT_TIME, true);
}
}
// cheat victory
if (key == '0')
{
myPlayer.enemyDrop(myDungeon.getMonster());
myDungeon.killMonster();
}
// cheat for potions
if (key == '9')
{
myPlayer.setHPPotions(1);
myPlayer.setManaPotions(1);
}
}
}
}// end UI::keyDown