コード例 #1
0
 protected override void AfterStart()
 {
     base.AfterStart();
     // Reset timer so it starts at 0 instead of 4.2
     startTime       = level.RawTimeActive;
     level.Add(timer = new MinigameTimeDisplay(this));
 }
コード例 #2
0
        public override void OnEnter(Player player)
        {
            base.OnEnter(player);
            // Stop problems with the player entering the trigger multiple times
            if (GameData.Instance.minigameResults.Exists((obj) => obj.Item1 == GameData.Instance.realPlayerID))
            {
                return;
            }
            completed = true;
            MinigameTimeDisplay display = level.Entities.FindFirst <MinigameTimeDisplay>();

            if (display != null)
            {
                display.finalTime = level.RawTimeActive - startTime;
            }
            float timeElapsed = (level.RawTimeActive - startTime) * 10000;

            startTime      = -1;
            started        = false;
            didRespawn     = false;
            level.CanRetry = false;
            foreach (SyncedKevin kevin in level.Tracker.GetEntities <SyncedKevin>())
            {
                kevin.deactivated = true;
            }
            GameData.Instance.minigameResults.Add(new Tuple <int, uint>(GameData.Instance.realPlayerID, (uint)timeElapsed));
            MultiplayerSingleton.Instance.Send(new MinigameEnd {
                results = (uint)timeElapsed
            });

            Add(new Coroutine(EndMinigame(LOWEST_WINS, () => {})));
        }
コード例 #3
0
        protected IEnumerator EndMinigame()
        {
            completed = true;
            MinigameTimeDisplay display = level.Entities.FindFirst <MinigameScoreDisplay>();

            if (display != null)
            {
                display.finalTime = level.RawTimeActive - startTime;
            }
            uint timeElapsed = theoCount < THEOS_NEEDED ? uint.MaxValue : (uint)((level.RawTimeActive - startTime) * 10000);

            startTime      = -1;
            started        = false;
            didRespawn     = false;
            level.CanRetry = false;
            Console.WriteLine("Theo Count: " + theoCount);
            GameData.Instance.minigameResults.Add(new Tuple <int, uint>(GameData.Instance.realPlayerID, timeElapsed));
            MultiplayerSingleton.Instance.Send(new MinigameEnd {
                results = timeElapsed
            });

            yield return(new SwapImmediately(EndMinigame(LOWEST_WINS, () => {
                theoCount = 0;
            })));
        }