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);
private void ApplyAttachment(WeaponLogicConfig baseConfig, WeaponLogicConfig targetConfig) { FindAndChangePartRecursive(baseConfig, targetConfig, _attachAttributeDic); }