]>
Commit | Line | Data |
---|---|---|
fd2ef47d | 1 | #include <GameServ/GameLayer/ForestGL.h>\r |
2 | using GameServ::GameLayer::ForestGL;\r | |
3 | \r | |
4 | #include <GameServ/DataLayer/IMonsterDAO.h>\r | |
5 | using GameServ::DataLayer::DataAccessObjects::IMonsterDAO;\r | |
6 | #include <GameServ/DataLayer/ILevelDAO.h>\r | |
7 | using GameServ::DataLayer::DataAccessObjects::ILevelDAO;\r | |
8 | \r | |
9 | \r | |
10 | #include <GameServ/DataLayer/DataAccess.h>\r | |
11 | using GameServ::DataLayer::DataAccess;\r | |
12 | #include <GameServ/DataLayer/IDAOFactory.h>\r | |
13 | using GameServ::DataLayer::IDAOFactory;\r | |
14 | \r | |
15 | #include <GameServ/GameLayer/GameObjects/PlayerGO.h>\r | |
16 | #include <GameServ/GameLayer/GameObjects/MonsterGO.h>\r | |
17 | #include <GameServ/GameLayer/GameObjects/LevelGO.h>\r | |
18 | using GameServ::GameLayer::GameObjects::PlayerGO;\r | |
19 | using GameServ::GameLayer::GameObjects::MonsterGO;\r | |
20 | \r | |
21 | #include <boost/smart_ptr/shared_ptr.hpp>\r | |
22 | using boost::shared_ptr;\r | |
23 | \r | |
24 | #include <string>\r | |
25 | using std::string;\r | |
26 | \r | |
27 | ForestGL::ForestGL()\r | |
28 | {\r | |
29 | Initialize();\r | |
30 | }\r | |
31 | \r | |
32 | ForestGL::~ForestGL()\r | |
33 | {\r | |
34 | }\r | |
35 | \r | |
36 | void ForestGL::Initialize(void)\r | |
37 | {\r | |
38 | // TODO: Change this to be loaded from a config file\r | |
39 | shared_ptr<IDAOFactory> spFactory = DataAccess::GetDataAccessFactory("File");\r | |
40 | \r | |
41 | mspMonsterDAO = spFactory->GetMonsterDAO();\r | |
42 | mspLevelDAO = spFactory->GetLevelDAO();\r | |
43 | }\r | |
44 | \r | |
45 | shared_ptr<MonsterGO> ForestGL::GetRandomMonsterForPlayer(shared_ptr<PlayerGO> spPlayer)\r | |
46 | {\r | |
47 | assert (spPlayer != 0);\r | |
48 | shared_ptr<LevelGO> spLevel = mspLevelDAO->GetById(spPlayer->LevelId());\r | |
fadef98f | 49 | vector<string> monsterIds = mspMonsterDAO->GetMonsterIdsByLevelId(spLevel->Id());\r |
50 | if (monsterIds.size() > 0)\r | |
fd2ef47d | 51 | {\r |
fadef98f | 52 | Range<unsigned int> r(monsterIds.size() - 1, 0);\r |
53 | shared_ptr<MonsterGO> spMonster = mspMonsterDAO->GetById(monsterIds[r.Random()]);\r | |
fd2ef47d | 54 | spMonster->MaxHealth(spLevel->HealthRange().Random());\r |
55 | spMonster->Health(spMonster->MaxHealth());\r | |
56 | spMonster->Strength(spLevel->StrengthRange().Random());\r | |
57 | spMonster->Defense(spLevel->DefenseRange().Random());\r | |
58 | spMonster->Gold(spLevel->GoldRange().Random());\r | |
59 | spMonster->Experience(spLevel->ExperienceRange().Random());\r | |
60 | return spMonster;\r | |
61 | }\r | |
62 | return shared_ptr<MonsterGO>();\r | |
63 | }\r |