-
Notifications
You must be signed in to change notification settings - Fork 0
/
empty.cpp
128 lines (123 loc) · 3.33 KB
/
empty.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
/***************************************************************************************************
** Author: Kurt Kaiser
** Website: kurtkaiser.us
** Info: Designed a one-player, text-based game, the player can move through
** spaces to get items and accomplish goals.
****************************************************************************************************/
#include <iostream>
#include <string>
#include "space.hpp"
#include "empty.hpp"
using std::cout;
using std::string;
using std::endl;
using std::cin;
// Constructor for the House class
Empty::Empty() {
// Defing private variables
Space::setSquare('*');
Space::setDefaultSquare('*');
Space::setEnemyName("rattlesnake");
}
Empty::~Empty(){
// Deconstructor
}
// Declaring public methods
// Methods to simulate space combat
int Empty::battle(int health, string weapon) {
int playerHealth = health;
int enemyHealth = 3;
int choice = 0;
int damage = 0;
int randomEvent;
int playerStrength = 1;
int enemyStrength = 1;
if (weapon == "sword"){
playerStrength = 2;
}
// Player takes immediate damage 1/3 of the time
randomEvent = Space::rollDice();
if (randomEvent < 2) {
cout << "BITE! Ouch!!" << endl;
playerHealth--;
}
else if (randomEvent == 4)
{
Space::setEnemyName("desert bighorn sheep");
enemyHealth = 8;
enemyStrength = 1;
}
else if (randomEvent == 6) {
Space::setEnemyName("armadillo");
enemyHealth = 8;
enemyStrength = 1.5;
}
cout << "<>>>>>:>~ A " << Space::getEnemyName() << " lunges at you. ~<:<<<<<>" << endl;
while (choice != 1 && choice != 2) {
cout << "Enter 1 to fight, 2 to run." << endl;
cin >> choice;
cout << choice << endl;
}
while (enemyHealth > 0 && playerHealth > 0) {
if (choice == 2) {
if (Space::rollDice() > 3) {
enemyHealth = 0;
cout << "You escaped." << endl;
}
else {
cout << "Ouch! You can't get away fast enough." << endl;
playerHealth = playerHealth - enemyStrength;
choice = 0;
while (choice != 1 && choice != 2) {
cout << "Enter 1 to fight, 2 to run." << endl;
cin >> choice;
}
}
}
else {
cout << "You attack with your " << weapon << "." << endl;
damage = Space::rollDice();
if (damage == 6) {
cout << "Your attack missed." << endl;
}
else {
enemyHealth = enemyHealth - damage * playerStrength;
cout << "Your attack's strength: " << damage << endl;
if (enemyHealth < 0) {
enemyHealth = 0;
}
cout << "Animals health: " << enemyHealth << endl;
}
if (enemyHealth > 0) {
damage = Space::rollDice()* enemyStrength;
playerHealth = playerHealth - damage;
cout << "OUCH! You are attacked! Damage: " << damage;
cout << ", Health: " << playerHealth << endl;
}
if (enemyHealth < 1) {
cout << "You won!" << endl;
if (Space::getEnemyName() == "desert bighorn sheep") {
Space::setItemName("hide");
}
else {
Space::setItemName("meat");
}
Space::setEnemyName("");
}
else if (playerHealth < 1) {
cout << "You died." << endl;
}
else {
choice = 0;
while (choice != 1 && choice != 2) {
cout << "Enter 1 to fight, 2 to run." << endl;
cin >> choice;
}
}
}
}
return playerHealth;
}
int Empty::pillage() {
return 0;
}