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);
        }
示例#2
0
        public PBSObjectHelper(T pbsUnit)
        {
            _pbsUnit              = pbsUnit;
            _pbsUnit.DamageTaken += OnUnitDamageTaken;

            ConnectionHandler         = new PBSConnectionHandler <T>(pbsUnit);
            _constructionLevelCurrent = new UnitOptionalProperty <int>(_pbsUnit, UnitDataType.ConstructionLevelCurrent, k.constructionLevelCurrent, () => 1);
            _pbsUnit.OptionalProperties.Add(_constructionLevelCurrent);

            _saver = new PBSObjectSaver <T>(Entity.Repository, TimeSpan.FromMinutes(15));
        }