コード例 #1
0
        private void CTF_Callback()
        {
            if (m_Stone != null)
            {
                if (m_Stone.Validate())
                {
                    m_Stone.JoinStone.RandomTeam = true;
                    m_Stone.JoinStone.Game       = m_Stone.Game;
                    m_Stone.Game.OpenJoin        = true;

                    if (m_Stone.Doors != null)
                    {
                        m_Blocker = new Blocker();
                        m_Blocker.MoveToWorld(m_Stone.Doors.Location, m_Stone.Doors.Map);

                        List <BaseDoor> list = m_Stone.Doors.GetChain();

                        for (int i = 0; i < list.Count; ++i)
                        {
                            ((BaseDoor)list[i]).Open = true;
                        }
                    }
                    else
                    {
                        m_Blocker = null;
                    }

                    m_Stone.JoinStone.Visible = true;

                    new AutoCTFFinTimer(m_Stone, m_Blocker).Start();

                    SetDate();
                }
                else
                {
                    m_Stone.Activate(false);
                }
            }
            else
            {
                Stop();
            }
        }
コード例 #2
0
        protected override void OnTick()
        {
            if (DateTime.Now < m_Start)
            {
                World.Broadcast(m_Stone.CTFMessageHue, true, m_Stone.CTFJoinMessage);
            }
            else if (m_Stone != null && m_Stone.Validate())
            {
                if (m_Blocker != null)
                {
                    m_Blocker.Delete();
                }

                if (m_Stone.Doors != null)
                {
                    List <BaseDoor> list = m_Stone.Doors.GetChain();

                    for (int i = 0; i < list.Count; ++i)
                    {
                        ((BaseDoor)list[i]).Open = false;
                    }
                }

                m_Stone.JoinStone.Visible = false;
                m_Stone.Game.OpenJoin     = false;

                World.Broadcast(m_Stone.CTFMessageHue, true, m_Stone.CTFStartMessage);

                m_Stone.Game.StartGame(false);

                Stop();
            }
            else
            {
                Stop();
            }
        }