Merge branch 'main' into webSupport
This commit is contained in:
commit
f5fef07e0c
358 changed files with 2982 additions and 1498 deletions
|
|
@ -11,7 +11,7 @@
|
|||
<PublicRelease>true</PublicRelease>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<NoWarn>NU1603</NoWarn>
|
||||
<RuntimeIdentifiers>win-x64;debian.9-x64;debian.10-x64;debian.11-x64;ubuntu.16.04-x64;ubuntu.18.04-x64;ubuntu.20.04-x64;centos.7-x64;centos.8-x64;fedora.32-x64;fedora.33-x64;fedora.34-x64;rhel.7-x64;rhel.8-x64;osx-x64</RuntimeIdentifiers>
|
||||
<RuntimeIdentifiers>win-x64;debian.10-x64;debian.11-x64;ubuntu.16.04-x64;ubuntu.18.04-x64;ubuntu.20.04-x64;centos.7-x64;centos.8-x64;fedora.32-x64;fedora.33-x64;fedora.34-x64;rhel.7-x64;rhel.8-x64;osx-x64</RuntimeIdentifiers>
|
||||
<Configurations>Debug;Release;Analyze</Configurations>
|
||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
|
|
|
|||
|
|
@ -67,7 +67,11 @@ namespace SerializableMigration
|
|||
ruleArguments[0] = extraOptions;
|
||||
ruleArguments[1] = setTypeSymbol.ToDisplayString();
|
||||
ruleArguments[2] = serializableSetType.Rule;
|
||||
Array.Copy(serializableSetType.RuleArguments, 0, ruleArguments, 3, length);
|
||||
|
||||
if (length > 0)
|
||||
{
|
||||
Array.Copy(serializableSetType.RuleArguments, 0, ruleArguments, 3, length);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -98,7 +102,7 @@ namespace SerializableMigration
|
|||
source.AppendLine($"{indent}{ruleArguments[argumentsOffset]} {propertyEntry};");
|
||||
source.AppendLine($"{indent}var {propertyCount} = reader.ReadEncodedInt();");
|
||||
source.AppendLine($"{indent}{property.Name} = new System.Collections.Generic.HashSet<{ruleArguments[argumentsOffset]}>({propertyCount});");
|
||||
source.AppendLine($"{indent}for (var {propertyIndex} = 0; i < {propertyCount}; {propertyIndex}++)");
|
||||
source.AppendLine($"{indent}for (var {propertyIndex} = 0; {propertyIndex} < {propertyCount}; {propertyIndex}++)");
|
||||
source.AppendLine($"{indent}{{");
|
||||
|
||||
var serializableSetElement = new SerializableProperty
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ namespace SerializableMigration
|
|||
_ when symbol.IsRectangle3D(compilation) => new[] { "Rect3D" },
|
||||
_ when symbol.IsRace(compilation) => new[] { "Race" },
|
||||
_ when symbol.IsMap(compilation) => new[] { "Map" },
|
||||
_ when symbol.IsBitArray(compilation) => new[] { "BitArray" },
|
||||
_ => null
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.1</TargetFramework>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<LangVersion>preview</LangVersion>
|
||||
<BuildOutputTargetFolder>analyzers</BuildOutputTargetFolder>
|
||||
</PropertyGroup>
|
||||
|
|
@ -12,6 +12,7 @@
|
|||
<PackageReference Include="System.Text.Json" Version="6.0.0" GeneratePathProperty="true" PrivateAssets="all" />
|
||||
<PackageReference Include="System.Text.Encodings.Web" Version="6.0.0" GeneratePathProperty="true" PrivateAssets="all" />
|
||||
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="6.0.0" GeneratePathProperty="true" PrivateAssets="all" />
|
||||
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" GeneratePathProperty="true" PrivateAssets="all" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
|
|
@ -21,9 +22,10 @@
|
|||
<Target Name="GetDependencyTargetPaths">
|
||||
<ItemGroup>
|
||||
<TargetPathWithTargetPlatformMoniker Include="$(PKGHumanizer_Core)\lib\netstandard2.0\*.dll" IncludeRuntimeDependency="false" />
|
||||
<TargetPathWithTargetPlatformMoniker Include="$(PKGSystem_Text_Json)\lib\netstandard2.1\*.dll" IncludeRuntimeDependency="false" />
|
||||
<TargetPathWithTargetPlatformMoniker Include="$(PKGSystem_Text_Encodings_Web)\lib\netstandard2.1\*.dll" IncludeRuntimeDependency="false" />
|
||||
<TargetPathWithTargetPlatformMoniker Include="$(PKGMicrosoft_Bcl_AsyncInterfaces)\lib\netstandard2.1\*.dll" IncludeRuntimeDependency="false" />
|
||||
<TargetPathWithTargetPlatformMoniker Include="$(PKGSystem_Text_Json)\lib\netstandard2.0\*.dll" IncludeRuntimeDependency="false" />
|
||||
<TargetPathWithTargetPlatformMoniker Include="$(PKGSystem_Text_Encodings_Web)\lib\netstandard2.0\*.dll" IncludeRuntimeDependency="false" />
|
||||
<TargetPathWithTargetPlatformMoniker Include="$(PKGMicrosoft_Bcl_AsyncInterfaces)\lib\netstandard2.0\*.dll" IncludeRuntimeDependency="false" />
|
||||
<TargetPathWithTargetPlatformMoniker Include="$(PKGSystem_Runtime_CompilerServices_Unsafe)\lib\netstandard2.0\*.dll" IncludeRuntimeDependency="false" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -47,6 +47,8 @@ namespace SerializationGenerator
|
|||
public const string SERIALIZABLE_FIELD_SAVE_FLAG_ATTRIBUTE = "Server.SerializableFieldSaveFlagAttribute";
|
||||
public const string SERIALIZABLE_FIELD_DEFAULT_ATTRIBUTE = "Server.SerializableFieldDefaultAttribute";
|
||||
public const string RAW_SERIALIZABLE_INTERFACE = "Server.IRawSerializable";
|
||||
// ModernUO modified BitArray
|
||||
public const string SERVER_BITARRAY_CLASS = "Server.Collections.BitArray";
|
||||
|
||||
public static bool IsTimerDrift(this AttributeData attr, Compilation compilation) =>
|
||||
attr?.IsAttribute(compilation.GetTypeByMetadataName(TIMER_DRIFT_ATTRIBUTE)) == true;
|
||||
|
|
@ -184,6 +186,12 @@ namespace SerializationGenerator
|
|||
SymbolEqualityComparer.Default
|
||||
);
|
||||
|
||||
public static bool IsBitArray(this ISymbol symbol, Compilation compilation) =>
|
||||
symbol.Equals(
|
||||
compilation.GetTypeByMetadataName(SERVER_BITARRAY_CLASS),
|
||||
SymbolEqualityComparer.Default
|
||||
);
|
||||
|
||||
public static AttributeData? GetAttribute(this ISymbol symbol, ISymbol attrSymbol) =>
|
||||
symbol
|
||||
.GetAttributes()
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ namespace Server.Network
|
|||
{
|
||||
EnsureCapacity(256);
|
||||
|
||||
Stream.Write(!(vendor.FindItemOnLayer(Layer.ShopBuy) is Container buyPack) ? Serial.MinusOne : buyPack.Serial);
|
||||
Stream.Write(vendor.FindItemOnLayer(Layer.ShopBuy) is not Container buyPack ? Serial.MinusOne : buyPack.Serial);
|
||||
|
||||
Stream.Write((byte)list.Count);
|
||||
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ namespace Server
|
|||
return 50;
|
||||
}
|
||||
|
||||
if (!(objs[0] is CallPriorityAttribute attr))
|
||||
if (objs[0] is not CallPriorityAttribute attr)
|
||||
{
|
||||
return 50;
|
||||
}
|
||||
|
|
|
|||
1410
Projects/Server/Collections/BitArray.cs
Normal file
1410
Projects/Server/Collections/BitArray.cs
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -13,33 +13,43 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
|
||||
*************************************************************************/
|
||||
|
||||
namespace Server.Collections
|
||||
namespace Server.Collections;
|
||||
|
||||
public static class CollectionThrowStrings
|
||||
{
|
||||
public static class CollectionThrowStrings
|
||||
{
|
||||
public const string ArgumentOutOfRange_Index =
|
||||
"Index was out of range. Must be non-negative and less than the size of the collection.";
|
||||
public const string ArgumentOutOfRange_Index =
|
||||
"Index was out of range. Must be non-negative and less than the size of the collection.";
|
||||
|
||||
public const string ArgumentOutOfRange_NeedNonNegNum = "Non-negative number required.";
|
||||
public const string ArgumentOutOfRange_NeedNonNegNum = "Non-negative number required.";
|
||||
|
||||
public const string Argument_InvalidOffLen =
|
||||
"Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.";
|
||||
public const string Argument_InvalidOffLen =
|
||||
"Offset and length were out of bounds for the array or count is greater than the number of elements from index to the end of the source collection.";
|
||||
|
||||
public const string Argument_AddingDuplicate = "An item with the same value has already been added. Value: {0}";
|
||||
public const string Argument_AddingDuplicate = "An item with the same value has already been added. Value: {0}";
|
||||
|
||||
public const string Arg_ArrayPlusOffTooSmall =
|
||||
"Destination array is not long enough to copy all the items in the collection. Check array index and length.";
|
||||
public const string Arg_ArrayPlusOffTooSmall =
|
||||
"Destination array is not long enough to copy all the items in the collection. Check array index and length.";
|
||||
|
||||
public const string InvalidOperation_ConcurrentOperationsNotSupported =
|
||||
"Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection's state is no longer correct.";
|
||||
public const string InvalidOperation_ConcurrentOperationsNotSupported =
|
||||
"Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection's state is no longer correct.";
|
||||
|
||||
public const string InvalidOperation_EnumFailedVersion =
|
||||
"Collection was modified after the enumerator was instantiated.";
|
||||
public const string InvalidOperation_EnumFailedVersion =
|
||||
"Collection was modified after the enumerator was instantiated.";
|
||||
|
||||
public const string InvalidOperation_EmptyQueue = "Queue empty.";
|
||||
public const string InvalidOperation_EmptyQueue = "Queue empty.";
|
||||
|
||||
public const string InvalidOperation_EnumNotStarted = "Enumeration has not started. Call MoveNext.";
|
||||
public const string InvalidOperation_EnumNotStarted = "Enumeration has not started. Call MoveNext.";
|
||||
|
||||
public const string InvalidOperation_EnumEnded = "Enumeration already finished.";
|
||||
}
|
||||
public const string InvalidOperation_EnumEnded = "Enumeration already finished.";
|
||||
|
||||
public const string Argument_ArrayTooLarge =
|
||||
"The input array length must not exceed Int32.MaxValue / {0}. Otherwise BitArray.Length would exceed Int32.MaxValue.";
|
||||
|
||||
public const string Arg_ArrayLengthsDiffer = "Array lengths must be the same.";
|
||||
|
||||
public const string Arg_RankMultiDimNotSupported =
|
||||
"Only single dimensional arrays are supported for the requested action.";
|
||||
|
||||
public const string Arg_BitArrayTypeUnsupported =
|
||||
"Only supported array types for CopyTo on BitArrays are Boolean[], Int32[] and Byte[].";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -451,7 +451,7 @@ namespace Server.Collections
|
|||
|
||||
private void ThrowEnumerationNotStartedOrEnded()
|
||||
{
|
||||
Debug.Assert(_index == -1 || _index == -2);
|
||||
Debug.Assert(_index is -1 or -2);
|
||||
throw new InvalidOperationException(_index == -1 ? CollectionThrowStrings.InvalidOperation_EnumNotStarted : CollectionThrowStrings.InvalidOperation_EnumEnded);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -70,7 +70,7 @@ namespace Server.ContextMenus
|
|||
for (var i = 0; i < Entries.Length; ++i)
|
||||
{
|
||||
var number = Entries[i].Number;
|
||||
if (number < 3000000 || number > 3032767)
|
||||
if (number is < 3000000 or > 3032767)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -231,7 +231,7 @@ namespace Server.Items
|
|||
return container.CheckHold(m, item, message, checkItems, plusItems, plusWeight);
|
||||
}
|
||||
|
||||
if (!(parent is Item parentItem))
|
||||
if (parent is not Item parentItem)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
@ -504,7 +504,7 @@ namespace Server.Items
|
|||
{
|
||||
var item = list[i];
|
||||
|
||||
if (!(item is Container) && CheckHold(from, dropped, false, false) &&
|
||||
if (item is not Container && CheckHold(from, dropped, false, false) &&
|
||||
item.StackWith(from, dropped, playSound))
|
||||
{
|
||||
return true;
|
||||
|
|
@ -540,7 +540,7 @@ namespace Server.Items
|
|||
{
|
||||
var item = list[j];
|
||||
|
||||
if (!(item is Container) && CheckHold(from, dropped, false, false, 0, extraWeight) &&
|
||||
if (item is not Container && CheckHold(from, dropped, false, false, 0, extraWeight) &&
|
||||
item.CanStackWith(dropped))
|
||||
{
|
||||
stackItems.Add(new ItemStackEntry(item, dropped));
|
||||
|
|
|
|||
|
|
@ -443,7 +443,7 @@ namespace Server
|
|||
|
||||
var weight = TileData.ItemTable[m_ItemID].Weight;
|
||||
|
||||
if (weight == 255 || weight == 0)
|
||||
if (weight is 255 or 0)
|
||||
{
|
||||
weight = 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ namespace Server.Json
|
|||
|
||||
reader.Read();
|
||||
|
||||
if (key == "start" || key == "end")
|
||||
if (key is "start" or "end")
|
||||
{
|
||||
if (objType > -1 && objType != 2)
|
||||
{
|
||||
|
|
@ -140,7 +140,7 @@ namespace Server.Json
|
|||
|
||||
objType = 1;
|
||||
data[i - 10] = reader.GetInt32();
|
||||
if (i == 12 || i == 15)
|
||||
if (i is 12 or 15)
|
||||
{
|
||||
hasZ = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -520,7 +520,7 @@ namespace Server
|
|||
var eable = map.GetItemsInRange(new Point3D(x, y, 0), 0);
|
||||
|
||||
pool.AddRange(
|
||||
eable.Where(item => item.ItemID <= TileData.MaxItemValue && !(item is BaseMulti))
|
||||
eable.Where(item => item.ItemID <= TileData.MaxItemValue && item is not BaseMulti)
|
||||
.OrderBy(item => item.Z)
|
||||
.Take(pool.Capacity)
|
||||
);
|
||||
|
|
@ -715,7 +715,7 @@ namespace Server
|
|||
{
|
||||
var item = sector.Items[i];
|
||||
|
||||
if (!(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue && item.AtWorldPoint(p.X, p.Y) &&
|
||||
if (item is not BaseMulti && item.ItemID <= TileData.MaxItemValue && item.AtWorldPoint(p.X, p.Y) &&
|
||||
!item.Movable)
|
||||
{
|
||||
var id = item.ItemData;
|
||||
|
|
@ -1145,7 +1145,7 @@ namespace Server
|
|||
{
|
||||
var item = items[i];
|
||||
|
||||
if (!(item is BaseMulti) && item.ItemID <= TileData.MaxItemValue && item.AtWorldPoint(x, y))
|
||||
if (item is not BaseMulti && item.ItemID <= TileData.MaxItemValue && item.AtWorldPoint(x, y))
|
||||
{
|
||||
var id = item.ItemData;
|
||||
surface = id.Surface;
|
||||
|
|
|
|||
|
|
@ -1888,7 +1888,7 @@ namespace Server
|
|||
|
||||
item ??= FindItemOnLayer(Layer.Mount);
|
||||
|
||||
if (!(item is IMountItem mountItem))
|
||||
if (item is not IMountItem mountItem)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
|
@ -8397,7 +8397,7 @@ namespace Server
|
|||
|
||||
var n = Notoriety.Compute(this, target);
|
||||
|
||||
return n == Notoriety.Criminal || n == Notoriety.Murderer;
|
||||
return n is Notoriety.Criminal or Notoriety.Murderer;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
|
|
@ -223,7 +223,7 @@ namespace Server.Network
|
|||
|
||||
private void SetPacketTime(int packetID)
|
||||
{
|
||||
if (packetID < 0 || packetID >= 0x100)
|
||||
if (packetID is < 0 or >= 0x100)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -233,7 +233,7 @@ namespace Server.Network
|
|||
|
||||
public long GetPacketDelay(int packetID)
|
||||
{
|
||||
if (packetID < 0 || packetID >= 0x100)
|
||||
if (packetID is < 0 or >= 0x100)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -243,7 +243,7 @@ namespace Server.Network
|
|||
|
||||
private void UpdatePacketCount(int packetID)
|
||||
{
|
||||
if (packetID < 0 || packetID >= 0x100)
|
||||
if (packetID is < 0 or >= 0x100)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -728,7 +728,7 @@ namespace Server.Network
|
|||
{
|
||||
reader.Advance((uint)packetLength);
|
||||
}
|
||||
else if (_parserState == ParserState.AwaitingPartialPacket || _parserState == ParserState.Throttled)
|
||||
else if (_parserState is ParserState.AwaitingPartialPacket or ParserState.Throttled)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ namespace Server.Network
|
|||
reader.ReadInt16(); // font
|
||||
var text = reader.ReadAsciiSafe().Trim();
|
||||
|
||||
if (text.Length <= 0 || text.Length > 128)
|
||||
if (text.Length is <= 0 or > 128)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -97,7 +97,7 @@ namespace Server.Network
|
|||
var count = (value & 0xFFF0) >> 4;
|
||||
var hold = value & 0xF;
|
||||
|
||||
if (count < 0 || count > 50)
|
||||
if (count is < 0 or > 50)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -141,7 +141,7 @@ namespace Server.Network
|
|||
|
||||
text = text.Trim();
|
||||
|
||||
if (text.Length <= 0 || text.Length > 128)
|
||||
if (text.Length is <= 0 or > 128)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Server.Collections;
|
||||
|
||||
namespace Server
|
||||
{
|
||||
|
|
@ -78,6 +79,15 @@ namespace Server
|
|||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public int Read(Span<byte> buffer) => _reader.Read(buffer);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public BitArray ReadBitArray()
|
||||
{
|
||||
var length = ((IGenericReader)this).ReadEncodedInt();
|
||||
|
||||
// BinaryReader doesn't expose a Span slice of the buffer, so we use a custom ctor
|
||||
return new BitArray(_reader, length);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public long Seek(long offset, SeekOrigin origin) => _reader.BaseStream.Seek(offset, origin);
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ using System.Diagnostics;
|
|||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Server.Collections;
|
||||
using Server.Text;
|
||||
|
||||
namespace Server
|
||||
|
|
@ -156,6 +157,19 @@ namespace Server
|
|||
return length;
|
||||
}
|
||||
|
||||
public BitArray ReadBitArray()
|
||||
{
|
||||
var length = ((IGenericReader)this).ReadEncodedInt();
|
||||
if (length > _buffer.Length - _position)
|
||||
{
|
||||
throw new OutOfMemoryException();
|
||||
}
|
||||
|
||||
var bitArray = new BitArray(_buffer.AsSpan(_position, length));
|
||||
_position += length;
|
||||
return bitArray;
|
||||
}
|
||||
|
||||
public virtual long Seek(long offset, SeekOrigin origin)
|
||||
{
|
||||
Debug.Assert(
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ using System.Diagnostics;
|
|||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using Server.Collections;
|
||||
using Server.Text;
|
||||
|
||||
namespace Server
|
||||
|
|
@ -134,6 +135,16 @@ namespace Server
|
|||
}
|
||||
}
|
||||
|
||||
public void Write(BitArray bitArray)
|
||||
{
|
||||
var byteLength = BitArray.GetByteArrayLengthFromBitLength(bitArray.Length);
|
||||
FlushIfNeeded(byteLength + 4);
|
||||
|
||||
((IGenericWriter)this).WriteEncodedInt(byteLength);
|
||||
bitArray.CopyTo(_buffer.AsSpan((int)Index, byteLength));
|
||||
Index += byteLength;
|
||||
}
|
||||
|
||||
public virtual long Seek(long offset, SeekOrigin origin)
|
||||
{
|
||||
Debug.Assert(
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using Server.Collections;
|
||||
|
||||
namespace Server
|
||||
{
|
||||
|
|
@ -116,6 +117,8 @@ namespace Server
|
|||
return new Guid(bytes);
|
||||
}
|
||||
|
||||
BitArray ReadBitArray();
|
||||
|
||||
long Seek(long offset, SeekOrigin origin);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using Server.Collections;
|
||||
|
||||
namespace Server
|
||||
{
|
||||
|
|
@ -160,6 +161,8 @@ namespace Server
|
|||
Write(stack);
|
||||
}
|
||||
|
||||
void Write(BitArray bitArray);
|
||||
|
||||
long Seek(long offset, SeekOrigin origin);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\SerializationGenerator\SerializationGenerator.csproj">
|
||||
<SetTargetFramework>TargetFramework=netstandard2.1</SetTargetFramework>
|
||||
<SetTargetFramework>TargetFramework=netstandard2.0</SetTargetFramework>
|
||||
<OutputItemType>Analyzer</OutputItemType>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ namespace Server
|
|||
}
|
||||
}
|
||||
|
||||
if (Lock < SkillLock.Up || Lock > SkillLock.Locked)
|
||||
if (Lock is < SkillLock.Up or > SkillLock.Locked)
|
||||
{
|
||||
Console.WriteLine("Bad skill lock -> {0}.{1}", owner.Owner, Lock);
|
||||
Lock = SkillLock.Up;
|
||||
|
|
@ -323,7 +323,7 @@ namespace Server
|
|||
|
||||
public void SetLockNoRelay(SkillLock skillLock)
|
||||
{
|
||||
if (skillLock < SkillLock.Up || skillLock > SkillLock.Locked)
|
||||
if (skillLock is < SkillLock.Up or > SkillLock.Locked)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
242
Projects/Server/Timer/Timer.DelayStateCall.cs
Normal file
242
Projects/Server/Timer/Timer.DelayStateCall.cs
Normal file
|
|
@ -0,0 +1,242 @@
|
|||
/*************************************************************************
|
||||
* ModernUO *
|
||||
* Copyright 2019-2021 - ModernUO Development Team *
|
||||
* Email: hi@modernuo.com *
|
||||
* File: Timer.DelayStateCall.cs *
|
||||
* *
|
||||
* This program is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation, either version 3 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
|
||||
*************************************************************************/
|
||||
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace Server
|
||||
{
|
||||
public partial class Timer
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T>(Action<T> callback, T state) =>
|
||||
DelayCall(TimeSpan.Zero, TimeSpan.Zero, 1, callback, state);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T>(TimeSpan delay, Action<T> callback, T state) =>
|
||||
DelayCall(delay, TimeSpan.Zero, 1, callback, state);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T>(TimeSpan delay, TimeSpan interval, Action<T> callback, T state) =>
|
||||
DelayCall(delay, interval, 0, callback, state);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T>(TimeSpan delay, TimeSpan interval, int count, Action<T> callback, T state) =>
|
||||
new DelayStateCallTimer<T>(delay, interval, count, callback, state).Start();
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2>(Action<T1, T2> callback, T1 t1, T2 t2) =>
|
||||
DelayCall(TimeSpan.Zero, TimeSpan.Zero, 1, callback, t1, t2);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2>(TimeSpan delay, Action<T1, T2> callback, T1 t1, T2 t2) =>
|
||||
DelayCall(delay, TimeSpan.Zero, 1, callback, t1, t2);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2>(TimeSpan delay, TimeSpan interval, Action<T1, T2> callback, T1 t1, T2 t2) =>
|
||||
DelayCall(delay, interval, 0, callback, t1, t2);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2>(
|
||||
TimeSpan delay, TimeSpan interval, int count, Action<T1, T2> callback,
|
||||
T1 t1, T2 t2
|
||||
) => new DelayStateCallTimer<T1, T2>(delay, interval, count, callback, t1, t2).Start();
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2, T3>(Action<T1, T2, T3> callback, T1 t1, T2 t2, T3 t3) =>
|
||||
DelayCall(TimeSpan.Zero, TimeSpan.Zero, 1, callback, t1, t2, t3);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2, T3>(
|
||||
TimeSpan delay, Action<T1, T2, T3> callback, T1 t1, T2 t2, T3 t3
|
||||
) => DelayCall(delay, TimeSpan.Zero, 1, callback, t1, t2, t3);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2, T3>(
|
||||
TimeSpan delay, TimeSpan interval, Action<T1, T2, T3> callback,
|
||||
T1 t1, T2 t2, T3 t3
|
||||
) => DelayCall(delay, interval, 0, callback, t1, t2, t3);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2, T3>(
|
||||
TimeSpan delay, TimeSpan interval, int count,
|
||||
Action<T1, T2, T3> callback, T1 t1, T2 t2, T3 t3
|
||||
) => new DelayStateCallTimer<T1, T2, T3>(delay, interval, count, callback, t1, t2, t3).Start();
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2, T3, T4>(
|
||||
Action<T1, T2, T3, T4> callback, T1 t1, T2 t2, T3 t3, T4 t4
|
||||
) => DelayCall(TimeSpan.Zero, TimeSpan.Zero, 1, callback, t1, t2, t3, t4);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2, T3, T4>(
|
||||
TimeSpan delay, Action<T1, T2, T3, T4> callback,
|
||||
T1 t1, T2 t2, T3 t3, T4 t4
|
||||
) => DelayCall(delay, TimeSpan.Zero, 1, callback, t1, t2, t3, t4);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2, T3, T4>(
|
||||
TimeSpan delay, TimeSpan interval,
|
||||
Action<T1, T2, T3, T4> callback, T1 t1, T2 t2, T3 t3, T4 t4
|
||||
) => DelayCall(delay, interval, 0, callback, t1, t2, t3, t4);
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2, T3, T4>(
|
||||
TimeSpan delay, TimeSpan interval, int count,
|
||||
Action<T1, T2, T3, T4> callback, T1 t1, T2 t2, T3 t3, T4 t4
|
||||
) => new DelayStateCallTimer<T1, T2, T3, T4>(delay, interval, count, callback, t1, t2, t3, t4).Start();
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2, T3, T4, T5>(
|
||||
Action<T1, T2, T3, T4, T5> callback, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5
|
||||
) => new DelayStateCallTimer<T1, T2, T3, T4, T5>(TimeSpan.Zero, TimeSpan.Zero, 1, callback, t1, t2, t3, t4, t5).Start();
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2, T3, T4, T5>(
|
||||
TimeSpan delay,
|
||||
Action<T1, T2, T3, T4, T5> callback, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5
|
||||
) => new DelayStateCallTimer<T1, T2, T3, T4, T5>(delay, TimeSpan.Zero, 1, callback, t1, t2, t3, t4, t5).Start();
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2, T3, T4, T5>(
|
||||
TimeSpan delay, TimeSpan interval,
|
||||
Action<T1, T2, T3, T4, T5> callback, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5
|
||||
) => new DelayStateCallTimer<T1, T2, T3, T4, T5>(delay, interval, 0, callback, t1, t2, t3, t4, t5).Start();
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static Timer DelayCall<T1, T2, T3, T4, T5>(
|
||||
TimeSpan delay, TimeSpan interval, int count,
|
||||
Action<T1, T2, T3, T4, T5> callback, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5
|
||||
) => new DelayStateCallTimer<T1, T2, T3, T4, T5>(delay, interval, count, callback, t1, t2, t3, t4, t5).Start();
|
||||
|
||||
private class DelayStateCallTimer<T> : Timer
|
||||
{
|
||||
private readonly T _t1;
|
||||
|
||||
public DelayStateCallTimer(TimeSpan delay, TimeSpan interval, int count, Action<T> callback, T state)
|
||||
: base(delay, interval, count)
|
||||
{
|
||||
Callback = callback;
|
||||
_t1 = state;
|
||||
}
|
||||
|
||||
public Action<T> Callback { get; }
|
||||
|
||||
protected override void OnTick() => Callback?.Invoke(_t1);
|
||||
|
||||
public override string ToString() => $"DelayStateCall[{FormatDelegate(Callback)}]";
|
||||
}
|
||||
|
||||
private class DelayStateCallTimer<T1, T2> : Timer
|
||||
{
|
||||
private readonly T1 _t1;
|
||||
private readonly T2 _t2;
|
||||
|
||||
public DelayStateCallTimer(
|
||||
TimeSpan delay, TimeSpan interval, int count, Action<T1, T2> callback,
|
||||
T1 t1, T2 t2
|
||||
) : base(delay, interval, count)
|
||||
{
|
||||
Callback = callback;
|
||||
_t1 = t1;
|
||||
_t2 = t2;
|
||||
}
|
||||
|
||||
public Action<T1, T2> Callback { get; }
|
||||
|
||||
protected override void OnTick() => Callback?.Invoke(_t1, _t2);
|
||||
|
||||
public override string ToString() => $"DelayStateCall[{FormatDelegate(Callback)}]";
|
||||
}
|
||||
|
||||
private class DelayStateCallTimer<T1, T2, T3> : Timer
|
||||
{
|
||||
private readonly T1 _t1;
|
||||
private readonly T2 _t2;
|
||||
private readonly T3 _t3;
|
||||
|
||||
public DelayStateCallTimer(
|
||||
TimeSpan delay, TimeSpan interval, int count, Action<T1, T2, T3> callback,
|
||||
T1 t1, T2 t2, T3 t3
|
||||
) : base(delay, interval, count)
|
||||
{
|
||||
Callback = callback;
|
||||
_t1 = t1;
|
||||
_t2 = t2;
|
||||
_t3 = t3;
|
||||
}
|
||||
|
||||
public Action<T1, T2, T3> Callback { get; }
|
||||
|
||||
protected override void OnTick() => Callback?.Invoke(_t1, _t2, _t3);
|
||||
|
||||
public override string ToString() => $"DelayStateCall[{FormatDelegate(Callback)}]";
|
||||
}
|
||||
|
||||
private class DelayStateCallTimer<T1, T2, T3, T4> : Timer
|
||||
{
|
||||
private readonly T1 _t1;
|
||||
private readonly T2 _t2;
|
||||
private readonly T3 _t3;
|
||||
private readonly T4 _t4;
|
||||
|
||||
public DelayStateCallTimer(
|
||||
TimeSpan delay, TimeSpan interval, int count, Action<T1, T2, T3, T4> callback,
|
||||
T1 t1, T2 t2, T3 t3, T4 t4
|
||||
) : base(delay, interval, count)
|
||||
{
|
||||
Callback = callback;
|
||||
_t1 = t1;
|
||||
_t2 = t2;
|
||||
_t3 = t3;
|
||||
_t4 = t4;
|
||||
}
|
||||
|
||||
public Action<T1, T2, T3, T4> Callback { get; }
|
||||
|
||||
protected override void OnTick() => Callback?.Invoke(_t1, _t2, _t3, _t4);
|
||||
|
||||
public override string ToString() => $"DelayStateCall[{FormatDelegate(Callback)}]";
|
||||
}
|
||||
|
||||
private class DelayStateCallTimer<T1, T2, T3, T4, T5> : Timer
|
||||
{
|
||||
private readonly T1 _t1;
|
||||
private readonly T2 _t2;
|
||||
private readonly T3 _t3;
|
||||
private readonly T4 _t4;
|
||||
private readonly T5 _t5;
|
||||
|
||||
public DelayStateCallTimer(
|
||||
TimeSpan delay, TimeSpan interval, int count, Action<T1, T2, T3, T4, T5> callback,
|
||||
T1 t1, T2 t2, T3 t3, T4 t4, T5 t5
|
||||
) : base(delay, interval, count)
|
||||
{
|
||||
Callback = callback;
|
||||
_t1 = t1;
|
||||
_t2 = t2;
|
||||
_t3 = t3;
|
||||
_t4 = t4;
|
||||
_t5 = t5;
|
||||
}
|
||||
|
||||
public Action<T1, T2, T3, T4, T5> Callback { get; }
|
||||
|
||||
protected override void OnTick() => Callback?.Invoke(_t1, _t2, _t3, _t4, _t5);
|
||||
|
||||
public override string ToString() => $"DelayStateCall[{FormatDelegate(Callback)}]";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -343,7 +343,7 @@ namespace Server
|
|||
|
||||
if (endOfSection || i + 1 == end)
|
||||
{
|
||||
if (number < 0 || number > 255)
|
||||
if (number is < 0 or > 255)
|
||||
{
|
||||
valid = false;
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -758,7 +758,7 @@ namespace Server.Accounting
|
|||
|
||||
private static void EventSink_Connected(Mobile m)
|
||||
{
|
||||
if (!(m.Account is Account acc))
|
||||
if (m.Account is not Account acc)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ namespace Server.Misc
|
|||
{
|
||||
var from = e.Mobile;
|
||||
|
||||
if (!(from.Account is Account acct))
|
||||
if (from.Account is not Account acct)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -217,7 +217,7 @@ namespace Server.Misc
|
|||
|
||||
private static void EventSink_DeleteRequest(NetState state, int index)
|
||||
{
|
||||
if (!(state.Account is Account acct))
|
||||
if (state.Account is not Account acct)
|
||||
{
|
||||
state.Disconnect("Attempted to delete a character but the account could not be found.");
|
||||
return;
|
||||
|
|
@ -349,7 +349,7 @@ namespace Server.Misc
|
|||
|
||||
e.Accepted = false;
|
||||
|
||||
if (!(Accounts.GetAccount(un) is Account acct))
|
||||
if (Accounts.GetAccount(un) is not Account acct)
|
||||
{
|
||||
// To prevent someone from making an account of just '' or a bunch of meaningless spaces
|
||||
if (AutoAccountCreation && un.Trim().Length > 0)
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ namespace Server
|
|||
|
||||
protected override void OnTarget(Mobile from, object targeted)
|
||||
{
|
||||
if (!(targeted is IPoint3D p))
|
||||
if (targeted is not IPoint3D p)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace Server.Commands
|
|||
|
||||
foreach (var item in World.Items.Values)
|
||||
{
|
||||
if ((item is Static || item is BaseFloor || item is BaseWall)
|
||||
if (item is Static or BaseFloor or BaseWall
|
||||
&& item.RootParent == null)
|
||||
{
|
||||
w.WriteLine("SECTION WORLDITEM {0}", count);
|
||||
|
|
|
|||
|
|
@ -347,9 +347,7 @@ namespace Server.Commands.Generic
|
|||
{
|
||||
var result = Properties.IncreaseValue(e.Mobile, obj, e.Arguments);
|
||||
|
||||
if (result == "The property has been increased." || result == "The properties have been increased." ||
|
||||
result == "The property has been decreased." || result == "The properties have been decreased." ||
|
||||
result == "The properties have been changed.")
|
||||
if (result is "The property has been increased." or "The properties have been increased." or "The property has been decreased." or "The properties have been decreased." or "The properties have been changed.")
|
||||
{
|
||||
AddResponse(result);
|
||||
}
|
||||
|
|
@ -556,7 +554,7 @@ namespace Server.Commands.Generic
|
|||
|
||||
public override void Execute(CommandEventArgs e, object obj)
|
||||
{
|
||||
if (!(obj is IPoint3D p))
|
||||
if (obj is not IPoint3D p)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -588,7 +586,7 @@ namespace Server.Commands.Generic
|
|||
|
||||
public override void Execute(CommandEventArgs e, object obj)
|
||||
{
|
||||
if (!(obj is IPoint3D p))
|
||||
if (obj is not IPoint3D p)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -787,8 +785,7 @@ namespace Server.Commands.Generic
|
|||
{
|
||||
var result = Properties.GetValue(e.Mobile, obj, e.GetString(i));
|
||||
|
||||
if (result == "Property not found." || result == "Property is write only." ||
|
||||
result.StartsWithOrdinal("Getting this property"))
|
||||
if (result is "Property not found." or "Property is write only." || result.StartsWithOrdinal("Getting this property"))
|
||||
{
|
||||
LogFailure(result);
|
||||
}
|
||||
|
|
@ -1285,7 +1282,7 @@ namespace Server.Commands.Generic
|
|||
|
||||
public override void Execute(CommandEventArgs e, object obj)
|
||||
{
|
||||
if (!(obj is Item item))
|
||||
if (obj is not Item item)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ namespace Server.Commands.Generic
|
|||
{
|
||||
house = null;
|
||||
|
||||
if (item == null || item is BaseMulti || item is HouseSign || staticsOnly && !(item is Static))
|
||||
if (item is null or BaseMulti or HouseSign || staticsOnly && item is not Static)
|
||||
{
|
||||
return DesignInsertResult.InvalidItem;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -325,7 +325,7 @@ namespace Server.Commands.Generic
|
|||
throw new InvalidOperationException("Invalid string comparison operator.");
|
||||
}
|
||||
|
||||
if (m_Operator == StringOperator.Equal || m_Operator == StringOperator.NotEqual)
|
||||
if (m_Operator is StringOperator.Equal or StringOperator.NotEqual)
|
||||
{
|
||||
emitter.BeginCall(
|
||||
type.GetMethod(
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ namespace Server.Commands.Generic
|
|||
return; // sanity check
|
||||
}
|
||||
|
||||
if (!(targeted is Container cont))
|
||||
if (targeted is not Container cont)
|
||||
{
|
||||
from.SendMessage("That is not a container.");
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ namespace Server.Commands.Generic
|
|||
{
|
||||
case ObjectTypes.Both:
|
||||
{
|
||||
if (!(targeted is Item || targeted is Mobile))
|
||||
if (!(targeted is Item or Mobile))
|
||||
{
|
||||
from.SendMessage("This command does not work on that.");
|
||||
return;
|
||||
|
|
@ -56,7 +56,7 @@ namespace Server.Commands.Generic
|
|||
}
|
||||
case ObjectTypes.Items:
|
||||
{
|
||||
if (!(targeted is Item))
|
||||
if (targeted is not Item)
|
||||
{
|
||||
from.SendMessage("This command only works on items.");
|
||||
return;
|
||||
|
|
@ -66,7 +66,7 @@ namespace Server.Commands.Generic
|
|||
}
|
||||
case ObjectTypes.Mobiles:
|
||||
{
|
||||
if (!(targeted is Mobile))
|
||||
if (targeted is not Mobile)
|
||||
{
|
||||
from.SendMessage("This command only works on mobiles.");
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ namespace Server.Commands.Generic
|
|||
{
|
||||
case ObjectTypes.Items:
|
||||
{
|
||||
if (!(obj is Item))
|
||||
if (obj is not Item)
|
||||
{
|
||||
e.Mobile.SendMessage("This command only works on items.");
|
||||
return;
|
||||
|
|
@ -62,7 +62,7 @@ namespace Server.Commands.Generic
|
|||
}
|
||||
case ObjectTypes.Mobiles:
|
||||
{
|
||||
if (!(obj is Mobile))
|
||||
if (obj is not Mobile)
|
||||
{
|
||||
e.Mobile.SendMessage("This command only works on mobiles.");
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ namespace Server.Commands.Generic
|
|||
{
|
||||
case ObjectTypes.Both:
|
||||
{
|
||||
if (!(targeted is Item) && !(targeted is Mobile))
|
||||
if (targeted is not Item && targeted is not Mobile)
|
||||
{
|
||||
from.SendMessage("This command does not work on that.");
|
||||
return;
|
||||
|
|
@ -78,7 +78,7 @@ namespace Server.Commands.Generic
|
|||
}
|
||||
case ObjectTypes.Items:
|
||||
{
|
||||
if (!(targeted is Item))
|
||||
if (targeted is not Item)
|
||||
{
|
||||
from.SendMessage("This command only works on items.");
|
||||
return;
|
||||
|
|
@ -88,7 +88,7 @@ namespace Server.Commands.Generic
|
|||
}
|
||||
case ObjectTypes.Mobiles:
|
||||
{
|
||||
if (!(targeted is Mobile))
|
||||
if (targeted is not Mobile)
|
||||
{
|
||||
from.SendMessage("This command only works on mobiles.");
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -566,7 +566,7 @@ namespace Server.Commands
|
|||
{
|
||||
map = Map.AllMaps[i];
|
||||
|
||||
if (map.MapIndex == 0x7F || map.MapIndex == 0xFF)
|
||||
if (map.MapIndex is 0x7F or 0xFF)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
@ -595,7 +595,7 @@ namespace Server.Commands
|
|||
{
|
||||
map = Map.AllMaps[i];
|
||||
|
||||
if (map.MapIndex == 0x7F || map.MapIndex == 0xFF || from.Map == map)
|
||||
if (map.MapIndex is 0x7F or 0xFF || from.Map == map)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
@ -629,7 +629,7 @@ namespace Server.Commands
|
|||
|
||||
from.SendMessage("Region name not found");
|
||||
}
|
||||
else if (e.Length == 2 || e.Length == 3)
|
||||
else if (e.Length is 2 or 3)
|
||||
{
|
||||
var map = from.Map;
|
||||
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ namespace Server.Commands
|
|||
continue;
|
||||
}
|
||||
|
||||
if (usage == null || !(attrs[0] is DescriptionAttribute desc))
|
||||
if (usage == null || attrs[0] is not DescriptionAttribute desc)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,14 +23,14 @@ namespace Server.Commands
|
|||
|
||||
public override void Execute(CommandEventArgs e, object obj)
|
||||
{
|
||||
if (!(obj is IPoint3D point))
|
||||
if (obj is not IPoint3D point)
|
||||
{
|
||||
LogFailure("That cannot be located.");
|
||||
return;
|
||||
}
|
||||
|
||||
var label = $"(x:{point.X}, y:{point.Y}, z:{point.Z})";
|
||||
if (obj is LandTarget || obj is StaticTarget)
|
||||
if (obj is LandTarget or StaticTarget)
|
||||
{
|
||||
List<int> graphics;
|
||||
if (e.Arguments.Length == 0)
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ namespace Server.Commands
|
|||
|
||||
var path = Core.BaseDirectory;
|
||||
|
||||
var name = !(from.Account is Account acct) ? from.Name : acct.Username;
|
||||
var name = from.Account is not Account acct ? from.Name : acct.Username;
|
||||
|
||||
AppendPath(ref path, "Logs");
|
||||
AppendPath(ref path, "Commands");
|
||||
|
|
|
|||
|
|
@ -1107,7 +1107,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (srcItem is Teleporter || srcItem is FillableContainer || srcItem is BaseBook)
|
||||
else if (srcItem is Teleporter or FillableContainer or BaseBook)
|
||||
{
|
||||
eable = map.GetItemsInRange(new Point3D(x, y, z), 0);
|
||||
|
||||
|
|
|
|||
|
|
@ -1103,7 +1103,7 @@ namespace Server.Commands
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (srcItem is Teleporter || srcItem is FillableContainer || srcItem is BaseBook)
|
||||
else if (srcItem is Teleporter or FillableContainer or BaseBook)
|
||||
{
|
||||
eable = map.GetItemsInRange(new Point3D(x, y, z), 0);
|
||||
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ namespace Server.Commands
|
|||
var count = 0;
|
||||
foreach (var item in eable)
|
||||
{
|
||||
if (!(item is KeywordTeleporter || item is SkillTeleporter) && IsWithinZ(item.Z - worldLocation.Z))
|
||||
if (!(item is KeywordTeleporter or SkillTeleporter) && IsWithinZ(item.Z - worldLocation.Z))
|
||||
{
|
||||
count++;
|
||||
item.Delete();
|
||||
|
|
|
|||
|
|
@ -263,7 +263,7 @@ namespace Server.Commands
|
|||
{
|
||||
var obj = realProps[i].GetValue(realObjs[i], null);
|
||||
|
||||
if (!(obj is IConvertible))
|
||||
if (obj is not IConvertible)
|
||||
{
|
||||
return "Property is not IConvertable.";
|
||||
}
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ namespace Server
|
|||
continue;
|
||||
}
|
||||
|
||||
if (item is Static || item is BaseFloor || item is BaseWall)
|
||||
if (item is Static or BaseFloor or BaseWall)
|
||||
{
|
||||
var itemMap = item.Map;
|
||||
|
||||
|
|
@ -212,7 +212,7 @@ namespace Server
|
|||
|
||||
foreach (var item in eable)
|
||||
{
|
||||
if (item is Static || item is BaseFloor || item is BaseWall)
|
||||
if (item is Static or BaseFloor or BaseWall)
|
||||
{
|
||||
var itemMap = item.Map;
|
||||
|
||||
|
|
@ -306,7 +306,7 @@ namespace Server
|
|||
var xOffset = item.X - state.m_X * 8;
|
||||
var yOffset = item.Y - state.m_Y * 8;
|
||||
|
||||
if (xOffset < 0 || xOffset >= 8 || yOffset < 0 || yOffset >= 8)
|
||||
if (xOffset is < 0 or >= 8 || yOffset is < 0 or >= 8)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ namespace Server.Commands
|
|||
|
||||
foreach (var obj in eable)
|
||||
{
|
||||
if (items && obj is Item && !(obj is BaseMulti || obj is HouseSign))
|
||||
if (items && obj is Item && !(obj is BaseMulti or HouseSign))
|
||||
{
|
||||
toDelete.Add(obj);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -709,7 +709,7 @@ namespace Server.Engines.BulkOrders
|
|||
|
||||
var price = Utility.ToInt32(text);
|
||||
|
||||
if (price < 0 || price > 250000000)
|
||||
if (price is < 0 or > 250000000)
|
||||
{
|
||||
from.SendLocalizedMessage(1062390); // The price you requested is outrageous!
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ namespace Server.Engines.BulkOrders
|
|||
return;
|
||||
}
|
||||
|
||||
if (!(m_Book.RootParent is PlayerVendor pv))
|
||||
if (m_Book.RootParent is not PlayerVendor pv)
|
||||
{
|
||||
m_From.SendLocalizedMessage(1062382); // The deed selected is not available.
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -533,7 +533,7 @@ namespace Server.Engines.BulkOrders
|
|||
|
||||
private static Item CreatePowerScroll(int type)
|
||||
{
|
||||
if (type == 5 || type == 10 || type == 15 || type == 20)
|
||||
if (type is 5 or 10 or 15 or 20)
|
||||
{
|
||||
return new PowerScroll(SkillName.Blacksmith, 100 + type);
|
||||
}
|
||||
|
|
@ -545,7 +545,7 @@ namespace Server.Engines.BulkOrders
|
|||
|
||||
private static Item CreateAncientHammer(int type)
|
||||
{
|
||||
if (type == 10 || type == 15 || type == 30 || type == 60)
|
||||
if (type is 10 or 15 or 30 or 60)
|
||||
{
|
||||
return new AncientSmithyHammer(type);
|
||||
}
|
||||
|
|
@ -848,7 +848,7 @@ namespace Server.Engines.BulkOrders
|
|||
|
||||
private static Item CreatePowerScroll(int type)
|
||||
{
|
||||
if (type == 5 || type == 10 || type == 15 || type == 20)
|
||||
if (type is 5 or 10 or 15 or 20)
|
||||
{
|
||||
return new PowerScroll(SkillName.Tailoring, 100 + type);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,7 +132,7 @@ namespace Server.Engines.BulkOrders
|
|||
from.SendLocalizedMessage(1045166);
|
||||
}
|
||||
else if (Type == null || objectType != Type && !objectType.IsSubclassOf(Type) ||
|
||||
!(item is BaseWeapon) && !(item is BaseArmor) && !(item is BaseClothing))
|
||||
item is not BaseWeapon && item is not BaseArmor && item is not BaseClothing)
|
||||
{
|
||||
from.SendLocalizedMessage(1045169); // The item is not in the request.
|
||||
}
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ namespace Server.Engines.ConPVP
|
|||
|
||||
if (info.IsSwitched(1))
|
||||
{
|
||||
if (!(m_Challenged is PlayerMobile pm))
|
||||
if (m_Challenged is not PlayerMobile pm)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ namespace Server.Engines.ConPVP
|
|||
|
||||
public static bool IsFreeConsume(Mobile mob)
|
||||
{
|
||||
if (!(mob is PlayerMobile pm) || pm.DuelContext?.m_EventGame == null)
|
||||
if (mob is not PlayerMobile pm || pm.DuelContext?.m_EventGame == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
@ -257,7 +257,7 @@ namespace Server.Engines.ConPVP
|
|||
|
||||
public static bool AllowSpecialAbility(Mobile from, string name, bool message)
|
||||
{
|
||||
if (!(from is PlayerMobile pm))
|
||||
if (from is not PlayerMobile pm)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
@ -345,7 +345,7 @@ namespace Server.Engines.ConPVP
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!(weapon is BaseRanged) && !Ruleset.GetOption("Weapons", "Melee"))
|
||||
if (weapon is not BaseRanged && !Ruleset.GetOption("Weapons", "Melee"))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
@ -411,7 +411,7 @@ namespace Server.Engines.ConPVP
|
|||
return true;
|
||||
}
|
||||
|
||||
if (!(item is BaseRefreshPotion))
|
||||
if (item is not BaseRefreshPotion)
|
||||
{
|
||||
if (CantDoAnything(from))
|
||||
{
|
||||
|
|
@ -513,7 +513,7 @@ namespace Server.Engines.ConPVP
|
|||
return false;
|
||||
}
|
||||
|
||||
if (item is BasePotion && !(item is BaseExplosionPotion) && !(item is BaseRefreshPotion) && IsSuddenDeath)
|
||||
if (item is BasePotion && item is not BaseExplosionPotion && item is not BaseRefreshPotion && IsSuddenDeath)
|
||||
{
|
||||
from.SendMessage(0x22, "You may not drink potions in sudden death.");
|
||||
return false;
|
||||
|
|
@ -655,7 +655,7 @@ namespace Server.Engines.ConPVP
|
|||
|
||||
public void Requip(Mobile from, Container cont)
|
||||
{
|
||||
if (!(cont is Corpse corpse))
|
||||
if (cont is not Corpse corpse)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -670,7 +670,7 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
var item = items[i];
|
||||
|
||||
if (item.Layer == Layer.Hair || item.Layer == Layer.FacialHair || !item.Movable)
|
||||
if (item.Layer is Layer.Hair or Layer.FacialHair || !item.Movable)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
@ -1295,7 +1295,7 @@ namespace Server.Engines.ConPVP
|
|||
|
||||
private static void EventSink_Login(Mobile m)
|
||||
{
|
||||
if (!(m is PlayerMobile pm))
|
||||
if (m is not PlayerMobile pm)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -1385,7 +1385,7 @@ namespace Server.Engines.ConPVP
|
|||
return;
|
||||
}
|
||||
|
||||
if (!(e.Mobile is PlayerMobile pm))
|
||||
if (e.Mobile is not PlayerMobile pm)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -2048,7 +2048,7 @@ namespace Server.Engines.ConPVP
|
|||
int number = item switch
|
||||
{
|
||||
BaseWeapon _ => 1062001, // You can no longer wield your ~1_WEAPON~
|
||||
_ when !(item is BaseShield) && (item is BaseArmor || item is BaseClothing) => 1062002, // You can no longer wear your ~1_ARMOR~
|
||||
not BaseShield when item is BaseArmor or BaseClothing => 1062002, // You can no longer wear your ~1_ARMOR~
|
||||
_ => 1062003 // You can no longer equip your ~1_SHIELD~
|
||||
};
|
||||
|
||||
|
|
@ -2403,7 +2403,7 @@ namespace Server.Engines.ConPVP
|
|||
m_GateFacet = Initiator.Map;
|
||||
}
|
||||
|
||||
if (!(arena.Teleporter is ExitTeleporter tp))
|
||||
if (arena.Teleporter is not ExitTeleporter tp)
|
||||
{
|
||||
arena.Teleporter = tp = new ExitTeleporter();
|
||||
tp.MoveToWorld(arena.GateOut == Point3D.Zero ? arena.Outside : arena.GateOut, arena.Facet);
|
||||
|
|
|
|||
|
|
@ -210,7 +210,7 @@ namespace Server.Engines.ConPVP
|
|||
return false;
|
||||
}
|
||||
|
||||
if (!(obj is IPoint3D))
|
||||
if (obj is not IPoint3D)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
@ -1680,7 +1680,7 @@ namespace Server.Engines.ConPVP
|
|||
|
||||
public int GetTeamID(Mobile mob)
|
||||
{
|
||||
if (!(mob is PlayerMobile pm))
|
||||
if (mob is not PlayerMobile pm)
|
||||
{
|
||||
return mob is BaseCreature creature ? creature.Team - 1 : -1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -953,7 +953,7 @@ namespace Server.Engines.ConPVP
|
|||
|
||||
public int GetTeamID(Mobile mob)
|
||||
{
|
||||
if (!(mob is PlayerMobile pm))
|
||||
if (mob is not PlayerMobile pm)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -553,7 +553,7 @@ namespace Server.Engines.ConPVP
|
|||
|
||||
public int GetTeamID(Mobile mob)
|
||||
{
|
||||
if (!(mob is PlayerMobile pm))
|
||||
if (mob is not PlayerMobile pm)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -924,7 +924,7 @@ namespace Server.Engines.ConPVP
|
|||
|
||||
public int GetTeamID(Mobile mob)
|
||||
{
|
||||
if (!(mob is PlayerMobile pm))
|
||||
if (mob is not PlayerMobile pm)
|
||||
{
|
||||
return mob is BaseCreature creature ? creature.Team - 1 : -1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -318,7 +318,7 @@ namespace Server.Engines.ConPVP
|
|||
|
||||
if (info.IsSwitched(1))
|
||||
{
|
||||
if (!(mob is PlayerMobile pm))
|
||||
if (mob is not PlayerMobile pm)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -565,7 +565,7 @@ namespace Server.Engines.ConPVP
|
|||
|
||||
private void AddPlayer_OnTarget(Mobile from, object obj)
|
||||
{
|
||||
if (!(obj is Mobile mob) || mob == from)
|
||||
if (obj is not Mobile mob || mob == from)
|
||||
{
|
||||
m_From.SendGump(new ConfirmSignupGump(m_From, m_Registrar, m_Tournament, m_Players));
|
||||
|
||||
|
|
@ -604,7 +604,7 @@ namespace Server.Engines.ConPVP
|
|||
}
|
||||
else
|
||||
{
|
||||
if (!(mob is PlayerMobile pm))
|
||||
if (mob is not PlayerMobile pm)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ namespace Server.Engines.ConPVP
|
|||
return;
|
||||
}
|
||||
|
||||
if (!(targeted is Mobile mob))
|
||||
if (targeted is not Mobile mob)
|
||||
{
|
||||
from.SendMessage("That is not a player.");
|
||||
}
|
||||
|
|
@ -238,7 +238,7 @@ namespace Server.Engines.ConPVP
|
|||
}
|
||||
else
|
||||
{
|
||||
if (!(mob is PlayerMobile pm))
|
||||
if (mob is not PlayerMobile pm)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
case 1: // okay
|
||||
{
|
||||
if (!(m_From is PlayerMobile pm))
|
||||
if (m_From is not PlayerMobile pm)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -306,7 +306,7 @@ namespace Server.Engines.ConPVP
|
|||
}
|
||||
case TourneyBracketGumpType.Participant_Info:
|
||||
{
|
||||
if (!(obj is TourneyParticipant part))
|
||||
if (obj is not TourneyParticipant part)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
@ -380,7 +380,7 @@ namespace Server.Engines.ConPVP
|
|||
AddLeftArrow(25, 11, ToButtonID(0, 3));
|
||||
AddHtml(25, 35, 250, 20, Center("Participants"));
|
||||
|
||||
if (!(obj is Mobile mob))
|
||||
if (obj is not Mobile mob)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
@ -428,7 +428,7 @@ namespace Server.Engines.ConPVP
|
|||
AddLeftArrow(25, 11, ToButtonID(0, 2));
|
||||
AddHtml(25, 35, 250, 20, Center("Rounds"));
|
||||
|
||||
if (!(m_Object is PyramidLevel level))
|
||||
if (m_Object is not PyramidLevel level)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
@ -490,9 +490,7 @@ namespace Server.Engines.ConPVP
|
|||
}
|
||||
}
|
||||
else if (m_Tournament.EventController != null ||
|
||||
m_Tournament.TourneyType == TourneyType.RandomTeam ||
|
||||
m_Tournament.TourneyType == TourneyType.RedVsBlue ||
|
||||
m_Tournament.TourneyType == TourneyType.Faction)
|
||||
m_Tournament.TourneyType is TourneyType.RandomTeam or TourneyType.RedVsBlue or TourneyType.Faction)
|
||||
{
|
||||
for (var j = 0; j < match.Participants.Count; ++j)
|
||||
{
|
||||
|
|
@ -572,7 +570,7 @@ namespace Server.Engines.ConPVP
|
|||
}
|
||||
case TourneyBracketGumpType.Match_Info:
|
||||
{
|
||||
if (!(obj is TourneyMatch match))
|
||||
if (obj is not TourneyMatch match)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
@ -605,9 +603,7 @@ namespace Server.Engines.ConPVP
|
|||
}
|
||||
}
|
||||
else if (m_Tournament.EventController != null ||
|
||||
m_Tournament.TourneyType == TourneyType.RandomTeam ||
|
||||
m_Tournament.TourneyType == TourneyType.RedVsBlue ||
|
||||
m_Tournament.TourneyType == TourneyType.Faction)
|
||||
m_Tournament.TourneyType is TourneyType.RandomTeam or TourneyType.RedVsBlue or TourneyType.Faction)
|
||||
{
|
||||
for (var i = 0; i < match.Participants.Count; ++i)
|
||||
{
|
||||
|
|
@ -840,7 +836,7 @@ namespace Server.Engines.ConPVP
|
|||
}
|
||||
case 5:
|
||||
{
|
||||
if (!(m_Object is TourneyMatch match))
|
||||
if (m_Object is not TourneyMatch match)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
@ -990,7 +986,7 @@ namespace Server.Engines.ConPVP
|
|||
break;
|
||||
}
|
||||
|
||||
if (!(m_Object is PyramidLevel level))
|
||||
if (m_Object is not PyramidLevel level)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
var x = ourLevel - theirLevel;
|
||||
|
||||
if (x < -6 || x > +6)
|
||||
if (x is < -6 or > +6)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ namespace Server.Engines.ConPVP
|
|||
{
|
||||
var copy = new List<TourneyParticipant>(participants);
|
||||
|
||||
if (groupType == GroupingType.Nearest || groupType == GroupingType.HighVsLow)
|
||||
if (groupType is GroupingType.Nearest or GroupingType.HighVsLow)
|
||||
{
|
||||
copy.Sort();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -483,7 +483,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
for (var j = 0; j < items[i].Length; ++j)
|
||||
{
|
||||
if (!(items[i][j] is IHasQuantity hq))
|
||||
if (items[i][j] is not IHasQuantity hq)
|
||||
{
|
||||
totals[i] += items[i][j].Amount;
|
||||
}
|
||||
|
|
@ -512,7 +512,7 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
var item = items[i][j];
|
||||
|
||||
if (!(item is IHasQuantity hq))
|
||||
if (item is not IHasQuantity hq)
|
||||
{
|
||||
var theirAmount = item.Amount;
|
||||
|
||||
|
|
@ -561,7 +561,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
for (var i = 0; i < items.Length; ++i)
|
||||
{
|
||||
if (!(items[i] is IHasQuantity hq))
|
||||
if (items[i] is not IHasQuantity hq)
|
||||
{
|
||||
amount += items[i].Amount;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ namespace Server.Engines.Craft
|
|||
return EnhanceResult.NotInBackpack;
|
||||
}
|
||||
|
||||
if (!(item is BaseArmor) && !(item is BaseWeapon))
|
||||
if (item is not BaseArmor && item is not BaseWeapon)
|
||||
{
|
||||
return EnhanceResult.BadItem;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,11 +90,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
if (m_CraftSystem is DefTailoring)
|
||||
{
|
||||
return clothing is BearMask
|
||||
|| clothing is DeerMask
|
||||
|| clothing is TheMostKnowledgePerson
|
||||
|| clothing is TheRobeOfBritanniaAri
|
||||
|| clothing is EmbroideredOakLeafCloak;
|
||||
return clothing is BearMask or DeerMask or TheMostKnowledgePerson or TheRobeOfBritanniaAri or EmbroideredOakLeafCloak;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
@ -106,44 +102,23 @@ namespace Server.Engines.Craft
|
|||
|
||||
if (m_CraftSystem is DefTinkering)
|
||||
{
|
||||
return weapon is Cleaver
|
||||
|| weapon is Hatchet
|
||||
|| weapon is Pickaxe
|
||||
|| weapon is ButcherKnife
|
||||
|| weapon is SkinningKnife;
|
||||
return weapon is Cleaver or Hatchet or Pickaxe or ButcherKnife or SkinningKnife;
|
||||
}
|
||||
|
||||
if (m_CraftSystem is DefCarpentry)
|
||||
{
|
||||
return weapon is Club
|
||||
|| weapon is BlackStaff
|
||||
|| weapon is MagicWand
|
||||
|
||||
// TODO: Make these items craftable
|
||||
|| weapon is WildStaff;
|
||||
return weapon is Club or BlackStaff or MagicWand or WildStaff;
|
||||
}
|
||||
|
||||
if (m_CraftSystem is DefBlacksmithy)
|
||||
{
|
||||
return weapon is Pitchfork
|
||||
|
||||
// TODO: Make these items craftable
|
||||
|| weapon is RadiantScimitar
|
||||
|| weapon is WarCleaver
|
||||
|| weapon is ElvenSpellblade
|
||||
|| weapon is AssassinSpike
|
||||
|| weapon is Leafblade
|
||||
|| weapon is RuneBlade
|
||||
|| weapon is ElvenMachete
|
||||
|| weapon is OrnateAxe
|
||||
|| weapon is DiamondMace;
|
||||
return weapon is Pitchfork or RadiantScimitar or WarCleaver or ElvenSpellblade or AssassinSpike or Leafblade or RuneBlade or ElvenMachete or OrnateAxe or DiamondMace;
|
||||
}
|
||||
|
||||
// TODO: Make these items craftable
|
||||
if (m_CraftSystem is DefBowFletching)
|
||||
{
|
||||
return weapon is ElvenCompositeLongbow
|
||||
|| weapon is MagicalShortbow;
|
||||
return weapon is ElvenCompositeLongbow or MagicalShortbow;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
@ -156,36 +131,17 @@ namespace Server.Engines.Craft
|
|||
// TODO: Make these items craftable
|
||||
if (m_CraftSystem is DefTailoring)
|
||||
{
|
||||
return armor is LeafTonlet
|
||||
|| armor is LeafArms
|
||||
|| armor is LeafChest
|
||||
|| armor is LeafGloves
|
||||
|| armor is LeafGorget
|
||||
|| armor is LeafLegs
|
||||
|| armor is HideChest
|
||||
|| armor is HideGloves
|
||||
|| armor is HideGorget
|
||||
|| armor is HidePants
|
||||
|| armor is HidePauldrons;
|
||||
return armor is LeafTonlet or LeafArms or LeafChest or LeafGloves or LeafGorget or LeafLegs or HideChest or HideGloves or HideGorget or HidePants or HidePauldrons;
|
||||
}
|
||||
|
||||
if (m_CraftSystem is DefCarpentry)
|
||||
{
|
||||
return armor is WingedHelm
|
||||
|| armor is RavenHelm
|
||||
|| armor is VultureHelm
|
||||
|| armor is WoodlandArms
|
||||
|| armor is WoodlandChest
|
||||
|| armor is WoodlandGloves
|
||||
|| armor is WoodlandGorget
|
||||
|| armor is WoodlandLegs;
|
||||
return armor is WingedHelm or RavenHelm or VultureHelm or WoodlandArms or WoodlandChest or WoodlandGloves or WoodlandGorget or WoodlandLegs;
|
||||
}
|
||||
|
||||
if (m_CraftSystem is DefBlacksmithy)
|
||||
{
|
||||
return armor is Circlet
|
||||
|| armor is RoyalCirclet
|
||||
|| armor is GemmedCirclet;
|
||||
return armor is Circlet or RoyalCirclet or GemmedCirclet;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
@ -448,7 +404,7 @@ namespace Server.Engines.Craft
|
|||
}
|
||||
|
||||
if (m_CraftSystem.CraftItems.SearchForSubclass(clothing.GetType()) == null &&
|
||||
!IsSpecialClothing(clothing) && !(clothing is TribalMask || clothing is HornedTribalMask))
|
||||
!IsSpecialClothing(clothing) && !(clothing is TribalMask or HornedTribalMask))
|
||||
{
|
||||
number = usingDeed
|
||||
? 1061136
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ namespace Server.Engines.Craft
|
|||
int index;
|
||||
|
||||
// Other Items
|
||||
if (Core.Expansion == Expansion.AOS || Core.Expansion == Expansion.SE)
|
||||
if (Core.Expansion is Expansion.AOS or Expansion.SE)
|
||||
{
|
||||
index = AddCraft(typeof(Board), 1044294, 1027127, 0.0, 0.0, typeof(Log), 1044466, 1, 1044465);
|
||||
SetUseAllRes(index, true);
|
||||
|
|
|
|||
|
|
@ -235,7 +235,7 @@ namespace Server.Engines.Doom
|
|||
_ => new MushroomTrap()
|
||||
};
|
||||
|
||||
if (trap is FireColumnTrap || trap is MushroomTrap)
|
||||
if (trap is FireColumnTrap or MushroomTrap)
|
||||
{
|
||||
trap.Hue = 0x451;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ namespace Server.Engines.Doom
|
|||
|
||||
public override void OnEnter(Mobile m)
|
||||
{
|
||||
if (m == null || m is WandererOfTheVoid)
|
||||
if (m is null or WandererOfTheVoid)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ namespace Server.Ethics
|
|||
|
||||
foreach (var item in eable)
|
||||
{
|
||||
if (item is AnkhNorth || item is AnkhWest)
|
||||
if (item is AnkhNorth or AnkhWest)
|
||||
{
|
||||
found = true;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace Server.Ethics.Evil
|
|||
{
|
||||
var fac = Faction.Find(mob);
|
||||
|
||||
return fac is Minax || fac is Shadowlords;
|
||||
return fac is Minax or Shadowlords;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ namespace Server.Ethics.Evil
|
|||
|
||||
private void Power_OnTarget(Mobile fromMobile, object obj, Player from)
|
||||
{
|
||||
if (!(obj is IPoint3D p))
|
||||
if (obj is not IPoint3D p)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ namespace Server.Ethics.Evil
|
|||
|
||||
private void Power_OnTarget(Mobile fromMobile, object obj, Player from)
|
||||
{
|
||||
if (!(obj is Item item))
|
||||
if (obj is not Item item)
|
||||
{
|
||||
from.Mobile.LocalOverheadMessage(MessageType.Regular, 0x3B2, false, "You may not imbue that.");
|
||||
return;
|
||||
|
|
@ -45,7 +45,7 @@ namespace Server.Ethics.Evil
|
|||
return;
|
||||
}
|
||||
|
||||
var canImbue = (item is Spellbook || item is BaseClothing || item is BaseArmor || item is BaseWeapon) &&
|
||||
var canImbue = item is Spellbook or BaseClothing or BaseArmor or BaseWeapon &&
|
||||
item.Name == null;
|
||||
|
||||
if (canImbue)
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ namespace Server.Ethics.Hero
|
|||
|
||||
var fac = Faction.Find(mob);
|
||||
|
||||
return fac is TrueBritannians || fac is CouncilOfMages;
|
||||
return fac is TrueBritannians or CouncilOfMages;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ namespace Server.Ethics.Hero
|
|||
|
||||
private void Power_OnTarget(Mobile fromMobile, object obj, Player from)
|
||||
{
|
||||
if (!(obj is IPoint3D p))
|
||||
if (obj is not IPoint3D p)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ namespace Server.Ethics.Hero
|
|||
|
||||
private void Power_OnTarget(Mobile fromMobile, object obj, Player from)
|
||||
{
|
||||
if (!(obj is Item item))
|
||||
if (obj is not Item item)
|
||||
{
|
||||
from.Mobile.LocalOverheadMessage(MessageType.Regular, 0x3B2, false, "You may not imbue that.");
|
||||
return;
|
||||
|
|
@ -45,7 +45,7 @@ namespace Server.Ethics.Hero
|
|||
return;
|
||||
}
|
||||
|
||||
var canImbue = (item is Spellbook || item is BaseClothing || item is BaseArmor || item is BaseWeapon) &&
|
||||
var canImbue = item is Spellbook or BaseClothing or BaseArmor or BaseWeapon &&
|
||||
item.Name == null;
|
||||
|
||||
if (canImbue)
|
||||
|
|
|
|||
|
|
@ -502,7 +502,7 @@ namespace Server.Factions
|
|||
|
||||
public static bool IsFactionBanned(Mobile mob)
|
||||
{
|
||||
if (!(mob.Account is Account acct))
|
||||
if (mob.Account is not Account acct)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
@ -512,7 +512,7 @@ namespace Server.Factions
|
|||
|
||||
public void OnJoinAccepted(Mobile mob)
|
||||
{
|
||||
if (!(mob is PlayerMobile pm))
|
||||
if (mob is not PlayerMobile pm)
|
||||
{
|
||||
return; // sanity
|
||||
}
|
||||
|
|
@ -571,7 +571,7 @@ namespace Server.Factions
|
|||
|
||||
for (var i = 0; i < members.Count; ++i)
|
||||
{
|
||||
if (!(members[i] is PlayerMobile member))
|
||||
if (members[i] is not PlayerMobile member)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
|
@ -767,7 +767,7 @@ namespace Server.Factions
|
|||
|
||||
foreach (var item in World.Items.Values)
|
||||
{
|
||||
if (item is IFactionItem && !(item is HoodedShroudOfShadows))
|
||||
if (item is IFactionItem && item is not HoodedShroudOfShadows)
|
||||
{
|
||||
items.Add(item);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ namespace Server.Factions
|
|||
|
||||
public static Item Imbue(Item item, Faction faction, bool expire, int hue)
|
||||
{
|
||||
if (!(item is IFactionItem))
|
||||
if (item is not IFactionItem)
|
||||
{
|
||||
return item;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ namespace Server.Factions
|
|||
{
|
||||
case 1: // continue
|
||||
{
|
||||
if (!(m_From.Guild is Guild guild))
|
||||
if (m_From.Guild is not Guild guild)
|
||||
{
|
||||
var pl = PlayerState.Find(m_From);
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ namespace Server
|
|||
TargetFlags.None,
|
||||
(from, obj, stormsEye) =>
|
||||
{
|
||||
if (!stormsEye.Movable || stormsEye.Deleted || !(obj is IPoint3D pt))
|
||||
if (!stormsEye.Movable || stormsEye.Deleted || obj is not IPoint3D pt)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -156,7 +156,7 @@ namespace Server.Factions
|
|||
return false;
|
||||
}
|
||||
|
||||
if (m_Guard.Weapon is Item weapon && weapon.Parent == m_Guard && !(weapon is Fists))
|
||||
if (m_Guard.Weapon is Item weapon && weapon.Parent == m_Guard && weapon is not Fists)
|
||||
{
|
||||
pack.DropItem(weapon);
|
||||
return true;
|
||||
|
|
|
|||
|
|
@ -25,13 +25,12 @@ namespace Server.Engines.Harvest
|
|||
var itemID = target.ItemID;
|
||||
|
||||
// grave
|
||||
if (itemID == 0xED3 || itemID == 0xEDF || itemID == 0xEE0 || itemID == 0xEE1 || itemID == 0xEE2 ||
|
||||
itemID == 0xEE8)
|
||||
if (itemID is 0xED3 or 0xEDF or 0xEE0 or 0xEE1 or 0xEE2 or 0xEE8)
|
||||
{
|
||||
if (from is PlayerMobile player)
|
||||
{
|
||||
var qs = player.Quest;
|
||||
if (!(qs is WitchApprenticeQuest))
|
||||
if (qs is not WitchApprenticeQuest)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -350,7 +350,7 @@ namespace Server.Engines.Harvest
|
|||
|
||||
public override bool Give(Mobile m, Item item, bool placeAtFeet)
|
||||
{
|
||||
if (item is TreasureMap || item is MessageInABottle || item is SpecialFishingNet)
|
||||
if (item is TreasureMap or MessageInABottle or SpecialFishingNet)
|
||||
{
|
||||
BaseCreature serp;
|
||||
|
||||
|
|
@ -395,7 +395,7 @@ namespace Server.Engines.Harvest
|
|||
return true; // we don't want to give the item to the player, it's on the serpent
|
||||
}
|
||||
|
||||
return base.Give(m, item, placeAtFeet || item is BigFish || item is WoodenChest || item is MetalGoldenChest);
|
||||
return base.Give(m, item, placeAtFeet || item is BigFish or WoodenChest or MetalGoldenChest);
|
||||
}
|
||||
|
||||
public override void SendSuccessTo(Mobile from, Item item, HarvestResource resource)
|
||||
|
|
@ -405,7 +405,7 @@ namespace Server.Engines.Harvest
|
|||
from.SendLocalizedMessage(1042635); // Your fishing pole bends as you pull a big fish from the depths!
|
||||
fish.Fisher = from;
|
||||
}
|
||||
else if (item is WoodenChest || item is MetalGoldenChest)
|
||||
else if (item is WoodenChest or MetalGoldenChest)
|
||||
{
|
||||
from.SendLocalizedMessage(503175); // You pull up a heavy chest from the depths of the ocean!
|
||||
}
|
||||
|
|
|
|||
|
|
@ -169,7 +169,7 @@ namespace Server.Engines.Harvest
|
|||
{
|
||||
item.LabelTo(from, 500464); // Use this on corpses to carve away meat and hide
|
||||
}
|
||||
else if (toHarvest is StaticTarget || toHarvest is LandTarget)
|
||||
else if (toHarvest is StaticTarget or LandTarget)
|
||||
{
|
||||
from.SendLocalizedMessage(500489); // You can't use an axe on that.
|
||||
}
|
||||
|
|
|
|||
|
|
@ -225,21 +225,21 @@ namespace Server.Engines.Help
|
|||
* Use this option when another player is verbally harassing your character.
|
||||
* Verbal harassment behaviors include but are not limited to, using bad language, threats etc..
|
||||
* Before you submit a complaint be sure you understand what constitutes harassment
|
||||
* <A HREF="http://uo.custhelp.com/cgi-bin/uo.cfg/php/enduser/std_adp.php?p_faqid=40"><EFBFBD> what is verbal harassment? -</A>
|
||||
* <A HREF="http://uo.custhelp.com/cgi-bin/uo.cfg/php/enduser/std_adp.php?p_faqid=40">- what is verbal harassment? -</A>
|
||||
* and that you have followed these steps:<BR>
|
||||
* 1. You have asked the player to stop and they have continued.<BR>
|
||||
* 2. You have tried to remove yourself from the situation.<BR>
|
||||
* 3. You have done nothing to instigate or further encourage the harassment.<BR>
|
||||
* 4. You have added the player to your ignore list.
|
||||
* <A HREF="http://uo.custhelp.com/cgi-bin/uo.cfg/php/enduser/std_adp.php?p_faqid=138">- How do I ignore a player?</A><BR>
|
||||
* 5. You have read and understand Origin<EFBFBD>s definition of harassment.<BR>
|
||||
* 5. You have read and understand Origin's definition of harassment.<BR>
|
||||
* 6. Your account information is up to date. (Including a current email address)<BR>
|
||||
* *If these steps have not been taken, GMs may be unable to take action against the offending player.<BR>
|
||||
* **A chat log will be review by a GM to assess the validity of this complaint.
|
||||
* Abuse of this system is a violation of the Rules of Conduct.<BR>
|
||||
* EXPLOITING<BR>
|
||||
* Use this option to report someone who may be exploiting or cheating.
|
||||
* <A HREF="http://uo.custhelp.com/cgi-bin/uo.cfg/php/enduser/std_adp.php?p_faqid=41"><EFBFBD> What constitutes an exploit?</a>
|
||||
* <A HREF="http://uo.custhelp.com/cgi-bin/uo.cfg/php/enduser/std_adp.php?p_faqid=41">- What constitutes an exploit?</a>
|
||||
*/
|
||||
AddHtmlLocalized(
|
||||
110,
|
||||
|
|
@ -259,14 +259,14 @@ namespace Server.Engines.Help
|
|||
* Use this option when another player is harassing your character using game mechanics.
|
||||
* Physical harassment includes but is not limited to luring, Kill Stealing, and any act that causes a players death in Trammel.
|
||||
* Before you submit a complaint be sure you understand what constitutes harassment
|
||||
* <A HREF="http://uo.custhelp.com/cgi-bin/uo.cfg/php/enduser/std_adp.php?p_faqid=59"> <EFBFBD> what is physical harassment?</A>
|
||||
* <A HREF="http://uo.custhelp.com/cgi-bin/uo.cfg/php/enduser/std_adp.php?p_faqid=59"> - what is physical harassment?</A>
|
||||
* and that you have followed these steps:<BR>
|
||||
* 1. You have asked the player to stop and they have continued.<BR>
|
||||
* 2. You have tried to remove yourself from the situation.<BR>
|
||||
* 3. You have done nothing to instigate or further encourage the harassment.<BR>
|
||||
* 4. You have added the player to your ignore list.
|
||||
* <A HREF="http://uo.custhelp.com/cgi-bin/uo.cfg/php/enduser/std_adp.php?p_faqid=138"> - how do I ignore a player?</A><BR>
|
||||
* 5. You have read and understand Origin<EFBFBD>s definition of harassment.<BR>
|
||||
* 5. You have read and understand Origin's definition of harassment.<BR>
|
||||
* 6. Your account information is up to date. (Including a current email address)<BR>
|
||||
* *If these steps have not been taken, GMs may be unable to take action against the offending player.<BR>
|
||||
* **This issue will be reviewed by a GM to assess the validity of this complaint.
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ namespace Server.Engines.Help
|
|||
|
||||
public static bool CheckAllowedToPage(Mobile from)
|
||||
{
|
||||
if (!(from is PlayerMobile pm))
|
||||
if (from is not PlayerMobile pm)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ namespace Server.Engines.Help
|
|||
|
||||
protected override void OnTarget(Mobile from, object targeted)
|
||||
{
|
||||
if (!(targeted is PlayerMobile pm))
|
||||
if (targeted is not PlayerMobile pm)
|
||||
{
|
||||
from.SendMessage("Speech logs aren't supported on that target.");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,8 +42,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
Title = 1075337; // Save His Dad
|
||||
Description =
|
||||
1075338; // My father, Andros, is a smith in Minoc. Last week his forge overturned and he was splashed by molten steel. He was horribly burned, and we feared he would die. An alchemist in Vesper promised to make a bandage that could heal him, but he needed the silk of a dread spider. I came here to get some, but I was careless, and succumbed to their poison. Please, won<EFBFBD>t you help my father?
|
||||
RefusalMessage = 1075340; // Oh . . . that<EFBFBD>s your decision . . . OooOoooOOoo . . .
|
||||
1075338; // My father, Andros, is a smith in Minoc. Last week his forge overturned and he was splashed by molten steel. He was horribly burned, and we feared he would die. An alchemist in Vesper promised to make a bandage that could heal him, but he needed the silk of a dread spider. I came here to get some, but I was careless, and succumbed to their poison. Please, won't you help my father?
|
||||
RefusalMessage = 1075340; // Oh . . . that's your decision . . . OooOoooOOoo . . .
|
||||
InProgressMessage =
|
||||
1075341; // Thank you! Deliver it to Leon the Alchemist in Vesper. The silk crumbles easily, and much time has already passed since I died. Please! Hurry!
|
||||
CompletionMessage =
|
||||
|
|
@ -74,20 +74,20 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
{
|
||||
Activated = true;
|
||||
OneTimeOnly = true;
|
||||
Title = 1075343; // A Father<EFBFBD>s Gratitude
|
||||
Title = 1075343; // A Father's Gratitude
|
||||
Description =
|
||||
1075344; // That is simply terrible. First Andros, and now his son. Well, let<EFBFBD>s make sure Frederic<69>s sacrifice wasn<73>t in vain. Will you take the bandages to his father? You can probably deliver them faster than I can, can<EFBFBD>t you?
|
||||
1075344; // That is simply terrible. First Andros, and now his son. Well, let's make sure Frederic's sacrifice wasn't in vain. Will you take the bandages to his father? You can probably deliver them faster than I can, can't you?
|
||||
RefusalMessage =
|
||||
1075346; // Well I<EFBFBD>m sorry to hear you say that. Without your help, I don<6F>t know if I can get these to Andros quickly enough to help him.
|
||||
1075346; // Well I'm sorry to hear you say that. Without your help, I don't know if I can get these to Andros quickly enough to help him.
|
||||
InProgressMessage =
|
||||
1075347; // I don<EFBFBD>t know how much longer Andros will survive. You<6F>d better get this to him as quick as you can. Every second counts!
|
||||
1075347; // I don't know how much longer Andros will survive. You'd better get this to him as quick as you can. Every second counts!
|
||||
CompletionMessage =
|
||||
1075348; // Sorry, I<EFBFBD>m not accepting commissions at the moment. What? You have the bandage I need from Leon? Thank you so much! But why didn<EFBFBD>t my son bring this to me himself? . . . Oh, no! You can't be serious! *sag* My Freddie, my son! Thank you for carrying out his last wish. Here -- I made this for my son, to give to him when he became a journeyman. I want you to have it.
|
||||
1075348; // Sorry, I'm not accepting commissions at the moment. What? You have the bandage I need from Leon? Thank you so much! But why didn't my son bring this to me himself? . . . Oh, no! You can't be serious! *sag* My Freddie, my son! Thank you for carrying out his last wish. Here -- I made this for my son, to give to him when he became a journeyman. I want you to have it.
|
||||
CompletionNotice = CompletionNoticeShort;
|
||||
|
||||
Objectives.Add(new DeliverObjective(typeof(AlchemistsBandage), 1, "Alchemist's Bandage", typeof(Andros)));
|
||||
|
||||
Rewards.Add(new ItemReward(1075345, typeof(AndrosGratitude))); // Andros<EFBFBD> Gratitude
|
||||
Rewards.Add(new ItemReward(1075345, typeof(AndrosGratitude))); // Andros' Gratitude
|
||||
}
|
||||
|
||||
public override bool IsChainTriggered => true;
|
||||
|
|
|
|||
|
|
@ -230,7 +230,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
// Restless spirits are known to inhabit these parts, taking the lives of unwary travelers.
|
||||
// It is about time a hero put the dead back in their graves. I'm sure such a hero would be justly rewarded.
|
||||
Description = 1073566;
|
||||
RefusalMessage = 1073580; // I hope you'll reconsider. Until then, farewell.
|
||||
RefusalMessage = 1073580; // I hope you'll reconsider. Until then, farwell.
|
||||
InProgressMessage = 1073586; // The restless spirts still walk -- you must kill 15 of them.
|
||||
|
||||
Objectives.Add(
|
||||
|
|
@ -313,7 +313,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
// Please, put them out of their misery.
|
||||
// I will offer you what payment I can if you will end the torment of these undead wretches.
|
||||
Description = 1073565;
|
||||
RefusalMessage = 1073580; // I hope you'll reconsider. Until then, farewell.
|
||||
RefusalMessage = 1073580; // I hope you'll reconsider. Until then, farwell.
|
||||
InProgressMessage = 1073585; // Your task is not done. Continue putting the Skeleton and Bone Knights to rest.
|
||||
|
||||
Objectives.Add(
|
||||
|
|
@ -1314,12 +1314,12 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
{
|
||||
Activated = true;
|
||||
Title = 1074280; // Reptilian Dentist
|
||||
Description =
|
||||
1074710; // I'm working on a striking necklace -- something really unique -- and I know just what I need to finish it up. A huge fang! Won't that catch the eye? I would like to employ you to find me such an item, perhaps a snake would make the ideal donor. I'll make it worth your while, of course.
|
||||
// I'm working on a striking necklace -- something really unique -- and I know just what I need to finish it up. A huge fang! Won't that catch the eye? I would like to employ you to find me such an item, perhaps a snake would make the ideal donor. I'll make it worth your while, of course.
|
||||
Description = 1074710;
|
||||
RefusalMessage = 1074723; // I understand. I don't like snakes much either. They're so creepy.
|
||||
InProgressMessage =
|
||||
1074722; // Those really big snakes like swamps, I've heard. You might try the blighted grove.
|
||||
CompletionMessage = 1074721; // Do you have it? *gasp* What a tooth! Here <EFBFBD> I must get right to work.
|
||||
// Those really big snakes like swamps, I've heard. You might try the blighted grove.
|
||||
InProgressMessage = 1074722;
|
||||
CompletionMessage = 1074721; // Do you have it? *gasp* What a tooth! Here … I must get right to work.
|
||||
|
||||
Objectives.Add(new CollectObjective(1, typeof(CoilsFang), "coil's fang"));
|
||||
|
||||
|
|
@ -1334,8 +1334,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
HasRestartDelay = true;
|
||||
Title = 1073881; // Stop Harping on Me
|
||||
Description =
|
||||
1074071; // Humans artistry can be a remarkable thing. For instance, I have heard of a wonderful instrument which creates the most melodious of music. A lap harp. I would be ever so grateful if I could examine one in person.
|
||||
// Humans artistry can be a remarkable thing. For instance, I have heard of a wonderful instrument which creates the most melodious of music. A lap harp. I would be ever so grateful if I could examine one in person.
|
||||
Description = 1074071;
|
||||
RefusalMessage = 1073921; // I will patiently await your reconsideration.
|
||||
InProgressMessage = 1073927; // I will be in your debt if you bring me lap harp.
|
||||
CompletionMessage = 1073969; // My thanks for your service. Now, I will show you something of elven carpentry.
|
||||
|
|
@ -1353,8 +1353,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
HasRestartDelay = true;
|
||||
Title = 1073908; // The Far Eye
|
||||
Description =
|
||||
1074098; // The wonders of human invention! Turning sand and metal into a far-seeing eye! This is something I must experience for myself. Bring me some of these spyglasses friend human.
|
||||
// The wonders of human invention! Turning sand and metal into a far-seeing eye! This is something I must experience for myself. Bring me some of these spyglasses friend human.
|
||||
Description = 1074098;
|
||||
RefusalMessage = 1073921; // I will patiently await your reconsideration.
|
||||
InProgressMessage = 1073954; // I will be in your debt if you bring me spyglasses.
|
||||
CompletionMessage = 1073978; // Enjoy my thanks for your service.
|
||||
|
|
@ -1372,8 +1372,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
HasRestartDelay = true;
|
||||
Title = 1073876; // Lethal Darts
|
||||
Description =
|
||||
1074066; // We elves are no strangers to archery but I would be interested in learning whether there is anything to learn from the human approach. I would gladly trade you something I have if you could teach me of the deadly crossbow bolt.
|
||||
// We elves are no strangers to archery but I would be interested in learning whether there is anything to learn from the human approach. I would gladly trade you something I have if you could teach me of the deadly crossbow bolt.
|
||||
Description = 1074066;
|
||||
RefusalMessage = 1073921; // I will patiently await your reconsideration.
|
||||
InProgressMessage = 1073922; // I will be in your debt if you bring me crossbow bolts.
|
||||
CompletionMessage = 1073968; // My thanks for your service. Now, I shall teach you of elven archery.
|
||||
|
|
@ -1392,8 +1392,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
HasRestartDelay = true;
|
||||
Title = 1073877; // A Simple Bow
|
||||
Description =
|
||||
1074067; // I wish to try a bow crafted in the human style. Is it possible for you to bring me such a weapon? I would be happy to return this favor.
|
||||
// I wish to try a bow crafted in the human style. Is it possible for you to bring me such a weapon? I would be happy to return this favor.
|
||||
Description = 1074067;
|
||||
RefusalMessage = 1073921; // I will patiently await your reconsideration.
|
||||
InProgressMessage = 1073923; // I will be in your debt if you bring me bows.
|
||||
CompletionMessage = 1073968; // My thanks for your service. Now, I shall teach you of elven archery.
|
||||
|
|
@ -1412,8 +1412,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
HasRestartDelay = true;
|
||||
Title = 1073878; // Ingenious Archery, Part I
|
||||
Description =
|
||||
1074068; // I have heard of a curious type of bow, you call it a "crossbow". It sounds fascinating and I would very much like to examine one closely. Would you be able to obtain such an instrument for me?
|
||||
// I have heard of a curious type of bow, you call it a "crossbow". It sounds fascinating and I would very much like to examine one closely. Would you be able to obtain such an instrument for me?
|
||||
Description = 1074068;
|
||||
RefusalMessage = 1073921; // I will patiently await your reconsideration.
|
||||
InProgressMessage = 1073924; // I will be in your debt if you bring me crossbows.
|
||||
CompletionMessage = 1073968; // My thanks for your service. Now, I shall teach you of elven archery.
|
||||
|
|
@ -1432,8 +1432,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
HasRestartDelay = true;
|
||||
Title = 1073879; // Ingenious Archery, Part II
|
||||
Description =
|
||||
1074069; // These human "crossbows" are complex and clever. The "heavy crossbow" is a remarkable instrument of war. I am interested in seeing one up close, if you could arrange for one to make its way to my hands.
|
||||
// These human "crossbows" are complex and clever. The "heavy crossbow" is a remarkable instrument of war. I am interested in seeing one up close, if you could arrange for one to make its way to my hands.
|
||||
Description = 1074069;
|
||||
RefusalMessage = 1073921; // I will patiently await your reconsideration.
|
||||
InProgressMessage = 1073925; // I will be in your debt if you bring me heavy crossbows.
|
||||
CompletionMessage = 1073968; // My thanks for your service. Now, I shall teach you of elven archery.
|
||||
|
|
@ -1452,8 +1452,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
HasRestartDelay = true;
|
||||
Title = 1073880; // Ingenious Archery, Part III
|
||||
Description =
|
||||
1074070; // My friend, I am in search of a device, a instrument of remarkable human ingenuity. It is a repeating crossbow. If you were to obtain such a device, I would gladly reveal to you some of the secrets of elven craftsmanship.
|
||||
// My friend, I am in search of a device, a instrument of remarkable human ingenuity. It is a repeating crossbow. If you were to obtain such a device, I would gladly reveal to you some of the secrets of elven craftsmanship.
|
||||
Description = 1074070;
|
||||
RefusalMessage = 1073921; // I will patiently await your reconsideration.
|
||||
InProgressMessage = 1073926; // I will be in your debt if you bring me repeating crossbows.
|
||||
CompletionMessage = 1073968; // My thanks for your service. Now, I shall teach you of elven archery.
|
||||
|
|
@ -1471,11 +1471,11 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
{
|
||||
Activated = true;
|
||||
Title = 1074711; // Scale Armor
|
||||
Description =
|
||||
1074712; // Here's what I need ... there are some creatures called hydra, fearsome beasts, whose scales are especially suitable for a new sort of armor that I'm developing. I need a few such pieces and then some supple alligator skin for the backing. I'm going to need a really large piece that's shaped just right ... the tail I think would do nicely. I appreciate your help.
|
||||
// Here's what I need ... there are some creatures called hydra, fearsome beasts, whose scales are especially suitable for a new sort of armor that I'm developing. I need a few such pieces and then some supple alligator skin for the backing. I'm going to need a really large piece that's shaped just right ... the tail I think would do nicely. I appreciate your help.
|
||||
Description = 1074712;
|
||||
RefusalMessage = 1073580; // I hope you'll reconsider. Until then, farwell.
|
||||
InProgressMessage =
|
||||
1074724; // Hydras have been spotted in the Blighted Grove. You won't get those scales without getting your feet wet, I'm afraid.
|
||||
// Hydras have been spotted in the Blighted Grove. You won't get those scales without getting your feet wet, I'm afraid.
|
||||
InProgressMessage = 1074724;
|
||||
CompletionMessage = 1074725; // I can't wait to get to work now that you've returned with my scales.
|
||||
|
||||
Objectives.Add(new CollectObjective(1, typeof(ThrashersTail), "Thrasher's Tail"));
|
||||
|
|
@ -1492,8 +1492,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
HasRestartDelay = true;
|
||||
Title = 1073913; // Cuts Both Ways
|
||||
Description =
|
||||
1074103; // What would you say is a typical human instrument of war? Is a broadsword a typical example? I wish to see more of such human weapons, so I would gladly trade elven knowledge for human steel.
|
||||
// What would you say is a typical human instrument of war? Is a broadsword a typical example? I wish to see more of such human weapons, so I would gladly trade elven knowledge for human steel.
|
||||
Description = 1074103;
|
||||
RefusalMessage = 1073921; // I will patiently await your reconsideration.
|
||||
InProgressMessage = 1073959; // I will be in your debt if you bring me broadswords.
|
||||
CompletionMessage = 1073978; // Enjoy my thanks for your service.
|
||||
|
|
@ -1511,8 +1511,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
HasRestartDelay = true;
|
||||
Title = 1073915; // Dragon Protection
|
||||
Description =
|
||||
1074105; // Mankind, I am told, knows how to take the scales of a terrible dragon and forge them into powerful armor. Such a feat of craftsmanship! I would give anything to view such a creation - I would even teach some of the prize secrets of the elven people.
|
||||
// Mankind, I am told, knows how to take the scales of a terrible dragon and forge them into powerful armor. Such a feat of craftsmanship! I would give anything to view such a creation - I would even teach some of the prize secrets of the elven people.
|
||||
Description = 1074105;
|
||||
RefusalMessage = 1073921; // I will patiently await your reconsideration.
|
||||
InProgressMessage = 1073961; // I will be in your debt if you bring me dragon armor.
|
||||
CompletionMessage = 1073978; // Enjoy my thanks for your service.
|
||||
|
|
@ -1530,8 +1530,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
HasRestartDelay = true;
|
||||
Title = 1073911; // Nothing Fancy
|
||||
Description =
|
||||
1074101; // I am curious to see the results of human blacksmithing. To examine the care and quality of a simple item. Perhaps, a simple bascinet helmet? Yes, indeed -- if you could bring to me some bascinet helmets, I would demonstrate my gratitude.
|
||||
// I am curious to see the results of human blacksmithing. To examine the care and quality of a simple item. Perhaps, a simple bascinet helmet? Yes, indeed -- if you could bring to me some bascinet helmets, I would demonstrate my gratitude.
|
||||
Description = 1074101;
|
||||
RefusalMessage = 1073921; // I will patiently await your reconsideration.
|
||||
InProgressMessage = 1073957; // I will be in your debt if you bring me bascinets.
|
||||
CompletionMessage = 1073978; // Enjoy my thanks for your service.
|
||||
|
|
@ -1549,8 +1549,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
HasRestartDelay = true;
|
||||
Title = 1073912; // The Bulwark
|
||||
Description =
|
||||
1074102; // The clank of human iron and steel is strange to elven ears. For instance, the metallic heater shield which human warriors carry into battle. It is odd to an elf, but nevertheless intriguing. Tell me friend, could you bring me such an example of human smithing skill?
|
||||
// The clank of human iron and steel is strange to elven ears. For instance, the metallic heater shield which human warriors carry into battle. It is odd to an elf, but nevertheless intriguing. Tell me friend, could you bring me such an example of human smithing skill?
|
||||
Description = 1074102;
|
||||
RefusalMessage = 1073921; // I will patiently await your reconsideration.
|
||||
InProgressMessage = 1073958; // I will be in your debt if you bring me heater shields.
|
||||
CompletionMessage = 1073978; // Enjoy my thanks for your service.
|
||||
|
|
@ -1568,8 +1568,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
HasRestartDelay = true;
|
||||
Title = 1073882; // Arch Support
|
||||
Description =
|
||||
1074072; // How clever humans are - to understand the need of feet to rest from time to time! Imagine creating a special stool just for weary toes. I would like to examine and learn the secret of their making. Would you bring me some foot stools to examine?
|
||||
// How clever humans are - to understand the need of feet to rest from time to time! Imagine creating a special stool just for weary toes. I would like to examine and learn the secret of their making. Would you bring me some foot stools to examine?
|
||||
Description = 1074072;
|
||||
RefusalMessage = 1073921; // I will patiently await your reconsideration.
|
||||
InProgressMessage = 1073928; // I will be in your debt if you bring me foot stools.
|
||||
CompletionMessage = 1073969; // My thanks for your service. Now, I will show you something of elven carpentry.
|
||||
|
|
@ -1597,10 +1597,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
3,
|
||||
new[] { typeof(Succubus) },
|
||||
"succubi",
|
||||
new QuestArea(
|
||||
1074806, // The Palace of Paroxysmus
|
||||
"The Palace of Paroxysmus"
|
||||
)
|
||||
new QuestArea(1074806, "The Palace of Paroxysmus")
|
||||
)
|
||||
);
|
||||
|
||||
|
|
@ -1627,7 +1624,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
"molochs",
|
||||
new QuestArea(1074806, "The Palace of Paroxysmus")
|
||||
)
|
||||
); // The Palace of Paroxysmus
|
||||
);
|
||||
|
||||
Rewards.Add(ItemReward.LargeBagOfTreasure);
|
||||
}
|
||||
|
|
@ -1652,7 +1649,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
"daemons",
|
||||
new QuestArea(1074806, "The Palace of Paroxysmus")
|
||||
)
|
||||
); // The Palace of Paroxysmus
|
||||
);
|
||||
|
||||
Rewards.Add(ItemReward.LargeBagOfTreasure);
|
||||
}
|
||||
|
|
@ -1677,7 +1674,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
"arcane daemons",
|
||||
new QuestArea(1074806, "The Palace of Paroxysmus")
|
||||
)
|
||||
); // The Palace of Paroxysmus
|
||||
);
|
||||
|
||||
Rewards.Add(ItemReward.LargeBagOfTreasure);
|
||||
}
|
||||
|
|
@ -1703,7 +1700,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
"poison elementals",
|
||||
new QuestArea(1074806, "The Palace of Paroxysmus")
|
||||
)
|
||||
); // The Palace of Paroxysmus
|
||||
);
|
||||
Objectives.Add(
|
||||
new KillObjective(
|
||||
6,
|
||||
|
|
@ -1781,7 +1778,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
"crystal lattice seekers",
|
||||
new QuestArea(1074805, "The Prism of Light")
|
||||
)
|
||||
); // The Prism of Light
|
||||
);
|
||||
|
||||
Rewards.Add(ItemReward.LargeBagOfTreasure);
|
||||
}
|
||||
|
|
@ -1809,7 +1806,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
"crystal daemons",
|
||||
new QuestArea(1074805, "The Prism of Light")
|
||||
)
|
||||
); // The Prism of Light
|
||||
);
|
||||
|
||||
Rewards.Add(ItemReward.LargeBagOfTreasure);
|
||||
}
|
||||
|
|
@ -1837,7 +1834,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
"crystal vortices",
|
||||
new QuestArea(1074805, "The Prism of Light")
|
||||
)
|
||||
); // The Prism of Light
|
||||
);
|
||||
|
||||
Rewards.Add(ItemReward.LargeBagOfTreasure);
|
||||
}
|
||||
|
|
@ -1945,11 +1942,11 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
{
|
||||
Activated = true;
|
||||
Title = 1072913; // Death to the Ninja!
|
||||
Description =
|
||||
1072966; // I wish to make a statement of censure against the elite ninjas of the Black Order. Deliver, in the strongest manner, my disdain. But do not make war on women, even those that take arms against you. It is not ... fitting.
|
||||
// I wish to make a statement of censure against the elite ninjas of the Black Order. Deliver, in the strongest manner, my disdain. But do not make war on women, even those that take arms against you. It is not ... fitting.
|
||||
Description = 1072966;
|
||||
RefusalMessage = 1072979; // As you wish.
|
||||
InProgressMessage =
|
||||
1072980; // The Black Order's fortress home is well hidden. Legend has it that a humble fishing village disguises the magical portal.
|
||||
// The Black Order's fortress home is well hidden. Legend has it that a humble fishing village disguises the magical portal.
|
||||
InProgressMessage = 1072980;
|
||||
|
||||
// TODO: Verify that this has to be males only (as per the description)
|
||||
Objectives.Add(
|
||||
|
|
@ -1959,7 +1956,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
"elite ninjas",
|
||||
new QuestArea(1074804, "The Citadel")
|
||||
)
|
||||
); // The Citadel
|
||||
);
|
||||
|
||||
Rewards.Add(ItemReward.BagOfTreasure);
|
||||
}
|
||||
|
|
@ -2049,9 +2046,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074186, // Come here, I have a task.
|
||||
1074183
|
||||
1074183 // You there! I have a job for you.
|
||||
)
|
||||
); // You there! I have a job for you.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2116,9 +2113,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074187, // Want a job?
|
||||
1074210
|
||||
1074210 // Hi. Looking for something to do?
|
||||
)
|
||||
); // Hi.<2E> Looking for something to do?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2180,10 +2177,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074213, // Hey buddy.<EFBFBD> Looking for work?
|
||||
1074187
|
||||
1074213, // Hey buddy. Looking for work?
|
||||
1074187 // Want a job?
|
||||
)
|
||||
); // Want a job?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2247,9 +2244,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074211, // I could use some help.
|
||||
1074218
|
||||
1074218 // Hey! I want to talk to you, now.
|
||||
)
|
||||
); // Hey!<21> I want to talk to you, now.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2314,7 +2311,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
|
||||
public override void Shout(PlayerMobile pm)
|
||||
{
|
||||
MLQuestSystem.Tell(this, pm, 1074223); // Have you done it yet?<EFBFBD> Oh, I haven<65>t told you, have I?
|
||||
MLQuestSystem.Tell(this, pm, 1074223); // Have you done it yet? Oh, I haven't told you, have I?
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2375,9 +2372,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074219, // Hello there, can I have a moment of your time?
|
||||
1074223
|
||||
1074223 // Have you done it yet? Oh, I haven't told you, have I?
|
||||
)
|
||||
); // Have you done it yet?<3F> Oh, I haven<65>t told you, have I?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2446,9 +2443,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074206, // Excuse me please traveler, might I have a little of your time?
|
||||
1074186
|
||||
1074186 // Come here, I have a task.
|
||||
)
|
||||
); // Come here, I have a task.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2508,10 +2505,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074220, // May I call you friend?<EFBFBD> I have a favor to beg of you.
|
||||
1074222
|
||||
1074220, // May I call you friend? I have a favor to beg of you.
|
||||
1074222 // Could I trouble you for some assistance?
|
||||
)
|
||||
); // Could I trouble you for some assistance?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2585,10 +2582,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074188, // Weakling! You are not up to the task I have.
|
||||
1074191, // Just keep walking away!<EFBFBD> I thought so. Coward!<21> I<>ll bite your legs off!
|
||||
1074195
|
||||
1074191, // Just keep walking away! I thought so. Coward! I'll bite your legs off!
|
||||
1074195 // You there, in the stupid hat! Come here.
|
||||
)
|
||||
); // You there, in the stupid hat! Come here.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2645,9 +2642,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074212, // *yawn* You busy?
|
||||
1074210
|
||||
1074210 // Hi. Looking for something to do?
|
||||
)
|
||||
); // Hi.<2E> Looking for something to do?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2707,10 +2704,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074204, // Greetings seeker.<EFBFBD> I have an urgent matter for you, if you are willing.
|
||||
1074201
|
||||
1074204, // Greetings seeker. I have an urgent matter for you, if you are willing.
|
||||
1074201 // Waste not a minute! There's work to be done.
|
||||
)
|
||||
); // Waste not a minute! There<72>s work to be done.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2770,9 +2767,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074211, // I could use some help.
|
||||
1074186
|
||||
1074186 // Come here, I have a task.
|
||||
)
|
||||
); // Come here, I have a task.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2845,9 +2842,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074185, // Hey you! Want to help me out?
|
||||
1074186
|
||||
1074186 // Come here, I have a task.
|
||||
)
|
||||
); // Come here, I have a task.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2927,10 +2924,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074207, // Good day to you friend! Allow me to offer you a fabulous opportunity!<EFBFBD> Thrills and adventure await!
|
||||
1074209
|
||||
1074207, // Good day to you friend! Allow me to offer you a fabulous opportunity! Thrills and adventure await!
|
||||
1074209 // Hey, could you help me out with something?
|
||||
)
|
||||
); // Hey, could you help me out with something?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -2994,10 +2991,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074210, // Hi.<EFBFBD> Looking for something to do?
|
||||
1074220
|
||||
1074210, // Hi. Looking for something to do?
|
||||
1074220 // May I call you friend? I have a favor to beg of you.
|
||||
)
|
||||
); // May I call you friend?<3F> I have a favor to beg of you.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -3126,9 +3123,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074187, // Want a job?
|
||||
1074222
|
||||
1074222 // Could I trouble you for some assistance?
|
||||
)
|
||||
); // Could I trouble you for some assistance?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -3194,10 +3191,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074221, // Greetings!<EFBFBD> I have a small task for you good traveler.
|
||||
1074201
|
||||
1074221, // Greetings! I have a small task for you good traveler.
|
||||
1074201 // Waste not a minute! There's work to be done.
|
||||
)
|
||||
); // Waste not a minute! There<72>s work to be done.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -3257,10 +3254,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074200, // Thank goodness you are here, there<EFBFBD>s no time to lose.
|
||||
1074206
|
||||
1074200, // Thank goodness you are here, there's no time to lose.
|
||||
1074206 // Excuse me please traveler, might I have a little of your time?
|
||||
)
|
||||
); // Excuse me please traveler, might I have a little of your time?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -3440,10 +3437,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074210, // Hi.<EFBFBD> Looking for something to do?
|
||||
1074213
|
||||
1074210, // Hi. Looking for something to do?
|
||||
1074213 // Hey buddy. Looking for work?
|
||||
)
|
||||
); // Hey buddy.<2E> Looking for work?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -3502,10 +3499,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074223, // Have you done it yet?<EFBFBD> Oh, I haven<65>t told you, have I?
|
||||
1074213
|
||||
1074223, // Have you done it yet?' Oh, I haven't told you, have I?
|
||||
1074213 // Hey buddy. Looking for work?
|
||||
)
|
||||
); // Hey buddy.<2E> Looking for work?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -3698,10 +3695,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074221, // Greetings!<EFBFBD> I have a small task for you good traveler.
|
||||
1074212
|
||||
1074221, // Greetings! I have a small task for you good traveler.
|
||||
1074212 // *yawn* You busy?
|
||||
)
|
||||
); // *yawn* You busy?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -3762,9 +3759,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074206, // Excuse me please traveler, might I have a little of your time?
|
||||
1074203
|
||||
1074203 // Hello friend. I realize you are busy but if you would be willing to render me a service I can assure you that you will be judiciously renumerated.
|
||||
)
|
||||
); // Hello friend. I realize you are busy but if you would be willing to render me a service I can assure you that you will be judiciously renumerated.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -4612,10 +4609,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074204, // Greetings seeker.<EFBFBD> I have an urgent matter for you, if you are willing.
|
||||
1074200
|
||||
1074204, // Greetings seeker. I have an urgent matter for you, if you are willing.
|
||||
1074200 // Thank goodness you are here, there's no time to lose.
|
||||
)
|
||||
); // Thank goodness you are here, there<72>s no time to lose.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -4725,7 +4722,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
|
||||
public override void Shout(PlayerMobile pm)
|
||||
{
|
||||
MLQuestSystem.Tell(this, pm, 1074197); // Pardon me, but if you could spare some time I<EFBFBD>d greatly appreciate it.
|
||||
MLQuestSystem.Tell(this, pm, 1074197); // Pardon me, but if you could spare some time I'd greatly appreciate it.
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -4780,7 +4777,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
|
||||
public override void Shout(PlayerMobile pm)
|
||||
{
|
||||
MLQuestSystem.Tell(this, pm, 1074204); // Greetings seeker.<EFBFBD> I have an urgent matter for you, if you are willing.
|
||||
MLQuestSystem.Tell(this, pm, 1074204); // Greetings seeker. I have an urgent matter for you, if you are willing.
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
|
|||
|
|
@ -647,9 +647,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074188, // Weakling! You are not up to the task I have.
|
||||
1074195
|
||||
1074195 // You there, in the stupid hat! Come here.
|
||||
)
|
||||
); // You there, in the stupid hat! Come here.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
|
|||
|
|
@ -16,14 +16,14 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
1075393; // Beg pardon, sir. I mean, madam. Uh, can I ask a favor of you? I found this jeweled ring. Most people would sell it and keep the money, but not me. I ain't never stole nothing, and I ain't about to start. I tried to take it over to Brit castle, figgerin' it must belong to some highborn lady, but the guards threw me out. You look like they might let you pass. Will you take the ring over there and see if you can find the owner?
|
||||
RefusalMessage = 1075395; // I see. Too good to help an honest beggar like me, eh?
|
||||
InProgressMessage =
|
||||
1075396; // A jewel like this must be worth a lot, so it must belong to some noble or another. I would show it around the castle. Someone<EFBFBD>s bound to recognize it.
|
||||
1075396; // A jewel like this must be worth a lot, so it must belong to some noble or another. I would show it around the castle. Someone's bound to recognize it.
|
||||
CompletionMessage =
|
||||
1075397; // Didst thou find my ring? I thank thee very much! It is an old ring, and a gift from my husband. I was most distraught when I realized it was missing.
|
||||
CompletionNotice = CompletionNoticeShort;
|
||||
|
||||
Objectives.Add(new DeliverObjective(typeof(ReginasRing), 1, "Regina's Ring", typeof(Regina)));
|
||||
|
||||
Rewards.Add(new DummyReward(1075394)); // Find the ring<EFBFBD>s owner.
|
||||
Rewards.Add(new DummyReward(1075394)); // Find the ring's owner.
|
||||
}
|
||||
|
||||
public override Type NextQuest => typeof(ReginasThanks);
|
||||
|
|
@ -35,9 +35,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
{
|
||||
Activated = true;
|
||||
OneTimeOnly = true;
|
||||
Title = 1075398; // Regina<EFBFBD>s Thanks
|
||||
Title = 1075398; // Regina's Thanks
|
||||
Description =
|
||||
1075399; // What<EFBFBD>s that you say? It was a humble beggar that found my ring? Such honesty must be rewarded. Here, take this packet and return it to him, and I will be in your debt.
|
||||
1075399; // What's that you say? It was a humble beggar that found my ring? Such honesty must be rewarded. Here, take this packet and return it to him, and I will be in your debt.
|
||||
RefusalMessage = 1075401; // Hmph. Very well. What did you say his name was?
|
||||
InProgressMessage = 1075402; // Take the packet and return it to the beggar who found my ring.
|
||||
CompletionMessage =
|
||||
|
|
|
|||
|
|
@ -127,10 +127,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074204, // Greetings seeker. I have an urgent matter for you, if you are willing.
|
||||
1074222
|
||||
1074204, // Greetings seeker. I have an urgent matter for you, if you are willing.
|
||||
1074222 // Could I trouble you for some assistance?
|
||||
)
|
||||
); // Could I trouble you for some assistance?
|
||||
);
|
||||
}
|
||||
|
||||
public override void InitBody()
|
||||
|
|
@ -254,7 +254,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
|
||||
public override void Shout(PlayerMobile pm)
|
||||
{
|
||||
MLQuestSystem.Tell(this, pm, 1074221); // Greetings! I have a small task for you good traveler.
|
||||
MLQuestSystem.Tell(this, pm, 1074221); // Greetings! I have a small task for you good traveler.
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -305,7 +305,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
|
||||
public override void Shout(PlayerMobile pm)
|
||||
{
|
||||
MLQuestSystem.Tell(this, pm, 1074218); // Hey! I want to talk to you, now.
|
||||
MLQuestSystem.Tell(this, pm, 1074218); // Hey! I want to talk to you, now.
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
|
|||
|
|
@ -273,10 +273,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074200, // Thank goodness you are here, there<EFBFBD>s no time to lose.
|
||||
1074203
|
||||
1074200, // Thank goodness you are here, there's no time to lose.
|
||||
1074203 // Hello friend. I realize you are busy but if you would be willing to render me a service I can assure you that you will be judiciously renumerated.
|
||||
)
|
||||
); // Hello friend. I realize you are busy but if you would be willing to render me a service I can assure you that you will be judiciously renumerated.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
|
|||
|
|
@ -1995,9 +1995,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Utility.RandomList(
|
||||
1078213, // I don't sleep. I wait.
|
||||
1078212, // There is no theory of evolution. Just a list of creatures I allow to live.
|
||||
1078214
|
||||
1078214 // I can lead a horse to water and make it drink.
|
||||
)
|
||||
); // I can lead a horse to water and make it drink.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
1075529; // Have a pickaxe? My supplier is late and I need some iron ore so I can complete a bulk order for another merchant. If you can get me some soon I'll pay you double what it's worth on the market. Just find a cave or mountainside and try to use your pickaxe there, maybe you'll strike a good vein! 5 large pieces should do it.
|
||||
RefusalMessage =
|
||||
1075531; // Not feeling strong enough today? Its alright, I didn't need a bucket of rocks anyway.
|
||||
InProgressMessage = 1075532; // Hmmm<EFBFBD> we need some more Ore. Try finding a mountain or cave, and give it a whack.
|
||||
InProgressMessage = 1075532; // Hmmm' we need some more Ore. Try finding a mountain or cave, and give it a whack.
|
||||
CompletionMessage =
|
||||
1075533; // I see you found a good vien! Great! This will help get this order out on time. Good work!
|
||||
|
||||
|
|
@ -317,9 +317,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074205, // Oh great adventurer, would you please assist a weak soul in need of aid?
|
||||
1074213
|
||||
1074213 // Hey buddy. Looking for work?
|
||||
)
|
||||
); // Hey buddy.<2E> Looking for work?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -438,9 +438,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074205, // Oh great adventurer, would you please assist a weak soul in need of aid?
|
||||
1074213
|
||||
1074213 // Hey buddy. Looking for work?
|
||||
)
|
||||
); // Hey buddy.<2E> Looking for work?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -495,9 +495,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074205, // Oh great adventurer, would you please assist a weak soul in need of aid?
|
||||
1074213
|
||||
1074213 // Hey buddy. Looking for work?
|
||||
)
|
||||
); // Hey buddy.<2E> Looking for work?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -562,10 +562,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074205, // Oh great adventurer, would you please assist a weak soul in need of aid?
|
||||
1074213, // Hey buddy.<EFBFBD> Looking for work?
|
||||
1074211
|
||||
1074213, // Hey buddy. Looking for work?
|
||||
1074211 // I could use some help.
|
||||
)
|
||||
); // I could use some help.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -674,9 +674,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074205, // Oh great adventurer, would you please assist a weak soul in need of aid?
|
||||
1074213
|
||||
1074213 // Hey buddy. Looking for work?
|
||||
)
|
||||
); // Hey buddy.<2E> Looking for work?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -730,9 +730,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074205, // Oh great adventurer, would you please assist a weak soul in need of aid?
|
||||
1074213
|
||||
1074213 // Hey buddy. Looking for work?
|
||||
)
|
||||
); // Hey buddy.<2E> Looking for work?
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -832,10 +832,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074205, // Oh great adventurer, would you please assist a weak soul in need of aid?
|
||||
1074213, // Hey buddy.<EFBFBD> Looking for work?
|
||||
1074211
|
||||
1074213, // Hey buddy. Looking for work?
|
||||
1074211 // I could use some help.
|
||||
)
|
||||
); // I could use some help.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -892,10 +892,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074205, // Oh great adventurer, would you please assist a weak soul in need of aid?
|
||||
1074213, // Hey buddy.<EFBFBD> Looking for work?
|
||||
1074211
|
||||
1074213, // Hey buddy. Looking for work?
|
||||
1074211 // I could use some help.
|
||||
)
|
||||
); // I could use some help.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -957,10 +957,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074213, // Hey buddy.<EFBFBD> Looking for work?
|
||||
1074211
|
||||
1074213, // Hey buddy. Looking for work?
|
||||
1074211 // I could use some help.
|
||||
)
|
||||
); // I could use some help.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
|
|||
|
|
@ -389,7 +389,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Activated = true;
|
||||
Title = 1073085; // Arch Enemies
|
||||
Description =
|
||||
1073575; // Vermin! They get into everything! I told the boy to leave out some poisoned cheese -- and they shot him. What else can I do? Unless<EFBFBD>these ratmen are skilled with a bow, but I'd lay a wager you're better, eh? Could you skin a few of the wretches for me?
|
||||
1073575; // Vermin! They get into everything! I told the boy to leave out some poisoned cheese -- and they shot him. What else can I do? Unless these ratmen are skilled with a bow, but I'd lay a wager you're better, eh? Could you skin a few of the wretches for me?
|
||||
RefusalMessage = 1073580; // I hope you'll reconsider. Until then, farwell.
|
||||
InProgressMessage =
|
||||
1073595; // I don't see 10 tails from Ratman Archers on your belt -- and until I do, no reward for you.
|
||||
|
|
@ -804,9 +804,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074187, // Want a job?
|
||||
1074184
|
||||
1074184 // Come here, I have work for you.
|
||||
)
|
||||
); // Come here, I have work for you.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -864,7 +864,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
|
||||
public override void Shout(PlayerMobile pm)
|
||||
{
|
||||
MLQuestSystem.Tell(this, pm, 1074197); // Pardon me, but if you could spare some time I<EFBFBD>d greatly appreciate it.
|
||||
MLQuestSystem.Tell(this, pm, 1074197); // Pardon me, but if you could spare some time I'd greatly appreciate it.
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -923,9 +923,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074188, // Weakling! You are not up to the task I have.
|
||||
1074211
|
||||
1074211 // I could use some help.
|
||||
)
|
||||
); // I could use some help.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -993,11 +993,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
MLQuestSystem.Tell(
|
||||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074214, // Knave! Come here right now!
|
||||
1074218
|
||||
)
|
||||
); // Hey!<21> I want to talk to you, now.
|
||||
// Knave! Come here right now!
|
||||
// Hey! I want to talk to you, now.
|
||||
1074214 + Utility.Random(2)
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -1119,10 +1118,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074196, // Excuse me! I<EFBFBD>m sorry to interrupt but I urgently need some assistance.
|
||||
1074197
|
||||
1074196, // Excuse me! I'm sorry to interrupt but I urgently need some assistance.
|
||||
1074197 // Pardon me, but if you could spare some time I'd greatly appreciate it.
|
||||
)
|
||||
); // Pardon me, but if you could spare some time I<>d greatly appreciate it.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -1183,9 +1182,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074185, // Hey you! Want to help me out?
|
||||
1074195
|
||||
1074195 // You there, in the stupid hat! Come here.
|
||||
)
|
||||
); // You there, in the stupid hat! Come here.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -1245,9 +1244,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074193, // You there! Yes you. Stop looking about like a toadie and come here.
|
||||
1074186
|
||||
1074186 // Come here, I have a task.
|
||||
)
|
||||
); // Come here, I have a task.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -1350,10 +1349,10 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
this,
|
||||
pm,
|
||||
Utility.RandomList(
|
||||
1074217, // I want to make you an offer you<EFBFBD>d be a fool to <20>refuse.
|
||||
1074218
|
||||
1074217, // I want to make you an offer you'd be a fool to 'refuse.
|
||||
1074218 // Hey! I want to talk to you, now.
|
||||
)
|
||||
); // Hey!<21> I want to talk to you, now.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
|
|||
|
|
@ -347,11 +347,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
Objectives.Add(new CollectObjective(1, typeof(Beads), 1024235)); // beads
|
||||
Objectives.Add(new CollectObjective(1, typeof(JarHoney), 1022540)); // jar of honey
|
||||
|
||||
Rewards.Add(
|
||||
new DummyReward(
|
||||
1074874
|
||||
)
|
||||
); // The opportunity to prove yourself worthy of learning to Summon Fey. (Sufficient spellweaving skill is required to cast the spell)
|
||||
// The opportunity to prove yourself worthy of learning to Summon Fey. (Sufficient spellweaving skill is required to cast the spell)
|
||||
Rewards.Add(new DummyReward(1074874));
|
||||
}
|
||||
|
||||
public override Type NextQuest => typeof(TokenOfFriendship);
|
||||
|
|
@ -372,11 +369,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
|
||||
Objectives.Add(new DeliverObjective(typeof(GiftForArielle), 1, "gift for Arielle", typeof(Arielle)));
|
||||
|
||||
Rewards.Add(
|
||||
new DummyReward(
|
||||
1074874
|
||||
)
|
||||
); // The opportunity to prove yourself worthy of learning to Summon Fey. (Sufficient spellweaving skill is required to cast the spell)
|
||||
// The opportunity to prove yourself worthy of learning to Summon Fey. (Sufficient spellweaving skill is required to cast the spell)
|
||||
Rewards.Add(new DummyReward(1074874));
|
||||
}
|
||||
|
||||
public override Type NextQuest => typeof(Alliance);
|
||||
|
|
@ -455,11 +449,8 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
|
||||
Objectives.Add(new CollectObjective(1, typeof(StoutWhip), "Stout Whip"));
|
||||
|
||||
Rewards.Add(
|
||||
new DummyReward(
|
||||
1074873
|
||||
)
|
||||
); // The opportunity to prove yourself worthy of learning to Summon Fiends. (Sufficient spellweaving skill is required to cast the spell)
|
||||
// The opportunity to prove yourself worthy of learning to Summon Fiends. (Sufficient spellweaving skill is required to cast the spell)
|
||||
Rewards.Add(new DummyReward(1074873));
|
||||
}
|
||||
|
||||
public override Type NextQuest => typeof(CrackingTheWhipII);
|
||||
|
|
@ -607,9 +598,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074186, // Come here, I have a task.
|
||||
1074218
|
||||
1074218 // Hey! I want to talk to you, now.
|
||||
)
|
||||
); // Hey! I want to talk to you, now.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
@ -728,9 +719,9 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
pm,
|
||||
Utility.RandomList(
|
||||
1074215, // Don’t test my patience you sniveling worm!
|
||||
1074218
|
||||
1074218 // Hey! I want to talk to you, now.
|
||||
)
|
||||
); // Hey! I want to talk to you, now.
|
||||
);
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ namespace Server.Engines.MLQuests.Definitions
|
|||
|
||||
public override void Shout(PlayerMobile pm)
|
||||
{
|
||||
MLQuestSystem.Tell(this, pm, 1074200); // Thank goodness you are here, there<EFBFBD>s no time to lose.
|
||||
MLQuestSystem.Tell(this, pm, 1074200); // Thank goodness you are here, there's no time to lose.
|
||||
}
|
||||
|
||||
public override void Serialize(IGenericWriter writer)
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue