Как получить переменную, созданную на основе класса
у меня есть класс 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;
}