Example #1
0
        IEnumerator GameMain()
        {
            while (!stageManager.IsFinish && !IsFinish)
            {
                stageManager.DisactiveResults();
                stageManager.GoNextStage();

                playLogWriter.SetPlayExerciseOnStart(stageManager.CurrentStageData);
                WritePlayerID();

                timer.RpcReadyToStart();
                while (timer.CurrentState == null || !timer.CurrentState.IsRunning)
                {
                    yield return(null);
                }
                while (timer.CurrentState.IsRunning)
                {
                    yield return(null);
                }

                // ステージ終了まで待つ
                timer.RpcStageStart(stageManager.CurrentStage.TimeLimit);
                while (timer.CurrentState == null || !timer.CurrentState.IsRunning)
                {
                    yield return(null);
                }
                while (timer.CurrentState.IsRunning)
                {
                    yield return(null);
                }

                StopPlayersDrag();

                int collect = stageManager.ShowCheckDetail();
                PlayStageState.EndConditionType endCondition = (timer.CurrentState as PlayStageState).EndCondition;
                if (endCondition != PlayStageState.EndConditionType.check_perfect)
                {
                    playLogWriter.SetJudgeLog(0.0f, collect, "time_over");
                }

                playLogWriter.SetPlayExerciseOnEndGame(collect, endCondition);

                timer.RpcStageEnd(collect);
                while (timer.CurrentState == null || !timer.CurrentState.IsRunning)
                {
                    yield return(null);
                }
                while (timer.CurrentState.IsRunning)
                {
                    yield return(null);
                }
            }
            IsFinish = false;

            timer.GoFinalResult();

            mainCoroutine = null;
        }
        /// <summary> ゲーム終了時に終了時間などのログをDBに保存 </summary>
        public void SetPlayExerciseOnEndGame(int point, PlayStageState.EndConditionType endCondition)
        {
            string query
                = string.Format("UPDATE play_exercise SET ")
                  + string.Format("end_time={0},point={1},end_condition='{2}' ", CurrentUnixTime, point, endCondition)
                  + string.Format("WHERE id={0}", currentPlayExerciseId);

            sqlDB.ExecuteQuery(query);
        }
 void IWritePlayLog.SetPlayExerciseOnEndGame(int point, PlayStageState.EndConditionType endCondition)
 {
 }