Ejemplo n.º 1
0
        private void GunshotWoundInit()
        {
            _ecsWorld = new EcsWorld();

            _mainConfig = EcsFilterSingle <MainConfig> .Create(_ecsWorld);

            _localeConfig = EcsFilterSingle <LocaleConfig> .Create(_ecsWorld);

            _gswWorld = EcsFilterSingle <GswWorld> .Create(_ecsWorld);

            _gswWorld.GswPeds = new Dictionary <Ped, int>();

            try
            {
                TryToLoadConfigsFromXml();
                _configLoaded = true;
            }
            catch (Exception e)
            {
                LoadDefaultConfigs();
                _configLoaded = false;

#if DEBUG
                UI.Notify(e.ToString());
#endif
            }

            try
            {
                TryToLoadLocalization();
                _localizationLoaded = true;
            }
            catch (Exception e)
            {
                LoadDefaultLocalization();
                _localizationReason = e.Message;
                _localizationLoaded = false;

#if DEBUG
                UI.Notify(e.ToString());
#endif
            }

            _everyFrameSystems = new EcsSystems(_ecsWorld);
            _commonSystems     = new MultiTickEcsSystems(_ecsWorld, MultiTickEcsSystems.RestrictionModes.MILLISECONDS, 10);

            if (_mainConfig.NpcConfig.AddingPedRange > MINIMAL_RANGE_FOR_WOUNDED_PEDS)
            {
                _commonSystems
                .Add(new NpcFindSystem())
                .Add(new ConvertPedToNpcGswPedSystem())
                .Add(new RemoveWoundedPedSystem());
            }

            if (_mainConfig.PlayerConfig.WoundedPlayerEnabled)
            {
                _everyFrameSystems
                .Add(new PlayerSystem())
                .Add(new SpecialAbilityLockSystem());

                if (_mainConfig.PlayerConfig.MaximalSlowMo < 1f)
                {
                    _everyFrameSystems
                    .Add(new AdrenalineSystem());
                }
            }

            _everyFrameSystems
            .Add(new InstantHealSystem())
            .Add(new HelmetRequestSystem())

            .Add(new RagdollSystem())
            .Add(new SwitchAnimationSystem())

            .Add(new DebugInfoSystem())

            .Add(new CameraShakeSystem())
            .Add(new FlashSystem())

            .Add(new PainRecoverySystem())
            .Add(new BleedingSystem())
            .Add(new BandageSystem())
            .Add(new SelfHealingSystem());

            _commonSystems
            .Add(new ArmorSystem())
            .AddHitDetectSystems()
            .AddDamageProcessingSystems()
            .AddWoundSystems()
            .AddPainStateSystems()
            .Add(new CheckSystem())
            .Add(new NotificationSystem());

            _everyFrameSystems.Initialize();
            _commonSystems.Initialize();

            Tick  += OnTick;
            KeyUp += OnKeyUp;

            _isPaused = false;
        }
Ejemplo n.º 2
0
        private void GunshotWoundInit()
        {
            Function.Call(Hash._SET_CAM_EFFECT, 0);
            _ecsWorld = new EcsWorld();

            _mainConfig = EcsFilterSingle <MainConfig> .Create(_ecsWorld);

            _localeConfig = EcsFilterSingle <LocaleConfig> .Create(_ecsWorld);

            _gswWorld = EcsFilterSingle <GswWorld> .Create(_ecsWorld);

            _gswWorld.GswPeds = new Dictionary <Ped, int>();

            (_configLoaded, _configReason)             = MainConfig.TryToLoadFromXml(_mainConfig);
            (_localizationLoaded, _localizationReason) = LocaleConfig.TryToLoadLocalization(_localeConfig, _mainConfig.Language);

            _everyFrameSystems = new EcsSystems(_ecsWorld);
            _commonSystems     = new MultiTickEcsSystems(_ecsWorld, MultiTickEcsSystems.RestrictionModes.MILLISECONDS, 10);

            if (_mainConfig.NpcConfig.AddingPedRange > MinimalRangeForWoundedPeds)
            {
                _commonSystems
                .Add(new NpcFindSystem())
                .Add(new ConvertPedToNpcGswPedSystem())
                .Add(new RemoveWoundedPedSystem());
            }

            if (_mainConfig.PlayerConfig.WoundedPlayerEnabled)
            {
                _everyFrameSystems
                .Add(new PlayerSystem())
                .Add(new SpecialAbilityLockSystem());

                if (_mainConfig.PlayerConfig.MaximalSlowMo < 1f)
                {
                    _everyFrameSystems.Add(new AdrenalineSystem());
                }
            }

            _everyFrameSystems
            .Add(new InstantHealSystem())
            .Add(new HelmetRequestSystem())
            .Add(new RagdollSystem())
            .Add(new MoveSetSwitchSystem())
            .Add(new DebugInfoSystem())
            .Add(new CameraShakeSystem())
            .Add(new FlashSystem())
            .Add(new PainRecoverySystem())
            .Add(new BleedingSystem())
            .Add(new BandageSystem())
            .Add(new SelfHealingSystem());

            _commonSystems
            .Add(new ArmorSystem())
            .AddHitDetectSystems()
            .AddDamageProcessingSystems()
            .AddWoundSystems()
            .AddPainStateSystems()
            .Add(new CheckSystem())
            .Add(new NotificationSystem());

            _everyFrameSystems.Initialize();
            _commonSystems.Initialize();

            Tick  += OnTick;
            KeyUp += OnKeyUp;

            _isPaused = false;
        }