Ejemplo n.º 1
0
 public IWeaponFireController GetFireController(WeaponAllConfigs configs,
                                                DefaultWeaponAbstractFireFireLogicConfig config)
 {
     if (!_cache.ContainsKey(configs.S_Id))
     {
         var defaultCfg = config as DefaultFireLogicConfig;
         if (null != defaultCfg)
         {
             _cache[configs.S_Id] = CreateCommonFireController(configs, defaultCfg);
         }
         var meleeCfg = config as MeleeFireLogicConfig;
         if (null != meleeCfg)
         {
             _cache[configs.S_Id] = new MeleeWeaponFireController(meleeCfg);
         }
         var throwingCfg = config as ThrowingFireLogicConfig;
         if (null != throwingCfg)
         {
             _cache[configs.S_Id] = new ThrowingWeaponFireController(
                 throwingCfg, _scriptUtil.CreateThrowingFactory(configs.NewWeaponCfg, throwingCfg.Throwing));
         }
     }
     if (_cache.ContainsKey(configs.S_Id))
     {
         return(_cache[configs.S_Id]);
     }
     if (configs.NewWeaponCfg.Type != (int)EWeaponType_Config.TacticWeapon)
     {
         Logger.ErrorFormat("no firelogic for weapon {0}", configs.S_Id);
     }
     return(null);
 }
Ejemplo n.º 2
0
 public IFireLogic GetFireLogic(WeaponResConfigItem newWeaponConfig,
                                DefaultWeaponAbstractFireFireLogicConfig config)
 {
     if (!_cache.ContainsKey(newWeaponConfig.Id))
     {
         var defaultCfg = config as DefaultFireLogicConfig;
         if (null != defaultCfg)
         {
             _cache[newWeaponConfig.Id] = CreateDefaultFireLogic(newWeaponConfig, defaultCfg);
         }
         var meleeCfg = config as MeleeFireLogicConfig;
         if (null != meleeCfg)
         {
             _cache[newWeaponConfig.Id] = new MeleeFireLogic(meleeCfg);
         }
         var throwingCfg = config as ThrowingFireLogicConfig;
         if (null != throwingCfg)
         {
             _cache[newWeaponConfig.Id] = new ThrowingFireLogic(
                 newWeaponConfig,
                 throwingCfg,
                 _componentsFactory);
         }
     }
     if (_cache.ContainsKey(newWeaponConfig.Id))
     {
         return(_cache[newWeaponConfig.Id]);
     }
     if (newWeaponConfig.Type != (int)EWeaponType_Config.TacticWeapon)
     {
         Logger.ErrorFormat("no firelogic for weapon {0}", newWeaponConfig.Id);
     }
     return(null);
 }
Ejemplo n.º 3
0
        public IBulletFireListener  CreateShowFireInMap(DefaultWeaponAbstractFireFireLogicConfig config)
        {
            var defaultFireConfig = config as DefaultFireLogicConfig;

            if (null != defaultFireConfig)
            {
                return(new ShowFireListenerInMap(_contexts.ui));
            }
            return(null);
        }
        public IWeaponFireController GetFireController(WeaponAllConfigs configs,
                                                       DefaultWeaponAbstractFireFireLogicConfig config)
        {
            IWeaponFireController v = null;

            if (_cache.TryGetValue(configs.S_Id, out v))
            {
                return(_cache[configs.S_Id]);
            }

            var defaultCfg = config as DefaultFireLogicConfig;

            if (null != defaultCfg)
            {
                v = CreateCommonFireController(configs, defaultCfg);
                _cache[configs.S_Id] = v;
                return(v);
            }

            var meleeCfg = config as MeleeFireLogicConfig;

            if (null != meleeCfg)
            {
                v = new MeleeWeaponFireController(meleeCfg);
                _cache[configs.S_Id] = v;
                return(v);
            }

            var throwingCfg = config as ThrowingFireLogicConfig;

            if (null != throwingCfg)
            {
                v = new ThrowingWeaponFireController(throwingCfg, configs.NewWeaponCfg);
                _cache[configs.S_Id] = v;
                return(v);
            }

            if (configs.NewWeaponCfg.Type != (int)EWeaponType_Config.TacticWeapon)
            {
                Logger.ErrorFormat("no firelogic for weapon {0}", configs.S_Id);
            }

            return(null);
        }
Ejemplo n.º 5
0
        public IFireTriggger CreateFireTrigger(DefaultWeaponAbstractFireFireLogicConfig config)
        {
            var defaultFireLogicConfig = config as DefaultFireLogicConfig;

            if (null != defaultFireLogicConfig)
            {
                return(new DefaultFireCmdTrigger());
            }
            var meleeFireLogicConfig = config as MeleeFireLogicConfig;

            if (null != meleeFireLogicConfig)
            {
                //TODO 近战武器实现
                return(null);
            }
            var throwingFireLogicConfig = config as ThrowingFireLogicConfig;

            if (null != throwingFireLogicConfig)
            {
                //TODO 投掷武器实现
                return(null);
            }
            return(null);
        }