]>
jfr.im git - irc/gameservirc.git/blob - gameserv-2.0/testdriver/main.cpp
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
;
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
;
24 #include <GameServ/GameServException.h>
25 using GameServ::Exceptions::GameServException
;
27 #include <GameServ/Types.h>
28 using GameServ::Types::Range
;
29 using GameServ::Types::ItemTypes
;
30 using GameServ::Types::Modifiers
;
32 #include <GameServ/GameLayer/Helpers/InventoryManager.h>
33 using namespace GameServ::GameLayer::Helpers
;
35 #include <boost/algorithm/string.hpp>
36 #include <boost/format.hpp>
40 #include <boost/smart_ptr/shared_ptr.hpp>
41 using boost::shared_ptr
;
43 string
ItemInfo(shared_ptr
<ItemGO
> spItem
);
44 string
MonsterInfo(shared_ptr
<MonsterGO
> spMonster
);
45 string
PlayerInfo(shared_ptr
<PlayerGO
> spPlayer
);
46 void DisplayMonster(shared_ptr
<MonsterGO
> spMonster
);
47 void DisplayPlayer(shared_ptr
<PlayerGO
> spPlayer
);
54 shared_ptr
<PlayerGO
> spPlayer
= pgl
.GetById("Kain");
58 cout
<< "Name: " << spPlayer
->Name() << endl
59 << "Level: " << spPlayer
->LevelNumber() << endl
60 << "Exp: " << spPlayer
->Experience() << endl
61 << "Strength: " << spPlayer
->Strength() << endl
62 << "Defense: " << spPlayer
->Defense() << endl
63 << "Gold: " << spPlayer
->Gold() << endl
64 << "Bank: " << spPlayer
->Bank() << endl
69 shared_ptr
<InventoryManager
> spInventory
= InventoryManager::Instance();
70 ItemList inventory
= spInventory
->GetInventory(spPlayer
);
71 ItemList::const_iterator iter
;
72 for (iter
= inventory
.begin(); iter
!= inventory
.end(); iter
++)
74 shared_ptr
<ItemGO
> spItem
= (*iter
);
75 cout
<< ItemInfo(spItem
) << endl
;
83 spPlayer
->Health(spPlayer
->MaxHealth());
84 spPlayer
->Alive(true);
85 DisplayPlayer(spPlayer
);
89 cout
<< "Searching the forest..." << endl
;
90 shared_ptr
<MonsterGO
> spMonster
= forestGL
.GetRandomMonsterForPlayer(spPlayer
);
92 while (spPlayer
->Alive() && spMonster
->Alive())
94 DisplayMonster(spMonster
);
95 cout
<< "Hit Enter to attack: " << endl
;
97 cout
<< "You hit " << spMonster
->Name() << " for " <<
98 fightGL
.PlayerAttackMonster(spPlayer
, spMonster
) << endl
;
99 if (!spMonster
->Alive())
101 cout
<< "You have killed " << spMonster
->Name() << endl
;
102 cout
<< "He shouts: " << spMonster
->DeathCry() << endl
;
106 cout
<< spMonster
->Name() << " hits you with their "
107 << spMonster
->WeaponName() << " for " << fightGL
.MonsterAttackPlayer(spMonster
, spPlayer
)
109 if (!spPlayer
->Alive())
111 cout
<< spMonster
->Name() << " has killed you!" << endl
;
119 //map <int, int> frequencies;
121 //for (x = 0; x < 10000; x++)
123 // Range testrange(-100, 100);
124 // int randnum = testrange.Random();
125 // frequencies[randnum]++;
127 //map<int, int>::const_iterator iter;
128 //for (iter = frequencies.begin(); iter != frequencies.end(); iter++)
130 // cout << iter->first << ": ";
131 // cout << (iter->second / (double)(x + 1)) * 100 << '%' << endl;
134 catch (GameServException
&e
)
136 cout
<< e
.VerboseError() << endl
;
139 cout
<< "Done. Hit enter to quit." << endl
;
145 string
ItemInfo(shared_ptr
<ItemGO
> spItem
)
147 return str(format("Name: %1% Type: %2%") % spItem
->Name() % ItemTypes::GetName(spItem
->Type()));
150 string
MonsterInfo(shared_ptr
<MonsterGO
> spMonster
)
152 string info
= str(format("Name: %1% Weapon: %2%\nStrength: %3% Defense %4% ") %
153 spMonster
->Name() % spMonster
->WeaponName() % spMonster
->Strength() %
154 spMonster
->Defense());
155 info
+= str(format("Health: %1%/%2%") % spMonster
->Health() % spMonster
->MaxHealth());
159 string
PlayerInfo(shared_ptr
<PlayerGO
> spPlayer
)
161 string info
= str(format("Name: %1% Level: %2%\nHealth: %3%/%4%") %
162 spPlayer
->Name() % spPlayer
->LevelNumber() % spPlayer
->Health() %
163 spPlayer
->MaxHealth());
167 void DisplayMonster(shared_ptr
<MonsterGO
> spMonster
)
169 cout
<< "Monster:\n" << MonsterInfo(spMonster
) << endl
;
172 void DisplayPlayer(shared_ptr
<PlayerGO
> spPlayer
)
174 cout
<< "Player:\n" << PlayerInfo(spPlayer
) << endl
;