Code cleanup (#195)

This commit is contained in:
Kamron Batman 2020-08-16 21:46:54 -07:00 committed by GitHub
parent b476bcfd24
commit 0926b5abaa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
86 changed files with 740 additions and 1635 deletions

View file

@ -3422,10 +3422,8 @@ namespace Server
public virtual void ScissorHelper(Mobile from, Item newItem, int amountPerOldItem, bool carryHue)
{
var amount = Amount;
if (amount > 60000 / amountPerOldItem) // let's not go over 60000
amount = 60000 / amountPerOldItem;
// let's not go over 60000
var amount = Math.Min(Amount, 60000 / amountPerOldItem);
Amount -= amount;

View file

@ -2929,10 +2929,12 @@ namespace Server
{
var name = Name ?? string.Empty;
var prefix = "";
string prefix;
if (ShowFameTitle && (m_Player || m_Body.IsHuman) && m_Fame >= 10000)
prefix = m_Female ? "Lady" : "Lord";
else
prefix = "";
var suffix = "";
@ -2950,27 +2952,22 @@ namespace Server
list.Add(1050045, "{0} \t{1}\t {2}", prefix, name, suffix); // ~1_PREFIX~~2_NAME~~3_SUFFIX~
if (guild != null && (m_DisplayGuildTitle || (m_Player && guild.Type != GuildType.Regular)))
if (guild != null && (m_DisplayGuildTitle || m_Player && guild.Type != GuildType.Regular))
{
string type;
if (guild.Type >= 0 && (int)guild.Type < m_GuildTypes.Length)
type = m_GuildTypes[(int)guild.Type];
else
type = "";
var type = guild.Type >= 0 && (int)guild.Type < m_GuildTypes.Length ? m_GuildTypes[(int)guild.Type] : "";
var title = GuildTitle?.Trim() ?? "";
if (NewGuildDisplay && title.Length > 0)
if (title.Length > 0)
{
list.Add("{0}, {1}", Utility.FixHtml(title), Utility.FixHtml(guild.Name));
if (NewGuildDisplay)
list.Add("{0}, {1}", Utility.FixHtml(title), Utility.FixHtml(guild.Name));
else
list.Add("{0}, {1} Guild{2}", Utility.FixHtml(title), Utility.FixHtml(guild.Name), type);
}
else
{
if (title.Length > 0)
list.Add("{0}, {1} Guild{2}", Utility.FixHtml(title), Utility.FixHtml(guild.Name), type);
else
list.Add(Utility.FixHtml(guild.Name));
list.Add(Utility.FixHtml(guild.Name));
}
}
}
@ -2990,7 +2987,7 @@ namespace Server
private void UpdateAggrExpire()
{
if (Deleted || (Aggressors.Count == 0 && Aggressed.Count == 0))
if (Deleted || Aggressors.Count == 0 && Aggressed.Count == 0)
{
StopAggrExpire();
}
@ -3171,7 +3168,7 @@ namespace Server
public bool InLOS(object target) =>
!Deleted && m_Map != null &&
(target == this || m_AccessLevel > AccessLevel.Player || (target is Item item && item.RootParent == this)
(target == this || m_AccessLevel > AccessLevel.Player || target is Item item && item.RootParent == this
|| m_Map.LineOfSight(this, target));
public bool InLOS(Point3D target) =>
@ -3708,7 +3705,7 @@ namespace Server
var item = oldSector.Items[i];
if (item.AtWorldPoint(oldX, oldY) &&
(item.Z == oldZ || (item.Z + item.ItemData.Height > oldZ && oldZ + 15 > item.Z)) &&
(item.Z == oldZ || item.Z + item.ItemData.Height > oldZ && oldZ + 15 > item.Z) &&
!item.OnMoveOff(this))
return false;
}
@ -3726,7 +3723,7 @@ namespace Server
var item = newSector.Items[i];
if (item.AtWorldPoint(x, y) &&
(item.Z == newZ || (item.Z + item.ItemData.Height > newZ && newZ + 15 > item.Z)) &&
(item.Z == newZ || item.Z + item.ItemData.Height > newZ && newZ + 15 > item.Z) &&
!item.OnMoveOver(this))
return false;
}
@ -3749,11 +3746,11 @@ namespace Server
var item = oldSector.Items[i];
if (item.AtWorldPoint(oldX, oldY) &&
(item.Z == oldZ || (item.Z + item.ItemData.Height > oldZ && oldZ + 15 > item.Z)) &&
(item.Z == oldZ || item.Z + item.ItemData.Height > oldZ && oldZ + 15 > item.Z) &&
!item.OnMoveOff(this))
return false;
if (item.AtWorldPoint(x, y) &&
(item.Z == newZ || (item.Z + item.ItemData.Height > newZ && newZ + 15 > item.Z)) &&
(item.Z == newZ || item.Z + item.ItemData.Height > newZ && newZ + 15 > item.Z) &&
!item.OnMoveOver(this))
return false;
}
@ -4837,7 +4834,7 @@ namespace Server
}
public virtual bool CheckHearsMutatedSpeech(Mobile m, object context) =>
context != m_GhostMutateContext || (m.Alive && !m.CanHearGhosts);
context != m_GhostMutateContext || m.Alive && !m.CanHearGhosts;
private void AddSpeechItemsFrom(List<IEntity> list, Container cont)
{
@ -4921,7 +4918,7 @@ namespace Server
foreach (var o in eable)
if (o is Mobile heard)
{
if (!heard.CanSee(this) || (!NoSpeechLOS && heard.Player && !heard.InLOS(this)))
if (!heard.CanSee(this) || !NoSpeechLOS && heard.Player && !heard.InLOS(this))
continue;
if (heard.m_NetState != null)
@ -6408,11 +6405,11 @@ namespace Server
if (Deleted || m.Deleted || m_Map == Map.Internal || m.m_Map == Map.Internal)
return false;
return this == m || (m.m_Map == m_Map &&
(!m.Hidden || (m_AccessLevel != AccessLevel.Player &&
(m_AccessLevel >= m.AccessLevel || m_AccessLevel >= AccessLevel.Administrator))) &&
(m.Alive || (Core.SE && Skills.SpiritSpeak.Value >= 100.0) || !Alive ||
m_AccessLevel > AccessLevel.Player || m.Warmode));
return this == m || m.m_Map == m_Map &&
(!m.Hidden || m_AccessLevel != AccessLevel.Player &&
(m_AccessLevel >= m.AccessLevel || m_AccessLevel >= AccessLevel.Administrator)) &&
(m.Alive || Core.SE && Skills.SpiritSpeak.Value >= 100.0 || !Alive ||
m_AccessLevel > AccessLevel.Player || m.Warmode);
}
public virtual bool CanBeRenamedBy(Mobile from) =>
@ -6561,7 +6558,7 @@ namespace Server
var inOldRange = Utility.InUpdateRange(oldLocation, m.m_Location);
if (m.m_NetState != null &&
((isTeleport && (!m.m_NetState.HighSeas || !NoMoveHS)) || !inOldRange) && m.CanSee(this))
(isTeleport && (!m.m_NetState.HighSeas || !NoMoveHS) || !inOldRange) && m.CanSee(this))
{
m.m_NetState.Send(MobileIncoming.Create(m.m_NetState, m, this));
@ -6608,7 +6605,7 @@ namespace Server
// We're not attached to a client, so simply send an Incoming
foreach (var ns in eable)
if (((isTeleport && (!ns.HighSeas || !NoMoveHS)) ||
if ((isTeleport && (!ns.HighSeas || !NoMoveHS) ||
!Utility.InUpdateRange(oldLocation, ns.Mobile.Location)) && ns.Mobile.CanSee(this))
{
ns.Send(MobileIncoming.Create(ns, ns.Mobile, this));
@ -6735,7 +6732,7 @@ namespace Server
public virtual bool CheckLift(Mobile from, Item item, ref LRReason reject) => true;
public virtual bool CheckNonlocalLift(Mobile from, Item item) =>
from == this || (from.AccessLevel > AccessLevel && from.AccessLevel >= AccessLevel.GameMaster);
from == this || @from.AccessLevel > AccessLevel && @from.AccessLevel >= AccessLevel.GameMaster;
public virtual bool CheckTrade(Mobile to, Item item, SecureTradeContainer cont, bool message, bool checkItems,
int plusItems, int plusWeight) =>
@ -6878,7 +6875,7 @@ namespace Server
}
public virtual bool CheckNonlocalDrop(Mobile from, Item item, Item target) =>
from == this || (from.AccessLevel > AccessLevel && from.AccessLevel >= AccessLevel.GameMaster);
from == this || @from.AccessLevel > AccessLevel && @from.AccessLevel >= AccessLevel.GameMaster;
public virtual bool CheckItemUse(Mobile from, Item item) => true;
@ -6894,7 +6891,7 @@ namespace Server
public virtual bool AllowItemUse(Item item) => true;
public virtual bool AllowEquipFrom(Mobile mob) =>
mob == this || (mob.AccessLevel >= AccessLevel.GameMaster && mob.AccessLevel > AccessLevel);
mob == this || mob.AccessLevel >= AccessLevel.GameMaster && mob.AccessLevel > AccessLevel;
public virtual bool EquipItem(Item item)
{
@ -7079,14 +7076,14 @@ namespace Server
public virtual void OnSingleClick(Mobile from)
{
if (Deleted ||
(AccessLevel == AccessLevel.Player && DisableHiddenSelfClick && Hidden && from == this))
AccessLevel == AccessLevel.Player && DisableHiddenSelfClick && Hidden && @from == this)
return;
if (GuildClickMessage)
{
var guild = m_Guild;
if (guild != null && (m_DisplayGuildTitle || (m_Player && guild.Type != GuildType.Regular)))
if (guild != null && (m_DisplayGuildTitle || m_Player && guild.Type != GuildType.Regular))
{
var title = GuildTitle?.Trim() ?? "";
string type;
@ -7631,7 +7628,7 @@ namespace Server
protected override void OnTick()
{
if (m_Mobile.Deleted || (m_Mobile.Aggressors.Count == 0 && m_Mobile.Aggressed.Count == 0))
if (m_Mobile.Deleted || m_Mobile.Aggressors.Count == 0 && m_Mobile.Aggressed.Count == 0)
m_Mobile.StopAggrExpire();
else
m_Mobile.CheckAggrExpire();
@ -8019,7 +8016,7 @@ namespace Server
return false;
if (Deleted || target.Deleted || !Alive || IsDeadBondedPet ||
(!allowDead && (!target.Alive || target.IsDeadBondedPet)))
!allowDead && (!target.Alive || target.IsDeadBondedPet))
{
if (message)
SendLocalizedMessage(1001017); // You can not perform beneficial acts on your target.
@ -8095,7 +8092,7 @@ namespace Server
if (target == null)
return false;
if (Deleted || (!ignoreOurBlessedness && m_Blessed) || target.Deleted || target.m_Blessed || !Alive ||
if (Deleted || !ignoreOurBlessedness && m_Blessed || target.Deleted || target.m_Blessed || !Alive ||
IsDeadBondedPet || !target.Alive || target.IsDeadBondedPet)
{
if (message)
@ -8322,10 +8319,7 @@ namespace Server
get => m_Str;
set
{
if (value < 1)
value = 1;
else if (value > 65000)
value = 65000;
value = Math.Clamp(value, 1, 65000);
if (m_Str != value)
{
@ -8361,17 +8355,7 @@ namespace Server
[CommandProperty(AccessLevel.GameMaster)]
public virtual int Str
{
get
{
var value = m_Str + GetStatOffset(StatType.Str);
if (value < 1)
value = 1;
else if (value > 65000)
value = 65000;
return value;
}
get => Math.Clamp(m_Str + GetStatOffset(StatType.Str), 1, 65000);
set
{
if (StatMods.Count == 0)
@ -8392,10 +8376,7 @@ namespace Server
get => m_Dex;
set
{
if (value < 1)
value = 1;
else if (value > 65000)
value = 65000;
value = Math.Clamp(value, 1, 65000);
if (m_Dex != value)
{
@ -8431,17 +8412,7 @@ namespace Server
[CommandProperty(AccessLevel.GameMaster)]
public virtual int Dex
{
get
{
var value = m_Dex + GetStatOffset(StatType.Dex);
if (value < 1)
value = 1;
else if (value > 65000)
value = 65000;
return value;
}
get => Math.Clamp(m_Dex + GetStatOffset(StatType.Dex), 0, 65000);
set
{
if (StatMods.Count == 0)
@ -8462,10 +8433,7 @@ namespace Server
get => m_Int;
set
{
if (value < 1)
value = 1;
else if (value > 65000)
value = 65000;
value = Math.Clamp(value, 1, 65000);
if (m_Int != value)
{
@ -8501,17 +8469,7 @@ namespace Server
[CommandProperty(AccessLevel.GameMaster)]
public virtual int Int
{
get
{
var value = m_Int + GetStatOffset(StatType.Int);
if (value < 1)
value = 1;
else if (value > 65000)
value = 65000;
return value;
}
get => Math.Clamp(m_Int + GetStatOffset(StatType.Int), 0, 65000);
set
{
if (StatMods.Count == 0)

View file

@ -601,10 +601,7 @@ namespace Server
}
}
if (highest == null && m_Skills.Length > 0)
highest = this[0];
m_Highest = highest;
m_Highest = highest == null && m_Skills.Length > 0 ? this[0] : highest;
}
return m_Highest;

View file

@ -103,10 +103,7 @@ namespace Server.Commands
if (ip == null)
return "null";
ip = ip.Trim();
if (ip.Length == 0)
return "empty";
ip = ip.Trim().IsNullOrDefault("empty");
bool isSafe = true;

View file

@ -204,7 +204,7 @@ namespace Server.Gumps
private class TypeNameComparer : IComparer<Type>
{
public int Compare(Type x, Type y) => x.Name.CompareTo(y.Name);
public int Compare(Type x, Type y) => x?.Name.CompareTo(y?.Name) ?? 1;
}
public class InternalTarget : Target
@ -227,10 +227,12 @@ namespace Server.Gumps
{
if (o is IPoint3D p)
{
if (p is Item item)
p = item.GetWorldTop();
else if (p is Mobile m)
p = m.Location;
p = p switch
{
Item item => item.GetWorldTop(),
Mobile m => m.Location,
_ => p
};
Commands.Add.Invoke(from, new Point3D(p), new Point3D(p), new[] { m_Type.Name });

View file

@ -179,10 +179,7 @@ namespace Server.Engines.Chat
}
}
password = password?.Trim();
if (password?.Length == 0)
password = null;
password = password?.Trim().IsNullOrDefault(null);
Channel joined = Channel.FindChannelByName(name);
@ -216,10 +213,7 @@ namespace Server.Engines.Chat
name = param;
}
password = password?.Trim();
if (password?.Length == 0)
password = null;
password = password?.Trim().IsNullOrDefault(null);
Channel.AddChannel(name, password).AddUser(from, password);
}

View file

@ -96,13 +96,7 @@ namespace Server.Engines.ConPVP
public Tournament Tournament => m_Tournament;
private bool CantDoAnything(Mobile mob)
{
if (m_EventGame != null)
return m_EventGame.CantDoAnything(mob);
return false;
}
private bool CantDoAnything(Mobile mob) => m_EventGame?.CantDoAnything(mob) == true;
public static bool IsFreeConsume(Mobile mob)
{

View file

@ -215,14 +215,7 @@ namespace Server.Engines.ConPVP
int zdiff = myLoc.Z - m.Z;
if (zdiff < 0)
return false;
if (zdiff < 12)
return true;
if (zdiff < 16)
return Utility.RandomBool(); // 50% chance
return false;
return zdiff >= 0 && (zdiff < 12 || zdiff < 16 && Utility.RandomBool());
}
private void DoAnim(Point3D start, Point3D end, Map map)
@ -1648,12 +1641,12 @@ namespace Server.Engines.ConPVP
for (int i = 0; i < teams.Count; ++i)
{
TrophyRank rank = TrophyRank.Bronze;
if (i == 0)
rank = TrophyRank.Gold;
else if (i == 1)
rank = TrophyRank.Silver;
TrophyRank rank = i switch
{
0 => TrophyRank.Gold,
1 => TrophyRank.Silver,
_ => TrophyRank.Bronze
};
BRPlayerInfo leader = teams[i].Leader;
@ -1747,7 +1740,8 @@ namespace Server.Engines.ConPVP
p.Players[j].Eliminated = true;
}
m_Context.Finish(m_Context.Participants[winner.TeamID]);
if (winner != null)
m_Context.Finish(m_Context.Participants[winner.TeamID]);
}
public override void OnStop()

View file

@ -170,10 +170,8 @@ namespace Server.Engines.ConPVP
return 50;
if (xp >= 2500)
return 10 + (xp - 2500) / 500;
if (xp < 0)
xp = 0;
return m_ShortLevels[xp / 100];
return m_ShortLevels[Math.Max(xp, 0) / 100];
}
public static void GetLevelInfo(int level, out int xpBase, out int xpAdvance)

View file

@ -78,10 +78,7 @@ namespace Server.Engines.ConPVP
sb.Append(mob.Name);
}
if (sb.Length == 0)
return "Empty";
return sb.ToString();
return sb.Length == 0 ? "Empty" : sb.ToString();
}
}

View file

@ -149,24 +149,14 @@ namespace Server.Engines.ConPVP
public int ParticipantsPerMatch
{
get => m_ParticipantsPerMatch;
set
{
if (value < 2) value = 2;
else if (value > 10) value = 10;
m_ParticipantsPerMatch = value;
}
set => m_ParticipantsPerMatch = Math.Clamp(value, 2, 10);
}
[CommandProperty(AccessLevel.GameMaster)]
public int PlayersPerParticipant
{
get => m_PlayersPerParticipant;
set
{
if (value < 1) value = 1;
else if (value > 10) value = 10;
m_PlayersPerParticipant = value;
}
set => m_PlayersPerParticipant = Math.Clamp(value, 1, 10);
}
[CommandProperty(AccessLevel.GameMaster)]

View file

@ -74,10 +74,7 @@ namespace Server.Engines.ConPVP
sb.Append(mob.Name);
}
if (sb.Length == 0)
return "Empty";
return sb.ToString();
return sb.Length == 0 ? "Empty" : sb.ToString();
}
}
@ -103,4 +100,4 @@ namespace Server.Engines.ConPVP
AddLog("Match lost.");
}
}
}
}

View file

@ -137,10 +137,7 @@ namespace Server.Engines.Craft
for (int i = 0; i < m_CraftItem.Skills.Count; i++)
{
CraftSkill skill = m_CraftItem.Skills[i];
double minSkill = skill.MinSkill;
if (minSkill < 0)
minSkill = 0;
double minSkill = Math.Max(skill.MinSkill, 0);
AddHtmlLocalized(170, 132 + i * 20, 200, 18, AosSkillBonuses.GetLabel(skill.SkillToMake), LabelColor);
AddLabel(430, 132 + i * 20, LabelHue, $"{minSkill:F1}");
@ -156,25 +153,16 @@ namespace Server.Engines.Craft
double chance = m_CraftItem.GetSuccessChance(m_From, resIndex > -1 ? res.GetAt(resIndex).ItemType : null,
m_CraftSystem, false, out _);
double excepChance = m_CraftItem.GetExceptionalChance(m_CraftSystem, chance, m_From);
if (chance < 0.0)
chance = 0.0;
else if (chance > 1.0)
chance = 1.0;
AddHtmlLocalized(170, 80, 250, 18, 1044057, LabelColor); // Success Chance:
AddLabel(430, 80, LabelHue, $"{chance * 100:F1}%");
AddLabel(430, 80, LabelHue, $"{Math.Clamp(chance, 0, 1) * 100:F1}%");
if (m_ShowExceptionalChance)
{
if (excepChance < 0.0)
excepChance = 0.0;
else if (excepChance > 1.0)
excepChance = 1.0;
double exceptChance = Math.Clamp(m_CraftItem.GetExceptionalChance(m_CraftSystem, chance, m_From), 0, 1.0);
AddHtmlLocalized(170, 100, 250, 18, 1044058, 32767); // Exceptional Chance:
AddLabel(430, 100, LabelHue, $"{excepChance * 100:F1}%");
AddLabel(430, 100, LabelHue, $"{exceptChance * 100:F1}%");
}
}

View file

@ -647,23 +647,11 @@ namespace Server.Engines.Craft
chance = chance * 0.5 - 0.1;
break;
case CraftECA.ChanceMinusSixtyToFourtyFive:
{
double offset = 0.60 - (from.Skills[system.MainSkill].Value - 95.0) * 0.03;
if (offset < 0.45)
offset = 0.45;
else if (offset > 0.60)
offset = 0.60;
chance -= offset;
break;
}
chance -= Math.Clamp(0.60 - (from.Skills[system.MainSkill].Value - 95.0) * 0.03, 0.45, 0.60);
break;
}
if (chance > 0)
return chance + bonus;
return chance;
return chance > 0 ? chance + bonus : chance;
}
public bool CheckSkills(Mobile from, Type typeRes, CraftSystem craftSystem, ref int quality,

View file

@ -254,12 +254,7 @@ namespace Server.Engines.Doom
if (playerCount == 0 && Region != null)
playerCount = Region.GetPlayerCount();
int count = (playerCount + PlayersPerSpawn - 1) / PlayersPerSpawn;
if (count < 1)
count = 1;
return count;
return Math.Max((playerCount + PlayersPerSpawn - 1) / PlayersPerSpawn, 1);
}
public virtual void ClearCreatures()

View file

@ -138,8 +138,7 @@ namespace Server.Factions
2 => "You are bold, {0}, for one of the meager {1}. Leave now, lest you be taught the taste of dirt.",
3 => "Your presence here is an insult, {0}. Be gone now, knave.",
4 => "Dost thou wish to be hung by your toes, {0}? Nay? Then come no closer.",
5 => "Hey, {0}. Yeah, you. Get out of here before I beat you with a stick.",
_ => null
_ => "Hey, {0}. Yeah, you. Get out of here before I beat you with a stick." // 5
};
Faction faction = Faction.Find(m);
@ -177,8 +176,7 @@ namespace Server.Factions
{
ReactionType.Ignore => faction.Definition.GuardIgnore,
ReactionType.Warn => faction.Definition.GuardWarn,
ReactionType.Attack => faction.Definition.GuardAttack,
_ => null
_ => faction.Definition.GuardAttack // ReactionType.Attack
};
if (def != null && def.Number > 0)

View file

@ -206,14 +206,11 @@ namespace Server.Factions
public Spell RandomOffenseSpell()
{
int maxCircle = (int)((m_Guard.Skills.Magery.Value + 20.0) / (100.0 / 7.0));
if (maxCircle < 1)
maxCircle = 1;
int maxCircle = Math.Max((int)((m_Guard.Skills.Magery.Value + 20.0) / (100.0 / 7.0)), 1);
return Utility.Random(maxCircle * 2) switch
{
0 => (Spell)new MagicArrowSpell(m_Guard),
0 => new MagicArrowSpell(m_Guard),
1 => new MagicArrowSpell(m_Guard),
2 => new HarmSpell(m_Guard),
3 => new HarmSpell(m_Guard),

View file

@ -128,11 +128,11 @@ namespace Server.Engines.MLQuests.Items
case 1:
AddRecipe(DefAlchemy.CraftSystem);
break;
// TODO
// case 2: AddNonArtifactRecipe( DefTailoring.CraftSystem ); break;
// case 3: AddNonArtifactRecipe( DefBlacksmithy.CraftSystem ); break;
// case 4: AddNonArtifactRecipe( DefCarpentry.CraftSystem ); break;
// case 5: AddNonArtifactRecipe( DefBowFletching.CraftSystem ); break;
// TODO
// case 2: AddNonArtifactRecipe( DefTailoring.CraftSystem ); break;
// case 3: AddNonArtifactRecipe( DefBlacksmithy.CraftSystem ); break;
// case 4: AddNonArtifactRecipe( DefCarpentry.CraftSystem ); break;
// case 5: AddNonArtifactRecipe( DefBowFletching.CraftSystem ); break;
}
}
@ -221,4 +221,4 @@ namespace Server.Engines.MLQuests.Items
int version = reader.ReadInt();
}
}
}
}

View file

@ -8,39 +8,21 @@
Hue = Utility.RandomBrightHue();
DropItem(new TinkerTools());
switch (Utility.Random(10))
{
case 0:
DropItem(new Springs(3));
break;
case 1:
DropItem(new Axle(3));
break;
case 2:
DropItem(new Hinge(3));
break;
case 3:
DropItem(new Key());
break;
case 4:
DropItem(new Scissors());
break;
case 5:
DropItem(new BarrelTap(3));
break;
case 6:
DropItem(new BarrelHoops());
break;
case 7:
DropItem(new Gears(3));
break;
case 8:
DropItem(new Lockpick(3));
break;
case 9:
DropItem(new ClockFrame(3));
break;
}
DropItem(
Utility.Random(10) switch
{
0 => new Springs(3),
1 => new Axle(3),
2 => new Hinge(3),
3 => new Key(),
4 => new Scissors(),
5 => new BarrelTap(3),
6 => new BarrelHoops(),
7 => new Gears(3),
8 => new Lockpick(3),
_ => new ClockFrame(3) // 9
}
);
}
public NibbetSatchel(Serial serial)
@ -62,4 +44,4 @@
int version = reader.ReadInt();
}
}
}
}

View file

@ -24,8 +24,7 @@ namespace Server.Engines.MLQuests.Items
1 => Loot.RandomArmor(false, true),
2 => Loot.RandomRangedWeapon(false, true),
3 => Loot.RandomJewelry(),
4 => Loot.RandomHat(false),
_ => null
_ => Loot.RandomHat(false) // 4
};
if (loot == null)
@ -189,4 +188,4 @@ namespace Server.Engines.MLQuests.Items
int version = reader.ReadInt();
}
}
}
}

View file

@ -113,13 +113,7 @@ namespace Server.Engines.Plants
get => m_Water;
set
{
if (value < 0)
m_Water = 0;
else if (value > 4)
m_Water = 4;
else
m_Water = value;
m_Water = Math.Clamp(value, 0, 4);
Plant.InvalidateProperties();
}
}
@ -132,12 +126,7 @@ namespace Server.Engines.Plants
if (m_Hits == value)
return;
if (value < 0)
m_Hits = 0;
else if (value > MaxHits)
m_Hits = MaxHits;
else
m_Hits = value;
m_Hits = Math.Clamp(value, 0, MaxHits);
if (m_Hits == 0)
Plant.Die();
@ -158,66 +147,32 @@ namespace Server.Engines.Plants
return PlantHealth.Dying;
if (perc < 66)
return PlantHealth.Wilted;
if (perc < 100)
return PlantHealth.Healthy;
return PlantHealth.Vibrant;
return perc < 100 ? PlantHealth.Healthy : PlantHealth.Vibrant;
}
}
public int Infestation
{
get => m_Infestation;
set
{
if (value < 0)
m_Infestation = 0;
else if (value > 2)
m_Infestation = 2;
else
m_Infestation = value;
}
set => m_Infestation = Math.Clamp(value, 0, 2);
}
public int Fungus
{
get => m_Fungus;
set
{
if (value < 0)
m_Fungus = 0;
else if (value > 2)
m_Fungus = 2;
else
m_Fungus = value;
}
set => m_Fungus = Math.Clamp(value, 0, 2);
}
public int Poison
{
get => m_Poison;
set
{
if (value < 0)
m_Poison = 0;
else if (value > 2)
m_Poison = 2;
else
m_Poison = value;
}
set => m_Poison = Math.Clamp(value, 0, 2);
}
public int Disease
{
get => m_Disease;
set
{
if (value < 0)
m_Disease = 0;
else if (value > 2)
m_Disease = 2;
else
m_Disease = value;
}
set => m_Disease = Math.Clamp(value, 0, 2);
}
public bool IsFullPoisonPotion => m_PoisonPotion >= 2;
@ -225,15 +180,7 @@ namespace Server.Engines.Plants
public int PoisonPotion
{
get => m_PoisonPotion;
set
{
if (value < 0)
m_PoisonPotion = 0;
else if (value > 2)
m_PoisonPotion = 2;
else
m_PoisonPotion = value;
}
set => m_PoisonPotion = Math.Clamp(value, 0, 2);
}
public bool IsFullCurePotion => m_CurePotion >= 2;
@ -241,15 +188,7 @@ namespace Server.Engines.Plants
public int CurePotion
{
get => m_CurePotion;
set
{
if (value < 0)
m_CurePotion = 0;
else if (value > 2)
m_CurePotion = 2;
else
m_CurePotion = value;
}
set => m_CurePotion = Math.Clamp(value, 0, 2);
}
public bool IsFullHealPotion => m_HealPotion >= 2;
@ -257,15 +196,7 @@ namespace Server.Engines.Plants
public int HealPotion
{
get => m_HealPotion;
set
{
if (value < 0)
m_HealPotion = 0;
else if (value > 2)
m_HealPotion = 2;
else
m_HealPotion = value;
}
set => m_HealPotion = Math.Clamp(value, 0, 2);
}
public bool IsFullStrengthPotion => m_StrengthPotion >= 2;
@ -273,15 +204,7 @@ namespace Server.Engines.Plants
public int StrengthPotion
{
get => m_StrengthPotion;
set
{
if (value < 0)
m_StrengthPotion = 0;
else if (value > 2)
m_StrengthPotion = 2;
else
m_StrengthPotion = value;
}
set => m_StrengthPotion = Math.Clamp(value, 0, 2);
}
public bool HasMaladies => Infestation > 0 || Fungus > 0 || Poison > 0 || Disease > 0 || Water != 2;
@ -292,23 +215,13 @@ namespace Server.Engines.Plants
public PlantType SeedType
{
get
{
if (Pollinated)
return m_SeedType;
return Plant.PlantType;
}
get => Pollinated ? m_SeedType : Plant.PlantType;
set => m_SeedType = value;
}
public PlantHue SeedHue
{
get
{
if (Pollinated)
return m_SeedHue;
return Plant.PlantHue;
}
get => Pollinated ? m_SeedHue : Plant.PlantHue;
set => m_SeedHue = value;
}

View file

@ -431,7 +431,7 @@ namespace Server.Engines.Quests
return false;
}
doneQuests.RemoveAt(i--);
doneQuests.RemoveAt(i);
return true;
}
}
@ -444,18 +444,7 @@ namespace Server.Engines.Quests
if (Utility.RandomBool())
who.Animate(17, 7, 1, true, false, 0);
else
switch (Utility.Random(3))
{
case 0:
who.Animate(32, 7, 1, true, false, 0);
break;
case 1:
who.Animate(33, 7, 1, true, false, 0);
break;
case 2:
who.Animate(34, 7, 1, true, false, 0);
break;
}
who.Animate(32 + Utility.Random(3), 7, 1, true, false, 0);
who.Direction = who.GetDirectionTo(to);
}

View file

@ -27,18 +27,14 @@ namespace Server.Engines.Quests.Ninja
Items[i].Delete();
for (int i = 0; i < 75; i++)
switch (Utility.Random(3))
{
case 0:
DropItem(new GoldBracelet());
break;
case 1:
DropItem(new GoldRing());
break;
case 2:
DropItem(Loot.RandomGem());
break;
}
DropItem(
Utility.Random(10) switch
{
0 => new GoldBracelet(),
1 => new GoldRing(),
_ => Loot.RandomGem() // 2
}
);
}
public override void OnDoubleClick(Mobile from)
@ -133,4 +129,4 @@ namespace Server.Engines.Quests.Ninja
int version = reader.ReadEncodedInt();
}
}
}
}

View file

@ -27,18 +27,14 @@ namespace Server.Engines.Quests.Samurai
Items[i].Delete();
for (int i = 0; i < 75; i++)
switch (Utility.Random(3))
{
case 0:
DropItem(new GoldBracelet());
break;
case 1:
DropItem(new GoldRing());
break;
case 2:
DropItem(Loot.RandomGem());
break;
}
DropItem(
Utility.Random(10) switch
{
0 => new GoldBracelet(),
1 => new GoldRing(),
_ => Loot.RandomGem() // 2
}
);
}
public override bool CheckHold(Mobile m, Item item, bool message, bool checkItems, int plusItems, int plusWeight) => false;

View file

@ -31,39 +31,18 @@ namespace Server.Engines.Quests.Samurai
Fame = 200;
Karma = -200;
switch (Utility.Random(10))
{
case 0:
PackItem(new LeftArm());
break;
case 1:
PackItem(new RightArm());
break;
case 2:
PackItem(new Torso());
break;
case 3:
PackItem(new Bone());
break;
case 4:
PackItem(new RibCage());
break;
case 5:
PackItem(new RibCage());
break;
case 6:
PackItem(new BonePile());
break;
case 7:
PackItem(new BonePile());
break;
case 8:
PackItem(new BonePile());
break;
case 9:
PackItem(new BonePile());
break;
}
PackItem(
Utility.Random(10) switch
{
0 => new LeftArm(),
1 => new RightArm(),
2 => new Torso(),
3 => new Bone(),
4 => new RibCage(),
5 => new RibCage(),
_ => new BonePile() // 6-9
}
);
}
public CursedSoul(Serial serial) : base(serial)
@ -87,4 +66,4 @@ namespace Server.Engines.Quests.Samurai
int version = reader.ReadEncodedInt();
}
}
}
}

View file

@ -35,44 +35,33 @@ namespace Server.Engines.Quests.Samurai
AddItem(new LeatherHiroSode());
AddItem(new SamuraiTabi(Utility.RandomNondyedHue()));
switch (Utility.Random(3))
{
case 0:
AddItem(new StuddedHaidate());
break;
case 1:
AddItem(new PlateSuneate());
break;
default:
AddItem(new LeatherSuneate());
break;
}
AddItem(
Utility.Random(3) switch
{
0 => new StuddedHaidate(),
1 => new PlateSuneate(),
_ => new LeatherSuneate()
}
);
switch (Utility.Random(4))
{
case 0:
AddItem(new DecorativePlateKabuto());
break;
case 1:
AddItem(new ChainHatsuburi());
break;
case 2:
AddItem(new LightPlateJingasa());
break;
default:
AddItem(new LeatherJingasa());
break;
}
AddItem(
Utility.Random(4) switch
{
0 => new DecorativePlateKabuto(),
1 => new ChainHatsuburi(),
2 => new LightPlateJingasa(),
_ => new LeatherJingasa()
}
);
var weapon = Utility.Random(3) switch
{
0 => (Item)new NoDachi(),
1 => new Lajatang(),
_ => new Wakizashi()
};
weapon.Movable = false;
AddItem(weapon);
AddItem(
Utility.Random(3) switch
{
0 => new NoDachi{Movable = false},
1 => new Lajatang{Movable = false},
_ => new Wakizashi{Movable = false}
}
);
}
public override void OnTalk(PlayerMobile player, bool contextMenu)
@ -93,4 +82,4 @@ namespace Server.Engines.Quests.Samurai
int version = reader.ReadEncodedInt();
}
}
}
}

View file

@ -24,18 +24,14 @@ namespace Server.Engines.Quests.Samurai
AddItem(new Bandana(Utility.RandomNondyedHue()));
switch (Utility.Random(3))
{
case 0:
AddItem(new Tessen());
break;
case 1:
AddItem(new Kama());
break;
default:
AddItem(new Lajatang());
break;
}
AddItem(
Utility.Random(3) switch
{
0 => new Tessen(),
1 => new Kama(),
_ => new Lajatang()
}
);
SetSkill(SkillName.Swords, 50.0);
SetSkill(SkillName.Tactics, 50.0);
@ -64,4 +60,4 @@ namespace Server.Engines.Quests.Samurai
int version = reader.ReadEncodedInt();
}
}
}
}

View file

@ -21,33 +21,25 @@ namespace Server.Engines.Quests.Samurai
AddItem(new LeatherHiroSode());
AddItem(new SamuraiTabi());
switch (Utility.Random(3))
{
case 0:
AddItem(new StuddedHaidate());
break;
case 1:
AddItem(new PlateSuneate());
break;
default:
AddItem(new LeatherSuneate());
break;
}
AddItem(
Utility.Random(3) switch
{
0 => new StuddedHaidate(),
1 => new PlateSuneate(),
_ => new LeatherSuneate()
}
);
AddItem(new Bandana(Utility.RandomNondyedHue()));
switch (Utility.Random(3))
{
case 0:
AddItem(new NoDachi());
break;
case 1:
AddItem(new Lajatang());
break;
default:
AddItem(new Wakizashi());
break;
}
AddItem(
Utility.Random(3) switch
{
0 => new NoDachi(),
1 => new Lajatang(),
_ => new Wakizashi()
}
);
SetSkill(SkillName.Swords, 50.0);
SetSkill(SkillName.Tactics, 50.0);
@ -76,4 +68,4 @@ namespace Server.Engines.Quests.Samurai
int version = reader.ReadEncodedInt();
}
}
}
}

View file

@ -95,12 +95,7 @@ namespace Server.Engines.VeteranRewards
{
TimeSpan totalTime = DateTime.UtcNow - acct.Created;
int level = (int)(totalTime.TotalDays / RewardInterval.TotalDays);
if (level < 0)
level = 0;
return level;
return Math.Max((int)(totalTime.TotalDays / RewardInterval.TotalDays), 0);
}
public static bool HasHalfLevel(Mobile mob)
@ -473,10 +468,7 @@ namespace Server.Engines.VeteranRewards
if (m.SkillsCap == 7000 || m.SkillsCap == 7050 || m.SkillsCap == 7100 ||
m.SkillsCap == 7150 || m.SkillsCap == 7200)
{
if (level > 4)
level = 4;
else if (level < 0)
level = 0;
level = Math.Clamp(level, 0, 4);
if (SkillCapRewards)
m.SkillsCap = 7000 + level * 50;

View file

@ -342,14 +342,12 @@ namespace Server
targetFame / 100.0 * (m_HonorDamage / m_TotalDamage); // Initial honor gain is 100th of the monsters honor
if (m_HonorDamage == m_TotalDamage && m_FirstHit == FirstHit.Granted)
dGain = dGain * 1.5; // honor gain is increased alot more if the combat was fully honorable
dGain *= 1.5; // honor gain is increased alot more if the combat was fully honorable
else
dGain = dGain * 0.9;
dGain *= 0.9;
int gain = Math.Min((int)dGain, 200);
if (gain < 1)
gain = 1; // Minimum gain of 1 honor when the honor is under the monsters fame
// Minimum gain of 1 honor when the honor is under the monsters fame
int gain = Math.Clamp((int)dGain, 1, 200);
if (VirtueHelper.IsHighestPath(Source, VirtueName.Honor))
{

View file

@ -2387,14 +2387,13 @@ namespace Server.Gumps
var newLevel = index switch
{
20 => AccessLevel.Player,
21 => AccessLevel.Counselor,
22 => AccessLevel.GameMaster,
23 => AccessLevel.Seer,
24 => AccessLevel.Administrator,
33 => AccessLevel.Developer,
34 => AccessLevel.Owner,
_ => AccessLevel.Player
_ => AccessLevel.Player // 20
};
if (newLevel < from.AccessLevel || from.AccessLevel == AccessLevel.Owner)
@ -2628,7 +2627,7 @@ namespace Server.Gumps
{
string check = Firewall.List[i].ToString();
if (check.IndexOf(match) >= 0)
if (check?.IndexOf(match) >= 0)
results.Add(Firewall.List[i]);
}

View file

@ -207,15 +207,7 @@ namespace Server.Gumps
if (shouldSet)
{
string comment = null;
if (c != null)
{
comment = c.Text.Trim();
if (comment.Length == 0)
comment = null;
}
string comment = c?.Text.Trim().IsNullOrDefault(null);
for (int i = 0; i < m_List.Count; ++i)
{

View file

@ -25,19 +25,11 @@ namespace Server.Gumps
if (leader != null)
{
string leadTitle;
string leadTitle = leader.GuildTitle?.Trim();
string leadName = leader.Name?.Trim().IsNullOrDefault("(empty)");
string text = leadTitle?.Length > 0 ? $"{leadTitle}: {leadName}" : leadName;
if ((leadTitle = leader.GuildTitle) != null && (leadTitle = leadTitle.Trim()).Length > 0)
leadTitle += ": ";
else
leadTitle = "";
string leadName;
if ((leadName = leader.Name) == null || (leadName = leadName.Trim()).Length <= 0)
leadName = "(empty)";
AddHtml(220, 15, 250, 35, leadTitle + leadName);
AddHtml(220, 15, 250, 35, text);
}
AddButton(20, 50, 4005, 4007, 1);
@ -50,9 +42,7 @@ namespace Server.Gumps
fealty ??= beholder;
string fealtyName = fealty.Name?.Trim();
if (string.IsNullOrWhiteSpace(fealtyName))
fealtyName = "(empty)";
string fealtyName = fealty.Name?.Trim().IsNullOrDefault("(empty)");
if (beholder == fealty)
AddHtmlLocalized(55, 70, 470, 20, 1018002); // yourself

View file

@ -78,7 +78,7 @@ namespace Server.Guilds
{
base.OnResponse(sender, info);
PlayerMobile pm = sender.Mobile as PlayerMobile;
PlayerMobile pm = (PlayerMobile)sender.Mobile;
if (!IsMember(pm, guild))
return;

View file

@ -363,7 +363,7 @@ namespace Server.Gumps
{
string val = values[i];
string v = current.Length == 0 ? val : $"{current}{' '}{val}";
string v = current.Length == 0 ? val : $"{current} {val}";
if (v.Length < 10)
{

View file

@ -481,10 +481,7 @@ namespace Server.Gumps
{
Mobile m = m_House.Owner;
if (m?.Deleted != false)
return "(unowned)";
return string.IsNullOrWhiteSpace(m.Name) ? "(no name)" : m.Name.Trim();
return m?.Deleted != false ? "(unowned)" : m.Name.Trim().IsNullOrDefault("(no name)");
}
private string GetDateTime(DateTime val) => val == DateTime.MinValue ? "" : val.ToString("yyyy'-'MM'-'dd HH':'mm':'ss");

View file

@ -1,3 +1,4 @@
using System;
using Server.Items;
using Server.Network;
@ -12,10 +13,7 @@ namespace Server.Gumps
{
int totalGold = from.TotalGold;
if (offer > totalGold)
offer = totalGold;
else if (offer < 0)
offer = 0;
offer = Math.Clamp(offer, 0, totalGold);
m_From = from;
m_Offer = offer;
@ -82,10 +80,7 @@ namespace Server.Gumps
{
int totalGold = m_From.TotalGold;
if (m_Offer > totalGold)
m_Offer = totalGold;
else if (m_Offer < 0)
m_Offer = 0;
m_Offer = Math.Clamp(m_Offer, 0, totalGold);
if (m_From.TithingPoints + m_Offer > 100000) // TODO: What's the maximum?
m_Offer = 100000 - m_From.TithingPoints;

View file

@ -110,7 +110,7 @@ namespace Server.Gumps
public static List<Mobile> BuildList(Mobile owner, string rawFilter)
{
string filter = string.IsNullOrWhiteSpace(rawFilter) ? null : rawFilter.Trim().ToLower();
string filter = rawFilter.Trim().ToLower().IsNullOrDefault(null);
List<Mobile> list = new List<Mobile>();
List<NetState> states = TcpServer.Instances;
@ -137,12 +137,7 @@ namespace Server.Gumps
{
m_Page = page;
int count = m_Mobiles.Count - page * EntryCount;
if (count < 0)
count = 0;
else if (count > EntryCount)
count = EntryCount;
int count = Math.Clamp(m_Mobiles.Count - page * EntryCount, 0, EntryCount);
int totalHeight = OffsetSize + (EntryHeight + OffsetSize) * (count + 1);

View file

@ -154,18 +154,14 @@ namespace Server.Engines.Events
if (Utility.RandomDouble() > .10)
{
switch (Utility.Random(3))
{
case 0:
begged.Say(1076768);
break; /* Oooooh, aren't you cute! */
case 1:
begged.Say(1076779);
break; /* All right...This better not spoil your dinner! */
case 2:
begged.Say(1076778);
break; /* Here you go! Enjoy! */
}
begged.Say(
Utility.Random(3) switch
{
0 => 1076768, // Oooooh, aren't you cute!
1 => 1076779, // All right...This better not spoil your dinner!
_ => 1076778 // Here you go! Enjoy!
}
);
if (Utility.RandomDouble() <= .01 && from.Skills.Begging.Value >= 100)
{

View file

@ -211,17 +211,20 @@ namespace Server.Engines.Events
public override void GenerateLoot()
{
switch (Utility.Random(10))
{
case 0: PackItem(new LeftArm()); break;
case 1: PackItem(new RightArm()); break;
case 2: PackItem(new Torso()); break;
case 3: PackItem(new Bone()); break;
case 4: PackItem(new RibCage()); break;
case 5:
if (m_DeadPlayer?.Deleted == false) PackItem(new PlayerBones(m_DeadPlayer.Name));
break;
}
var deadPlayerExists = m_DeadPlayer?.Deleted == false;
PackItem(
Utility.Random(deadPlayerExists ? 8 : 10) switch
{
0 => new LeftArm(),
1 => new RightArm(),
2 => new Torso(),
3 => new Bone(),
4 => new RibCage(),
9 => deadPlayerExists ? new PlayerBones(m_DeadPlayer.Name) : null,
_ => null // 5-8, 10 (50%)
}
);
AddLoot(LootPack.Meager);
}
@ -237,10 +240,8 @@ namespace Server.Engines.Events
public override void OnDelete()
{
if (HalloweenHauntings.ReAnimated != null)
if (m_DeadPlayer?.Deleted == false)
if (HalloweenHauntings.ReAnimated.ContainsKey(m_DeadPlayer))
HalloweenHauntings.ReAnimated.Remove(m_DeadPlayer);
if (m_DeadPlayer?.Deleted == false)
HalloweenHauntings.ReAnimated?.Remove(m_DeadPlayer);
}
public override void Serialize(IGenericWriter writer)

View file

@ -606,12 +606,7 @@ namespace Server.Items
get => m_Quantity;
set
{
if (value < 0)
value = 0;
else if (value > MaxQuantity)
value = MaxQuantity;
m_Quantity = value;
m_Quantity = Math.Clamp(value, 0, MaxQuantity);
InvalidateProperties();
@ -854,10 +849,7 @@ namespace Server.Items
_ => 0
};
from.BAC += bac;
if (from.BAC > 60)
from.BAC = 60;
from.BAC = Math.Min(from.BAC + bac, 60);
CheckHeaveTimer(from);
}
@ -1053,7 +1045,6 @@ namespace Server.Items
public static void CheckHeaveTimer(Mobile from)
{
Timer t;
if (from.BAC > 0 && from.Map != Map.Internal && !from.Deleted)
{
if (m_Table.ContainsKey(from))
@ -1062,12 +1053,12 @@ namespace Server.Items
if (from.BAC > 60)
from.BAC = 60;
t = new HeaveTimer(from);
Timer t = new HeaveTimer(from);
t.Start();
m_Table[from] = t;
}
else if (m_Table.TryGetValue(from, out t))
else if (m_Table.TryGetValue(from, out var t))
{
t.Stop();
m_Table.Remove(from);

View file

@ -23,9 +23,9 @@ namespace Server.Items
{
Delete();
var i = Utility.Random(from.BAC >= 5 ? 6 : 5) switch
Item i = Utility.Random(from.BAC >= 5 ? 6 : 5) switch
{
0 => (Item)new OrigamiButterfly(),
0 => new OrigamiButterfly(),
1 => new OrigamiSwan(),
2 => new OrigamiFrog(),
3 => new OrigamiShape(),

View file

@ -565,10 +565,7 @@ namespace Server.Items
AddHtml(255, 180, 150, 20, message.Time.ToString("yyyy-MM-dd HH:mm:ss"));
Mobile poster = message.Poster;
string name = poster?.Name;
if (name == null || (name = name.Trim()).Length == 0)
name = "Someone";
string name = poster?.Name?.Trim().IsNullOrDefault("Someone");
AddHtml(255, 200, 150, 20, name);

View file

@ -168,13 +168,7 @@ namespace Server.Items
{
HouseSign sign = m_House.Sign;
if (sign != null)
m_Description = sign.Name;
else
m_Description = null;
if (m_Description == null || (m_Description = m_Description.Trim()).Length == 0)
m_Description = "an unnamed house";
m_Description = sign?.Name?.Trim().IsNullOrDefault("an unnamed house");
setDesc = true;
@ -233,10 +227,7 @@ namespace Server.Items
{
if (m_Marked)
{
string desc;
if ((desc = m_Description) == null || (desc = desc.Trim()).Length == 0)
desc = "an unknown location";
string desc = m_Description?.Trim().IsNullOrDefault("an unknown location");
if (m_TargetMap == Map.Tokuno)
LabelTo(from, House != null ? 1063260 : 1063259,

View file

@ -23,13 +23,7 @@ namespace Server.Items
public int Fruits
{
get => m_Fruits;
set
{
if (value < 0)
m_Fruits = 0;
else
m_Fruits = value;
}
set => m_Fruits = Math.Max(value, 0);
}
public override void OnComponentUsed(AddonComponent c, Mobile from)
@ -209,4 +203,4 @@ namespace Server.Items
int version = reader.ReadEncodedInt();
}
}
}
}

View file

@ -830,12 +830,7 @@ namespace Server.Misc
private static void FixStat(ref int stat, int diff, int max)
{
stat += diff;
if (stat < 0)
stat = 0;
else if (stat > max)
stat = max;
stat = Math.Clamp(stat + diff, 0, max);
}
private static void SetStats(Mobile m, NetState state, int str, int dex, int intel)

View file

@ -163,12 +163,12 @@ namespace Server.Misc
using (StreamWriter op = new StreamWriter(filePath))
{
Version ver = Core.Assembly.GetName().Version;
Version ver = Core.Assembly.GetName().Version ?? new Version("0.0.0.0");
op.WriteLine("Server Crash Report");
op.WriteLine("===================");
op.WriteLine();
op.WriteLine("ModernUO Version {0}.{1}, Build {2}.{3}", ver.Major, ver.Minor, ver.Build, ver.Revision);
op.WriteLine($"ModernUO Version {ver.Major}.{ver.Minor}, Build {ver.Build}.{ver.Revision}");
op.WriteLine("Operating System: {0}", Environment.OSVersion);
op.WriteLine(".NET Framework: {0}", Environment.Version);
op.WriteLine("Time: {0}", DateTime.UtcNow);

View file

@ -607,16 +607,11 @@ namespace Server
public void BeginCall(MethodInfo method)
{
Type type;
if ((method.CallingConvention & CallingConventions.HasThis) != 0)
type = m_Stack.Peek();
else
type = method.DeclaringType;
var type = (method.CallingConvention & CallingConventions.HasThis) != 0 ? m_Stack.Peek() : method.DeclaringType;
m_Calls.Push(new CallInfo(type, method));
if (type.IsValueType)
if (type!.IsValueType)
{
LocalBuilder temp = AcquireTemp(type);

View file

@ -21,11 +21,7 @@ namespace Server.Misc
{
int sideA, sideB;
if (angle < 0)
angle = 0;
if (angle > 90)
angle = 90;
angle = Math.Clamp(angle, 0, 90);
sideA = (int)Math.Round(radius * Math.Sin(DegreesToRadians(angle)));
sideB = (int)Math.Round(radius * Math.Cos(DegreesToRadians(angle)));
@ -218,4 +214,4 @@ namespace Server.Misc
public int Quadrant { get; }
}
}
}
}

View file

@ -21,7 +21,7 @@ namespace Server
int val = 0;
if (body >= 0 && body < m_Table.Length)
if (body >= 0 && body < m_Table!.Length)
val = m_Table[body];
if (val == 0)

View file

@ -114,20 +114,14 @@ namespace Server.Misc
if (m.Fame >= MaxFame)
return;
offset -= m.Fame / 100;
if (offset < 0)
offset = 0;
offset = Math.Max(offset - m.Fame / 100, 0);
}
else if (offset < 0)
{
if (m.Fame <= MinFame)
return;
offset -= m.Fame / 100;
if (offset > 0)
offset = 0;
offset = Math.Min(offset - m.Fame / 100, 0);
}
if (m.Fame + offset > MaxFame)
@ -170,20 +164,14 @@ namespace Server.Misc
if (m.Karma >= MaxKarma)
return;
offset -= m.Karma / 100;
if (offset < 0)
offset = 0;
offset = Math.Max(offset - m.Karma / 100, 0);
}
else if (offset < 0)
{
if (m.Karma <= MinKarma)
return;
offset -= m.Karma / 100;
if (offset > 0)
offset = 0;
offset = Math.Min(offset - m.Karma / 100, 0);
}
if (m.Karma + offset > MaxKarma)

View file

@ -2731,10 +2731,7 @@ namespace Server.Mobiles
m_Owner.DetectHidden();
// Not exactly OSI style, approximation.
int delay = 15000 / m_Owner.m_Mobile.Int;
if (delay > 60)
delay = 60;
int delay = Math.Min(15000 / m_Owner.m_Mobile.Int, 60);
int min = delay * (9 / 10); // 13s at 1000 int, 33s at 400 int, 54s at <250 int
int max = delay * (10 / 9); // 16s at 1000 int, 41s at 400 int, 66s at <250 int

View file

@ -203,8 +203,8 @@ namespace Server.Mobiles
public void OnFailedMove()
{
if (!m_Mobile.DisallowAllMoves && (SmartAI
? Utility.Random(4) == 0
: ScaleBySkill(TeleportChance, SkillName.Magery) > Utility.RandomDouble()))
? Utility.Random(4) == 0
: ScaleBySkill(TeleportChance, SkillName.Magery) > Utility.RandomDouble()))
{
m_Mobile.Target?.Cancel(m_Mobile, TargetCancelType.Canceled);
@ -275,16 +275,11 @@ namespace Server.Mobiles
public virtual Spell GetRandomDamageSpellMage()
{
int maxCircle = (int)((m_Mobile.Skills.Magery.Value + 20.0) / (100.0 / 7.0));
if (maxCircle < 1)
maxCircle = 1;
else if (maxCircle > 8)
maxCircle = 8;
int maxCircle = Math.Clamp((int)((m_Mobile.Skills.Magery.Value + 20.0) / (100.0 / 7.0)), 1, 8);
return Utility.Random(maxCircle * 2) switch
{
0 => (Spell)new MagicArrowSpell(m_Mobile),
0 => new MagicArrowSpell(m_Mobile),
1 => new MagicArrowSpell(m_Mobile),
2 => new HarmSpell(m_Mobile),
3 => new HarmSpell(m_Mobile),
@ -328,7 +323,7 @@ namespace Server.Mobiles
return Utility.Random(3) switch
{
0 => (Spell)new WeakenSpell(m_Mobile),
0 => new WeakenSpell(m_Mobile),
1 => new ClumsySpell(m_Mobile),
_ => new FeeblemindSpell(m_Mobile)
};
@ -664,7 +659,7 @@ namespace Server.Mobiles
{
// We are low on health, should we flee?
bool flee = false;
bool flee;
if (m_Mobile.Hits < c.Hits)
{
@ -692,7 +687,7 @@ namespace Server.Mobiles
{
// We are ready to cast a spell
Spell spell = null;
Spell spell;
Mobile toDispel = FindDispelTarget(true);
if (m_Mobile.Poisoned) // Top cast priority is cure
@ -800,7 +795,7 @@ namespace Server.Mobiles
public override bool DoActionFlee()
{
Mobile c = m_Mobile.Combatant;
// Mobile c = m_Mobile.Combatant;
if ((m_Mobile.Mana > 20 || m_Mobile.Mana == m_Mobile.ManaMax) && m_Mobile.Hits > m_Mobile.HitsMax / 2)
{
@ -1014,74 +1009,64 @@ namespace Server.Mobiles
{
targ.Invoke(m_Mobile, m_RevealTarget);
}
else if (isTeleport && toTarget != null)
else
{
Map map = m_Mobile.Map;
if (map == null)
if (map != null && isTeleport && toTarget != null)
{
targ.Cancel(m_Mobile, TargetCancelType.Canceled);
return true;
}
int teleRange = targ.Range >= 0 ? targ.Range : Core.ML ? 11 : 12;
int px, py;
int px, py;
if (teleportAway)
{
int rx = m_Mobile.X - toTarget.X;
int ry = m_Mobile.Y - toTarget.Y;
double d = m_Mobile.GetDistanceToSqrt(toTarget);
px = toTarget.X + (int)(rx * (10 / d));
py = toTarget.Y + (int)(ry * (10 / d));
}
else
{
px = toTarget.X;
py = toTarget.Y;
}
for (int i = 0; i < m_Offsets.Length; i += 2)
{
int x = m_Offsets[i], y = m_Offsets[i + 1];
Point3D p = new Point3D(px + x, py + y, 0);
LandTarget lt = new LandTarget(p, map);
if ((targ.Range == -1 || m_Mobile.InRange(p, targ.Range)) && m_Mobile.InLOS(lt) &&
map.CanSpawnMobile(px + x, py + y, lt.Z) && !SpellHelper.CheckMulti(p, map))
if (teleportAway)
{
targ.Invoke(m_Mobile, lt);
return true;
int rx = m_Mobile.X - toTarget.X;
int ry = m_Mobile.Y - toTarget.Y;
double d = m_Mobile.GetDistanceToSqrt(toTarget);
px = toTarget.X + (int)(rx * (10 / d));
py = toTarget.Y + (int)(ry * (10 / d));
}
else
{
px = toTarget.X;
py = toTarget.Y;
}
for (int i = 0; i < m_Offsets.Length; i += 2)
{
int x = m_Offsets[i], y = m_Offsets[i + 1];
Point3D p = new Point3D(px + x, py + y, 0);
LandTarget lt = new LandTarget(p, map);
if ((targ.Range == -1 || m_Mobile.InRange(p, targ.Range)) && m_Mobile.InLOS(lt) &&
map.CanSpawnMobile(px + x, py + y, lt.Z) && !SpellHelper.CheckMulti(p, map))
{
targ.Invoke(m_Mobile, lt);
return true;
}
}
for (int i = 0; i < 10; ++i)
{
Point3D randomPoint = new Point3D(m_Mobile.X - teleRange + Utility.Random(teleRange * 2 + 1),
m_Mobile.Y - teleRange + Utility.Random(teleRange * 2 + 1), 0);
LandTarget lt = new LandTarget(randomPoint, map);
if (m_Mobile.InLOS(lt) && map.CanSpawnMobile(lt.X, lt.Y, lt.Z) &&
!SpellHelper.CheckMulti(randomPoint, map))
{
targ.Invoke(m_Mobile, new LandTarget(randomPoint, map));
return true;
}
}
}
int teleRange = targ.Range;
if (teleRange < 0)
teleRange = Core.ML ? 11 : 12;
for (int i = 0; i < 10; ++i)
{
Point3D randomPoint = new Point3D(m_Mobile.X - teleRange + Utility.Random(teleRange * 2 + 1),
m_Mobile.Y - teleRange + Utility.Random(teleRange * 2 + 1), 0);
LandTarget lt = new LandTarget(randomPoint, map);
if (m_Mobile.InLOS(lt) && map.CanSpawnMobile(lt.X, lt.Y, lt.Z) &&
!SpellHelper.CheckMulti(randomPoint, map))
{
targ.Invoke(m_Mobile, new LandTarget(randomPoint, map));
return true;
}
}
targ.Cancel(m_Mobile, TargetCancelType.Canceled);
}
else
{
targ.Cancel(m_Mobile, TargetCancelType.Canceled);
}

View file

@ -40,39 +40,18 @@ namespace Server.Mobiles
PackItem(Loot.RandomArmorOrShieldOrWeapon());
switch (Utility.Random(10))
{
case 0:
PackItem(new LeftArm());
break;
case 1:
PackItem(new RightArm());
break;
case 2:
PackItem(new Torso());
break;
case 3:
PackItem(new Bone());
break;
case 4:
PackItem(new RibCage());
break;
case 5:
PackItem(new RibCage());
break;
case 6:
PackItem(new BonePile());
break;
case 7:
PackItem(new BonePile());
break;
case 8:
PackItem(new BonePile());
break;
case 9:
PackItem(new BonePile());
break;
}
PackItem(
Utility.Random(10) switch
{
0 => new LeftArm(),
1 => new RightArm(),
2 => new Torso(),
3 => new Bone(),
4 => new RibCage(),
5 => new RibCage(),
_ => new BonePile() // 6-9
}
);
if (Utility.RandomDouble() < 0.025)
PackItem(new GlacialStaff());
@ -113,4 +92,4 @@ namespace Server.Mobiles
BaseSoundID = 219;
}
}
}
}

View file

@ -445,67 +445,19 @@ namespace Server.Mobiles
}
[CommandProperty(AccessLevel.GameMaster)]
public override int HitsMax
{
get
{
if (HitsMaxSeed <= 0)
return Str;
int value = HitsMaxSeed + GetStatOffset(StatType.Str);
if (value < 1)
value = 1;
else if (value > 65000)
value = 65000;
return value;
}
}
public override int HitsMax => HitsMaxSeed <= 0 ? Str : Math.Clamp(HitsMaxSeed + GetStatOffset(StatType.Str), 1, 65000);
[CommandProperty(AccessLevel.GameMaster)]
public int HitsMaxSeed { get; set; } = -1;
[CommandProperty(AccessLevel.GameMaster)]
public override int StamMax
{
get
{
if (StamMaxSeed <= 0)
return Dex;
int value = StamMaxSeed + GetStatOffset(StatType.Dex);
if (value < 1)
value = 1;
else if (value > 65000)
value = 65000;
return value;
}
}
public override int StamMax => StamMaxSeed <= 0 ? Dex : Math.Clamp(StamMaxSeed + GetStatOffset(StatType.Dex), 1, 65000);
[CommandProperty(AccessLevel.GameMaster)]
public int StamMaxSeed { get; set; } = -1;
[CommandProperty(AccessLevel.GameMaster)]
public override int ManaMax
{
get
{
if (ManaMaxSeed <= 0)
return Int;
int value = ManaMaxSeed + GetStatOffset(StatType.Int);
if (value < 1)
value = 1;
else if (value > 65000)
value = 65000;
return value;
}
}
public override int ManaMax => ManaMaxSeed <= 0 ? Int : Math.Clamp((ManaMaxSeed + GetStatOffset(StatType.Int)), 1, 65000);
[CommandProperty(AccessLevel.GameMaster)]
public int ManaMaxSeed { get; set; } = -1;
@ -4764,9 +4716,11 @@ namespace Server.Mobiles
public void PackItem(Item item)
{
if (Summoned || item == null)
if (item == null) return;
if (Summoned)
{
item?.Delete();
item.Delete();
return;
}

View file

@ -24,34 +24,18 @@ namespace Server.Mobiles
Body = 0x191;
Name = NameList.RandomName("female");
switch (Utility.Random(2))
{
case 0:
AddItem(new LeatherSkirt());
break;
case 1:
AddItem(new LeatherShorts());
break;
}
AddItem(Utility.RandomBool() ? (Item)new LeatherSkirt() : new LeatherShorts());
switch (Utility.Random(5))
{
case 0:
AddItem(new FemaleLeatherChest());
break;
case 1:
AddItem(new FemaleStuddedChest());
break;
case 2:
AddItem(new LeatherBustierArms());
break;
case 3:
AddItem(new StuddedBustierArms());
break;
case 4:
AddItem(new FemalePlateChest());
break;
}
AddItem(
Utility.Random(5) switch
{
0 => new FemaleLeatherChest(),
1 => new FemaleStuddedChest(),
2 => new LeatherBustierArms(),
3 => new StuddedBustierArms(),
_ => new FemalePlateChest(), // 4
}
);
}
else
{
@ -62,18 +46,14 @@ namespace Server.Mobiles
AddItem(new PlateArms());
AddItem(new PlateLegs());
switch (Utility.Random(3))
{
case 0:
AddItem(new Doublet(Utility.RandomNondyedHue()));
break;
case 1:
AddItem(new Tunic(Utility.RandomNondyedHue()));
break;
case 2:
AddItem(new BodySash(Utility.RandomNondyedHue()));
break;
}
AddItem(
Utility.Random(3) switch
{
0 => new Doublet(Utility.RandomNondyedHue()),
1 => new Tunic(Utility.RandomNondyedHue()),
_ => new BodySash(Utility.RandomNondyedHue()) // 3
}
);
}
Utility.AssignRandomHair(this);

View file

@ -44,30 +44,18 @@ namespace Server.Mobiles
AddItem(new FancyShirt());
AddItem(new Bandana());
switch (Utility.Random(7))
{
case 0:
AddItem(new Longsword());
break;
case 1:
AddItem(new Cutlass());
break;
case 2:
AddItem(new Broadsword());
break;
case 3:
AddItem(new Axe());
break;
case 4:
AddItem(new Club());
break;
case 5:
AddItem(new Dagger());
break;
case 6:
AddItem(new Spear());
break;
}
AddItem(
Utility.Random(7) switch
{
0 => new Longsword(),
1 => new Cutlass(),
2 => new Broadsword(),
3 => new Axe(),
4 => new Club(),
5 => new Dagger(),
_ => new Spear() // 6
}
);
Utility.AssignRandomHair(this);
}
@ -107,4 +95,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -51,48 +51,30 @@ namespace Server.Mobiles
Fame = 1000;
Karma = -1000;
switch (Utility.Random(4))
{
case 0:
AddItem(new Boots());
break;
case 1:
AddItem(new ThighBoots());
break;
case 2:
AddItem(new Sandals());
break;
case 3:
AddItem(new Shoes());
break;
}
AddItem(
Utility.Random(4) switch
{
0 => new Boots(),
1 => new ThighBoots(),
2 => new Sandals(),
_ => new Shoes() // 3
}
);
AddItem(new Shirt(Utility.RandomNondyedHue()));
switch (Utility.Random(7))
{
case 0:
AddItem(new Longsword());
break;
case 1:
AddItem(new Cutlass());
break;
case 2:
AddItem(new Broadsword());
break;
case 3:
AddItem(new Axe());
break;
case 4:
AddItem(new Club());
break;
case 5:
AddItem(new Dagger());
break;
case 6:
AddItem(new Spear());
break;
}
AddItem(
Utility.Random(7) switch
{
0 => new Longsword(),
1 => new Cutlass(),
2 => new Broadsword(),
3 => new Axe(),
4 => new Club(),
5 => new Dagger(),
_ => new Spear() // 6
}
);
Utility.AssignRandomHair(this);
}

View file

@ -37,42 +37,29 @@ namespace Server.Mobiles
VirtualArmor = 28;
switch (Utility.Random(20))
{
case 0:
PackItem(new Scimitar());
break;
case 1:
PackItem(new Katana());
break;
case 2:
PackItem(new WarMace());
break;
case 3:
PackItem(new WarHammer());
break;
case 4:
PackItem(new Kryss());
break;
case 5:
PackItem(new Pitchfork());
break;
}
PackItem(
Utility.Random(20) switch
{
0 => new Scimitar(),
1 => new Katana(),
2 => new WarMace(),
3 => new WarHammer(),
4 => new Kryss(),
5 => new Pitchfork(),
_ => null // 6-19
}
);
PackItem(new ThighBoots());
switch (Utility.Random(3))
{
case 0:
PackItem(new Ribs());
break;
case 1:
PackItem(new Shaft());
break;
case 2:
PackItem(new Candle());
break;
}
PackItem(
Utility.Random(3) switch
{
0 => new Ribs(),
1 => new Shaft(),
_ => new Candle() // 2
}
);
if (Utility.RandomDouble() < 0.2)
PackItem(new BolaBall());
@ -131,4 +118,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -38,30 +38,18 @@ namespace Server.Mobiles
VirtualArmor = 34;
// TODO: Skull?
switch (Utility.Random(7))
{
case 0:
PackItem(new Arrow());
break;
case 1:
PackItem(new Lockpick());
break;
case 2:
PackItem(new Shaft());
break;
case 3:
PackItem(new Ribs());
break;
case 4:
PackItem(new Bandage());
break;
case 5:
PackItem(new BeverageBottle(BeverageType.Wine));
break;
case 6:
PackItem(new Jug(BeverageType.Cider));
break;
}
PackItem(
Utility.Random(7) switch
{
0 => new Arrow(),
1 => new Lockpick(),
2 => new Shaft(),
3 => new Ribs(),
4 => new Bandage(),
5 => new BeverageBottle(BeverageType.Wine),
_ => new Jug(BeverageType.Cider) // 6
}
);
if (Core.AOS)
PackItem(Loot.RandomNecromancyReagent());
@ -128,4 +116,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -35,24 +35,16 @@ namespace Server.Mobiles
Fame = 2500;
Karma = -2500;
switch (Utility.Random(5))
{
case 0:
PackItem(new Lockpick());
break;
case 1:
PackItem(new MortarPestle());
break;
case 2:
PackItem(new Bottle());
break;
case 3:
PackItem(new RawRibs());
break;
case 4:
PackItem(new Shovel());
break;
}
PackItem(
Utility.Random(5) switch
{
0 => new Lockpick(),
1 => new MortarPestle(),
2 => new Bottle(),
3 => new RawRibs(),
_ => new Shovel() // 4
}
);
PackItem(new RingmailChest());
@ -120,4 +112,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -10,18 +10,9 @@ namespace Server.Mobiles
Body = 637;
Hue = 0x8026;
Buckler buckler = new Buckler();
ChainCoif coif = new ChainCoif();
PlateGloves gloves = new PlateGloves();
buckler.Hue = 0x835;
buckler.Movable = false;
coif.Hue = 0x835;
gloves.Hue = 0x835;
AddItem(buckler);
AddItem(coif);
AddItem(gloves);
AddItem(new Buckler{Movable = false, Hue = 0x835});
AddItem(new ChainCoif{Hue = 0x835});
AddItem(new PlateGloves{Hue = 0x835});
SetStr(101, 110);
SetDex(101, 110);
@ -88,4 +79,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -33,39 +33,18 @@ namespace Server.Mobiles
VirtualArmor = 18;
switch (Utility.Random(10))
{
case 0:
PackItem(new LeftArm());
break;
case 1:
PackItem(new RightArm());
break;
case 2:
PackItem(new Torso());
break;
case 3:
PackItem(new Bone());
break;
case 4:
PackItem(new RibCage());
break;
case 5:
PackItem(new RibCage());
break;
case 6:
PackItem(new BonePile());
break;
case 7:
PackItem(new BonePile());
break;
case 8:
PackItem(new BonePile());
break;
case 9:
PackItem(new BonePile());
break;
}
PackItem(
Utility.Random(10) switch
{
0 => new LeftArm(),
1 => new RightArm(),
2 => new Torso(),
3 => new Bone(),
4 => new RibCage(),
5 => new RibCage(),
_ => new BonePile() // 6-9
}
);
}
public Zombie(Serial serial) : base(serial)
@ -97,4 +76,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -47,76 +47,42 @@ namespace Server.Mobiles
2 => CraftResource.BlueScales,
3 => CraftResource.YellowScales,
4 => CraftResource.GreenScales,
5 => CraftResource.WhiteScales,
_ => CraftResource.None
_ => CraftResource.WhiteScales // 5
};
var melee = Utility.Random(3) switch
{
0 => (BaseWeapon)new Kryss(),
1 => new Broadsword(),
2 => new Katana(),
_ => null
_ => new Katana() // 2
};
melee.Movable = false;
AddItem(melee);
DragonHelm helm = new DragonHelm();
helm.Resource = res;
helm.Movable = false;
AddItem(helm);
DragonChest chest = new DragonChest();
chest.Resource = res;
chest.Movable = false;
AddItem(chest);
DragonArms arms = new DragonArms();
arms.Resource = res;
arms.Movable = false;
AddItem(arms);
DragonGloves gloves = new DragonGloves();
gloves.Resource = res;
gloves.Movable = false;
AddItem(gloves);
DragonLegs legs = new DragonLegs();
legs.Resource = res;
legs.Movable = false;
AddItem(legs);
ChaosShield shield = new ChaosShield();
shield.Movable = false;
AddItem(shield);
AddItem(new DragonHelm {Resource = res, Movable = false});
AddItem(new DragonChest {Resource = res, Movable = false});
AddItem(new DragonArms {Resource = res, Movable = false});
AddItem(new DragonGloves {Resource = res, Movable = false});
AddItem(new DragonLegs {Resource = res, Movable = false});
AddItem(new ChaosShield {Movable = false});
AddItem(new Shirt());
AddItem(new Boots());
int amount = Utility.RandomMinMax(1, 3);
switch (res)
{
case CraftResource.BlackScales:
AddItem(new BlackScales(amount));
break;
case CraftResource.RedScales:
AddItem(new RedScales(amount));
break;
case CraftResource.BlueScales:
AddItem(new BlueScales(amount));
break;
case CraftResource.YellowScales:
AddItem(new YellowScales(amount));
break;
case CraftResource.GreenScales:
AddItem(new GreenScales(amount));
break;
case CraftResource.WhiteScales:
AddItem(new WhiteScales(amount));
break;
}
AddItem(
res switch
{
CraftResource.BlackScales => new BlackScales(amount),
CraftResource.RedScales => new RedScales(amount),
CraftResource.BlueScales => new BlueScales(amount),
CraftResource.YellowScales => new YellowScales(amount),
CraftResource.GreenScales => new GreenScales(amount),
_ => new WhiteScales(amount) // CraftResource.WhiteScales
}
);
new SwampDragon().Rider = this;
}
@ -178,4 +144,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -39,7 +39,7 @@ namespace Server.Mobiles
Fame = 8000;
Karma = -8000;
CraftResource res = CraftResource.None;
CraftResource res;
res = Utility.Random(6) switch
{
@ -48,76 +48,42 @@ namespace Server.Mobiles
2 => CraftResource.BlueScales,
3 => CraftResource.YellowScales,
4 => CraftResource.GreenScales,
5 => CraftResource.WhiteScales,
_ => res
_ => CraftResource.WhiteScales // 5
};
var melee = Utility.Random(3) switch
{
0 => (BaseWeapon)new Kryss(),
1 => new Broadsword(),
2 => new Katana(),
_ => null
_ => new Katana() // 2
};
melee.Movable = false;
AddItem(melee);
DragonChest Tunic = new DragonChest();
Tunic.Resource = res;
Tunic.Movable = false;
AddItem(Tunic);
DragonLegs Legs = new DragonLegs();
Legs.Resource = res;
Legs.Movable = false;
AddItem(Legs);
DragonArms Arms = new DragonArms();
Arms.Resource = res;
Arms.Movable = false;
AddItem(Arms);
DragonGloves Gloves = new DragonGloves();
Gloves.Resource = res;
Gloves.Movable = false;
AddItem(Gloves);
DragonHelm Helm = new DragonHelm();
Helm.Resource = res;
Helm.Movable = false;
AddItem(Helm);
ChaosShield shield = new ChaosShield();
shield.Movable = false;
AddItem(shield);
AddItem(new DragonChest {Resource = res, Movable = false});
AddItem(new DragonLegs {Resource = res, Movable = false});
AddItem(new DragonArms {Resource = res, Movable = false});
AddItem(new DragonGloves {Resource = res, Movable = false});
AddItem(new DragonHelm {Resource = res, Movable = false});
AddItem(new ChaosShield {Movable = false});
AddItem(new Boots(0x455));
AddItem(new Shirt(Utility.RandomMetalHue()));
int amount = Utility.RandomMinMax(1, 3);
switch (res)
{
case CraftResource.BlackScales:
AddItem(new BlackScales(amount));
break;
case CraftResource.RedScales:
AddItem(new RedScales(amount));
break;
case CraftResource.BlueScales:
AddItem(new BlueScales(amount));
break;
case CraftResource.YellowScales:
AddItem(new YellowScales(amount));
break;
case CraftResource.GreenScales:
AddItem(new GreenScales(amount));
break;
case CraftResource.WhiteScales:
AddItem(new WhiteScales(amount));
break;
}
AddItem(
res switch
{
CraftResource.BlackScales => new BlackScales(amount),
CraftResource.RedScales => new RedScales(amount),
CraftResource.BlueScales => new BlueScales(amount),
CraftResource.YellowScales => new YellowScales(amount),
CraftResource.GreenScales => new GreenScales(amount),
_ => new WhiteScales(amount) // CraftResource.WhiteScales
}
);
res = Utility.Random(9) switch
{
@ -129,13 +95,10 @@ namespace Server.Mobiles
5 => CraftResource.Agapite,
6 => CraftResource.Verite,
7 => CraftResource.Valorite,
8 => CraftResource.Iron,
_ => res
_ => CraftResource.Iron // 8
};
SwampDragon mt = new SwampDragon();
mt.HasBarding = true;
mt.BardingResource = res;
SwampDragon mt = new SwampDragon {HasBarding = true, BardingResource = res};
mt.BardingHP = mt.BardingMaxHP;
mt.Rider = this;
}

View file

@ -45,27 +45,17 @@ namespace Server.Mobiles
pack.DropItem(new Bolt(Utility.RandomMinMax(10, 20)));
pack.DropItem(new Bolt(Utility.RandomMinMax(10, 20)));
switch (Utility.Random(6))
{
case 0:
pack.DropItem(new Broadsword());
break;
case 1:
pack.DropItem(new Cutlass());
break;
case 2:
pack.DropItem(new Katana());
break;
case 3:
pack.DropItem(new Longsword());
break;
case 4:
pack.DropItem(new Scimitar());
break;
case 5:
pack.DropItem(new VikingSword());
break;
}
AddItem(
Utility.Random(6) switch
{
0 => new Longsword(),
1 => new Cutlass(),
2 => new Broadsword(),
3 => new Katana(),
4 => new Scimitar(),
_ => new VikingSword() // 5
}
);
Container bag = new Bag();
@ -164,4 +154,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -98,27 +98,17 @@ namespace Server.Mobiles
public virtual void PackResources(int amount)
{
for (int i = 0; i < amount; i++)
switch (Utility.Random(6))
{
case 0:
PackItem(new Blight());
break;
case 1:
PackItem(new Scourge());
break;
case 2:
PackItem(new Taint());
break;
case 3:
PackItem(new Putrefication());
break;
case 4:
PackItem(new Corruption());
break;
case 5:
PackItem(new Muculent());
break;
}
PackItem(
Utility.Random(6) switch
{
0 => new Blight(),
1 => new Scourge(),
2 => new Taint(),
3 => new Putrefication(),
4 => new Corruption(),
_ => new Muculent() // 5
}
);
}
public virtual void PackItems(Item item, int amount)

View file

@ -89,27 +89,17 @@ namespace Server.Mobiles
public virtual void PackResources(int amount)
{
for (int i = 0; i < amount; i++)
switch (Utility.Random(6))
{
case 0:
PackItem(new Blight());
break;
case 1:
PackItem(new Scourge());
break;
case 2:
PackItem(new Taint());
break;
case 3:
PackItem(new Putrefication());
break;
case 4:
PackItem(new Corruption());
break;
case 5:
PackItem(new Muculent());
break;
}
PackItem(
Utility.Random(6) switch
{
0 => new Blight(),
1 => new Scourge(),
2 => new Taint(),
3 => new Putrefication(),
4 => new Corruption(),
_ => new Muculent() // 5
}
);
}
public virtual void PackTalismans(int amount)
@ -129,18 +119,14 @@ namespace Server.Mobiles
c.DropItem(new MalletAndChisel());
switch (Utility.Random(3))
{
case 0:
c.DropItem(new MinotaurHedge());
break;
case 1:
c.DropItem(new BonePile());
break;
case 2:
c.DropItem(new LightYarn());
break;
}
c.DropItem(
Utility.Random(3) switch
{
0 => new MinotaurHedge(),
1 => new LightYarn(),
_ => new BonePile() // 2
}
);
if (Utility.RandomBool())
c.DropItem(new TormentedChains());
@ -179,8 +165,8 @@ namespace Server.Mobiles
foreach (Mobile m in eable)
{
if (m == this || !CanBeHarmful(m) || m.Deleted || (!m.Player &&
!(m is BaseCreature creature && (creature.Controlled || creature.Summoned || creature.Team != Team))))
if (m == this || !CanBeHarmful(m) || m.Deleted || !m.Player &&
!(m is BaseCreature creature && (creature.Controlled || creature.Summoned || creature.Team != Team)))
continue;
if (m is PlayerMobile pm && pm.Mounted)

View file

@ -38,39 +38,18 @@ namespace Server.Mobiles
AddItem(new LightSource());
switch (Utility.Random(10))
{
case 0:
PackItem(new LeftArm());
break;
case 1:
PackItem(new RightArm());
break;
case 2:
PackItem(new Torso());
break;
case 3:
PackItem(new Bone());
break;
case 4:
PackItem(new RibCage());
break;
case 5:
PackItem(new RibCage());
break;
case 6:
PackItem(new BonePile());
break;
case 7:
PackItem(new BonePile());
break;
case 8:
PackItem(new BonePile());
break;
case 9:
PackItem(new BonePile());
break;
}
PackItem(
Utility.Random(10) switch
{
0 => new LeftArm(),
1 => new RightArm(),
2 => new Torso(),
3 => new Bone(),
4 => new RibCage(),
5 => new RibCage(),
_ => new BonePile() // 6-9
}
);
}
public ShadowWisp(Serial serial) : base(serial)
@ -94,4 +73,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -61,33 +61,19 @@ namespace Server.Mobiles
if (Utility.RandomDouble() < 0.33)
AddItem(new SmokeBomb());
switch (Utility.Random(8))
{
case 0:
AddItem(new Tessen());
break;
case 1:
AddItem(new Wakizashi());
break;
case 2:
AddItem(new Nunchaku());
break;
case 3:
AddItem(new Daisho());
break;
case 4:
AddItem(new Sai());
break;
case 5:
AddItem(new Tekagi());
break;
case 6:
AddItem(new Kama());
break;
case 7:
AddItem(new Katana());
break;
}
AddItem(
Utility.Random(8) switch
{
0 => new Tessen(),
1 => new Wakizashi(),
2 => new Nunchaku(),
3 => new Daisho(),
4 => new Sai(),
5 => new Tekagi(),
6 => new Kama(),
_ => new Katana() // 7
}
);
Utility.AssignRandomHair(this);
}
@ -130,4 +116,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -39,39 +39,18 @@ namespace Server.Mobiles
Karma = -4000;
PackNecroReg(6, 8);
switch (Utility.Random(10))
{
case 0:
PackItem(new LeftArm());
break;
case 1:
PackItem(new RightArm());
break;
case 2:
PackItem(new Torso());
break;
case 3:
PackItem(new Bone());
break;
case 4:
PackItem(new RibCage());
break;
case 5:
PackItem(new RibCage());
break;
case 6:
PackItem(new BonePile());
break;
case 7:
PackItem(new BonePile());
break;
case 8:
PackItem(new BonePile());
break;
case 9:
PackItem(new BonePile());
break;
}
PackItem(
Utility.Random(10) switch
{
0 => new LeftArm(),
1 => new RightArm(),
2 => new Torso(),
3 => new Bone(),
4 => new RibCage(),
5 => new RibCage(),
_ => new BonePile() // 6-9
}
);
}
public RevenantLion(Serial serial) : base(serial)
@ -117,4 +96,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -45,39 +45,18 @@ namespace Server.Mobiles
if (Utility.RandomDouble() < .25)
PackItem(Seed.RandomBonsaiSeed());
switch (Utility.Random(10))
{
case 0:
PackItem(new LeftArm());
break;
case 1:
PackItem(new RightArm());
break;
case 2:
PackItem(new Torso());
break;
case 3:
PackItem(new Bone());
break;
case 4:
PackItem(new RibCage());
break;
case 5:
PackItem(new RibCage());
break;
case 6:
PackItem(new BonePile());
break;
case 7:
PackItem(new BonePile());
break;
case 8:
PackItem(new BonePile());
break;
case 9:
PackItem(new BonePile());
break;
}
PackItem(
Utility.Random(10) switch
{
0 => new LeftArm(),
1 => new RightArm(),
2 => new Torso(),
3 => new Bone(),
4 => new RibCage(),
5 => new RibCage(),
_ => new BonePile() // 6-9
}
);
Tamable = true;
ControlSlots = 3;

View file

@ -46,39 +46,18 @@ namespace Server.Mobiles
if (Core.ML && Utility.RandomDouble() < .33)
PackItem(Seed.RandomPeculiarSeed(1));
switch (Utility.Random(10))
{
case 0:
PackItem(new LeftArm());
break;
case 1:
PackItem(new RightArm());
break;
case 2:
PackItem(new Torso());
break;
case 3:
PackItem(new Bone());
break;
case 4:
PackItem(new RibCage());
break;
case 5:
PackItem(new RibCage());
break;
case 6:
PackItem(new BonePile());
break;
case 7:
PackItem(new BonePile());
break;
case 8:
PackItem(new BonePile());
break;
case 9:
PackItem(new BonePile());
break;
}
PackItem(
Utility.Random(10) switch
{
0 => new LeftArm(),
1 => new RightArm(),
2 => new Torso(),
3 => new Bone(),
4 => new RibCage(),
5 => new RibCage(),
_ => new BonePile() // 6-9
}
);
}
public TsukiWolf(Serial serial)

View file

@ -39,31 +39,25 @@ namespace Server.Mobiles
PackItem(new GreenGourd());
PackItem(new ExecutionersAxe());
switch (Utility.Random(3))
{
case 0:
PackItem(new LongPants());
break;
case 1:
PackItem(new ShortPants());
break;
}
PackItem(
Utility.Random(3) switch
{
0 => new LongPants(),
1 => new ShortPants(),
_ => null // 2 (30%)
}
);
switch (Utility.Random(6))
{
case 0:
PackItem(new Shoes());
break;
case 1:
PackItem(new Sandals());
break;
case 2:
PackItem(new Boots());
break;
case 3:
PackItem(new ThighBoots());
break;
}
PackItem(
Utility.Random(6) switch
{
0 => new Shoes(),
1 => new Sandals(),
2 => new Boots(),
3 => new ThighBoots(),
_ => null // 4-5 (30%)
}
);
if (Utility.RandomDouble() < .25)
PackItem(Seed.RandomBonsaiSeed());
@ -132,4 +126,4 @@ namespace Server.Mobiles
public override int GetDeathSound() => 0x43A;
}
}
}

View file

@ -510,8 +510,7 @@ namespace Server.Mobiles
1 => Utility.RandomGreenHue(),
2 => Utility.RandomRedHue(),
3 => Utility.RandomYellowHue(),
4 => Utility.RandomNeutralHue(),
_ => Utility.RandomBlueHue()
_ => Utility.RandomNeutralHue() // 4
};
}
@ -664,34 +663,24 @@ namespace Server.Mobiles
public virtual void InitOutfit()
{
switch (Utility.Random(3))
{
case 0:
AddItem(new FancyShirt(GetRandomHue()));
break;
case 1:
AddItem(new Doublet(GetRandomHue()));
break;
case 2:
AddItem(new Shirt(GetRandomHue()));
break;
}
AddItem(
Utility.Random(3) switch
{
0 => new FancyShirt(GetRandomHue()),
1 => new Doublet(GetRandomHue()),
_ => new Shirt(GetRandomHue()) // 2
}
);
switch (ShoeType)
{
case VendorShoeType.Shoes:
AddItem(new Shoes(GetShoeHue()));
break;
case VendorShoeType.Boots:
AddItem(new Boots(GetShoeHue()));
break;
case VendorShoeType.Sandals:
AddItem(new Sandals(GetShoeHue()));
break;
case VendorShoeType.ThighBoots:
AddItem(new ThighBoots(GetShoeHue()));
break;
}
AddItem(
ShoeType switch
{
VendorShoeType.Shoes => new Shoes(GetShoeHue()),
VendorShoeType.Boots => new Boots(GetShoeHue()),
VendorShoeType.Sandals => new Sandals(GetShoeHue()),
_ => new ThighBoots(GetShoeHue()) // ThighBoots
}
);
int hairHue = GetHairHue();
@ -699,31 +688,17 @@ namespace Server.Mobiles
Utility.AssignRandomFacialHair(this, hairHue);
if (Female)
switch (Utility.Random(6))
{
case 0:
AddItem(new ShortPants(GetRandomHue()));
break;
case 1:
case 2:
AddItem(new Kilt(GetRandomHue()));
break;
case 3:
case 4:
case 5:
AddItem(new Skirt(GetRandomHue()));
break;
}
AddItem(
Utility.Random(6) switch
{
0 => new ShortPants(GetRandomHue()),
1 => new Kilt(GetRandomHue()),
2 => new Kilt(GetRandomHue()),
_ => new Skirt(GetRandomHue()) // 3-5
}
);
else
switch (Utility.Random(2))
{
case 0:
AddItem(new LongPants(GetRandomHue()));
break;
case 1:
AddItem(new ShortPants(GetRandomHue()));
break;
}
AddItem(Utility.RandomBool() ? (Item)new LongPants(GetRandomHue()) : new ShortPants(GetRandomHue()));
PackGold(100, 200);
}

View file

@ -82,11 +82,7 @@ namespace Server.Mobiles
public int Amount
{
get => m_Amount;
set
{
if (value < 0) value = 0;
m_Amount = value;
}
set => m_Amount = Math.Max(value, 0);
}
public int MaxAmount { get; set; }

View file

@ -19,18 +19,15 @@ namespace Server.Mobiles
{
base.InitOutfit();
switch (Utility.Random(4))
{
case 0:
AddItem(new JesterHat(Utility.RandomBrightHue()));
break;
case 1:
AddItem(new Bandana(Utility.RandomBrightHue()));
break;
case 2:
AddItem(new SkullCap(Utility.RandomBrightHue()));
break;
}
AddItem(
Utility.Random(4) switch
{
0 => new JesterHat(Utility.RandomBrightHue()),
1 => new Bandana(Utility.RandomBrightHue()),
2 => new SkullCap(Utility.RandomBrightHue()),
_ => null // 3
}
);
Item item = FindItemOnLayer(Layer.Pants);
@ -82,4 +79,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -29,18 +29,15 @@ namespace Server.Mobiles
{
base.InitOutfit();
switch (Utility.Random(4))
{
case 0:
AddItem(new JesterHat(Utility.RandomBrightHue()));
break;
case 1:
AddItem(new Bandana(Utility.RandomBrightHue()));
break;
case 2:
AddItem(new SkullCap(Utility.RandomBrightHue()));
break;
}
AddItem(
Utility.Random(4) switch
{
0 => new JesterHat(Utility.RandomBrightHue()),
1 => new Bandana(Utility.RandomBrightHue()),
2 => new SkullCap(Utility.RandomBrightHue()),
_ => null // 3
}
);
if (Utility.RandomBool())
AddItem(new HalfApron(Utility.RandomBrightHue()));
@ -75,4 +72,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -56,22 +56,17 @@ namespace Server.Mobiles
if (item != null && !EquipItem(item))
{
item.Delete();
item = null;
}
switch (Utility.Random(3))
{
case 0:
case 1:
AddItem(new JesterHat(Utility.RandomBrightHue()));
break;
case 2:
AddItem(new Bandana(Utility.RandomBrightHue()));
break;
}
if (item == null)
AddItem(new FullApron(Utility.RandomBrightHue()));
}
AddItem(
Utility.Random(3) switch
{
0 => new Bandana(Utility.RandomBrightHue()),
_ => new JesterHat(Utility.RandomBrightHue()), // 1-2
}
);
AddItem(new Bascinet());
AddItem(new SmithHammer());
@ -121,4 +116,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -35,52 +35,30 @@ namespace Server.Mobiles
AddItem(new StuddedGorget());
AddItem(new PlateLegs());
switch (Utility.Random(4))
{
case 0:
AddItem(new PlateHelm());
break;
case 1:
AddItem(new NorseHelm());
break;
case 2:
AddItem(new CloseHelm());
break;
case 3:
AddItem(new Helmet());
break;
}
AddItem(
Utility.Random(4) switch
{
0 => new PlateHelm(),
1 => new NorseHelm(),
2 => new CloseHelm(),
_ => new Helmet() // 3
}
);
switch (Utility.Random(3))
{
case 0:
AddItem(new BodySash(0x482));
break;
case 1:
AddItem(new Doublet(0x482));
break;
case 2:
AddItem(new Tunic(0x482));
break;
}
AddItem(
Utility.Random(3) switch
{
0 => new BodySash(0x482),
1 => new Doublet(0x482),
_ => new Tunic(0x482) // 2
}
);
AddItem(new Broadsword());
Item shield = new MetalKiteShield();
AddItem(new MetalKiteShield{Hue = Utility.RandomNondyedHue()});
shield.Hue = Utility.RandomNondyedHue();
AddItem(shield);
switch (Utility.Random(2))
{
case 0:
AddItem(new Boots());
break;
case 1:
AddItem(new ThighBoots());
break;
}
AddItem(Utility.RandomBool() ? (Item)new Boots() : new ThighBoots());
PackGold(100, 200);
}
@ -99,4 +77,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -34,15 +34,9 @@ namespace Server.Mobiles
if (Utility.RandomBool())
AddItem(new Cloak(Utility.RandomBrightHue()));
switch (Utility.Random(2))
{
case 0:
AddItem(new SkullCap(Utility.RandomNeutralHue()));
break;
case 1:
AddItem(new Bandana(Utility.RandomNeutralHue()));
break;
}
AddItem(
Utility.RandomBool() ? (Item)new SkullCap(Utility.RandomNeutralHue()) : new Bandana(Utility.RandomNeutralHue())
);
Utility.AssignRandomHair(this);
Utility.AssignRandomFacialHair(this, HairHue);
@ -64,4 +58,4 @@ namespace Server.Mobiles
int version = reader.ReadInt();
}
}
}
}

View file

@ -606,12 +606,7 @@ namespace Server.Multis
return;
}
newName = newName.Trim();
if (newName.Length == 0)
newName = null;
Rename(newName);
Rename(newName.Trim().IsNullOrDefault(null));
}
public DryDockResult CheckDryDock(Mobile from)
@ -723,14 +718,7 @@ namespace Server.Multis
}
if (e.Speech.Length > 8)
{
string newName = e.Speech.Substring(8).Trim();
if (newName.Length == 0)
newName = null;
Rename(newName);
}
Rename(e.Speech.Substring(8).Trim().IsNullOrDefault(null));
}
public void Rename(string newName)
@ -1234,8 +1222,8 @@ namespace Server.Multis
int x = item.X - p.X + newComponents.Min.X;
int y = item.Y - p.Y + newComponents.Min.Y;
return (x >= 0 && x < newComponents.Width && y >= 0 && y < newComponents.Height &&
newComponents.Tiles[x][y].Length == 0) || Contains(item);
return x >= 0 && x < newComponents.Width && y >= 0 && y < newComponents.Height &&
newComponents.Tiles[x][y].Length == 0 || Contains(item);
});
eable.Free();

View file

@ -22,9 +22,6 @@ namespace Server.Multis
public override void AddComponents()
{
BaseCreature bc;
// BaseEscortable be;
Visible = false;
DecayDelay = TimeSpan.FromMinutes(5.0);
@ -55,18 +52,15 @@ namespace Server.Multis
for (int i = 0; i < 4; i++) AddMobile(Brigands, 6, Utility.RandomMinMax(-7, 7), Utility.RandomMinMax(-7, 7), 0);
m_Prisoner = Utility.Random(2) switch
BaseCreature bc = Utility.Random(2) switch
{
0 => (Mobile)new Noble(),
0 => new Noble(),
_ => new SeekerOfAdventure()
};
// be = (BaseEscortable)m_Prisoner;
// be.m_Captive = true;
bc = (BaseCreature)m_Prisoner;
bc.IsPrisoner = true;
bc.CantWalk = true;
m_Prisoner = bc;
m_Prisoner.YellHue = Utility.RandomList(0x57, 0x67, 0x77, 0x87, 0x117);
AddMobile(m_Prisoner, 2, Utility.RandomMinMax(-2, 2), Utility.RandomMinMax(-2, 2), 0);
@ -74,9 +68,9 @@ namespace Server.Multis
private void AddCampChests()
{
var chest = Utility.Random(3) switch
LockableContainer chest = Utility.Random(3) switch
{
0 => (LockableContainer)new MetalChest(),
0 => new MetalChest(),
1 => new MetalGoldenChest(),
_ => new WoodenChest()
};
@ -87,9 +81,9 @@ namespace Server.Multis
AddItem(chest, -2, -2, 0);
var crates = Utility.Random(4) switch
LockableContainer crates = Utility.Random(4) switch
{
0 => (LockableContainer)new SmallCrate(),
0 => new SmallCrate(),
1 => new MediumCrate(),
2 => new LargeCrate(),
_ => new LockableBarrel()
@ -110,22 +104,16 @@ namespace Server.Multis
crates.LiftOverride = true;
if (Utility.RandomDouble() < 0.8)
switch (Utility.Random(4))
crates.DropItem(
Utility.Random(5) switch
{
case 0:
crates.DropItem(new LesserCurePotion());
break;
case 1:
crates.DropItem(new LesserExplosionPotion());
break;
case 2:
crates.DropItem(new LesserHealPotion());
break;
default:
crates.DropItem(new LesserPoisonPotion());
break;
0 => new LesserCurePotion(),
1 => new LesserExplosionPotion(),
2 => new LesserHealPotion(),
3 => new LesserPoisonPotion(),
_ => null // 4
}
);
AddItem(crates, 2, 2, 0);
}
@ -189,4 +177,4 @@ namespace Server.Multis
}
}
}
}
}

View file

@ -90,7 +90,7 @@ namespace Server.Items
{
Target = reader.ReadItem();
if (version < 0)
if (version < 1)
Level = SecureLevel.Anyone;
break;

View file

@ -85,12 +85,7 @@ namespace Server.SkillHandlers
else if (m.CheckSkill(SkillName.Stealth, -20.0 + armorRating * 2,
(Core.AOS ? 60.0 : 80.0) + armorRating * 2))
{
int steps = (int)(m.Skills.Stealth.Value / (Core.AOS ? 5.0 : 10.0));
if (steps < 1)
steps = 1;
m.AllowedStealthSteps = steps;
m.AllowedStealthSteps = Math.Max((int)(m.Skills.Stealth.Value / (Core.AOS ? 5.0 : 10.0)), 1);
if (m is PlayerMobile pm)
pm.IsStealthing = true;

View file

@ -57,13 +57,10 @@ namespace Server.Spells.Fifth
SpellHelper.CheckReflect((int)Circle, ref from, ref target);
int damage = (int)((Caster.Skills.Magery.Value + Caster.Int) / 5);
if (damage > 60)
damage = 60;
int damage = Math.Min((int)((Caster.Skills.Magery.Value + Caster.Int) / 5), 60);
Timer.DelayCall(TimeSpan.FromSeconds(1.0),
() => AosDelay_Callback(Caster, target, m, damage));
AosDelay_Callback, Caster, target, m, damage);
}
}
else if (CheckHSequence(m))
@ -96,10 +93,7 @@ namespace Server.Spells.Fifth
if (lowestStat > 150)
lowestStat = 150;
double damage = GetDamageScalar(m) * (highestStat - lowestStat) / 2; // Many users prefer 3 or 4
if (damage > 45)
damage = 45;
double damage = Math.Min(GetDamageScalar(m) * (highestStat - lowestStat) / 2, 45); // Many users prefer 3 or 4
if (CheckResisted(target))
{