Fixes unavailable syntax for Mono.

This commit is contained in:
Kamron Batman 2018-09-03 09:34:36 -07:00
parent f674ec2be0
commit 6ef32ce910
7 changed files with 99 additions and 144 deletions

View file

@ -61,21 +61,11 @@ namespace Server.Items
if ( obj is IArcaneEquip eq && eq is Item item )
{
CraftResource resource = CraftResource.None;
BaseClothing clothing = item as BaseClothing;
BaseArmor armor = item as BaseArmor;
BaseWeapon weapon = item as BaseWeapon;
switch (item)
{
case BaseClothing clothing:
resource = clothing.Resource;
break;
case BaseArmor armor:
resource = armor.Resource;
break;
// Sanity, weapons cannot receive gems...
case BaseWeapon weapon:
resource = weapon.Resource;
break;
}
CraftResource resource = clothing?.Resource ?? armor?.Resource ?? weapon?.Resource ?? CraftResource.None;
if ( !item.IsChildOf( from.Backpack ) )
{
@ -119,39 +109,27 @@ namespace Server.Items
}
else if ( from.Skills[SkillName.Tailoring].Value >= 80.0 )
{
bool isExceptional = false;
switch (item)
{
case BaseClothing clothing:
isExceptional = clothing.Quality == ClothingQuality.Exceptional;
break;
case BaseArmor armor:
isExceptional = armor.Quality == ArmorQuality.Exceptional;
break;
case BaseWeapon weapon:
isExceptional = weapon.Quality == WeaponQuality.Exceptional;
break;
}
bool isExceptional = clothing?.Quality == ClothingQuality.Exceptional ||
armor?.Quality == ArmorQuality.Exceptional ||
weapon?.Quality == WeaponQuality.Exceptional;
if ( isExceptional )
{
switch (item)
if (clothing != null)
{
case BaseClothing clothing:
clothing.Quality = ClothingQuality.Regular;
clothing.Crafter = @from;
break;
case BaseArmor armor:
armor.Quality = ArmorQuality.Regular;
armor.Crafter = @from;
armor.PhysicalBonus = armor.FireBonus = armor.ColdBonus = armor.PoisonBonus = armor.EnergyBonus = 0; // Is there a method to remove bonuses?
break;
// Sanity, weapons cannot receive gems...
case BaseWeapon weapon:
weapon.Quality = WeaponQuality.Regular;
weapon.Crafter = @from;
break;
clothing.Quality = ClothingQuality.Regular;
clothing.Crafter = from;
}
else if (armor != null)
{
armor.Quality = ArmorQuality.Regular;
armor.Crafter = from;
armor.PhysicalBonus = armor.FireBonus = armor.ColdBonus = armor.PoisonBonus = armor.EnergyBonus = 0; // Is there a method to remove bonuses?
}
else if (weapon != null)
{
weapon.Quality = WeaponQuality.Regular;
weapon.Crafter = from;
}
eq.CurArcaneCharges = eq.MaxArcaneCharges = charges;

View file

@ -155,28 +155,25 @@ namespace Server.Items
BaseHouse house = BaseHouse.FindHouseAt( from );
bool isDecorableComponent = false;
object addon = null;
int count = 0;
if ( item is AddonComponent || item is AddonContainerComponent || item is BaseAddonContainer )
if (item is AddonComponent component)
{
object addon = null;
int count = 0;
switch (item)
{
case AddonComponent component:
count = component.Addon.Components.Count;
addon = component.Addon;
break;
case AddonContainerComponent containerComponent:
count = containerComponent.Addon.Components.Count;
addon = containerComponent.Addon;
break;
case BaseAddonContainer container:
count = container.Components.Count;
addon = container;
break;
}
count = component.Addon.Components.Count;
addon = component.Addon;
} else if (item is AddonContainerComponent containerComponent)
{
count = containerComponent.Addon.Components.Count;
addon = containerComponent.Addon;
} else if (item is BaseAddonContainer container)
{
count = container.Components.Count;
addon = container;
}
if (addon != null)
{
if ( count == 1 && Core.SE )
isDecorableComponent = true;
@ -236,22 +233,17 @@ namespace Server.Items
private static void Turn( Item item, Mobile from )
{
if ( item is AddonComponent || item is AddonContainerComponent || item is BaseAddonContainer )
{
object addon = null;
object addon = null;
switch (item)
{
case AddonComponent component:
addon = component.Addon;
break;
case AddonContainerComponent containerComponent:
addon = containerComponent.Addon;
break;
case BaseAddonContainer container:
addon = container;
break;
}
if (item is AddonComponent component)
addon = component.Addon;
else if (item is AddonContainerComponent containerComponent)
addon = containerComponent.Addon;
else if (item is BaseAddonContainer container)
addon = container;
if (addon != null)
{
FlippableAddonAttribute[] aAttributes = (FlippableAddonAttribute[]) addon.GetType().GetCustomAttributes( typeof( FlippableAddonAttribute ), false );