private void InitProperties()
        {
            _decay = new UnitOptionalProperty <int>(this, UnitDataType.Decay, k.decay, () => 255);
            OptionalProperties.Add(_decay);

            _tint = new UnitOptionalProperty <Color>(this, UnitDataType.Tint, k.tint, () => ED.Config.Tint);
            OptionalProperties.Add(_tint);

            _powerGridMax = new UnitProperty(this, AggregateField.powergrid_max, AggregateField.powergrid_max_modifier);
            AddProperty(_powerGridMax);

            _powerGrid = new PowerGridProperty(this);
            AddProperty(_powerGrid);

            _cpuMax = new UnitProperty(this, AggregateField.cpu_max, AggregateField.cpu_max_modifier);
            AddProperty(_cpuMax);

            _cpu = new CpuProperty(this);
            AddProperty(_cpu);

            _ammoReloadTime = new UnitProperty(this, AggregateField.ammo_reload_time, AggregateField.ammo_reload_time_modifier);
            AddProperty(_ammoReloadTime);

            _missileHitChance = new UnitProperty(this, AggregateField.missile_miss, AggregateField.missile_miss_modifier);
            AddProperty(_missileHitChance);

            _decayChance = new DecayChanceProperty(this);
            AddProperty(_decayChance);
        }