Exemple #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);
        }
Exemple #2
0
    public BulletManager CreateManager(Transform bulletParent, Transform barrelEnd, IBulletContainer bulletContainer, EntityTeamManager teamManager, BulletSliderManager bulletSliderManager, PlayerModifiers playerModifiers)
    {
        BulletManager manager = bulletManager.Create(bulletParent, barrelEnd, this, bulletContainer, teamManager, bulletSliderManager, playerModifiers);

        managers.Add(manager);
        return(manager);
    }
Exemple #3
0
        public void ApplyAttachment(IBulletContainer logic)
        {
            var bulletLogic = logic as BaseWeaponBulletLogic;

            if (null != bulletLogic)
            {
                ApplyAttachment(bulletLogic);
            }
        }
    public virtual BulletManager Create(Transform bulletParent, Transform barrelEnd, BulletInfo bulletInfo, IBulletContainer bulletContainer, EntityTeamManager teamManager, BulletSliderManager bulletSliderManager, PlayerModifiers playerModifiers)
    {
        BulletManager bulletManager = (BulletManager)CreateInstance(GetType());

        bulletManager.Initialize(bulletParent, barrelEnd, bulletInfo, bulletContainer, teamManager, bulletSliderManager, playerModifiers);
        return(bulletManager);
    }
 private void Initialize(Transform bulletParent, Transform barrelEnd, BulletInfo bulletInfo, IBulletContainer bulletContianer, EntityTeamManager teamManager, BulletSliderManager bulletUI, PlayerModifiers playerModifiers)
 {
     this.playerModifiers = playerModifiers;
     Initialize(bulletParent, barrelEnd, bulletInfo, bulletContianer, teamManager, bulletUI);
 }
 private void Initialize(Transform bulletParent, Transform barrelEnd, BulletInfo bulletInfo, IBulletContainer bulletContainer, EntityTeamManager teamManager, BulletSliderManager bulletUI)
 {
     this.bulletSliderManager = bulletUI;
     Initialize(bulletParent, barrelEnd, bulletInfo, bulletContainer, teamManager);
 }
 private void Initialize(Transform bulletParent, Transform barrelEnd, BulletInfo bulletInfo, IBulletContainer bulletContainer, EntityTeamManager teamManager)
 {
     this.teamManager = teamManager;
     container        = bulletContainer;
     Initialize(bulletParent, barrelEnd, bulletInfo);
 }