Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="baseMobile"></param>
        public void OnLeave(BaseCharacter character)
        {
            if (m_MapSpaceNodeState != null)
            {
                m_MapSpaceNodeState.OnLeavingMapSpaceNode(character, this);
            }

            m_Players.Remove(character);

            if (this.PlayersCount == 0 && m_SpaceNodeState != SpaceNodeState.Deactivate)
            {
                // 如果游戏玩家的列表是空的话,则无效区域点,说明此区域点玩家不存在
                m_LockSpaceNodeState.Enter();
                {
                    if (this.PlayersCount == 0 && m_SpaceNodeState != SpaceNodeState.Deactivate)
                    {
                        m_SpaceNodeState = SpaceNodeState.Deactivate;
                        this.OnDeactivate();
                    }
                }
                m_LockSpaceNodeState.Exit();
            }

            if (m_MapSpaceNodeState != null)
            {
                m_MapSpaceNodeState.OnLeavedMapSpaceNode(character, this);
            }
        }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="baseMobile"></param>
        public void OnEnter(BaseCharacter character)
        {
            if (m_MapSpaceNodeState != null)
            {
                m_MapSpaceNodeState.OnEnteringMapSpaceNode(character, this);
            }

            m_Players.Add(character, character);

            if (m_SpaceNodeState != SpaceNodeState.Activate)
            {
                // 如果游戏玩家的列表是空的话,则激活区域点,说明此区域点有玩家存在
                m_LockSpaceNodeState.Enter();
                {
                    if (this.PlayersCount > 0 && m_SpaceNodeState != SpaceNodeState.Activate)
                    {
                        m_SpaceNodeState = SpaceNodeState.Activate;
                        this.OnActivate();
                    }
                }
                m_LockSpaceNodeState.Exit();
            }

            if (m_MapSpaceNodeState != null)
            {
                m_MapSpaceNodeState.OnEnteredMapSpaceNode(character, this);
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="baseMobile"></param>
        public void OnLeave( BaseCharacter character )
        {
            if ( m_MapSpaceNodeState != null )
                m_MapSpaceNodeState.OnLeavingMapSpaceNode( character, this );

            m_Players.Remove( character );

            if ( this.PlayersCount == 0 && m_SpaceNodeState != SpaceNodeState.Deactivate)
            {
                // 如果游戏玩家的列表是空的话,则无效区域点,说明此区域点玩家不存在
                m_LockSpaceNodeState.Enter();
                {
                    if ( this.PlayersCount == 0 && m_SpaceNodeState != SpaceNodeState.Deactivate )
                    {
                        m_SpaceNodeState = SpaceNodeState.Deactivate;
                        this.OnDeactivate();
                    }
                }
                m_LockSpaceNodeState.Exit();
            }

            if ( m_MapSpaceNodeState != null )
                m_MapSpaceNodeState.OnLeavedMapSpaceNode( character, this );
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="baseMobile"></param>
        public void OnEnter( BaseCharacter character )
        {
            if ( m_MapSpaceNodeState != null )
                m_MapSpaceNodeState.OnEnteringMapSpaceNode( character, this );

            m_Players.Add( character, character );

            if ( m_SpaceNodeState != SpaceNodeState.Activate )
            {
                // 如果游戏玩家的列表是空的话,则激活区域点,说明此区域点有玩家存在
                m_LockSpaceNodeState.Enter();
                {
                    if ( this.PlayersCount > 0 && m_SpaceNodeState != SpaceNodeState.Activate )
                    {
                        m_SpaceNodeState = SpaceNodeState.Activate;
                        this.OnActivate();
                    }
                }
                m_LockSpaceNodeState.Exit();
            }

            if ( m_MapSpaceNodeState != null )
                m_MapSpaceNodeState.OnEnteredMapSpaceNode( character, this );
        }