[{"data":1,"prerenderedAt":3295},["ShallowReactive",2],{"doc-global_essentials\u002Fitems\u002Fitems_api":3},{"id":4,"title":5,"body":6,"description":17,"extension":3287,"meta":3288,"navigation":102,"path":3291,"seo":3292,"stem":3293,"__hash__":3294},"docs\u002Fdocs\u002Fglobal_essentials\u002Fitems\u002Fitems_api.md","API",{"type":7,"value":8,"toc":3251},"minimark",[9,14,18,21,26,31,34,193,197,200,337,341,344,360,364,367,395,399,402,473,477,480,522,526,529,564,568,571,598,602,605,624,628,631,687,689,693,1006,1008,1012,1016,1157,1161,1222,1226,1308,1312,1360,1364,1395,1397,1401,1527,1529,1533,1537,1777,1781,1897,1901,2097,2101,2133,2137,2278,2282,2400,2402,2406,2410,2906,2910,3137,3141,3247],[10,11,13],"h1",{"id":12},"items-api-reference","Items API Reference",[15,16,17],"p",{},"API reference for working with items and inventories in code.",[19,20],"hr",{},[22,23,25],"h2",{"id":24},"game-methods","Game Methods",[27,28,30],"h3",{"id":29},"createitemtemplate","createItem(template)",[15,32,33],{},"Create an item from a template object or registered template ID.",[35,36,41],"pre",{"className":37,"code":38,"language":39,"meta":40,"style":40},"language-js shiki shiki-themes github-light github-dark","\u002F\u002F From a registered template ID\nconst sword = game.createItem(\"iron_sword\");\ninventory.addItem(sword);\n\n\u002F\u002F From a custom template object\nconst customItem = game.createItem({\n  id: \"custom_sword\",\n  traits: { name: \"Custom Sword\", description: \"My mighty custom sword.\" },\n  slots: [\"weapon_slot\"],\n  tags: [\"weapon\", \"sword\"]\n});\n","js","",[42,43,44,53,85,97,104,110,127,139,157,169,187],"code",{"__ignoreMap":40},[45,46,49],"span",{"class":47,"line":48},"line",1,[45,50,52],{"class":51},"sJ8bj","\u002F\u002F From a registered template ID\n",[45,54,56,60,64,67,71,75,78,82],{"class":47,"line":55},2,[45,57,59],{"class":58},"szBVR","const",[45,61,63],{"class":62},"sj4cs"," sword",[45,65,66],{"class":58}," =",[45,68,70],{"class":69},"sVt8B"," game.",[45,72,74],{"class":73},"sScJk","createItem",[45,76,77],{"class":69},"(",[45,79,81],{"class":80},"sZZnC","\"iron_sword\"",[45,83,84],{"class":69},");\n",[45,86,88,91,94],{"class":47,"line":87},3,[45,89,90],{"class":69},"inventory.",[45,92,93],{"class":73},"addItem",[45,95,96],{"class":69},"(sword);\n",[45,98,100],{"class":47,"line":99},4,[45,101,103],{"emptyLinePlaceholder":102},true,"\n",[45,105,107],{"class":47,"line":106},5,[45,108,109],{"class":51},"\u002F\u002F From a custom template object\n",[45,111,113,115,118,120,122,124],{"class":47,"line":112},6,[45,114,59],{"class":58},[45,116,117],{"class":62}," customItem",[45,119,66],{"class":58},[45,121,70],{"class":69},[45,123,74],{"class":73},[45,125,126],{"class":69},"({\n",[45,128,130,133,136],{"class":47,"line":129},7,[45,131,132],{"class":69},"  id: ",[45,134,135],{"class":80},"\"custom_sword\"",[45,137,138],{"class":69},",\n",[45,140,142,145,148,151,154],{"class":47,"line":141},8,[45,143,144],{"class":69},"  traits: { name: ",[45,146,147],{"class":80},"\"Custom Sword\"",[45,149,150],{"class":69},", description: ",[45,152,153],{"class":80},"\"My mighty custom sword.\"",[45,155,156],{"class":69}," },\n",[45,158,160,163,166],{"class":47,"line":159},9,[45,161,162],{"class":69},"  slots: [",[45,164,165],{"class":80},"\"weapon_slot\"",[45,167,168],{"class":69},"],\n",[45,170,172,175,178,181,184],{"class":47,"line":171},10,[45,173,174],{"class":69},"  tags: [",[45,176,177],{"class":80},"\"weapon\"",[45,179,180],{"class":69},", ",[45,182,183],{"class":80},"\"sword\"",[45,185,186],{"class":69},"]\n",[45,188,190],{"class":47,"line":189},11,[45,191,192],{"class":69},"});\n",[27,194,196],{"id":195},"createinventoryid-template","createInventory(id, template?)",[15,198,199],{},"Create an inventory, optionally populated from a template.",[35,201,203],{"className":37,"code":202,"language":39,"meta":40,"style":40},"\u002F\u002F Create empty inventory\nconst chest = game.createInventory(\"treasure_chest_1\");\n\n\u002F\u002F Create from template ID\nconst shop = game.createInventory(\"shop_1\", \"blacksmith_shop\");\n\n\u002F\u002F Create from custom template object\nconst custom = game.createInventory(\"custom_inv\", {\n  items: [{ item_id: \"gold\", quantity: 100 }],\n  max_size: 20,\n  recipes: [\"sword_recipe\"]\n});\n",[42,204,205,210,231,235,240,265,269,274,295,312,322,332],{"__ignoreMap":40},[45,206,207],{"class":47,"line":48},[45,208,209],{"class":51},"\u002F\u002F Create empty inventory\n",[45,211,212,214,217,219,221,224,226,229],{"class":47,"line":55},[45,213,59],{"class":58},[45,215,216],{"class":62}," chest",[45,218,66],{"class":58},[45,220,70],{"class":69},[45,222,223],{"class":73},"createInventory",[45,225,77],{"class":69},[45,227,228],{"class":80},"\"treasure_chest_1\"",[45,230,84],{"class":69},[45,232,233],{"class":47,"line":87},[45,234,103],{"emptyLinePlaceholder":102},[45,236,237],{"class":47,"line":99},[45,238,239],{"class":51},"\u002F\u002F Create from template ID\n",[45,241,242,244,247,249,251,253,255,258,260,263],{"class":47,"line":106},[45,243,59],{"class":58},[45,245,246],{"class":62}," shop",[45,248,66],{"class":58},[45,250,70],{"class":69},[45,252,223],{"class":73},[45,254,77],{"class":69},[45,256,257],{"class":80},"\"shop_1\"",[45,259,180],{"class":69},[45,261,262],{"class":80},"\"blacksmith_shop\"",[45,264,84],{"class":69},[45,266,267],{"class":47,"line":112},[45,268,103],{"emptyLinePlaceholder":102},[45,270,271],{"class":47,"line":129},[45,272,273],{"class":51},"\u002F\u002F Create from custom template object\n",[45,275,276,278,281,283,285,287,289,292],{"class":47,"line":141},[45,277,59],{"class":58},[45,279,280],{"class":62}," custom",[45,282,66],{"class":58},[45,284,70],{"class":69},[45,286,223],{"class":73},[45,288,77],{"class":69},[45,290,291],{"class":80},"\"custom_inv\"",[45,293,294],{"class":69},", {\n",[45,296,297,300,303,306,309],{"class":47,"line":159},[45,298,299],{"class":69},"  items: [{ item_id: ",[45,301,302],{"class":80},"\"gold\"",[45,304,305],{"class":69},", quantity: ",[45,307,308],{"class":62},"100",[45,310,311],{"class":69}," }],\n",[45,313,314,317,320],{"class":47,"line":171},[45,315,316],{"class":69},"  max_size: ",[45,318,319],{"class":62},"20",[45,321,138],{"class":69},[45,323,324,327,330],{"class":47,"line":189},[45,325,326],{"class":69},"  recipes: [",[45,328,329],{"class":80},"\"sword_recipe\"",[45,331,186],{"class":69},[45,333,335],{"class":47,"line":334},12,[45,336,192],{"class":69},[27,338,340],{"id":339},"addinventoryinventory","addInventory(inventory)",[15,342,343],{},"Add an existing inventory instance to the game.",[35,345,347],{"className":37,"code":346,"language":39,"meta":40,"style":40},"game.addInventory(inventory);\n",[42,348,349],{"__ignoreMap":40},[45,350,351,354,357],{"class":47,"line":48},[45,352,353],{"class":69},"game.",[45,355,356],{"class":73},"addInventory",[45,358,359],{"class":69},"(inventory);\n",[27,361,363],{"id":362},"removeinventoryinventory","removeInventory(inventory)",[15,365,366],{},"Remove an inventory from the game. Accepts inventory instance or ID string.",[35,368,370],{"className":37,"code":369,"language":39,"meta":40,"style":40},"game.removeInventory(\"temporary_chest\");\ngame.removeInventory(chestInventory);\n",[42,371,372,386],{"__ignoreMap":40},[45,373,374,376,379,381,384],{"class":47,"line":48},[45,375,353],{"class":69},[45,377,378],{"class":73},"removeInventory",[45,380,77],{"class":69},[45,382,383],{"class":80},"\"temporary_chest\"",[45,385,84],{"class":69},[45,387,388,390,392],{"class":47,"line":55},[45,389,353],{"class":69},[45,391,378],{"class":73},[45,393,394],{"class":69},"(chestInventory);\n",[27,396,398],{"id":397},"getinventoryid","getInventory(id)",[15,400,401],{},"Get an inventory by ID.",[35,403,405],{"className":37,"code":404,"language":39,"meta":40,"style":40},"const inventory = game.getInventory(\"party_inventory\");\nif (inventory) {\n  console.log(`Inventory has ${inventory.items.length} items`);\n}\n",[42,406,407,428,436,468],{"__ignoreMap":40},[45,408,409,411,414,416,418,421,423,426],{"class":47,"line":48},[45,410,59],{"class":58},[45,412,413],{"class":62}," inventory",[45,415,66],{"class":58},[45,417,70],{"class":69},[45,419,420],{"class":73},"getInventory",[45,422,77],{"class":69},[45,424,425],{"class":80},"\"party_inventory\"",[45,427,84],{"class":69},[45,429,430,433],{"class":47,"line":55},[45,431,432],{"class":58},"if",[45,434,435],{"class":69}," (inventory) {\n",[45,437,438,441,444,446,449,452,455,458,460,463,466],{"class":47,"line":87},[45,439,440],{"class":69},"  console.",[45,442,443],{"class":73},"log",[45,445,77],{"class":69},[45,447,448],{"class":80},"`Inventory has ${",[45,450,451],{"class":69},"inventory",[45,453,454],{"class":80},".",[45,456,457],{"class":69},"items",[45,459,454],{"class":80},[45,461,462],{"class":62},"length",[45,464,465],{"class":80},"} items`",[45,467,84],{"class":69},[45,469,470],{"class":47,"line":99},[45,471,472],{"class":69},"}\n",[27,474,476],{"id":475},"openexchangeinventoryid-state","openExchange(inventoryId, state)",[15,478,479],{},"Open an exchange UI (loot or trade) with an inventory.",[35,481,483],{"className":37,"code":482,"language":39,"meta":40,"style":40},"game.openExchange(\"merchant_inventory\", \"trade\");\ngame.openExchange(\"treasure_chest\", \"loot\");\n",[42,484,485,504],{"__ignoreMap":40},[45,486,487,489,492,494,497,499,502],{"class":47,"line":48},[45,488,353],{"class":69},[45,490,491],{"class":73},"openExchange",[45,493,77],{"class":69},[45,495,496],{"class":80},"\"merchant_inventory\"",[45,498,180],{"class":69},[45,500,501],{"class":80},"\"trade\"",[45,503,84],{"class":69},[45,505,506,508,510,512,515,517,520],{"class":47,"line":55},[45,507,353],{"class":69},[45,509,491],{"class":73},[45,511,77],{"class":69},[45,513,514],{"class":80},"\"treasure_chest\"",[45,516,180],{"class":69},[45,518,519],{"class":80},"\"loot\"",[45,521,84],{"class":69},[27,523,525],{"id":524},"closeexchangeinventoryexchangeinventory","closeExchangeInventory(exchangeInventory)",[15,527,528],{},"Close the exchange UI and proceed to the next scene.",[35,530,532],{"className":37,"code":531,"language":39,"meta":40,"style":40},"const merchant = game.getInventory(\"merchant_shop\");\ngame.closeExchangeInventory(merchant);\n",[42,533,534,554],{"__ignoreMap":40},[45,535,536,538,541,543,545,547,549,552],{"class":47,"line":48},[45,537,59],{"class":58},[45,539,540],{"class":62}," merchant",[45,542,66],{"class":58},[45,544,70],{"class":69},[45,546,420],{"class":73},[45,548,77],{"class":69},[45,550,551],{"class":80},"\"merchant_shop\"",[45,553,84],{"class":69},[45,555,556,558,561],{"class":47,"line":55},[45,557,353],{"class":69},[45,559,560],{"class":73},"closeExchangeInventory",[45,562,563],{"class":69},"(merchant);\n",[27,565,567],{"id":566},"canuseitems","canUseItems()",[15,569,570],{},"Check if item usage is currently allowed. Returns false when party inventory is blocked.",[35,572,574],{"className":37,"code":573,"language":39,"meta":40,"style":40},"if (game.canUseItems()) {\n  \u002F\u002F Show use item button\n}\n",[42,575,576,589,594],{"__ignoreMap":40},[45,577,578,580,583,586],{"class":47,"line":48},[45,579,432],{"class":58},[45,581,582],{"class":69}," (game.",[45,584,585],{"class":73},"canUseItems",[45,587,588],{"class":69},"()) {\n",[45,590,591],{"class":47,"line":55},[45,592,593],{"class":51},"  \u002F\u002F Show use item button\n",[45,595,596],{"class":47,"line":87},[45,597,472],{"class":69},[27,599,601],{"id":600},"addlearnedreciperecipeid","addLearnedRecipe(recipeId)",[15,603,604],{},"Add a recipe to the player's learned recipes.",[35,606,608],{"className":37,"code":607,"language":39,"meta":40,"style":40},"game.addLearnedRecipe(\"iron_sword_recipe\");\n",[42,609,610],{"__ignoreMap":40},[45,611,612,614,617,619,622],{"class":47,"line":48},[45,613,353],{"class":69},[45,615,616],{"class":73},"addLearnedRecipe",[45,618,77],{"class":69},[45,620,621],{"class":80},"\"iron_sword_recipe\"",[45,623,84],{"class":69},[27,625,627],{"id":626},"getlearnedrecipes","getLearnedRecipes()",[15,629,630],{},"Get all learned recipe IDs.",[35,632,634],{"className":37,"code":633,"language":39,"meta":40,"style":40},"const recipes = game.getLearnedRecipes();\nif (recipes.has(\"iron_sword_recipe\")) {\n  console.log(\"Player can craft iron swords\");\n}\n",[42,635,636,653,670,683],{"__ignoreMap":40},[45,637,638,640,643,645,647,650],{"class":47,"line":48},[45,639,59],{"class":58},[45,641,642],{"class":62}," recipes",[45,644,66],{"class":58},[45,646,70],{"class":69},[45,648,649],{"class":73},"getLearnedRecipes",[45,651,652],{"class":69},"();\n",[45,654,655,657,660,663,665,667],{"class":47,"line":55},[45,656,432],{"class":58},[45,658,659],{"class":69}," (recipes.",[45,661,662],{"class":73},"has",[45,664,77],{"class":69},[45,666,621],{"class":80},[45,668,669],{"class":69},")) {\n",[45,671,672,674,676,678,681],{"class":47,"line":87},[45,673,440],{"class":69},[45,675,443],{"class":73},[45,677,77],{"class":69},[45,679,680],{"class":80},"\"Player can craft iron swords\"",[45,682,84],{"class":69},[45,684,685],{"class":47,"line":99},[45,686,472],{"class":69},[19,688],{},[22,690,692],{"id":691},"item-properties","Item Properties",[694,695,696,712],"table",{},[697,698,699],"thead",{},[700,701,702,706,709],"tr",{},[703,704,705],"th",{},"Property",[703,707,708],{},"Type",[703,710,711],{},"Description",[713,714,715,731,745,760,775,790,805,819,834,849,864,879,893,908,922,936,950,964,978,992],"tbody",{},[700,716,717,723,728],{},[718,719,720],"td",{},[42,721,722],{},"id",[718,724,725],{},[42,726,727],{},"string",[718,729,730],{},"Template ID",[700,732,733,738,742],{},[718,734,735],{},[42,736,737],{},"uid",[718,739,740],{},[42,741,727],{},[718,743,744],{},"Unique instance identifier",[700,746,747,752,757],{},[718,748,749],{},[42,750,751],{},"traits",[718,753,754],{},[42,755,756],{},"Record\u003Cstring, any>",[718,758,759],{},"Dynamic properties (name, damage, weight, etc.)",[700,761,762,767,772],{},[718,763,764],{},[42,765,766],{},"attributes",[718,768,769],{},[42,770,771],{},"Record\u003Cstring, string>",[718,773,774],{},"String attributes (rarity, type)",[700,776,777,782,787],{},[718,778,779],{},[42,780,781],{},"properties",[718,783,784],{},[42,785,786],{},"Record\u003Cstring, Property>",[718,788,789],{},"Property objects attached to item",[700,791,792,797,802],{},[718,793,794],{},[42,795,796],{},"statusObject",[718,798,799],{},[42,800,801],{},"any",[718,803,804],{},"Status effect data when equipped",[700,806,807,812,816],{},[718,808,809],{},[42,810,811],{},"actions",[718,813,814],{},[42,815,801],{},[718,817,818],{},"Action handlers (item_equip_before, item_use)",[700,820,821,826,831],{},[718,822,823],{},[42,824,825],{},"choices",[718,827,828],{},[42,829,830],{},"string[]",[718,832,833],{},"Choice IDs available when using item",[700,835,836,841,846],{},[718,837,838],{},[42,839,840],{},"price",[718,842,843],{},[42,844,845],{},"Record\u003Cstring, number>",[718,847,848],{},"Base price in currencies",[700,850,851,856,861],{},[718,852,853],{},[42,854,855],{},"tradePrice",[718,857,858],{},[42,859,860],{},"object",[718,862,863],{},"Trade prices (player\u002Ftrader)",[700,865,866,871,876],{},[718,867,868],{},[42,869,870],{},"is_currency",[718,872,873],{},[42,874,875],{},"boolean",[718,877,878],{},"Whether item is a currency",[700,880,881,886,890],{},[718,882,883],{},[42,884,885],{},"is_consumable",[718,887,888],{},[42,889,875],{},[718,891,892],{},"Whether item can be consumed",[700,894,895,900,905],{},[718,896,897],{},[42,898,899],{},"consume_duration",[718,901,902],{},[42,903,904],{},"number",[718,906,907],{},"Status duration on consume (-1 = permanent)",[700,909,910,915,919],{},[718,911,912],{},[42,913,914],{},"consume_max_stacks",[718,916,917],{},[42,918,904],{},[718,920,921],{},"Max stacks for consume status (-1 = unlimited)",[700,923,924,929,933],{},[718,925,926],{},[42,927,928],{},"consume_percentage",[718,930,931],{},[42,932,845],{},[718,934,935],{},"% of max resource to restore\u002Freduce on consume",[700,937,938,943,947],{},[718,939,940],{},[42,941,942],{},"consume_absolute",[718,944,945],{},[42,946,845],{},[718,948,949],{},"Flat resource amount to restore\u002Freduce on consume",[700,951,952,957,961],{},[718,953,954],{},[42,955,956],{},"slots",[718,958,959],{},[42,960,830],{},[718,962,963],{},"Equipment slot IDs item can equip to",[700,965,966,971,975],{},[718,967,968],{},[42,969,970],{},"tags",[718,972,973],{},[42,974,830],{},[718,976,977],{},"Tags for categorizing",[700,979,980,985,989],{},[718,981,982],{},[42,983,984],{},"isEquipped",[718,986,987],{},[42,988,875],{},[718,990,991],{},"Whether currently equipped",[700,993,994,999,1003],{},[718,995,996],{},[42,997,998],{},"quantity",[718,1000,1001],{},[42,1002,904],{},[718,1004,1005],{},"Current stack quantity",[19,1007],{},[22,1009,1011],{"id":1010},"item-methods","Item Methods",[27,1013,1015],{"id":1014},"trait-accessors","Trait Accessors",[35,1017,1019],{"className":37,"code":1018,"language":39,"meta":40,"style":40},"\u002F\u002F Get trait value\nconst damage = item.getTrait(\"damage\");\n\n\u002F\u002F Convenience accessors\nconst name = item.getName();\nconst image = item.getImage();\nconst description = item.getDescription();\nconst rarity = item.getRarity();\nconst type = item.getType();\nconst weight = item.getWeight(); \u002F\u002F Multiplied by quantity\n",[42,1020,1021,1026,1048,1052,1057,1073,1089,1105,1121,1137],{"__ignoreMap":40},[45,1022,1023],{"class":47,"line":48},[45,1024,1025],{"class":51},"\u002F\u002F Get trait value\n",[45,1027,1028,1030,1033,1035,1038,1041,1043,1046],{"class":47,"line":55},[45,1029,59],{"class":58},[45,1031,1032],{"class":62}," damage",[45,1034,66],{"class":58},[45,1036,1037],{"class":69}," item.",[45,1039,1040],{"class":73},"getTrait",[45,1042,77],{"class":69},[45,1044,1045],{"class":80},"\"damage\"",[45,1047,84],{"class":69},[45,1049,1050],{"class":47,"line":87},[45,1051,103],{"emptyLinePlaceholder":102},[45,1053,1054],{"class":47,"line":99},[45,1055,1056],{"class":51},"\u002F\u002F Convenience accessors\n",[45,1058,1059,1061,1064,1066,1068,1071],{"class":47,"line":106},[45,1060,59],{"class":58},[45,1062,1063],{"class":62}," name",[45,1065,66],{"class":58},[45,1067,1037],{"class":69},[45,1069,1070],{"class":73},"getName",[45,1072,652],{"class":69},[45,1074,1075,1077,1080,1082,1084,1087],{"class":47,"line":112},[45,1076,59],{"class":58},[45,1078,1079],{"class":62}," image",[45,1081,66],{"class":58},[45,1083,1037],{"class":69},[45,1085,1086],{"class":73},"getImage",[45,1088,652],{"class":69},[45,1090,1091,1093,1096,1098,1100,1103],{"class":47,"line":129},[45,1092,59],{"class":58},[45,1094,1095],{"class":62}," description",[45,1097,66],{"class":58},[45,1099,1037],{"class":69},[45,1101,1102],{"class":73},"getDescription",[45,1104,652],{"class":69},[45,1106,1107,1109,1112,1114,1116,1119],{"class":47,"line":141},[45,1108,59],{"class":58},[45,1110,1111],{"class":62}," rarity",[45,1113,66],{"class":58},[45,1115,1037],{"class":69},[45,1117,1118],{"class":73},"getRarity",[45,1120,652],{"class":69},[45,1122,1123,1125,1128,1130,1132,1135],{"class":47,"line":159},[45,1124,59],{"class":58},[45,1126,1127],{"class":62}," type",[45,1129,66],{"class":58},[45,1131,1037],{"class":69},[45,1133,1134],{"class":73},"getType",[45,1136,652],{"class":69},[45,1138,1139,1141,1144,1146,1148,1151,1154],{"class":47,"line":171},[45,1140,59],{"class":58},[45,1142,1143],{"class":62}," weight",[45,1145,66],{"class":58},[45,1147,1037],{"class":69},[45,1149,1150],{"class":73},"getWeight",[45,1152,1153],{"class":69},"(); ",[45,1155,1156],{"class":51},"\u002F\u002F Multiplied by quantity\n",[27,1158,1160],{"id":1159},"tag-methods","Tag Methods",[35,1162,1164],{"className":37,"code":1163,"language":39,"meta":40,"style":40},"\u002F\u002F Get all tags\nconst tags = item.getTags();\n\n\u002F\u002F Check for tag\nif (item.hasTag(\"consumable\")) {\n  \u002F\u002F Show use button\n}\n",[42,1165,1166,1171,1187,1191,1196,1213,1218],{"__ignoreMap":40},[45,1167,1168],{"class":47,"line":48},[45,1169,1170],{"class":51},"\u002F\u002F Get all tags\n",[45,1172,1173,1175,1178,1180,1182,1185],{"class":47,"line":55},[45,1174,59],{"class":58},[45,1176,1177],{"class":62}," tags",[45,1179,66],{"class":58},[45,1181,1037],{"class":69},[45,1183,1184],{"class":73},"getTags",[45,1186,652],{"class":69},[45,1188,1189],{"class":47,"line":87},[45,1190,103],{"emptyLinePlaceholder":102},[45,1192,1193],{"class":47,"line":99},[45,1194,1195],{"class":51},"\u002F\u002F Check for tag\n",[45,1197,1198,1200,1203,1206,1208,1211],{"class":47,"line":106},[45,1199,432],{"class":58},[45,1201,1202],{"class":69}," (item.",[45,1204,1205],{"class":73},"hasTag",[45,1207,77],{"class":69},[45,1209,1210],{"class":80},"\"consumable\"",[45,1212,669],{"class":69},[45,1214,1215],{"class":47,"line":112},[45,1216,1217],{"class":51},"  \u002F\u002F Show use button\n",[45,1219,1220],{"class":47,"line":129},[45,1221,472],{"class":69},[27,1223,1225],{"id":1224},"trading-methods","Trading Methods",[35,1227,1229],{"className":37,"code":1228,"language":39,"meta":40,"style":40},"\u002F\u002F Check if tradable\nif (item.isTradable()) {\n  \u002F\u002F Get specific currency price\n  const goldCost = item.getPrice(\"gold\"); \u002F\u002F 100\n\n  \u002F\u002F Get all prices\n  const allPrices = item.getPrice(); \u002F\u002F { gold: 100, gems: 5 }\n}\n",[42,1230,1231,1236,1247,1252,1277,1281,1286,1304],{"__ignoreMap":40},[45,1232,1233],{"class":47,"line":48},[45,1234,1235],{"class":51},"\u002F\u002F Check if tradable\n",[45,1237,1238,1240,1242,1245],{"class":47,"line":55},[45,1239,432],{"class":58},[45,1241,1202],{"class":69},[45,1243,1244],{"class":73},"isTradable",[45,1246,588],{"class":69},[45,1248,1249],{"class":47,"line":87},[45,1250,1251],{"class":51},"  \u002F\u002F Get specific currency price\n",[45,1253,1254,1257,1260,1262,1264,1267,1269,1271,1274],{"class":47,"line":99},[45,1255,1256],{"class":58},"  const",[45,1258,1259],{"class":62}," goldCost",[45,1261,66],{"class":58},[45,1263,1037],{"class":69},[45,1265,1266],{"class":73},"getPrice",[45,1268,77],{"class":69},[45,1270,302],{"class":80},[45,1272,1273],{"class":69},"); ",[45,1275,1276],{"class":51},"\u002F\u002F 100\n",[45,1278,1279],{"class":47,"line":106},[45,1280,103],{"emptyLinePlaceholder":102},[45,1282,1283],{"class":47,"line":112},[45,1284,1285],{"class":51},"  \u002F\u002F Get all prices\n",[45,1287,1288,1290,1293,1295,1297,1299,1301],{"class":47,"line":129},[45,1289,1256],{"class":58},[45,1291,1292],{"class":62}," allPrices",[45,1294,66],{"class":58},[45,1296,1037],{"class":69},[45,1298,1266],{"class":73},[45,1300,1153],{"class":69},[45,1302,1303],{"class":51},"\u002F\u002F { gold: 100, gems: 5 }\n",[45,1305,1306],{"class":47,"line":141},[45,1307,472],{"class":69},[27,1309,1311],{"id":1310},"stacking","Stacking",[35,1313,1315],{"className":37,"code":1314,"language":39,"meta":40,"style":40},"\u002F\u002F Get max stack size (1 = non-stackable, -1 = unlimited)\nif (item.maxStack() > 1) {\n  console.log(\"This item is stackable\");\n}\n",[42,1316,1317,1322,1343,1356],{"__ignoreMap":40},[45,1318,1319],{"class":47,"line":48},[45,1320,1321],{"class":51},"\u002F\u002F Get max stack size (1 = non-stackable, -1 = unlimited)\n",[45,1323,1324,1326,1328,1331,1334,1337,1340],{"class":47,"line":55},[45,1325,432],{"class":58},[45,1327,1202],{"class":69},[45,1329,1330],{"class":73},"maxStack",[45,1332,1333],{"class":69},"() ",[45,1335,1336],{"class":58},">",[45,1338,1339],{"class":62}," 1",[45,1341,1342],{"class":69},") {\n",[45,1344,1345,1347,1349,1351,1354],{"class":47,"line":87},[45,1346,440],{"class":69},[45,1348,443],{"class":73},[45,1350,77],{"class":69},[45,1352,1353],{"class":80},"\"This item is stackable\"",[45,1355,84],{"class":69},[45,1357,1358],{"class":47,"line":99},[45,1359,472],{"class":69},[27,1361,1363],{"id":1362},"css-classes","CSS Classes",[35,1365,1367],{"className":37,"code":1366,"language":39,"meta":40,"style":40},"\u002F\u002F Get attribute-based CSS classes\nconst classes = item.getAttributeClasses();\n\u002F\u002F [\"rarity_legendary\", \"type_weapon\"]\n",[42,1368,1369,1374,1390],{"__ignoreMap":40},[45,1370,1371],{"class":47,"line":48},[45,1372,1373],{"class":51},"\u002F\u002F Get attribute-based CSS classes\n",[45,1375,1376,1378,1381,1383,1385,1388],{"class":47,"line":55},[45,1377,59],{"class":58},[45,1379,1380],{"class":62}," classes",[45,1382,66],{"class":58},[45,1384,1037],{"class":69},[45,1386,1387],{"class":73},"getAttributeClasses",[45,1389,652],{"class":69},[45,1391,1392],{"class":47,"line":87},[45,1393,1394],{"class":51},"\u002F\u002F [\"rarity_legendary\", \"type_weapon\"]\n",[19,1396],{},[22,1398,1400],{"id":1399},"inventory-properties","Inventory Properties",[694,1402,1403,1413],{},[697,1404,1405],{},[700,1406,1407,1409,1411],{},[703,1408,705],{},[703,1410,708],{},[703,1412,711],{},[713,1414,1415,1428,1442,1456,1470,1484,1499,1513],{},[700,1416,1417,1421,1425],{},[718,1418,1419],{},[42,1420,722],{},[718,1422,1423],{},[42,1424,727],{},[718,1426,1427],{},"Unique identifier",[700,1429,1430,1435,1439],{},[718,1431,1432],{},[42,1433,1434],{},"name",[718,1436,1437],{},[42,1438,727],{},[718,1440,1441],{},"Display name",[700,1443,1444,1449,1453],{},[718,1445,1446],{},[42,1447,1448],{},"maxSize",[718,1450,1451],{},[42,1452,904],{},[718,1454,1455],{},"Max item stacks (0 = unlimited)",[700,1457,1458,1463,1467],{},[718,1459,1460],{},[42,1461,1462],{},"maxWeight",[718,1464,1465],{},[42,1466,904],{},[718,1468,1469],{},"Max weight (0 = unlimited)",[700,1471,1472,1477,1481],{},[718,1473,1474],{},[42,1475,1476],{},"interactive",[718,1478,1479],{},[42,1480,727],{},[718,1482,1483],{},"Action ID for 'apply' button",[700,1485,1486,1491,1496],{},[718,1487,1488],{},[42,1489,1490],{},"recipes",[718,1492,1493],{},[42,1494,1495],{},"Set\u003Cstring>",[718,1497,1498],{},"Recipe IDs available",[700,1500,1501,1506,1510],{},[718,1502,1503],{},[42,1504,1505],{},"selectedRecipeId",[718,1507,1508],{},[42,1509,727],{},[718,1511,1512],{},"Currently selected recipe",[700,1514,1515,1519,1524],{},[718,1516,1517],{},[42,1518,457],{},[718,1520,1521],{},[42,1522,1523],{},"Item[]",[718,1525,1526],{},"Items in inventory",[19,1528],{},[22,1530,1532],{"id":1531},"inventory-methods","Inventory Methods",[27,1534,1536],{"id":1535},"item-management","Item Management",[35,1538,1540],{"className":37,"code":1539,"language":39,"meta":40,"style":40},"\u002F\u002F Add item (auto-stacks)\ninventory.addItem(sword);\ninventory.addItem(potion, 5);\ninventory.addItem(goldCoin, 100, true); \u002F\u002F Skip validation\n\n\u002F\u002F Clone item\nconst clone = inventory.cloneItem(item);\n\n\u002F\u002F Remove item\ninventory.removeItem(item);\n\n\u002F\u002F Reduce quantity (removes item if it reaches 0)\ninventory.reduceItemQuantity(item, 1);\n\n\u002F\u002F Remove all unequipped items\ninventory.clear();\n\n\u002F\u002F Find items\nconst sword = inventory.getFirstItemById(\"iron_sword\");\nconst potions = inventory.getItemsById(\"health_potion\");\nconst item = inventory.getItemByUid(\"abc123\");\nconst weapons = inventory.getItemsByTrait(\"damage\");\n",[42,1541,1542,1547,1555,1569,1590,1594,1599,1617,1621,1626,1635,1639,1644,1660,1665,1671,1681,1686,1692,1712,1734,1756],{"__ignoreMap":40},[45,1543,1544],{"class":47,"line":48},[45,1545,1546],{"class":51},"\u002F\u002F Add item (auto-stacks)\n",[45,1548,1549,1551,1553],{"class":47,"line":55},[45,1550,90],{"class":69},[45,1552,93],{"class":73},[45,1554,96],{"class":69},[45,1556,1557,1559,1561,1564,1567],{"class":47,"line":87},[45,1558,90],{"class":69},[45,1560,93],{"class":73},[45,1562,1563],{"class":69},"(potion, ",[45,1565,1566],{"class":62},"5",[45,1568,84],{"class":69},[45,1570,1571,1573,1575,1578,1580,1582,1585,1587],{"class":47,"line":99},[45,1572,90],{"class":69},[45,1574,93],{"class":73},[45,1576,1577],{"class":69},"(goldCoin, ",[45,1579,308],{"class":62},[45,1581,180],{"class":69},[45,1583,1584],{"class":62},"true",[45,1586,1273],{"class":69},[45,1588,1589],{"class":51},"\u002F\u002F Skip validation\n",[45,1591,1592],{"class":47,"line":106},[45,1593,103],{"emptyLinePlaceholder":102},[45,1595,1596],{"class":47,"line":112},[45,1597,1598],{"class":51},"\u002F\u002F Clone item\n",[45,1600,1601,1603,1606,1608,1611,1614],{"class":47,"line":129},[45,1602,59],{"class":58},[45,1604,1605],{"class":62}," clone",[45,1607,66],{"class":58},[45,1609,1610],{"class":69}," inventory.",[45,1612,1613],{"class":73},"cloneItem",[45,1615,1616],{"class":69},"(item);\n",[45,1618,1619],{"class":47,"line":141},[45,1620,103],{"emptyLinePlaceholder":102},[45,1622,1623],{"class":47,"line":159},[45,1624,1625],{"class":51},"\u002F\u002F Remove item\n",[45,1627,1628,1630,1633],{"class":47,"line":171},[45,1629,90],{"class":69},[45,1631,1632],{"class":73},"removeItem",[45,1634,1616],{"class":69},[45,1636,1637],{"class":47,"line":189},[45,1638,103],{"emptyLinePlaceholder":102},[45,1640,1641],{"class":47,"line":334},[45,1642,1643],{"class":51},"\u002F\u002F Reduce quantity (removes item if it reaches 0)\n",[45,1645,1647,1649,1652,1655,1658],{"class":47,"line":1646},13,[45,1648,90],{"class":69},[45,1650,1651],{"class":73},"reduceItemQuantity",[45,1653,1654],{"class":69},"(item, ",[45,1656,1657],{"class":62},"1",[45,1659,84],{"class":69},[45,1661,1663],{"class":47,"line":1662},14,[45,1664,103],{"emptyLinePlaceholder":102},[45,1666,1668],{"class":47,"line":1667},15,[45,1669,1670],{"class":51},"\u002F\u002F Remove all unequipped items\n",[45,1672,1674,1676,1679],{"class":47,"line":1673},16,[45,1675,90],{"class":69},[45,1677,1678],{"class":73},"clear",[45,1680,652],{"class":69},[45,1682,1684],{"class":47,"line":1683},17,[45,1685,103],{"emptyLinePlaceholder":102},[45,1687,1689],{"class":47,"line":1688},18,[45,1690,1691],{"class":51},"\u002F\u002F Find items\n",[45,1693,1695,1697,1699,1701,1703,1706,1708,1710],{"class":47,"line":1694},19,[45,1696,59],{"class":58},[45,1698,63],{"class":62},[45,1700,66],{"class":58},[45,1702,1610],{"class":69},[45,1704,1705],{"class":73},"getFirstItemById",[45,1707,77],{"class":69},[45,1709,81],{"class":80},[45,1711,84],{"class":69},[45,1713,1715,1717,1720,1722,1724,1727,1729,1732],{"class":47,"line":1714},20,[45,1716,59],{"class":58},[45,1718,1719],{"class":62}," potions",[45,1721,66],{"class":58},[45,1723,1610],{"class":69},[45,1725,1726],{"class":73},"getItemsById",[45,1728,77],{"class":69},[45,1730,1731],{"class":80},"\"health_potion\"",[45,1733,84],{"class":69},[45,1735,1737,1739,1742,1744,1746,1749,1751,1754],{"class":47,"line":1736},21,[45,1738,59],{"class":58},[45,1740,1741],{"class":62}," item",[45,1743,66],{"class":58},[45,1745,1610],{"class":69},[45,1747,1748],{"class":73},"getItemByUid",[45,1750,77],{"class":69},[45,1752,1753],{"class":80},"\"abc123\"",[45,1755,84],{"class":69},[45,1757,1759,1761,1764,1766,1768,1771,1773,1775],{"class":47,"line":1758},22,[45,1760,59],{"class":58},[45,1762,1763],{"class":62}," weapons",[45,1765,66],{"class":58},[45,1767,1610],{"class":69},[45,1769,1770],{"class":73},"getItemsByTrait",[45,1772,77],{"class":69},[45,1774,1045],{"class":80},[45,1776,84],{"class":69},[27,1778,1780],{"id":1779},"capacity","Capacity",[35,1782,1784],{"className":37,"code":1783,"language":39,"meta":40,"style":40},"\u002F\u002F Weight\nconst totalWeight = inventory.getTotalWeight();\nconst availableWeight = inventory.getAvailableWeight(); \u002F\u002F null if unlimited\n\n\u002F\u002F Slots\nconst availableSlots = inventory.getAvailableSlots(); \u002F\u002F null if unlimited\n\n\u002F\u002F Status checks\nif (inventory.isOverflowing()) { \u002F* more items than maxSize *\u002F }\nif (inventory.isOverweight()) { \u002F* weight exceeds maxWeight *\u002F }\n",[42,1785,1786,1791,1807,1826,1830,1835,1853,1857,1862,1881],{"__ignoreMap":40},[45,1787,1788],{"class":47,"line":48},[45,1789,1790],{"class":51},"\u002F\u002F Weight\n",[45,1792,1793,1795,1798,1800,1802,1805],{"class":47,"line":55},[45,1794,59],{"class":58},[45,1796,1797],{"class":62}," totalWeight",[45,1799,66],{"class":58},[45,1801,1610],{"class":69},[45,1803,1804],{"class":73},"getTotalWeight",[45,1806,652],{"class":69},[45,1808,1809,1811,1814,1816,1818,1821,1823],{"class":47,"line":87},[45,1810,59],{"class":58},[45,1812,1813],{"class":62}," availableWeight",[45,1815,66],{"class":58},[45,1817,1610],{"class":69},[45,1819,1820],{"class":73},"getAvailableWeight",[45,1822,1153],{"class":69},[45,1824,1825],{"class":51},"\u002F\u002F null if unlimited\n",[45,1827,1828],{"class":47,"line":99},[45,1829,103],{"emptyLinePlaceholder":102},[45,1831,1832],{"class":47,"line":106},[45,1833,1834],{"class":51},"\u002F\u002F Slots\n",[45,1836,1837,1839,1842,1844,1846,1849,1851],{"class":47,"line":112},[45,1838,59],{"class":58},[45,1840,1841],{"class":62}," availableSlots",[45,1843,66],{"class":58},[45,1845,1610],{"class":69},[45,1847,1848],{"class":73},"getAvailableSlots",[45,1850,1153],{"class":69},[45,1852,1825],{"class":51},[45,1854,1855],{"class":47,"line":129},[45,1856,103],{"emptyLinePlaceholder":102},[45,1858,1859],{"class":47,"line":141},[45,1860,1861],{"class":51},"\u002F\u002F Status checks\n",[45,1863,1864,1866,1869,1872,1875,1878],{"class":47,"line":159},[45,1865,432],{"class":58},[45,1867,1868],{"class":69}," (inventory.",[45,1870,1871],{"class":73},"isOverflowing",[45,1873,1874],{"class":69},"()) { ",[45,1876,1877],{"class":51},"\u002F* more items than maxSize *\u002F",[45,1879,1880],{"class":69}," }\n",[45,1882,1883,1885,1887,1890,1892,1895],{"class":47,"line":171},[45,1884,432],{"class":58},[45,1886,1868],{"class":69},[45,1888,1889],{"class":73},"isOverweight",[45,1891,1874],{"class":69},[45,1893,1894],{"class":51},"\u002F* weight exceeds maxWeight *\u002F",[45,1896,1880],{"class":69},[27,1898,1900],{"id":1899},"equipment","Equipment",[35,1902,1904],{"className":37,"code":1903,"language":39,"meta":40,"style":40},"\u002F\u002F Get equipped\u002Funequipped items\nconst equipped = inventory.getEquippedItems();\nconst unequipped = inventory.getUnequippedItems();\n\n\u002F\u002F Equip\u002Funequip via character (recommended)\ncharacter.equipItem(sword);                  \u002F\u002F Auto-find slot\ncharacter.equipItem(\"item_uid_123\", \"weapon\"); \u002F\u002F Specific slot type\ncharacter.equipItem(\"item_uid_123\", \"ring\", 1); \u002F\u002F Specific slot index\ncharacter.unequipItem(sword);\n\n\u002F\u002F Items not in inventory are added automatically\nconst newSword = game.createItem(\"iron_sword\");\ncharacter.equipItem(newSword); \u002F\u002F Added to inventory and equipped\n\n\u002F\u002F Already-equipped items are skipped (logs error)\n\n\u002F\u002F Low-level inventory methods\ninventory.equipSlot(slot, item, character);\ninventory.unequipSlot(slot, character);\n",[42,1905,1906,1911,1927,1943,1947,1952,1966,1986,2010,2019,2023,2028,2047,2059,2063,2068,2072,2077,2087],{"__ignoreMap":40},[45,1907,1908],{"class":47,"line":48},[45,1909,1910],{"class":51},"\u002F\u002F Get equipped\u002Funequipped items\n",[45,1912,1913,1915,1918,1920,1922,1925],{"class":47,"line":55},[45,1914,59],{"class":58},[45,1916,1917],{"class":62}," equipped",[45,1919,66],{"class":58},[45,1921,1610],{"class":69},[45,1923,1924],{"class":73},"getEquippedItems",[45,1926,652],{"class":69},[45,1928,1929,1931,1934,1936,1938,1941],{"class":47,"line":87},[45,1930,59],{"class":58},[45,1932,1933],{"class":62}," unequipped",[45,1935,66],{"class":58},[45,1937,1610],{"class":69},[45,1939,1940],{"class":73},"getUnequippedItems",[45,1942,652],{"class":69},[45,1944,1945],{"class":47,"line":99},[45,1946,103],{"emptyLinePlaceholder":102},[45,1948,1949],{"class":47,"line":106},[45,1950,1951],{"class":51},"\u002F\u002F Equip\u002Funequip via character (recommended)\n",[45,1953,1954,1957,1960,1963],{"class":47,"line":112},[45,1955,1956],{"class":69},"character.",[45,1958,1959],{"class":73},"equipItem",[45,1961,1962],{"class":69},"(sword);                  ",[45,1964,1965],{"class":51},"\u002F\u002F Auto-find slot\n",[45,1967,1968,1970,1972,1974,1977,1979,1981,1983],{"class":47,"line":129},[45,1969,1956],{"class":69},[45,1971,1959],{"class":73},[45,1973,77],{"class":69},[45,1975,1976],{"class":80},"\"item_uid_123\"",[45,1978,180],{"class":69},[45,1980,177],{"class":80},[45,1982,1273],{"class":69},[45,1984,1985],{"class":51},"\u002F\u002F Specific slot type\n",[45,1987,1988,1990,1992,1994,1996,1998,2001,2003,2005,2007],{"class":47,"line":141},[45,1989,1956],{"class":69},[45,1991,1959],{"class":73},[45,1993,77],{"class":69},[45,1995,1976],{"class":80},[45,1997,180],{"class":69},[45,1999,2000],{"class":80},"\"ring\"",[45,2002,180],{"class":69},[45,2004,1657],{"class":62},[45,2006,1273],{"class":69},[45,2008,2009],{"class":51},"\u002F\u002F Specific slot index\n",[45,2011,2012,2014,2017],{"class":47,"line":159},[45,2013,1956],{"class":69},[45,2015,2016],{"class":73},"unequipItem",[45,2018,96],{"class":69},[45,2020,2021],{"class":47,"line":171},[45,2022,103],{"emptyLinePlaceholder":102},[45,2024,2025],{"class":47,"line":189},[45,2026,2027],{"class":51},"\u002F\u002F Items not in inventory are added automatically\n",[45,2029,2030,2032,2035,2037,2039,2041,2043,2045],{"class":47,"line":334},[45,2031,59],{"class":58},[45,2033,2034],{"class":62}," newSword",[45,2036,66],{"class":58},[45,2038,70],{"class":69},[45,2040,74],{"class":73},[45,2042,77],{"class":69},[45,2044,81],{"class":80},[45,2046,84],{"class":69},[45,2048,2049,2051,2053,2056],{"class":47,"line":1646},[45,2050,1956],{"class":69},[45,2052,1959],{"class":73},[45,2054,2055],{"class":69},"(newSword); ",[45,2057,2058],{"class":51},"\u002F\u002F Added to inventory and equipped\n",[45,2060,2061],{"class":47,"line":1662},[45,2062,103],{"emptyLinePlaceholder":102},[45,2064,2065],{"class":47,"line":1667},[45,2066,2067],{"class":51},"\u002F\u002F Already-equipped items are skipped (logs error)\n",[45,2069,2070],{"class":47,"line":1673},[45,2071,103],{"emptyLinePlaceholder":102},[45,2073,2074],{"class":47,"line":1683},[45,2075,2076],{"class":51},"\u002F\u002F Low-level inventory methods\n",[45,2078,2079,2081,2084],{"class":47,"line":1688},[45,2080,90],{"class":69},[45,2082,2083],{"class":73},"equipSlot",[45,2085,2086],{"class":69},"(slot, item, character);\n",[45,2088,2089,2091,2094],{"class":47,"line":1694},[45,2090,90],{"class":69},[45,2092,2093],{"class":73},"unequipSlot",[45,2095,2096],{"class":69},"(slot, character);\n",[27,2098,2100],{"id":2099},"transfer","Transfer",[35,2102,2104],{"className":37,"code":2103,"language":39,"meta":40,"style":40},"\u002F\u002F Transfer between inventories\nconst success = playerInventory.transferTo(chestInventory, sword, 1);\n",[42,2105,2106,2111],{"__ignoreMap":40},[45,2107,2108],{"class":47,"line":48},[45,2109,2110],{"class":51},"\u002F\u002F Transfer between inventories\n",[45,2112,2113,2115,2118,2120,2123,2126,2129,2131],{"class":47,"line":55},[45,2114,59],{"class":58},[45,2116,2117],{"class":62}," success",[45,2119,66],{"class":58},[45,2121,2122],{"class":69}," playerInventory.",[45,2124,2125],{"class":73},"transferTo",[45,2127,2128],{"class":69},"(chestInventory, sword, ",[45,2130,1657],{"class":62},[45,2132,84],{"class":69},[27,2134,2136],{"id":2135},"currency","Currency",[35,2138,2140],{"className":37,"code":2139,"language":39,"meta":40,"style":40},"\u002F\u002F Get item quantity (works for any item, including currencies)\nconst gold = inventory.getItemQuantity(\"gold\");\n\n\u002F\u002F Get all currencies\nconst currencies = inventory.getCurrencies(); \u002F\u002F { gold: 150, gems: 20 }\n\n\u002F\u002F Check affordability\nif (inventory.canAfford(shopItem)) { \u002F* can buy *\u002F }\nif (inventory.canAffordPrice({ gold: 100, gems: 5 })) { \u002F* has enough *\u002F }\n\n\u002F\u002F Deduct currency\nconst paid = inventory.deductCurrency({ gold: 100 });\n",[42,2141,2142,2147,2167,2171,2176,2195,2199,2204,2221,2248,2252,2257],{"__ignoreMap":40},[45,2143,2144],{"class":47,"line":48},[45,2145,2146],{"class":51},"\u002F\u002F Get item quantity (works for any item, including currencies)\n",[45,2148,2149,2151,2154,2156,2158,2161,2163,2165],{"class":47,"line":55},[45,2150,59],{"class":58},[45,2152,2153],{"class":62}," gold",[45,2155,66],{"class":58},[45,2157,1610],{"class":69},[45,2159,2160],{"class":73},"getItemQuantity",[45,2162,77],{"class":69},[45,2164,302],{"class":80},[45,2166,84],{"class":69},[45,2168,2169],{"class":47,"line":87},[45,2170,103],{"emptyLinePlaceholder":102},[45,2172,2173],{"class":47,"line":99},[45,2174,2175],{"class":51},"\u002F\u002F Get all currencies\n",[45,2177,2178,2180,2183,2185,2187,2190,2192],{"class":47,"line":106},[45,2179,59],{"class":58},[45,2181,2182],{"class":62}," currencies",[45,2184,66],{"class":58},[45,2186,1610],{"class":69},[45,2188,2189],{"class":73},"getCurrencies",[45,2191,1153],{"class":69},[45,2193,2194],{"class":51},"\u002F\u002F { gold: 150, gems: 20 }\n",[45,2196,2197],{"class":47,"line":112},[45,2198,103],{"emptyLinePlaceholder":102},[45,2200,2201],{"class":47,"line":129},[45,2202,2203],{"class":51},"\u002F\u002F Check affordability\n",[45,2205,2206,2208,2210,2213,2216,2219],{"class":47,"line":141},[45,2207,432],{"class":58},[45,2209,1868],{"class":69},[45,2211,2212],{"class":73},"canAfford",[45,2214,2215],{"class":69},"(shopItem)) { ",[45,2217,2218],{"class":51},"\u002F* can buy *\u002F",[45,2220,1880],{"class":69},[45,2222,2223,2225,2227,2230,2233,2235,2238,2240,2243,2246],{"class":47,"line":159},[45,2224,432],{"class":58},[45,2226,1868],{"class":69},[45,2228,2229],{"class":73},"canAffordPrice",[45,2231,2232],{"class":69},"({ gold: ",[45,2234,308],{"class":62},[45,2236,2237],{"class":69},", gems: ",[45,2239,1566],{"class":62},[45,2241,2242],{"class":69}," })) { ",[45,2244,2245],{"class":51},"\u002F* has enough *\u002F",[45,2247,1880],{"class":69},[45,2249,2250],{"class":47,"line":171},[45,2251,103],{"emptyLinePlaceholder":102},[45,2253,2254],{"class":47,"line":189},[45,2255,2256],{"class":51},"\u002F\u002F Deduct currency\n",[45,2258,2259,2261,2264,2266,2268,2271,2273,2275],{"class":47,"line":334},[45,2260,59],{"class":58},[45,2262,2263],{"class":62}," paid",[45,2265,66],{"class":58},[45,2267,1610],{"class":69},[45,2269,2270],{"class":73},"deductCurrency",[45,2272,2232],{"class":69},[45,2274,308],{"class":62},[45,2276,2277],{"class":69}," });\n",[27,2279,2281],{"id":2280},"recipes-crafting","Recipes & Crafting",[35,2283,2285],{"className":37,"code":2284,"language":39,"meta":40,"style":40},"\u002F\u002F Add recipe\ninventory.addRecipe(\"iron_sword_recipe\");\n\n\u002F\u002F Get recipes\nconst recipes = inventory.getRecipes();\n\n\u002F\u002F Craft\ninventory.selectedRecipeId = \"iron_sword_recipe\";\ninventory.craft();\n\n\u002F\u002F Or craft specific recipe\ninventory.craft(\"iron_sword_recipe\");\n\n\u002F\u002F Apply interactive action or craft\ninventory.apply();\n",[42,2286,2287,2292,2305,2309,2314,2329,2333,2338,2352,2361,2365,2370,2382,2386,2391],{"__ignoreMap":40},[45,2288,2289],{"class":47,"line":48},[45,2290,2291],{"class":51},"\u002F\u002F Add recipe\n",[45,2293,2294,2296,2299,2301,2303],{"class":47,"line":55},[45,2295,90],{"class":69},[45,2297,2298],{"class":73},"addRecipe",[45,2300,77],{"class":69},[45,2302,621],{"class":80},[45,2304,84],{"class":69},[45,2306,2307],{"class":47,"line":87},[45,2308,103],{"emptyLinePlaceholder":102},[45,2310,2311],{"class":47,"line":99},[45,2312,2313],{"class":51},"\u002F\u002F Get recipes\n",[45,2315,2316,2318,2320,2322,2324,2327],{"class":47,"line":106},[45,2317,59],{"class":58},[45,2319,642],{"class":62},[45,2321,66],{"class":58},[45,2323,1610],{"class":69},[45,2325,2326],{"class":73},"getRecipes",[45,2328,652],{"class":69},[45,2330,2331],{"class":47,"line":112},[45,2332,103],{"emptyLinePlaceholder":102},[45,2334,2335],{"class":47,"line":129},[45,2336,2337],{"class":51},"\u002F\u002F Craft\n",[45,2339,2340,2343,2346,2349],{"class":47,"line":141},[45,2341,2342],{"class":69},"inventory.selectedRecipeId ",[45,2344,2345],{"class":58},"=",[45,2347,2348],{"class":80}," \"iron_sword_recipe\"",[45,2350,2351],{"class":69},";\n",[45,2353,2354,2356,2359],{"class":47,"line":159},[45,2355,90],{"class":69},[45,2357,2358],{"class":73},"craft",[45,2360,652],{"class":69},[45,2362,2363],{"class":47,"line":171},[45,2364,103],{"emptyLinePlaceholder":102},[45,2366,2367],{"class":47,"line":189},[45,2368,2369],{"class":51},"\u002F\u002F Or craft specific recipe\n",[45,2371,2372,2374,2376,2378,2380],{"class":47,"line":334},[45,2373,90],{"class":69},[45,2375,2358],{"class":73},[45,2377,77],{"class":69},[45,2379,621],{"class":80},[45,2381,84],{"class":69},[45,2383,2384],{"class":47,"line":1646},[45,2385,103],{"emptyLinePlaceholder":102},[45,2387,2388],{"class":47,"line":1662},[45,2389,2390],{"class":51},"\u002F\u002F Apply interactive action or craft\n",[45,2392,2393,2395,2398],{"class":47,"line":1667},[45,2394,90],{"class":69},[45,2396,2397],{"class":73},"apply",[45,2399,652],{"class":69},[19,2401],{},[22,2403,2405],{"id":2404},"events","Events",[27,2407,2409],{"id":2408},"item-events","Item Events",[35,2411,2413],{"className":37,"code":2412,"language":39,"meta":40,"style":40},"\u002F\u002F Item created\ngame.on(\"item_create\", (item) => {\n  console.log(\"Created:\", item.getName());\n});\n\n\u002F\u002F Before equip (return false to cancel)\ngame.on(\"item_equip_before\", (item, character) => {\n  if (character.getStat(\"strength\") \u003C 10) {\n    return false; \u002F\u002F Too weak to equip\n  }\n});\n\n\u002F\u002F After equip\ngame.on(\"item_equip_after\", (item, character) => {\n  console.log(character.getName(), \"equipped\", item.getName());\n});\n\n\u002F\u002F Before unequip (return false to cancel)\ngame.on(\"item_unequip_before\", (item, character) => {\n  if (item.hasTag(\"cursed\")) {\n    return false; \u002F\u002F Can't remove cursed items\n  }\n});\n\n\u002F\u002F After unequip\ngame.on(\"item_unequip_after\", (item, character) => {\n  console.log(\"Unequipped:\", item.getName());\n});\n\n\u002F\u002F Before consume (return false to cancel)\ngame.on(\"item_consume_before\", (item, character) => {\n  if (character.getResource(\"health\") > character.getStat(\"health\") * 0.9) {\n    return false; \u002F\u002F Don't waste potion when nearly full\n  }\n});\n\n\u002F\u002F After consume\ngame.on(\"item_consume_after\", (item, character) => {\n  console.log(character.getName(), \"consumed\", item.getName());\n});\n",[42,2414,2415,2420,2448,2467,2471,2475,2480,2506,2532,2546,2551,2555,2559,2564,2589,2612,2616,2620,2625,2650,2665,2676,2680,2685,2690,2696,2722,2740,2745,2750,2756,2782,2820,2832,2837,2842,2847,2853,2879,2901],{"__ignoreMap":40},[45,2416,2417],{"class":47,"line":48},[45,2418,2419],{"class":51},"\u002F\u002F Item created\n",[45,2421,2422,2424,2427,2429,2432,2435,2439,2442,2445],{"class":47,"line":55},[45,2423,353],{"class":69},[45,2425,2426],{"class":73},"on",[45,2428,77],{"class":69},[45,2430,2431],{"class":80},"\"item_create\"",[45,2433,2434],{"class":69},", (",[45,2436,2438],{"class":2437},"s4XuR","item",[45,2440,2441],{"class":69},") ",[45,2443,2444],{"class":58},"=>",[45,2446,2447],{"class":69}," {\n",[45,2449,2450,2452,2454,2456,2459,2462,2464],{"class":47,"line":87},[45,2451,440],{"class":69},[45,2453,443],{"class":73},[45,2455,77],{"class":69},[45,2457,2458],{"class":80},"\"Created:\"",[45,2460,2461],{"class":69},", item.",[45,2463,1070],{"class":73},[45,2465,2466],{"class":69},"());\n",[45,2468,2469],{"class":47,"line":99},[45,2470,192],{"class":69},[45,2472,2473],{"class":47,"line":106},[45,2474,103],{"emptyLinePlaceholder":102},[45,2476,2477],{"class":47,"line":112},[45,2478,2479],{"class":51},"\u002F\u002F Before equip (return false to cancel)\n",[45,2481,2482,2484,2486,2488,2491,2493,2495,2497,2500,2502,2504],{"class":47,"line":129},[45,2483,353],{"class":69},[45,2485,2426],{"class":73},[45,2487,77],{"class":69},[45,2489,2490],{"class":80},"\"item_equip_before\"",[45,2492,2434],{"class":69},[45,2494,2438],{"class":2437},[45,2496,180],{"class":69},[45,2498,2499],{"class":2437},"character",[45,2501,2441],{"class":69},[45,2503,2444],{"class":58},[45,2505,2447],{"class":69},[45,2507,2508,2511,2514,2517,2519,2522,2524,2527,2530],{"class":47,"line":141},[45,2509,2510],{"class":58},"  if",[45,2512,2513],{"class":69}," (character.",[45,2515,2516],{"class":73},"getStat",[45,2518,77],{"class":69},[45,2520,2521],{"class":80},"\"strength\"",[45,2523,2441],{"class":69},[45,2525,2526],{"class":58},"\u003C",[45,2528,2529],{"class":62}," 10",[45,2531,1342],{"class":69},[45,2533,2534,2537,2540,2543],{"class":47,"line":159},[45,2535,2536],{"class":58},"    return",[45,2538,2539],{"class":62}," false",[45,2541,2542],{"class":69},"; ",[45,2544,2545],{"class":51},"\u002F\u002F Too weak to equip\n",[45,2547,2548],{"class":47,"line":171},[45,2549,2550],{"class":69},"  }\n",[45,2552,2553],{"class":47,"line":189},[45,2554,192],{"class":69},[45,2556,2557],{"class":47,"line":334},[45,2558,103],{"emptyLinePlaceholder":102},[45,2560,2561],{"class":47,"line":1646},[45,2562,2563],{"class":51},"\u002F\u002F After equip\n",[45,2565,2566,2568,2570,2572,2575,2577,2579,2581,2583,2585,2587],{"class":47,"line":1662},[45,2567,353],{"class":69},[45,2569,2426],{"class":73},[45,2571,77],{"class":69},[45,2573,2574],{"class":80},"\"item_equip_after\"",[45,2576,2434],{"class":69},[45,2578,2438],{"class":2437},[45,2580,180],{"class":69},[45,2582,2499],{"class":2437},[45,2584,2441],{"class":69},[45,2586,2444],{"class":58},[45,2588,2447],{"class":69},[45,2590,2591,2593,2595,2598,2600,2603,2606,2608,2610],{"class":47,"line":1667},[45,2592,440],{"class":69},[45,2594,443],{"class":73},[45,2596,2597],{"class":69},"(character.",[45,2599,1070],{"class":73},[45,2601,2602],{"class":69},"(), ",[45,2604,2605],{"class":80},"\"equipped\"",[45,2607,2461],{"class":69},[45,2609,1070],{"class":73},[45,2611,2466],{"class":69},[45,2613,2614],{"class":47,"line":1673},[45,2615,192],{"class":69},[45,2617,2618],{"class":47,"line":1683},[45,2619,103],{"emptyLinePlaceholder":102},[45,2621,2622],{"class":47,"line":1688},[45,2623,2624],{"class":51},"\u002F\u002F Before unequip (return false to cancel)\n",[45,2626,2627,2629,2631,2633,2636,2638,2640,2642,2644,2646,2648],{"class":47,"line":1694},[45,2628,353],{"class":69},[45,2630,2426],{"class":73},[45,2632,77],{"class":69},[45,2634,2635],{"class":80},"\"item_unequip_before\"",[45,2637,2434],{"class":69},[45,2639,2438],{"class":2437},[45,2641,180],{"class":69},[45,2643,2499],{"class":2437},[45,2645,2441],{"class":69},[45,2647,2444],{"class":58},[45,2649,2447],{"class":69},[45,2651,2652,2654,2656,2658,2660,2663],{"class":47,"line":1714},[45,2653,2510],{"class":58},[45,2655,1202],{"class":69},[45,2657,1205],{"class":73},[45,2659,77],{"class":69},[45,2661,2662],{"class":80},"\"cursed\"",[45,2664,669],{"class":69},[45,2666,2667,2669,2671,2673],{"class":47,"line":1736},[45,2668,2536],{"class":58},[45,2670,2539],{"class":62},[45,2672,2542],{"class":69},[45,2674,2675],{"class":51},"\u002F\u002F Can't remove cursed items\n",[45,2677,2678],{"class":47,"line":1758},[45,2679,2550],{"class":69},[45,2681,2683],{"class":47,"line":2682},23,[45,2684,192],{"class":69},[45,2686,2688],{"class":47,"line":2687},24,[45,2689,103],{"emptyLinePlaceholder":102},[45,2691,2693],{"class":47,"line":2692},25,[45,2694,2695],{"class":51},"\u002F\u002F After unequip\n",[45,2697,2699,2701,2703,2705,2708,2710,2712,2714,2716,2718,2720],{"class":47,"line":2698},26,[45,2700,353],{"class":69},[45,2702,2426],{"class":73},[45,2704,77],{"class":69},[45,2706,2707],{"class":80},"\"item_unequip_after\"",[45,2709,2434],{"class":69},[45,2711,2438],{"class":2437},[45,2713,180],{"class":69},[45,2715,2499],{"class":2437},[45,2717,2441],{"class":69},[45,2719,2444],{"class":58},[45,2721,2447],{"class":69},[45,2723,2725,2727,2729,2731,2734,2736,2738],{"class":47,"line":2724},27,[45,2726,440],{"class":69},[45,2728,443],{"class":73},[45,2730,77],{"class":69},[45,2732,2733],{"class":80},"\"Unequipped:\"",[45,2735,2461],{"class":69},[45,2737,1070],{"class":73},[45,2739,2466],{"class":69},[45,2741,2743],{"class":47,"line":2742},28,[45,2744,192],{"class":69},[45,2746,2748],{"class":47,"line":2747},29,[45,2749,103],{"emptyLinePlaceholder":102},[45,2751,2753],{"class":47,"line":2752},30,[45,2754,2755],{"class":51},"\u002F\u002F Before consume (return false to cancel)\n",[45,2757,2759,2761,2763,2765,2768,2770,2772,2774,2776,2778,2780],{"class":47,"line":2758},31,[45,2760,353],{"class":69},[45,2762,2426],{"class":73},[45,2764,77],{"class":69},[45,2766,2767],{"class":80},"\"item_consume_before\"",[45,2769,2434],{"class":69},[45,2771,2438],{"class":2437},[45,2773,180],{"class":69},[45,2775,2499],{"class":2437},[45,2777,2441],{"class":69},[45,2779,2444],{"class":58},[45,2781,2447],{"class":69},[45,2783,2785,2787,2789,2792,2794,2797,2799,2801,2804,2806,2808,2810,2812,2815,2818],{"class":47,"line":2784},32,[45,2786,2510],{"class":58},[45,2788,2513],{"class":69},[45,2790,2791],{"class":73},"getResource",[45,2793,77],{"class":69},[45,2795,2796],{"class":80},"\"health\"",[45,2798,2441],{"class":69},[45,2800,1336],{"class":58},[45,2802,2803],{"class":69}," character.",[45,2805,2516],{"class":73},[45,2807,77],{"class":69},[45,2809,2796],{"class":80},[45,2811,2441],{"class":69},[45,2813,2814],{"class":58},"*",[45,2816,2817],{"class":62}," 0.9",[45,2819,1342],{"class":69},[45,2821,2823,2825,2827,2829],{"class":47,"line":2822},33,[45,2824,2536],{"class":58},[45,2826,2539],{"class":62},[45,2828,2542],{"class":69},[45,2830,2831],{"class":51},"\u002F\u002F Don't waste potion when nearly full\n",[45,2833,2835],{"class":47,"line":2834},34,[45,2836,2550],{"class":69},[45,2838,2840],{"class":47,"line":2839},35,[45,2841,192],{"class":69},[45,2843,2845],{"class":47,"line":2844},36,[45,2846,103],{"emptyLinePlaceholder":102},[45,2848,2850],{"class":47,"line":2849},37,[45,2851,2852],{"class":51},"\u002F\u002F After consume\n",[45,2854,2856,2858,2860,2862,2865,2867,2869,2871,2873,2875,2877],{"class":47,"line":2855},38,[45,2857,353],{"class":69},[45,2859,2426],{"class":73},[45,2861,77],{"class":69},[45,2863,2864],{"class":80},"\"item_consume_after\"",[45,2866,2434],{"class":69},[45,2868,2438],{"class":2437},[45,2870,180],{"class":69},[45,2872,2499],{"class":2437},[45,2874,2441],{"class":69},[45,2876,2444],{"class":58},[45,2878,2447],{"class":69},[45,2880,2882,2884,2886,2888,2890,2892,2895,2897,2899],{"class":47,"line":2881},39,[45,2883,440],{"class":69},[45,2885,443],{"class":73},[45,2887,2597],{"class":69},[45,2889,1070],{"class":73},[45,2891,2602],{"class":69},[45,2893,2894],{"class":80},"\"consumed\"",[45,2896,2461],{"class":69},[45,2898,1070],{"class":73},[45,2900,2466],{"class":69},[45,2902,2904],{"class":47,"line":2903},40,[45,2905,192],{"class":69},[27,2907,2909],{"id":2908},"inventory-events","Inventory Events",[35,2911,2913],{"className":37,"code":2912,"language":39,"meta":40,"style":40},"\u002F\u002F Inventory opened\ngame.on(\"inventory_open\", (inventory) => {\n  console.log(\"Opened:\", inventory.name);\n});\n\n\u002F\u002F Inventory closed\ngame.on(\"inventory_close\", (inventory) => {\n  console.log(\"Closed:\", inventory.name);\n});\n\n\u002F\u002F Changes applied (craft button, etc.)\ngame.on(\"inventory_apply\", (inventory) => {\n  console.log(\"Applied:\", inventory.id);\n});\n\n\u002F\u002F Items transferred\ngame.on(\"inventory_transfer\", (source, target, item, quantity, isTrade) => {\n  console.log(`Transferred ${quantity}x ${item.getName()}`);\n});\n",[42,2914,2915,2920,2941,2955,2959,2963,2968,2989,3002,3006,3010,3015,3036,3050,3054,3058,3063,3103,3133],{"__ignoreMap":40},[45,2916,2917],{"class":47,"line":48},[45,2918,2919],{"class":51},"\u002F\u002F Inventory opened\n",[45,2921,2922,2924,2926,2928,2931,2933,2935,2937,2939],{"class":47,"line":55},[45,2923,353],{"class":69},[45,2925,2426],{"class":73},[45,2927,77],{"class":69},[45,2929,2930],{"class":80},"\"inventory_open\"",[45,2932,2434],{"class":69},[45,2934,451],{"class":2437},[45,2936,2441],{"class":69},[45,2938,2444],{"class":58},[45,2940,2447],{"class":69},[45,2942,2943,2945,2947,2949,2952],{"class":47,"line":87},[45,2944,440],{"class":69},[45,2946,443],{"class":73},[45,2948,77],{"class":69},[45,2950,2951],{"class":80},"\"Opened:\"",[45,2953,2954],{"class":69},", inventory.name);\n",[45,2956,2957],{"class":47,"line":99},[45,2958,192],{"class":69},[45,2960,2961],{"class":47,"line":106},[45,2962,103],{"emptyLinePlaceholder":102},[45,2964,2965],{"class":47,"line":112},[45,2966,2967],{"class":51},"\u002F\u002F Inventory closed\n",[45,2969,2970,2972,2974,2976,2979,2981,2983,2985,2987],{"class":47,"line":129},[45,2971,353],{"class":69},[45,2973,2426],{"class":73},[45,2975,77],{"class":69},[45,2977,2978],{"class":80},"\"inventory_close\"",[45,2980,2434],{"class":69},[45,2982,451],{"class":2437},[45,2984,2441],{"class":69},[45,2986,2444],{"class":58},[45,2988,2447],{"class":69},[45,2990,2991,2993,2995,2997,3000],{"class":47,"line":141},[45,2992,440],{"class":69},[45,2994,443],{"class":73},[45,2996,77],{"class":69},[45,2998,2999],{"class":80},"\"Closed:\"",[45,3001,2954],{"class":69},[45,3003,3004],{"class":47,"line":159},[45,3005,192],{"class":69},[45,3007,3008],{"class":47,"line":171},[45,3009,103],{"emptyLinePlaceholder":102},[45,3011,3012],{"class":47,"line":189},[45,3013,3014],{"class":51},"\u002F\u002F Changes applied (craft button, etc.)\n",[45,3016,3017,3019,3021,3023,3026,3028,3030,3032,3034],{"class":47,"line":334},[45,3018,353],{"class":69},[45,3020,2426],{"class":73},[45,3022,77],{"class":69},[45,3024,3025],{"class":80},"\"inventory_apply\"",[45,3027,2434],{"class":69},[45,3029,451],{"class":2437},[45,3031,2441],{"class":69},[45,3033,2444],{"class":58},[45,3035,2447],{"class":69},[45,3037,3038,3040,3042,3044,3047],{"class":47,"line":1646},[45,3039,440],{"class":69},[45,3041,443],{"class":73},[45,3043,77],{"class":69},[45,3045,3046],{"class":80},"\"Applied:\"",[45,3048,3049],{"class":69},", inventory.id);\n",[45,3051,3052],{"class":47,"line":1662},[45,3053,192],{"class":69},[45,3055,3056],{"class":47,"line":1667},[45,3057,103],{"emptyLinePlaceholder":102},[45,3059,3060],{"class":47,"line":1673},[45,3061,3062],{"class":51},"\u002F\u002F Items transferred\n",[45,3064,3065,3067,3069,3071,3074,3076,3079,3081,3084,3086,3088,3090,3092,3094,3097,3099,3101],{"class":47,"line":1683},[45,3066,353],{"class":69},[45,3068,2426],{"class":73},[45,3070,77],{"class":69},[45,3072,3073],{"class":80},"\"inventory_transfer\"",[45,3075,2434],{"class":69},[45,3077,3078],{"class":2437},"source",[45,3080,180],{"class":69},[45,3082,3083],{"class":2437},"target",[45,3085,180],{"class":69},[45,3087,2438],{"class":2437},[45,3089,180],{"class":69},[45,3091,998],{"class":2437},[45,3093,180],{"class":69},[45,3095,3096],{"class":2437},"isTrade",[45,3098,2441],{"class":69},[45,3100,2444],{"class":58},[45,3102,2447],{"class":69},[45,3104,3105,3107,3109,3111,3114,3116,3119,3121,3123,3125,3128,3131],{"class":47,"line":1688},[45,3106,440],{"class":69},[45,3108,443],{"class":73},[45,3110,77],{"class":69},[45,3112,3113],{"class":80},"`Transferred ${",[45,3115,998],{"class":69},[45,3117,3118],{"class":80},"}x ${",[45,3120,2438],{"class":69},[45,3122,454],{"class":80},[45,3124,1070],{"class":73},[45,3126,3127],{"class":80},"()",[45,3129,3130],{"class":80},"}`",[45,3132,84],{"class":69},[45,3134,3135],{"class":47,"line":1694},[45,3136,192],{"class":69},[27,3138,3140],{"id":3139},"trade-events","Trade Events",[35,3142,3144],{"className":37,"code":3143,"language":39,"meta":40,"style":40},"\u002F\u002F Trade initiated (modify prices here)\ngame.on(\"trade_init\", (traderInventory, item) => {\n  \u002F\u002F Apply discount\n  item.tradePrice.trader.gold *= 0.9;\n});\n\n\u002F\u002F Recipe learned\ngame.on(\"recipe_learned\", (recipeId) => {\n  console.log(\"Learned recipe:\", recipeId);\n});\n",[42,3145,3146,3151,3177,3182,3194,3198,3202,3207,3229,3243],{"__ignoreMap":40},[45,3147,3148],{"class":47,"line":48},[45,3149,3150],{"class":51},"\u002F\u002F Trade initiated (modify prices here)\n",[45,3152,3153,3155,3157,3159,3162,3164,3167,3169,3171,3173,3175],{"class":47,"line":55},[45,3154,353],{"class":69},[45,3156,2426],{"class":73},[45,3158,77],{"class":69},[45,3160,3161],{"class":80},"\"trade_init\"",[45,3163,2434],{"class":69},[45,3165,3166],{"class":2437},"traderInventory",[45,3168,180],{"class":69},[45,3170,2438],{"class":2437},[45,3172,2441],{"class":69},[45,3174,2444],{"class":58},[45,3176,2447],{"class":69},[45,3178,3179],{"class":47,"line":87},[45,3180,3181],{"class":51},"  \u002F\u002F Apply discount\n",[45,3183,3184,3187,3190,3192],{"class":47,"line":99},[45,3185,3186],{"class":69},"  item.tradePrice.trader.gold ",[45,3188,3189],{"class":58},"*=",[45,3191,2817],{"class":62},[45,3193,2351],{"class":69},[45,3195,3196],{"class":47,"line":106},[45,3197,192],{"class":69},[45,3199,3200],{"class":47,"line":112},[45,3201,103],{"emptyLinePlaceholder":102},[45,3203,3204],{"class":47,"line":129},[45,3205,3206],{"class":51},"\u002F\u002F Recipe learned\n",[45,3208,3209,3211,3213,3215,3218,3220,3223,3225,3227],{"class":47,"line":141},[45,3210,353],{"class":69},[45,3212,2426],{"class":73},[45,3214,77],{"class":69},[45,3216,3217],{"class":80},"\"recipe_learned\"",[45,3219,2434],{"class":69},[45,3221,3222],{"class":2437},"recipeId",[45,3224,2441],{"class":69},[45,3226,2444],{"class":58},[45,3228,2447],{"class":69},[45,3230,3231,3233,3235,3237,3240],{"class":47,"line":159},[45,3232,440],{"class":69},[45,3234,443],{"class":73},[45,3236,77],{"class":69},[45,3238,3239],{"class":80},"\"Learned recipe:\"",[45,3241,3242],{"class":69},", recipeId);\n",[45,3244,3245],{"class":47,"line":171},[45,3246,192],{"class":69},[3248,3249,3250],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":40,"searchDepth":55,"depth":55,"links":3252},[3253,3265,3266,3273,3274,3282],{"id":24,"depth":55,"text":25,"children":3254},[3255,3256,3257,3258,3259,3260,3261,3262,3263,3264],{"id":29,"depth":87,"text":30},{"id":195,"depth":87,"text":196},{"id":339,"depth":87,"text":340},{"id":362,"depth":87,"text":363},{"id":397,"depth":87,"text":398},{"id":475,"depth":87,"text":476},{"id":524,"depth":87,"text":525},{"id":566,"depth":87,"text":567},{"id":600,"depth":87,"text":601},{"id":626,"depth":87,"text":627},{"id":691,"depth":55,"text":692},{"id":1010,"depth":55,"text":1011,"children":3267},[3268,3269,3270,3271,3272],{"id":1014,"depth":87,"text":1015},{"id":1159,"depth":87,"text":1160},{"id":1224,"depth":87,"text":1225},{"id":1310,"depth":87,"text":1311},{"id":1362,"depth":87,"text":1363},{"id":1399,"depth":55,"text":1400},{"id":1531,"depth":55,"text":1532,"children":3275},[3276,3277,3278,3279,3280,3281],{"id":1535,"depth":87,"text":1536},{"id":1779,"depth":87,"text":1780},{"id":1899,"depth":87,"text":1900},{"id":2099,"depth":87,"text":2100},{"id":2135,"depth":87,"text":2136},{"id":2280,"depth":87,"text":2281},{"id":2404,"depth":55,"text":2405,"children":3283},[3284,3285,3286],{"id":2408,"depth":87,"text":2409},{"id":2908,"depth":87,"text":2909},{"id":3139,"depth":87,"text":3140},"md",{"plugin":3289,"category":457,"page":3290},"global_essentials","items_api","\u002Fdocs\u002Fglobal_essentials\u002Fitems\u002Fitems_api",{"title":5,"description":17},"docs\u002Fglobal_essentials\u002Fitems\u002Fitems_api","JhcU8bfKP8hSCl4GFDsVDaHj8bcvhawpqvaKxwFc6Vg",1779582261366]