servuo/Scripts/Services/InstancedPeerless/InstanceEnterGate.cs
TrueUO f608d123a4
Bug Fixes (#4762)
-Fixed issue where client helpers could bypass the container gump and add items directly to the seed box
-SearedFireAntGoo is no longer stackable
-Blue NPC's (mainly vendors, not initial innocent) can no longer be attacked on trammel maps
-Aggressors/Aggressed from pet masters now works properly. This was suspected to crated large numbers to redundant aggressor/aggressed added to a mobiles aggressor/aggressed lists
-Aggressive action for healing a mobile while fighting another mobile has been re-enabled
-AuraDamage is now a harmful act, ie those affected will aggro on your pet!
-MLDryads should no longer attack other wild creatures during Blackthorn Invasion Instance
-More code cleanup
2020-04-21 17:25:24 -07:00

65 lines
1.7 KiB
C#

using Server.Gumps;
using System;
using System.Collections.Generic;
namespace Server.Engines.InstancedPeerless
{
public class InstanceEnterGate : Item
{
private readonly PeerlessInstance m_Instance;
private readonly List<Mobile> m_AllowedPlayers;
public override int LabelNumber => 1113494; // (Entrance)
public override bool ForceShowProperties => true;
public InstanceEnterGate(PeerlessInstance instance, List<Mobile> allowedPlayers)
: base(0xF6C)
{
m_Instance = instance;
m_AllowedPlayers = allowedPlayers;
Movable = false;
Hue = 0x484;
Light = LightType.Circle300;
Timer.DelayCall(TimeSpan.FromMinutes(1.0), Delete);
}
public override bool OnMoveOver(Mobile m)
{
if (!m_AllowedPlayers.Contains(m))
{
m.SendLocalizedMessage(1113573); // This instance has been reserved for another party.
}
else
{
if (!m.HasGump(typeof(ConfirmJoinInstanceGump)))
m.SendGump(new ConfirmJoinInstanceGump(m_Instance));
}
return base.OnMoveOver(m);
}
public InstanceEnterGate(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write(0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
/*int version = */
reader.ReadInt();
Delete();
}
}
}