Esempio n. 1
0
        public override void Update(int current_time)
        {
            bool forward = m_world_syhchronizer.ForwardTurn();

            if (forward && m_mode == RUNNING_MODE)
            {
                SyncTurnDoneCommand command = new SyncTurnDoneCommand();
                command.PlayerPstid = -1;
                command.SyncTurn    = m_world_syhchronizer.GetSynchronizedTurn();
                AddOutputCommand(command);
            }
        }
Esempio n. 2
0
        public override void Stop()
        {
            int synchronized_turn = m_world_syhchronizer.GetSynchronizedTurn();

            if (SyncParam.FRAME_COUNT_PER_SYNCTURN > 1)
            {
                synchronized_turn += 1;
            }
            SyncTurnDoneCommand command = new SyncTurnDoneCommand();

            command.PlayerPstid = m_local_player_pstid;
            command.SyncTurn    = synchronized_turn;
            AddOutputCommand(command);
        }
Esempio n. 3
0
        public override void Update(int current_time)
        {
            if (m_current_turn == -1)
            {
                if (current_time < m_start_time)
                {
                    return;
                }
                else
                {
                    m_current_turn = 0;
                    m_world_syhchronizer.Start(m_start_time);
                    m_last_update_time = m_start_time;
                }
            }
            bool forward = m_world_syhchronizer.ForwardFrame(current_time);

            m_last_update_time = current_time;
            if (!forward)
            {
                return;
            }
            int synchronized_turn  = m_world_syhchronizer.GetSynchronizedTurn();
            int forward_turn_count = synchronized_turn + 1 - m_current_turn;

            if (forward_turn_count <= 0)
            {
                return;
            }
            m_stored_turndone_count += forward_turn_count;
            m_current_turn           = synchronized_turn + 1;
            if (m_stored_turndone_count >= SyncParam.SP_SYNC_INTERVAL_TURNCOUNT)
            {
                if (m_send_turndone)
                {
                    SyncTurnDoneCommand command = new SyncTurnDoneCommand();
                    command.PlayerPstid = m_local_player_pstid;
                    command.SyncTurn    = synchronized_turn;
                    AddOutputCommand(command);
                }
                m_stored_turndone_count = 0;
            }
        }
Esempio n. 4
0
        public override void Update(int current_time)
        {
            if (m_current_turn == -1)
            {
                if (current_time < m_start_time)
                {
                    return;
                }
                else
                {
                    OnTurnEnd(0);
                    m_current_turn = 0;
                    m_world_syhchronizer.Start(m_start_time);
                    m_last_update_time = m_start_time;
                }
            }
            bool forward = m_world_syhchronizer.ForwardFrame(current_time);

            m_last_update_time = current_time;
            if (!forward)
            {
                return;
            }
            int synchronized_turn  = m_world_syhchronizer.GetSynchronizedTurn();
            int forward_turn_count = synchronized_turn + 1 - m_current_turn;

            if (forward_turn_count <= 0)
            {
                return;
            }
            for (int i = m_current_turn + 1; i <= synchronized_turn + 1; ++i)
            {
                OnTurnEnd(i);
            }
            m_current_turn = synchronized_turn + 1;
            SyncTurnDoneCommand command = new SyncTurnDoneCommand();

            command.PlayerPstid = -1L;
            command.SyncTurn    = synchronized_turn + 1;
            AddOutputCommand(command);
        }