First commit, step 4 completed

This commit is contained in:
bepis
2026-10-15 14:27:00 +11:00
commit 9a30efa170
5378 changed files with 1136719 additions and 0 deletions
@@ -0,0 +1,312 @@
local ItemUpgrade =
{
Name = "ItemUpgrade",
Type = "System",
Namespace = "C_ItemUpgrade",
Environment = "All",
Functions =
{
{
Name = "CanUpgradeItem",
Type = "Function",
SecretArguments = "AllowedWhenUntainted",
Arguments =
{
{ Name = "baseItem", Type = "ItemLocation", Mixin = "ItemLocationMixin", Nilable = false },
},
Returns =
{
{ Name = "isValid", Type = "bool", Nilable = false },
},
},
{
Name = "ClearItemUpgrade",
Type = "Function",
},
{
Name = "CloseItemUpgrade",
Type = "Function",
},
{
Name = "GetHighWatermarkForItem",
Type = "Function",
MayReturnNothing = true,
SecretArguments = "AllowedWhenUntainted",
Arguments =
{
{ Name = "itemInfo", Type = "ItemInfo", Nilable = false, Documentation = { "Item ID, Link, or Name" } },
},
Returns =
{
{ Name = "characterHighWatermark", Type = "number", Nilable = false },
{ Name = "accountHighWatermark", Type = "number", Nilable = false },
},
},
{
Name = "GetHighWatermarkForSlot",
Type = "Function",
MayReturnNothing = true,
SecretArguments = "AllowedWhenUntainted",
Arguments =
{
{ Name = "itemRedundancySlot", Type = "number", Nilable = false, Documentation = { "Must be an Enum.ItemRedundancySlot value" } },
},
Returns =
{
{ Name = "characterHighWatermark", Type = "number", Nilable = false },
{ Name = "accountHighWatermark", Type = "number", Nilable = false },
},
},
{
Name = "GetHighWatermarkSlotForItem",
Type = "Function",
MayReturnNothing = true,
SecretArguments = "AllowedWhenUntainted",
Arguments =
{
{ Name = "itemInfo", Type = "ItemInfo", Nilable = false, Documentation = { "Item ID, Link, or Name" } },
},
Returns =
{
{ Name = "itemRedundancySlot", Type = "number", Nilable = false, Documentation = { "Enum.ItemRedundancySlot value" } },
},
},
{
Name = "GetItemHyperlink",
Type = "Function",
MayReturnNothing = true,
Returns =
{
{ Name = "link", Type = "cstring", Nilable = false },
},
},
{
Name = "GetItemUpgradeCurrentLevel",
Type = "Function",
MayReturnNothing = true,
Returns =
{
{ Name = "itemLevel", Type = "number", Nilable = false },
{ Name = "isPvpItemLevel", Type = "bool", Nilable = false },
},
},
{
Name = "GetItemUpgradeEffect",
Type = "Function",
MayReturnNothing = true,
SecretArguments = "AllowedWhenUntainted",
Arguments =
{
{ Name = "effectIndex", Type = "number", Nilable = false },
{ Name = "numUpgradeLevels", Type = "number", Nilable = true },
},
Returns =
{
{ Name = "outBaseEffect", Type = "string", Nilable = false },
{ Name = "outUpgradedEffect", Type = "string", Nilable = false },
},
},
{
Name = "GetItemUpgradeItemInfo",
Type = "Function",
MayReturnNothing = true,
Returns =
{
{ Name = "itemInfo", Type = "ItemUpgradeItemInfo", Nilable = false },
},
},
{
Name = "GetItemUpgradePvpItemLevelDeltaValues",
Type = "Function",
MayReturnNothing = true,
SecretArguments = "AllowedWhenUntainted",
Arguments =
{
{ Name = "numUpgradeLevels", Type = "number", Nilable = false },
},
Returns =
{
{ Name = "currentPvPItemLevel", Type = "number", Nilable = false },
{ Name = "upgradedPvPItemLevel", Type = "number", Nilable = false },
},
},
{
Name = "GetNumItemUpgradeEffects",
Type = "Function",
Returns =
{
{ Name = "numItemUpgradeEffects", Type = "number", Nilable = false },
},
},
{
Name = "IsItemBound",
Type = "Function",
Returns =
{
{ Name = "isBound", Type = "bool", Nilable = false },
},
},
{
Name = "SetItemUpgradeFromCursorItem",
Type = "Function",
},
{
Name = "SetItemUpgradeFromLocation",
Type = "Function",
SecretArguments = "AllowedWhenUntainted",
Arguments =
{
{ Name = "itemToSet", Type = "ItemLocation", Mixin = "ItemLocationMixin", Nilable = false },
},
},
{
Name = "UpgradeItem",
Type = "Function",
SecretArguments = "AllowedWhenUntainted",
Arguments =
{
{ Name = "numUpgrades", Type = "number", Nilable = false, Default = 1 },
},
},
},
Events =
{
{
Name = "ItemUpgradeFailed",
Type = "Event",
LiteralName = "ITEM_UPGRADE_FAILED",
SynchronousEvent = true,
},
{
Name = "ItemUpgradeMasterSetItem",
Type = "Event",
LiteralName = "ITEM_UPGRADE_MASTER_SET_ITEM",
SynchronousEvent = true,
},
{
Name = "ItemUpgradeMasterUpdate",
Type = "Event",
LiteralName = "ITEM_UPGRADE_MASTER_UPDATE",
SynchronousEvent = true,
},
},
Tables =
{
{
Name = "ItemUpgradeCostDiscountInfo",
Type = "Structure",
Fields =
{
{ Name = "isDiscounted", Type = "bool", Nilable = false },
{ Name = "discountHighWatermark", Type = "number", Nilable = false },
{ Name = "isPartialTwoHandDiscount", Type = "bool", Nilable = false },
{ Name = "isAccountWideDiscount", Type = "bool", Nilable = false },
{ Name = "doesCurrentCharacterMeetHighWatermark", Type = "bool", Nilable = false, Documentation = { "Reflects whether current character meets discount's high watermark, even if discount itself is account-wide" } },
},
},
{
Name = "ItemUpgradeCurrencyCost",
Type = "Structure",
Fields =
{
{ Name = "cost", Type = "number", Nilable = false },
{ Name = "currencyID", Type = "number", Nilable = false },
{ Name = "discountInfo", Type = "ItemUpgradeCostDiscountInfo", Nilable = false },
},
},
{
Name = "ItemUpgradeItemCost",
Type = "Structure",
Fields =
{
{ Name = "cost", Type = "number", Nilable = false },
{ Name = "itemID", Type = "number", Nilable = false },
{ Name = "discountInfo", Type = "ItemUpgradeCostDiscountInfo", Nilable = false },
},
},
{
Name = "ItemUpgradeItemInfo",
Type = "Structure",
Fields =
{
{ Name = "iconID", Type = "number", Nilable = false },
{ Name = "name", Type = "string", Nilable = false },
{ Name = "itemUpgradeable", Type = "bool", Nilable = false },
{ Name = "displayQuality", Type = "number", Nilable = false },
{ Name = "highWatermarkSlot", Type = "number", Nilable = false },
{ Name = "currUpgrade", Type = "number", Nilable = false },
{ Name = "maxUpgrade", Type = "number", Nilable = false },
{ Name = "minItemLevel", Type = "number", Nilable = false },
{ Name = "maxItemLevel", Type = "number", Nilable = false },
{ Name = "upgradeLevelInfos", Type = "table", InnerType = "ItemUpgradeLevelInfo", Nilable = false },
{ Name = "customUpgradeString", Type = "string", Nilable = true },
{ Name = "upgradeCostTypesForSeason", Type = "table", InnerType = "ItemUpgradeSeasonalCostType", Nilable = false },
},
},
{
Name = "ItemUpgradeLevelInfo",
Type = "Structure",
Fields =
{
{ Name = "upgradeLevel", Type = "number", Nilable = false },
{ Name = "displayQuality", Type = "number", Nilable = false },
{ Name = "itemLevelIncrement", Type = "number", Nilable = false },
{ Name = "levelStats", Type = "table", InnerType = "ItemUpgradeStat", Nilable = false },
{ Name = "currencyCostsToUpgrade", Type = "table", InnerType = "ItemUpgradeCurrencyCost", Nilable = false },
{ Name = "itemCostsToUpgrade", Type = "table", InnerType = "ItemUpgradeItemCost", Nilable = false },
{ Name = "moneyCost", Type = "WOWMONEY", Nilable = true },
{ Name = "failureMessage", Type = "string", Nilable = true },
},
},
{
Name = "ItemUpgradeSeasonalCostType",
Type = "Structure",
Documentation = { "Costs are made up of either an Item OR a Currency, so either itemID or currencyID will be nil" },
Fields =
{
{ Name = "itemID", Type = "number", Nilable = true },
{ Name = "currencyID", Type = "number", Nilable = true },
{ Name = "orderIndex", Type = "number", Nilable = false },
{ Name = "sourceString", Type = "string", Nilable = true },
},
},
{
Name = "ItemUpgradeStat",
Type = "Structure",
Fields =
{
{ Name = "displayString", Type = "string", Nilable = false },
{ Name = "statValue", Type = "number", Nilable = false },
{ Name = "active", Type = "bool", Nilable = false },
},
},
},
Predicates =
{
},
};
APIDocumentation:AddDocumentationTable(ItemUpgrade);