示例#1
0
    public IEnumerator Start()
    {
        var spawnManager = ManagerLocator.TryGet <SpawnManager>();

        while (spawnManager == null)
        {
            yield return(null);

            spawnManager = ManagerLocator.TryGet <SpawnManager>();
        }

        while (true)
        {
            Debug.Log("Starting to spawn with seed " + (++seed));
            Random.InitState(seed);

            spawnManager.StartSpawning();

            var totalElapsed = 0f;
            while (totalElapsed < testUnitDuration)
            {
                totalElapsed += Time.deltaTime;
                yield return(null);
            }

            spawnManager.StopSpawning();
            spawnManager.RemoveSpawnedEnemies();
            spawnManager.Reset();

            yield return(null);
        }
    }
示例#2
0
    private void Start()
    {
        _player = ManagerLocator.TryGet <PlayerController>();
        ManagerLocator.TryGet <GameController>().OnGameOver  += HandleGameOver;
        ManagerLocator.TryGet <GameController>().OnGameStart += HandleGameStart;

        Setup();
    }
示例#3
0
    private void Start()
    {
        _hitManager = ManagerLocator.TryGet <HitManager>();
        _pool       = ManagerLocator.TryGet <PoolManager>();

        ManagerLocator.TryGet <GameController>().OnGameOver  += HandleGameOver;
        ManagerLocator.TryGet <GameController>().OnGameStart += HandleGameStart;
    }
示例#4
0
 private void OnDisable()
 {
     if (_isDirty)
     {
         ManagerLocator.TryGet <SettingsManager>().SetSettings(invertMouseToggle.isOn, sensitivitySlider.value);
         _isDirty = false;
     }
 }
示例#5
0
    private void Start()
    {
        _isMouseInverted  = SettingsManager.IsMouseInverted();
        _mouseSensitivity = SettingsManager.MouseSensitivity();

        camManagerClient.CanShake = _currentViewPos == ViewPosition.FirstPerson;

        ManagerLocator.TryGet <SettingsManager>().OnSettingsChanged += HandleSettingsChanged;
    }
示例#6
0
    private void OnDestroy()
    {
        var sm = ManagerLocator.TryGet <SettingsManager>();

        if (sm != null)
        {
            sm.OnSettingsChanged -= HandleSettingsChanged;
        }
    }
示例#7
0
    private void OnDestroy()
    {
        var hitManager = ManagerLocator.TryGet <HitManager>();

        if (hitManager != null)
        {
            hitManager.Unregister(gameObject);
        }
    }
示例#8
0
    private void OnDestroy()
    {
        var gc = ManagerLocator.TryGet <GameController>();

        if (gc != null)
        {
            gc.OnGameOver -= HandleGameOver;
        }
    }
示例#9
0
    private void TryFindPlayerHP()
    {
        var player = ManagerLocator.TryGet <PlayerController>();

        if (player != null)
        {
            hpToObserve = player.HP;
        }
    }
示例#10
0
    private void Start()
    {
        var gc = ManagerLocator.TryGet <GameController>();

        if (gc != null)
        {
            gc.OnGameOver += HandleGameOver;
        }
    }
示例#11
0
    private void Start()
    {
        Camera = GetComponent <Camera>();
        if (Camera != null)
        {
            ManagerLocator.TryGet <CameraManager>().Register((int)camType, this);
        }

        CanShake = true;
    }
示例#12
0
 private void Update()
 {
     if (Input.GetKey(KeyCode.Escape))
     {
         var gc = ManagerLocator.TryGet <GameController>();
         if (gc != null && gc.IsPlaying)
         {
             StartCoroutine(PauseGameRoutine(gc));
         }
     }
 }
示例#13
0
        static void Main()
        {
            // NOTE: in "real" world would likely use a base class for access to the
            // manager locator similar to ManagerBase
            IManagerLocator managerLocator = new ManagerLocator();
            IPriceManager   priceManager   = managerLocator.CreateManager <IPriceManager>();

            priceManager.ProcessPriceUpdates("B00007E7JU");

            Console.ReadLine();
        }
示例#14
0
    private void OnDestroy()
    {
        var gc = ManagerLocator.TryGet <GameController>();

        if (gc != null)
        {
            gc.OnLiveEnemyCountChanged    -= HandleLiveEnemyCountChanged;
            gc.OnDeadEnemyCountChanged    -= HandleDeadEnemyCountChanged;
            gc.OnBulletsFiredCountChanged -= HandleBulletsFiredCountChanged;
        }
    }
示例#15
0
    public static void Cleanup()
    {
        if (_instance != null)
        {
            foreach (var manager in _instance._managers.Values)
            {
                manager.Cleanup();
            }

            _instance = null;
        }
    }
示例#16
0
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.S))
        {
            foreach (var shakeable in ManagerLocator.TryGetAll <IShakeable>())
            {
                shakeable.Shake(intensity);
            }

            Invoke("MakePlayerDie", 0.1f);
        }
    }
示例#17
0
    private void Start()
    {
        var hitManager = ManagerLocator.TryGet <HitManager>();

        if (hitManager != null)
        {
            hitManager.Register(gameObject, this);
            if (log)
            {
                Debug.Log("Registering: " + gameObject.name);
            }
        }
    }
示例#18
0
    private void ProcessCamPerspectiveSwitchInput()
    {
        if (Input.GetKeyDown(KeyCode.C))
        {
            camRotator.TogglePerspective();
        }

        if (Input.GetKeyDown(KeyCode.R))
        {
            var hud = ManagerLocator.TryGet <HUD>();
            hud?.ToggleRearViewMirrorCamera();
        }
    }
示例#19
0
    private void Start()
    {
        var gc = ManagerLocator.TryGet <GameController>();

        gc.OnLiveEnemyCountChanged    += HandleLiveEnemyCountChanged;
        gc.OnDeadEnemyCountChanged    += HandleDeadEnemyCountChanged;
        gc.OnBulletsFiredCountChanged += HandleBulletsFiredCountChanged;
        gc.OnBulletsHitCountChanged   += HandleBulletsHitCountChanged;

        HandleLiveEnemyCountChanged(0);
        HandleDeadEnemyCountChanged(0);
        HandleBulletsFiredCountChanged(0);
        HandleBulletsHitCountChanged(0);
    }
示例#20
0
    private void OnDestroy()
    {
        if (_player != null)
        {
            _player.weaponController.OnWeaponChanged     -= HandleWeaponChanged;
            _player.weaponController.OnDispersionChanged -= HandleDispersionChanged;
        }

        var gc = ManagerLocator.TryGet <GameController>();

        if (gc != null)
        {
            gc.OnGameOver -= HandleGameOver;
        }
    }
示例#21
0
    private IEnumerator QuitConfirmationFlowRoutine(ConfirmationContext doesUserWantToQuit)
    {
        var menuManager = ManagerLocator.TryGet <MenuUIManager>();
        var quitConfirm = new ConfirmationContext();

        menuManager.ShowConfirmPopup("Back to main menu?", quitConfirm);

        while (!quitConfirm.IsFinished)
        {
            yield return(null);
        }

        if (quitConfirm.IsConfirmed)
        {
            gameObject.SetActive(false);
            doesUserWantToQuit.Confirm();
        }
    }
示例#22
0
    private IEnumerator Start()
    {
        var camManager = ManagerLocator.TryGet <CameraManager>();

        while (rearViewCamera == null || topDownViewCamera == null)
        {
            rearViewCamera    = camManager.TryGetCamera((int)CamType.Rear);
            topDownViewCamera = camManager.TryGetCamera((int)CamType.TopDown);

            yield return(null);
        }

        var pixelRect = GetPixelRectForCamera();

        rearViewCamera.pixelRect    = pixelRect;
        topDownViewCamera.pixelRect = pixelRect;

        Setup();
    }
示例#23
0
    public void ShakeIt(float shakeIntensity)
    {
        // Player is assumed to be at the origin
        var flatPosition     = new Vector2(CachedTransform.position.x, CachedTransform.position.z);
        var distanceToPlayer = flatPosition.magnitude;

        var intensity = shakeIntensity * Mathf.Lerp(MAX_INTENSITY_FACTOR, MIN_INTENSITY_FACTOR,
                                                    distanceToPlayer / MAX_DISTANCE);

        var shakeables = ManagerLocator.TryGetAll <IShakeable>();

        if (shakeables != null && shakeables.Count > 0)
        {
            foreach (var shakeable in shakeables)
            {
                shakeable.Shake(intensity);
            }
        }
    }
示例#24
0
        public override bool AddLocator(
            ManagerLocator locator,
            string name = null)
        {
            if (locator == null)
            {
                return(falsity);
            }

            ICollection <NamedLocatorHolder> ls;
            NamedLocatorHolder alreadyAddedLocator;

            ls = this.locators;
            alreadyAddedLocator = EH.FirstOrDefault(
                ls,
                locatorHolder => ReferenceEquals(
                    locator,
                    locatorHolder?.Locator));

            if (alreadyAddedLocator != null)
            {
                return(falsity);
            }

            NamedLocatorHolder sameNameHolder;

            sameNameHolder = EH.FirstOrDefault(
                ls,
                locatorHolder => locatorHolder?.Name == name);

            if (sameNameHolder != null)
            {
                return(falsity);
            }

            this.add(
                new NamedLocatorHolder
            {
                Locator = locator,
                Name    = name
            });
            return(truth);
        }
示例#25
0
    private void OnTriggerEnter(Collider other)
    {
        if (_hasDealtDamage)
        {
            return;
        }

        var collisionManager = ManagerLocator.TryGet <HitManager>();

        collisionManager?.ReportHit(other.gameObject, transform.position, damage);

        _hasDealtDamage = true;

        OnImpact?.Invoke();

        if (destroySelfOnImpact)
        {
            Destroy(gameObject);
        }
    }
示例#26
0
        public App()
        {
            InitializeComponent();
            SplashFactory = (e) => new Views.Splash(e);

            Constants.SetConstants(betaMode: true, logEnable: true);

            if (ManaLoc == null)
            {
                ManaLoc = new ManagerLocator();
            }

            AppCenter.Start("3dd92a82-f647-4e33-97eb-4225f3fee03f", typeof(Analytics));
            AppCenter.Start("3dd92a82-f647-4e33-97eb-4225f3fee03f", typeof(Push));

            //Reminder.Registration.RegistrBackgroundTaskAsync();

            RegisterBA();

            #region App settings

            var _settings = SettingsService.Instance;

            if (!_settings.UseSystemAppTheme)
            {
                RequestedTheme = _settings.AppTheme;
            }

            if (!_settings.UseHelloSecurity)
            {
                _settings.UseHelloSecurity = true;
            }

            CacheMaxDuration    = _settings.CacheMaxDuration;
            ShowShellBackButton = _settings.UseShellBackButton;

            Suspending += App_Suspending;

            #endregion
        }
示例#27
0
    private IEnumerator GameOverRoutine(GameController.GameResult playerHasWon)
    {
        var gc = ManagerLocator.TryGet <GameController>();

        gc.PauseGame(true);

        if (playerHasWon != GameController.GameResult.PlayerQuit)
        {
            var playerWon = playerHasWon == GameController.GameResult.PlayerWon;
            var context   = new ConfirmationContext();
            gameOverPopup.Show(playerWon, context);

            while (!context.IsFinished)
            {
                yield return(null);
            }
        }

        gc.AbortGameServices();

        ShowMainMenu();
    }
示例#28
0
 private void Awake()
 {
     ManagerLocator.TryRegister <HUD>(this);
 }
示例#29
0
 public void OnNewGameButtonClicked()
 {
     HideAllMenuItems();
     ManagerLocator.TryGet <GameController>().StartNewGame();
 }
示例#30
0
 private void Start()
 {
     ManagerLocator.TryGet <GameController>().OnGameOver += HandleGameOver;
 }