protected PBSEffectNode()
        {
            _standingController = new PBSStandingController <PBSEffectNode>(this)
            {
                AlwaysEnabled = true
            };
            _coreUseHandler = new CoreUseHandler <PBSEffectNode>(this, new EnergyStateFactory(this));

            _currentEffect = DynamicProperties.GetProperty <int>(k.currentEffect);
            _currentEffect.PropertyChanging += (property, value) =>
            {
                var effectType = (EffectType)value;

                if (effectType == EffectType.undefined)
                {
                    effectType = AvailableEffects.FirstOrDefault();
                }

                if (!AvailableEffects.Contains(effectType))
                {
                    Logger.Error("PBSEffectNode: invalid effect type! type:" + effectType);
                }

                RemoveCurrentEffect();
                return((int)effectType);
            };

            _currentEffect.PropertyChanged += property =>
            {
                OnEffectChanged();
            };
        }
 public PBSDockingBase(MarketHelper marketHelper, ICorporationManager corporationManager, IChannelManager channelManager, ICentralBank centralBank, IRobotTemplateRelations robotTemplateRelations, DockingBaseHelper dockingBaseHelper, SparkTeleportHelper sparkTeleportHelper, PBSObjectHelper <PBSDockingBase> .Factory pbsObjectHelperFactory) : base(channelManager, centralBank, robotTemplateRelations, dockingBaseHelper)
 {
     _marketHelper                   = marketHelper;
     _corporationManager             = corporationManager;
     _sparkTeleportHelper            = sparkTeleportHelper;
     _pbsObjectHelper                = pbsObjectHelperFactory(this);
     _pbsReinforceHandler            = new PBSReinforceHandler <PBSDockingBase>(this);
     _standingController             = new PBSStandingController <PBSDockingBase>(this);
     _pbsTerritorialVisibilityHelper = new PBSTerritorialVisibilityHelper(this);
 }
Пример #3
0
        public PBSTurret(IStandingHandler standingHandler, PBSObjectHelper <PBSTurret> .Factory pbsObjectHelperFactory)
        {
            _standingHandler    = standingHandler;
            _pbsObjectHelper    = pbsObjectHelperFactory(this);
            _standingController = new PBSStandingController <PBSTurret>(this)
            {
                AlwaysEnabled = true
            };

            _blobHandler      = new BlobHandler <PBSTurret>(this);
            _blobEmitter      = new BlobEmitter(this);
            _reinforceHandler = new PBSReinforceHandler <PBSTurret>(this);
            _coreUseHandler   = new CoreUseHandler <PBSTurret>(this, new EnergyStateFactory(this));
        }