分析圣遗物
在圣遗物系统,玩家操控的是圣遗物的部分
因此我们应该 物以类聚 人与群分把每个圣遗物的部分,抽象出来 拿 生之花,死之羽为例 若是抽象 类很好的扩展 添加冒险家的生之花 时候继承生之花 并且名称冒险者- 生之花 当然圣遗物包含(生之花,死之羽,时之沙 空之杯 理之冠)组合而成若装备它
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() {}// 纯虚函数,用于获取圣遗物的IDvirtual 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() {}// 纯虚函数,用于获取圣遗物的IDvirtual 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() {}// 纯虚函数,用于获取圣遗物的IDvirtual 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;
};