分析圣遗物
在圣遗物系统,玩家操控的是圣遗物的部分
因此我们应该 物以类聚 人与群分把每个圣遗物的部分,抽象出来 拿 生之花,死之羽为例 若是抽象 类很好的扩展 添加冒险家的生之花 时候继承生之花 并且名称冒险者- 生之花 当然圣遗物包含(生之花,死之羽,时之沙 空之杯 理之冠)组合而成若装备它
2件套效果:生命值上限提高1000点。
4件套效果 开启各类宝箱后的5秒内,持续恢复30%生命值。
当然前期为了稳定就不要这种效果
废话说了这么多,你有没有领悟到设计?
设计圣遗物(生之花,死之羽,时之沙)抽象类 代码实例
// 生之花抽象类
class flowerOfLife {
public:
// 默认构造函数
flowerOfLife() {}
// 带参数的构造函数
flowerOfLife(int id, string name, int Level, int HealthPoints) : id(id), name(name), level(Level), healthPoints(HealthPoints) {}
// 虚析构函数,确保派生类的析构函数被调用
virtual ~flowerOfLife() {}
// 纯虚函数,用于获取圣遗物的ID
virtual int Id() const = 0;
// 纯虚函数,用于获取圣遗物的名称
virtual string Name() const = 0;
// 虚函数,用于获取圣遗物的等级
virtual int level() const { return level; }
// 虚函数,用于获取圣遗物的生命值
virtual int HealthPoints() const { return healthPoints; }
// 纯虚函数,用于获取圣遗物的子条目信息
virtual string SubEntry() const = 0;
// 纯虚函数,用于更新圣遗物的子条目信息
virtual void updateSubEntry() = 0;
protected:
int id; // 圣遗物的唯一标识符
string name; // 圣遗物的名称
int level; // 圣遗物的等级
int healthPoints; // 圣遗物的生命值
};
// 死之羽抽象类
class Plumeofdeath {
public:
// 默认构造函数
Plumeofdeath() {}
// 带参数的构造函数
Plumeofdeath(int id, string name, int Level, int atk) : id(id), name(name), level(Level), atk(atk) {}
// 虚析构函数,确保派生类的析构函数被调用
virtual ~Plumeofdeath() {}
// 纯虚函数,用于获取圣遗物的ID
virtual int Id() const = 0;
// 纯虚函数,用于获取圣遗物的名称
virtual string Name() const = 0;
// 虚函数,用于获取圣遗物的等级
virtual int Level() const { return level; }
// 纯虚函数,用于获取圣遗物的攻击力
virtual int ATK() const = 0;
// 纯虚函数,用于获取圣遗物的子条目信息
virtual string SubEntry() const = 0;
// 纯虚函数,用于更新圣遗物的子条目信息
virtual void updateSubEntry() = 0;
protected:
int id; // 圣遗物的唯一标识符
string name; // 圣遗物的名称
int level; // 圣遗物的等级
int atk; // 圣遗物的攻击力
};
// 时之沙抽象类
class sandsofTime {
public:
// 默认构造函数
sandsofTime() {}
// 带参数的构造函数
sandsofTime(int id, string name, int Level) : id(id), name(name), level(Level) {}
// 虚析构函数,确保派生类的析构函数被调用
virtual ~sandsofTime() {}
// 纯虚函数,用于获取圣遗物的ID
virtual int Id() const = 0;
// 纯虚函数,用于获取圣遗物的名称
virtual string Name() const = 0;
// 纯虚函数,用于获取圣遗物的等级
virtual int Level() const = 0;
// 设置攻击力沙
virtual void setATK(float atk) {}
// 获取攻击力
virtual float atk() const { return 0.0; }
// 设置防御力沙
virtual void setDefense(float defense) {}
// 获取防御力
virtual float Defense() const { return 0.0; }
// 设置生命值沙
virtual void setHealthPoints(float healthPoints) {}
// 获取生命值
virtual float healthPoints() const { return 0.0; }
// 设置元素充能沙
virtual void setEnergyRecharge(float energyRecharge) {}
// 获取元素充能
virtual float EnergyRecharge() const { return 0.0; }
// 设置元素精通沙
virtual void setElementalMastery(int mastery) {}
// 获取元素精通
virtual int ElementalMastery() const { return 0; }
// 纯虚函数,用于获取圣遗物的子条目信息
virtual string SubEntry() const = 0;
// 纯虚函数,用于更新圣遗物的子条目信息
virtual void updateSubEntry() = 0;
protected:
int id; // 圣遗物的唯一标识符
string name; // 圣遗物的名称
int level; // 圣遗物的等级
};
设计圣遗物(空之杯,理之冠)设计实例
class emptyCup {
emptyCup();
emptyCup(int id, string name, int Level);
virtual ~emptyCup() {};
virtual int Id() = 0;
virtual string Name() = 0;
virtual int Level() = 0;
// 设置火伤属性 主词条
virtual void setFireinjury(float fireInjury) {}
// 获取火伤属性 主词条
virtual float Fireinjury() { return 0.0; }
// 设置水伤属性 主词条
virtual void setWaterinjury(float waterInjury) {}
// 获取水伤属性
virtual float Waterinjury() { return 0.0; }
// 设置草伤属性 主词条
virtual void setGrassinjury(float grassInjury) {}
// 获取草伤属性主词条
virtual float Grassinjury() { return 0.0; }
// 设置雷伤属性主词条
virtual void setthunderinjury(float thunderInjury) {}
// 获取雷伤属性主词条
virtual float thunderinjury() { return 0.0; }
// 设置风伤属性主词条
virtual void setWindinjury(float windInjury) {}
// 获取风伤属性主词条
virtual float Windinjury() { return 0.0; }
// 设置冰伤属性主词条
virtual void setIceinjury(float iceInjury) {}
// 获取冰伤属性主词条
virtual float Iceinjury() { return 0.0; }
// 设置岩伤属性 主词条
virtual void setRockinjury(float rockInjury) {}
// 获取岩伤属性 主词条
virtual float Rockinjury() { return 0.0; }
// 设置物伤属性 主词条
virtual void setPhysicalinjury(float physicalInjury) {}
// 获取物伤属性 主词条
virtual float Physicalinjury() { return 0.0; }
// 设置攻击力 主词条
virtual void setAttack(float attack) {}
// 获取攻击力 主词条
virtual float Attack() { return 0.0; }
// 设置防御力 主词条
virtual void setDefense(float defense) {}
// 获取防御力 主词条
virtual float Defense() { return 0.0; }
// 设置生命 主词条
virtual void setLife(float life) {}
// 获取生命 主词条
virtual float Life() { return 0.0; }
// 设置元素精通主词条
virtual void setElementsMastery(int mastery) {}
// 获取元素精通主词条
virtual int elementsMastery() { return 0; }
protected:
int id;
string name;
int level;
};
class CrownOfReason {
public:
CrownOfReason();
CrownOfReason(int id, string name, int Level);
virtual ~CrownOfReason() {};
virtual int Id() = 0;
virtual string Name() = 0;
virtual int Level() = 0;
// 设置攻击力主词条
virtual void setAttack(float attack) {}
// 获取攻击力冠
virtual float Attack() { return 0.0; }
// 设置防御主词条
virtual void setDefense(float defense) {}
// 获取防御主词条
virtual float Defense() { return 0.0; }
// 设置生命主词条
virtual void setLife(float life) {}
// 获取生命主词条
virtual float Life() { return 0.0; }
// 设置元素精通主词条
virtual void setElementsMastery(int mastery) {}
// 获取元素精通主词条
virtual int elementsMastery() { return 0; }
protected:
int id;
string name;
int level;
};