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