Как получить переменную, созданную на основе класса

у меня есть класс Hero, на его основе создал класс-наследник Items. Я хочу, чтобы обьекты Hero имели несколько обьектов Items, которые будут повышать характеристики обьектам Hero. Для этого в классе Items я хочу, чтобы он перенимал название героя и если у него есть предмет в инвентаре, то повышал его характеристики именно этого героя. Я конечно могу в классе Items добавить поле Hero hero и конструктор, в котором я при создании предмета буду указывать для какого героя это нужно, но это слишком не эффективно.

class Hero : Mob
{
    protected double strength;
    protected double agility;
    protected double intelect;
    protected Type main_atribute;
    public int herocount = 0;
    private string? name;
    protected Items[] inventory;
}
class Items : Hero
{
    private int price;
    private string? description;
    private Hero? hero;

    public Items(Hero hero, string name, int price, string description, 
        double health=0, double mana=0,
        double armor=0, double damage=0, double healthregen=0,
        double manaregen=0, double atackspeed=0, double spellresist=0,
        double strength=0, double agility=0, double intelect=0):
        base(name, health, mana, healthregen, armor, manaregen, damage, atackspeed,
            spellresist, strength, agility, intelect)
    {
        this.strength = strength;
        this.agility = agility;
        this.intelect = intelect;
        this.price = price;
        this.description = description;
        this.health = health;
        this.mana = mana;
        this.armor = armor;
        this.healthregen = healthregen;
        this.manaregen = manaregen;
        this.atackspeed = atackspeed;
        this.spellresist = spellresist;
        this.damage = damage;
        hero.Health = health + (strength * 20);
        hero.Mana = mana + (intelect * 12);
        hero.Armor = Math.Round(armor + (agility * 0.167));
        hero.HealthRegen = Math.Round(healthregen + (strength * 0.03));
        hero.ManaRegen = manaregen + (intelect * 0.004);
        hero.AtackSpeed = atackspeed + agility;
        hero.SpellResist = spellresist;
        hero.Strength = strength;
        hero.Agility = agility;
        hero.Intelect = intelect;
}

Ответы (0 шт):