fix: Fixes TextDefinition and optimizes CraftItem (#930)
This commit is contained in:
parent
202c4a99b7
commit
d7786ce586
27 changed files with 138 additions and 173 deletions
|
|
@ -770,4 +770,4 @@ Static 0x1F3C
|
|||
|
||||
# Arch Cure
|
||||
Static 0x1F45
|
||||
5304 88 19
|
||||
5304 88 19
|
||||
|
|
|
|||
|
|
@ -2749,7 +2749,7 @@ namespace Server.Engines.ConPVP
|
|||
GumpWidth = 300;
|
||||
GumpHeight = 150;
|
||||
MessageColor = 0xFFC000;
|
||||
MessageString = "Are you sure you wish to spectate this duel?";
|
||||
Message = "Are you sure you wish to spectate this duel?";
|
||||
TitleColor = 0x7800;
|
||||
TitleNumber = 1062051; // Gate Warning
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ namespace Server.Engines.Craft
|
|||
private readonly BaseTool m_Tool;
|
||||
|
||||
public CraftGump(
|
||||
Mobile from, CraftSystem craftSystem, BaseTool tool, object notice, CraftPage page = CraftPage.None
|
||||
Mobile from, CraftSystem craftSystem, BaseTool tool, TextDefinition notice, CraftPage page = CraftPage.None
|
||||
) : base(40, 40)
|
||||
{
|
||||
m_From = from;
|
||||
|
|
@ -48,13 +48,13 @@ namespace Server.Engines.Craft
|
|||
AddImageTiled(215, 37, 305, 250, 2624);
|
||||
AddAlphaRegion(10, 10, 510, 417);
|
||||
|
||||
if (craftSystem.GumpTitleNumber > 0)
|
||||
if (craftSystem.GumpTitle.Number > 0)
|
||||
{
|
||||
AddHtmlLocalized(10, 12, 510, 20, craftSystem.GumpTitleNumber, LabelColor);
|
||||
AddHtmlLocalized(10, 12, 510, 20, craftSystem.GumpTitle.Number, LabelColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddHtml(10, 12, 510, 20, craftSystem.GumpTitleString);
|
||||
AddHtml(10, 12, 510, 20, craftSystem.GumpTitle.String);
|
||||
}
|
||||
|
||||
AddHtmlLocalized(10, 37, 200, 22, 1044010, LabelColor); // <CENTER>CATEGORIES</CENTER>
|
||||
|
|
@ -106,20 +106,20 @@ namespace Server.Engines.Craft
|
|||
}
|
||||
// ****************************************
|
||||
|
||||
if (notice is int noticeInt && noticeInt > 0)
|
||||
if (notice.Number > 0)
|
||||
{
|
||||
AddHtmlLocalized(170, 295, 350, 40, noticeInt, LabelColor);
|
||||
AddHtmlLocalized(170, 295, 350, 40, notice.Number, LabelColor);
|
||||
}
|
||||
else if (notice is string)
|
||||
else
|
||||
{
|
||||
AddHtml(170, 295, 350, 40, $"<BASEFONT COLOR=#{FontColor:X6}>{notice}</BASEFONT>");
|
||||
AddHtml(170, 295, 350, 40, $"<BASEFONT COLOR=#{FontColor:X6}>{notice.String}</BASEFONT>");
|
||||
}
|
||||
|
||||
// If the system has more than one resource
|
||||
if (craftSystem.CraftSubRes.Init)
|
||||
{
|
||||
var nameString = craftSystem.CraftSubRes.NameString;
|
||||
var nameNumber = craftSystem.CraftSubRes.NameNumber;
|
||||
var nameString = craftSystem.CraftSubRes.Name.String;
|
||||
var nameNumber = craftSystem.CraftSubRes.Name.Number;
|
||||
|
||||
var resIndex = context?.LastResourceIndex ?? -1;
|
||||
|
||||
|
|
@ -129,8 +129,8 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
var subResource = craftSystem.CraftSubRes.GetAt(resIndex);
|
||||
|
||||
nameString = subResource.NameString;
|
||||
nameNumber = subResource.NameNumber;
|
||||
nameString = subResource.Name.String;
|
||||
nameNumber = subResource.Name.Number;
|
||||
resourceType = subResource.ItemType;
|
||||
}
|
||||
|
||||
|
|
@ -162,8 +162,8 @@ namespace Server.Engines.Craft
|
|||
// For dragon scales
|
||||
if (craftSystem.CraftSubRes2.Init)
|
||||
{
|
||||
var nameString = craftSystem.CraftSubRes2.NameString;
|
||||
var nameNumber = craftSystem.CraftSubRes2.NameNumber;
|
||||
var nameString = craftSystem.CraftSubRes2.Name.String;
|
||||
var nameNumber = craftSystem.CraftSubRes2.Name.Number;
|
||||
|
||||
var resIndex = context?.LastResourceIndex2 ?? -1;
|
||||
|
||||
|
|
@ -173,8 +173,8 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
var subResource = craftSystem.CraftSubRes2.GetAt(resIndex);
|
||||
|
||||
nameString = subResource.NameString;
|
||||
nameNumber = subResource.NameNumber;
|
||||
nameString = subResource.Name.String;
|
||||
nameNumber = subResource.Name.Number;
|
||||
resourceType = subResource.ItemType;
|
||||
}
|
||||
|
||||
|
|
@ -270,21 +270,21 @@ namespace Server.Engines.Craft
|
|||
|
||||
AddButton(220, 60 + index * 20, 4005, 4007, GetButtonID(5, i));
|
||||
|
||||
if (subResource.NameNumber > 0)
|
||||
if (subResource.Name.Number > 0)
|
||||
{
|
||||
AddHtmlLocalized(
|
||||
255,
|
||||
63 + index * 20,
|
||||
250,
|
||||
18,
|
||||
subResource.NameNumber,
|
||||
subResource.Name.Number,
|
||||
resourceCount.ToString(),
|
||||
LabelColor
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddLabel(255, 60 + index * 20, LabelHue, $"{subResource.NameString} ({resourceCount})");
|
||||
AddLabel(255, 60 + index * 20, LabelHue, $"{subResource.Name.String} ({resourceCount})");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -58,13 +58,13 @@ namespace Server.Engines.Craft
|
|||
AddHtmlLocalized(10, 277, 150, 22, 1044055, LabelColor); // <CENTER>MATERIALS</CENTER>
|
||||
AddHtmlLocalized(10, 362, 150, 22, 1044056, LabelColor); // <CENTER>OTHER</CENTER>
|
||||
|
||||
if (craftSystem.GumpTitleNumber > 0)
|
||||
if (craftSystem.GumpTitle.Number > 0)
|
||||
{
|
||||
AddHtmlLocalized(10, 12, 510, 20, craftSystem.GumpTitleNumber, LabelColor);
|
||||
AddHtmlLocalized(10, 12, 510, 20, craftSystem.GumpTitle.Number, LabelColor);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddHtml(10, 12, 510, 20, craftSystem.GumpTitleString);
|
||||
AddHtml(10, 12, 510, 20, craftSystem.GumpTitle.String);
|
||||
}
|
||||
|
||||
AddButton(15, 387, 4014, 4016, 0);
|
||||
|
|
@ -230,15 +230,11 @@ namespace Server.Engines.Craft
|
|||
|
||||
for (var i = 0; i < m_CraftItem.Resources.Count - (cropScroll ? 1 : 0) && i < 4; i++)
|
||||
{
|
||||
Type type;
|
||||
string nameString;
|
||||
int nameNumber;
|
||||
|
||||
var craftResource = m_CraftItem.Resources[i];
|
||||
|
||||
type = craftResource.ItemType;
|
||||
nameString = craftResource.NameString;
|
||||
nameNumber = craftResource.NameNumber;
|
||||
var type = craftResource.ItemType;
|
||||
var nameString = craftResource.Name.String;
|
||||
var nameNumber = craftResource.Name.Number;
|
||||
|
||||
// Resource Mutation
|
||||
if (type == res.ResType && resIndex > -1)
|
||||
|
|
@ -247,12 +243,12 @@ namespace Server.Engines.Craft
|
|||
|
||||
type = subResource.ItemType;
|
||||
|
||||
nameString = subResource.NameString;
|
||||
nameString = subResource.Name.String;
|
||||
nameNumber = subResource.GenericNameNumber;
|
||||
|
||||
if (nameNumber <= 0)
|
||||
{
|
||||
nameNumber = subResource.NameNumber;
|
||||
nameNumber = subResource.Name.Number;
|
||||
}
|
||||
}
|
||||
// ******************
|
||||
|
|
|
|||
|
|
@ -279,7 +279,7 @@ namespace Server.Engines.Craft
|
|||
Skills.Add(craftSkill);
|
||||
}
|
||||
|
||||
public bool ConsumeAttributes(Mobile from, ref object message, bool consume)
|
||||
public bool ConsumeAttributes(Mobile from, ref TextDefinition message, bool consume)
|
||||
{
|
||||
bool consumMana;
|
||||
bool consumHits;
|
||||
|
|
@ -393,7 +393,7 @@ namespace Server.Engines.Craft
|
|||
return inResourceTable;
|
||||
}
|
||||
|
||||
public bool Find(Mobile from, int[] itemIDs)
|
||||
public static bool Find(Mobile from, int[] itemIDs)
|
||||
{
|
||||
var map = from.Map;
|
||||
|
||||
|
|
@ -474,6 +474,7 @@ namespace Server.Engines.Craft
|
|||
throw new ArgumentOutOfRangeException(nameof(types));
|
||||
}
|
||||
|
||||
// TODO: Optimize allocation
|
||||
var items = new Item[types.Length][];
|
||||
var totals = new int[types.Length];
|
||||
|
||||
|
|
@ -576,13 +577,13 @@ namespace Server.Engines.Craft
|
|||
|
||||
public bool ConsumeRes(
|
||||
Mobile from, Type typeRes, CraftSystem craftSystem, ref int resHue, ref int maxAmount,
|
||||
ConsumeType consumeType, ref object message
|
||||
ConsumeType consumeType, ref TextDefinition message
|
||||
) =>
|
||||
ConsumeRes(from, typeRes, craftSystem, ref resHue, ref maxAmount, consumeType, ref message, false);
|
||||
|
||||
public bool ConsumeRes(
|
||||
Mobile from, Type typeRes, CraftSystem craftSystem, ref int resHue, ref int maxAmount,
|
||||
ConsumeType consumeType, ref object message, bool isFailure
|
||||
ConsumeType consumeType, ref TextDefinition message, bool isFailure
|
||||
)
|
||||
{
|
||||
var ourPack = from.Backpack;
|
||||
|
|
@ -662,13 +663,13 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
res = Resources[i];
|
||||
|
||||
if (res.MessageNumber > 0)
|
||||
if (res.Message.Number > 0)
|
||||
{
|
||||
message = res.MessageNumber;
|
||||
message = res.Message.Number;
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(res.MessageString))
|
||||
else if (!string.IsNullOrEmpty(res.Message.String))
|
||||
{
|
||||
message = res.MessageString;
|
||||
message = res.Message.String;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -720,10 +721,12 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
index = -1;
|
||||
|
||||
var isQuantityType = IsQuantityType(types);
|
||||
|
||||
// TODO: Optimize this
|
||||
for (var i = 0; i < types.Length; i++)
|
||||
{
|
||||
var quantity = IsQuantityType(types)
|
||||
var quantity = isQuantityType
|
||||
? GetQuantity(ourPack, types[i])
|
||||
: ourPack.GetBestGroupAmount(types[i], true, CheckHueGrouping);
|
||||
|
||||
|
|
@ -772,13 +775,13 @@ namespace Server.Engines.Craft
|
|||
|
||||
res = Resources[index];
|
||||
|
||||
if (res.MessageNumber > 0)
|
||||
if (res.Message.Number > 0)
|
||||
{
|
||||
message = res.MessageNumber;
|
||||
message = res.Message.Number;
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(res.MessageString))
|
||||
else if (!string.IsNullOrEmpty(res.Message.String))
|
||||
{
|
||||
message = res.MessageString;
|
||||
message = res.Message.String;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -975,7 +978,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
var resHue = 0;
|
||||
var maxAmount = 0;
|
||||
object message = null;
|
||||
TextDefinition message = null;
|
||||
|
||||
if (!ConsumeRes(from, typeRes, craftSystem, ref resHue, ref maxAmount, ConsumeType.None, ref message))
|
||||
{
|
||||
|
|
@ -1036,7 +1039,7 @@ namespace Server.Engines.Craft
|
|||
}
|
||||
|
||||
int checkResHue = 0, checkMaxAmount = 0;
|
||||
object checkMessage = null;
|
||||
TextDefinition checkMessage = null;
|
||||
|
||||
// Not enough resource to craft it
|
||||
if (!(ConsumeRes(
|
||||
|
|
@ -1054,13 +1057,13 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
from.SendGump(new CraftGump(from, craftSystem, tool, checkMessage));
|
||||
}
|
||||
else if (checkMessage is int messageInt && messageInt > 0)
|
||||
else if (checkMessage.Number > 0)
|
||||
{
|
||||
from.SendLocalizedMessage(messageInt);
|
||||
from.SendLocalizedMessage(checkMessage.Number);
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendMessage(checkMessage.ToString());
|
||||
from.SendMessage(checkMessage.String);
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
@ -1072,7 +1075,7 @@ namespace Server.Engines.Craft
|
|||
var endquality = 1;
|
||||
var resHue = 0;
|
||||
var maxAmount = 0;
|
||||
object message = null;
|
||||
TextDefinition message = null;
|
||||
var num = 0;
|
||||
|
||||
if (CheckSkills(from, typeRes, craftSystem, ref ignored, out var allRequiredSkills))
|
||||
|
|
@ -1085,13 +1088,13 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
from.SendGump(new CraftGump(from, craftSystem, tool, message));
|
||||
}
|
||||
else if (message is int messageIn && messageIn > 0)
|
||||
else if (message.Number > 0)
|
||||
{
|
||||
from.SendLocalizedMessage(messageIn);
|
||||
from.SendLocalizedMessage(message.Number);
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendMessage(message.ToString());
|
||||
from.SendMessage(message.String);
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
@ -1265,13 +1268,13 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
from.SendGump(new CraftGump(from, craftSystem, tool, message));
|
||||
}
|
||||
else if (message is int messageInt && messageInt > 0)
|
||||
else if (message.Number > 0)
|
||||
{
|
||||
from.SendLocalizedMessage(messageInt);
|
||||
from.SendLocalizedMessage(message.Number);
|
||||
}
|
||||
else
|
||||
{
|
||||
from.SendMessage(message.ToString());
|
||||
from.SendMessage(message.String);
|
||||
}
|
||||
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -9,34 +9,27 @@ namespace Server.Engines.Craft
|
|||
ItemType = type;
|
||||
Amount = amount;
|
||||
|
||||
NameNumber = name;
|
||||
MessageNumber = message;
|
||||
|
||||
NameString = name;
|
||||
MessageString = message;
|
||||
Name = name;
|
||||
Message = message;
|
||||
}
|
||||
|
||||
public Type ItemType { get; }
|
||||
|
||||
public string MessageString { get; }
|
||||
public TextDefinition Message { get; }
|
||||
|
||||
public int MessageNumber { get; }
|
||||
|
||||
public string NameString { get; }
|
||||
|
||||
public int NameNumber { get; }
|
||||
public TextDefinition Name { get; }
|
||||
|
||||
public int Amount { get; }
|
||||
|
||||
public void SendMessage(Mobile from)
|
||||
{
|
||||
if (MessageNumber > 0)
|
||||
if (Message.Number > 0)
|
||||
{
|
||||
from.SendLocalizedMessage(MessageNumber);
|
||||
from.SendLocalizedMessage(Message.Number);
|
||||
}
|
||||
else if (!string.IsNullOrEmpty(MessageString))
|
||||
else if (!string.IsNullOrEmpty(Message.String))
|
||||
{
|
||||
from.SendMessage(MessageString);
|
||||
from.SendMessage(Message.String);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
public class CraftSubRes
|
||||
{
|
||||
public CraftSubRes(Type type, TextDefinition name, double reqSkill, object message) : this(
|
||||
public CraftSubRes(Type type, TextDefinition name, double reqSkill, TextDefinition message) : this(
|
||||
type,
|
||||
name,
|
||||
reqSkill,
|
||||
|
|
@ -14,11 +14,10 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
}
|
||||
|
||||
public CraftSubRes(Type type, TextDefinition name, double reqSkill, int genericNameNumber, object message)
|
||||
public CraftSubRes(Type type, TextDefinition name, double reqSkill, int genericNameNumber, TextDefinition message)
|
||||
{
|
||||
ItemType = type;
|
||||
NameNumber = name;
|
||||
NameString = name;
|
||||
Name = name;
|
||||
RequiredSkill = reqSkill;
|
||||
GenericNameNumber = genericNameNumber;
|
||||
Message = message;
|
||||
|
|
@ -26,13 +25,11 @@ namespace Server.Engines.Craft
|
|||
|
||||
public Type ItemType { get; }
|
||||
|
||||
public string NameString { get; }
|
||||
|
||||
public int NameNumber { get; }
|
||||
public TextDefinition Name { get; }
|
||||
|
||||
public int GenericNameNumber { get; }
|
||||
|
||||
public object Message { get; }
|
||||
public TextDefinition Message { get; }
|
||||
|
||||
public double RequiredSkill { get; }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,9 +11,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public Type ResType { get; set; }
|
||||
|
||||
public string NameString { get; set; }
|
||||
|
||||
public int NameNumber { get; set; }
|
||||
public TextDefinition Name { get; set; }
|
||||
|
||||
public CraftSubRes GetAt(int index) => this[index];
|
||||
|
||||
|
|
|
|||
|
|
@ -50,8 +50,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public abstract SkillName MainSkill { get; }
|
||||
|
||||
public virtual int GumpTitleNumber => 0;
|
||||
public virtual string GumpTitleString => "";
|
||||
public virtual TextDefinition GumpTitle => 0;
|
||||
|
||||
public virtual CraftECA ECA => CraftECA.ChanceMinusSixty;
|
||||
|
||||
|
|
@ -269,65 +268,39 @@ namespace Server.Engines.Craft
|
|||
CraftItems[index].ForceNonExceptional = true;
|
||||
}
|
||||
|
||||
public void SetSubRes(Type type, string name)
|
||||
public void SetSubRes(Type type, TextDefinition name)
|
||||
{
|
||||
CraftSubRes.ResType = type;
|
||||
CraftSubRes.NameString = name;
|
||||
CraftSubRes.Name = name;
|
||||
CraftSubRes.Init = true;
|
||||
}
|
||||
|
||||
public void SetSubRes(Type type, int name)
|
||||
{
|
||||
CraftSubRes.ResType = type;
|
||||
CraftSubRes.NameNumber = name;
|
||||
CraftSubRes.Init = true;
|
||||
}
|
||||
|
||||
public void AddSubRes(Type type, int name, double reqSkill, object message)
|
||||
{
|
||||
var craftSubRes = new CraftSubRes(type, name, reqSkill, message);
|
||||
CraftSubRes.Add(craftSubRes);
|
||||
}
|
||||
|
||||
public void AddSubRes(Type type, int name, double reqSkill, int genericName, object message)
|
||||
public void AddSubRes(Type type, TextDefinition name, double reqSkill, int genericName, TextDefinition message)
|
||||
{
|
||||
var craftSubRes = new CraftSubRes(type, name, reqSkill, genericName, message);
|
||||
CraftSubRes.Add(craftSubRes);
|
||||
}
|
||||
|
||||
public void AddSubRes(Type type, string name, double reqSkill, object message)
|
||||
public void AddSubRes(Type type, TextDefinition name, double reqSkill, TextDefinition message)
|
||||
{
|
||||
var craftSubRes = new CraftSubRes(type, name, reqSkill, message);
|
||||
CraftSubRes.Add(craftSubRes);
|
||||
}
|
||||
|
||||
public void SetSubRes2(Type type, string name)
|
||||
public void SetSubRes2(Type type, TextDefinition name)
|
||||
{
|
||||
CraftSubRes2.ResType = type;
|
||||
CraftSubRes2.NameString = name;
|
||||
CraftSubRes2.Name = name;
|
||||
CraftSubRes2.Init = true;
|
||||
}
|
||||
|
||||
public void SetSubRes2(Type type, int name)
|
||||
{
|
||||
CraftSubRes2.ResType = type;
|
||||
CraftSubRes2.NameNumber = name;
|
||||
CraftSubRes2.Init = true;
|
||||
}
|
||||
|
||||
public void AddSubRes2(Type type, int name, double reqSkill, object message)
|
||||
{
|
||||
var craftSubRes = new CraftSubRes(type, name, reqSkill, message);
|
||||
CraftSubRes2.Add(craftSubRes);
|
||||
}
|
||||
|
||||
public void AddSubRes2(Type type, int name, double reqSkill, int genericName, object message)
|
||||
public void AddSubRes2(Type type, TextDefinition name, double reqSkill, int genericName, TextDefinition message)
|
||||
{
|
||||
var craftSubRes = new CraftSubRes(type, name, reqSkill, genericName, message);
|
||||
CraftSubRes2.Add(craftSubRes);
|
||||
}
|
||||
|
||||
public void AddSubRes2(Type type, string name, double reqSkill, object message)
|
||||
public void AddSubRes2(Type type, TextDefinition name, double reqSkill, TextDefinition message)
|
||||
{
|
||||
var craftSubRes = new CraftSubRes(type, name, reqSkill, message);
|
||||
CraftSubRes2.Add(craftSubRes);
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
public static EnhanceResult Invoke(
|
||||
Mobile from, CraftSystem craftSystem, BaseTool tool, Item item,
|
||||
CraftResource resource, Type resType, ref object resMessage
|
||||
CraftResource resource, Type resType, ref TextDefinition resMessage
|
||||
)
|
||||
{
|
||||
if (item == null)
|
||||
|
|
@ -410,7 +410,7 @@ namespace Server.Engines.Craft
|
|||
{
|
||||
if (targeted is Item item)
|
||||
{
|
||||
object message = null;
|
||||
TextDefinition message = null;
|
||||
var res = Enhance.Invoke(
|
||||
from,
|
||||
m_CraftSystem,
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public override SkillName MainSkill => SkillName.Alchemy;
|
||||
|
||||
public override int GumpTitleNumber => 1044001;
|
||||
public override TextDefinition GumpTitle => 1044001;
|
||||
|
||||
public static CraftSystem CraftSystem => m_CraftSystem ??= new DefAlchemy();
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public override SkillName MainSkill => SkillName.Blacksmith;
|
||||
|
||||
public override int GumpTitleNumber => 1044002;
|
||||
public override TextDefinition GumpTitle => 1044002;
|
||||
|
||||
public static CraftSystem CraftSystem => m_CraftSystem ??= new DefBlacksmithy();
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public override SkillName MainSkill => SkillName.Fletching;
|
||||
|
||||
public override int GumpTitleNumber => 1044006;
|
||||
public override TextDefinition GumpTitle => 1044006;
|
||||
|
||||
public static CraftSystem CraftSystem => m_CraftSystem ??= new DefBowFletching();
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public override SkillName MainSkill => SkillName.Carpentry;
|
||||
|
||||
public override int GumpTitleNumber => 1044004;
|
||||
public override TextDefinition GumpTitle => 1044004;
|
||||
|
||||
public static CraftSystem CraftSystem => m_CraftSystem ??= new DefCarpentry();
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public override SkillName MainSkill => SkillName.Cartography;
|
||||
|
||||
public override int GumpTitleNumber => 1044008;
|
||||
public override TextDefinition GumpTitle => 1044008;
|
||||
|
||||
public static CraftSystem CraftSystem => m_CraftSystem ??= new DefCartography();
|
||||
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public override SkillName MainSkill => SkillName.Cooking;
|
||||
|
||||
public override int GumpTitleNumber => 1044003;
|
||||
public override TextDefinition GumpTitle => 1044003;
|
||||
|
||||
public static CraftSystem CraftSystem => m_CraftSystem ??= new DefCooking();
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public override SkillName MainSkill => SkillName.Alchemy;
|
||||
|
||||
public override int GumpTitleNumber => 1044622;
|
||||
public override TextDefinition GumpTitle => 1044622;
|
||||
|
||||
public static CraftSystem CraftSystem => m_CraftSystem ??= new DefGlassblowing();
|
||||
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public override SkillName MainSkill => SkillName.Inscribe;
|
||||
|
||||
public override int GumpTitleNumber => 1044009;
|
||||
public override TextDefinition GumpTitle => 1044009;
|
||||
|
||||
public static CraftSystem CraftSystem => m_CraftSystem ??= new DefInscription();
|
||||
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public override SkillName MainSkill => SkillName.Carpentry;
|
||||
|
||||
public override int GumpTitleNumber => 1044500;
|
||||
public override TextDefinition GumpTitle => 1044500;
|
||||
|
||||
public static CraftSystem CraftSystem => m_CraftSystem ??= new DefMasonry();
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public override SkillName MainSkill => SkillName.Tailoring;
|
||||
|
||||
public override int GumpTitleNumber => 1044005; // Tailoring Menu
|
||||
public override TextDefinition GumpTitle => 1044005; // Tailoring Menu
|
||||
|
||||
public static CraftSystem CraftSystem => m_CraftSystem ??= new DefTailoring();
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ namespace Server.Engines.Craft
|
|||
|
||||
public override SkillName MainSkill => SkillName.Tinkering;
|
||||
|
||||
public override int GumpTitleNumber => 1044007;
|
||||
public override TextDefinition GumpTitle => 1044007;
|
||||
|
||||
public static CraftSystem CraftSystem => m_CraftSystem ??= new DefTinkering();
|
||||
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ namespace Server.Engines.Doom
|
|||
gate.GumpHeight = 280;
|
||||
|
||||
gate.MessageColor = 0x7F00;
|
||||
gate.MessageNumber = 1062109; // You are about to exit Dungeon Doom. Do you wish to continue?
|
||||
gate.Message = 1062109; // You are about to exit Dungeon Doom. Do you wish to continue?
|
||||
|
||||
gate.TitleColor = 0x7800;
|
||||
gate.TitleNumber = 1062108; // Please verify...
|
||||
|
|
|
|||
|
|
@ -13,11 +13,11 @@ namespace Server.Factions
|
|||
private readonly Faction m_Faction;
|
||||
private readonly Item m_Item;
|
||||
private readonly Mobile m_Mobile;
|
||||
private readonly object m_Notice;
|
||||
private readonly TextDefinition m_Notice;
|
||||
private readonly BaseTool m_Tool;
|
||||
|
||||
public FactionImbueGump(
|
||||
int quality, Item item, Mobile from, CraftSystem craftSystem, BaseTool tool, object notice,
|
||||
int quality, Item item, Mobile from, CraftSystem craftSystem, BaseTool tool, TextDefinition notice,
|
||||
int availableSilver, Faction faction, FactionItemDefinition def
|
||||
) : base(100, 200)
|
||||
{
|
||||
|
|
@ -98,13 +98,13 @@ namespace Server.Factions
|
|||
{
|
||||
m_Mobile.SendGump(new CraftGump(m_Mobile, m_CraftSystem, m_Tool, m_Notice));
|
||||
}
|
||||
else if (m_Notice is string s)
|
||||
else if (m_Notice.Number > 0)
|
||||
{
|
||||
m_Mobile.SendMessage(s);
|
||||
m_Mobile.SendLocalizedMessage(m_Notice.Number);
|
||||
}
|
||||
else if (m_Notice is int i && i > 0)
|
||||
else
|
||||
{
|
||||
m_Mobile.SendLocalizedMessage(i);
|
||||
m_Mobile.SendMessage(m_Notice.String);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ namespace Server.Engines.Harvest
|
|||
{
|
||||
public class HarvestResource
|
||||
{
|
||||
public HarvestResource(double reqSkill, double minSkill, double maxSkill, object message, params Type[] types)
|
||||
public HarvestResource(double reqSkill, double minSkill, double maxSkill, TextDefinition message, params Type[] types)
|
||||
{
|
||||
ReqSkill = reqSkill;
|
||||
MinSkill = minSkill;
|
||||
|
|
@ -21,17 +21,17 @@ namespace Server.Engines.Harvest
|
|||
|
||||
public double MaxSkill { get; set; }
|
||||
|
||||
public object SuccessMessage { get; }
|
||||
public TextDefinition SuccessMessage { get; }
|
||||
|
||||
public void SendSuccessTo(Mobile m)
|
||||
{
|
||||
if (SuccessMessage is int messageInt)
|
||||
if (SuccessMessage.Number > 0)
|
||||
{
|
||||
m.SendLocalizedMessage(messageInt);
|
||||
m.SendLocalizedMessage(SuccessMessage.Number);
|
||||
}
|
||||
else
|
||||
{
|
||||
m.SendMessage(SuccessMessage.ToString());
|
||||
m.SendMessage(SuccessMessage.String);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ namespace Server.Gumps
|
|||
private readonly NoticeGumpCallback m_Callback;
|
||||
|
||||
public NoticeGump(
|
||||
int header, int headerColor, object content, int contentColor, int width, int height,
|
||||
int header, int headerColor, TextDefinition content, int contentColor, int width, int height,
|
||||
NoticeGumpCallback callback = null
|
||||
) : base((640 - width) / 2, (480 - height) / 2)
|
||||
{
|
||||
|
|
@ -28,18 +28,18 @@ namespace Server.Gumps
|
|||
AddImageTiled(10, 40, width - 20, height - 80, 2624);
|
||||
AddAlphaRegion(10, 40, width - 20, height - 80);
|
||||
|
||||
if (content is int i)
|
||||
if (content.Number > 0)
|
||||
{
|
||||
AddHtmlLocalized(10, 40, width - 20, height - 80, i, contentColor, false, true);
|
||||
AddHtmlLocalized(10, 40, width - 20, height - 80, content.Number, contentColor, false, true);
|
||||
}
|
||||
else if (content is string)
|
||||
else
|
||||
{
|
||||
AddHtml(
|
||||
10,
|
||||
40,
|
||||
width - 20,
|
||||
height - 80,
|
||||
$"<BASEFONT COLOR=#{contentColor:X6}>{content}</BASEFONT>",
|
||||
$"<BASEFONT COLOR=#{contentColor:X6}>{content.String}</BASEFONT>",
|
||||
false,
|
||||
true
|
||||
);
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ namespace Server.Gumps
|
|||
private readonly WarningGumpCallback m_Callback;
|
||||
|
||||
public WarningGump(
|
||||
int header, int headerColor, object content, int contentColor, int width, int height,
|
||||
int header, int headerColor, TextDefinition content, int contentColor, int width, int height,
|
||||
WarningGumpCallback callback = null, bool cancelButton = true
|
||||
) : base((640 - width) / 2, (480 - height) / 2)
|
||||
{
|
||||
|
|
@ -28,18 +28,18 @@ namespace Server.Gumps
|
|||
AddImageTiled(10, 40, width - 20, height - 80, 2624);
|
||||
AddAlphaRegion(10, 40, width - 20, height - 80);
|
||||
|
||||
if (content is int i)
|
||||
if (content.Number > 0)
|
||||
{
|
||||
AddHtmlLocalized(10, 40, width - 20, height - 80, i, contentColor, false, true);
|
||||
AddHtmlLocalized(10, 40, width - 20, height - 80, content.Number, contentColor, false, true);
|
||||
}
|
||||
else if (content is string)
|
||||
else
|
||||
{
|
||||
AddHtml(
|
||||
10,
|
||||
40,
|
||||
width - 20,
|
||||
height - 80,
|
||||
$"<BASEFONT COLOR=#{contentColor:X6}>{content}</BASEFONT>",
|
||||
$"<BASEFONT COLOR=#{contentColor:X6}>{content.String}</BASEFONT>",
|
||||
false,
|
||||
true
|
||||
);
|
||||
|
|
@ -71,7 +71,7 @@ namespace Server.Gumps
|
|||
}
|
||||
else
|
||||
{
|
||||
m_Callback.Invoke(false);
|
||||
m_Callback(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -274,10 +274,7 @@ namespace Server.Items
|
|||
public int TitleNumber { get; set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public int MessageNumber { get; set; }
|
||||
|
||||
[CommandProperty(AccessLevel.GameMaster)]
|
||||
public string MessageString { get; set; }
|
||||
public TextDefinition Message { get; set; }
|
||||
|
||||
public virtual void Warning_Callback(Mobile from, bool okay)
|
||||
{
|
||||
|
|
@ -289,14 +286,14 @@ namespace Server.Items
|
|||
|
||||
public override void BeginConfirmation(Mobile from)
|
||||
{
|
||||
if (GumpWidth > 0 && GumpHeight > 0 && TitleNumber > 0 && (MessageNumber > 0 || MessageString != null))
|
||||
if (GumpWidth > 0 && GumpHeight > 0 && TitleNumber > 0 && !Message.IsEmpty)
|
||||
{
|
||||
from.CloseGump<WarningGump>();
|
||||
from.SendGump(
|
||||
new WarningGump(
|
||||
TitleNumber,
|
||||
TitleColor,
|
||||
MessageString ?? (object)MessageNumber,
|
||||
Message,
|
||||
MessageColor,
|
||||
GumpWidth,
|
||||
GumpHeight,
|
||||
|
|
@ -314,7 +311,9 @@ namespace Server.Items
|
|||
{
|
||||
base.Serialize(writer);
|
||||
|
||||
writer.Write(0); // version
|
||||
writer.Write(1); // version
|
||||
|
||||
TextDefinition.Serialize(writer, Message);
|
||||
|
||||
writer.WriteEncodedInt(GumpWidth);
|
||||
writer.WriteEncodedInt(GumpHeight);
|
||||
|
|
@ -323,9 +322,6 @@ namespace Server.Items
|
|||
writer.WriteEncodedInt(MessageColor);
|
||||
|
||||
writer.WriteEncodedInt(TitleNumber);
|
||||
writer.WriteEncodedInt(MessageNumber);
|
||||
|
||||
writer.Write(MessageString);
|
||||
}
|
||||
|
||||
public override void Deserialize(IGenericReader reader)
|
||||
|
|
@ -336,6 +332,11 @@ namespace Server.Items
|
|||
|
||||
switch (version)
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
Message = TextDefinition.Deserialize(reader);
|
||||
goto case 0;
|
||||
}
|
||||
case 0:
|
||||
{
|
||||
GumpWidth = reader.ReadEncodedInt();
|
||||
|
|
@ -345,9 +346,13 @@ namespace Server.Items
|
|||
MessageColor = reader.ReadEncodedInt();
|
||||
|
||||
TitleNumber = reader.ReadEncodedInt();
|
||||
MessageNumber = reader.ReadEncodedInt();
|
||||
|
||||
MessageString = reader.ReadString();
|
||||
if (version == 0)
|
||||
{
|
||||
var number = reader.ReadEncodedInt();
|
||||
var message = reader.ReadString();
|
||||
Message = number > 0 ? number : message;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
@ -388,11 +393,11 @@ namespace Server.Items
|
|||
40,
|
||||
400,
|
||||
200,
|
||||
1062050,
|
||||
1062050, // This Gate goes to Felucca... Continue to enter the gate, Cancel to stay here
|
||||
32512,
|
||||
false,
|
||||
true
|
||||
); // This Gate goes to Felucca... Continue to enter the gate, Cancel to stay here
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -401,11 +406,11 @@ namespace Server.Items
|
|||
40,
|
||||
400,
|
||||
200,
|
||||
1062049,
|
||||
1062049, // Dost thou wish to step into the moongate? Continue to enter the gate, Cancel to stay here
|
||||
32512,
|
||||
false,
|
||||
true
|
||||
); // Dost thou wish to step into the moongate? Continue to enter the gate, Cancel to stay here
|
||||
);
|
||||
}
|
||||
|
||||
AddImageTiled(10, 250, 400, 20, 2624);
|
||||
|
|
@ -429,7 +434,7 @@ namespace Server.Items
|
|||
40,
|
||||
380,
|
||||
60,
|
||||
@"Dost thou wish to step into the moongate? Continue to enter the gate, Cancel to stay here"
|
||||
"Dost thou wish to step into the moongate? Continue to enter the gate, Cancel to stay here"
|
||||
);
|
||||
|
||||
AddHtmlLocalized(55, 110, 290, 20, 1011012); // CANCEL
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue