模拟原神圣遗物系统-小森设计项目,修改圣遗物组件属性

引言

实现

//
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;
    //int healthPoints;
};

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;
    //int atk;
};

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;
};
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小森程序员

若能帮助到你,小费自愿付费

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值