public IWeaponLogic CreateWeaponLogic(NewWeaponConfigItem newCfg,
                                              WeaponLogicConfig config,
                                              IWeaponSoundLogic soundLogic,
                                              IWeaponEffectLogic effectLogic,
                                              IBulletFireInfoProviderDispatcher bulletFireInfoProvider)
        {
            IWeaponLogic rc = null;

            if (config is DefaultWeaponLogicConfig)
            {
                rc = new DefaultWeaponLogic(newCfg,
                                            config as DefaultWeaponLogicConfig,
                                            this,
                                            soundLogic,
                                            effectLogic,
                                            _attachmentManager,
                                            bulletFireInfoProvider);
            }
            else if (config is DoubleWeaponLogicConfig)
            {
                rc = new DoubleWeaponLogic(newCfg,
                                           config as DoubleWeaponLogicConfig,
                                           this, soundLogic,
                                           effectLogic,
                                           _attachmentManager,
                                           bulletFireInfoProvider);
            }

            return(rc);
        }
        public override IWeaponSoundLogic CreateSoundLogic(IPlayerWeaponState weaponState, WeaponLogicConfig config)
        {
            if (null == config)
            {
                return(null);
            }
            var soundCfg   = config.SoundConfig;
            var defaultCfg = soundCfg as DefaultWeaponSoundConfig;

            if (null != defaultCfg)
            {
                return(new DefaultWeaponSoundLogic(_soundEntityFactory, weaponState, defaultCfg));
            }
            var meleeCfg = soundCfg as MeleeWeaponSoundConfig;

            if (null != meleeCfg)
            {
                return(new MeleeWeaponSoundLogic(weaponState, _soundEntityFactory, meleeCfg));
            }
            return(null);
        }
 public abstract IWeaponSoundLogic CreateSoundLogic(IPlayerWeaponState weaponState, WeaponLogicConfig config);
Beispiel #4
0
 private void ApplyAttachment(WeaponLogicConfig baseConfig, WeaponLogicConfig targetConfig)
 {
     FindAndChangePartRecursive(baseConfig, targetConfig, _attachAttributeDic);
 }