ModernUO/Scripts/Mobiles/Monsters/Ants/SolenHelper.cs
2018-09-14 08:41:38 -07:00

83 lines
2.5 KiB
C#

using Server.Items;
using Server.Network;
namespace Server.Mobiles
{
public class SolenHelper
{
public static void PackPicnicBasket( BaseCreature solen )
{
if ( 1 > Utility.Random( 100 ) )
{
PicnicBasket basket = new PicnicBasket();
basket.DropItem( new BeverageBottle( BeverageType.Wine ) );
basket.DropItem( new CheeseWedge() );
solen.PackItem( basket );
}
}
public static bool CheckRedFriendship( Mobile m )
{
if ( m is BaseCreature bc )
{
if ( bc.Controlled && bc.ControlMaster is PlayerMobile )
return CheckRedFriendship( bc.ControlMaster );
if ( bc.Summoned && bc.SummonMaster is PlayerMobile )
return CheckRedFriendship( bc.SummonMaster );
}
return m is PlayerMobile player && player.SolenFriendship == SolenFriendship.Red;
}
public static bool CheckBlackFriendship( Mobile m )
{
if ( m is BaseCreature bc )
{
if ( bc.Controlled && bc.ControlMaster is PlayerMobile )
return CheckBlackFriendship( bc.ControlMaster );
if ( bc.Summoned && bc.SummonMaster is PlayerMobile )
return CheckBlackFriendship( bc.SummonMaster );
}
return m is PlayerMobile player && player.SolenFriendship == SolenFriendship.Black;
}
public static void OnRedDamage( Mobile from )
{
if ( from is BaseCreature bc )
{
if ( bc.Controlled && bc.ControlMaster is PlayerMobile )
OnRedDamage( bc.ControlMaster );
else if ( bc.Summoned && bc.SummonMaster is PlayerMobile )
OnRedDamage( bc.SummonMaster );
}
if ( from is PlayerMobile player && player.SolenFriendship == SolenFriendship.Red )
{
player.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1054103 ); // The solen revoke their friendship. You will now be considered an intruder.
player.SolenFriendship = SolenFriendship.None;
}
}
public static void OnBlackDamage( Mobile from )
{
if ( from is BaseCreature bc )
{
if ( bc.Controlled && bc.ControlMaster is PlayerMobile )
OnBlackDamage( bc.ControlMaster );
else if ( bc.Summoned && bc.SummonMaster is PlayerMobile )
OnBlackDamage( bc.SummonMaster );
}
if ( from is PlayerMobile player && player.SolenFriendship == SolenFriendship.Black )
{
player.LocalOverheadMessage( MessageType.Regular, 0x3B2, 1054103 ); // The solen revoke their friendship. You will now be considered an intruder.
player.SolenFriendship = SolenFriendship.None;
}
}
}
}