Server.Mobiles.PlayerMobile.CanSee C# (CSharp) Method

CanSee() public method

public CanSee ( Mobile m ) : bool
m Mobile
return bool
		public override bool CanSee( Mobile m )
		{
			if ( m is PlayerMobile && ((PlayerMobile)m).m_VisList.Contains( this ) )
				return true;

			return base.CanSee( m );
		}

Usage Example

コード例 #1
0
        public static void FightingBackToBack( PlayerMobile pm, bool movingaway )
        {
            ArrayList list = new ArrayList();
            ArrayList allies = new ArrayList();
            ArrayList leavelist = new ArrayList();

            if( pm.Feats.GetFeatLevel(FeatList.BackToBack) > 0 )
            {
                if( pm.Warmode && !pm.Mounted )
                {
                    foreach( Mobile m in pm.GetMobilesInRange( 2 ) )
                        list.Add( m );

                    for( int i = 0; i < list.Count; ++i )
                    {
                        PlayerMobile m = (Mobile)list[i] as PlayerMobile;
                        Mobile x = m as Mobile;
                        Mobile y = pm as Mobile;

                        if( m is PlayerMobile && m != pm && m.Warmode && !m.Mounted )
                        {
                            if( m == null || m.Deleted || m.Map != pm.Map || !m.Alive || !pm.CanSee( m ) || m.Feats.GetFeatLevel(FeatList.BackToBack) < 1 || !pm.AllyList.Contains( x ) || !m.AllyList.Contains( y ) )
                                continue;

                            if( pm.InLOS( m ) )
                                allies.Add( m );
                        }
                    }

                    if( allies.Count > 0 )
                    {
                        for( int i = 0; i < allies.Count; ++i )
                        {
                            PlayerMobile m = (Mobile)allies[i] as PlayerMobile;

                            if( !m.BackToBack )
                            {
                                BackToBackBonus( m, true );
                            }

                            if( !pm.BackToBack )
                            {
                                BackToBackBonus( pm, true );
                            }
                        }
                    }

                    else
                    {
                        if( pm.BackToBack )
                        {
                            BackToBackBonus( pm, false );
                        }

                        if( !movingaway )
                        {
                            foreach( Mobile mob in pm.GetMobilesInRange( 3 ) )
                                leavelist.Add( mob );

                            for( int i = 0; i < leavelist.Count; ++i )
                            {
                                PlayerMobile m = (Mobile)leavelist[i] as PlayerMobile;

                                if( m != pm && m is PlayerMobile )
                                {
                                    FightingBackToBack( m, true );
                                }
                            }
                        }
                    }
                }

                else
                {
                    if( pm.BackToBack )
                    {
                        BackToBackBonus( pm, false );
                    }
                }
            }
        }