mirror of
https://github.com/ChuXunYu/OnlineRpg.git
synced 2026-01-31 16:55:46 +00:00
2
This commit is contained in:
102
include/core/Characters.h
Normal file
102
include/core/Characters.h
Normal file
@@ -0,0 +1,102 @@
|
||||
#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();
|
||||
};
|
||||
Reference in New Issue
Block a user