Merges bug fixes and cleanup with master (#17)

This commit is contained in:
Kamron Batman 2019-03-03 15:50:57 -08:00 • committed by GitHub
parent 39dfe86e10
commit 55136d8842
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
33 changed files with 157 additions and 234 deletions

View file

@ -142,7 +142,7 @@ namespace Server.Engines.BulkOrders
}
}
public void InvalidateContainers( object parent )
public void InvalidateContainers(IEntity parent)
{
if ( parent is Container c )
{

View file

@ -44,7 +44,7 @@ namespace Server.Engines.ConPVP
public Mobile Thrower{ get; private set; }
private Mobile FindOwner(object parent)
private Mobile FindOwner(IEntity parent)
{
if (parent is Item item)
return item.RootParent as Mobile;

View file

@ -455,7 +455,7 @@ namespace Server.Engines.ConPVP
MoveToWorld(m_TeamInfo.Origin, m_TeamInfo.Game.Facet);
}
private Mobile FindOwner(object parent)
private Mobile FindOwner(IEntity parent)
{
if (parent is Item item)
return item.RootParent as Mobile;
@ -1199,4 +1199,4 @@ namespace Server.Engines.ConPVP
m_FinishTimer = null;
}
}
}
}

View file

@ -181,7 +181,7 @@ namespace Server.Factions
return false;
}
private Mobile FindOwner(object parent)
private Mobile FindOwner(IEntity parent)
{
if (parent is Item item)
return item.RootParent as Mobile;
@ -453,4 +453,4 @@ namespace Server.Factions
base.Delete();
}
}
}
}

View file

@ -19,33 +19,31 @@ namespace Server.Engines.Quests.Necro
if (m.AccessLevel > AccessLevel.Player)
return true;
bool sendMessage = m.Player;
Mobile mob = m;
if (m is BaseCreature)
m = ((BaseCreature)m).ControlMaster;
if (m is BaseCreature creature)
mob = creature.ControlMaster;
if (m is PlayerMobile pm)
if (!(mob is PlayerMobile pm))
return false;
QuestSystem qs = pm.Quest;
if (qs is DarkTidesQuest)
{
QuestSystem qs = pm.Quest;
QuestObjective obj = qs.FindObjective<SpeakCavePasswordObjective>();
if (qs is DarkTidesQuest)
if (obj?.Completed == true)
{
QuestObjective obj = qs.FindObjective<SpeakCavePasswordObjective>();
m.SendLocalizedMessage(
1060648); // With Horus' permission, you are able to pass through the barrier.
if (obj != null && obj.Completed)
{
if (sendMessage)
m.SendLocalizedMessage(
1060648); // With Horus' permission, you are able to pass through the barrier.
return true;
}
return true;
}
}
if (sendMessage)
m.SendLocalizedMessage(1060649, "",
0x66D); // Without the permission of the guardian Horus, the magic of the barrier prevents your passage.
m.SendLocalizedMessage(1060649, "",
0x66D); // Without the permission of the guardian Horus, the magic of the barrier prevents your passage.
return false;
}
@ -64,4 +62,4 @@ namespace Server.Engines.Quests.Necro
int version = reader.ReadInt();
}
}
}
}

View file

@ -22,10 +22,7 @@ namespace Server.RemoteAdmin
public static void Configure()
{
PacketHandlers.Register(0xF1, 0, false, OnReceive);
#if !MONO
Core.MultiConsoleOut.Add(new EventTextWriter(OnConsoleChar, OnConsoleLine, OnConsoleString));
#endif
Timer.DelayCall(TimeSpan.FromMinutes(2.5), TimeSpan.FromMinutes(2.5), CleanUp);
}
@ -279,4 +276,4 @@ namespace Server.RemoteAdmin
m_OnLine?.Invoke(line);
}
}
}
}

View file

@ -234,9 +234,7 @@ namespace Server.Gumps
public object FindHouseName(BaseHouse house)
{
int multiID = house.ItemID;
HousePlacementEntry[] entries;
entries = HousePlacementEntry.ClassicHouses;
HousePlacementEntry[] entries = HousePlacementEntry.ClassicHouses;
for (int i = 0; i < entries.Length; ++i)
if (entries[i].MultiID == multiID)
@ -288,4 +286,4 @@ namespace Server.Gumps
}
}
}
}
}

View file

@ -114,7 +114,7 @@ namespace Server.Items
if (board.IsChildOf(from.Backpack))
return true;
object root = board.RootParent;
IEntity root = board.RootParent;
if (root is Mobile && root != from)
return false;
@ -122,9 +122,7 @@ namespace Server.Items
if (board.Deleted || board.Map != from.Map || !from.InRange(board.GetWorldLocation(), 1))
return false;
BaseHouse house = BaseHouse.FindHouseAt(board);
return house != null && house.IsOwner(from);
return BaseHouse.FindHouseAt(board)?.IsOwner(from) == true;
}
public class DefaultEntry : ContextMenuEntry
@ -146,4 +144,4 @@ namespace Server.Items
}
}
}
}
}

View file

@ -174,12 +174,7 @@ namespace Server.Items
if (!Movable || Protected || !from.InRange(GetWorldLocation(), 2))
return false;
object root = RootParent;
if (root is Mobile && root != from)
return false;
return true;
return !(RootParent is Mobile && RootParent != from);
}
public void ConvertToWorld(int x, int y, out int worldX, out int worldY)
@ -381,4 +376,4 @@ namespace Server.Items
}
}
}
}
}

View file

@ -83,11 +83,7 @@ namespace Server.Items
list.Add(1060738, worth); // value: ~1_val~
}
#if NEWPARENT
public override void OnAdded(IEntity parent)
#else
public override void OnAdded(object parent)
#endif
{
base.OnAdded(parent);
@ -98,7 +94,8 @@ namespace Server.Items
Container root = parent as Container;
while (root?.Parent is Container) root = (Container)root.Parent;
while (root?.Parent is Container container)
root = container;
parent = root ?? parent;
@ -247,4 +244,4 @@ namespace Server.Items
}
}
}
}
}

View file

@ -44,11 +44,7 @@ namespace Server.Items
UpdateTotal(this, TotalType.Gold, newValue - oldValue);
}
#if NEWPARENT
public override void OnAdded(IEntity parent)
#else
public override void OnAdded(object parent)
#endif
{
base.OnAdded(parent);
@ -59,7 +55,8 @@ namespace Server.Items
Container root = parent as Container;
while (root?.Parent is Container) root = (Container)root.Parent;
while (root?.Parent is Container container)
root = container;
parent = root ?? parent;
@ -127,4 +124,4 @@ namespace Server.Items
int version = reader.ReadInt();
}
}
}
}

View file

@ -53,7 +53,7 @@ namespace Server.Items
}
else if (targeted is Item item)
{
object root = item.RootParent;
IEntity root = item.RootParent;
if (root != null && root != from || item.Parent == from)
{
@ -61,10 +61,7 @@ namespace Server.Items
}
else if (item.Movable)
{
if (item.Amount > 1)
message = "You place one item on the scale. ";
else
message = "You place that item on the scale. ";
message = item.Amount > 1 ? "You place one item on the scale. " : "You place that item on the scale. ";
double weight = item.Weight;

View file

@ -96,11 +96,13 @@ namespace Server.Items
if (m_Kit.Deleted)
return;
if (!(targeted is Corpse) && !(targeted is BigFish))
Corpse corpse = targeted as Corpse;
if (!(corpse != null || targeted is BigFish))
{
from.SendLocalizedMessage(1042600); // That is not a corpse!
}
else if (targeted is Corpse corpse && corpse.VisitedByTaxidermist)
else if (corpse?.VisitedByTaxidermist == true)
{
from.SendLocalizedMessage(1042596); // That corpse seems to have been visited by a taxidermist already.
}
@ -114,48 +116,46 @@ namespace Server.Items
}
else
{
object obj = targeted;
object obj = corpse?.Owner ?? targeted;
if (obj is Corpse)
obj = ((Corpse)obj).Owner;
foreach (TrophyInfo t in m_Table)
{
if (t.CreatureType != obj.GetType())
continue;
if (obj != null)
for (int i = 0; i < m_Table.Length; i++)
if (m_Table[i].CreatureType == obj.GetType())
Container pack = from.Backpack;
if (pack?.ConsumeTotal(typeof(Board), 10) == true)
{
from.SendLocalizedMessage(
1042278); // You review the corpse and find it worthy of a trophy.
from.SendLocalizedMessage(1042602); // You use your kit up making the trophy.
Mobile hunter = null;
int weight = 0;
if (targeted is BigFish fish)
{
Container pack = from.Backpack;
hunter = fish.Fisher;
weight = (int)fish.Weight;
if (pack != null && pack.ConsumeTotal(typeof(Board), 10))
{
from.SendLocalizedMessage(
1042278); // You review the corpse and find it worthy of a trophy.
from.SendLocalizedMessage(1042602); // You use your kit up making the trophy.
Mobile hunter = null;
int weight = 0;
if (targeted is BigFish fish)
{
hunter = fish.Fisher;
weight = (int)fish.Weight;
fish.Consume();
}
from.AddToBackpack(new TrophyDeed(m_Table[i], hunter, weight));
if (targeted is Corpse corpse1)
corpse1.VisitedByTaxidermist = true;
m_Kit.Delete();
return;
}
from.SendLocalizedMessage(1042598); // You do not have enough boards.
return;
fish.Consume();
}
from.AddToBackpack(new TrophyDeed(t, hunter, weight));
if (corpse != null)
corpse.VisitedByTaxidermist = true;
m_Kit.Delete();
return;
}
from.SendLocalizedMessage(1042598); // You do not have enough boards.
return;
}
from.SendLocalizedMessage(1042599); // That does not look like something you want hanging on a wall.
}
}
@ -539,4 +539,4 @@ namespace Server.Items
}
}
}
}
}

View file

@ -45,17 +45,13 @@ namespace Server.Items
int version = reader.ReadInt();
}
public virtual object FindParent(Mobile from)
public virtual IEntity FindParent(Mobile from)
{
Mobile m = HeldBy;
if (HeldBy?.Holding == this)
return HeldBy;
if (m != null && m.Holding == this)
return m;
object obj = RootParent;
if (obj != null)
return obj;
if (RootParent != null)
return RootParent;
if (Map == Map.Internal)
return from;
@ -74,7 +70,7 @@ namespace Server.Items
ThrowTarget targ = from.Target as ThrowTarget;
Stackable = false; // Scavenged explosion potions won't stack with those ones in backpack, and still will explode.
if (targ != null && targ.Potion == this)
if (targ?.Potion == this)
return;
from.RevealingAction();
@ -107,7 +103,7 @@ namespace Server.Items
if (Deleted)
return;
object parent = FindParent(from);
IEntity parent = FindParent(from);
if (timer == 0)
{
@ -272,4 +268,4 @@ namespace Server.Items
}
}
}
}
}

View file

@ -47,15 +47,12 @@ namespace Server.Items
public bool Validate()
{
object root = RootParent;
if (!(RootParent is Mobile mobile) || mobile.AccessLevel >= AccessLevel)
return true;
if (root is Mobile mobile && mobile.AccessLevel < AccessLevel)
{
Delete();
return false;
}
Delete();
return false;
return true;
}
public override void OnSingleClick(Mobile from)
@ -83,4 +80,4 @@ namespace Server.Items
return from.AccessLevel >= AccessLevel;
}
}
}
}

View file

@ -66,9 +66,7 @@ namespace Server.Misc
}
else if (item.Layer == Layer.Hair || item.Layer == Layer.FacialHair)
{
object rootParent = item.RootParent;
if (rootParent is Mobile rootMobile)
if (item.RootParent is Mobile rootMobile)
{
if (item.Parent != rootMobile && rootMobile.AccessLevel == AccessLevel.Player)
{
@ -164,4 +162,4 @@ namespace Server.Misc
return false;
}
}
}
}

View file

@ -77,8 +77,8 @@ namespace Server.Mobiles
Mobile m = e.Mobile;
Mobile lastKiller = m.LastKiller;
if (lastKiller is BaseCreature)
lastKiller = ((BaseCreature)lastKiller).GetMaster();
if (lastKiller is BaseCreature creature)
lastKiller = creature.GetMaster();
if (IsInsideKhaldun(m) && IsInsideKhaldun(lastKiller) && lastKiller.Player && !m_Set.Contains(lastKiller))
foreach (AggressorInfo ai in m.Aggressors)

View file

@ -722,8 +722,8 @@ namespace Server.Multis
if (!item.Deleted)
{
if (item is StrongBox)
item = ((StrongBox)item).ConvertToStandardContainer();
if (item is StrongBox box)
item = box.ConvertToStandardContainer();
item.IsLockedDown = false;
item.IsSecure = false;

View file

@ -79,7 +79,7 @@ namespace Server.SkillHandlers
{
Item stolen = null;
object root = toSteal.RootParent;
IEntity root = toSteal.RootParent;
Mobile mobRoot = root as Mobile;
StealableArtifactsSpawner.StealableInstance si = null;
@ -215,7 +215,7 @@ namespace Server.SkillHandlers
{
m_Thief.SendLocalizedMessage(502710); // You can't steal that!
}
else if (toSteal.LootType == LootType.Newbied || toSteal.CheckBlessed(root))
else if (toSteal.LootType == LootType.Newbied || toSteal.CheckBlessed(mobRoot))
{
m_Thief.SendLocalizedMessage(502710); // You can't steal that!
}
@ -244,7 +244,7 @@ namespace Server.SkillHandlers
{
m_Thief.SendLocalizedMessage(502710); // You can't steal that!
}
else if (mobRoot != null && !m_Thief.CanBeHarmful((Mobile)root))
else if (mobRoot != null && !m_Thief.CanBeHarmful(mobRoot))
{
}
else if (root is Corpse)
@ -332,7 +332,7 @@ namespace Server.SkillHandlers
from.RevealingAction();
Item stolen = null;
object root = null;
IEntity root = null;
bool caught = false;
if (target is Item item)
@ -356,7 +356,7 @@ namespace Server.SkillHandlers
{
m_Thief.SendLocalizedMessage(502710); // You can't steal that!
}
Mobile mobRoot = root as Mobile;
if (stolen != null)
@ -395,7 +395,7 @@ namespace Server.SkillHandlers
if (mobRoot?.Player == true && m_Thief is PlayerMobile pm &&
IsInnocentTo(pm, mobRoot) && !IsInGuild(mobRoot))
{
pm.PermaFlags.Add((Mobile)root);
pm.PermaFlags.Add(mobRoot);
pm.Delta(MobileDelta.Noto);
}
}
@ -484,4 +484,4 @@ namespace Server.SkillHandlers
}
}
}
}
}

View file

@ -118,7 +118,7 @@ namespace Server.Spells
return true;
}
public virtual bool OnCasterUsingObject(object o)
public virtual bool OnCasterUsingObject(IEntity entity)
{
if (State == SpellState.Sequencing)
Disturb(DisturbType.UseRequest);

View file

@ -42,8 +42,6 @@ namespace Server.Spells.Third
{
SpellHelper.Turn(Caster, item);
object root = item.RootParent;
if (!item.IsAccessibleTo(Caster))
{
item.OnDoubleClickNotAccessible(Caster);
@ -51,7 +49,7 @@ namespace Server.Spells.Third
else if (!item.CheckItemUse(Caster, item))
{
}
else if (root is Mobile && root != Caster)
else if (item.RootParent is Mobile && item.RootParent != Caster)
{
item.OnSnoop(Caster);
}
@ -104,4 +102,4 @@ namespace Server
{
void OnTelekinesis(Mobile from);
}
}
}