fix: Various code cleanup (#756)
This commit is contained in:
parent
f4378acd05
commit
dbd4d6f13f
40 changed files with 117 additions and 280 deletions
|
|
@ -1,4 +1,3 @@
|
||||||
using BenchmarkDotNet.Configs;
|
|
||||||
using BenchmarkDotNet.Running;
|
using BenchmarkDotNet.Running;
|
||||||
|
|
||||||
namespace Benchmarks
|
namespace Benchmarks
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,6 @@
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
|
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
|
||||||
*************************************************************************/
|
*************************************************************************/
|
||||||
|
|
||||||
using System.Collections.Immutable;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Microsoft.CodeAnalysis;
|
using Microsoft.CodeAnalysis;
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,6 @@
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Immutable;
|
using System.Collections.Immutable;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Microsoft.CodeAnalysis;
|
using Microsoft.CodeAnalysis;
|
||||||
using SerializableMigration;
|
using SerializableMigration;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Server.Gumps;
|
using Server.Gumps;
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Text;
|
using Server.Buffers;
|
||||||
using Server.Network;
|
using Server.Network;
|
||||||
|
|
||||||
namespace Server.Ethics.Evil
|
namespace Server.Ethics.Evil
|
||||||
|
|
@ -46,7 +46,7 @@ namespace Server.Ethics.Evil
|
||||||
++enemyCount;
|
++enemyCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
var sb = new StringBuilder();
|
using var sb = new ValueStringBuilder();
|
||||||
|
|
||||||
sb.Append("You sense ");
|
sb.Append("You sense ");
|
||||||
sb.Append(enemyCount == 0 ? "no" : enemyCount.ToString());
|
sb.Append(enemyCount == 0 ? "no" : enemyCount.ToString());
|
||||||
|
|
@ -54,7 +54,7 @@ namespace Server.Ethics.Evil
|
||||||
|
|
||||||
if (primary != null)
|
if (primary != null)
|
||||||
{
|
{
|
||||||
sb.Append(", and a strong presense");
|
sb.Append(", and a strong presence");
|
||||||
|
|
||||||
switch (from.Mobile.GetDirectionTo(primary.Mobile))
|
switch (from.Mobile.GetDirectionTo(primary.Mobile))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Text;
|
using Server.Buffers;
|
||||||
using Server.Network;
|
using Server.Network;
|
||||||
|
|
||||||
namespace Server.Ethics.Hero
|
namespace Server.Ethics.Hero
|
||||||
|
|
@ -46,7 +46,7 @@ namespace Server.Ethics.Hero
|
||||||
++enemyCount;
|
++enemyCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
var sb = new StringBuilder();
|
using var sb = new ValueStringBuilder();
|
||||||
|
|
||||||
sb.Append("You sense ");
|
sb.Append("You sense ");
|
||||||
sb.Append(enemyCount == 0 ? "no" : enemyCount.ToString());
|
sb.Append(enemyCount == 0 ? "no" : enemyCount.ToString());
|
||||||
|
|
@ -54,7 +54,7 @@ namespace Server.Ethics.Hero
|
||||||
|
|
||||||
if (primary != null)
|
if (primary != null)
|
||||||
{
|
{
|
||||||
sb.Append(", and a strong presense");
|
sb.Append(", and a strong presence");
|
||||||
|
|
||||||
switch (from.Mobile.GetDirectionTo(primary.Mobile))
|
switch (from.Mobile.GetDirectionTo(primary.Mobile))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
|
||||||
using Server.Network;
|
using Server.Network;
|
||||||
|
|
||||||
namespace Server.Items
|
namespace Server.Items
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
using System;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Objectives;
|
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ using System;
|
||||||
using Server.Engines.MLQuests.Items;
|
using Server.Engines.MLQuests.Items;
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using Server.Engines.MLQuests.Objectives;
|
using Server.Engines.MLQuests.Objectives;
|
||||||
using Server.Engines.MLQuests.Rewards;
|
using Server.Engines.MLQuests.Rewards;
|
||||||
using Server.Engines.Spawners;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
using System.Linq;
|
|
||||||
using Server.Gumps;
|
using Server.Gumps;
|
||||||
using Server.Multis;
|
using Server.Multis;
|
||||||
using Server.Network;
|
using Server.Network;
|
||||||
|
|
|
||||||
|
|
@ -339,42 +339,21 @@ namespace Server.Items
|
||||||
ar += 10 + 5 * (int)_protection;
|
ar += 10 + 5 * (int)_protection;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (_resource)
|
ar += _resource switch
|
||||||
{
|
{
|
||||||
case CraftResource.DullCopper:
|
CraftResource.DullCopper => 2,
|
||||||
ar += 2;
|
CraftResource.ShadowIron => 4,
|
||||||
break;
|
CraftResource.Copper => 6,
|
||||||
case CraftResource.ShadowIron:
|
CraftResource.Bronze => 8,
|
||||||
ar += 4;
|
CraftResource.Gold => 10,
|
||||||
break;
|
CraftResource.Agapite => 12,
|
||||||
case CraftResource.Copper:
|
CraftResource.Verite => 14,
|
||||||
ar += 6;
|
CraftResource.Valorite => 16,
|
||||||
break;
|
CraftResource.SpinedLeather => 10,
|
||||||
case CraftResource.Bronze:
|
CraftResource.HornedLeather => 13,
|
||||||
ar += 8;
|
CraftResource.BarbedLeather => 16,
|
||||||
break;
|
_ => 0
|
||||||
case CraftResource.Gold:
|
};
|
||||||
ar += 10;
|
|
||||||
break;
|
|
||||||
case CraftResource.Agapite:
|
|
||||||
ar += 12;
|
|
||||||
break;
|
|
||||||
case CraftResource.Verite:
|
|
||||||
ar += 14;
|
|
||||||
break;
|
|
||||||
case CraftResource.Valorite:
|
|
||||||
ar += 16;
|
|
||||||
break;
|
|
||||||
case CraftResource.SpinedLeather:
|
|
||||||
ar += 10;
|
|
||||||
break;
|
|
||||||
case CraftResource.HornedLeather:
|
|
||||||
ar += 13;
|
|
||||||
break;
|
|
||||||
case CraftResource.BarbedLeather:
|
|
||||||
ar += 16;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
ar += -8 + 8 * (int)_quality;
|
ar += -8 + 8 * (int)_quality;
|
||||||
return ScaleArmorByDurability(ar);
|
return ScaleArmorByDurability(ar);
|
||||||
|
|
@ -557,27 +536,22 @@ namespace Server.Items
|
||||||
BaseEnergyResistance + GetProtOffset() + GetResourceAttrs().ArmorEnergyResist + _energyBonus;
|
BaseEnergyResistance + GetProtOffset() + GetResourceAttrs().ArmorEnergyResist + _energyBonus;
|
||||||
|
|
||||||
[CommandProperty(AccessLevel.GameMaster)]
|
[CommandProperty(AccessLevel.GameMaster)]
|
||||||
public ArmorBodyType BodyPosition
|
public ArmorBodyType BodyPosition =>
|
||||||
{
|
Layer switch
|
||||||
get
|
|
||||||
{
|
{
|
||||||
return Layer switch
|
Layer.Neck => ArmorBodyType.Gorget,
|
||||||
{
|
Layer.TwoHanded => ArmorBodyType.Shield,
|
||||||
Layer.Neck => ArmorBodyType.Gorget,
|
Layer.Gloves => ArmorBodyType.Gloves,
|
||||||
Layer.TwoHanded => ArmorBodyType.Shield,
|
Layer.Helm => ArmorBodyType.Helmet,
|
||||||
Layer.Gloves => ArmorBodyType.Gloves,
|
Layer.Arms => ArmorBodyType.Arms,
|
||||||
Layer.Helm => ArmorBodyType.Helmet,
|
Layer.InnerLegs => ArmorBodyType.Legs,
|
||||||
Layer.Arms => ArmorBodyType.Arms,
|
Layer.OuterLegs => ArmorBodyType.Legs,
|
||||||
Layer.InnerLegs => ArmorBodyType.Legs,
|
Layer.Pants => ArmorBodyType.Legs,
|
||||||
Layer.OuterLegs => ArmorBodyType.Legs,
|
Layer.InnerTorso => ArmorBodyType.Chest,
|
||||||
Layer.Pants => ArmorBodyType.Legs,
|
Layer.OuterTorso => ArmorBodyType.Chest,
|
||||||
Layer.InnerTorso => ArmorBodyType.Chest,
|
Layer.Shirt => ArmorBodyType.Chest,
|
||||||
Layer.OuterTorso => ArmorBodyType.Chest,
|
_ => ArmorBodyType.Gorget
|
||||||
Layer.Shirt => ArmorBodyType.Chest,
|
};
|
||||||
_ => ArmorBodyType.Gorget
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static double[] ArmorScalars { get; set; } = { 0.07, 0.07, 0.14, 0.15, 0.22, 0.35 };
|
public static double[] ArmorScalars { get; set; } = { 0.07, 0.07, 0.14, 0.15, 0.22, 0.35 };
|
||||||
|
|
||||||
|
|
@ -865,20 +839,12 @@ namespace Server.Items
|
||||||
|
|
||||||
public int ComputeStatReq(StatType type)
|
public int ComputeStatReq(StatType type)
|
||||||
{
|
{
|
||||||
int v;
|
int v = type switch
|
||||||
|
|
||||||
if (type == StatType.Str)
|
|
||||||
{
|
{
|
||||||
v = StrRequirement;
|
StatType.Str => StrRequirement,
|
||||||
}
|
StatType.Dex => DexRequirement,
|
||||||
else if (type == StatType.Dex)
|
_ => IntRequirement
|
||||||
{
|
};
|
||||||
v = DexRequirement;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
v = IntRequirement;
|
|
||||||
}
|
|
||||||
|
|
||||||
return AOS.Scale(v, 100 - GetLowerStatReq());
|
return AOS.Scale(v, 100 - GetLowerStatReq());
|
||||||
}
|
}
|
||||||
|
|
@ -920,17 +886,8 @@ namespace Server.Items
|
||||||
InvalidateProperties();
|
InvalidateProperties();
|
||||||
}
|
}
|
||||||
|
|
||||||
public CraftAttributeInfo GetResourceAttrs()
|
public CraftAttributeInfo GetResourceAttrs() =>
|
||||||
{
|
CraftResources.GetInfo(_resource)?.AttributeInfo ?? CraftAttributeInfo.Blank;
|
||||||
var info = CraftResources.GetInfo(_resource);
|
|
||||||
|
|
||||||
if (info == null)
|
|
||||||
{
|
|
||||||
return CraftAttributeInfo.Blank;
|
|
||||||
}
|
|
||||||
|
|
||||||
return info.AttributeInfo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int GetProtOffset()
|
public int GetProtOffset()
|
||||||
{
|
{
|
||||||
|
|
@ -946,31 +903,17 @@ namespace Server.Items
|
||||||
|
|
||||||
public int GetDurabilityBonus()
|
public int GetDurabilityBonus()
|
||||||
{
|
{
|
||||||
var bonus = 0;
|
var bonus = _quality == ArmorQuality.Exceptional ? 20 : 0;
|
||||||
|
|
||||||
if (_quality == ArmorQuality.Exceptional)
|
bonus += _durability switch
|
||||||
{
|
{
|
||||||
bonus += 20;
|
ArmorDurabilityLevel.Durable => 20,
|
||||||
}
|
ArmorDurabilityLevel.Substantial => 50,
|
||||||
|
ArmorDurabilityLevel.Massive => 70,
|
||||||
switch (_durability)
|
ArmorDurabilityLevel.Fortified => 100,
|
||||||
{
|
ArmorDurabilityLevel.Indestructible => 120,
|
||||||
case ArmorDurabilityLevel.Durable:
|
_ => 0
|
||||||
bonus += 20;
|
};
|
||||||
break;
|
|
||||||
case ArmorDurabilityLevel.Substantial:
|
|
||||||
bonus += 50;
|
|
||||||
break;
|
|
||||||
case ArmorDurabilityLevel.Massive:
|
|
||||||
bonus += 70;
|
|
||||||
break;
|
|
||||||
case ArmorDurabilityLevel.Fortified:
|
|
||||||
bonus += 100;
|
|
||||||
break;
|
|
||||||
case ArmorDurabilityLevel.Indestructible:
|
|
||||||
bonus += 120;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Core.AOS)
|
if (Core.AOS)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace Server.Items
|
namespace Server.Items
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
|
||||||
using Server.ContextMenus;
|
using Server.ContextMenus;
|
||||||
using Server.Engines.Harvest;
|
using Server.Engines.Harvest;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace Server.Items
|
namespace Server.Items
|
||||||
{
|
{
|
||||||
public class MorphItem : Item
|
public class MorphItem : Item
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
using System.Linq;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Spells.Sixth;
|
using Server.Spells.Sixth;
|
||||||
using Server.Targeting;
|
using Server.Targeting;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
|
||||||
using Server.Spells;
|
using Server.Spells;
|
||||||
|
|
||||||
namespace Server.Items
|
namespace Server.Items
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Server.Engines.ConPVP;
|
using Server.Engines.ConPVP;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
using Server.Network;
|
|
||||||
using Server.Spells;
|
using Server.Spells;
|
||||||
using Server.Spells.Bushido;
|
using Server.Spells.Bushido;
|
||||||
using Server.Spells.Necromancy;
|
using Server.Spells.Necromancy;
|
||||||
|
|
|
||||||
|
|
@ -799,31 +799,17 @@ namespace Server.Items
|
||||||
|
|
||||||
public int GetDurabilityBonus()
|
public int GetDurabilityBonus()
|
||||||
{
|
{
|
||||||
var bonus = 0;
|
var bonus = m_Quality == WeaponQuality.Exceptional ? 20 : 0;
|
||||||
|
|
||||||
if (m_Quality == WeaponQuality.Exceptional)
|
bonus += m_DurabilityLevel switch
|
||||||
{
|
{
|
||||||
bonus += 20;
|
WeaponDurabilityLevel.Durable => 20,
|
||||||
}
|
WeaponDurabilityLevel.Substantial => 50,
|
||||||
|
WeaponDurabilityLevel.Massive => 70,
|
||||||
switch (m_DurabilityLevel)
|
WeaponDurabilityLevel.Fortified => 100,
|
||||||
{
|
WeaponDurabilityLevel.Indestructible => 120,
|
||||||
case WeaponDurabilityLevel.Durable:
|
_ => 0
|
||||||
bonus += 20;
|
};
|
||||||
break;
|
|
||||||
case WeaponDurabilityLevel.Substantial:
|
|
||||||
bonus += 50;
|
|
||||||
break;
|
|
||||||
case WeaponDurabilityLevel.Massive:
|
|
||||||
bonus += 70;
|
|
||||||
break;
|
|
||||||
case WeaponDurabilityLevel.Fortified:
|
|
||||||
bonus += 100;
|
|
||||||
break;
|
|
||||||
case WeaponDurabilityLevel.Indestructible:
|
|
||||||
bonus += 120;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Core.AOS)
|
if (Core.AOS)
|
||||||
{
|
{
|
||||||
|
|
@ -1519,32 +1505,15 @@ namespace Server.Items
|
||||||
{
|
{
|
||||||
var positionChance = Utility.RandomDouble();
|
var positionChance = Utility.RandomDouble();
|
||||||
|
|
||||||
Item armorItem;
|
Item armorItem = positionChance switch
|
||||||
|
|
||||||
if (positionChance < 0.07)
|
|
||||||
{
|
{
|
||||||
armorItem = defender.NeckArmor;
|
< 0.07 => defender.NeckArmor,
|
||||||
}
|
< 0.14 => defender.HandArmor,
|
||||||
else if (positionChance < 0.14)
|
< 0.28 => defender.ArmsArmor,
|
||||||
{
|
< 0.43 => defender.HeadArmor,
|
||||||
armorItem = defender.HandArmor;
|
< 0.65 => defender.LegsArmor,
|
||||||
}
|
_ => defender.ChestArmor
|
||||||
else if (positionChance < 0.28)
|
};
|
||||||
{
|
|
||||||
armorItem = defender.ArmsArmor;
|
|
||||||
}
|
|
||||||
else if (positionChance < 0.43)
|
|
||||||
{
|
|
||||||
armorItem = defender.HeadArmor;
|
|
||||||
}
|
|
||||||
else if (positionChance < 0.65)
|
|
||||||
{
|
|
||||||
armorItem = defender.LegsArmor;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
armorItem = defender.ChestArmor;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (armorItem is IWearableDurability armor)
|
if (armorItem is IWearableDurability armor)
|
||||||
{
|
{
|
||||||
|
|
@ -1569,32 +1538,15 @@ namespace Server.Items
|
||||||
|
|
||||||
var chance = Utility.RandomDouble();
|
var chance = Utility.RandomDouble();
|
||||||
|
|
||||||
Item armorItem;
|
Item armorItem = chance switch
|
||||||
|
|
||||||
if (chance < 0.07)
|
|
||||||
{
|
{
|
||||||
armorItem = defender.NeckArmor;
|
< 0.07 => defender.NeckArmor,
|
||||||
}
|
< 0.14 => defender.HandArmor,
|
||||||
else if (chance < 0.14)
|
< 0.28 => defender.ArmsArmor,
|
||||||
{
|
< 0.43 => defender.HeadArmor,
|
||||||
armorItem = defender.HandArmor;
|
< 0.65 => defender.LegsArmor,
|
||||||
}
|
_ => defender.ChestArmor
|
||||||
else if (chance < 0.28)
|
};
|
||||||
{
|
|
||||||
armorItem = defender.ArmsArmor;
|
|
||||||
}
|
|
||||||
else if (chance < 0.43)
|
|
||||||
{
|
|
||||||
armorItem = defender.HeadArmor;
|
|
||||||
}
|
|
||||||
else if (chance < 0.65)
|
|
||||||
{
|
|
||||||
armorItem = defender.LegsArmor;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
armorItem = defender.ChestArmor;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (armorItem is IWearableDurability armor)
|
if (armorItem is IWearableDurability armor)
|
||||||
{
|
{
|
||||||
|
|
@ -1605,28 +1557,14 @@ namespace Server.Items
|
||||||
|
|
||||||
if (virtualArmor > 0)
|
if (virtualArmor > 0)
|
||||||
{
|
{
|
||||||
double scalar;
|
double scalar = chance switch
|
||||||
|
|
||||||
if (chance < 0.14)
|
|
||||||
{
|
{
|
||||||
scalar = 0.07;
|
< 0.14 => 0.07,
|
||||||
}
|
< 0.28 => 0.14,
|
||||||
else if (chance < 0.28)
|
< 0.43 => 0.15,
|
||||||
{
|
< 0.65 => 0.22,
|
||||||
scalar = 0.14;
|
_ => 0.35
|
||||||
}
|
};
|
||||||
else if (chance < 0.43)
|
|
||||||
{
|
|
||||||
scalar = 0.15;
|
|
||||||
}
|
|
||||||
else if (chance < 0.65)
|
|
||||||
{
|
|
||||||
scalar = 0.22;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
scalar = 0.35;
|
|
||||||
}
|
|
||||||
|
|
||||||
var from = (int)(virtualArmor * scalar) / 2;
|
var from = (int)(virtualArmor * scalar) / 2;
|
||||||
var to = (int)(virtualArmor * scalar);
|
var to = (int)(virtualArmor * scalar);
|
||||||
|
|
@ -1678,12 +1616,10 @@ namespace Server.Items
|
||||||
{
|
{
|
||||||
if (m?.Summoned == true && m.SummonMaster == defender)
|
if (m?.Summoned == true && m.SummonMaster == defender)
|
||||||
{
|
{
|
||||||
attacker.SendLocalizedMessage(
|
// Your attack has been diverted to a nearby mirror image of your target!
|
||||||
1063141
|
attacker.SendLocalizedMessage(1063141);
|
||||||
); // Your attack has been diverted to a nearby mirror image of your target!
|
// You manage to divert the attack onto one of your nearby mirror images.
|
||||||
defender.SendLocalizedMessage(
|
defender.SendLocalizedMessage(1063140);
|
||||||
1063140
|
|
||||||
); // You manage to divert the attack onto one of your nearby mirror images.
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO: What happens if the Clone parries a blow?
|
* TODO: What happens if the Clone parries a blow?
|
||||||
|
|
@ -1836,18 +1772,17 @@ namespace Server.Items
|
||||||
}
|
}
|
||||||
|
|
||||||
AddBlood(attacker, defender, damage);
|
AddBlood(attacker, defender, damage);
|
||||||
int phys, fire, cold, pois, nrgy, chaos, direct;
|
|
||||||
|
|
||||||
GetDamageTypes(
|
GetDamageTypes(
|
||||||
attacker,
|
attacker,
|
||||||
out phys,
|
out var phys,
|
||||||
out fire,
|
out var fire,
|
||||||
out cold,
|
out var cold,
|
||||||
out pois,
|
out var pois,
|
||||||
out nrgy,
|
out var nrgy,
|
||||||
out chaos,
|
out var chaos,
|
||||||
out direct
|
out var direct
|
||||||
);
|
);
|
||||||
|
|
||||||
if (Core.ML && this is BaseRanged && attacker.FindItemOnLayer(Layer.Cloak) is BaseQuiver quiver)
|
if (Core.ML && this is BaseRanged && attacker.FindItemOnLayer(Layer.Cloak) is BaseQuiver quiver)
|
||||||
{
|
{
|
||||||
|
|
@ -2447,28 +2382,15 @@ namespace Server.Items
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
var bonus = 0;
|
return m_AccuracyLevel switch
|
||||||
|
|
||||||
switch (m_AccuracyLevel)
|
|
||||||
{
|
{
|
||||||
case WeaponAccuracyLevel.Accurate:
|
WeaponAccuracyLevel.Accurate => 2,
|
||||||
bonus += 02;
|
WeaponAccuracyLevel.Surpassingly => 4,
|
||||||
break;
|
WeaponAccuracyLevel.Eminently => 6,
|
||||||
case WeaponAccuracyLevel.Surpassingly:
|
WeaponAccuracyLevel.Exceedingly => 8,
|
||||||
bonus += 04;
|
WeaponAccuracyLevel.Supremely => 10,
|
||||||
break;
|
_ => 0
|
||||||
case WeaponAccuracyLevel.Eminently:
|
};
|
||||||
bonus += 06;
|
|
||||||
break;
|
|
||||||
case WeaponAccuracyLevel.Exceedingly:
|
|
||||||
bonus += 08;
|
|
||||||
break;
|
|
||||||
case WeaponAccuracyLevel.Supremely:
|
|
||||||
bonus += 10;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return bonus;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual int GetDamageBonus()
|
public virtual int GetDamageBonus()
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
|
|
||||||
namespace Server.Mobiles
|
namespace Server.Mobiles
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
using System.Linq;
|
|
||||||
|
|
||||||
namespace Server.Mobiles
|
namespace Server.Mobiles
|
||||||
{
|
{
|
||||||
public class InterredGrizzle : BaseCreature
|
public class InterredGrizzle : BaseCreature
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using Server.Engines.CannedEvil;
|
using Server.Engines.CannedEvil;
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Network;
|
using Server.Network;
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ using Server.Misc;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
using Server.Network;
|
using Server.Network;
|
||||||
using Server.Regions;
|
using Server.Regions;
|
||||||
using Server.Text;
|
|
||||||
|
|
||||||
namespace Server.Mobiles
|
namespace Server.Mobiles
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
|
||||||
using Server.Gumps;
|
using Server.Gumps;
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Mobiles;
|
using Server.Mobiles;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
|
||||||
using Server.Multis;
|
using Server.Multis;
|
||||||
using Server.Network;
|
using Server.Network;
|
||||||
using Server.Targeting;
|
using Server.Targeting;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Targeting;
|
using Server.Targeting;
|
||||||
|
|
||||||
|
|
@ -43,7 +42,18 @@ namespace Server.SkillHandlers
|
||||||
|
|
||||||
public static bool IsEmpty(BaseBook book)
|
public static bool IsEmpty(BaseBook book)
|
||||||
{
|
{
|
||||||
return book.Pages.SelectMany(page => page.Lines).All(line => line.Trim().Length == 0);
|
foreach (var page in book.Pages)
|
||||||
|
{
|
||||||
|
foreach (var line in page.Lines)
|
||||||
|
{
|
||||||
|
if (!string.IsNullOrEmpty(line))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void Copy(BaseBook bookSrc, BaseBook bookDst)
|
public static void Copy(BaseBook bookSrc, BaseBook bookDst)
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Server.Engines.ConPVP;
|
using Server.Engines.ConPVP;
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Network;
|
|
||||||
using Server.Spells.Bushido;
|
using Server.Spells.Bushido;
|
||||||
using Server.Spells.Necromancy;
|
using Server.Spells.Necromancy;
|
||||||
using Server.Spells.Ninjitsu;
|
using Server.Spells.Ninjitsu;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
|
||||||
using Server.Collections;
|
using Server.Collections;
|
||||||
using Server.Items;
|
using Server.Items;
|
||||||
using Server.Misc;
|
using Server.Misc;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue