|
|
- #include "Game.hpp"
-
- std::map<std::string, Element> Game::Elements;
- std::map<Element, std::vector<Spell>> Game::SpellBook;
- std::vector<Character> Game::PlayerParty;
-
- bool Game::isPartyAlive(std::vector<Character> &party)
- {
- std::vector<Character>::iterator it;
- for (it = party.begin(); it != party.end(); ++it)
- {
- if (it->isAlive())
- {
- return true;
- }
- }
- return false;
- }
-
- void Game::init()
- {
- /* initialise elements */
- Game::Elements["Fire"] = Element("Fire");
- Game::Elements["Water"] = Element("Water");
- Game::Elements["Wind"] = Element("Wind");
- Game::Elements["Earth"] = Element("Earth");
- Game::Elements["Holy"] = Element("Holy");
- Game::Elements["Dark"] = Element("Dark");
- Game::Elements["Void"] = Element("Void");
- Game::Elements["Fire"].setStrongAgainst(&Game::Elements["Earth"]);
- Game::Elements["Fire"].setWeakAgainst(&Game::Elements["Water"]);
- Game::Elements["Water"].setStrongAgainst(&Game::Elements["Fire"]);
- Game::Elements["Water"].setWeakAgainst(&Game::Elements["Wind"]);
- Game::Elements["Wind"].setStrongAgainst(&Game::Elements["Water"]);
- Game::Elements["Wind"].setWeakAgainst(&Game::Elements["Earth"]);
- Game::Elements["Earth"].setStrongAgainst(&Game::Elements["Wind"]);
- Game::Elements["Earth"].setWeakAgainst(&Game::Elements["Fire"]);
- Game::Elements["Holy"].setStrongAgainst(&Game::Elements["Dark"]);
- Game::Elements["Holy"].setWeakAgainst(&Game::Elements["Dark"]);
- Game::Elements["Dark"].setStrongAgainst(&Game::Elements["Holy"]);
- Game::Elements["Dark"].setWeakAgainst(&Game::Elements["Holy"]);
-
- /* initialise spell book */
- SpellBook[Game::Elements["Fire"]] = {
- Spell("Fire Bolt", &Game::Elements["Fire"], Spell::TYPE_DESTRUCTION, 10, 5),
- Spell("Warm Touch", &Game::Elements["Fire"], Spell::TYPE_RESTORATION, 10, 10),
- Spell("Flame Javelin", &Game::Elements["Fire"], Spell::TYPE_DESTRUCTION, 25, 15),
- Spell("Flaming Rocket", &Game::Elements["Fire"], Spell::TYPE_DESTRUCTION, 50, 20),
- Spell("Sun's Strike", &Game::Elements["Fire"], Spell::TYPE_DESTRUCTION, 100, 25),
- Spell("Big Bang", &Game::Elements["Fire"], Spell::TYPE_DESTRUCTION, 200, 30)};
- SpellBook[Game::Elements["Water"]] = {
- Spell("Water Splash", &Game::Elements["Water"], Spell::TYPE_DESTRUCTION, 10, 5),
- Spell("Healing Water", &Game::Elements["Water"], Spell::TYPE_RESTORATION, 10, 10),
- Spell("Jet Stream", &Game::Elements["Water"], Spell::TYPE_DESTRUCTION, 25, 15),
- Spell("Rain of Healing", &Game::Elements["Water"], Spell::TYPE_RESTORATION, 25, 20),
- Spell("Whirlpool", &Game::Elements["Water"], Spell::TYPE_DESTRUCTION, 50, 25),
- Spell("Tsunami", &Game::Elements["Water"], Spell::TYPE_DESTRUCTION, 100, 30),
- };
- SpellBook[Game::Elements["Wind"]] = {
- Spell("Breath of Wind", &Game::Elements["Wind"], Spell::TYPE_DESTRUCTION, 10, 5),
- Spell("Wind of Restoration", &Game::Elements["Wind"], Spell::TYPE_RESTORATION, 10, 10),
- Spell("Air Needle", &Game::Elements["Wind"], Spell::TYPE_DESTRUCTION, 25, 15),
- Spell("Tornado", &Game::Elements["Wind"], Spell::TYPE_DESTRUCTION, 50, 20),
- Spell("Twin Tornado", &Game::Elements["Wind"], Spell::TYPE_DESTRUCTION, 100, 25),
- Spell("Triple Tornado", &Game::Elements["Wind"], Spell::TYPE_DESTRUCTION, 200, 30),
- };
- SpellBook[Game::Elements["Earth"]] = {
- Spell("Rock Throw", &Game::Elements["Earth"], Spell::TYPE_DESTRUCTION, 10, 5),
- Spell("Earth Sheet", &Game::Elements["Earth"], Spell::TYPE_RESTORATION, 10, 10),
- Spell("Earth Split", &Game::Elements["Earth"], Spell::TYPE_DESTRUCTION, 25, 15),
- Spell("Crushed Earth", &Game::Elements["Earth"], Spell::TYPE_DESTRUCTION, 50, 20),
- Spell("Wall of Eden", &Game::Elements["Earth"], Spell::TYPE_RESTORATION, 50, 25),
- Spell("Earthquake", &Game::Elements["Earth"], Spell::TYPE_DESTRUCTION, 100, 30),
- };
- SpellBook[Game::Elements["Holy"]] = {
- Spell("Holy Light", &Game::Elements["Holy"], Spell::TYPE_DESTRUCTION, 10, 5),
- Spell("Healing Light", &Game::Elements["Holy"], Spell::TYPE_RESTORATION, 25, 10),
- Spell("Light of Judgment", &Game::Elements["Holy"], Spell::TYPE_DESTRUCTION, 50, 15),
- Spell("Flame of Purgatory", &Game::Elements["Holy"], Spell::TYPE_DESTRUCTION, 100, 20),
- Spell("God's Protection", &Game::Elements["Holy"], Spell::TYPE_RESTORATION, 1000000000, 25),
- };
- SpellBook[Game::Elements["Dark"]] = {
- Spell("Dark Touch", &Game::Elements["Dark"], Spell::TYPE_DESTRUCTION, 10, 5),
- Spell("Hell's Touch", &Game::Elements["Dark"], Spell::TYPE_DESTRUCTION, 25, 10),
- Spell("Hell's Inferno", &Game::Elements["Dark"], Spell::TYPE_DESTRUCTION, 50, 15),
- Spell("Eclipse", &Game::Elements["Dark"], Spell::TYPE_DESTRUCTION, 100, 20),
- Spell("Hell on Earth", &Game::Elements["Dark"], Spell::TYPE_DESTRUCTION, 200, 25),
- };
- SpellBook[Game::Elements["Void"]] = {
- Spell("?", &Game::Elements["Void"], Spell::TYPE_DESTRUCTION, 1, 1),
- Spell("?", &Game::Elements["Void"], Spell::TYPE_DESTRUCTION, 10, 1),
- Spell("?", &Game::Elements["Void"], Spell::TYPE_DESTRUCTION, 100, 1),
- Spell("?", &Game::Elements["Void"], Spell::TYPE_DESTRUCTION, 1000, 1),
- Spell("?", &Game::Elements["Void"], Spell::TYPE_DESTRUCTION, 10000, 1),
- Spell("?", &Game::Elements["Void"], Spell::TYPE_DESTRUCTION, 100000, 1),
- Spell("?", &Game::Elements["Void"], Spell::TYPE_DESTRUCTION, 1000000, 1),
- Spell("?", &Game::Elements["Void"], Spell::TYPE_DESTRUCTION, 10000000, 1),
- Spell("?", &Game::Elements["Void"], Spell::TYPE_DESTRUCTION, 100000000, 1),
- Spell("?", &Game::Elements["Void"], Spell::TYPE_DESTRUCTION, 1000000000, 1),
- };
- }
|