#pragma once #include "ICharacter.h" #include /** * @brief 普通攻击技能 */ class NormalAttack : public ISkill { public: NormalAttack(); virtual std::string execute(ICharacter& caster, ICharacter& target) override; }; /** * @brief 战士技能: 重击 * 造成高额伤害,消耗怒气 */ class HeavyStrike : public ISkill { public: HeavyStrike(); virtual std::string execute(ICharacter& caster, ICharacter& target) override; }; /** * @brief 战士技能: 防御姿态 * 大幅提升防御,回复少量生命 */ class DefensiveStance : public ISkill { public: DefensiveStance(); virtual std::string execute(ICharacter& caster, ICharacter& target) override; }; /** * @brief 法师技能: 火球术 * 造成魔法伤害 */ class Fireball : public ISkill { public: Fireball(); virtual std::string execute(ICharacter& caster, ICharacter& target) override; }; /** * @brief 法师技能: 冰霜新星 * 造成伤害并降低目标速度 */ class FrostNova : public ISkill { public: FrostNova(); virtual std::string execute(ICharacter& caster, ICharacter& target) override; }; /** * @brief 法师技能: 奥术护盾 * 为自己添加法力护盾 */ class ArcaneShield : public ISkill { public: ArcaneShield(); virtual std::string execute(ICharacter& caster, ICharacter& target) override; }; /** * @brief 治疗术 * 恢复生命值 */ class Heal : public ISkill { public: Heal(); virtual std::string execute(ICharacter& caster, ICharacter& target) override; };