Esempio n. 1
0
        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);
            });
        }
Esempio n. 2
0
        public void Update()
        {
            if (HasDuration)
            {
                TimeLeft--;
            }

            OnStateUpdate?.Invoke(sender: this);
        }
Esempio n. 3
0
        public void Update()
        {
            OnStateUpdate?.Invoke(this);
            AssignedAnimations[SelectedAnimation].Update();

            if (!CurrentAnimation.Active)
            {
                EndState();
            }
        }
Esempio n. 4
0
        /// <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));
            }
        }
Esempio n. 5
0
 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) {

        }
    }
Esempio n. 8
0
 public void UpdateState()
 {
     OnStateUpdate?.Invoke();
 }