fix: Adds FindItemOnLayer generic (#1223)

This commit is contained in:
Kamron Batman 2022-11-01 00:49:20 -07:00 • committed by GitHub
parent 053dbcbad0
commit fd6f4239e2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 112 additions and 169 deletions

View file

@ -717,10 +717,7 @@ namespace Server.Engines.ConPVP
{
mob.Resurrect();
if (mob.FindItemOnLayer(Layer.OuterTorso) is DeathRobe robe)
{
robe.Delete();
}
mob.FindItemOnLayer<DeathRobe>(Layer.OuterTorso)?.Delete();
if (cont is Corpse corpse)
{

View file

@ -1016,20 +1016,22 @@ namespace Server.Engines.Craft
return;
}
int checkResHue = 0, checkMaxAmount = 0;
var checkResHue = 0;
var checkMaxAmount = 0;
TextDefinition checkMessage = null;
var consumeRes = ConsumeRes(
from,
typeRes,
craftSystem,
ref checkResHue,
ref checkMaxAmount,
ConsumeType.None,
ref checkMessage
);
// Not enough resource to craft it
if (!(ConsumeRes(
from,
typeRes,
craftSystem,
ref checkResHue,
ref checkMaxAmount,
ConsumeType.None,
ref checkMessage
)
&& ConsumeAttributes(from, ref checkMessage, false)))
if (!(consumeRes && ConsumeAttributes(from, ref checkMessage, false)))
{
if (tool?.Deleted == false && tool.UsesRemaining > 0)
{
@ -1058,9 +1060,18 @@ namespace Server.Engines.Craft
if (CheckSkills(from, typeRes, craftSystem, ref ignored, out var allRequiredSkills))
{
consumeRes = ConsumeRes(
from,
typeRes,
craftSystem,
ref resHue,
ref maxAmount,
ConsumeType.All,
ref message
);
// Not enough resource to craft it
if (!(ConsumeRes(from, typeRes, craftSystem, ref resHue, ref maxAmount, ConsumeType.All, ref message)
&& ConsumeAttributes(from, ref message, true)))
if (!(consumeRes && ConsumeAttributes(from, ref message, true)))
{
if (tool?.Deleted == false && tool.UsesRemaining > 0)
{
@ -1083,13 +1094,16 @@ namespace Server.Engines.Craft
tool.UsesRemaining--;
if (craftSystem is DefBlacksmithy &&
from.FindItemOnLayer(Layer.OneHanded) is AncientSmithyHammer hammer && hammer != tool)
if (craftSystem is DefBlacksmithy)
{
hammer.UsesRemaining--;
if (hammer.UsesRemaining < 1)
var hammer = from.FindItemOnLayer<AncientSmithyHammer>(Layer.OneHanded);
if (hammer != tool)
{
hammer.Delete();
hammer.UsesRemaining--;
if (hammer.UsesRemaining < 1)
{
hammer.Delete();
}
}
}

View file

@ -84,9 +84,10 @@ namespace Server.Engines.Craft
return EnhanceResult.BadResource;
}
int resHue = 0, maxAmount = 0;
int resHue = 0;
int maxAmount = 0;
if (!craftItem.ConsumeRes(
var consumeRes = craftItem.ConsumeRes(
from,
resType,
craftSystem,
@ -94,20 +95,19 @@ namespace Server.Engines.Craft
ref maxAmount,
ConsumeType.None,
ref resMessage
))
);
if (!consumeRes)
{
return EnhanceResult.NoResources;
}
if (craftSystem is DefBlacksmithy)
{
if (from.FindItemOnLayer(Layer.OneHanded) is AncientSmithyHammer hammer)
var hammer = from.FindItemOnLayer<AncientSmithyHammer>(Layer.OneHanded);
if (hammer != null && --hammer.UsesRemaining < 1)
{
hammer.UsesRemaining--;
if (hammer.UsesRemaining < 1)
{
hammer.Delete();
}
hammer.Delete();
}
}

View file

@ -62,8 +62,7 @@ namespace Server.Engines.Quests.Hag
{
PlaySound(Utility.RandomBool() ? 0x42E : 0x43F);
var hat = player.FindItemOnLayer(Layer.Helm);
var tricorne = hat is TricorneHat;
var tricorne = player.FindItemOnLayer<TricorneHat>(Layer.Helm) != null;
if (tricorne && player.BAC >= 20)
{