mirror of
https://github.com/ChuXunYu/OnlineRpg.git
synced 2026-01-31 13:25:45 +00:00
103 lines
1.9 KiB
C++
103 lines
1.9 KiB
C++
#pragma once
|
|
#include "ICharacter.h"
|
|
|
|
/**
|
|
* @brief 战士职业
|
|
*
|
|
* 技术点: 多态 (Polymorphism) - 继承和方法重写
|
|
* 特点: 高生命值、高防御、物理攻击
|
|
*/
|
|
class Warrior : public ICharacter {
|
|
private:
|
|
int m_rage; // 怒气值 (战士特有资源)
|
|
int m_maxRage; // 最大怒气值
|
|
|
|
public:
|
|
/**
|
|
* @brief 构造函数
|
|
* @param name 角色名称
|
|
* @param level 等级
|
|
*/
|
|
Warrior(const std::string& name, int level = 1);
|
|
|
|
/**
|
|
* @brief 析构函数
|
|
*/
|
|
virtual ~Warrior() {}
|
|
|
|
/**
|
|
* @brief 受到伤害 (重写) - 战士有格挡机制
|
|
*/
|
|
virtual void takeDamage(int damage) override;
|
|
|
|
/**
|
|
* @brief 治疗 (重写)
|
|
*/
|
|
virtual void heal(int amount) override;
|
|
|
|
/**
|
|
* @brief 获取怒气值
|
|
*/
|
|
int getRage() const { return m_rage; }
|
|
|
|
/**
|
|
* @brief 增加怒气值
|
|
*/
|
|
void addRage(int amount);
|
|
|
|
/**
|
|
* @brief 消耗怒气值
|
|
*/
|
|
bool consumeRage(int amount);
|
|
};
|
|
|
|
/**
|
|
* @brief 法师职业
|
|
*
|
|
* 技术点: 多态 (Polymorphism) - 继承和方法重写
|
|
* 特点: 高魔法值、魔法攻击、低防御
|
|
*/
|
|
class Mage : public ICharacter {
|
|
private:
|
|
int m_shield; // 法力护盾
|
|
int m_maxShield; // 最大护盾值
|
|
|
|
public:
|
|
/**
|
|
* @brief 构造函数
|
|
* @param name 角色名称
|
|
* @param level 等级
|
|
*/
|
|
Mage(const std::string& name, int level = 1);
|
|
|
|
/**
|
|
* @brief 析构函数
|
|
*/
|
|
virtual ~Mage() {}
|
|
|
|
/**
|
|
* @brief 受到伤害 (重写) - 法师有法力护盾机制
|
|
*/
|
|
virtual void takeDamage(int damage) override;
|
|
|
|
/**
|
|
* @brief 治疗 (重写)
|
|
*/
|
|
virtual void heal(int amount) override;
|
|
|
|
/**
|
|
* @brief 获取护盾值
|
|
*/
|
|
int getShield() const { return m_shield; }
|
|
|
|
/**
|
|
* @brief 添加护盾
|
|
*/
|
|
void addShield(int amount);
|
|
|
|
/**
|
|
* @brief 重置护盾
|
|
*/
|
|
void resetShield();
|
|
};
|