]>
jfr.im git - irc/gameservirc.git/blob - gameserv-2.0/libgameservgldl/src/GameLayer/ForestGL.cpp
1 #include <GameServ/GameLayer/ForestGL.h>
2 using GameServ::GameLayer::ForestGL
;
4 #include <GameServ/DataLayer/IMonsterDAO.h>
5 using GameServ::DataLayer::DataAccessObjects::IMonsterDAO
;
6 #include <GameServ/DataLayer/ILevelDAO.h>
7 using GameServ::DataLayer::DataAccessObjects::ILevelDAO
;
10 #include <GameServ/DataLayer/DataAccess.h>
11 using GameServ::DataLayer::DataAccess
;
12 #include <GameServ/DataLayer/IDAOFactory.h>
13 using GameServ::DataLayer::IDAOFactory
;
15 #include <GameServ/GameLayer/GameObjects/PlayerGO.h>
16 #include <GameServ/GameLayer/GameObjects/MonsterGO.h>
17 #include <GameServ/GameLayer/GameObjects/LevelGO.h>
18 using GameServ::GameLayer::GameObjects::PlayerGO
;
19 using GameServ::GameLayer::GameObjects::MonsterGO
;
21 #include <boost/smart_ptr/shared_ptr.hpp>
22 using boost::shared_ptr
;
36 void ForestGL::Initialize(void)
38 // TODO: Change this to be loaded from a config file
39 shared_ptr
<IDAOFactory
> spFactory
= DataAccess::GetDataAccessFactory("File");
41 mspMonsterDAO
= spFactory
->GetMonsterDAO();
42 mspLevelDAO
= spFactory
->GetLevelDAO();
45 shared_ptr
<MonsterGO
> ForestGL::GetRandomMonsterForPlayer(shared_ptr
<PlayerGO
> spPlayer
)
47 assert (spPlayer
!= 0);
48 shared_ptr
<LevelGO
> spLevel
= mspLevelDAO
->GetById(spPlayer
->LevelId());
49 vector
< shared_ptr
<MonsterGO
> > monsters
= mspMonsterDAO
->GetMonstersByLevelId(spLevel
->Id());
50 if (monsters
.size() > 0)
52 Range
r(monsters
.size() - 1, 0);
53 shared_ptr
<MonsterGO
> spMonster
= shared_ptr
<MonsterGO
>(monsters
[r
.Random()]->Clone());
54 spMonster
->MaxHealth(spLevel
->HealthRange().Random());
55 spMonster
->Health(spMonster
->MaxHealth());
56 spMonster
->Strength(spLevel
->StrengthRange().Random());
57 spMonster
->Defense(spLevel
->DefenseRange().Random());
58 spMonster
->Gold(spLevel
->GoldRange().Random());
59 spMonster
->Experience(spLevel
->ExperienceRange().Random());
62 return shared_ptr
<MonsterGO
>();