Пример #1
0
        public DefaultFireLogic(
            NewWeaponConfigItem newWeaponConfig,
            DefaultFireLogicConfig config,
            IWeaponLogicComponentsFactory componentsFactory,
            IAttachmentManager attachmentManager,
            IWeaponSoundLogic soundLogic,
            IWeaponEffectLogic effectLogic,
            IBulletFireInfoProviderDispatcher bulletFireInfoProviderDispatcher) : base(config)
        {
            _attachmentManager      = attachmentManager;
            _accuracyLogic          = componentsFactory.CreateAccuracyLogic(config.AccuracyLogic, config.Basic);
            _spreadLogic            = componentsFactory.CreateSpreadLogic(config.SpreadLogic, config.Basic);
            _autoFireLogic          = componentsFactory.CreateAutoFireLogic(config.FireModeLogic, config.Basic);
            _bulletLogic            = componentsFactory.CreateBulletLogic(config.Basic);
            _soundLogic             = soundLogic;
            _weaponEffectLogic      = effectLogic;
            _bulletFireInfoProvider = bulletFireInfoProviderDispatcher;

            _bulletFactory       = componentsFactory.CreateBulletFactory(config.Bullet, config.Basic);
            _kickbackLogic       = componentsFactory.CreateKickbackLogic(config.KickbackLogic, config.Basic);
            _fireBulletModeLogic = componentsFactory.CreateFireReadyLogic(config.FireModeLogic, config.Basic);
            _fireBulletCounter   = componentsFactory.CreateContinuesShootLogic(config.FireCounter, config.Basic);
            _fireActionLogic     = componentsFactory.CreateFireActionLogic(newWeaponConfig, config.Basic, _soundLogic);

            AddLogic(_accuracyLogic);
            AddLogic(_spreadLogic);
            AddLogic(_kickbackLogic);
            AddLogic(_autoFireLogic);
            AddLogic(_fireBulletModeLogic);
            AddLogic(_fireActionLogic);
            AddLogic(_fireBulletCounter);
        }
Пример #2
0
 public FireLogicProvider(Contexts contexts,
                          IWeaponLogicComponentsFactory weaponLogicComponentsFactory)
 {
     _contexts          = contexts;
     _componentsFactory = weaponLogicComponentsFactory;
     _showFireInMap     = new ShowFireInMap(contexts.ui);
 }
Пример #3
0
        public ThrowingFireLogic(

            NewWeaponConfigItem newWeaponConfig,
            ThrowingFireLogicConfig config,
            IWeaponLogicComponentsFactory componentsFactory)
        {
            _config          = config;
            _throwingFactory = componentsFactory.CreateThrowingFactory(newWeaponConfig, config.Throwing);
        }
Пример #4
0
 public DoubleWeaponLogic(NewWeaponConfigItem newCfg,
                          DoubleWeaponLogicConfig config,
                          IWeaponLogicComponentsFactory componentsFactory,
                          IWeaponSoundLogic soundLogic,
                          IWeaponEffectLogic effectLogic,
                          IAttachmentManager attachmentManager,
                          IBulletFireInfoProviderDispatcher bulletFireInfoProviderDispatcher) : base(config, componentsFactory)
 {
     _leftFireLogic     = componentsFactory.CreateFireLogic(newCfg, config.LeftFireLogic, soundLogic, effectLogic, bulletFireInfoProviderDispatcher);
     _rightFireLogic    = componentsFactory.CreateFireLogic(newCfg, config.RightFireLogic, soundLogic, effectLogic, bulletFireInfoProviderDispatcher);
     _attachmentManager = attachmentManager;
 }
Пример #5
0
        public ThrowingFireAction(
            NewWeaponConfigItem newWeaponConfig,
            ThrowingFireLogicConfig config,
            IWeaponLogicComponentsFactory componentsFactory,
            IAttachmentManager attachmentManager,
            IWeaponSoundLogic soundLogic,
            IWeaponEffectLogic effectLogic) : base(config)
        {
            _attachmentManager = attachmentManager;
            _soundLogic        = soundLogic;
            _weaponEffectLogic = effectLogic;

            _throwingLogic   = componentsFactory.CreateThrowingLogic(config.Basic);
            _throwingFactory = componentsFactory.CreateThrowingFactory(newWeaponConfig, config.Throwing);
        }
 public WeaponLogicFactory(WeaponConfigs configs, IWeaponLogicComponentsFactory factory)
 {
     _componentsFactory = factory;
     _configs           = configs;
 }
 public WeaponLogicFactory(IWeaponLogicComponentsFactory factory)
 {
     _componentsFactory = factory;
 }
Пример #8
0
 public AbstractWeaponLogic(T1 config, IWeaponLogicComponentsFactory componentsFactory) : base(config)
 {
 }