Exemplo n.º 1
0
        public IWeaponFireUpdate GetFireUpdater(int?weaponId)
        {
            var realWeaponId = weaponId;

            if (!weaponId.HasValue)
            {
                realWeaponId = WeaponUtil.EmptyHandId;
            }

            var weaponAllConfig = SingletonManager.Get <WeaponConfigManagement>().FindConfigById(realWeaponId.Value);

            if (weaponAllConfig.S_DefualtBehavior != null)
            {
                var commonWeaponFireUpdate = new CommonWeaponFireUpdate(fireScriptsCreator.GetFireController(weaponAllConfig));
                return(commonWeaponFireUpdate);
            }
            if (weaponAllConfig.S_TacticBehvior != null)
            {
                return(new TacticWeaponFireUpdate(realWeaponId.Value, _freeArgs));
            }
            if (weaponAllConfig.S_DoubleBehavior != null)
            {
                return(new DoubleWeaponFireUpdate(fireScriptsCreator.GetFireController(weaponAllConfig, weaponAllConfig.S_DoubleBehavior.LeftFireLogic),
                                                  fireScriptsCreator.GetFireController(weaponAllConfig, weaponAllConfig.S_DoubleBehavior.RightFireLogic)));
            }
            return(null);
        }
 public WeaponFireUpdateManagaer(//WeaponConfigManagement weaponDataConfigManager,
     //IWeaponResourceConfigManager weaponConfigManager,
     WeaponFireScriptsProvider fireScriptsCreator,
     IFreeArgs freeArgs)
 {
     this.fireScriptsCreator = fireScriptsCreator;
     //_weaponDataConfigManager = weaponDataConfigManager;
     // SingletonManager.Get<WeaponResourceConfigManager>() = weaponConfigManager;
     _freeArgs = freeArgs;
     _commonWeaponFireUpdate = new CommonWeaponFireUpdate();
 }