引言
实现
class ArtifactSetBonuses;
class Glossary {
public:
Glossary() = default;
virtual ~Glossary() = default;
virtual void setArtifactSetBonuses(ArtifactSetBonuses*& ArtifactSetBonuses) {};
virtual ArtifactSetBonuses*& GetArtifactSetBonuses() = 0;
virtual string name(void) const { return ""; }
virtual void setName(string name) { return ; }
};
class ArtifactSetBonuses {
public:
ArtifactSetBonuses() = default;
~ArtifactSetBonuses() = default;
int Id()const {
return this ? id : throw runtime_error("这是一个空指针");
}
string Name()const {
return this ? name : throw runtime_error("这是一个空指针");
}
int Level() const {
return this ? level : throw runtime_error("这是一个空指针");
}
protected:
int id;
string name;
int level;
};
class flowerOfLife :public ArtifactSetBonuses {
public:
flowerOfLife() = delete;
flowerOfLife(int& id, string &name, int &Level, Glossary*& Glossary);
virtual ~flowerOfLife() {};
virtual int HealthPoints() { return 0; }
virtual string SubEntry() = 0;
virtual void updateSubEntry() = 0;
Glossary* mainGlossary() { return this->m_Glossary; }
protected:
Glossary* m_Glossary;
};
class Plumeofdeath :public ArtifactSetBonuses {
public:
Plumeofdeath() = delete;
Plumeofdeath(int id, string name, int Level, Glossary* m_Glossary);
virtual ~Plumeofdeath() {};
virtual int ATK() = 0;
virtual string SubEntry() = 0;
virtual void updateSubEntry() = 0;
protected:
Glossary* m_Glossary;
};
class sandsofTime :public ArtifactSetBonuses {
public:
sandsofTime() = delete;
sandsofTime(int id, string name, int Level, Glossary* Glossary);
virtual ~sandsofTime() {}
virtual void setATK(float);
virtual float atk() { return 0.0; };
virtual void setDefense(float);
virtual float Defense() { return 0.0; };
virtual void sethealthPoints(float);
virtual float healthPoints() { return 0.0; };
virtual void setEnergyRecharge(float);
virtual float EnergyRecharge() { return 0.0; };
virtual void setEnergyRecharge(int);
virtual int ElementalMastery() { return 0; };
virtual string SubEntry() = 0;
virtual void updateSubEntry() = 0;
protected:
Glossary* Glossary;
};
class emptyCup :public ArtifactSetBonuses {
emptyCup() = default;
emptyCup(int id, string name, int Level, Glossary* Glossary);
virtual ~emptyCup() {};
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; }
virtual string SubEntry() = 0;
virtual void updateSubEntry() = 0;
protected:
Glossary* Glossary;
};
class CrownOfReason : public ArtifactSetBonuses {
public:
CrownOfReason() = default;
CrownOfReason(int id, string name);
virtual ~CrownOfReason() {};
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; }
virtual void setCriticalHit(float CriticalHit) {}
virtual float CriticalHit() { return 0.0; }
virtual void setCriticalHitDamage(float CriticalHit) {}
virtual float CriticalHitDamage() { return 0.0; }
virtual void SetHealingAdd(float HealingAdd) {}
virtual float HealingAdd() { return 0.0; }
virtual string SubEntry() = 0;
virtual void updateSubEntry() = 0;
protected:
Glossary* Glossary;
};