using GameServ::GameLayer::PlayerGL;\r
#include <GameServ/GameLayer/ForestGL.h>\r
using GameServ::GameLayer::ForestGL;\r
+#include <GameServ/GameLayer/FightGL.h>\r
+using GameServ::GameLayer::FightGL;\r
\r
#include <GameServ/GameLayer/GameObjects/ItemGO.h>\r
using GameServ::GameLayer::GameObjects::ItemGO;\r
\r
string ItemInfo(shared_ptr<ItemGO> spItem);\r
string MonsterInfo(shared_ptr<MonsterGO> spMonster);\r
+string PlayerInfo(shared_ptr<PlayerGO> spPlayer);\r
+void DisplayMonster(shared_ptr<MonsterGO> spMonster);\r
+void DisplayPlayer(shared_ptr<PlayerGO> spPlayer);\r
\r
int main()\r
{\r
{\r
PlayerGL pgl;\r
shared_ptr<PlayerGO> spPlayer = pgl.GetById("Kain");\r
+ \r
+ \r
+ \r
cout << "Name: " << spPlayer->Name() << endl\r
<< "Level: " << spPlayer->LevelNumber() << endl\r
<< "Exp: " << spPlayer->Experience() << endl\r
<< "Items: " << endl;\r
\r
\r
+\r
shared_ptr<InventoryManager> spInventory = InventoryManager::Instance();\r
ItemList inventory = spInventory->GetInventory(spPlayer);\r
ItemList::const_iterator iter;\r
cout << ItemInfo(spItem) << endl;\r
}\r
\r
- ForestGL fgl;\r
- for (int x = 0; x < 10000; x++)\r
+ ForestGL forestGL;\r
+ FightGL fightGL;\r
+ string cmd = "";\r
+ while (cmd != "quit")\r
{\r
- shared_ptr<MonsterGO> spMonster = fgl.GetRandomMonsterForPlayer(spPlayer);\r
- //cout << "\nMonster:\n" << MonsterInfo(spMonster) << endl;\r
+ spPlayer->Health(spPlayer->MaxHealth());\r
+ spPlayer->Alive(true);\r
+ DisplayPlayer(spPlayer);\r
+ getline(cin, cmd);\r
+ if (cmd == "search")\r
+ {\r
+ cout << "Searching the forest..." << endl;\r
+ shared_ptr<MonsterGO> spMonster = forestGL.GetRandomMonsterForPlayer(spPlayer);\r
+ \r
+ while (spPlayer->Alive() && spMonster->Alive())\r
+ {\r
+ DisplayMonster(spMonster);\r
+ cout << "Hit Enter to attack: " << endl;\r
+ getline(cin, cmd);\r
+ cout << "You hit " << spMonster->Name() << " for " <<\r
+ fightGL.PlayerAttackMonster(spPlayer, spMonster) << endl;\r
+ if (!spMonster->Alive())\r
+ {\r
+ cout << "You have killed " << spMonster->Name() << endl;\r
+ cout << "He shouts: " << spMonster->DeathCry() << endl;\r
+ }\r
+ else\r
+ {\r
+ cout << spMonster->Name() << " hits you with their "\r
+ << spMonster->WeaponName() << " for " << fightGL.MonsterAttackPlayer(spMonster, spPlayer)\r
+ << endl;\r
+ if (!spPlayer->Alive())\r
+ {\r
+ cout << spMonster->Name() << " has killed you!" << endl;\r
+ }\r
+ }\r
+ }\r
+ }\r
}\r
\r
\r
cout << e.VerboseError() << endl;\r
\r
}\r
- cout << "Done. Type a key and hit enter to quit." << endl;\r
+ cout << "Done. Hit enter to quit." << endl;\r
string temp;\r
getline(cin, temp);\r
return 0;\r
\r
string MonsterInfo(shared_ptr<MonsterGO> spMonster)\r
{\r
- string info = str(format("Name: %1% Weapon: %2%\nDeath Cry: %3%\nStrength: %4% Defense %5% Gold: %6%\n") %\r
- spMonster->Name() % spMonster->WeaponName() % spMonster->DeathCry() % spMonster->Strength() %\r
- spMonster->Defense() % spMonster->Gold());\r
- info += str(format("Health: %1%/%2% Exp: %3%") % spMonster->Health() % spMonster->MaxHealth() %\r
- spMonster->Experience());\r
+ string info = str(format("Name: %1% Weapon: %2%\nStrength: %3% Defense %4% ") %\r
+ spMonster->Name() % spMonster->WeaponName() % spMonster->Strength() %\r
+ spMonster->Defense());\r
+ info += str(format("Health: %1%/%2%") % spMonster->Health() % spMonster->MaxHealth());\r
return info;\r
}\r
+\r
+string PlayerInfo(shared_ptr<PlayerGO> spPlayer)\r
+{\r
+ string info = str(format("Name: %1% Level: %2%\nHealth: %3%/%4%") % \r
+ spPlayer->Name() % spPlayer->LevelNumber() % spPlayer->Health() %\r
+ spPlayer->MaxHealth());\r
+ return info;\r
+}\r
+\r
+void DisplayMonster(shared_ptr<MonsterGO> spMonster)\r
+{\r
+ cout << "Monster:\n" << MonsterInfo(spMonster) << endl;\r
+}\r
+\r
+void DisplayPlayer(shared_ptr<PlayerGO> spPlayer)\r
+{\r
+ cout << "Player:\n" << PlayerInfo(spPlayer) << endl;\r
+}
\ No newline at end of file