📄 role.cpp
字号:
#include "StdAfx.h"
#include "windows.h"
#include ".\role.h"
#include "globalObject.h"
extern CGlobalObject g_Object;
CRole::CRole(void)
{
m_nRoleType = ROLE_MONSTER;
m_nLevel = 1;
m_nExperience = 0;
m_nBlood = 1;
m_nAttack = 0;
m_nDefend = 0;
m_nBaseAtt = 0 ;
m_nBaseDef = 0;
m_nPosX = m_nPosY = 0;
m_nMaxBlood = 0;
memset(m_strName, 0, 30);
}
CRole::~CRole(void)
{
}
void CRole::InitByLevelAndType(int nLevel, int nType)
{
m_nRoleType = nType;
m_nLevel = nLevel;
if (m_nRoleType == ROLE_PROTAGONIST) {
m_nExperience = 0;
m_nMaxBlood = m_nBlood = 100 + m_nLevel * 30;
m_nBaseAtt = 20 + m_nLevel*5;
m_nBaseDef = 10 + m_nLevel*10;
m_nAttack = m_nBaseAtt;
m_nDefend = m_nBaseDef;
m_nPosX = m_nPosY = 0;
} else {
m_nExperience = 0;
m_nMaxBlood = m_nBlood = 200 + m_nLevel * 30;
m_nBaseAtt = 30 + m_nLevel*5;
m_nBaseDef = 30 + m_nLevel*10;
m_nAttack = m_nBaseAtt;
m_nDefend = m_nBaseDef;
}
}
void CRole::InitNPC(int nLevel, int nType, int nPosX, int nPosY)
{
InitByLevelAndType(nLevel,nType);
m_nPosX = nPosX;
m_nPosY = nPosY;
}
//根据自身的经验情况来判断升级与否,但就算经验足够也最多打一个怪升一级。
void CRole::Upgrade()
{
int nNeed = m_nLevel * 50;
int nLeave = m_nExperience - nNeed;
if (m_nExperience >= nNeed) {
InitNPC(m_nLevel + 1,m_nRoleType, m_nPosX, m_nPosY);
m_nExperience = nLeave;
vector<ROLE_EQUIP>::iterator iter;
for (iter = g_Object.m_vecEquip.begin(); iter != g_Object.m_vecEquip.end(); iter++) {
if (iter->nType == 1) {
m_nAttack = m_nBaseAtt + iter->nAttribute;
} else if (iter->nType == 2) {
m_nDefend = m_nBaseDef + iter->nAttribute;
}
}
g_Object.SetColor(FOREGROUND_GREEN);
cout<<m_strName<<"升到"<<m_nLevel<<"级!"<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -