private async Task Start() { CurrentPhase = Phase.Running; if (_users.Count <= 1) { foreach (var user in _users) { if (user.Bet > 0) { await _currency.AddAsync(user.UserId, "Race refund", user.Bet).ConfigureAwait(false); } } var _sf = OnStartingFailed?.Invoke(this); CurrentPhase = Phase.Ended; return; } var _ = OnStarted?.Invoke(this); var _t = Task.Run(async() => { var rng = new NadekoRandom(); while (!_users.All(x => x.Progress >= 60)) { foreach (var user in _users) { user.Progress += rng.Next(1, 11); if (user.Progress >= 60) { user.Progress = 60; } } var finished = _users.Where(x => x.Progress >= 60 && !FinishedUsers.Contains(x)) .Shuffle(); FinishedUsers.AddRange(finished); var _ignore = OnStateUpdate?.Invoke(this); await Task.Delay(2500).ConfigureAwait(false); } var win_amount = 0; foreach (var u in FinishedUsers) { win_amount += (int)u.Bet; } if (FinishedUsers[0].Bet > 0) { await _currency.AddAsync(FinishedUsers[0].UserId, "Won a Race", win_amount) .ConfigureAwait(false); } var _ended = OnEnded?.Invoke(this); }); }
public void Update() { if (HasDuration) { TimeLeft--; } OnStateUpdate?.Invoke(sender: this); }
public void Update() { OnStateUpdate?.Invoke(this); AssignedAnimations[SelectedAnimation].Update(); if (!CurrentAnimation.Active) { EndState(); } }
/// <summary> /// Handles the states's update after a property of it was modified. /// </summary> /// <param name="state">The state that was updated.</param> public void UpdateState(IState state) { if (state == null) { throw new ArgumentNullException(nameof(state), "The state can not be null!"); } if (GetState(state.Id) == state) { OnStateUpdate?.Invoke(this, new StateEventArgs(state)); } }
public void OnPollResult(List <PlayerState> list) { ProcessPoll(list); OnStateUpdate?.Invoke(list); }
public virtual void Update() { OnStateUpdate?.Invoke(); }
public void HandleOnStateChange(GameState state) { onStateUpdateHandler = null; if (gameState == GameState.TitleScreen) { //replace with sceptre button code onStateUpdateHandler = () => { if (Input.GetKeyDown("space")) SetGameState (GameState.AcquireSceptre); }; } else if (gameState == GameState.AcquireSceptre) { onStateUpdateHandler = () => { if (Input.GetKeyDown("space")) SetGameState (GameState.TransformSceptre); }; } else if (gameState == GameState.TransformSceptre) { onStateUpdateHandler = () => { if (Input.GetKeyDown("space")) // THIS SCENE SKIPS TO BATTLEGRUNT- CHANGE IN EXPANDED VERSION SetGameState (GameState.BattleGrunt); }; } else if (gameState == GameState.AcquireWeaponX) { } else if (gameState == GameState.TransformWeaponX) { } else if (gameState == GameState.StoryPrologue) { } else if (gameState == GameState.BattleTutorial) { } else if (gameState == GameState.StoryBody) { } else if (gameState == GameState.BattleGrunt) { // COMBAT MODE SHOULD BE A SEPARATE FUNCTION CALLED HERE // //onStateUpdateHandler = () => //{ // if (GameObject.Find("TestMonster").GetComponent<MonsterHealth>().enemyDestroyed) //will check if true // Debug.Log ("Victory!"); // SetGameState (GameState.BattleVictory); //}; } else if (gameState == GameState.BattleVictory) { } else if (gameState == GameState.BattleFail) { } else if (gameState == GameState.StoryClimax) { } else if (gameState == GameState.Transformation) { } else if (gameState == GameState.BattleBoss) { } else if (gameState == GameState.StoryEnd) { } else if (gameState == GameState.Credits) { } }
public void UpdateState() { OnStateUpdate?.Invoke(); }