Exemple #1
0
        //#####################################################################################
        // 갱신

        public void Update()
        {
            // 게임판 갱신
            this.GameBoardDirector.Update();


            // 수신된 메세지 처리
            m_server.ReceiveMessageInto(m_procList);


            // 유저 확인을 할때가 되었으면
            if (m_checkUserTimer.Tick(0))
            {
                // 랜덤한 간격으로 재설정
                m_checkUserTimer.Set(0, (int)TimeSpan.FromMinutes(Utility.Random.Next(4, 8)).TotalMilliseconds);
                m_checkUserTimer.Update(0);

                // 확인 요청
                m_noticeManager.CheckUser();
            }


            // 맵 불러오기
            if (m_timeToLoadMap)
            {
                m_timeToLoadMap = this.GameBoard.LoadNext();

                // 맵 로딩이 완료되었으면
                if (m_timeToLoadMap == false)
                {
                    // 로그인을 받도록 설정.
                    this.UserDirector.CanLogin = true;
                }
            }
            else
            {
                // 불러오는 도중에는 저장안함.

                // 자동저장
                if (m_autoSaveTimer.Tick(0))
                {
                    // 더이상 저장할 청크가 없으면
                    if (this.GameBoard.SaveNext() == false)
                    {
                        // 유저정보 저장
                        m_userManager.SaveAllAccount();


                        // 회사 정보 저장
                        m_companyManager.SaveAll();


                        // 타이머 리셋
                        m_autoSaveTimer.Update(0);
                    }
                }
            }
        }