Ejemplo n.º 1
0
 public override void NextWaveReady(WavesFPSGameViewModel wavesFPSGame)
 {
     base.NextWaveReady(wavesFPSGame);
     WavesGame.WaveKills = 0;
     WavesGame.CurrentWave++;
     WavesGame.KillsToNextWave += _NumberOfEnemiesMultiplier;
     WavesGame.SpawnWaitSeconds = Mathf.RoundToInt(WavesGame.SpawnWaitSeconds * _SpawnWaitMultiplier);
     WavesGame.EnemiesSpawned   = 0;
 }
Ejemplo n.º 2
0
    public override void Spawn(WavesFPSGameViewModel wavesFPSGame)
    {
        base.Spawn(wavesFPSGame);

        if (WavesGame.EnemiesSpawned < wavesFPSGame.KillsToNextWave)
        {
            //Debug.Log("Spawn" + wavesFPSGame.KillsToNextWave);
            SpawnEnemy();
            WavesGame.EnemiesSpawned++;
        }
    }
Ejemplo n.º 3
0
    protected override void InitializeViewModel(ViewModel viewModel)
    {
        base.InitializeViewModel(viewModel);
        WavesFPSGameViewModel wavesFPSGame = ((WavesFPSGameViewModel)(viewModel));

        wavesFPSGame.WaveKills        = this._WaveKills;
        wavesFPSGame.KillsToNextWave  = this._KillsToNextWave;
        wavesFPSGame.CurrentWave      = this._CurrentWave;
        wavesFPSGame.SpawnWaitSeconds = this._SpawnWaitSeconds;
        wavesFPSGame.EnemiesSpawned   = this._EnemiesSpawned;
    }
    public override void InitializeWavesFPSGame(WavesFPSGameViewModel wavesFPSGame)
    {
        Debug.Log("Waves Game Initialized");

        LocalPlayer.DiedAsObservable.Subscribe(wavesFPSGame.PlayerDied).DisposeWith(wavesFPSGame);

        //// Bind the local players death to the command
        //wavesFPSGame.CurrentPlayerProperty.First().Subscribe(player =>
        //        player.DiedAsObservable.Subscribe(wavesFPSGame.PlayerDied).DisposeWith(wavesFPSGame)
        //    );

        wavesFPSGame.WavesStateProperty
        .Subscribe(s => StateChanged(wavesFPSGame, s))
        .DisposeWith(wavesFPSGame);

        ExecuteCommand(wavesFPSGame.NextWaveReady);
    }
 private void StateChanged(WavesFPSGameViewModel wavesFPSGame, State state)
 {
     if (state is Wave)
     {
         Observable.Interval(TimeSpan.FromSeconds(wavesFPSGame.SpawnWaitSeconds))
         .Take(wavesFPSGame.KillsToNextWave)
         .Select(_ => Unit.Default)
         .Subscribe(wavesFPSGame.Spawn);
     }
     else if (state is WaitForNextWave)
     {
         Observable.Timer(TimeSpan.FromSeconds(3))
         .Subscribe(_ => ExecuteCommand(wavesFPSGame.NextWaveReady));
     }
     else if (state is GameOver)
     {
         wavesFPSGame.Enemies.Clear();
     }
 }
Ejemplo n.º 6
0
 private void StateChanged(WavesFPSGameViewModel wavesFPSGame, State state)
 {
     if (state is Wave)
     {
         Observable.Interval(TimeSpan.FromSeconds(wavesFPSGame.SpawnWaitSeconds))
         .Take(wavesFPSGame.KillsToNextWave)
         .Select(_ => Unit.Default)
         .Subscribe(wavesFPSGame.Spawn);
     }
     else if (state is WaitForNextWave)
     {
         Observable.Timer(TimeSpan.FromSeconds(3))
         .Subscribe(_ => ExecuteCommand(wavesFPSGame.NextWaveReady));
     }
     else if (state is GameOver)
     {
         _NumberOfEnemiesAtStart    = 2;
         _NumberOfEnemiesMultiplier = 2;
         _SpawnWait           = 5f;
         _SpawnWaitMultiplier = 0.9f;
         //WavesGame.CurrentWave = 1;
         wavesFPSGame.Enemies.Clear();
     }
 }
Ejemplo n.º 7
0
 public virtual void Spawn(WavesFPSGameViewModel wavesFPSGame)
 {
 }
Ejemplo n.º 8
0
 public virtual void NextWaveReady(WavesFPSGameViewModel wavesFPSGame)
 {
 }
Ejemplo n.º 9
0
 public virtual void Retry(WavesFPSGameViewModel wavesFPSGame)
 {
 }
Ejemplo n.º 10
0
 public virtual void PlayerDied(WavesFPSGameViewModel wavesFPSGame)
 {
 }
Ejemplo n.º 11
0
 public abstract void InitializeWavesFPSGame(WavesFPSGameViewModel wavesFPSGame);
 public override void Spawn(WavesFPSGameViewModel wavesFPSGame)
 {
     base.Spawn(wavesFPSGame);
     SpawnEnemy();
     WavesGame.EnemiesSpawned++;
 }