Lets go learn how make a good Skill Class for IrrWizard(or other framework);
First, Create two files and rename to GameSkill.cpp and GameSkill.h;
GameSkill.h:
Code: Select all
#if !defined(AFX_CGAMESKILL_H_INCLUDED_)
#define AFX_CGAMESKILL_H_INCLUDED_
#include "../core/GameManager.h"
#include <irrlicht.h>
using namespace irr;
using namespace core;
using namespace gui;
using namespace video;
using namespace scene;
class CGameManager;
const int SKILLTPYE_PASSIVE = 0; // skill type for passive skills
const int SKILLTPYE_COMBAT = 1; // skill type for combat skills
const int SKILLTPYE_ACTION = 2; //skill type for action skills
//more skilltypes…
class CGameSkill
{
public:
CGameSkill(int sid, char* sname, int stype, int value); //initial declaration
virtual ~CGameSkill();
void SetSkillName(char* skillname); //set one name to skill
void SetSkillID(int skillid); //set the ID
void SetSkillType(int skilltype); //set the type, use here the Skill Type ;D
void SetSkillValue(int skillvalue); //skill value
//get values
char* GetSkillName();
int GetSkillID();
int GetSkillType();
int GetSkillValue();
private:
//skill atributes
char* Skill_Name;
int Skill_ID;
int Skill_Type;
int Skill_Value;
CGameManager* pManager;
};
#endif
Code: Select all
#include "GameSkill.h" //duh u.u
CGameSkill::CGameSkill(int sid, char* sname, int stype, int value)
{
SetSkillName(sname);
SetSkillID(sid);
SetSkillType(stype);
SetSkillValue(value);
}
CGameSkill::~CGameSkill(void)
{
}
void CGameSkill::SetSkillName(char* skillname)
{
Skill_Name = skillname;
}
void CGameSkill::SetSkillID(int skillid)
{
Skill_ID = skillid;
}
void CGameSkill::SetSkillType(int skilltype)
{
Skill_Type = skilltype;
}
void CGameSkill::SetSkillValue(int skillvalue)
{
Skill_Value = skillvalue;
}
char* CGameSkill::GetSkillName()
{
return Skill_Name;
}
int CGameSkill::GetSkillID()
{
return Skill_ID;
}
int CGameSkill::GetSkillType()
{
return Skill_Type;
}
int CGameSkill::GetSkillValue()
{
return Skill_Value;
}
Now we go create the Skill Manager.
Create more two files, and rename to GameSkillManager.h and GameSkillManager.cpp.
GameSkillManager.h:
Code: Select all
#if !defined(AFX_GAMESKILLMANAGER_H_INCLUDED_)
#define AFX_GAMESKILLMANAGER_H_INCLUDED_
#include "../core/GameManager.h"
#include "GameSkill.h"
class CGameManager;
class CGameSkillManager
{
public:
CGameSkillManager(void);
~CGameSkillManager(void);
void InitSkills(); //init the skills values
bool Init(CGameManager* pManager);
void Rise_Skill();
void Use_Skill(int skillid);
//add here more things to manager the skills
private :
CGameManager* pManager;
};
#endif
Code: Select all
#include "GameSkillManager.h"
CGameSkillManager::CGameSkillManager(void)
{
}
CGameSkillManager::~CGameSkillManager(void)
{
}
bool CGameSkillManager::Init(CGameManager* pManager)
{
//something here @.@
return true;
}
void CGameSkillManager::InitSkills()
{
CGameSkill* sk_opendoor = new CGameSkill(0, "Open Lock Doors", SKILLTPYE_ACTION, 10);
CGameSkill* sk_diplomacy = new CGameSkill(1, "Diplomacy", SKILLTPYE_PASSIVE, 10);
CGameSkill* sk_pistols = new CGameSkill(2, "Pistols", SKILLTPYE_COMBAT, 10);
CGameSkill* sk_snipers = new CGameSkill(3, "Snipers", SKILLTPYE_COMBAT, 10);
CGameSkill* sk_snipers_heavy = new CGameSkill(4, "Heavy Snipers", SKILLTPYE_COMBAT, 10);
CGameSkill* sk_meeleweapons = new CGameSkill(5, "Melee Weapons", SKILLTPYE_COMBAT, 10);
CGameSkill* sk_region_lore = new CGameSkill(6, "Region Lore", SKILLTPYE_PASSIVE, 10);
CGameSkill* sk_games = new CGameSkill(7, "Gambler", SKILLTPYE_ACTION, 10);
CGameSkill* sk_intimidation = new CGameSkill(8, "Intimidation", SKILLTPYE_PASSIVE, 10);
CGameSkill* sk_mount = new CGameSkill(9, "Mount", SKILLTPYE_ACTION, 10);
//other skills
}
well, now use your brain and finish the system xD
Enjoy
Good Luck xD