]> jfr.im git - irc/gameservirc.git/blob - gameserv-2.0/testdriver/main.cpp
967e5e9bd2f133e5693f7b1be136fc3276f315f3
[irc/gameservirc.git] / gameserv-2.0 / testdriver / main.cpp
1 #include <iostream>
2 using namespace std;
3 #include <GameServ/GameLayer/GameObjects/PlayerGO.h>
4 using GameServ::GameLayer::GameObjects::PlayerGO;
5 #include <GameServ/GameLayer/PlayerGL.h>
6 using GameServ::GameLayer::PlayerGL;
7 #include <GameServ/GameLayer/ForestGL.h>
8 using GameServ::GameLayer::ForestGL;
9 #include <GameServ/GameLayer/FightGL.h>
10 using GameServ::GameLayer::FightGL;
11
12 #include <GameServ/GameLayer/GameObjects/ItemGO.h>
13 using GameServ::GameLayer::GameObjects::ItemGO;
14 #include <GameServ/GameLayer/GameObjects/WeaponGO.h>
15 using GameServ::GameLayer::GameObjects::WeaponGO;
16 #include <GameServ/GameLayer/GameObjects/ArmorGO.h>
17 using GameServ::GameLayer::GameObjects::ArmorGO;
18 #include <GameServ/GameLayer/GameObjects/PotionGO.h>
19 using GameServ::GameLayer::GameObjects::PotionGO;
20 #include <GameServ/GameLayer/GameObjects/MonsterGO.h>
21 using GameServ::GameLayer::GameObjects::MonsterGO;
22
23
24 #include <GameServ/GameServException.h>
25 using GameServ::Exceptions::GameServException;
26
27 #include <GameServ/Types.h>
28 using GameServ::Types::Range;
29 using GameServ::Types::ItemTypes;
30 using GameServ::Types::Modifiers;
31
32 #include <GameServ/GameLayer/Helpers/InventoryManager.h>
33 using namespace GameServ::GameLayer::Helpers;
34
35 #include <boost/algorithm/string.hpp>
36 #include <boost/format.hpp>
37 using boost::str;
38 using boost::format;
39
40 #include <boost/smart_ptr/shared_ptr.hpp>
41 using boost::shared_ptr;
42
43 // just to test
44 #define MYSQLPP_SSQLS_NO_STATICS
45 #include <GameServ/DataLayer/MySQL/MySQLItemDAO.h>
46 using GameServ::DataLayer::MySQL::MySQLItemDAO;
47
48 string ItemInfo(shared_ptr<ItemGO> spItem);
49 string MonsterInfo(shared_ptr<MonsterGO> spMonster);
50 string PlayerInfo(shared_ptr<PlayerGO> spPlayer);
51 void DisplayMonster(shared_ptr<MonsterGO> spMonster);
52 void DisplayPlayer(shared_ptr<PlayerGO> spPlayer);
53
54 int main()
55 {
56 try
57 {
58 //PlayerGL pgl;
59 //shared_ptr<PlayerGO> spPlayer = pgl.GetById("Kain");
60 //
61 //
62 //
63 //cout << "Name: " << spPlayer->Name() << endl
64 // << "Level: " << spPlayer->LevelNumber() << endl
65 // << "Exp: " << spPlayer->Experience() << endl
66 // << "Strength: " << spPlayer->Strength() << endl
67 // << "Defense: " << spPlayer->Defense() << endl
68 // << "Gold: " << spPlayer->Gold() << endl
69 // << "Bank: " << spPlayer->Bank() << endl
70 // << "Items: " << endl;
71
72
73
74 //shared_ptr<InventoryManager> spInventory = InventoryManager::Instance();
75 //ItemList inventory = spInventory->GetInventory(spPlayer);
76 //ItemList::const_iterator iter;
77 //for (iter = inventory.begin(); iter != inventory.end(); iter++)
78 //{
79 // shared_ptr<ItemGO> spItem = (*iter);
80 // cout << ItemInfo(spItem) << endl;
81 //}
82
83 //ForestGL forestGL;
84 //FightGL fightGL;
85 //string cmd = "";
86 ////while (cmd != "quit")
87 //for (int x = 0; x < 10000; x++)
88 //{
89 // spPlayer->Health(spPlayer->MaxHealth());
90 // spPlayer->Alive(true);
91 // //DisplayPlayer(spPlayer);
92 // //getline(cin, cmd);
93 // cmd="search";
94 // if (cmd == "search")
95 // {
96 // //cout << "Searching the forest..." << endl;
97 // shared_ptr<MonsterGO> spMonster = forestGL.GetRandomMonsterForPlayer(spPlayer);
98 //
99 // while (spPlayer->Alive() && spMonster->Alive())
100 // {
101 // //DisplayMonster(spMonster);
102 // //cout << "Hit Enter to attack: " << endl;
103 // //getline(cin, cmd);
104 // unsigned int attack = fightGL.PlayerAttackMonster(spPlayer, spMonster);
105 // //cout << "You hit " << spMonster->Name() << " for " << attack << endl;
106 // if (!spMonster->Alive())
107 // {
108 // //cout << "You have killed " << spMonster->Name() << endl;
109 // //cout << "He shouts: " << spMonster->DeathCry() << endl;
110 // }
111 // else
112 // {
113 // unsigned int mAttack = fightGL.MonsterAttackPlayer(spMonster, spPlayer);
114 // /*cout << spMonster->Name() << " hits you with their "
115 // << spMonster->WeaponName() << " for " << mAttack
116 // << endl;*/
117 // if (!spPlayer->Alive())
118 // {
119 // /*cout << spMonster->Name() << " has killed you!" << endl;*/
120 // }
121 // }
122 // }
123 // }
124 //}
125
126
127 MySQLItemDAO test;
128 shared_ptr<ItemGO> spItem = test.GetById("test");
129
130 //map <int, int> frequencies;
131 //int x;
132 //for (x = 0; x < 10000; x++)
133 //{
134 // Range testrange(-100, 100);
135 // int randnum = testrange.Random();
136 // frequencies[randnum]++;
137 //}
138 //map<int, int>::const_iterator iter;
139 //for (iter = frequencies.begin(); iter != frequencies.end(); iter++)
140 //{
141 // cout << iter->first << ": ";
142 // cout << (iter->second / (double)(x + 1)) * 100 << '%' << endl;
143 //}
144 }
145 catch (GameServException &e)
146 {
147 cout << e.VerboseError() << endl;
148
149 }
150 cout << "Done. Hit enter to quit." << endl;
151 string temp;
152 getline(cin, temp);
153 return 0;
154 }
155
156 string ItemInfo(shared_ptr<ItemGO> spItem)
157 {
158 return str(format("Name: %1% Type: %2%") % spItem->Name() % ItemTypes::GetName(spItem->Type()));
159 }
160
161 string MonsterInfo(shared_ptr<MonsterGO> spMonster)
162 {
163 string info = str(format("Name: %1% Weapon: %2%\nStrength: %3% Defense %4% ") %
164 spMonster->Name() % spMonster->WeaponName() % spMonster->Strength() %
165 spMonster->Defense());
166 info += str(format("Health: %1%/%2%") % spMonster->Health() % spMonster->MaxHealth());
167 return info;
168 }
169
170 string PlayerInfo(shared_ptr<PlayerGO> spPlayer)
171 {
172 string info = str(format("Name: %1% Level: %2%\nHealth: %3%/%4%") %
173 spPlayer->Name() % spPlayer->LevelNumber() % spPlayer->Health() %
174 spPlayer->MaxHealth());
175 return info;
176 }
177
178 void DisplayMonster(shared_ptr<MonsterGO> spMonster)
179 {
180 cout << "Monster:\n" << MonsterInfo(spMonster) << endl;
181 }
182
183 void DisplayPlayer(shared_ptr<PlayerGO> spPlayer)
184 {
185 cout << "Player:\n" << PlayerInfo(spPlayer) << endl;
186 }