109 lines
3.4 KiB
C#
109 lines
3.4 KiB
C#
using System;
|
|
using Server.Items;
|
|
using Server.Network;
|
|
|
|
namespace Server.Mobiles
|
|
{
|
|
interface IBlackSolen
|
|
{
|
|
}
|
|
|
|
interface IRedSolen
|
|
{
|
|
}
|
|
|
|
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)
|
|
{
|
|
BaseCreature bc = (BaseCreature)m;
|
|
|
|
if (bc.Controlled && bc.ControlMaster is PlayerMobile)
|
|
return CheckRedFriendship(bc.ControlMaster);
|
|
else if (bc.Summoned && bc.SummonMaster is PlayerMobile)
|
|
return CheckRedFriendship(bc.SummonMaster);
|
|
}
|
|
|
|
PlayerMobile player = m as PlayerMobile;
|
|
|
|
return player != null && player.SolenFriendship == SolenFriendship.Red;
|
|
}
|
|
|
|
public static bool CheckBlackFriendship(Mobile m)
|
|
{
|
|
if (m is BaseCreature)
|
|
{
|
|
BaseCreature bc = (BaseCreature)m;
|
|
|
|
if (bc.Controlled && bc.ControlMaster is PlayerMobile)
|
|
return CheckBlackFriendship(bc.ControlMaster);
|
|
else if (bc.Summoned && bc.SummonMaster is PlayerMobile)
|
|
return CheckBlackFriendship(bc.SummonMaster);
|
|
}
|
|
|
|
PlayerMobile player = m as PlayerMobile;
|
|
|
|
return player != null && player.SolenFriendship == SolenFriendship.Black;
|
|
}
|
|
|
|
public static void OnRedDamage(Mobile from)
|
|
{
|
|
if (from is BaseCreature)
|
|
{
|
|
BaseCreature bc = (BaseCreature)from;
|
|
|
|
if (bc.Controlled && bc.ControlMaster is PlayerMobile)
|
|
OnRedDamage(bc.ControlMaster);
|
|
else if (bc.Summoned && bc.SummonMaster is PlayerMobile)
|
|
OnRedDamage(bc.SummonMaster);
|
|
}
|
|
|
|
PlayerMobile player = from as PlayerMobile;
|
|
|
|
if (player != null && 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)
|
|
{
|
|
BaseCreature bc = (BaseCreature)from;
|
|
|
|
if (bc.Controlled && bc.ControlMaster is PlayerMobile)
|
|
OnBlackDamage(bc.ControlMaster);
|
|
else if (bc.Summoned && bc.SummonMaster is PlayerMobile)
|
|
OnBlackDamage(bc.SummonMaster);
|
|
}
|
|
|
|
PlayerMobile player = from as PlayerMobile;
|
|
|
|
if (player != null && 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;
|
|
}
|
|
}
|
|
}
|
|
}
|