ModernUO/Projects/Scripts/Mobiles/Monsters/Ants/SolenHelper.cs
2019-08-02 18:16:11 -07:00

85 lines
No EOL
2.6 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;
}
}
}
}