diff --git a/.ysls.json b/.ysls.json index 0157d3d..c84e588 100644 --- a/.ysls.json +++ b/.ysls.json @@ -1,46 +1,47 @@ { "Commands": [ { - "YarnName": "AddGold", - "DefinitionName": "AddGold", + "YarnName": "add_gold", + "DefinitionName": "add_gold", "Documentation": "Adds X amount of gold to the player", - "Signature": "AddGold amount", + "Signature": "add_gold amount", "Language": "text", "Parameters": [ { "Name": "amount", "Type": "Number", - "Documentation": "Any number, including negative, but then you should probably just use RemoveGold", + "Documentation": "Any number, including negative, but then you should probably just use remove_gold", "IsParamsArray": false } ] }, { - "YarnName": "AddItem", - "DefinitionName": "AddItem", + "YarnName": "add_item", + "DefinitionName": "add_item", "Documentation": "Gives the player x number of a given item.", - "Signature": "AddItem itemName quantity", + "Signature": "add_item itemName quantity", "Language": "text", "Parameters": [ { "Name": "itemName", "Type": "String", - "Documentation": "ID of the item to give", + "Documentation": "Name of the item to give", "IsParamsArray": false }, { "Name": "quantity", "Type": "Number", "Documentation": "quantity", - "IsParamsArray": false + "IsParamsArray": false, + "DefaultValue": "1" } ] }, { - "YarnName": "FadeIn", - "DefinitionName": "FadeIn", - "Documentation": "FadeIn to normal (from black screen or tint)", - "Signature": "FadeIn numberOfFrames", + "YarnName": "fade_in", + "DefinitionName": "fade_in", + "Documentation": "fade_in to normal (from black screen or tint)", + "Signature": "fade_in numberOfFrames", "Language": "text", "Parameters": [ { @@ -53,10 +54,10 @@ ] }, { - "YarnName": "FadeOut", - "DefinitionName": "FadeOut", - "Documentation": "FadeOut to black screen (or tinted)", - "Signature": "FadeOut duration red green blue grey alpha", + "YarnName": "fade_out", + "DefinitionName": "fade_out", + "Documentation": "fade_out to black screen (or tinted)", + "Signature": "fade_out duration red green blue grey alpha", "Language": "text", "Parameters": [ { @@ -104,10 +105,10 @@ ] }, { - "YarnName": "FlashScreen", - "DefinitionName": "FlashScreen", - "Documentation": "FlashScreen (optionally tinted)", - "Signature": "FlashScreen duration red green blue intensity", + "YarnName": "flash_screen", + "DefinitionName": "flash_screen", + "Documentation": "flash_screen (optionally tinted)", + "Signature": "flash_screen duration red green blue intensity", "Language": "text", "Parameters": [ { @@ -148,10 +149,10 @@ ] }, { - "YarnName": "HideEntity", - "DefinitionName": "HideEntity", + "YarnName": "hide_entity", + "DefinitionName": "hide_entity", "Documentation": "Hides the entity (via passed in name). If no entity specified, hides the calling entity", - "Signature": "HideEntity entityName", + "Signature": "hide_entity entityName", "Language": "text", "Parameters": [ { @@ -164,10 +165,10 @@ ] }, { - "YarnName": "MoveEvent", - "DefinitionName": "MoveEvent", + "YarnName": "move_event", + "DefinitionName": "move_event", "Documentation": "Moves an Event", - "Signature": "MoveEvent direction distance speed eventName", + "Signature": "move_event direction distance speed eventName", "Language": "text", "Parameters": [ @@ -200,10 +201,10 @@ ] }, { - "YarnName": "PlayMusic", - "DefinitionName": "PlayMusic", + "YarnName": "play_music", + "DefinitionName": "play_music", "Documentation": "Play Music (use default unless specified)", - "Signature": "PlayMusic musicName", + "Signature": "play_music musicName", "Language": "text", "Parameters": [ { @@ -215,10 +216,10 @@ ] }, { - "YarnName": "PlaySound", - "DefinitionName": "PlaySound", + "YarnName": "play_sound", + "DefinitionName": "play_sound", "Documentation": "Plays a sound effect at X volume (0-100).", - "Signature": "SetBackground name volume", + "Signature": "play_sound name volume", "Language": "text", "Parameters": [ { @@ -236,10 +237,10 @@ ] }, { - "YarnName": "RemoveGold", - "DefinitionName": "RemoveGold", + "YarnName": "remove_gold", + "DefinitionName": "remove_gold", "Documentation": "Removes X amount of gold from the player", - "Signature": "RemoveGold amount", + "Signature": "remove_gold amount", "Language": "text", "Parameters": [ { @@ -251,10 +252,10 @@ ] }, { - "YarnName": "RemoveItem", - "DefinitionName": "RemoveItem", + "YarnName": "remove_item", + "DefinitionName": "remove_item", "Documentation": "Removes x number of a given item from player.", - "Signature": "RemoveItem itemName quantity", + "Signature": "remove_item itemName quantity", "Language": "text", "Parameters": [ { @@ -272,10 +273,10 @@ ] }, { - "YarnName": "SetBackground", - "DefinitionName": "SetBackground", + "YarnName": "set_background", + "DefinitionName": "set_background", "Documentation": "Set the message box background transparency level.", - "Signature": "SetBackground bgType", + "Signature": "set_background bgType", "Language": "text", "Parameters": [ { @@ -287,10 +288,10 @@ ] }, { - "YarnName": "SetFacing", - "DefinitionName": "SetFacing", + "YarnName": "set_facing", + "DefinitionName": "set_facing", "Documentation": "Changes the direction the provided entity name is facing, or if just a direction is passed, assumes you meant the calling entity.", - "Signature": "SetFacing direction entityName", + "Signature": "set_facing direction entityName", "Language": "text", "Parameters": [ { @@ -310,10 +311,10 @@ ] }, { - "YarnName": "ShowEntity", - "DefinitionName": "ShowEntity", + "YarnName": "show_entity", + "DefinitionName": "show_entity", "Documentation": "Shows the entity (via passed in name). If no entity specified, shows the calling entity", - "Signature": "ShowEntity entityName", + "Signature": "show_entity entityName", "Language": "text", "Parameters": [ { @@ -326,10 +327,10 @@ ] }, { - "YarnName": "StopMusic", - "DefinitionName": "StopMusic", + "YarnName": "stop_music", + "DefinitionName": "stop_music", "Documentation": "Stop music with optional fadeout", - "Signature": "FadeToBlackAndBack interval", + "Signature": "stop_music interval", "Language": "text", "Parameters": [ { @@ -341,8 +342,8 @@ ] }, { - "YarnName": "Wait", - "DefinitionName": "Wait", + "YarnName": "wait", + "DefinitionName": "wait", "Documentation": "Wait the given number of ms", "Signature": "Wait time", "Language": "text", @@ -357,6 +358,21 @@ } ], "Functions": [ + { + "YarnName": "has_item", + "DefinitionName": "has_item", + "Documentation": "If player has the named item", + "Signature": "has_item(itemName)", + "Language": "text", + "Parameters": [ + { + "Name": "itemName", + "Type": "String", + "Documentation": "Name of the Item (NOT the Item ID!)", + "IsParamsArray": false + } + ] + }, { "YarnName": "string", "DefinitionName": "string", diff --git a/data/Map001.json b/data/Map001.json index c4ec349..a16ddef 100755 --- a/data/Map001.json +++ b/data/Map001.json @@ -10,6 +10,6 @@ null, {"id":5,"name":"Monster3","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"tileId":0,"characterName":"Monster","direction":2,"pattern":1,"characterIndex":1},"list":[{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":1,"stepAnime":false,"through":false,"trigger":0,"walkAnime":true}],"x":10,"y":1}, {"id":6,"name":"EV006","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"tileId":0,"characterName":"Evil","direction":2,"pattern":0,"characterIndex":0},"list":[{"code":357,"indent":0,"parameters":["pixelmapYarnSpinner","yarn","Yarn Dialog",{"Yarn File Path":"dialog/addStuff.yarn","Start At":"AddStuff"}]},{"code":657,"indent":0,"parameters":["Yarn File Path = dialog/addStuff.yarn"]},{"code":657,"indent":0,"parameters":["Start At = AddStuff"]},{"code":108,"indent":0,"parameters":[""]},{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":1,"stepAnime":false,"through":false,"trigger":0,"walkAnime":true}],"x":2,"y":9}, {"id":7,"name":"EV007","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"tileId":0,"characterName":"SF_Actor1","direction":2,"pattern":2,"characterIndex":0},"list":[{"code":108,"indent":0,"parameters":[""]},{"code":357,"indent":0,"parameters":["pixelmapYarnSpinner","yarn","Yarn Dialog",{"Yarn File Path":"dialog/spriteCommands.yarn","Start At":"SpriteCommands"}]},{"code":657,"indent":0,"parameters":["Yarn File Path = dialog/spriteCommands.yarn"]},{"code":657,"indent":0,"parameters":["Start At = SpriteCommands"]},{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":1,"stepAnime":false,"through":false,"trigger":0,"walkAnime":true}],"x":13,"y":6}, -null +{"id":8,"name":"EV008","note":"","pages":[{"conditions":{"actorId":1,"actorValid":false,"itemId":1,"itemValid":false,"selfSwitchCh":"A","selfSwitchValid":false,"switch1Id":1,"switch1Valid":false,"switch2Id":1,"switch2Valid":false,"variableId":1,"variableValid":false,"variableValue":0},"directionFix":false,"image":{"tileId":0,"characterName":"SF_Monster","direction":2,"pattern":0,"characterIndex":4},"list":[{"code":108,"indent":0,"parameters":[""]},{"code":357,"indent":0,"parameters":["pixelmapYarnSpinner","yarn","Yarn Dialog",{"Yarn File Path":"dialog/functionTester.yarn","Start At":"Hello"}]},{"code":657,"indent":0,"parameters":["Yarn File Path = dialog/functionTester.yarn"]},{"code":657,"indent":0,"parameters":["Start At = Hello"]},{"code":0,"indent":0,"parameters":[]}],"moveFrequency":3,"moveRoute":{"list":[{"code":0,"parameters":[]}],"repeat":true,"skippable":false,"wait":false},"moveSpeed":3,"moveType":0,"priorityType":1,"stepAnime":false,"through":false,"trigger":0,"walkAnime":true}],"x":11,"y":9} ] } \ No newline at end of file diff --git a/data/System.json b/data/System.json index 174baca..78929e2 100755 --- a/data/System.json +++ b/data/System.json @@ -1 +1 @@ -{"advanced":{"gameId":87369827,"screenWidth":816,"screenHeight":624,"uiAreaWidth":816,"uiAreaHeight":624,"numberFontFilename":"mplus-2p-bold-sub.woff","fallbackFonts":"Verdana, sans-serif","fontSize":26,"mainFontFilename":"mplus-1m-regular.woff","windowOpacity":192,"screenScale":1},"airship":{"bgm":{"name":"Ship3","pan":0,"pitch":100,"volume":90},"characterIndex":3,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"armorTypes":["","General Armor","Magic Armor","Light Armor","Heavy Armor","Small Shield","Large Shield"],"attackMotions":[{"type":0,"weaponImageId":0},{"type":1,"weaponImageId":1},{"type":1,"weaponImageId":2},{"type":1,"weaponImageId":3},{"type":1,"weaponImageId":4},{"type":1,"weaponImageId":5},{"type":1,"weaponImageId":6},{"type":2,"weaponImageId":7},{"type":2,"weaponImageId":8},{"type":2,"weaponImageId":9},{"type":0,"weaponImageId":10},{"type":0,"weaponImageId":11},{"type":0,"weaponImageId":12}],"battleBgm":{"name":"Battle1","pan":0,"pitch":100,"volume":90},"battleback1Name":"GrassMaze","battleback2Name":"GrassMaze","battlerHue":0,"battlerName":"Hi_monster","battleSystem":0,"boat":{"bgm":{"name":"Ship1","pan":0,"pitch":100,"volume":90},"characterIndex":0,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"currencyUnit":"G","defeatMe":{"name":"Defeat1","pan":0,"pitch":100,"volume":90},"editMapId":1,"elements":["","Physical","Fire","Ice","Thunder","Water","Earth","Wind","Light","Darkness"],"equipTypes":["","Weapon","Shield","Head","Body","Accessory"],"gameTitle":"plugin-yarn-spinner","gameoverMe":{"name":"Gameover1","pan":0,"pitch":100,"volume":90},"itemCategories":[true,true,true,true],"locale":"en_US","magicSkills":[1],"menuCommands":[true,true,true,true,true,true],"optAutosave":true,"optDisplayTp":true,"optDrawTitle":true,"optExtraExp":false,"optFloorDeath":false,"optFollowers":true,"optKeyItemsNumber":false,"optSideView":false,"optSlipDeath":false,"optTransparent":false,"partyMembers":[1],"ship":{"bgm":{"name":"Ship2","pan":0,"pitch":100,"volume":90},"characterIndex":1,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"skillTypes":["","Magic","Special"],"sounds":[{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"Buzzer1","pan":0,"pitch":100,"volume":90},{"name":"Equip1","pan":0,"pitch":100,"volume":90},{"name":"Save2","pan":0,"pitch":100,"volume":90},{"name":"Load2","pan":0,"pitch":100,"volume":90},{"name":"Battle1","pan":0,"pitch":100,"volume":90},{"name":"Run","pan":0,"pitch":100,"volume":90},{"name":"Attack3","pan":0,"pitch":100,"volume":90},{"name":"Damage4","pan":0,"pitch":100,"volume":90},{"name":"Collapse1","pan":0,"pitch":100,"volume":90},{"name":"Collapse2","pan":0,"pitch":100,"volume":90},{"name":"Collapse3","pan":0,"pitch":100,"volume":90},{"name":"Damage5","pan":0,"pitch":100,"volume":90},{"name":"Collapse4","pan":0,"pitch":100,"volume":90},{"name":"Recovery","pan":0,"pitch":100,"volume":90},{"name":"Miss","pan":0,"pitch":100,"volume":90},{"name":"Evasion1","pan":0,"pitch":100,"volume":90},{"name":"Evasion2","pan":0,"pitch":100,"volume":90},{"name":"Reflection","pan":0,"pitch":100,"volume":90},{"name":"Shop1","pan":0,"pitch":100,"volume":90},{"name":"Item3","pan":0,"pitch":100,"volume":90},{"name":"Item3","pan":0,"pitch":100,"volume":90}],"startMapId":1,"startX":8,"startY":6,"switches":["","","","","","","","","","","","","","","","","","","","",""],"terms":{"basic":["Level","Lv","HP","HP","MP","MP","TP","TP","EXP","EXP"],"commands":["Fight","Escape","Attack","Guard","Item","Skill","Equip","Status","Formation","Save","Game End","Options","Weapon","Armor","Key Item","Equip","Optimize","Clear","New Game","Continue",null,"To Title","Cancel",null,"Buy","Sell"],"params":["Max HP","Max MP","Attack","Defense","M.Attack","M.Defense","Agility","Luck","Hit","Evasion"],"messages":{"alwaysDash":"Always Dash","commandRemember":"Command Remember","touchUI":"Touch UI","bgmVolume":"BGM Volume","bgsVolume":"BGS Volume","meVolume":"ME Volume","seVolume":"SE Volume","possession":"Possession","expTotal":"Current %1","expNext":"To Next %1","saveMessage":"Which file would you like to save to?","loadMessage":"Which file would you like to load?","file":"File","autosave":"Autosave","partyName":"%1’s Party","emerge":"%1 emerged!","preemptive":"%1 got the upper hand!","surprise":"%1 was surprised!","escapeStart":"%1 has started to escape!","escapeFailure":"However, it was unable to escape!","victory":"%1 was victorious!","defeat":"%1 was defeated.","obtainExp":"%1 %2 received!","obtainGold":"%1\\G found!","obtainItem":"%1 found!","levelUp":"%1 is now %2 %3!","obtainSkill":"%1 learned!","useItem":"%1 uses %2!","criticalToEnemy":"An excellent hit!!","criticalToActor":"A painful blow!!","actorDamage":"%1 took %2 damage!","actorRecovery":"%1 recovered %2 %3!","actorGain":"%1 gained %2 %3!","actorLoss":"%1 lost %2 %3!","actorDrain":"%1 was drained of %2 %3!","actorNoDamage":"%1 took no damage!","actorNoHit":"Miss! %1 took no damage!","enemyDamage":"%1 took %2 damage!","enemyRecovery":"%1 recovered %2 %3!","enemyGain":"%1 gained %2 %3!","enemyLoss":"%1 lost %2 %3!","enemyDrain":"%1 was drained of %2 %3!","enemyNoDamage":"%1 took no damage!","enemyNoHit":"Miss! %1 took no damage!","evasion":"%1 evaded the attack!","magicEvasion":"%1 nullified the magic!","magicReflection":"%1 reflected the magic!","counterAttack":"%1 made a counterattack!","substitute":"%1 protected %2!","buffAdd":"%1’s %2 went up!","debuffAdd":"%1’s %2 went down!","buffRemove":"%1’s %2 returned to normal!","actionFailure":"There was no effect on %1!"}},"testBattlers":[{"actorId":1,"level":1,"equips":[2,1,2,3,0]},{"actorId":4,"level":1,"equips":[31,0,0,5,0]},{"actorId":6,"level":1,"equips":[7,0,65,21,0]},{"actorId":7,"level":1,"equips":[7,0,0,20,0]}],"testTroopId":1,"title1Name":"Ruins","title2Name":"","titleBgm":{"name":"","pan":0,"pitch":100,"volume":90},"titleCommandWindow":{"background":0,"offsetX":0,"offsetY":0},"variables":["","","","","","","","","","","","","","","","","","","","",""],"versionId":79676480,"victoryMe":{"name":"Victory1","pan":0,"pitch":100,"volume":90},"weaponTypes":["","Dagger","Sword","Flail","Axe","Whip","Staff","Bow","Crossbow","Gun","Claw","Glove","Spear"],"windowTone":[0,0,0,0],"tileSize":48} \ No newline at end of file +{"advanced":{"gameId":87369827,"screenWidth":816,"screenHeight":624,"uiAreaWidth":816,"uiAreaHeight":624,"numberFontFilename":"mplus-2p-bold-sub.woff","fallbackFonts":"Verdana, sans-serif","fontSize":26,"mainFontFilename":"mplus-1m-regular.woff","windowOpacity":192,"screenScale":1},"airship":{"bgm":{"name":"Ship3","pan":0,"pitch":100,"volume":90},"characterIndex":3,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"armorTypes":["","General Armor","Magic Armor","Light Armor","Heavy Armor","Small Shield","Large Shield"],"attackMotions":[{"type":0,"weaponImageId":0},{"type":1,"weaponImageId":1},{"type":1,"weaponImageId":2},{"type":1,"weaponImageId":3},{"type":1,"weaponImageId":4},{"type":1,"weaponImageId":5},{"type":1,"weaponImageId":6},{"type":2,"weaponImageId":7},{"type":2,"weaponImageId":8},{"type":2,"weaponImageId":9},{"type":0,"weaponImageId":10},{"type":0,"weaponImageId":11},{"type":0,"weaponImageId":12}],"battleBgm":{"name":"Battle1","pan":0,"pitch":100,"volume":90},"battleback1Name":"GrassMaze","battleback2Name":"GrassMaze","battlerHue":0,"battlerName":"Hi_monster","battleSystem":0,"boat":{"bgm":{"name":"Ship1","pan":0,"pitch":100,"volume":90},"characterIndex":0,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"currencyUnit":"G","defeatMe":{"name":"Defeat1","pan":0,"pitch":100,"volume":90},"editMapId":1,"elements":["","Physical","Fire","Ice","Thunder","Water","Earth","Wind","Light","Darkness"],"equipTypes":["","Weapon","Shield","Head","Body","Accessory"],"gameTitle":"plugin-yarn-spinner","gameoverMe":{"name":"Gameover1","pan":0,"pitch":100,"volume":90},"itemCategories":[true,true,true,true],"locale":"en_US","magicSkills":[1],"menuCommands":[true,true,true,true,true,true],"optAutosave":true,"optDisplayTp":true,"optDrawTitle":true,"optExtraExp":false,"optFloorDeath":false,"optFollowers":true,"optKeyItemsNumber":false,"optSideView":false,"optSlipDeath":false,"optTransparent":false,"partyMembers":[1],"ship":{"bgm":{"name":"Ship2","pan":0,"pitch":100,"volume":90},"characterIndex":1,"characterName":"Vehicle","startMapId":0,"startX":0,"startY":0},"skillTypes":["","Magic","Special"],"sounds":[{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"","pan":0,"pitch":100,"volume":90},{"name":"Buzzer1","pan":0,"pitch":100,"volume":90},{"name":"Equip1","pan":0,"pitch":100,"volume":90},{"name":"Save2","pan":0,"pitch":100,"volume":90},{"name":"Load2","pan":0,"pitch":100,"volume":90},{"name":"Battle1","pan":0,"pitch":100,"volume":90},{"name":"Run","pan":0,"pitch":100,"volume":90},{"name":"Attack3","pan":0,"pitch":100,"volume":90},{"name":"Damage4","pan":0,"pitch":100,"volume":90},{"name":"Collapse1","pan":0,"pitch":100,"volume":90},{"name":"Collapse2","pan":0,"pitch":100,"volume":90},{"name":"Collapse3","pan":0,"pitch":100,"volume":90},{"name":"Damage5","pan":0,"pitch":100,"volume":90},{"name":"Collapse4","pan":0,"pitch":100,"volume":90},{"name":"Recovery","pan":0,"pitch":100,"volume":90},{"name":"Miss","pan":0,"pitch":100,"volume":90},{"name":"Evasion1","pan":0,"pitch":100,"volume":90},{"name":"Evasion2","pan":0,"pitch":100,"volume":90},{"name":"Reflection","pan":0,"pitch":100,"volume":90},{"name":"Shop1","pan":0,"pitch":100,"volume":90},{"name":"Item3","pan":0,"pitch":100,"volume":90},{"name":"Item3","pan":0,"pitch":100,"volume":90}],"startMapId":1,"startX":8,"startY":6,"switches":["","","","","","","","","","","","","","","","","","","","",""],"terms":{"basic":["Level","Lv","HP","HP","MP","MP","TP","TP","EXP","EXP"],"commands":["Fight","Escape","Attack","Guard","Item","Skill","Equip","Status","Formation","Save","Game End","Options","Weapon","Armor","Key Item","Equip","Optimize","Clear","New Game","Continue",null,"To Title","Cancel",null,"Buy","Sell"],"params":["Max HP","Max MP","Attack","Defense","M.Attack","M.Defense","Agility","Luck","Hit","Evasion"],"messages":{"alwaysDash":"Always Dash","commandRemember":"Command Remember","touchUI":"Touch UI","bgmVolume":"BGM Volume","bgsVolume":"BGS Volume","meVolume":"ME Volume","seVolume":"SE Volume","possession":"Possession","expTotal":"Current %1","expNext":"To Next %1","saveMessage":"Which file would you like to save to?","loadMessage":"Which file would you like to load?","file":"File","autosave":"Autosave","partyName":"%1’s Party","emerge":"%1 emerged!","preemptive":"%1 got the upper hand!","surprise":"%1 was surprised!","escapeStart":"%1 has started to escape!","escapeFailure":"However, it was unable to escape!","victory":"%1 was victorious!","defeat":"%1 was defeated.","obtainExp":"%1 %2 received!","obtainGold":"%1\\G found!","obtainItem":"%1 found!","levelUp":"%1 is now %2 %3!","obtainSkill":"%1 learned!","useItem":"%1 uses %2!","criticalToEnemy":"An excellent hit!!","criticalToActor":"A painful blow!!","actorDamage":"%1 took %2 damage!","actorRecovery":"%1 recovered %2 %3!","actorGain":"%1 gained %2 %3!","actorLoss":"%1 lost %2 %3!","actorDrain":"%1 was drained of %2 %3!","actorNoDamage":"%1 took no damage!","actorNoHit":"Miss! %1 took no damage!","enemyDamage":"%1 took %2 damage!","enemyRecovery":"%1 recovered %2 %3!","enemyGain":"%1 gained %2 %3!","enemyLoss":"%1 lost %2 %3!","enemyDrain":"%1 was drained of %2 %3!","enemyNoDamage":"%1 took no damage!","enemyNoHit":"Miss! %1 took no damage!","evasion":"%1 evaded the attack!","magicEvasion":"%1 nullified the magic!","magicReflection":"%1 reflected the magic!","counterAttack":"%1 made a counterattack!","substitute":"%1 protected %2!","buffAdd":"%1’s %2 went up!","debuffAdd":"%1’s %2 went down!","buffRemove":"%1’s %2 returned to normal!","actionFailure":"There was no effect on %1!"}},"testBattlers":[{"actorId":1,"level":1,"equips":[2,1,2,3,0]},{"actorId":4,"level":1,"equips":[31,0,0,5,0]},{"actorId":6,"level":1,"equips":[7,0,65,21,0]},{"actorId":7,"level":1,"equips":[7,0,0,20,0]}],"testTroopId":1,"title1Name":"Ruins","title2Name":"","titleBgm":{"name":"","pan":0,"pitch":100,"volume":90},"titleCommandWindow":{"background":0,"offsetX":0,"offsetY":0},"variables":["","","","","","","","","","","","","","","","","","","","",""],"versionId":63197113,"victoryMe":{"name":"Victory1","pan":0,"pitch":100,"volume":90},"weaponTypes":["","Dagger","Sword","Flail","Axe","Whip","Staff","Bow","Crossbow","Gun","Claw","Glove","Spear"],"windowTone":[0,0,0,0],"tileSize":48} \ No newline at end of file diff --git a/dialog/addStuff.yarn b/dialog/addStuff.yarn index 9fc6519..e678159 100644 --- a/dialog/addStuff.yarn +++ b/dialog/addStuff.yarn @@ -1,8 +1,12 @@ title: AddStuff --- Enjoy more 30 gold! -<> +<> Minus 15 gold! -<> +<> Equals 15 gold! + +Enjoy 1 full potion and 2 magic waters! +<> +<> === diff --git a/dialog/fisherman.yarn b/dialog/fisherman.yarn index 789023a..4dbd9d2 100644 --- a/dialog/fisherman.yarn +++ b/dialog/fisherman.yarn @@ -1,36 +1,36 @@ title: Greeting --- -<> -<> -<> -<> -<> -<> -<> -<> -<> -<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> Lets fade out -<> -<> -<> +<> +<> +<> Lets fade to ... mostly transparent blue? -<> -<> -<> +<> +<> +<> Did it work? -<> -<> -<> +<> +<> +<> Let's get some sepia -<> -<> +<> +<> Scuba -<> -<> +<> +<> Francis -<> -<> +<> +<> Card -<> +<> === diff --git a/dialog/functionTester.yarn b/dialog/functionTester.yarn new file mode 100644 index 0000000..0b01536 --- /dev/null +++ b/dialog/functionTester.yarn @@ -0,0 +1,9 @@ +title: Hello +--- +<> +Good day sir, nice potion you have. +<> +Bet you wish you had a potion +<> +Right? +=== \ No newline at end of file diff --git a/dialog/movement.yarn b/dialog/movement.yarn index 42ea585..06f6723 100644 --- a/dialog/movement.yarn +++ b/dialog/movement.yarn @@ -1,28 +1,24 @@ title: MoveTest --- -<> -<> +<> +<> -<> -<> -<> +<> +<> +<> -<> -<> -<> +<> +<> +<> -<> -<> -<> +<> +<> +<> -<> +<> -<> -<> -<> - -// <> -// <> -// <> +<> +<> +<> === \ No newline at end of file diff --git a/dialog/spriteCommands.yarn b/dialog/spriteCommands.yarn index 5ffb837..71192fb 100644 --- a/dialog/spriteCommands.yarn +++ b/dialog/spriteCommands.yarn @@ -1,38 +1,38 @@ title: SpriteCommands --- -<> -<> -<> -<> -<> -<> -<> +<> +<> +<> +<> +<> +<> +<> -<> -<> -<> -<> -<> -<> -<> +<> +<> +<> +<> +<> +<> +<> -<> -<> -<> -<> -<> -<> -<> -<> -<> -<> -<> -<> -<> -<> -<> -<> -<> -<> -<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> +<> === diff --git a/js/plugins/pixelmapYarnSpinner.js b/js/plugins/pixelmapYarnSpinner.js index 2de34cc..c692e7f 100644 --- a/js/plugins/pixelmapYarnSpinner.js +++ b/js/plugins/pixelmapYarnSpinner.js @@ -3094,7 +3094,7 @@ let { dialogue, variableStorage, - functions, + functions: functions2, handleCommand, combineTextAndOptionsResults, locale, @@ -3114,8 +3114,8 @@ variableStorage.display = variableStorage.display || variableStorage.get; this.runner.setVariableStorage(variableStorage); } - if (functions) { - Object.entries(functions).forEach((entry) => { + if (functions2) { + Object.entries(functions2).forEach((entry) => { this.registerFunction(...entry); }); } @@ -3224,10 +3224,11 @@ // src/commands/addItem.ts function addItem(args) { - if (args.length != 2) { + if (args.length < 1 || args.length > 2) { throw new Error("Invalid number of arguments"); } - $gameParty.gainItem($dataItems[getItemIdFromName(args[0])], parseInt(args[1]), false); + const [itemName, quantity = "1"] = args; + $gameParty.gainItem($dataItems[getItemIdFromName(itemName)], parseInt(quantity), false); } // src/commands/fadeIn.ts @@ -3253,6 +3254,15 @@ } } + // src/commands/flashScreen.ts + function flashScreen(args) { + if (args.length > 6) { + throw new Error("Invalid number of arguments"); + } + const [duration = 8, red = 0, green = 0, blue = 0, intensity = 255] = args; + $gameScreen.startFlash([red, green, blue, intensity], duration); + } + // src/commands/hideEntity.ts function hideEntity(args, _callingEventId) { var _a; @@ -3398,32 +3408,23 @@ await new Promise((r) => setTimeout(r, parseInt(args[0]))); } - // src/commands/flashScreen.ts - function flashScreen(args) { - if (args.length > 6) { - throw new Error("Invalid number of arguments"); - } - const [duration = 8, red = 0, green = 0, blue = 0, intensity = 255] = args; - $gameScreen.startFlash([red, green, blue, intensity], duration); - } - // src/commands/index.ts var commands = { - AddItem: addItem, - AddGold: addGold, - FadeOut: fadeOut, - FadeIn: fadeIn, - FlashScreen: flashScreen, - HideEntity: hideEntity, - MoveEvent: moveEvent, - PlayMusic: playMusic, - PlaySound: playSound, - RemoveItem: removeItem, - RemoveGold: removeGold, - SetFacing: setFacing, - ShowEntity: showEntity, - Wait: wait, - SetBackground: setBackground + add_item: addItem, + add_gold: addGold, + fade_out: fadeOut, + fade_in: fadeIn, + flash_screen: flashScreen, + hide_entity: hideEntity, + move_event: moveEvent, + play_music: playMusic, + play_sound: playSound, + remove_item: removeItem, + remove_gold: removeGold, + set_facing: setFacing, + show_entity: showEntity, + wait, + set_background: setBackground }; function getCommand(command, args, callingEventId) { if (commands[command]) { @@ -3442,6 +3443,22 @@ return false; } + // src/functions/hasItem.ts + function hasItem(itemName) { + return playerHasItemByName(itemName); + } + + // src/functions/randomRange.ts + function randomRange(min, max) { + return Math.floor(Math.random() * (max - min + 1) + min); + } + + // src/functions/index.ts + var functions = { + has_item: hasItem, + random_range: randomRange + }; + // src/split-spaces-exclude-quotes.ts function splitSpacesExcludeQuotes(input) { const matches = input.match(/\\?.|^$/g); @@ -3528,14 +3545,7 @@ const runner = new import_yarn_bound.default({ dialogue, startAt, - functions: { - random_range: (min, max) => { - return Math.floor(Math.random() * (max - min + 1) + min); - }, - playerHasItem: (value) => { - return playerHasItemByName(value); - } - }, + functions, variableStorage }); await processYarnDialog(runner, callingEventId); diff --git a/js/plugins/pixelmapYarnSpinner.js.map b/js/plugins/pixelmapYarnSpinner.js.map index e405d3a..7fbd01d 100644 --- a/js/plugins/pixelmapYarnSpinner.js.map +++ b/js/plugins/pixelmapYarnSpinner.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["../../node_modules/yarn-bound/dist/yarn-bound.js", "../../src/index.ts", "../../src/commands/addGold.ts", "../../src/commands/utils.ts", "../../src/commands/addItem.ts", "../../src/commands/fadeIn.ts", "../../src/commands/fadeOut.ts", "../../src/commands/hideEntity.ts", "../../src/commands/enums.ts", "../../src/commands/moveEvent.ts", "../../src/commands/playMusic.ts", "../../src/commands/playSound.ts", "../../src/commands/removeGold.ts", "../../src/commands/removeItem.ts", "../../src/commands/setBackground.ts", "../../src/commands/setFacing.ts", "../../src/commands/showEntity.ts", "../../src/commands/wait.ts", "../../src/commands/flashScreen.ts", "../../src/commands/index.ts", "../../src/playerHasItemByName.ts", "../../src/split-spaces-exclude-quotes.ts", "../../src/wrap.ts"], - "sourcesContent": ["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"YarnBound\"] = factory();\n\telse\n\t\troot[\"YarnBound\"] = factory();\n})(this, function() {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 144:\n/***/ ((module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = convertYarnToJS;\n\n/* eslint-disable */\n\n/*\nYoinked from YarnEditor source and modified to limit size and scope:\n\nhttps://github.com/YarnSpinnerTool/YarnEditor/blob/master/src/js/classes/data.js\n\nIncluding as a dependency would be large and subject to breakage, so we adapt it instead.\n\nI guess this counts as a \"substantial portion\" (?), so:\n\n--------------\n\n\nCopyright (c) 2015 Infinite Ammo Inc. and Yarn Contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n/* eslint-enable */\nfunction convertYarnToJS(content) {\n const objects = [];\n const lines = content.split(/\\r?\\n+/).filter(line => {\n return !line.match(/^\\s*$/);\n });\n let obj = null;\n let readingBody = false;\n let filetags; // per-node, we will uniformly strip leading space\n // which can result from constructing dialogues\n // using template strings.\n\n let leadingSpace = '';\n let i = 0;\n\n while (lines[i].trim()[0] === '#') {\n if (!filetags) filetags = [];\n filetags.push(lines[i].trim().substr(1));\n i += 1;\n }\n\n for (; i < lines.length; i += 1) {\n if (lines[i].trim() === '===') {\n readingBody = false;\n if (filetags) obj.filetags = filetags;\n objects.push(obj);\n obj = null;\n } else if (readingBody) {\n obj.body += \"\".concat(lines[i].replace(leadingSpace, ''), \"\\n\");\n } else if (lines[i].trim() === '---') {\n readingBody = true;\n obj.body = '';\n leadingSpace = lines[i].match(/^\\s*/)[0];\n } else if (lines[i].indexOf(':') > -1) {\n const [key, value] = lines[i].split(':');\n const trimmedKey = key.trim();\n const trimmedValue = value.trim();\n\n if (trimmedKey !== 'body') {\n if (obj == null) obj = {};\n\n if (obj[trimmedKey]) {\n throw new Error(\"Duplicate tag on node: \".concat(trimmedKey));\n }\n\n obj[trimmedKey] = trimmedValue;\n }\n }\n }\n\n return objects;\n}\n\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 131:\n/***/ ((module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nclass DefaultVariableStorage {\n constructor() {\n this.data = {};\n }\n\n set(name, value) {\n this.data[name] = value;\n } // Called when a variable is being evaluated.\n\n\n get(name) {\n return this.data[name];\n }\n\n}\n\nvar _default = DefaultVariableStorage;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 167:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _runner = _interopRequireDefault(__webpack_require__(159));\n\nvar _results = _interopRequireDefault(__webpack_require__(34));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_runner.default.OptionsResult = _results.default.OptionsResult;\n_runner.default.TextResult = _results.default.TextResult;\n_runner.default.CommandResult = _results.default.CommandResult;\nvar _default = _runner.default;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 367:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _tokens = _interopRequireDefault(__webpack_require__(197));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * A LexState object represents one of the states in which the lexer can be.\n */\nclass LexerState {\n constructor() {\n /** A list of transition for the given state. */\n this.transitions = [];\n /** A special, unique transition for matching spans of text in any state. */\n\n this.textRule = null;\n /**\n * Whether or not this state is context-bound by indentation\n * (will make the lexer emit Indent and Dedent tokens).\n */\n\n this.isTrackingNextIndentation = false;\n }\n /**\n * addTransition - Define a new transition for this state.\n *\n * @param {type} token - the token to match\n * @param {string} [state] - the state to which transition; if not provided, will\n * remain in the same state.\n * @param {boolean} [delimitsText] - `true` if the token is a text delimiter. A text delimiters\n * is a token which should be considered as a token, even if it\n * doesn't start the line.\n * @return {Object} - returns the LexState itself for chaining.\n */\n\n\n addTransition(token, state, delimitsText) {\n this.transitions.push({\n token: token,\n regex: _tokens.default[token],\n state: state || null,\n delimitsText: delimitsText || false\n });\n return this; // Return this for chaining\n }\n /**\n * addTextRule - Match all the way up to any of the other transitions in this state.\n * The text rule can only be added once.\n *\n * @param {type} type description\n * @param {type} state description\n * @return {Object} - returns the LexState itself for chaining.\n */\n\n\n addTextRule(type, state) {\n if (this.textRule) {\n throw new Error('Cannot add more than one text rule to a state.');\n } // Go through the regex of the other transitions in this state, and create a regex that will\n // match all text, up to any of those transitions.\n\n\n const rules = [];\n this.transitions.forEach(transition => {\n if (transition.delimitsText) {\n // Surround the rule in parens\n rules.push(\"(\".concat(transition.regex.source, \")\"));\n }\n }); // Join the rules that we got above on a |, then put them all into a negative lookahead.\n\n const textPattern = \"((?!\".concat(rules.join('|'), \").)+\");\n this.addTransition(type, state); // Update the regex in the transition we just added to our new one.\n\n this.textRule = this.transitions[this.transitions.length - 1];\n this.textRule.regex = new RegExp(textPattern);\n return this;\n }\n /**\n * setTrackNextIndentation - tell this state whether to track indentation.\n *\n * @param {boolean} track - `true` to track, `false` otherwise.\n * @return {Object} - returns the LexState itself for chaining.\n */\n\n\n setTrackNextIndentation(track) {\n this.isTrackingNextIndentation = track;\n return this;\n }\n\n}\n\nvar _default = LexerState;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 525:\n/***/ ((module, exports, __webpack_require__) => {\n\n // Syncs with YarnSpinner@e0f6807,\n// see https://github.com/thesecretlab/YarnSpinner/blob/master/YarnSpinner/Lexer.cs\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _states = _interopRequireDefault(__webpack_require__(404));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// As opposed to the original C# implemntation which, tokenize the entire input, before emiting\n// a list of tokens, this parser will emit a token each time `lex()` is called. This change\n// accomodates the Jison parser. Given the lexer is not entirely context-free\n// (Off-side rule, lookaheads), context needs to be remembered between each `lex()` calls.\nclass Lexer {\n constructor() {\n /** All the possible states for the lexer. */\n this.states = _states.default.makeStates();\n /** Current state identifier. */\n\n this.state = 'base';\n /** Original text to lex. */\n\n this.originalText = '';\n /** Text to lex, splitted into an array of lines. */\n\n this.lines = []; // Properties used to keep track of the context we're in, while tokenizing each line.\n\n /**\n * Indentation tracker. Each time we encounter an identation, we push a\n * new array which looks like: [indentationLevel, isBaseIndentation]. Basically,\n * isBaseIndentation will be true only for the first level.\n */\n\n this.indentation = [[0, false]];\n /**\n * Set to true when a state required indentation tracking. Will be set to false, after a\n * an indentation is found.\n */\n\n this.shouldTrackNextIndentation = false;\n /**\n * The previous level of identation, basically: this.indentation.last()[0].\n */\n\n this.previousLevelOfIndentation = 0; // Reset the locations.\n\n this.reset();\n }\n /**\n * reset - Reset the lexer location, text and line number. Nothing fancy.\n */\n\n\n reset() {\n // Locations, used by both the lexer and the Jison parser.\n this.yytext = '';\n this.yylloc = {\n first_column: 1,\n first_line: 1,\n last_column: 1,\n last_line: 1\n };\n this.yylineno = 1;\n }\n /**\n * lex - Lex the input and emit the next matched token.\n *\n * @return {string} Emit the next token found.\n */\n\n\n lex() {\n if (this.isAtTheEndOfText()) {\n this.yytext = ''; // Now that we're at the end of the text, we'll emit as many\n // `Dedent` as necessary, to get back to 0-indentation.\n\n const indent = this.indentation.pop();\n\n if (indent && indent[1]) {\n return 'Dedent';\n }\n\n return 'EndOfInput';\n }\n\n if (this.isAtTheEndOfLine()) {\n // Get the next token on the current line\n this.advanceLine();\n return 'EndOfLine';\n }\n\n return this.lexNextTokenOnCurrentLine();\n }\n\n advanceLine() {\n this.yylineno += 1;\n const currentLine = this.getCurrentLine().replace(/\\t/, ' ');\n this.lines[this.yylineno - 1] = currentLine;\n this.previousLevelOfIndentation = this.getLastRecordedIndentation()[0];\n this.yytext = '';\n this.yylloc = {\n first_column: 1,\n first_line: this.yylineno,\n last_column: 1,\n last_line: this.yylineno\n };\n }\n\n lexNextTokenOnCurrentLine() {\n const thisIndentation = this.getCurrentLineIndentation();\n\n if (this.shouldTrackNextIndentation && thisIndentation > this.previousLevelOfIndentation) {\n this.indentation.push([thisIndentation, true]);\n this.shouldTrackNextIndentation = false;\n this.yylloc.first_column = this.yylloc.last_column;\n this.yylloc.last_column += thisIndentation;\n this.yytext = '';\n return 'Indent';\n } else if (thisIndentation < this.getLastRecordedIndentation()[0]) {\n const indent = this.indentation.pop();\n\n if (indent[1]) {\n this.yytext = '';\n this.previousLevelOfIndentation = this.getLastRecordedIndentation()[0];\n return 'Dedent';\n }\n\n this.lexNextTokenOnCurrentLine();\n }\n\n if (thisIndentation === this.previousLevelOfIndentation && this.yylloc.last_column === 1) {\n this.yylloc.last_column += thisIndentation;\n }\n\n const rules = this.getState().transitions;\n\n for (let i = 0, len = rules.length; i < len; i += 1) {\n const rule = rules[i];\n const match = this.getCurrentLine().substring(this.yylloc.last_column - 1).match(rule.regex); // Only accept valid matches that are at the beginning of the text\n\n if (match !== null && match.index === 0) {\n // Take the matched text off the front of this.text\n const matchedText = match[0]; // Tell the parser what the text for this token is\n\n this.yytext = this.getCurrentLine().substr(this.yylloc.last_column - 1, matchedText.length);\n\n if (rule.token === 'String') {\n // If that's a String, remove the quotes\n this.yytext = this.yytext.substring(1, this.yytext.length - 1);\n } // Update our line and column info\n\n\n this.yylloc.first_column = this.yylloc.last_column;\n this.yylloc.last_column += matchedText.length; // If the rule points to a new state, change it now\n\n if (rule.state) {\n this.setState(rule.state);\n\n if (this.shouldTrackNextIndentation) {\n if (this.getLastRecordedIndentation()[0] < thisIndentation) {\n this.indentation.push([thisIndentation, false]);\n }\n }\n }\n\n const nextState = this.states[rule.state];\n const nextStateHasText = !rule.state || nextState.transitions.find(transition => {\n return transition.token === 'Text';\n }); // inline expressions and escaped characters interrupt text\n // but should still preserve surrounding whitespace.\n\n if (rule.token !== 'EndInlineExp' && rule.token !== 'EscapedCharacter' || !nextStateHasText // we never want leading whitespace if not in text-supporting state\n ) {\n // Remove leading whitespace characters\n const spaceMatch = this.getCurrentLine().substring(this.yylloc.last_column - 1).match(/^\\s*/);\n\n if (spaceMatch[0]) {\n this.yylloc.last_column += spaceMatch[0].length;\n }\n }\n\n return rule.token;\n }\n }\n\n throw new Error(\"Invalid syntax in: \".concat(this.getCurrentLine()));\n } // /////////////// Getters & Setters\n\n /**\n * setState - set the current state of the lexer.\n *\n * @param {string} state name of the state\n */\n\n\n setState(state) {\n if (this.states[state] === undefined) {\n throw new Error(\"Cannot set the unknown state [\".concat(state, \"]\"));\n }\n\n this.state = state;\n\n if (this.getState().isTrackingNextIndentation) {\n this.shouldTrackNextIndentation = true;\n }\n }\n /**\n * setInput - Set the text on which perform lexical analysis.\n *\n * @param {string} text the text to lex.\n */\n\n\n setInput(text) {\n // Delete carriage return while keeping a similar semantic.\n this.originalText = text.replace(/(\\r\\n)/g, '\\n').replace(/\\r/g, '\\n').replace(/[\\n\\r]+$/, ''); // Transform the input into an array of lines.\n\n this.lines = this.originalText.split('\\n');\n this.reset();\n }\n /**\n * getState - Returns the full current state object (LexerState),\n * rather than its identifier.\n *\n * @return {Object} the state object.\n */\n\n\n getState() {\n return this.states[this.state];\n }\n\n getCurrentLine() {\n return this.lines[this.yylineno - 1];\n }\n\n getCurrentLineIndentation() {\n const match = this.getCurrentLine().match(/^(\\s*)/g);\n return match[0].length;\n }\n\n getLastRecordedIndentation() {\n if (this.indentation.length === 0) {\n return [0, false];\n }\n\n return this.indentation[this.indentation.length - 1];\n } // /////////////// Booleans tests\n\n /**\n * @return {boolean} `true` when yylloc indicates that the end was reached.\n */\n\n\n isAtTheEndOfText() {\n return this.isAtTheEndOfLine() && this.yylloc.first_line >= this.lines.length;\n }\n /**\n * @return {boolean} `true` when yylloc indicates that the end of the line was reached.\n */\n\n\n isAtTheEndOfLine() {\n return this.yylloc.last_column > this.getCurrentLine().length;\n }\n\n}\n\nvar _default = Lexer;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 404:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _lexerState = _interopRequireDefault(__webpack_require__(367));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @return {Object} all states in which the lexer can be with their associated transitions.\n */\nfunction makeStates() {\n return {\n base: new _lexerState.default().addTransition('EscapedCharacter', null, true).addTransition('Comment', null, true).addTransition('Hashtag', null, true).addTransition('BeginCommand', 'command', true).addTransition('BeginInlineExp', 'inlineExpression', true).addTransition('ShortcutOption', 'shortcutOption').addTextRule('Text'),\n shortcutOption: new _lexerState.default().setTrackNextIndentation(true).addTransition('EscapedCharacter', null, true).addTransition('Comment', null, true).addTransition('Hashtag', null, true).addTransition('BeginCommand', 'expression', true).addTransition('BeginInlineExp', 'inlineExpressionInShortcut', true).addTextRule('Text', 'base'),\n command: new _lexerState.default().addTransition('If', 'expression').addTransition('Else').addTransition('ElseIf', 'expression').addTransition('EndIf').addTransition('Set', 'assignment').addTransition('Declare', 'declare').addTransition('Jump', 'jump').addTransition('Stop', 'stop').addTransition('BeginInlineExp', 'inlineExpressionInCommand', true).addTransition('EndCommand', 'base', true).addTextRule('Text'),\n commandArg: new _lexerState.default().addTextRule('Text'),\n commandParenArgOrExpression: new _lexerState.default().addTransition('EndCommand', 'base', true).addTransition('LeftParen', 'expression').addTransition('Variable', 'expression').addTransition('Number', 'expression').addTransition('String').addTransition('True').addTransition('False').addTransition('Null').addTransition('RightParen'),\n assignment: new _lexerState.default().addTransition('Variable').addTransition('EqualToOrAssign', 'expression'),\n declare: new _lexerState.default().addTransition('Variable').addTransition('EndCommand', 'base').addTransition('EqualToOrAssign', 'expression'),\n jump: new _lexerState.default().addTransition('Identifier').addTransition('BeginInlineExp', 'inlineExpressionInCommand', true).addTransition('EndCommand', 'base', true),\n stop: new _lexerState.default().addTransition('EndCommand', 'base', true),\n expression: new _lexerState.default().addTransition('As').addTransition('ExplicitType').addTransition('EndCommand', 'base').addTransition('Number').addTransition('String').addTransition('LeftParen').addTransition('RightParen').addTransition('EqualTo').addTransition('EqualToOrAssign').addTransition('NotEqualTo').addTransition('GreaterThanOrEqualTo').addTransition('GreaterThan').addTransition('LessThanOrEqualTo').addTransition('LessThan').addTransition('Add').addTransition('UnaryMinus').addTransition('Minus').addTransition('Exponent').addTransition('Multiply').addTransition('Divide').addTransition('Modulo').addTransition('And').addTransition('Or').addTransition('Xor').addTransition('Not').addTransition('Variable').addTransition('Comma').addTransition('True').addTransition('False').addTransition('Null').addTransition('Identifier').addTextRule(),\n inlineExpression: new _lexerState.default().addTransition('EndInlineExp', 'base').addTransition('Number').addTransition('String').addTransition('LeftParen').addTransition('RightParen').addTransition('EqualTo').addTransition('EqualToOrAssign').addTransition('NotEqualTo').addTransition('GreaterThanOrEqualTo').addTransition('GreaterThan').addTransition('LessThanOrEqualTo').addTransition('LessThan').addTransition('Add').addTransition('UnaryMinus').addTransition('Minus').addTransition('Exponent').addTransition('Multiply').addTransition('Divide').addTransition('Modulo').addTransition('And').addTransition('Or').addTransition('Xor').addTransition('Not').addTransition('Variable').addTransition('Comma').addTransition('True').addTransition('False').addTransition('Null').addTransition('Identifier').addTextRule('Text', 'base'),\n // TODO: Copied from above\n // There has to be a non-stupid way to do this, right?\n // I'm just not familiar enough yet to know how to\n // transition from inline expression back to base OR command\n // states depending on how we got there\n inlineExpressionInCommand: new _lexerState.default().addTransition('EndInlineExp', 'command').addTransition('Number').addTransition('String').addTransition('LeftParen').addTransition('RightParen').addTransition('EqualTo').addTransition('EqualToOrAssign').addTransition('NotEqualTo').addTransition('GreaterThanOrEqualTo').addTransition('GreaterThan').addTransition('LessThanOrEqualTo').addTransition('LessThan').addTransition('Add').addTransition('UnaryMinus').addTransition('Minus').addTransition('Exponent').addTransition('Multiply').addTransition('Divide').addTransition('Modulo').addTransition('And').addTransition('Or').addTransition('Xor').addTransition('Not').addTransition('Variable').addTransition('Comma').addTransition('True').addTransition('False').addTransition('Null').addTransition('Identifier').addTextRule('Text', 'base'),\n inlineExpressionInShortcut: new _lexerState.default().addTransition('EndInlineExp', 'shortcutOption').addTransition('Number').addTransition('String').addTransition('LeftParen').addTransition('RightParen').addTransition('EqualTo').addTransition('EqualToOrAssign').addTransition('NotEqualTo').addTransition('GreaterThanOrEqualTo').addTransition('GreaterThan').addTransition('LessThanOrEqualTo').addTransition('LessThan').addTransition('Add').addTransition('UnaryMinus').addTransition('Minus').addTransition('Exponent').addTransition('Multiply').addTransition('Divide').addTransition('Modulo').addTransition('And').addTransition('Or').addTransition('Xor').addTransition('Not').addTransition('Variable').addTransition('Comma').addTransition('True').addTransition('False').addTransition('Null').addTransition('Identifier').addTextRule('Text', 'base')\n };\n}\n\nvar _default = {\n makeStates: makeStates\n};\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 197:\n/***/ ((module, exports) => {\n\n\n/**\n * Token identifier -> regular expression to match the lexeme. That's a list of all the token\n * which can be emitted by the lexer. For now, we're slightly bending the style guide,\n * to make sure the debug output of the javascript lexer will (kinda) match the original C# one.\n */\n\n/* eslint-disable key-spacing */\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nconst Tokens = {\n // Special tokens\n Whitespace: null,\n // (not used currently)\n Indent: null,\n Dedent: null,\n EndOfLine: /\\n/,\n EndOfInput: null,\n // Literals in (\"<>\")\n Number: /-?[0-9]+(\\.[0-9+])?/,\n String: /\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\"/,\n // Command syntax (\"<>\")\n BeginCommand: /<>/,\n // Variables (\"$foo\")\n Variable: /\\$([A-Za-z0-9_.])+/,\n // Shortcut syntax (\"->\")\n ShortcutOption: /->/,\n // Hashtag (\"#something\")\n Hashtag: /#([^(\\s|#|//)]+)/,\n // seems a little hacky to explicitly consider comments here\n // Comment (\"// some stuff\")\n Comment: /\\/\\/.*/,\n // Option syntax (\"[[Let's go here|Destination]]\")\n OptionStart: /\\[\\[/,\n // [[\n OptionDelimit: /\\|/,\n // |\n OptionEnd: /\\]\\]/,\n // ]]\n // Command types (specially recognized command word)\n If: /if(?!\\w)/,\n ElseIf: /elseif(?!\\w)/,\n Else: /else(?!\\w)/,\n EndIf: /endif(?!\\w)/,\n Jump: /jump(?!\\w)/,\n Stop: /stop(?!\\w)/,\n Set: /set(?!\\w)/,\n Declare: /declare(?!\\w)/,\n As: /as(?!\\w)/,\n ExplicitType: /(String|Number|Bool)(?=>>)/,\n // Boolean values\n True: /true(?!\\w)/,\n False: /false(?!\\w)/,\n // The null value\n Null: /null(?!\\w)/,\n // Parentheses\n LeftParen: /\\(/,\n RightParen: /\\)/,\n // Parameter delimiters\n Comma: /,/,\n // Operators\n UnaryMinus: /-(?!\\s)/,\n EqualTo: /(==|is(?!\\w)|eq(?!\\w))/,\n // ==, eq, is\n GreaterThan: /(>|gt(?!\\w))/,\n // >, gt\n GreaterThanOrEqualTo: /(>=|gte(?!\\w))/,\n // >=, gte\n LessThan: /(<|lt(?!\\w))/,\n // <, lt\n LessThanOrEqualTo: /(<=|lte(?!\\w))/,\n // <=, lte\n NotEqualTo: /(!=|neq(?!\\w))/,\n // !=, neq\n // Logical operators\n Or: /(\\|\\||or(?!\\w))/,\n // ||, or\n And: /(&&|and(?!\\w))/,\n // &&, and\n Xor: /(\\^|xor(?!\\w))/,\n // ^, xor\n Not: /(!|not(?!\\w))/,\n // !, not\n // this guy's special because '=' can mean either 'equal to'\n // or 'becomes' depending on context\n EqualToOrAssign: /(=|to(?!\\w))/,\n // =, to\n Add: /\\+/,\n // +\n Minus: /-/,\n // -\n Exponent: /\\*\\*/,\n // **\n Multiply: /\\*/,\n // *\n Divide: /\\//,\n // /\n Modulo: /%/,\n // /\n AddAssign: /\\+=/,\n // +=\n MinusAssign: /-=/,\n // -=\n MultiplyAssign: /\\*=/,\n // *=\n DivideAssign: /\\/=/,\n // /=\n Identifier: /[a-zA-Z0-9_:.]+/,\n // a single word (used for functions)\n EscapedCharacter: /\\\\./,\n // for escaping \\# special characters\n Text: /[^\\\\]/,\n // generic until we hit other syntax\n // Braces are used for inline expressions. Ignore escaped braces\n // TODO: doesn't work ios\n BeginInlineExp: /{/,\n // {\n EndInlineExp: /}/ // }\n\n};\n/* eslint-enable key-spacing */\n\nvar _default = Tokens;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 348:\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Parser = Parser;\nexports.parser = void 0;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar o = function o(k, v, _o, l) {\n for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v);\n\n return _o;\n},\n $V0 = [1, 16],\n $V1 = [1, 17],\n $V2 = [1, 12],\n $V3 = [1, 19],\n $V4 = [1, 18],\n $V5 = [5, 18, 19, 23, 34, 36, 77],\n $V6 = [1, 23],\n $V7 = [1, 24],\n $V8 = [1, 26],\n $V9 = [1, 27],\n $Va = [5, 14, 16, 18, 19, 21, 23, 34, 36, 77],\n $Vb = [1, 30],\n $Vc = [1, 34],\n $Vd = [1, 35],\n $Ve = [1, 36],\n $Vf = [1, 37],\n $Vg = [5, 14, 16, 18, 19, 21, 23, 26, 34, 36, 77],\n $Vh = [1, 50],\n $Vi = [1, 49],\n $Vj = [1, 44],\n $Vk = [1, 45],\n $Vl = [1, 46],\n $Vm = [1, 51],\n $Vn = [1, 52],\n $Vo = [1, 53],\n $Vp = [1, 54],\n $Vq = [1, 55],\n $Vr = [5, 16, 18, 19, 23, 34, 36, 77],\n $Vs = [1, 71],\n $Vt = [1, 72],\n $Vu = [1, 73],\n $Vv = [1, 74],\n $Vw = [1, 75],\n $Vx = [1, 76],\n $Vy = [1, 77],\n $Vz = [1, 78],\n $VA = [1, 79],\n $VB = [1, 80],\n $VC = [1, 81],\n $VD = [1, 82],\n $VE = [1, 83],\n $VF = [1, 84],\n $VG = [1, 85],\n $VH = [26, 46, 51, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 78],\n $VI = [26, 46, 51, 53, 54, 55, 56, 57, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 78],\n $VJ = [26, 46, 51, 70, 78],\n $VK = [1, 122],\n $VL = [1, 123],\n $VM = [26, 46, 51, 53, 54, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 78],\n $VN = [26, 46, 51, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 78],\n $VO = [51, 70],\n $VP = [16, 18, 19, 23, 34, 77];\n\nvar parser = {\n trace: function trace() {},\n yy: {},\n symbols_: {\n \"error\": 2,\n \"node\": 3,\n \"statements\": 4,\n \"EndOfInput\": 5,\n \"conditionalBlock\": 6,\n \"statement\": 7,\n \"text\": 8,\n \"shortcut\": 9,\n \"genericCommand\": 10,\n \"assignmentCommand\": 11,\n \"jumpCommand\": 12,\n \"stopCommand\": 13,\n \"Comment\": 14,\n \"hashtags\": 15,\n \"EndOfLine\": 16,\n \"textNode\": 17,\n \"Text\": 18,\n \"EscapedCharacter\": 19,\n \"inlineExpression\": 20,\n \"Hashtag\": 21,\n \"conditional\": 22,\n \"BeginCommand\": 23,\n \"If\": 24,\n \"expression\": 25,\n \"EndCommand\": 26,\n \"EndIf\": 27,\n \"additionalConditionalBlocks\": 28,\n \"else\": 29,\n \"Else\": 30,\n \"elseif\": 31,\n \"ElseIf\": 32,\n \"shortcutOption\": 33,\n \"ShortcutOption\": 34,\n \"Indent\": 35,\n \"Dedent\": 36,\n \"Jump\": 37,\n \"Identifier\": 38,\n \"Stop\": 39,\n \"setCommandInner\": 40,\n \"declareCommandInner\": 41,\n \"Set\": 42,\n \"Variable\": 43,\n \"EqualToOrAssign\": 44,\n \"Declare\": 45,\n \"As\": 46,\n \"ExplicitType\": 47,\n \"functionArgument\": 48,\n \"functionCall\": 49,\n \"LeftParen\": 50,\n \"RightParen\": 51,\n \"UnaryMinus\": 52,\n \"Add\": 53,\n \"Minus\": 54,\n \"Exponent\": 55,\n \"Multiply\": 56,\n \"Divide\": 57,\n \"Modulo\": 58,\n \"Not\": 59,\n \"Or\": 60,\n \"And\": 61,\n \"Xor\": 62,\n \"EqualTo\": 63,\n \"NotEqualTo\": 64,\n \"GreaterThan\": 65,\n \"GreaterThanOrEqualTo\": 66,\n \"LessThan\": 67,\n \"LessThanOrEqualTo\": 68,\n \"parenExpressionArgs\": 69,\n \"Comma\": 70,\n \"literal\": 71,\n \"True\": 72,\n \"False\": 73,\n \"Number\": 74,\n \"String\": 75,\n \"Null\": 76,\n \"BeginInlineExp\": 77,\n \"EndInlineExp\": 78,\n \"$accept\": 0,\n \"$end\": 1\n },\n terminals_: {\n 2: \"error\",\n 5: \"EndOfInput\",\n 14: \"Comment\",\n 16: \"EndOfLine\",\n 18: \"Text\",\n 19: \"EscapedCharacter\",\n 21: \"Hashtag\",\n 23: \"BeginCommand\",\n 24: \"If\",\n 26: \"EndCommand\",\n 27: \"EndIf\",\n 30: \"Else\",\n 32: \"ElseIf\",\n 34: \"ShortcutOption\",\n 35: \"Indent\",\n 36: \"Dedent\",\n 37: \"Jump\",\n 38: \"Identifier\",\n 39: \"Stop\",\n 42: \"Set\",\n 43: \"Variable\",\n 44: \"EqualToOrAssign\",\n 45: \"Declare\",\n 46: \"As\",\n 47: \"ExplicitType\",\n 50: \"LeftParen\",\n 51: \"RightParen\",\n 52: \"UnaryMinus\",\n 53: \"Add\",\n 54: \"Minus\",\n 55: \"Exponent\",\n 56: \"Multiply\",\n 57: \"Divide\",\n 58: \"Modulo\",\n 59: \"Not\",\n 60: \"Or\",\n 61: \"And\",\n 62: \"Xor\",\n 63: \"EqualTo\",\n 64: \"NotEqualTo\",\n 65: \"GreaterThan\",\n 66: \"GreaterThanOrEqualTo\",\n 67: \"LessThan\",\n 68: \"LessThanOrEqualTo\",\n 70: \"Comma\",\n 72: \"True\",\n 73: \"False\",\n 74: \"Number\",\n 75: \"String\",\n 76: \"Null\",\n 77: \"BeginInlineExp\",\n 78: \"EndInlineExp\"\n },\n productions_: [0, [3, 2], [4, 1], [4, 2], [4, 1], [4, 2], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 2], [7, 2], [7, 2], [17, 1], [17, 1], [8, 1], [8, 1], [8, 2], [15, 1], [15, 2], [22, 4], [6, 6], [6, 4], [6, 2], [29, 3], [29, 2], [31, 4], [31, 2], [28, 5], [28, 5], [28, 3], [33, 2], [33, 3], [33, 2], [33, 2], [33, 3], [33, 2], [9, 1], [9, 5], [10, 3], [12, 4], [12, 4], [13, 3], [11, 3], [11, 3], [40, 4], [41, 4], [41, 6], [25, 1], [25, 1], [25, 3], [25, 2], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [25, 2], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [49, 3], [49, 4], [69, 3], [69, 1], [48, 1], [48, 1], [48, 1], [71, 1], [71, 1], [71, 1], [71, 1], [71, 1], [20, 3]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate\n /* action[1] */\n , $$\n /* vstack */\n , _$\n /* lstack */\n ) {\n /* this == yyval */\n var $0 = $$.length - 1;\n\n switch (yystate) {\n case 1:\n return $$[$0 - 1].flat();\n break;\n\n case 2:\n case 4:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 17:\n case 18:\n case 73:\n this.$ = [$$[$0]];\n break;\n\n case 3:\n this.$ = $$[$0 - 1].concat($$[$0]);\n break;\n\n case 5:\n this.$ = $$[$0 - 1].concat([$$[$0]]);\n break;\n\n case 6:\n case 51:\n this.$ = $$[$0];\n break;\n\n case 12:\n case 14:\n case 25:\n case 28:\n case 29:\n case 45:\n case 52:\n this.$ = $$[$0 - 1];\n break;\n\n case 13:\n this.$ = $$[$0 - 1].map(s => Object.assign(s, {\n hashtags: $$[$0]\n }));\n break;\n\n case 15:\n this.$ = new yy.TextNode($$[$0], this._$);\n break;\n\n case 16:\n this.$ = new yy.EscapedCharacterNode($$[$0], this._$);\n break;\n\n case 19:\n this.$ = $$[$0 - 1].concat($$[$0]);\n break;\n\n case 20:\n this.$ = [$$[$0].substring(1)];\n break;\n\n case 21:\n this.$ = [$$[$0 - 1].substring(1)].concat($$[$0]);\n break;\n\n case 22:\n case 36:\n case 38:\n this.$ = $$[$0 - 1];\n break;\n\n case 23:\n this.$ = new yy.IfNode($$[$0 - 5], $$[$0 - 3].flat());\n break;\n\n case 24:\n this.$ = new yy.IfElseNode($$[$0 - 3], $$[$0 - 1].flat(), $$[$0]);\n break;\n\n case 26:\n case 27:\n this.$ = undefined;\n break;\n\n case 30:\n this.$ = new yy.ElseNode($$[$0 - 3].flat());\n break;\n\n case 31:\n this.$ = new yy.ElseIfNode($$[$0 - 4], $$[$0 - 3].flat());\n break;\n\n case 32:\n this.$ = new yy.ElseIfNode($$[$0 - 2], $$[$0 - 1].flat(), $$[$0]);\n break;\n\n case 33:\n this.$ = {\n text: $$[$0]\n };\n break;\n\n case 34:\n this.$ = {\n text: $$[$0 - 1],\n conditional: $$[$0]\n };\n break;\n\n case 35:\n this.$ = _objectSpread(_objectSpread({}, $$[$0 - 1]), {}, {\n hashtags: $$[$0]\n });\n break;\n\n case 37:\n this.$ = _objectSpread(_objectSpread({}, $$[$0 - 2]), {}, {\n hashtags: $$[$0 - 1]\n });\n break;\n\n case 39:\n this.$ = new yy.DialogShortcutNode($$[$0].text, undefined, this._$, $$[$0].hashtags, $$[$0].conditional);\n break;\n\n case 40:\n this.$ = new yy.DialogShortcutNode($$[$0 - 4].text, $$[$0 - 1].flat(), this._$, $$[$0 - 4].hashtags, $$[$0 - 4].conditional);\n break;\n\n case 41:\n this.$ = new yy.GenericCommandNode($$[$0 - 1], this._$);\n break;\n\n case 42:\n case 43:\n this.$ = new yy.JumpCommandNode($$[$0 - 1]);\n break;\n\n case 44:\n this.$ = new yy.StopCommandNode();\n break;\n\n case 46:\n this.$ = null;\n break;\n\n case 47:\n this.$ = new yy.SetVariableEqualToNode($$[$0 - 2].substring(1), $$[$0]);\n break;\n\n case 48:\n this.$ = null;\n yy.registerDeclaration($$[$0 - 2].substring(1), $$[$0]);\n break;\n\n case 49:\n this.$ = null;\n yy.registerDeclaration($$[$0 - 4].substring(1), $$[$0 - 2], $$[$0]);\n break;\n\n case 50:\n case 74:\n case 75:\n this.$ = $$[$0];\n break;\n\n case 53:\n this.$ = new yy.UnaryMinusExpressionNode($$[$0]);\n break;\n\n case 54:\n this.$ = new yy.ArithmeticExpressionAddNode($$[$0 - 2], $$[$0]);\n break;\n\n case 55:\n this.$ = new yy.ArithmeticExpressionMinusNode($$[$0 - 2], $$[$0]);\n break;\n\n case 56:\n this.$ = new yy.ArithmeticExpressionExponentNode($$[$0 - 2], $$[$0]);\n break;\n\n case 57:\n this.$ = new yy.ArithmeticExpressionMultiplyNode($$[$0 - 2], $$[$0]);\n break;\n\n case 58:\n this.$ = new yy.ArithmeticExpressionDivideNode($$[$0 - 2], $$[$0]);\n break;\n\n case 59:\n this.$ = new yy.ArithmeticExpressionModuloNode($$[$0 - 2], $$[$0]);\n break;\n\n case 60:\n this.$ = new yy.NegatedBooleanExpressionNode($$[$0]);\n break;\n\n case 61:\n this.$ = new yy.BooleanOrExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 62:\n this.$ = new yy.BooleanAndExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 63:\n this.$ = new yy.BooleanXorExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 64:\n this.$ = new yy.EqualToExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 65:\n this.$ = new yy.NotEqualToExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 66:\n this.$ = new yy.GreaterThanExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 67:\n this.$ = new yy.GreaterThanOrEqualToExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 68:\n this.$ = new yy.LessThanExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 69:\n this.$ = new yy.LessThanOrEqualToExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 70:\n this.$ = new yy.FunctionCallNode($$[$0 - 2], [], this._$);\n break;\n\n case 71:\n this.$ = new yy.FunctionCallNode($$[$0 - 3], $$[$0 - 1], this._$);\n break;\n\n case 72:\n this.$ = $$[$0 - 2].concat([$$[$0]]);\n break;\n\n case 76:\n this.$ = new yy.VariableNode($$[$0].substring(1));\n break;\n\n case 77:\n case 78:\n this.$ = new yy.BooleanLiteralNode($$[$0]);\n break;\n\n case 79:\n this.$ = new yy.NumericLiteralNode($$[$0]);\n break;\n\n case 80:\n this.$ = new yy.StringLiteralNode($$[$0]);\n break;\n\n case 81:\n this.$ = new yy.NullLiteralNode($$[$0]);\n break;\n\n case 82:\n this.$ = new yy.InlineExpressionNode($$[$0 - 1], this._$);\n break;\n }\n },\n table: [{\n 3: 1,\n 4: 2,\n 6: 3,\n 7: 4,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, {\n 1: [3]\n }, {\n 5: [1, 20],\n 6: 21,\n 7: 22,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, o($V5, [2, 2], {\n 16: $V6\n }), o($V5, [2, 4], {\n 15: 25,\n 14: $V7,\n 16: $V8,\n 21: $V9\n }), {\n 16: [1, 28]\n }, o([5, 14, 16, 21, 23, 34, 36], [2, 6], {\n 17: 13,\n 20: 14,\n 8: 29,\n 18: $V0,\n 19: $V1,\n 77: $V4\n }), o($Va, [2, 7]), o($Va, [2, 8]), o($Va, [2, 9]), o($Va, [2, 10]), o($Va, [2, 11]), {\n 8: 31,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 24: $Vb,\n 37: $Vc,\n 39: $Vd,\n 40: 32,\n 41: 33,\n 42: $Ve,\n 45: $Vf,\n 77: $V4\n }, o($Vg, [2, 17]), o($Vg, [2, 18]), o($V5, [2, 39], {\n 15: 39,\n 14: [1, 40],\n 16: [1, 38],\n 21: $V9\n }), o($Vg, [2, 15]), o($Vg, [2, 16]), {\n 20: 47,\n 25: 41,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 8: 56,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 77: $V4\n }, {\n 1: [2, 1]\n }, o($V5, [2, 3], {\n 16: $V6\n }), o($V5, [2, 5], {\n 15: 25,\n 14: $V7,\n 16: $V8,\n 21: $V9\n }), o($Vr, [2, 25]), o($Va, [2, 12]), o($Va, [2, 13]), o($Va, [2, 14]), o([5, 14, 16, 18, 19, 23, 34, 36, 77], [2, 20], {\n 15: 57,\n 21: $V9\n }), {\n 4: 58,\n 6: 3,\n 7: 4,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, o([5, 14, 16, 21, 23, 26, 34, 36], [2, 19], {\n 17: 13,\n 20: 14,\n 8: 29,\n 18: $V0,\n 19: $V1,\n 77: $V4\n }), {\n 20: 47,\n 25: 59,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 8: 29,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 26: [1, 60],\n 77: $V4\n }, {\n 26: [1, 61]\n }, {\n 26: [1, 62]\n }, {\n 20: 64,\n 38: [1, 63],\n 77: $V4\n }, {\n 26: [1, 65]\n }, {\n 43: [1, 66]\n }, {\n 43: [1, 67]\n }, o($Va, [2, 38], {\n 35: [1, 68]\n }), o([5, 16, 18, 19, 21, 23, 34, 36, 77], [2, 35], {\n 14: [1, 69]\n }), o($Va, [2, 36]), {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG,\n 78: [1, 70]\n }, o($VH, [2, 50]), o($VH, [2, 51]), {\n 20: 47,\n 25: 86,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 87,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 88,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, o($VH, [2, 74]), o($VH, [2, 75]), o($VH, [2, 76]), {\n 50: [1, 89]\n }, o($VH, [2, 77]), o($VH, [2, 78]), o($VH, [2, 79]), o($VH, [2, 80]), o($VH, [2, 81]), o([5, 14, 16, 21, 34, 36], [2, 33], {\n 17: 13,\n 20: 14,\n 8: 29,\n 22: 90,\n 18: $V0,\n 19: $V1,\n 23: [1, 91],\n 77: $V4\n }), o($Va, [2, 21]), {\n 6: 21,\n 7: 22,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: [1, 92],\n 28: 93,\n 29: 94,\n 31: 95,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, {\n 26: [1, 96],\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }, o($Va, [2, 41]), o($Va, [2, 45]), o($Va, [2, 46]), {\n 26: [1, 97]\n }, {\n 26: [1, 98]\n }, o($Va, [2, 44]), {\n 44: [1, 99]\n }, {\n 44: [1, 100]\n }, {\n 4: 101,\n 6: 3,\n 7: 4,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, o($Va, [2, 37]), o([5, 14, 16, 18, 19, 21, 23, 26, 34, 36, 46, 51, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 77, 78], [2, 82]), {\n 20: 47,\n 25: 102,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 103,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 104,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 105,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 106,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 107,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 108,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 109,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 110,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 111,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 112,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 113,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 114,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 115,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 116,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 51: [1, 117],\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }, o($VI, [2, 53], {\n 58: $Vx\n }), o($VJ, [2, 60], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), {\n 20: 47,\n 25: 120,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 51: [1, 118],\n 52: $Vk,\n 59: $Vl,\n 69: 119,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, o($Va, [2, 34]), {\n 24: $Vb\n }, {\n 8: 31,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 24: $Vb,\n 27: [1, 121],\n 30: $VK,\n 32: $VL,\n 37: $Vc,\n 39: $Vd,\n 40: 32,\n 41: 33,\n 42: $Ve,\n 45: $Vf,\n 77: $V4\n }, o($Vr, [2, 24]), {\n 4: 124,\n 6: 3,\n 7: 4,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 16: [1, 125],\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, {\n 4: 126,\n 6: 3,\n 7: 4,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 16: [1, 127],\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, o($Va, [2, 22]), o($Va, [2, 42]), o($Va, [2, 43]), {\n 20: 47,\n 25: 128,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 129,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 6: 21,\n 7: 22,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 36: [1, 130],\n 77: $V4\n }, o($VM, [2, 54], {\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VM, [2, 55], {\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VI, [2, 56], {\n 58: $Vx\n }), o($VI, [2, 57], {\n 58: $Vx\n }), o($VI, [2, 58], {\n 58: $Vx\n }), o($VJ, [2, 59], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), o([26, 46, 51, 60, 70, 78], [2, 61], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), o([26, 46, 51, 60, 61, 70, 78], [2, 62], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), o([26, 46, 51, 60, 61, 62, 70, 78], [2, 63], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), o($VN, [2, 64], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VN, [2, 65], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VN, [2, 66], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VN, [2, 67], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VN, [2, 68], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VN, [2, 69], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VH, [2, 52]), o($VH, [2, 70]), {\n 51: [1, 131],\n 70: [1, 132]\n }, o($VO, [2, 73], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), {\n 26: [1, 133]\n }, {\n 26: [1, 134]\n }, {\n 20: 47,\n 25: 135,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 6: 21,\n 7: 22,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: [1, 136],\n 33: 15,\n 34: $V3,\n 77: $V4\n }, o($VP, [2, 27]), {\n 6: 21,\n 7: 22,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: [1, 137],\n 28: 138,\n 29: 94,\n 31: 95,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, o($VP, [2, 29]), {\n 26: [2, 47],\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }, {\n 26: [2, 48],\n 46: [1, 139],\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }, o($Va, [2, 40]), o($VH, [2, 71]), {\n 20: 47,\n 25: 140,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, o($Vr, [2, 23]), o($VP, [2, 26]), {\n 26: [1, 141],\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }, {\n 8: 31,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 24: $Vb,\n 27: [1, 142],\n 37: $Vc,\n 39: $Vd,\n 40: 32,\n 41: 33,\n 42: $Ve,\n 45: $Vf,\n 77: $V4\n }, {\n 8: 31,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 24: $Vb,\n 27: [1, 143],\n 30: $VK,\n 32: $VL,\n 37: $Vc,\n 39: $Vd,\n 40: 32,\n 41: 33,\n 42: $Ve,\n 45: $Vf,\n 77: $V4\n }, o($Vr, [2, 32]), {\n 47: [1, 144]\n }, o($VO, [2, 72], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), o($VP, [2, 28]), {\n 26: [1, 145]\n }, {\n 26: [1, 146]\n }, {\n 26: [2, 49]\n }, o($Vr, [2, 30]), o($Vr, [2, 31])],\n defaultActions: {\n 20: [2, 1],\n 144: [2, 49]\n },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this,\n stack = [0],\n tstack = [],\n vstack = [null],\n lstack = [],\n table = this.table,\n yytext = '',\n yylineno = 0,\n yyleng = 0,\n recovering = 0,\n TERROR = 2,\n EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = {\n yy: {}\n };\n\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n\n _token_stack: var lex = function lex() {\n var token;\n token = lexer.lex() || EOF;\n\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token;\n };\n\n var symbol,\n preErrorSymbol,\n state,\n action,\n a,\n r,\n yyval = {},\n p,\n len,\n newState,\n expected;\n\n while (true) {\n state = stack[stack.length - 1];\n\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n\n action = table[state] && table[state][symbol];\n }\n\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n\n break;\n\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n\n if (ranges) {\n yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];\n }\n\n r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));\n\n if (typeof r !== 'undefined') {\n return r;\n }\n\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n\n case 3:\n return true;\n }\n }\n\n return true;\n }\n};\nexports.parser = parser;\n\nfunction Parser() {\n this.yy = {};\n}\n\n;\nParser.prototype = parser;\nparser.Parser = Parser;\n\n/***/ }),\n\n/***/ 748:\n/***/ ((module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nclass Text {}\n\nclass Shortcut {}\n\nclass Conditional {}\n\nclass Assignment {}\n\nclass Literal {}\n\nclass Expression {}\n\nclass FunctionCall {}\n\nclass Command {}\n\nvar _default = {\n types: {\n Text,\n Shortcut,\n Conditional,\n Assignment,\n Literal,\n Expression,\n FunctionCall,\n Command\n },\n // /////////////// Dialog Nodes\n DialogShortcutNode: class extends Shortcut {\n constructor(text, content, lineNo) {\n let hashtags = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n let conditionalExpression = arguments.length > 4 ? arguments[4] : undefined;\n super();\n this.type = 'DialogShortcutNode';\n this.text = text;\n this.content = content;\n this.lineNum = lineNo.first_line;\n this.hashtags = hashtags;\n this.conditionalExpression = conditionalExpression;\n }\n\n },\n // /////////////// Conditional Nodes\n IfNode: class extends Conditional {\n constructor(expression, statement) {\n super();\n this.type = 'IfNode';\n this.expression = expression;\n this.statement = statement;\n }\n\n },\n IfElseNode: class extends Conditional {\n constructor(expression, statement, elseStatement) {\n super();\n this.type = 'IfElseNode';\n this.expression = expression;\n this.statement = statement;\n this.elseStatement = elseStatement;\n }\n\n },\n ElseNode: class extends Conditional {\n constructor(statement) {\n super();\n this.type = 'ElseNode';\n this.statement = statement;\n }\n\n },\n ElseIfNode: class extends Conditional {\n constructor(expression, statement, elseStatement) {\n super();\n this.type = 'ElseIfNode';\n this.expression = expression;\n this.statement = statement;\n this.elseStatement = elseStatement;\n }\n\n },\n // /////////////// Command Nodes\n GenericCommandNode: class extends Command {\n constructor(command, lineNo) {\n let hashtags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n super();\n this.type = 'GenericCommandNode';\n this.command = command;\n this.hashtags = hashtags;\n this.lineNum = lineNo.first_line;\n }\n\n },\n JumpCommandNode: class extends Command {\n constructor(destination) {\n super();\n this.type = 'JumpCommandNode';\n this.destination = destination;\n }\n\n },\n StopCommandNode: class extends Command {\n constructor() {\n super();\n this.type = 'StopCommandNode';\n }\n\n },\n // /////////////// Contents Nodes\n TextNode: class extends Text {\n constructor(text, lineNo) {\n let hashtags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n super();\n this.type = 'TextNode';\n this.text = text;\n this.lineNum = lineNo.first_line;\n this.hashtags = hashtags;\n }\n\n },\n EscapedCharacterNode: class extends Text {\n constructor(text, lineNo) {\n let hashtags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n super();\n this.type = 'EscapedCharacterNode';\n this.text = text;\n this.lineNum = lineNo.first_line;\n this.hashtags = hashtags;\n }\n\n },\n // /////////////// Literal Nodes\n NumericLiteralNode: class extends Literal {\n constructor(numericLiteral) {\n super();\n this.type = 'NumericLiteralNode';\n this.numericLiteral = numericLiteral;\n }\n\n },\n StringLiteralNode: class extends Literal {\n constructor(stringLiteral) {\n super();\n this.type = 'StringLiteralNode';\n this.stringLiteral = stringLiteral;\n }\n\n },\n BooleanLiteralNode: class extends Literal {\n constructor(booleanLiteral) {\n super();\n this.type = 'BooleanLiteralNode';\n this.booleanLiteral = booleanLiteral;\n }\n\n },\n VariableNode: class extends Literal {\n constructor(variableName) {\n super();\n this.type = 'VariableNode';\n this.variableName = variableName;\n }\n\n },\n // /////////////// Arithmetic Expression Nodes\n UnaryMinusExpressionNode: class extends Expression {\n constructor(expression) {\n super();\n this.type = 'UnaryMinusExpressionNode';\n this.expression = expression;\n }\n\n },\n ArithmeticExpressionAddNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'ArithmeticExpressionAddNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n ArithmeticExpressionMinusNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'ArithmeticExpressionMinusNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n ArithmeticExpressionMultiplyNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'ArithmeticExpressionMultiplyNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n ArithmeticExpressionExponentNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'ArithmeticExpressionExponentNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n ArithmeticExpressionDivideNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'ArithmeticExpressionDivideNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n ArithmeticExpressionModuloNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'ArithmeticExpressionModuloNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n // /////////////// Boolean Expression Nodes\n NegatedBooleanExpressionNode: class extends Expression {\n constructor(expression) {\n super();\n this.type = 'NegatedBooleanExpressionNode';\n this.expression = expression;\n }\n\n },\n BooleanOrExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'BooleanOrExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n BooleanAndExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'BooleanAndExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n BooleanXorExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'BooleanXorExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n EqualToExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'EqualToExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n NotEqualToExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'NotEqualToExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n GreaterThanExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'GreaterThanExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n GreaterThanOrEqualToExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'GreaterThanOrEqualToExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n LessThanExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'LessThanExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n LessThanOrEqualToExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'LessThanOrEqualToExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n // /////////////// Assignment Expression Nodes\n SetVariableEqualToNode: class extends Assignment {\n constructor(variableName, expression) {\n super();\n this.type = 'SetVariableEqualToNode';\n this.variableName = variableName;\n this.expression = expression;\n }\n\n },\n // /////////////// Function Nodes\n FunctionCallNode: class extends FunctionCall {\n constructor(functionName, args, lineNo) {\n let hashtags = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n super();\n this.type = 'FunctionCallNode';\n this.functionName = functionName;\n this.args = args;\n this.lineNum = lineNo.first_line;\n this.hashtags = hashtags;\n }\n\n },\n // /////////////// Inline Expression\n InlineExpressionNode: class extends Expression {\n constructor(expression, lineNo) {\n let hashtags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n super();\n this.type = 'InlineExpressionNode';\n this.expression = expression;\n this.lineNum = lineNo.first_line;\n this.hashtags = hashtags;\n }\n\n }\n};\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 173:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _nodes = _interopRequireDefault(__webpack_require__(748));\n\nvar _lexer = _interopRequireDefault(__webpack_require__(525));\n\nvar _compiledParser = __webpack_require__(348);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_compiledParser.parser.lexer = new _lexer.default();\n_compiledParser.parser.yy = _nodes.default;\n_compiledParser.parser.yy.declarations = {};\n\n_compiledParser.parser.yy.parseError = function parseError(e) {\n throw e;\n};\n\n_compiledParser.parser.yy.registerDeclaration = function registerDeclaration(variableName, expression, explicitType) {\n if (!this.areDeclarationsHandled) {\n if (this.declarations[variableName]) {\n throw new Error(\"Duplicate declaration found for variable: \".concat(variableName));\n }\n\n this.declarations[variableName] = {\n variableName,\n expression,\n explicitType\n };\n }\n};\n\nvar _default = _compiledParser.parser;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 34:\n/***/ ((module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nclass Result {}\n\nclass TextResult extends Result {\n /**\n * Create a text display result\n * @param {string} [text] text to be displayed\n * @param {string[]} [hashtags] the hashtags for the line\n * @param {object} [metadata] the parent yarn data\n */\n constructor(text, hashtags, metadata) {\n super();\n this.text = text;\n this.hashtags = hashtags;\n this.metadata = metadata;\n }\n\n}\n\nclass CommandResult extends Result {\n /**\n * Return a command string\n * @param {string} [command] the command text\n * @param {string[]} [hashtags] the hashtags for the line\n * @param {object} [metadata] the parent yarn data\n */\n constructor(command, hashtags, metadata) {\n super();\n this.command = command;\n this.hashtags = hashtags;\n this.metadata = metadata;\n }\n\n}\n\nclass OptionResult extends Result {\n /**\n * Strip down Conditional option for presentation\n * @param {string} [text] option text to display\n * @param {boolean} [isAvailable] whether option is available\n * @param {string[]} [hashtags] the hashtags for the line\n * @param {object} [metadata] the parent yarn data\n */\n constructor(text) {\n let isAvailable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n let hashtags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n let metadata = arguments.length > 3 ? arguments[3] : undefined;\n super();\n this.text = text;\n this.isAvailable = isAvailable;\n this.hashtags = hashtags;\n this.metadata = metadata;\n }\n\n}\n\nclass OptionsResult extends Result {\n /**\n * Create a selectable list of options from the given list of text\n * @param {Node[]} [options] list of the text of options to be shown\n * @param {object} [metadata] the parent yarn data\n */\n constructor(options, metadata) {\n super();\n this.options = options.map(s => {\n return new OptionResult(s.text, s.isAvailable, s.hashtags);\n });\n this.metadata = metadata;\n }\n\n select() {\n let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n\n if (index < 0 || index >= this.options.length) {\n throw new Error(\"Cannot select option #\".concat(index, \", there are \").concat(this.options.length, \" options\"));\n }\n\n this.selected = index;\n }\n\n}\n\nvar _default = {\n Result,\n TextResult,\n CommandResult,\n OptionsResult\n};\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 159:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _parser = _interopRequireDefault(__webpack_require__(173));\n\nvar _results = _interopRequireDefault(__webpack_require__(34));\n\nvar _defaultVariableStorage = _interopRequireDefault(__webpack_require__(131));\n\nvar _convertYarnToJs = _interopRequireDefault(__webpack_require__(144));\n\nvar _nodes = _interopRequireDefault(__webpack_require__(748));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nconst nodeTypes = _nodes.default.types;\n\nclass Runner {\n constructor() {\n this.noEscape = false;\n this.yarnNodes = {};\n this.variables = new _defaultVariableStorage.default();\n this.functions = {};\n }\n /**\n * Loads the yarn node data into this.nodes\n * @param dialogue {any[]} yarn dialogue as string or array\n */\n\n\n load(dialogue) {\n if (!dialogue) {\n throw new Error('No dialogue supplied');\n }\n\n let nodes;\n\n if (typeof dialogue === 'string') {\n nodes = (0, _convertYarnToJs.default)(dialogue);\n } else {\n nodes = dialogue;\n }\n\n nodes.forEach(node => {\n if (!node.title) {\n throw new Error(\"Node needs a title: \".concat(JSON.stringify(node)));\n } else if (node.title.split('.').length > 1) {\n throw new Error(\"Node title cannot contain a dot: \".concat(node.title));\n }\n\n if (!node.body) {\n throw new Error(\"Node needs a body: \".concat(JSON.stringify(node)));\n }\n\n if (this.yarnNodes[node.title]) {\n throw new Error(\"Duplicate node title: \".concat(node.title));\n }\n\n this.yarnNodes[node.title] = node;\n });\n _parser.default.yy.areDeclarationsHandled = false;\n _parser.default.yy.declarations = {};\n this.handleDeclarations(nodes);\n _parser.default.yy.areDeclarationsHandled = true;\n }\n /**\n * Set a new variable storage object\n * This must simply contain a 'get(name)' and 'set(name, value)' function\n *\n * Calling this function will clear any existing variable's values\n */\n\n\n setVariableStorage(storage) {\n if (typeof storage.set !== 'function' || typeof storage.get !== 'function') {\n throw new Error('Variable Storage object must contain both a \"set\" and \"get\" function');\n }\n\n this.variables = storage;\n }\n /**\n * Scans for <> commands and sets initial variable values\n * @param {any[]} yarn dialogue as string or array\n */\n\n\n handleDeclarations(nodes) {\n const exampleValues = {\n Number: 0,\n String: '',\n Boolean: false\n };\n const allLines = nodes.reduce((acc, node) => {\n const nodeLines = node.body.split(/\\r?\\n+/);\n return [...acc, ...nodeLines];\n }, []);\n const declareLines = allLines.reduce((acc, line) => {\n const match = line.match(/^<>/);\n return match ? [...acc, line] : acc;\n }, []);\n\n if (declareLines.length) {\n _parser.default.parse(declareLines.join('\\n'));\n }\n\n Object.entries(_parser.default.yy.declarations).forEach(_ref => {\n let [variableName, {\n expression,\n explicitType\n }] = _ref;\n const value = this.evaluateExpressionOrLiteral(expression);\n\n if (explicitType && typeof value !== typeof exampleValues[explicitType]) {\n throw new Error(\"Cannot declare value \".concat(value, \" as type \").concat(explicitType, \" for variable \").concat(variableName));\n }\n\n if (!this.variables.get(variableName)) {\n this.variables.set(variableName, value);\n }\n });\n }\n\n registerFunction(name, func) {\n if (typeof func !== 'function') {\n throw new Error('Registered function must be...well...a function');\n }\n\n this.functions[name] = func;\n }\n /**\n * Generator to return each sequential dialog result starting from the given node\n * @param {string} [startNode] - The name of the yarn node to begin at\n */\n\n\n *run(startNode) {\n let jumpTo = startNode;\n\n while (jumpTo) {\n const yarnNode = this.yarnNodes[jumpTo];\n\n if (yarnNode === undefined) {\n throw new Error(\"Node \\\"\".concat(startNode, \"\\\" does not exist\"));\n } // Parse the entire node\n\n\n const parserNodes = Array.from(_parser.default.parse(yarnNode.body));\n\n const metadata = _objectSpread({}, yarnNode);\n\n delete metadata.body;\n const result = yield* this.evalNodes(parserNodes, metadata);\n jumpTo = result && result.jump;\n }\n }\n /**\n * Evaluate a list of parser nodes, yielding the ones that need to be seen by\n * the user. Calls itself recursively if that is required by nested nodes\n * @param {Node[]} nodes\n * @param {YarnNode[]} metadata\n */\n\n\n *evalNodes(nodes, metadata) {\n let shortcutNodes = [];\n let textRun = '';\n const filteredNodes = nodes.filter(Boolean); // Yield the individual user-visible results\n // Need to accumulate all adjacent selectables\n // into one list (hence some of the weirdness here)\n\n for (let nodeIdx = 0; nodeIdx < filteredNodes.length; nodeIdx += 1) {\n const node = filteredNodes[nodeIdx];\n const nextNode = filteredNodes[nodeIdx + 1]; // Text and the output of Inline Expressions\n // are combined to deliver a TextNode.\n\n if (node instanceof nodeTypes.Text || node instanceof nodeTypes.Expression) {\n textRun += this.evaluateExpressionOrLiteral(node).toString();\n\n if (nextNode && node.lineNum === nextNode.lineNum && (nextNode instanceof nodeTypes.Text || nextNode instanceof nodeTypes.Expression)) {// Same line, with another text equivalent to add to the\n // text run further on in the loop, so don't yield.\n } else {\n yield new _results.default.TextResult(textRun, node.hashtags, metadata);\n textRun = '';\n }\n } else if (node instanceof nodeTypes.Shortcut) {\n shortcutNodes.push(node);\n\n if (!(nextNode instanceof nodeTypes.Shortcut)) {\n // Last shortcut in the series, so yield the shortcuts.\n const result = yield* this.handleShortcuts(shortcutNodes, metadata);\n\n if (result && (result.stop || result.jump)) {\n return result;\n }\n\n shortcutNodes = [];\n }\n } else if (node instanceof nodeTypes.Assignment) {\n this.evaluateAssignment(node);\n } else if (node instanceof nodeTypes.Conditional) {\n // Get the results of the conditional\n const evalResult = this.evaluateConditional(node);\n\n if (evalResult) {\n // Run the remaining results\n const result = yield* this.evalNodes(evalResult, metadata);\n\n if (result && (result.stop || result.jump)) {\n return result;\n }\n }\n } else if (node instanceof _nodes.default.JumpCommandNode) {\n // ignore the rest of this outer loop and\n // tell parent loops to ignore following nodes.\n // Recursive call here would cause stack overflow\n return {\n jump: node.destination\n };\n } else if (node instanceof _nodes.default.StopCommandNode) {\n // ignore the rest of this outer loop and\n // tell parent loops to ignore following nodes\n return {\n stop: true\n };\n } else {\n const command = this.evaluateExpressionOrLiteral(node.command);\n yield new _results.default.CommandResult(command, node.hashtags, metadata);\n }\n }\n\n return undefined;\n }\n /**\n * yield a shortcut result then handle the subsequent selection\n * @param {any[]} selections\n */\n\n\n *handleShortcuts(selections, metadata) {\n // Multiple options to choose from (or just a single shortcut)\n // Tag any conditional dialog options that result to false,\n // the consuming app does the actual filtering or whatever\n const transformedSelections = selections.map(s => {\n let isAvailable = true;\n\n if (s.conditionalExpression && !this.evaluateExpressionOrLiteral(s.conditionalExpression)) {\n isAvailable = false;\n }\n\n const text = this.evaluateExpressionOrLiteral(s.text);\n return Object.assign(s, {\n isAvailable,\n text\n });\n });\n const optionsResult = new _results.default.OptionsResult(transformedSelections, metadata);\n yield optionsResult;\n\n if (typeof optionsResult.selected === 'number') {\n const selectedOption = transformedSelections[optionsResult.selected];\n\n if (selectedOption.content) {\n // Recursively go through the nodes nested within\n return yield* this.evalNodes(selectedOption.content, metadata);\n }\n } else {\n throw new Error('No option selected before resuming dialogue');\n }\n\n return undefined;\n }\n /**\n * Evaluates the given assignment node\n */\n\n\n evaluateAssignment(node) {\n const result = this.evaluateExpressionOrLiteral(node.expression);\n const oldValue = this.variables.get(node.variableName);\n\n if (oldValue && typeof oldValue !== typeof result) {\n throw new Error(\"Variable \".concat(node.variableName, \" is already type \").concat(typeof oldValue, \"; cannot set equal to \").concat(result, \" of type \").concat(typeof result));\n }\n\n this.variables.set(node.variableName, result);\n }\n /**\n * Evaluates the given conditional node\n * Returns the statements to be run as a result of it (if any)\n */\n\n\n evaluateConditional(node) {\n if (node.type === 'IfNode') {\n if (this.evaluateExpressionOrLiteral(node.expression)) {\n return node.statement;\n }\n } else if (node.type === 'IfElseNode' || node.type === 'ElseIfNode') {\n if (this.evaluateExpressionOrLiteral(node.expression)) {\n return node.statement;\n }\n\n if (node.elseStatement) {\n return this.evaluateConditional(node.elseStatement);\n }\n } else {\n // ElseNode\n return node.statement;\n }\n\n return null;\n }\n\n evaluateFunctionCall(node) {\n if (this.functions[node.functionName]) {\n return this.functions[node.functionName](...node.args.map(this.evaluateExpressionOrLiteral, this));\n }\n\n throw new Error(\"Function \\\"\".concat(node.functionName, \"\\\" not found\"));\n }\n /**\n * Evaluates an expression or literal down to its final value\n */\n\n\n evaluateExpressionOrLiteral(node) {\n // A combined array of text and inline expressions to be treated as one.\n // Could probably be cleaned up by introducing a new node type.\n if (Array.isArray(node)) {\n return node.reduce((acc, n) => {\n return acc + this.evaluateExpressionOrLiteral(n).toString();\n }, '');\n }\n\n const nodeHandlers = {\n UnaryMinusExpressionNode: a => {\n return -a;\n },\n ArithmeticExpressionAddNode: (a, b) => {\n return a + b;\n },\n ArithmeticExpressionMinusNode: (a, b) => {\n return a - b;\n },\n ArithmeticExpressionExponentNode: (a, b) => {\n return a ** b;\n },\n ArithmeticExpressionMultiplyNode: (a, b) => {\n return a * b;\n },\n ArithmeticExpressionDivideNode: (a, b) => {\n return a / b;\n },\n ArithmeticExpressionModuloNode: (a, b) => {\n return a % b;\n },\n NegatedBooleanExpressionNode: a => {\n return !a;\n },\n BooleanOrExpressionNode: (a, b) => {\n return a || b;\n },\n BooleanAndExpressionNode: (a, b) => {\n return a && b;\n },\n BooleanXorExpressionNode: (a, b) => {\n return !!(a ^ b);\n },\n // eslint-disable-line no-bitwise\n EqualToExpressionNode: (a, b) => {\n return a === b;\n },\n NotEqualToExpressionNode: (a, b) => {\n return a !== b;\n },\n GreaterThanExpressionNode: (a, b) => {\n return a > b;\n },\n GreaterThanOrEqualToExpressionNode: (a, b) => {\n return a >= b;\n },\n LessThanExpressionNode: (a, b) => {\n return a < b;\n },\n LessThanOrEqualToExpressionNode: (a, b) => {\n return a <= b;\n },\n TextNode: a => {\n return a.text;\n },\n EscapedCharacterNode: a => {\n return this.noEscape ? a.text : a.text.slice(1);\n },\n NumericLiteralNode: a => {\n return parseFloat(a.numericLiteral);\n },\n StringLiteralNode: a => {\n return \"\".concat(a.stringLiteral);\n },\n BooleanLiteralNode: a => {\n return a.booleanLiteral === 'true';\n },\n VariableNode: a => {\n return this.variables.get(a.variableName);\n },\n FunctionCallNode: a => {\n return this.evaluateFunctionCall(a);\n },\n InlineExpressionNode: a => {\n return a;\n }\n };\n const handler = nodeHandlers[node.type];\n\n if (!handler) {\n throw new Error(\"node type not recognized: \".concat(node.type));\n }\n\n return handler(node instanceof nodeTypes.Expression ? this.evaluateExpressionOrLiteral(node.expression || node.expression1) : node, node.expression2 ? this.evaluateExpressionOrLiteral(node.expression2) : node);\n }\n\n}\n\nvar _default = {\n Runner,\n TextResult: _results.default.TextResult,\n CommandResult: _results.default.CommandResult,\n OptionsResult: _results.default.OptionsResult\n};\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 352:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _yarnBound = _interopRequireDefault(__webpack_require__(424));\n\nvar _index = _interopRequireDefault(__webpack_require__(167));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst {\n OptionsResult,\n TextResult,\n CommandResult\n} = _index.default;\n_yarnBound.default.OptionsResult = OptionsResult;\n_yarnBound.default.TextResult = TextResult;\n_yarnBound.default.CommandResult = CommandResult;\nvar _default = _yarnBound.default;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 279:\n/***/ ((module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = parseLine;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// mutates node, processing [markup /] and `character:`\nfunction parseLine(node, locale) {\n node.markup = [];\n parseCharacterLabel(node);\n parseMarkup(node, locale);\n node.text = node.text.replace(/(?:\\\\(.))/g, '$1');\n}\n\nfunction parseCharacterLabel(node) {\n const match = node.text.match(/^(\\S+):\\s+/);\n\n if (match) {\n node.text = node.text.replace(match[0], '');\n node.markup.push({\n name: 'character',\n properties: {\n name: match[1]\n }\n });\n }\n}\n\nfunction parseMarkup(node, locale) {\n const attributes = [];\n let noMarkup = false;\n const attributeRegex = /(^|[^\\\\])\\[(.*?[^\\\\])\\](.|$)/;\n let textRemaining = node.text;\n let resultText = '';\n let match = textRemaining.match(attributeRegex);\n\n while (match) {\n const {\n index\n } = match;\n const [wholeMatch, charBefore, contents, charAfter] = match;\n const hasLeadingSpace = /\\s/.test(charBefore);\n const hasTrailingSpace = /\\s/.test(charAfter);\n\n const attribute = _objectSpread(_objectSpread({}, parseAttributeContents(contents, locale)), {}, {\n position: resultText.length + index + charBefore.length\n });\n\n if (!noMarkup || attribute.name === 'nomarkup') {\n const isReplacementTag = attribute.name === 'select' || attribute.name === 'plural' || attribute.name === 'ordinal';\n const shouldTrim = !isReplacementTag && attribute.isSelfClosing && attribute.properties && attribute.properties.trimwhitespace !== false && (index === 0 && hasTrailingSpace || hasLeadingSpace && hasTrailingSpace);\n\n if (attribute.properties) {\n delete attribute.properties.trimwhitespace;\n }\n\n const replacement = charBefore + (attribute.replacement || '') + (shouldTrim ? charAfter.slice(1) : charAfter);\n textRemaining = textRemaining.replace(attributeRegex, replacement); // inner slices are because charAfter could be an opening square bracket\n\n resultText += textRemaining.slice(0, index + replacement.slice(1).length);\n textRemaining = textRemaining.slice(index + replacement.slice(1).length);\n\n if (!isReplacementTag && attribute.name !== 'nomarkup') {\n attributes.push(attribute);\n }\n } else {\n // -1s are because charAfter could be an opening square bracket\n resultText += textRemaining.slice(0, index + wholeMatch.length - 1);\n textRemaining = textRemaining.slice(index + wholeMatch.length - 1);\n }\n\n if (attribute.name === 'nomarkup') {\n noMarkup = !attribute.isClosing;\n }\n\n match = textRemaining.match(attributeRegex);\n }\n\n node.text = resultText + textRemaining; // Escaped bracket support might need some TLC.\n\n const escapedCharacterRegex = /\\\\(\\[|\\])/;\n match = node.text.match(escapedCharacterRegex);\n textRemaining = node.text;\n resultText = '';\n\n while (match) {\n const char = match[1];\n attributes.forEach(attr => {\n if (attr.position > resultText.length + match.index) {\n attr.position -= 1;\n }\n });\n textRemaining = textRemaining.replace(escapedCharacterRegex, char);\n resultText += textRemaining.slice(0, match.index + 1);\n textRemaining = textRemaining.slice(match.index + 1);\n match = textRemaining.match(escapedCharacterRegex);\n }\n\n node.text = resultText + textRemaining;\n const openTagStacks = {};\n attributes.forEach(attr => {\n if (!openTagStacks[attr.name]) {\n openTagStacks[attr.name] = [];\n }\n\n if (attr.isClosing && !openTagStacks[attr.name].length) {\n throw new Error(\"Encountered closing \".concat(attr.name, \" tag before opening tag\"));\n } else if (attr.isClosing) {\n const openTag = openTagStacks[attr.name].pop();\n node.markup.push({\n name: openTag.name,\n position: openTag.position,\n properties: openTag.properties,\n length: attr.position - openTag.position\n });\n } else if (attr.isSelfClosing) {\n node.markup.push({\n name: attr.name,\n position: attr.position,\n properties: attr.properties,\n length: 0\n });\n } else if (attr.isCloseAll) {\n const openTags = Object.values(openTagStacks).flat();\n\n while (openTags.length) {\n const openTag = openTags.pop();\n node.markup.push({\n name: openTag.name,\n position: openTag.position,\n properties: openTag.properties,\n length: attr.position - openTag.position\n });\n }\n } else {\n openTagStacks[attr.name].push({\n name: attr.name,\n position: attr.position,\n properties: attr.properties\n });\n }\n });\n}\n\nfunction parseAttributeContents(contents, locale) {\n const nameMatch = contents.match(/^\\/?([^\\s=/]+)(\\/|\\s|$)/);\n const isClosing = contents[0] === '/';\n const isSelfClosing = contents[contents.length - 1] === '/';\n const isCloseAll = contents === '/';\n\n if (isCloseAll) {\n return {\n name: 'closeall',\n isCloseAll: true\n };\n } else if (isClosing) {\n return {\n name: nameMatch[1],\n isClosing: true\n };\n } else {\n const propertyAssignmentsText = nameMatch ? contents.replace(nameMatch[0], '') : contents;\n const propertyAssignments = propertyAssignmentsText.match(/(\\S+?\".*?\"|[^\\s/]+)/g);\n let properties = {};\n\n if (propertyAssignments) {\n properties = propertyAssignments.reduce((acc, propAss) => {\n return _objectSpread(_objectSpread({}, acc), parsePropertyAssignment(propAss));\n }, {});\n }\n\n const name = nameMatch && nameMatch[1] || Object.keys(properties)[0];\n let replacement;\n\n if (name === 'select') {\n replacement = processSelectAttribute(properties);\n } else if (name === 'plural') {\n replacement = processPluralAttribute(properties, locale);\n } else if (name === 'ordinal') {\n replacement = processOrdinalAttribute(properties, locale);\n }\n\n return {\n name,\n properties,\n isSelfClosing,\n replacement\n };\n }\n}\n\nfunction parsePropertyAssignment(propAss) {\n const [propName, ...rest] = propAss.split('=');\n const stringValue = rest.join('='); // just in case string value had a = in it\n\n if (!propName || !stringValue) {\n throw new Error(\"Invalid markup property assignment: \".concat(propAss));\n }\n\n let value;\n\n if (stringValue === 'true' || stringValue === 'false') {\n value = stringValue === 'true';\n } else if (/^-?\\d*\\.?\\d+$/.test(stringValue)) {\n value = +stringValue;\n } else if (stringValue[0] === '\"' && stringValue[stringValue.length - 1] === '\"') {\n value = stringValue.slice(1, -1);\n } else {\n value = stringValue;\n }\n\n return {\n [propName]: value\n };\n}\n\nfunction processSelectAttribute(properties) {\n return properties[properties.value];\n}\n\nfunction processPluralAttribute(properties, locale) {\n return properties[new Intl.PluralRules(locale).select(properties.value)].replace(/%/g, properties.value);\n}\n\nfunction processOrdinalAttribute(properties, locale) {\n return properties[new Intl.PluralRules(locale, {\n type: 'ordinal'\n }).select(properties.value)].replace(/%/g, properties.value);\n}\n\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 424:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _index = _interopRequireDefault(__webpack_require__(167));\n\nvar _lineParser = _interopRequireDefault(__webpack_require__(279));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nclass YarnBound {\n constructor(_ref) {\n let {\n dialogue,\n variableStorage,\n functions,\n handleCommand,\n combineTextAndOptionsResults,\n locale,\n startAt = 'Start'\n } = _ref;\n this.handleCommand = handleCommand;\n this.combineTextAndOptionsResults = combineTextAndOptionsResults;\n this.bondage = _index.default;\n this.bufferedNode = null;\n this.currentResult = null;\n this.history = [];\n this.locale = locale;\n this.runner = new _index.default.Runner();\n this.runner.noEscape = true;\n this.runner.load(dialogue);\n\n if (variableStorage) {\n variableStorage.display = variableStorage.display || variableStorage.get;\n this.runner.setVariableStorage(variableStorage);\n }\n\n if (functions) {\n Object.entries(functions).forEach(entry => {\n this.registerFunction(...entry);\n });\n }\n\n this.jump(startAt);\n }\n\n jump(startAt) {\n this.generator = this.runner.run(startAt);\n this.bufferedNode = null;\n this.advance();\n }\n\n advance(optionIndex) {\n if (typeof optionIndex !== 'undefined' && this.currentResult && this.currentResult.select) {\n this.currentResult.select(optionIndex);\n }\n\n let next = this.bufferedNode || this.generator.next().value;\n let buffered = null; // We either return the command as normal or, if a handler\n // is supplied, use that and don't bother the consuming app\n\n if (this.handleCommand) {\n while (next instanceof _index.default.CommandResult) {\n this.handleCommand(next);\n next = this.generator.next().value;\n }\n } // Lookahead for combining text + options, and for end of dialogue.\n // Can't look ahead of option nodes (what would you look ahead at?)\n\n\n if (!(next instanceof _index.default.OptionsResult)) {\n const upcoming = this.generator.next();\n buffered = upcoming.value;\n\n if (next instanceof _index.default.TextResult && this.combineTextAndOptionsResults && buffered instanceof _index.default.OptionsResult) {\n next = Object.assign(buffered, next);\n buffered = null;\n } else if (next && upcoming.done) {\n next = Object.assign(next, {\n isDialogueEnd: true\n });\n }\n }\n\n if (this.currentResult) {\n this.history.push(this.currentResult);\n }\n\n if (next instanceof _index.default.TextResult) {\n (0, _lineParser.default)(next, this.locale);\n } else if (next instanceof _index.default.OptionsResult) {\n if (next.text) {\n (0, _lineParser.default)(next, this.locale);\n }\n\n next.options.forEach(option => {\n (0, _lineParser.default)(option, this.locale);\n });\n }\n\n this.currentResult = next;\n this.bufferedNode = buffered;\n }\n\n registerFunction(name, func) {\n this.runner.registerFunction(name, func);\n }\n\n}\n\nexports[\"default\"] = YarnBound;\nmodule.exports = exports.default;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(352);\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});", "// @ts-ignore\nimport YarnBound from 'yarn-bound';\nimport { getCommand } from './commands';\nimport { playerHasItemByName } from './playerHasItemByName';\nimport { splitSpacesExcludeQuotes } from './split-spaces-exclude-quotes';\nimport { YarnNodeType } from './types';\nimport { wrap } from './wrap';\n\n// import { MMO_Core_Player } from '../mmoCore';\n// import { buyHouse } from '../pixelmapHouses';\n\ndeclare global {\n interface Game_System {\n variableStorage: () => Map;\n _variableStorage: Map;\n }\n}\n\nexport function initializeVariableStorage() {\n Game_System.prototype.variableStorage = function () {\n if (!this._variableStorage) {\n this._variableStorage = new Map();\n }\n return this._variableStorage;\n };\n return new Map();\n}\n\nconst MAX_DIALOG_EXHAUSTION = 3;\n\nPluginManager.registerCommand('pixelmapYarnSpinner', 'yarn', invokeYarn);\n\nfunction invokeYarn(this: any, args: any) {\n const callingEventId: number = this._eventId as number;\n return fetch(args['Yarn File Path']).then((response) => {\n if (!response.ok) {\n throw new Error('HTTP error ' + response.status); // Rejects the promise\n }\n const prefix = args['Yarn File Path'].split('.')[0].replace('dialog/', '');\n const startAt = args['Start At'];\n void response.text().then((dialogue) => {\n yarnSpinnerProcesser(prefix, dialogue, startAt, callingEventId).catch((e) => {\n console.error(e);\n });\n });\n });\n}\n\nexport async function yarnSpinnerProcesser(prefix: string, dialogue: string, startAt: string, callingEventId: number) {\n const variableStorage = new VariableStorage(prefix);\n\n // Stardew Mode is heavily opinionated, and based on https://stardewvalleywiki.com/Modding:Dialogue\n if (startAt == 'StardewMode') {\n startAt = getStardewModeNode(variableStorage, dialogue);\n }\n\n const runner = new YarnBound({\n dialogue,\n startAt: startAt,\n functions: {\n random_range: (min: number, max: number) => {\n return Math.floor(Math.random() * (max - min + 1) + min);\n },\n playerHasItem: (value: string) => {\n return playerHasItemByName(value);\n },\n },\n variableStorage: variableStorage,\n });\n\n await processYarnDialog(runner, callingEventId);\n}\n\nfunction getStardewModeNode(variableStorage: VariableStorage, dialogue: string) {\n // Holiday / Special Events\n\n // Process Exhaustion\n let exhaustion: number = variableStorage.getExhaustion();\n if (!exhaustion) {\n exhaustion = 0;\n }\n if (exhaustion >= MAX_DIALOG_EXHAUSTION) {\n return getRandomNodeOfType(YarnNodeType.Exhausted, dialogue);\n }\n variableStorage.set('dialog_exhaustion', exhaustion + 1);\n\n // Have we already met the character?\n const introduced = variableStorage.get('introduced');\n if (!introduced) {\n variableStorage.set('introduced', true);\n return 'Start';\n }\n\n // If nothing else matches, grab one of the Anytime nodes\n return getRandomNodeOfType(YarnNodeType.Anytime, dialogue);\n}\n\nfunction getNodes(dialogue: string) {\n // Create Temporary Runner for lookups\n const tempRunner = new YarnBound({\n dialogue,\n });\n return Object.entries(tempRunner.runner.yarnNodes);\n}\n\nfunction getRandomNodeOfType(type: YarnNodeType, dialogue: string) {\n const nodes = getNodes(dialogue);\n const filtered = nodes.filter((node) => {\n return node[0].includes(type);\n });\n return filtered[Math.floor(Math.random() * filtered.length)][0];\n}\n\n/**\n * Updates the character's face image within gameMessage if available.\n * @param currentResult\n */\nfunction updateCharacterPortrait(currentResult: any) {\n const character = currentResult.markup.find((markup: { name: string }) => {\n return markup.name === 'character';\n });\n if (character) {\n $gameMessage.setFaceImage(character.properties.name.toLowerCase(), 0);\n }\n}\n\nfunction addFormattedGameMessage(currentResult: any) {\n if (currentResult.text.trim().length > 0) {\n let text = currentResult.text;\n\n // Add Special Color\n const special = currentResult.markup.find((markup: { name: string }) => {\n return markup.name === 'special';\n });\n if (special) {\n text =\n currentResult.text.slice(0, special.position) +\n '\\\\C[1]' +\n currentResult.text.slice(special.position, special.position + special.length) +\n '\\\\C[0]' +\n currentResult.text.slice(special.position + special.length);\n }\n $gameMessage.add(wrap(text, { width: 58 }));\n }\n}\n\nasync function processYarnDialog(runner: YarnBound, callingEventId: number) {\n const currentResult = runner.currentResult;\n switch (currentResult.constructor) {\n case YarnBound.TextResult:\n updateCharacterPortrait(currentResult);\n addFormattedGameMessage(currentResult);\n\n if (!currentResult.isDialogueEnd) {\n if (currentResult.text.trim().length > 0) {\n // $gameMessage.newPage();\n }\n runner.advance();\n await processYarnDialog(runner, callingEventId);\n }\n break;\n case YarnBound.OptionsResult:\n const choices = []; // Because some choices may NOT be available, the index within the choices array does\n const choiceIndexMap = {}; // not always match the index in yarn. Because of that, we store the position\n let arrayIndex = 0; // of each option in BOTH arrays within a dictionary, so we can reference them in\n let yarnIndex = 0; // the callback.\n for (const option of currentResult.options) {\n if (option.isAvailable) {\n // @ts-ignore\n choices.push(option.text);\n // @ts-ignore\n choiceIndexMap[arrayIndex] = yarnIndex;\n arrayIndex = arrayIndex + 1;\n }\n yarnIndex = yarnIndex + 1;\n }\n\n $gameMessage.setChoices(choices, 0, 0);\n\n $gameMessage.setChoiceCallback(async (responseIndex) => {\n // @ts-ignore\n runner.advance(choiceIndexMap[responseIndex]);\n await processYarnDialog(runner, callingEventId);\n });\n break;\n case YarnBound.CommandResult:\n await commandHandler(currentResult, callingEventId);\n if (!currentResult.isDialogueEnd) {\n runner.advance();\n await processYarnDialog(runner, callingEventId);\n }\n break;\n default:\n break;\n }\n}\n\nasync function commandHandler(cmdResult: YarnBound.CommandResult, callingEventId: number) {\n // This matcher splits by spaces, but ignores spaces within quotes\n const splitCmd = splitSpacesExcludeQuotes(cmdResult.command);\n\n const cmd = splitCmd[0];\n await getCommand(cmd, splitCmd.slice(1), callingEventId);\n\n // break;\n // case 'FadeToBlackAndBack':\n // if (splitCmd.length == 2) {\n // // @ts-ignore\n // SceneManager._scene._active = false;\n // $gameScreen.startFadeOut(30);\n // await new Promise((r) => setTimeout(r, parseInt(splitCmd[1])));\n // $gameScreen.startFadeIn(30);\n // // @ts-ignore\n // SceneManager._scene._active = true;\n // } else {\n // console.log('Invalid argument number passed into FadeToBlackAndBack!');\n // }\n // break;\n\n // break;\n // // case 'BuyHouse':\n // // if (splitCmd.length == 1) {\n // // buyHouse();\n // // } else {\n // // console.log('Invalid argument number passed into PlaySound!');\n // // }\n // // break;\n // default:\n // console.log('No support yet for command: ' + cmd);\n // }\n}\n\nclass VariableStorage {\n storage: Map;\n prefix: string;\n\n constructor(prefix: string) {\n // this.storage = MMO_Core_Player.mmoVariableStorage as Map;\n this.storage = new Map();\n this.prefix = prefix;\n }\n\n getExhaustion() {\n return this.storage.get(this.prefix + '_dialog_exhaustion') as number;\n }\n\n get(key: string) {\n if (key.startsWith('dynamic_')) {\n return getDynamicValue(key.replace('dynamic_', ''));\n }\n const retrievalKey = key.startsWith('global_') ? key : this.prefix + '_' + key;\n return this.storage.get(retrievalKey);\n }\n\n set(key: string, value: any) {\n const retrievalKey = key.startsWith('global_') ? key : this.prefix + '_' + key;\n this.storage.set(retrievalKey, value);\n }\n}\n\nfunction getDynamicValue(variableName: string): any {\n console.log(variableName);\n return true;\n // switch (variableName) {\n // case 'playerOwnsTile':\n // return true;\n // // return MMO_Core_Player.playerOwnsNFT('0x050dc61dfb867e0fe3cf2948362b6c0f3faf790b');\n // case 'playerOwnsHouse':\n // return true;\n // // return !!MMO_Core_Player.Player.house;\n // }\n}\n\n// MonkeyPatch by Hudell, without this, it's impossible to call messages AFTER a choice callback\n// https://forums.rpgmakerweb.com/index.php?threads/script-works-but-not-in-a-conditional-explanation-please.71461/\nWindow_ChoiceList.prototype.callOkHandler = function () {\n const callback = $gameMessage._choiceCallback;\n const index = this.index();\n\n // @ts-ignore\n this._messageWindow.terminateMessage();\n this.close();\n\n if (callback) {\n callback(index);\n }\n};\n\nWindow_ChoiceList.prototype.callCancelHandler = function () {\n const callback = $gameMessage._choiceCallback;\n const index = $gameMessage.choiceCancelType();\n\n // @ts-ignore\n this._messageWindow.terminateMessage();\n this.close();\n\n if (callback) {\n callback(index);\n }\n};\n", "export function addGold(args: Array) {\n if (args.length != 1) {\n throw new Error('Invalid number of arguments');\n }\n $gameParty.gainGold(parseInt(args[0]));\n}\n", "export function getItemIdFromName(itemName: string): number {\n for (const item of $dataItems) {\n if (item && item.name === itemName) {\n return item.id;\n }\n }\n throw 'Item could not be found by name';\n}\n\nexport function getEventIdByName(name: string): number {\n for (const event of $dataMap.events) {\n if (event?.name == name) {\n return event.id;\n }\n }\n throw new Error('Could not locate an event with name: ' + name);\n}\n", "import { getItemIdFromName } from './utils';\n\nexport function addItem(args: Array) {\n if (args.length != 2) {\n throw new Error('Invalid number of arguments');\n }\n $gameParty.gainItem($dataItems[getItemIdFromName(args[0])], parseInt(args[1]), false);\n}\n", "export function fadeIn(args: Array) {\n if (args.length > 1) {\n throw new Error('Invalid number of arguments');\n }\n const [duration = 24] = args;\n $gameScreen.startTint([0, 0, 0, 0], duration);\n $gameScreen.startFadeIn(duration);\n}\n", "export function fadeOut(args: Array) {\n if (args.length > 6) {\n throw new Error('Invalid number of arguments');\n }\n const [duration = 24, red = 0, green = 0, blue = 0, grey = 0, alpha = 1] = args;\n\n if (args.length <= 1) {\n $gameScreen.startFadeOut(duration);\n } else {\n $gameScreen.startTint([red * alpha, green * alpha, blue * alpha, grey * alpha], duration);\n }\n}\n", "import { getEventIdByName } from './utils';\n\nexport function hideEntity(args: Array, _callingEventId: number) {\n // Input Validation\n if (args.length > 1) {\n throw new Error('Invalid number of arguments');\n }\n\n // If no entity passed in, default to the entity that called hideEntity\n const targetEventId = getEventIdByName(args[0]) ?? _callingEventId;\n const gameEvent = $gameMap.event(targetEventId);\n\n gameEvent.setOpacity(0);\n}\n", "export enum DIRECTION {\n UP = 8,\n DOWN = 2,\n LEFT = 4,\n RIGHT = 6,\n}\n", "import { DIRECTION } from './enums';\nimport { getEventIdByName } from './utils';\n\n/**\n * Move an event\n * @example <>\n */\nexport function moveEvent(args: Array, _callingEventId: number) {\n if (args.length < 3 || args.length > 4) {\n throw new Error('Invalid number of arguments');\n }\n\n const [directionName, distanceAsStr, speed, eventName = null] = args;\n const targetEventId = eventName ? getEventIdByName(eventName) : _callingEventId;\n const event = $gameMap._events[targetEventId];\n\n const distance = parseInt(distanceAsStr);\n const direction: DIRECTION = DIRECTION[directionName.toUpperCase() as keyof typeof DIRECTION];\n\n // Force through other events, otherwise it's really inconsistent\n event.setThrough(true);\n\n if (event.isMoving()) {\n setTimeout(() => {\n moveEvent(args, _callingEventId);\n }, 60);\n } else {\n event.moveStraight(direction);\n const distanceRemaining = distance - 1;\n setTimeout(() => {\n event.setThrough(false);\n if (distanceRemaining > 0) {\n moveEvent([args[0], distanceRemaining.toString(), speed, args[3]], _callingEventId);\n }\n }, 60);\n }\n}\n", "export function playMusic(args: Array) {\n if (args.length < 1 || args.length > 2) {\n throw new Error('Invalid number of arguments');\n }\n\n const musicName = args[0];\n const volume = args[1] ? parseInt(args[1]) : 100;\n\n AudioManager.playBgm({\n name: musicName,\n pos: 0,\n pan: 0,\n pitch: 100,\n volume: volume,\n });\n}\n", "export function playSound(args: Array) {\n if (args.length != 2) {\n throw new Error('Invalid number of arguments');\n }\n\n const soundName = args[0];\n const volume = parseInt(args[1]);\n\n AudioManager.playSe({\n name: soundName,\n pan: 0,\n pitch: 100,\n volume: volume,\n pos: 0,\n });\n}\n", "export function removeGold(args: Array) {\n if (args.length != 1) {\n throw new Error('Invalid number of arguments');\n }\n $gameParty.loseGold(parseInt(args[0]));\n}\n", "import { getItemIdFromName } from './utils';\n\nexport function removeItem(args: Array) {\n if (args.length != 2) {\n throw new Error('Invalid number of arguments');\n }\n $gameParty.loseItem($dataItems[getItemIdFromName(args[0])], parseInt(args[1]), false);\n}\n", "/**\n * Sets the background of the message window; options are 0 (fully opaque), 1 (transparent), 2 (invisible background). The default is 0.\n * @param args\n */\nexport function setBackground(args: Array) {\n if (args.length != 1) {\n throw new Error('Invalid number of arguments');\n }\n const opacity = parseInt(args[0]);\n if (opacity < 0 || opacity > 2) {\n throw new Error('Invalid opacity level, must be between 0 and two');\n }\n\n $gameMessage.setBackground(opacity);\n}\n", "import { DIRECTION } from './enums';\nimport { getEventIdByName } from './utils';\n\nexport function setFacing(args: Array, _callingEventId: number) {\n if (args.length < 1 || args.length > 2) {\n throw new Error('Invalid number of arguments');\n }\n const targetEventId = args[1] ? getEventIdByName(args[1]) : _callingEventId;\n const direction: DIRECTION = DIRECTION[args[0].toUpperCase() as keyof typeof DIRECTION];\n $gameMap._events[targetEventId].setDirection(direction);\n}\n", "import { getEventIdByName } from './utils';\n\nexport function showEntity(args: Array) {\n if (args.length > 2) {\n throw new Error('Invalid number of arguments');\n }\n\n let opacity = 1;\n if (args.length > 1) {\n opacity = parseFloat(args[1]);\n }\n const gameEvent = $gameMap.event(getEventIdByName(args[0]));\n\n if (opacity > 1) {\n throw new Error('Opacity greater than 1, please use a value between 0 and 1');\n }\n if (opacity < 0) {\n throw new Error('Opacity less than 0, please use a value between 0 and 1');\n }\n\n const opacityInHexFormat = opacity * 255; // 255 is fully opaque\n gameEvent.setOpacity(opacityInHexFormat);\n}\n", "export async function wait(args: Array) {\n if (args.length > 1) {\n throw new Error('Invalid number of arguments');\n }\n await new Promise((r) => setTimeout(r, parseInt(args[0])));\n}\n", "export function flashScreen(args: Array) {\n if (args.length > 6) {\n throw new Error('Invalid number of arguments');\n }\n const [duration = 8, red = 0, green = 0, blue = 0, intensity = 255] = args;\n $gameScreen.startFlash([red, green, blue, intensity], duration);\n}\n", "import { addGold } from './addGold';\nimport { addItem } from './addItem';\nimport { fadeIn } from './fadeIn';\nimport { fadeOut } from './fadeOut';\nimport { hideEntity } from './hideEntity';\nimport { moveEvent } from './moveEvent';\nimport { playMusic } from './playMusic';\nimport { playSound } from './playSound';\nimport { removeGold } from './removeGold';\nimport { removeItem } from './removeItem';\nimport { setBackground } from './setBackground';\nimport { setFacing } from './setFacing';\nimport { showEntity } from './showEntity';\nimport { wait } from './wait';\nimport { flashScreen } from './flashScreen';\n\nexport const commands = {\n AddItem: addItem,\n AddGold: addGold,\n FadeOut: fadeOut,\n FadeIn: fadeIn,\n FlashScreen: flashScreen,\n HideEntity: hideEntity,\n MoveEvent: moveEvent,\n PlayMusic: playMusic,\n PlaySound: playSound,\n RemoveItem: removeItem,\n RemoveGold: removeGold,\n SetFacing: setFacing,\n ShowEntity: showEntity,\n Wait: wait,\n SetBackground: setBackground,\n};\n\nexport function getCommand(command: keyof typeof commands, args: any, callingEventId: number) {\n if (commands[command]) {\n return commands[command](args, callingEventId) as unknown as Function;\n }\n throw new Error('Invalid command');\n}\n", "export function playerHasItemByName(itemName: string) {\n for (const item of $dataItems) {\n if (item && item.name === itemName) {\n return $gameParty.hasItem(item, true);\n }\n }\n return false;\n}\n", "/**\n * Splits a string on each space, unless the space is within a pair of quotes.\n * @param input\n */\nexport function splitSpacesExcludeQuotes(input: string) {\n const matches = input.match(/\\\\?.|^$/g);\n if (matches) {\n // @ts-ignore\n return matches.reduce(\n (p: { quote: number; a: any[] }, c: string) => {\n if (c === '\"') {\n // eslint-disable-next-line no-bitwise\n p.quote ^= 1;\n } else if (!p.quote && c === ' ') {\n p.a.push('');\n } else {\n p.a[p.a.length - 1] += c.replace(/\\\\(.)/, '$1');\n }\n return p;\n },\n { a: [''] },\n // @ts-ignore\n ).a;\n }\n}\n", "export function wrap(\n str: string,\n options: {\n trim?: boolean;\n cut?: boolean;\n escape?: string;\n newline?: string;\n width?: number;\n indent?: string;\n },\n) {\n options = options || {};\n if (str == null) {\n return str;\n }\n const width = options.width || 50;\n const indent = typeof options.indent === 'string' ? options.indent : '';\n const newline = options.newline || '\\n' + indent;\n const escape = typeof options.escape === 'function' ? options.escape : identity;\n let regexString = '.{1,' + width + '}';\n if (!options.cut) {\n regexString += '([\\\\s\\u200B]+|$)|[^\\\\s\\u200B]+?([\\\\s\\u200B]+|$)';\n }\n const re = new RegExp(regexString, 'g');\n const lines = str.match(re) || [];\n let result =\n indent +\n lines\n .map(function (line) {\n if (line.slice(-1) === '\\n') {\n line = line.slice(0, line.length - 1);\n }\n return escape(line);\n })\n .join(newline);\n if (options.trim) {\n result = result.replace(/[ \\t]*$/gm, '');\n }\n return result;\n}\n\nfunction identity(str: string) {\n return str;\n}\n"], - "mappings": "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AI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN;AAAA,gBACA,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,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D,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBAC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", - "names": ["module", "exports", "__webpack_require__", "o", "lex", "YarnBound", "DIRECTION", "YarnBound"] + "sources": ["../../node_modules/yarn-bound/dist/yarn-bound.js", "../../src/index.ts", "../../src/commands/addGold.ts", "../../src/commands/utils.ts", "../../src/commands/addItem.ts", "../../src/commands/fadeIn.ts", "../../src/commands/fadeOut.ts", "../../src/commands/flashScreen.ts", "../../src/commands/hideEntity.ts", "../../src/commands/enums.ts", "../../src/commands/moveEvent.ts", "../../src/commands/playMusic.ts", "../../src/commands/playSound.ts", "../../src/commands/removeGold.ts", "../../src/commands/removeItem.ts", "../../src/commands/setBackground.ts", "../../src/commands/setFacing.ts", "../../src/commands/showEntity.ts", "../../src/commands/wait.ts", "../../src/commands/index.ts", "../../src/playerHasItemByName.ts", "../../src/functions/hasItem.ts", "../../src/functions/randomRange.ts", "../../src/functions/index.ts", "../../src/split-spaces-exclude-quotes.ts", "../../src/wrap.ts"], + "sourcesContent": ["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"YarnBound\"] = factory();\n\telse\n\t\troot[\"YarnBound\"] = factory();\n})(this, function() {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 144:\n/***/ ((module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = convertYarnToJS;\n\n/* eslint-disable */\n\n/*\nYoinked from YarnEditor source and modified to limit size and scope:\n\nhttps://github.com/YarnSpinnerTool/YarnEditor/blob/master/src/js/classes/data.js\n\nIncluding as a dependency would be large and subject to breakage, so we adapt it instead.\n\nI guess this counts as a \"substantial portion\" (?), so:\n\n--------------\n\n\nCopyright (c) 2015 Infinite Ammo Inc. and Yarn Contributors\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n/* eslint-enable */\nfunction convertYarnToJS(content) {\n const objects = [];\n const lines = content.split(/\\r?\\n+/).filter(line => {\n return !line.match(/^\\s*$/);\n });\n let obj = null;\n let readingBody = false;\n let filetags; // per-node, we will uniformly strip leading space\n // which can result from constructing dialogues\n // using template strings.\n\n let leadingSpace = '';\n let i = 0;\n\n while (lines[i].trim()[0] === '#') {\n if (!filetags) filetags = [];\n filetags.push(lines[i].trim().substr(1));\n i += 1;\n }\n\n for (; i < lines.length; i += 1) {\n if (lines[i].trim() === '===') {\n readingBody = false;\n if (filetags) obj.filetags = filetags;\n objects.push(obj);\n obj = null;\n } else if (readingBody) {\n obj.body += \"\".concat(lines[i].replace(leadingSpace, ''), \"\\n\");\n } else if (lines[i].trim() === '---') {\n readingBody = true;\n obj.body = '';\n leadingSpace = lines[i].match(/^\\s*/)[0];\n } else if (lines[i].indexOf(':') > -1) {\n const [key, value] = lines[i].split(':');\n const trimmedKey = key.trim();\n const trimmedValue = value.trim();\n\n if (trimmedKey !== 'body') {\n if (obj == null) obj = {};\n\n if (obj[trimmedKey]) {\n throw new Error(\"Duplicate tag on node: \".concat(trimmedKey));\n }\n\n obj[trimmedKey] = trimmedValue;\n }\n }\n }\n\n return objects;\n}\n\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 131:\n/***/ ((module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nclass DefaultVariableStorage {\n constructor() {\n this.data = {};\n }\n\n set(name, value) {\n this.data[name] = value;\n } // Called when a variable is being evaluated.\n\n\n get(name) {\n return this.data[name];\n }\n\n}\n\nvar _default = DefaultVariableStorage;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 167:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _runner = _interopRequireDefault(__webpack_require__(159));\n\nvar _results = _interopRequireDefault(__webpack_require__(34));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_runner.default.OptionsResult = _results.default.OptionsResult;\n_runner.default.TextResult = _results.default.TextResult;\n_runner.default.CommandResult = _results.default.CommandResult;\nvar _default = _runner.default;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 367:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _tokens = _interopRequireDefault(__webpack_require__(197));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * A LexState object represents one of the states in which the lexer can be.\n */\nclass LexerState {\n constructor() {\n /** A list of transition for the given state. */\n this.transitions = [];\n /** A special, unique transition for matching spans of text in any state. */\n\n this.textRule = null;\n /**\n * Whether or not this state is context-bound by indentation\n * (will make the lexer emit Indent and Dedent tokens).\n */\n\n this.isTrackingNextIndentation = false;\n }\n /**\n * addTransition - Define a new transition for this state.\n *\n * @param {type} token - the token to match\n * @param {string} [state] - the state to which transition; if not provided, will\n * remain in the same state.\n * @param {boolean} [delimitsText] - `true` if the token is a text delimiter. A text delimiters\n * is a token which should be considered as a token, even if it\n * doesn't start the line.\n * @return {Object} - returns the LexState itself for chaining.\n */\n\n\n addTransition(token, state, delimitsText) {\n this.transitions.push({\n token: token,\n regex: _tokens.default[token],\n state: state || null,\n delimitsText: delimitsText || false\n });\n return this; // Return this for chaining\n }\n /**\n * addTextRule - Match all the way up to any of the other transitions in this state.\n * The text rule can only be added once.\n *\n * @param {type} type description\n * @param {type} state description\n * @return {Object} - returns the LexState itself for chaining.\n */\n\n\n addTextRule(type, state) {\n if (this.textRule) {\n throw new Error('Cannot add more than one text rule to a state.');\n } // Go through the regex of the other transitions in this state, and create a regex that will\n // match all text, up to any of those transitions.\n\n\n const rules = [];\n this.transitions.forEach(transition => {\n if (transition.delimitsText) {\n // Surround the rule in parens\n rules.push(\"(\".concat(transition.regex.source, \")\"));\n }\n }); // Join the rules that we got above on a |, then put them all into a negative lookahead.\n\n const textPattern = \"((?!\".concat(rules.join('|'), \").)+\");\n this.addTransition(type, state); // Update the regex in the transition we just added to our new one.\n\n this.textRule = this.transitions[this.transitions.length - 1];\n this.textRule.regex = new RegExp(textPattern);\n return this;\n }\n /**\n * setTrackNextIndentation - tell this state whether to track indentation.\n *\n * @param {boolean} track - `true` to track, `false` otherwise.\n * @return {Object} - returns the LexState itself for chaining.\n */\n\n\n setTrackNextIndentation(track) {\n this.isTrackingNextIndentation = track;\n return this;\n }\n\n}\n\nvar _default = LexerState;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 525:\n/***/ ((module, exports, __webpack_require__) => {\n\n // Syncs with YarnSpinner@e0f6807,\n// see https://github.com/thesecretlab/YarnSpinner/blob/master/YarnSpinner/Lexer.cs\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _states = _interopRequireDefault(__webpack_require__(404));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// As opposed to the original C# implemntation which, tokenize the entire input, before emiting\n// a list of tokens, this parser will emit a token each time `lex()` is called. This change\n// accomodates the Jison parser. Given the lexer is not entirely context-free\n// (Off-side rule, lookaheads), context needs to be remembered between each `lex()` calls.\nclass Lexer {\n constructor() {\n /** All the possible states for the lexer. */\n this.states = _states.default.makeStates();\n /** Current state identifier. */\n\n this.state = 'base';\n /** Original text to lex. */\n\n this.originalText = '';\n /** Text to lex, splitted into an array of lines. */\n\n this.lines = []; // Properties used to keep track of the context we're in, while tokenizing each line.\n\n /**\n * Indentation tracker. Each time we encounter an identation, we push a\n * new array which looks like: [indentationLevel, isBaseIndentation]. Basically,\n * isBaseIndentation will be true only for the first level.\n */\n\n this.indentation = [[0, false]];\n /**\n * Set to true when a state required indentation tracking. Will be set to false, after a\n * an indentation is found.\n */\n\n this.shouldTrackNextIndentation = false;\n /**\n * The previous level of identation, basically: this.indentation.last()[0].\n */\n\n this.previousLevelOfIndentation = 0; // Reset the locations.\n\n this.reset();\n }\n /**\n * reset - Reset the lexer location, text and line number. Nothing fancy.\n */\n\n\n reset() {\n // Locations, used by both the lexer and the Jison parser.\n this.yytext = '';\n this.yylloc = {\n first_column: 1,\n first_line: 1,\n last_column: 1,\n last_line: 1\n };\n this.yylineno = 1;\n }\n /**\n * lex - Lex the input and emit the next matched token.\n *\n * @return {string} Emit the next token found.\n */\n\n\n lex() {\n if (this.isAtTheEndOfText()) {\n this.yytext = ''; // Now that we're at the end of the text, we'll emit as many\n // `Dedent` as necessary, to get back to 0-indentation.\n\n const indent = this.indentation.pop();\n\n if (indent && indent[1]) {\n return 'Dedent';\n }\n\n return 'EndOfInput';\n }\n\n if (this.isAtTheEndOfLine()) {\n // Get the next token on the current line\n this.advanceLine();\n return 'EndOfLine';\n }\n\n return this.lexNextTokenOnCurrentLine();\n }\n\n advanceLine() {\n this.yylineno += 1;\n const currentLine = this.getCurrentLine().replace(/\\t/, ' ');\n this.lines[this.yylineno - 1] = currentLine;\n this.previousLevelOfIndentation = this.getLastRecordedIndentation()[0];\n this.yytext = '';\n this.yylloc = {\n first_column: 1,\n first_line: this.yylineno,\n last_column: 1,\n last_line: this.yylineno\n };\n }\n\n lexNextTokenOnCurrentLine() {\n const thisIndentation = this.getCurrentLineIndentation();\n\n if (this.shouldTrackNextIndentation && thisIndentation > this.previousLevelOfIndentation) {\n this.indentation.push([thisIndentation, true]);\n this.shouldTrackNextIndentation = false;\n this.yylloc.first_column = this.yylloc.last_column;\n this.yylloc.last_column += thisIndentation;\n this.yytext = '';\n return 'Indent';\n } else if (thisIndentation < this.getLastRecordedIndentation()[0]) {\n const indent = this.indentation.pop();\n\n if (indent[1]) {\n this.yytext = '';\n this.previousLevelOfIndentation = this.getLastRecordedIndentation()[0];\n return 'Dedent';\n }\n\n this.lexNextTokenOnCurrentLine();\n }\n\n if (thisIndentation === this.previousLevelOfIndentation && this.yylloc.last_column === 1) {\n this.yylloc.last_column += thisIndentation;\n }\n\n const rules = this.getState().transitions;\n\n for (let i = 0, len = rules.length; i < len; i += 1) {\n const rule = rules[i];\n const match = this.getCurrentLine().substring(this.yylloc.last_column - 1).match(rule.regex); // Only accept valid matches that are at the beginning of the text\n\n if (match !== null && match.index === 0) {\n // Take the matched text off the front of this.text\n const matchedText = match[0]; // Tell the parser what the text for this token is\n\n this.yytext = this.getCurrentLine().substr(this.yylloc.last_column - 1, matchedText.length);\n\n if (rule.token === 'String') {\n // If that's a String, remove the quotes\n this.yytext = this.yytext.substring(1, this.yytext.length - 1);\n } // Update our line and column info\n\n\n this.yylloc.first_column = this.yylloc.last_column;\n this.yylloc.last_column += matchedText.length; // If the rule points to a new state, change it now\n\n if (rule.state) {\n this.setState(rule.state);\n\n if (this.shouldTrackNextIndentation) {\n if (this.getLastRecordedIndentation()[0] < thisIndentation) {\n this.indentation.push([thisIndentation, false]);\n }\n }\n }\n\n const nextState = this.states[rule.state];\n const nextStateHasText = !rule.state || nextState.transitions.find(transition => {\n return transition.token === 'Text';\n }); // inline expressions and escaped characters interrupt text\n // but should still preserve surrounding whitespace.\n\n if (rule.token !== 'EndInlineExp' && rule.token !== 'EscapedCharacter' || !nextStateHasText // we never want leading whitespace if not in text-supporting state\n ) {\n // Remove leading whitespace characters\n const spaceMatch = this.getCurrentLine().substring(this.yylloc.last_column - 1).match(/^\\s*/);\n\n if (spaceMatch[0]) {\n this.yylloc.last_column += spaceMatch[0].length;\n }\n }\n\n return rule.token;\n }\n }\n\n throw new Error(\"Invalid syntax in: \".concat(this.getCurrentLine()));\n } // /////////////// Getters & Setters\n\n /**\n * setState - set the current state of the lexer.\n *\n * @param {string} state name of the state\n */\n\n\n setState(state) {\n if (this.states[state] === undefined) {\n throw new Error(\"Cannot set the unknown state [\".concat(state, \"]\"));\n }\n\n this.state = state;\n\n if (this.getState().isTrackingNextIndentation) {\n this.shouldTrackNextIndentation = true;\n }\n }\n /**\n * setInput - Set the text on which perform lexical analysis.\n *\n * @param {string} text the text to lex.\n */\n\n\n setInput(text) {\n // Delete carriage return while keeping a similar semantic.\n this.originalText = text.replace(/(\\r\\n)/g, '\\n').replace(/\\r/g, '\\n').replace(/[\\n\\r]+$/, ''); // Transform the input into an array of lines.\n\n this.lines = this.originalText.split('\\n');\n this.reset();\n }\n /**\n * getState - Returns the full current state object (LexerState),\n * rather than its identifier.\n *\n * @return {Object} the state object.\n */\n\n\n getState() {\n return this.states[this.state];\n }\n\n getCurrentLine() {\n return this.lines[this.yylineno - 1];\n }\n\n getCurrentLineIndentation() {\n const match = this.getCurrentLine().match(/^(\\s*)/g);\n return match[0].length;\n }\n\n getLastRecordedIndentation() {\n if (this.indentation.length === 0) {\n return [0, false];\n }\n\n return this.indentation[this.indentation.length - 1];\n } // /////////////// Booleans tests\n\n /**\n * @return {boolean} `true` when yylloc indicates that the end was reached.\n */\n\n\n isAtTheEndOfText() {\n return this.isAtTheEndOfLine() && this.yylloc.first_line >= this.lines.length;\n }\n /**\n * @return {boolean} `true` when yylloc indicates that the end of the line was reached.\n */\n\n\n isAtTheEndOfLine() {\n return this.yylloc.last_column > this.getCurrentLine().length;\n }\n\n}\n\nvar _default = Lexer;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 404:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _lexerState = _interopRequireDefault(__webpack_require__(367));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/**\n * @return {Object} all states in which the lexer can be with their associated transitions.\n */\nfunction makeStates() {\n return {\n base: new _lexerState.default().addTransition('EscapedCharacter', null, true).addTransition('Comment', null, true).addTransition('Hashtag', null, true).addTransition('BeginCommand', 'command', true).addTransition('BeginInlineExp', 'inlineExpression', true).addTransition('ShortcutOption', 'shortcutOption').addTextRule('Text'),\n shortcutOption: new _lexerState.default().setTrackNextIndentation(true).addTransition('EscapedCharacter', null, true).addTransition('Comment', null, true).addTransition('Hashtag', null, true).addTransition('BeginCommand', 'expression', true).addTransition('BeginInlineExp', 'inlineExpressionInShortcut', true).addTextRule('Text', 'base'),\n command: new _lexerState.default().addTransition('If', 'expression').addTransition('Else').addTransition('ElseIf', 'expression').addTransition('EndIf').addTransition('Set', 'assignment').addTransition('Declare', 'declare').addTransition('Jump', 'jump').addTransition('Stop', 'stop').addTransition('BeginInlineExp', 'inlineExpressionInCommand', true).addTransition('EndCommand', 'base', true).addTextRule('Text'),\n commandArg: new _lexerState.default().addTextRule('Text'),\n commandParenArgOrExpression: new _lexerState.default().addTransition('EndCommand', 'base', true).addTransition('LeftParen', 'expression').addTransition('Variable', 'expression').addTransition('Number', 'expression').addTransition('String').addTransition('True').addTransition('False').addTransition('Null').addTransition('RightParen'),\n assignment: new _lexerState.default().addTransition('Variable').addTransition('EqualToOrAssign', 'expression'),\n declare: new _lexerState.default().addTransition('Variable').addTransition('EndCommand', 'base').addTransition('EqualToOrAssign', 'expression'),\n jump: new _lexerState.default().addTransition('Identifier').addTransition('BeginInlineExp', 'inlineExpressionInCommand', true).addTransition('EndCommand', 'base', true),\n stop: new _lexerState.default().addTransition('EndCommand', 'base', true),\n expression: new _lexerState.default().addTransition('As').addTransition('ExplicitType').addTransition('EndCommand', 'base').addTransition('Number').addTransition('String').addTransition('LeftParen').addTransition('RightParen').addTransition('EqualTo').addTransition('EqualToOrAssign').addTransition('NotEqualTo').addTransition('GreaterThanOrEqualTo').addTransition('GreaterThan').addTransition('LessThanOrEqualTo').addTransition('LessThan').addTransition('Add').addTransition('UnaryMinus').addTransition('Minus').addTransition('Exponent').addTransition('Multiply').addTransition('Divide').addTransition('Modulo').addTransition('And').addTransition('Or').addTransition('Xor').addTransition('Not').addTransition('Variable').addTransition('Comma').addTransition('True').addTransition('False').addTransition('Null').addTransition('Identifier').addTextRule(),\n inlineExpression: new _lexerState.default().addTransition('EndInlineExp', 'base').addTransition('Number').addTransition('String').addTransition('LeftParen').addTransition('RightParen').addTransition('EqualTo').addTransition('EqualToOrAssign').addTransition('NotEqualTo').addTransition('GreaterThanOrEqualTo').addTransition('GreaterThan').addTransition('LessThanOrEqualTo').addTransition('LessThan').addTransition('Add').addTransition('UnaryMinus').addTransition('Minus').addTransition('Exponent').addTransition('Multiply').addTransition('Divide').addTransition('Modulo').addTransition('And').addTransition('Or').addTransition('Xor').addTransition('Not').addTransition('Variable').addTransition('Comma').addTransition('True').addTransition('False').addTransition('Null').addTransition('Identifier').addTextRule('Text', 'base'),\n // TODO: Copied from above\n // There has to be a non-stupid way to do this, right?\n // I'm just not familiar enough yet to know how to\n // transition from inline expression back to base OR command\n // states depending on how we got there\n inlineExpressionInCommand: new _lexerState.default().addTransition('EndInlineExp', 'command').addTransition('Number').addTransition('String').addTransition('LeftParen').addTransition('RightParen').addTransition('EqualTo').addTransition('EqualToOrAssign').addTransition('NotEqualTo').addTransition('GreaterThanOrEqualTo').addTransition('GreaterThan').addTransition('LessThanOrEqualTo').addTransition('LessThan').addTransition('Add').addTransition('UnaryMinus').addTransition('Minus').addTransition('Exponent').addTransition('Multiply').addTransition('Divide').addTransition('Modulo').addTransition('And').addTransition('Or').addTransition('Xor').addTransition('Not').addTransition('Variable').addTransition('Comma').addTransition('True').addTransition('False').addTransition('Null').addTransition('Identifier').addTextRule('Text', 'base'),\n inlineExpressionInShortcut: new _lexerState.default().addTransition('EndInlineExp', 'shortcutOption').addTransition('Number').addTransition('String').addTransition('LeftParen').addTransition('RightParen').addTransition('EqualTo').addTransition('EqualToOrAssign').addTransition('NotEqualTo').addTransition('GreaterThanOrEqualTo').addTransition('GreaterThan').addTransition('LessThanOrEqualTo').addTransition('LessThan').addTransition('Add').addTransition('UnaryMinus').addTransition('Minus').addTransition('Exponent').addTransition('Multiply').addTransition('Divide').addTransition('Modulo').addTransition('And').addTransition('Or').addTransition('Xor').addTransition('Not').addTransition('Variable').addTransition('Comma').addTransition('True').addTransition('False').addTransition('Null').addTransition('Identifier').addTextRule('Text', 'base')\n };\n}\n\nvar _default = {\n makeStates: makeStates\n};\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 197:\n/***/ ((module, exports) => {\n\n\n/**\n * Token identifier -> regular expression to match the lexeme. That's a list of all the token\n * which can be emitted by the lexer. For now, we're slightly bending the style guide,\n * to make sure the debug output of the javascript lexer will (kinda) match the original C# one.\n */\n\n/* eslint-disable key-spacing */\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nconst Tokens = {\n // Special tokens\n Whitespace: null,\n // (not used currently)\n Indent: null,\n Dedent: null,\n EndOfLine: /\\n/,\n EndOfInput: null,\n // Literals in (\"<>\")\n Number: /-?[0-9]+(\\.[0-9+])?/,\n String: /\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\"/,\n // Command syntax (\"<>\")\n BeginCommand: /<>/,\n // Variables (\"$foo\")\n Variable: /\\$([A-Za-z0-9_.])+/,\n // Shortcut syntax (\"->\")\n ShortcutOption: /->/,\n // Hashtag (\"#something\")\n Hashtag: /#([^(\\s|#|//)]+)/,\n // seems a little hacky to explicitly consider comments here\n // Comment (\"// some stuff\")\n Comment: /\\/\\/.*/,\n // Option syntax (\"[[Let's go here|Destination]]\")\n OptionStart: /\\[\\[/,\n // [[\n OptionDelimit: /\\|/,\n // |\n OptionEnd: /\\]\\]/,\n // ]]\n // Command types (specially recognized command word)\n If: /if(?!\\w)/,\n ElseIf: /elseif(?!\\w)/,\n Else: /else(?!\\w)/,\n EndIf: /endif(?!\\w)/,\n Jump: /jump(?!\\w)/,\n Stop: /stop(?!\\w)/,\n Set: /set(?!\\w)/,\n Declare: /declare(?!\\w)/,\n As: /as(?!\\w)/,\n ExplicitType: /(String|Number|Bool)(?=>>)/,\n // Boolean values\n True: /true(?!\\w)/,\n False: /false(?!\\w)/,\n // The null value\n Null: /null(?!\\w)/,\n // Parentheses\n LeftParen: /\\(/,\n RightParen: /\\)/,\n // Parameter delimiters\n Comma: /,/,\n // Operators\n UnaryMinus: /-(?!\\s)/,\n EqualTo: /(==|is(?!\\w)|eq(?!\\w))/,\n // ==, eq, is\n GreaterThan: /(>|gt(?!\\w))/,\n // >, gt\n GreaterThanOrEqualTo: /(>=|gte(?!\\w))/,\n // >=, gte\n LessThan: /(<|lt(?!\\w))/,\n // <, lt\n LessThanOrEqualTo: /(<=|lte(?!\\w))/,\n // <=, lte\n NotEqualTo: /(!=|neq(?!\\w))/,\n // !=, neq\n // Logical operators\n Or: /(\\|\\||or(?!\\w))/,\n // ||, or\n And: /(&&|and(?!\\w))/,\n // &&, and\n Xor: /(\\^|xor(?!\\w))/,\n // ^, xor\n Not: /(!|not(?!\\w))/,\n // !, not\n // this guy's special because '=' can mean either 'equal to'\n // or 'becomes' depending on context\n EqualToOrAssign: /(=|to(?!\\w))/,\n // =, to\n Add: /\\+/,\n // +\n Minus: /-/,\n // -\n Exponent: /\\*\\*/,\n // **\n Multiply: /\\*/,\n // *\n Divide: /\\//,\n // /\n Modulo: /%/,\n // /\n AddAssign: /\\+=/,\n // +=\n MinusAssign: /-=/,\n // -=\n MultiplyAssign: /\\*=/,\n // *=\n DivideAssign: /\\/=/,\n // /=\n Identifier: /[a-zA-Z0-9_:.]+/,\n // a single word (used for functions)\n EscapedCharacter: /\\\\./,\n // for escaping \\# special characters\n Text: /[^\\\\]/,\n // generic until we hit other syntax\n // Braces are used for inline expressions. Ignore escaped braces\n // TODO: doesn't work ios\n BeginInlineExp: /{/,\n // {\n EndInlineExp: /}/ // }\n\n};\n/* eslint-enable key-spacing */\n\nvar _default = Tokens;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 348:\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Parser = Parser;\nexports.parser = void 0;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar o = function o(k, v, _o, l) {\n for (_o = _o || {}, l = k.length; l--; _o[k[l]] = v);\n\n return _o;\n},\n $V0 = [1, 16],\n $V1 = [1, 17],\n $V2 = [1, 12],\n $V3 = [1, 19],\n $V4 = [1, 18],\n $V5 = [5, 18, 19, 23, 34, 36, 77],\n $V6 = [1, 23],\n $V7 = [1, 24],\n $V8 = [1, 26],\n $V9 = [1, 27],\n $Va = [5, 14, 16, 18, 19, 21, 23, 34, 36, 77],\n $Vb = [1, 30],\n $Vc = [1, 34],\n $Vd = [1, 35],\n $Ve = [1, 36],\n $Vf = [1, 37],\n $Vg = [5, 14, 16, 18, 19, 21, 23, 26, 34, 36, 77],\n $Vh = [1, 50],\n $Vi = [1, 49],\n $Vj = [1, 44],\n $Vk = [1, 45],\n $Vl = [1, 46],\n $Vm = [1, 51],\n $Vn = [1, 52],\n $Vo = [1, 53],\n $Vp = [1, 54],\n $Vq = [1, 55],\n $Vr = [5, 16, 18, 19, 23, 34, 36, 77],\n $Vs = [1, 71],\n $Vt = [1, 72],\n $Vu = [1, 73],\n $Vv = [1, 74],\n $Vw = [1, 75],\n $Vx = [1, 76],\n $Vy = [1, 77],\n $Vz = [1, 78],\n $VA = [1, 79],\n $VB = [1, 80],\n $VC = [1, 81],\n $VD = [1, 82],\n $VE = [1, 83],\n $VF = [1, 84],\n $VG = [1, 85],\n $VH = [26, 46, 51, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 78],\n $VI = [26, 46, 51, 53, 54, 55, 56, 57, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 78],\n $VJ = [26, 46, 51, 70, 78],\n $VK = [1, 122],\n $VL = [1, 123],\n $VM = [26, 46, 51, 53, 54, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 78],\n $VN = [26, 46, 51, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 78],\n $VO = [51, 70],\n $VP = [16, 18, 19, 23, 34, 77];\n\nvar parser = {\n trace: function trace() {},\n yy: {},\n symbols_: {\n \"error\": 2,\n \"node\": 3,\n \"statements\": 4,\n \"EndOfInput\": 5,\n \"conditionalBlock\": 6,\n \"statement\": 7,\n \"text\": 8,\n \"shortcut\": 9,\n \"genericCommand\": 10,\n \"assignmentCommand\": 11,\n \"jumpCommand\": 12,\n \"stopCommand\": 13,\n \"Comment\": 14,\n \"hashtags\": 15,\n \"EndOfLine\": 16,\n \"textNode\": 17,\n \"Text\": 18,\n \"EscapedCharacter\": 19,\n \"inlineExpression\": 20,\n \"Hashtag\": 21,\n \"conditional\": 22,\n \"BeginCommand\": 23,\n \"If\": 24,\n \"expression\": 25,\n \"EndCommand\": 26,\n \"EndIf\": 27,\n \"additionalConditionalBlocks\": 28,\n \"else\": 29,\n \"Else\": 30,\n \"elseif\": 31,\n \"ElseIf\": 32,\n \"shortcutOption\": 33,\n \"ShortcutOption\": 34,\n \"Indent\": 35,\n \"Dedent\": 36,\n \"Jump\": 37,\n \"Identifier\": 38,\n \"Stop\": 39,\n \"setCommandInner\": 40,\n \"declareCommandInner\": 41,\n \"Set\": 42,\n \"Variable\": 43,\n \"EqualToOrAssign\": 44,\n \"Declare\": 45,\n \"As\": 46,\n \"ExplicitType\": 47,\n \"functionArgument\": 48,\n \"functionCall\": 49,\n \"LeftParen\": 50,\n \"RightParen\": 51,\n \"UnaryMinus\": 52,\n \"Add\": 53,\n \"Minus\": 54,\n \"Exponent\": 55,\n \"Multiply\": 56,\n \"Divide\": 57,\n \"Modulo\": 58,\n \"Not\": 59,\n \"Or\": 60,\n \"And\": 61,\n \"Xor\": 62,\n \"EqualTo\": 63,\n \"NotEqualTo\": 64,\n \"GreaterThan\": 65,\n \"GreaterThanOrEqualTo\": 66,\n \"LessThan\": 67,\n \"LessThanOrEqualTo\": 68,\n \"parenExpressionArgs\": 69,\n \"Comma\": 70,\n \"literal\": 71,\n \"True\": 72,\n \"False\": 73,\n \"Number\": 74,\n \"String\": 75,\n \"Null\": 76,\n \"BeginInlineExp\": 77,\n \"EndInlineExp\": 78,\n \"$accept\": 0,\n \"$end\": 1\n },\n terminals_: {\n 2: \"error\",\n 5: \"EndOfInput\",\n 14: \"Comment\",\n 16: \"EndOfLine\",\n 18: \"Text\",\n 19: \"EscapedCharacter\",\n 21: \"Hashtag\",\n 23: \"BeginCommand\",\n 24: \"If\",\n 26: \"EndCommand\",\n 27: \"EndIf\",\n 30: \"Else\",\n 32: \"ElseIf\",\n 34: \"ShortcutOption\",\n 35: \"Indent\",\n 36: \"Dedent\",\n 37: \"Jump\",\n 38: \"Identifier\",\n 39: \"Stop\",\n 42: \"Set\",\n 43: \"Variable\",\n 44: \"EqualToOrAssign\",\n 45: \"Declare\",\n 46: \"As\",\n 47: \"ExplicitType\",\n 50: \"LeftParen\",\n 51: \"RightParen\",\n 52: \"UnaryMinus\",\n 53: \"Add\",\n 54: \"Minus\",\n 55: \"Exponent\",\n 56: \"Multiply\",\n 57: \"Divide\",\n 58: \"Modulo\",\n 59: \"Not\",\n 60: \"Or\",\n 61: \"And\",\n 62: \"Xor\",\n 63: \"EqualTo\",\n 64: \"NotEqualTo\",\n 65: \"GreaterThan\",\n 66: \"GreaterThanOrEqualTo\",\n 67: \"LessThan\",\n 68: \"LessThanOrEqualTo\",\n 70: \"Comma\",\n 72: \"True\",\n 73: \"False\",\n 74: \"Number\",\n 75: \"String\",\n 76: \"Null\",\n 77: \"BeginInlineExp\",\n 78: \"EndInlineExp\"\n },\n productions_: [0, [3, 2], [4, 1], [4, 2], [4, 1], [4, 2], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 1], [7, 2], [7, 2], [7, 2], [17, 1], [17, 1], [8, 1], [8, 1], [8, 2], [15, 1], [15, 2], [22, 4], [6, 6], [6, 4], [6, 2], [29, 3], [29, 2], [31, 4], [31, 2], [28, 5], [28, 5], [28, 3], [33, 2], [33, 3], [33, 2], [33, 2], [33, 3], [33, 2], [9, 1], [9, 5], [10, 3], [12, 4], [12, 4], [13, 3], [11, 3], [11, 3], [40, 4], [41, 4], [41, 6], [25, 1], [25, 1], [25, 3], [25, 2], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [25, 2], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [25, 3], [49, 3], [49, 4], [69, 3], [69, 1], [48, 1], [48, 1], [48, 1], [71, 1], [71, 1], [71, 1], [71, 1], [71, 1], [20, 3]],\n performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate\n /* action[1] */\n , $$\n /* vstack */\n , _$\n /* lstack */\n ) {\n /* this == yyval */\n var $0 = $$.length - 1;\n\n switch (yystate) {\n case 1:\n return $$[$0 - 1].flat();\n break;\n\n case 2:\n case 4:\n case 7:\n case 8:\n case 9:\n case 10:\n case 11:\n case 17:\n case 18:\n case 73:\n this.$ = [$$[$0]];\n break;\n\n case 3:\n this.$ = $$[$0 - 1].concat($$[$0]);\n break;\n\n case 5:\n this.$ = $$[$0 - 1].concat([$$[$0]]);\n break;\n\n case 6:\n case 51:\n this.$ = $$[$0];\n break;\n\n case 12:\n case 14:\n case 25:\n case 28:\n case 29:\n case 45:\n case 52:\n this.$ = $$[$0 - 1];\n break;\n\n case 13:\n this.$ = $$[$0 - 1].map(s => Object.assign(s, {\n hashtags: $$[$0]\n }));\n break;\n\n case 15:\n this.$ = new yy.TextNode($$[$0], this._$);\n break;\n\n case 16:\n this.$ = new yy.EscapedCharacterNode($$[$0], this._$);\n break;\n\n case 19:\n this.$ = $$[$0 - 1].concat($$[$0]);\n break;\n\n case 20:\n this.$ = [$$[$0].substring(1)];\n break;\n\n case 21:\n this.$ = [$$[$0 - 1].substring(1)].concat($$[$0]);\n break;\n\n case 22:\n case 36:\n case 38:\n this.$ = $$[$0 - 1];\n break;\n\n case 23:\n this.$ = new yy.IfNode($$[$0 - 5], $$[$0 - 3].flat());\n break;\n\n case 24:\n this.$ = new yy.IfElseNode($$[$0 - 3], $$[$0 - 1].flat(), $$[$0]);\n break;\n\n case 26:\n case 27:\n this.$ = undefined;\n break;\n\n case 30:\n this.$ = new yy.ElseNode($$[$0 - 3].flat());\n break;\n\n case 31:\n this.$ = new yy.ElseIfNode($$[$0 - 4], $$[$0 - 3].flat());\n break;\n\n case 32:\n this.$ = new yy.ElseIfNode($$[$0 - 2], $$[$0 - 1].flat(), $$[$0]);\n break;\n\n case 33:\n this.$ = {\n text: $$[$0]\n };\n break;\n\n case 34:\n this.$ = {\n text: $$[$0 - 1],\n conditional: $$[$0]\n };\n break;\n\n case 35:\n this.$ = _objectSpread(_objectSpread({}, $$[$0 - 1]), {}, {\n hashtags: $$[$0]\n });\n break;\n\n case 37:\n this.$ = _objectSpread(_objectSpread({}, $$[$0 - 2]), {}, {\n hashtags: $$[$0 - 1]\n });\n break;\n\n case 39:\n this.$ = new yy.DialogShortcutNode($$[$0].text, undefined, this._$, $$[$0].hashtags, $$[$0].conditional);\n break;\n\n case 40:\n this.$ = new yy.DialogShortcutNode($$[$0 - 4].text, $$[$0 - 1].flat(), this._$, $$[$0 - 4].hashtags, $$[$0 - 4].conditional);\n break;\n\n case 41:\n this.$ = new yy.GenericCommandNode($$[$0 - 1], this._$);\n break;\n\n case 42:\n case 43:\n this.$ = new yy.JumpCommandNode($$[$0 - 1]);\n break;\n\n case 44:\n this.$ = new yy.StopCommandNode();\n break;\n\n case 46:\n this.$ = null;\n break;\n\n case 47:\n this.$ = new yy.SetVariableEqualToNode($$[$0 - 2].substring(1), $$[$0]);\n break;\n\n case 48:\n this.$ = null;\n yy.registerDeclaration($$[$0 - 2].substring(1), $$[$0]);\n break;\n\n case 49:\n this.$ = null;\n yy.registerDeclaration($$[$0 - 4].substring(1), $$[$0 - 2], $$[$0]);\n break;\n\n case 50:\n case 74:\n case 75:\n this.$ = $$[$0];\n break;\n\n case 53:\n this.$ = new yy.UnaryMinusExpressionNode($$[$0]);\n break;\n\n case 54:\n this.$ = new yy.ArithmeticExpressionAddNode($$[$0 - 2], $$[$0]);\n break;\n\n case 55:\n this.$ = new yy.ArithmeticExpressionMinusNode($$[$0 - 2], $$[$0]);\n break;\n\n case 56:\n this.$ = new yy.ArithmeticExpressionExponentNode($$[$0 - 2], $$[$0]);\n break;\n\n case 57:\n this.$ = new yy.ArithmeticExpressionMultiplyNode($$[$0 - 2], $$[$0]);\n break;\n\n case 58:\n this.$ = new yy.ArithmeticExpressionDivideNode($$[$0 - 2], $$[$0]);\n break;\n\n case 59:\n this.$ = new yy.ArithmeticExpressionModuloNode($$[$0 - 2], $$[$0]);\n break;\n\n case 60:\n this.$ = new yy.NegatedBooleanExpressionNode($$[$0]);\n break;\n\n case 61:\n this.$ = new yy.BooleanOrExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 62:\n this.$ = new yy.BooleanAndExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 63:\n this.$ = new yy.BooleanXorExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 64:\n this.$ = new yy.EqualToExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 65:\n this.$ = new yy.NotEqualToExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 66:\n this.$ = new yy.GreaterThanExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 67:\n this.$ = new yy.GreaterThanOrEqualToExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 68:\n this.$ = new yy.LessThanExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 69:\n this.$ = new yy.LessThanOrEqualToExpressionNode($$[$0 - 2], $$[$0]);\n break;\n\n case 70:\n this.$ = new yy.FunctionCallNode($$[$0 - 2], [], this._$);\n break;\n\n case 71:\n this.$ = new yy.FunctionCallNode($$[$0 - 3], $$[$0 - 1], this._$);\n break;\n\n case 72:\n this.$ = $$[$0 - 2].concat([$$[$0]]);\n break;\n\n case 76:\n this.$ = new yy.VariableNode($$[$0].substring(1));\n break;\n\n case 77:\n case 78:\n this.$ = new yy.BooleanLiteralNode($$[$0]);\n break;\n\n case 79:\n this.$ = new yy.NumericLiteralNode($$[$0]);\n break;\n\n case 80:\n this.$ = new yy.StringLiteralNode($$[$0]);\n break;\n\n case 81:\n this.$ = new yy.NullLiteralNode($$[$0]);\n break;\n\n case 82:\n this.$ = new yy.InlineExpressionNode($$[$0 - 1], this._$);\n break;\n }\n },\n table: [{\n 3: 1,\n 4: 2,\n 6: 3,\n 7: 4,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, {\n 1: [3]\n }, {\n 5: [1, 20],\n 6: 21,\n 7: 22,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, o($V5, [2, 2], {\n 16: $V6\n }), o($V5, [2, 4], {\n 15: 25,\n 14: $V7,\n 16: $V8,\n 21: $V9\n }), {\n 16: [1, 28]\n }, o([5, 14, 16, 21, 23, 34, 36], [2, 6], {\n 17: 13,\n 20: 14,\n 8: 29,\n 18: $V0,\n 19: $V1,\n 77: $V4\n }), o($Va, [2, 7]), o($Va, [2, 8]), o($Va, [2, 9]), o($Va, [2, 10]), o($Va, [2, 11]), {\n 8: 31,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 24: $Vb,\n 37: $Vc,\n 39: $Vd,\n 40: 32,\n 41: 33,\n 42: $Ve,\n 45: $Vf,\n 77: $V4\n }, o($Vg, [2, 17]), o($Vg, [2, 18]), o($V5, [2, 39], {\n 15: 39,\n 14: [1, 40],\n 16: [1, 38],\n 21: $V9\n }), o($Vg, [2, 15]), o($Vg, [2, 16]), {\n 20: 47,\n 25: 41,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 8: 56,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 77: $V4\n }, {\n 1: [2, 1]\n }, o($V5, [2, 3], {\n 16: $V6\n }), o($V5, [2, 5], {\n 15: 25,\n 14: $V7,\n 16: $V8,\n 21: $V9\n }), o($Vr, [2, 25]), o($Va, [2, 12]), o($Va, [2, 13]), o($Va, [2, 14]), o([5, 14, 16, 18, 19, 23, 34, 36, 77], [2, 20], {\n 15: 57,\n 21: $V9\n }), {\n 4: 58,\n 6: 3,\n 7: 4,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, o([5, 14, 16, 21, 23, 26, 34, 36], [2, 19], {\n 17: 13,\n 20: 14,\n 8: 29,\n 18: $V0,\n 19: $V1,\n 77: $V4\n }), {\n 20: 47,\n 25: 59,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 8: 29,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 26: [1, 60],\n 77: $V4\n }, {\n 26: [1, 61]\n }, {\n 26: [1, 62]\n }, {\n 20: 64,\n 38: [1, 63],\n 77: $V4\n }, {\n 26: [1, 65]\n }, {\n 43: [1, 66]\n }, {\n 43: [1, 67]\n }, o($Va, [2, 38], {\n 35: [1, 68]\n }), o([5, 16, 18, 19, 21, 23, 34, 36, 77], [2, 35], {\n 14: [1, 69]\n }), o($Va, [2, 36]), {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG,\n 78: [1, 70]\n }, o($VH, [2, 50]), o($VH, [2, 51]), {\n 20: 47,\n 25: 86,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 87,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 88,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, o($VH, [2, 74]), o($VH, [2, 75]), o($VH, [2, 76]), {\n 50: [1, 89]\n }, o($VH, [2, 77]), o($VH, [2, 78]), o($VH, [2, 79]), o($VH, [2, 80]), o($VH, [2, 81]), o([5, 14, 16, 21, 34, 36], [2, 33], {\n 17: 13,\n 20: 14,\n 8: 29,\n 22: 90,\n 18: $V0,\n 19: $V1,\n 23: [1, 91],\n 77: $V4\n }), o($Va, [2, 21]), {\n 6: 21,\n 7: 22,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: [1, 92],\n 28: 93,\n 29: 94,\n 31: 95,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, {\n 26: [1, 96],\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }, o($Va, [2, 41]), o($Va, [2, 45]), o($Va, [2, 46]), {\n 26: [1, 97]\n }, {\n 26: [1, 98]\n }, o($Va, [2, 44]), {\n 44: [1, 99]\n }, {\n 44: [1, 100]\n }, {\n 4: 101,\n 6: 3,\n 7: 4,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, o($Va, [2, 37]), o([5, 14, 16, 18, 19, 21, 23, 26, 34, 36, 46, 51, 53, 54, 55, 56, 57, 58, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 77, 78], [2, 82]), {\n 20: 47,\n 25: 102,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 103,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 104,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 105,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 106,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 107,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 108,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 109,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 110,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 111,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 112,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 113,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 114,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 115,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 116,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 51: [1, 117],\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }, o($VI, [2, 53], {\n 58: $Vx\n }), o($VJ, [2, 60], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), {\n 20: 47,\n 25: 120,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 51: [1, 118],\n 52: $Vk,\n 59: $Vl,\n 69: 119,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, o($Va, [2, 34]), {\n 24: $Vb\n }, {\n 8: 31,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 24: $Vb,\n 27: [1, 121],\n 30: $VK,\n 32: $VL,\n 37: $Vc,\n 39: $Vd,\n 40: 32,\n 41: 33,\n 42: $Ve,\n 45: $Vf,\n 77: $V4\n }, o($Vr, [2, 24]), {\n 4: 124,\n 6: 3,\n 7: 4,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 16: [1, 125],\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, {\n 4: 126,\n 6: 3,\n 7: 4,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 16: [1, 127],\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, o($Va, [2, 22]), o($Va, [2, 42]), o($Va, [2, 43]), {\n 20: 47,\n 25: 128,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 20: 47,\n 25: 129,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 6: 21,\n 7: 22,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: $V2,\n 33: 15,\n 34: $V3,\n 36: [1, 130],\n 77: $V4\n }, o($VM, [2, 54], {\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VM, [2, 55], {\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VI, [2, 56], {\n 58: $Vx\n }), o($VI, [2, 57], {\n 58: $Vx\n }), o($VI, [2, 58], {\n 58: $Vx\n }), o($VJ, [2, 59], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), o([26, 46, 51, 60, 70, 78], [2, 61], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), o([26, 46, 51, 60, 61, 70, 78], [2, 62], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), o([26, 46, 51, 60, 61, 62, 70, 78], [2, 63], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), o($VN, [2, 64], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VN, [2, 65], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VN, [2, 66], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VN, [2, 67], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VN, [2, 68], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VN, [2, 69], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx\n }), o($VH, [2, 52]), o($VH, [2, 70]), {\n 51: [1, 131],\n 70: [1, 132]\n }, o($VO, [2, 73], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), {\n 26: [1, 133]\n }, {\n 26: [1, 134]\n }, {\n 20: 47,\n 25: 135,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, {\n 6: 21,\n 7: 22,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: [1, 136],\n 33: 15,\n 34: $V3,\n 77: $V4\n }, o($VP, [2, 27]), {\n 6: 21,\n 7: 22,\n 8: 6,\n 9: 7,\n 10: 8,\n 11: 9,\n 12: 10,\n 13: 11,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 22: 5,\n 23: [1, 137],\n 28: 138,\n 29: 94,\n 31: 95,\n 33: 15,\n 34: $V3,\n 77: $V4\n }, o($VP, [2, 29]), {\n 26: [2, 47],\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }, {\n 26: [2, 48],\n 46: [1, 139],\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }, o($Va, [2, 40]), o($VH, [2, 71]), {\n 20: 47,\n 25: 140,\n 38: $Vh,\n 43: $Vi,\n 48: 42,\n 49: 43,\n 50: $Vj,\n 52: $Vk,\n 59: $Vl,\n 71: 48,\n 72: $Vm,\n 73: $Vn,\n 74: $Vo,\n 75: $Vp,\n 76: $Vq,\n 77: $V4\n }, o($Vr, [2, 23]), o($VP, [2, 26]), {\n 26: [1, 141],\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }, {\n 8: 31,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 24: $Vb,\n 27: [1, 142],\n 37: $Vc,\n 39: $Vd,\n 40: 32,\n 41: 33,\n 42: $Ve,\n 45: $Vf,\n 77: $V4\n }, {\n 8: 31,\n 17: 13,\n 18: $V0,\n 19: $V1,\n 20: 14,\n 24: $Vb,\n 27: [1, 143],\n 30: $VK,\n 32: $VL,\n 37: $Vc,\n 39: $Vd,\n 40: 32,\n 41: 33,\n 42: $Ve,\n 45: $Vf,\n 77: $V4\n }, o($Vr, [2, 32]), {\n 47: [1, 144]\n }, o($VO, [2, 72], {\n 53: $Vs,\n 54: $Vt,\n 55: $Vu,\n 56: $Vv,\n 57: $Vw,\n 58: $Vx,\n 60: $Vy,\n 61: $Vz,\n 62: $VA,\n 63: $VB,\n 64: $VC,\n 65: $VD,\n 66: $VE,\n 67: $VF,\n 68: $VG\n }), o($VP, [2, 28]), {\n 26: [1, 145]\n }, {\n 26: [1, 146]\n }, {\n 26: [2, 49]\n }, o($Vr, [2, 30]), o($Vr, [2, 31])],\n defaultActions: {\n 20: [2, 1],\n 144: [2, 49]\n },\n parseError: function parseError(str, hash) {\n if (hash.recoverable) {\n this.trace(str);\n } else {\n var error = new Error(str);\n error.hash = hash;\n throw error;\n }\n },\n parse: function parse(input) {\n var self = this,\n stack = [0],\n tstack = [],\n vstack = [null],\n lstack = [],\n table = this.table,\n yytext = '',\n yylineno = 0,\n yyleng = 0,\n recovering = 0,\n TERROR = 2,\n EOF = 1;\n var args = lstack.slice.call(arguments, 1);\n var lexer = Object.create(this.lexer);\n var sharedState = {\n yy: {}\n };\n\n for (var k in this.yy) {\n if (Object.prototype.hasOwnProperty.call(this.yy, k)) {\n sharedState.yy[k] = this.yy[k];\n }\n }\n\n lexer.setInput(input, sharedState.yy);\n sharedState.yy.lexer = lexer;\n sharedState.yy.parser = this;\n\n if (typeof lexer.yylloc == 'undefined') {\n lexer.yylloc = {};\n }\n\n var yyloc = lexer.yylloc;\n lstack.push(yyloc);\n var ranges = lexer.options && lexer.options.ranges;\n\n if (typeof sharedState.yy.parseError === 'function') {\n this.parseError = sharedState.yy.parseError;\n } else {\n this.parseError = Object.getPrototypeOf(this).parseError;\n }\n\n function popStack(n) {\n stack.length = stack.length - 2 * n;\n vstack.length = vstack.length - n;\n lstack.length = lstack.length - n;\n }\n\n _token_stack: var lex = function lex() {\n var token;\n token = lexer.lex() || EOF;\n\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token;\n };\n\n var symbol,\n preErrorSymbol,\n state,\n action,\n a,\n r,\n yyval = {},\n p,\n len,\n newState,\n expected;\n\n while (true) {\n state = stack[stack.length - 1];\n\n if (this.defaultActions[state]) {\n action = this.defaultActions[state];\n } else {\n if (symbol === null || typeof symbol == 'undefined') {\n symbol = lex();\n }\n\n action = table[state] && table[state][symbol];\n }\n\n if (typeof action === 'undefined' || !action.length || !action[0]) {\n var errStr = '';\n expected = [];\n\n for (p in table[state]) {\n if (this.terminals_[p] && p > TERROR) {\n expected.push('\\'' + this.terminals_[p] + '\\'');\n }\n }\n\n if (lexer.showPosition) {\n errStr = 'Parse error on line ' + (yylineno + 1) + ':\\n' + lexer.showPosition() + '\\nExpecting ' + expected.join(', ') + ', got \\'' + (this.terminals_[symbol] || symbol) + '\\'';\n } else {\n errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\\'' + (this.terminals_[symbol] || symbol) + '\\'');\n }\n\n this.parseError(errStr, {\n text: lexer.match,\n token: this.terminals_[symbol] || symbol,\n line: lexer.yylineno,\n loc: yyloc,\n expected: expected\n });\n }\n\n if (action[0] instanceof Array && action.length > 1) {\n throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);\n }\n\n switch (action[0]) {\n case 1:\n stack.push(symbol);\n vstack.push(lexer.yytext);\n lstack.push(lexer.yylloc);\n stack.push(action[1]);\n symbol = null;\n\n if (!preErrorSymbol) {\n yyleng = lexer.yyleng;\n yytext = lexer.yytext;\n yylineno = lexer.yylineno;\n yyloc = lexer.yylloc;\n\n if (recovering > 0) {\n recovering--;\n }\n } else {\n symbol = preErrorSymbol;\n preErrorSymbol = null;\n }\n\n break;\n\n case 2:\n len = this.productions_[action[1]][1];\n yyval.$ = vstack[vstack.length - len];\n yyval._$ = {\n first_line: lstack[lstack.length - (len || 1)].first_line,\n last_line: lstack[lstack.length - 1].last_line,\n first_column: lstack[lstack.length - (len || 1)].first_column,\n last_column: lstack[lstack.length - 1].last_column\n };\n\n if (ranges) {\n yyval._$.range = [lstack[lstack.length - (len || 1)].range[0], lstack[lstack.length - 1].range[1]];\n }\n\n r = this.performAction.apply(yyval, [yytext, yyleng, yylineno, sharedState.yy, action[1], vstack, lstack].concat(args));\n\n if (typeof r !== 'undefined') {\n return r;\n }\n\n if (len) {\n stack = stack.slice(0, -1 * len * 2);\n vstack = vstack.slice(0, -1 * len);\n lstack = lstack.slice(0, -1 * len);\n }\n\n stack.push(this.productions_[action[1]][0]);\n vstack.push(yyval.$);\n lstack.push(yyval._$);\n newState = table[stack[stack.length - 2]][stack[stack.length - 1]];\n stack.push(newState);\n break;\n\n case 3:\n return true;\n }\n }\n\n return true;\n }\n};\nexports.parser = parser;\n\nfunction Parser() {\n this.yy = {};\n}\n\n;\nParser.prototype = parser;\nparser.Parser = Parser;\n\n/***/ }),\n\n/***/ 748:\n/***/ ((module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nclass Text {}\n\nclass Shortcut {}\n\nclass Conditional {}\n\nclass Assignment {}\n\nclass Literal {}\n\nclass Expression {}\n\nclass FunctionCall {}\n\nclass Command {}\n\nvar _default = {\n types: {\n Text,\n Shortcut,\n Conditional,\n Assignment,\n Literal,\n Expression,\n FunctionCall,\n Command\n },\n // /////////////// Dialog Nodes\n DialogShortcutNode: class extends Shortcut {\n constructor(text, content, lineNo) {\n let hashtags = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n let conditionalExpression = arguments.length > 4 ? arguments[4] : undefined;\n super();\n this.type = 'DialogShortcutNode';\n this.text = text;\n this.content = content;\n this.lineNum = lineNo.first_line;\n this.hashtags = hashtags;\n this.conditionalExpression = conditionalExpression;\n }\n\n },\n // /////////////// Conditional Nodes\n IfNode: class extends Conditional {\n constructor(expression, statement) {\n super();\n this.type = 'IfNode';\n this.expression = expression;\n this.statement = statement;\n }\n\n },\n IfElseNode: class extends Conditional {\n constructor(expression, statement, elseStatement) {\n super();\n this.type = 'IfElseNode';\n this.expression = expression;\n this.statement = statement;\n this.elseStatement = elseStatement;\n }\n\n },\n ElseNode: class extends Conditional {\n constructor(statement) {\n super();\n this.type = 'ElseNode';\n this.statement = statement;\n }\n\n },\n ElseIfNode: class extends Conditional {\n constructor(expression, statement, elseStatement) {\n super();\n this.type = 'ElseIfNode';\n this.expression = expression;\n this.statement = statement;\n this.elseStatement = elseStatement;\n }\n\n },\n // /////////////// Command Nodes\n GenericCommandNode: class extends Command {\n constructor(command, lineNo) {\n let hashtags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n super();\n this.type = 'GenericCommandNode';\n this.command = command;\n this.hashtags = hashtags;\n this.lineNum = lineNo.first_line;\n }\n\n },\n JumpCommandNode: class extends Command {\n constructor(destination) {\n super();\n this.type = 'JumpCommandNode';\n this.destination = destination;\n }\n\n },\n StopCommandNode: class extends Command {\n constructor() {\n super();\n this.type = 'StopCommandNode';\n }\n\n },\n // /////////////// Contents Nodes\n TextNode: class extends Text {\n constructor(text, lineNo) {\n let hashtags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n super();\n this.type = 'TextNode';\n this.text = text;\n this.lineNum = lineNo.first_line;\n this.hashtags = hashtags;\n }\n\n },\n EscapedCharacterNode: class extends Text {\n constructor(text, lineNo) {\n let hashtags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n super();\n this.type = 'EscapedCharacterNode';\n this.text = text;\n this.lineNum = lineNo.first_line;\n this.hashtags = hashtags;\n }\n\n },\n // /////////////// Literal Nodes\n NumericLiteralNode: class extends Literal {\n constructor(numericLiteral) {\n super();\n this.type = 'NumericLiteralNode';\n this.numericLiteral = numericLiteral;\n }\n\n },\n StringLiteralNode: class extends Literal {\n constructor(stringLiteral) {\n super();\n this.type = 'StringLiteralNode';\n this.stringLiteral = stringLiteral;\n }\n\n },\n BooleanLiteralNode: class extends Literal {\n constructor(booleanLiteral) {\n super();\n this.type = 'BooleanLiteralNode';\n this.booleanLiteral = booleanLiteral;\n }\n\n },\n VariableNode: class extends Literal {\n constructor(variableName) {\n super();\n this.type = 'VariableNode';\n this.variableName = variableName;\n }\n\n },\n // /////////////// Arithmetic Expression Nodes\n UnaryMinusExpressionNode: class extends Expression {\n constructor(expression) {\n super();\n this.type = 'UnaryMinusExpressionNode';\n this.expression = expression;\n }\n\n },\n ArithmeticExpressionAddNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'ArithmeticExpressionAddNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n ArithmeticExpressionMinusNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'ArithmeticExpressionMinusNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n ArithmeticExpressionMultiplyNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'ArithmeticExpressionMultiplyNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n ArithmeticExpressionExponentNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'ArithmeticExpressionExponentNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n ArithmeticExpressionDivideNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'ArithmeticExpressionDivideNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n ArithmeticExpressionModuloNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'ArithmeticExpressionModuloNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n // /////////////// Boolean Expression Nodes\n NegatedBooleanExpressionNode: class extends Expression {\n constructor(expression) {\n super();\n this.type = 'NegatedBooleanExpressionNode';\n this.expression = expression;\n }\n\n },\n BooleanOrExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'BooleanOrExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n BooleanAndExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'BooleanAndExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n BooleanXorExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'BooleanXorExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n EqualToExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'EqualToExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n NotEqualToExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'NotEqualToExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n GreaterThanExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'GreaterThanExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n GreaterThanOrEqualToExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'GreaterThanOrEqualToExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n LessThanExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'LessThanExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n LessThanOrEqualToExpressionNode: class extends Expression {\n constructor(expression1, expression2) {\n super();\n this.type = 'LessThanOrEqualToExpressionNode';\n this.expression1 = expression1;\n this.expression2 = expression2;\n }\n\n },\n // /////////////// Assignment Expression Nodes\n SetVariableEqualToNode: class extends Assignment {\n constructor(variableName, expression) {\n super();\n this.type = 'SetVariableEqualToNode';\n this.variableName = variableName;\n this.expression = expression;\n }\n\n },\n // /////////////// Function Nodes\n FunctionCallNode: class extends FunctionCall {\n constructor(functionName, args, lineNo) {\n let hashtags = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n super();\n this.type = 'FunctionCallNode';\n this.functionName = functionName;\n this.args = args;\n this.lineNum = lineNo.first_line;\n this.hashtags = hashtags;\n }\n\n },\n // /////////////// Inline Expression\n InlineExpressionNode: class extends Expression {\n constructor(expression, lineNo) {\n let hashtags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n super();\n this.type = 'InlineExpressionNode';\n this.expression = expression;\n this.lineNum = lineNo.first_line;\n this.hashtags = hashtags;\n }\n\n }\n};\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 173:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _nodes = _interopRequireDefault(__webpack_require__(748));\n\nvar _lexer = _interopRequireDefault(__webpack_require__(525));\n\nvar _compiledParser = __webpack_require__(348);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n_compiledParser.parser.lexer = new _lexer.default();\n_compiledParser.parser.yy = _nodes.default;\n_compiledParser.parser.yy.declarations = {};\n\n_compiledParser.parser.yy.parseError = function parseError(e) {\n throw e;\n};\n\n_compiledParser.parser.yy.registerDeclaration = function registerDeclaration(variableName, expression, explicitType) {\n if (!this.areDeclarationsHandled) {\n if (this.declarations[variableName]) {\n throw new Error(\"Duplicate declaration found for variable: \".concat(variableName));\n }\n\n this.declarations[variableName] = {\n variableName,\n expression,\n explicitType\n };\n }\n};\n\nvar _default = _compiledParser.parser;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 34:\n/***/ ((module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nclass Result {}\n\nclass TextResult extends Result {\n /**\n * Create a text display result\n * @param {string} [text] text to be displayed\n * @param {string[]} [hashtags] the hashtags for the line\n * @param {object} [metadata] the parent yarn data\n */\n constructor(text, hashtags, metadata) {\n super();\n this.text = text;\n this.hashtags = hashtags;\n this.metadata = metadata;\n }\n\n}\n\nclass CommandResult extends Result {\n /**\n * Return a command string\n * @param {string} [command] the command text\n * @param {string[]} [hashtags] the hashtags for the line\n * @param {object} [metadata] the parent yarn data\n */\n constructor(command, hashtags, metadata) {\n super();\n this.command = command;\n this.hashtags = hashtags;\n this.metadata = metadata;\n }\n\n}\n\nclass OptionResult extends Result {\n /**\n * Strip down Conditional option for presentation\n * @param {string} [text] option text to display\n * @param {boolean} [isAvailable] whether option is available\n * @param {string[]} [hashtags] the hashtags for the line\n * @param {object} [metadata] the parent yarn data\n */\n constructor(text) {\n let isAvailable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n let hashtags = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n let metadata = arguments.length > 3 ? arguments[3] : undefined;\n super();\n this.text = text;\n this.isAvailable = isAvailable;\n this.hashtags = hashtags;\n this.metadata = metadata;\n }\n\n}\n\nclass OptionsResult extends Result {\n /**\n * Create a selectable list of options from the given list of text\n * @param {Node[]} [options] list of the text of options to be shown\n * @param {object} [metadata] the parent yarn data\n */\n constructor(options, metadata) {\n super();\n this.options = options.map(s => {\n return new OptionResult(s.text, s.isAvailable, s.hashtags);\n });\n this.metadata = metadata;\n }\n\n select() {\n let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : -1;\n\n if (index < 0 || index >= this.options.length) {\n throw new Error(\"Cannot select option #\".concat(index, \", there are \").concat(this.options.length, \" options\"));\n }\n\n this.selected = index;\n }\n\n}\n\nvar _default = {\n Result,\n TextResult,\n CommandResult,\n OptionsResult\n};\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 159:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _parser = _interopRequireDefault(__webpack_require__(173));\n\nvar _results = _interopRequireDefault(__webpack_require__(34));\n\nvar _defaultVariableStorage = _interopRequireDefault(__webpack_require__(131));\n\nvar _convertYarnToJs = _interopRequireDefault(__webpack_require__(144));\n\nvar _nodes = _interopRequireDefault(__webpack_require__(748));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nconst nodeTypes = _nodes.default.types;\n\nclass Runner {\n constructor() {\n this.noEscape = false;\n this.yarnNodes = {};\n this.variables = new _defaultVariableStorage.default();\n this.functions = {};\n }\n /**\n * Loads the yarn node data into this.nodes\n * @param dialogue {any[]} yarn dialogue as string or array\n */\n\n\n load(dialogue) {\n if (!dialogue) {\n throw new Error('No dialogue supplied');\n }\n\n let nodes;\n\n if (typeof dialogue === 'string') {\n nodes = (0, _convertYarnToJs.default)(dialogue);\n } else {\n nodes = dialogue;\n }\n\n nodes.forEach(node => {\n if (!node.title) {\n throw new Error(\"Node needs a title: \".concat(JSON.stringify(node)));\n } else if (node.title.split('.').length > 1) {\n throw new Error(\"Node title cannot contain a dot: \".concat(node.title));\n }\n\n if (!node.body) {\n throw new Error(\"Node needs a body: \".concat(JSON.stringify(node)));\n }\n\n if (this.yarnNodes[node.title]) {\n throw new Error(\"Duplicate node title: \".concat(node.title));\n }\n\n this.yarnNodes[node.title] = node;\n });\n _parser.default.yy.areDeclarationsHandled = false;\n _parser.default.yy.declarations = {};\n this.handleDeclarations(nodes);\n _parser.default.yy.areDeclarationsHandled = true;\n }\n /**\n * Set a new variable storage object\n * This must simply contain a 'get(name)' and 'set(name, value)' function\n *\n * Calling this function will clear any existing variable's values\n */\n\n\n setVariableStorage(storage) {\n if (typeof storage.set !== 'function' || typeof storage.get !== 'function') {\n throw new Error('Variable Storage object must contain both a \"set\" and \"get\" function');\n }\n\n this.variables = storage;\n }\n /**\n * Scans for <> commands and sets initial variable values\n * @param {any[]} yarn dialogue as string or array\n */\n\n\n handleDeclarations(nodes) {\n const exampleValues = {\n Number: 0,\n String: '',\n Boolean: false\n };\n const allLines = nodes.reduce((acc, node) => {\n const nodeLines = node.body.split(/\\r?\\n+/);\n return [...acc, ...nodeLines];\n }, []);\n const declareLines = allLines.reduce((acc, line) => {\n const match = line.match(/^<>/);\n return match ? [...acc, line] : acc;\n }, []);\n\n if (declareLines.length) {\n _parser.default.parse(declareLines.join('\\n'));\n }\n\n Object.entries(_parser.default.yy.declarations).forEach(_ref => {\n let [variableName, {\n expression,\n explicitType\n }] = _ref;\n const value = this.evaluateExpressionOrLiteral(expression);\n\n if (explicitType && typeof value !== typeof exampleValues[explicitType]) {\n throw new Error(\"Cannot declare value \".concat(value, \" as type \").concat(explicitType, \" for variable \").concat(variableName));\n }\n\n if (!this.variables.get(variableName)) {\n this.variables.set(variableName, value);\n }\n });\n }\n\n registerFunction(name, func) {\n if (typeof func !== 'function') {\n throw new Error('Registered function must be...well...a function');\n }\n\n this.functions[name] = func;\n }\n /**\n * Generator to return each sequential dialog result starting from the given node\n * @param {string} [startNode] - The name of the yarn node to begin at\n */\n\n\n *run(startNode) {\n let jumpTo = startNode;\n\n while (jumpTo) {\n const yarnNode = this.yarnNodes[jumpTo];\n\n if (yarnNode === undefined) {\n throw new Error(\"Node \\\"\".concat(startNode, \"\\\" does not exist\"));\n } // Parse the entire node\n\n\n const parserNodes = Array.from(_parser.default.parse(yarnNode.body));\n\n const metadata = _objectSpread({}, yarnNode);\n\n delete metadata.body;\n const result = yield* this.evalNodes(parserNodes, metadata);\n jumpTo = result && result.jump;\n }\n }\n /**\n * Evaluate a list of parser nodes, yielding the ones that need to be seen by\n * the user. Calls itself recursively if that is required by nested nodes\n * @param {Node[]} nodes\n * @param {YarnNode[]} metadata\n */\n\n\n *evalNodes(nodes, metadata) {\n let shortcutNodes = [];\n let textRun = '';\n const filteredNodes = nodes.filter(Boolean); // Yield the individual user-visible results\n // Need to accumulate all adjacent selectables\n // into one list (hence some of the weirdness here)\n\n for (let nodeIdx = 0; nodeIdx < filteredNodes.length; nodeIdx += 1) {\n const node = filteredNodes[nodeIdx];\n const nextNode = filteredNodes[nodeIdx + 1]; // Text and the output of Inline Expressions\n // are combined to deliver a TextNode.\n\n if (node instanceof nodeTypes.Text || node instanceof nodeTypes.Expression) {\n textRun += this.evaluateExpressionOrLiteral(node).toString();\n\n if (nextNode && node.lineNum === nextNode.lineNum && (nextNode instanceof nodeTypes.Text || nextNode instanceof nodeTypes.Expression)) {// Same line, with another text equivalent to add to the\n // text run further on in the loop, so don't yield.\n } else {\n yield new _results.default.TextResult(textRun, node.hashtags, metadata);\n textRun = '';\n }\n } else if (node instanceof nodeTypes.Shortcut) {\n shortcutNodes.push(node);\n\n if (!(nextNode instanceof nodeTypes.Shortcut)) {\n // Last shortcut in the series, so yield the shortcuts.\n const result = yield* this.handleShortcuts(shortcutNodes, metadata);\n\n if (result && (result.stop || result.jump)) {\n return result;\n }\n\n shortcutNodes = [];\n }\n } else if (node instanceof nodeTypes.Assignment) {\n this.evaluateAssignment(node);\n } else if (node instanceof nodeTypes.Conditional) {\n // Get the results of the conditional\n const evalResult = this.evaluateConditional(node);\n\n if (evalResult) {\n // Run the remaining results\n const result = yield* this.evalNodes(evalResult, metadata);\n\n if (result && (result.stop || result.jump)) {\n return result;\n }\n }\n } else if (node instanceof _nodes.default.JumpCommandNode) {\n // ignore the rest of this outer loop and\n // tell parent loops to ignore following nodes.\n // Recursive call here would cause stack overflow\n return {\n jump: node.destination\n };\n } else if (node instanceof _nodes.default.StopCommandNode) {\n // ignore the rest of this outer loop and\n // tell parent loops to ignore following nodes\n return {\n stop: true\n };\n } else {\n const command = this.evaluateExpressionOrLiteral(node.command);\n yield new _results.default.CommandResult(command, node.hashtags, metadata);\n }\n }\n\n return undefined;\n }\n /**\n * yield a shortcut result then handle the subsequent selection\n * @param {any[]} selections\n */\n\n\n *handleShortcuts(selections, metadata) {\n // Multiple options to choose from (or just a single shortcut)\n // Tag any conditional dialog options that result to false,\n // the consuming app does the actual filtering or whatever\n const transformedSelections = selections.map(s => {\n let isAvailable = true;\n\n if (s.conditionalExpression && !this.evaluateExpressionOrLiteral(s.conditionalExpression)) {\n isAvailable = false;\n }\n\n const text = this.evaluateExpressionOrLiteral(s.text);\n return Object.assign(s, {\n isAvailable,\n text\n });\n });\n const optionsResult = new _results.default.OptionsResult(transformedSelections, metadata);\n yield optionsResult;\n\n if (typeof optionsResult.selected === 'number') {\n const selectedOption = transformedSelections[optionsResult.selected];\n\n if (selectedOption.content) {\n // Recursively go through the nodes nested within\n return yield* this.evalNodes(selectedOption.content, metadata);\n }\n } else {\n throw new Error('No option selected before resuming dialogue');\n }\n\n return undefined;\n }\n /**\n * Evaluates the given assignment node\n */\n\n\n evaluateAssignment(node) {\n const result = this.evaluateExpressionOrLiteral(node.expression);\n const oldValue = this.variables.get(node.variableName);\n\n if (oldValue && typeof oldValue !== typeof result) {\n throw new Error(\"Variable \".concat(node.variableName, \" is already type \").concat(typeof oldValue, \"; cannot set equal to \").concat(result, \" of type \").concat(typeof result));\n }\n\n this.variables.set(node.variableName, result);\n }\n /**\n * Evaluates the given conditional node\n * Returns the statements to be run as a result of it (if any)\n */\n\n\n evaluateConditional(node) {\n if (node.type === 'IfNode') {\n if (this.evaluateExpressionOrLiteral(node.expression)) {\n return node.statement;\n }\n } else if (node.type === 'IfElseNode' || node.type === 'ElseIfNode') {\n if (this.evaluateExpressionOrLiteral(node.expression)) {\n return node.statement;\n }\n\n if (node.elseStatement) {\n return this.evaluateConditional(node.elseStatement);\n }\n } else {\n // ElseNode\n return node.statement;\n }\n\n return null;\n }\n\n evaluateFunctionCall(node) {\n if (this.functions[node.functionName]) {\n return this.functions[node.functionName](...node.args.map(this.evaluateExpressionOrLiteral, this));\n }\n\n throw new Error(\"Function \\\"\".concat(node.functionName, \"\\\" not found\"));\n }\n /**\n * Evaluates an expression or literal down to its final value\n */\n\n\n evaluateExpressionOrLiteral(node) {\n // A combined array of text and inline expressions to be treated as one.\n // Could probably be cleaned up by introducing a new node type.\n if (Array.isArray(node)) {\n return node.reduce((acc, n) => {\n return acc + this.evaluateExpressionOrLiteral(n).toString();\n }, '');\n }\n\n const nodeHandlers = {\n UnaryMinusExpressionNode: a => {\n return -a;\n },\n ArithmeticExpressionAddNode: (a, b) => {\n return a + b;\n },\n ArithmeticExpressionMinusNode: (a, b) => {\n return a - b;\n },\n ArithmeticExpressionExponentNode: (a, b) => {\n return a ** b;\n },\n ArithmeticExpressionMultiplyNode: (a, b) => {\n return a * b;\n },\n ArithmeticExpressionDivideNode: (a, b) => {\n return a / b;\n },\n ArithmeticExpressionModuloNode: (a, b) => {\n return a % b;\n },\n NegatedBooleanExpressionNode: a => {\n return !a;\n },\n BooleanOrExpressionNode: (a, b) => {\n return a || b;\n },\n BooleanAndExpressionNode: (a, b) => {\n return a && b;\n },\n BooleanXorExpressionNode: (a, b) => {\n return !!(a ^ b);\n },\n // eslint-disable-line no-bitwise\n EqualToExpressionNode: (a, b) => {\n return a === b;\n },\n NotEqualToExpressionNode: (a, b) => {\n return a !== b;\n },\n GreaterThanExpressionNode: (a, b) => {\n return a > b;\n },\n GreaterThanOrEqualToExpressionNode: (a, b) => {\n return a >= b;\n },\n LessThanExpressionNode: (a, b) => {\n return a < b;\n },\n LessThanOrEqualToExpressionNode: (a, b) => {\n return a <= b;\n },\n TextNode: a => {\n return a.text;\n },\n EscapedCharacterNode: a => {\n return this.noEscape ? a.text : a.text.slice(1);\n },\n NumericLiteralNode: a => {\n return parseFloat(a.numericLiteral);\n },\n StringLiteralNode: a => {\n return \"\".concat(a.stringLiteral);\n },\n BooleanLiteralNode: a => {\n return a.booleanLiteral === 'true';\n },\n VariableNode: a => {\n return this.variables.get(a.variableName);\n },\n FunctionCallNode: a => {\n return this.evaluateFunctionCall(a);\n },\n InlineExpressionNode: a => {\n return a;\n }\n };\n const handler = nodeHandlers[node.type];\n\n if (!handler) {\n throw new Error(\"node type not recognized: \".concat(node.type));\n }\n\n return handler(node instanceof nodeTypes.Expression ? this.evaluateExpressionOrLiteral(node.expression || node.expression1) : node, node.expression2 ? this.evaluateExpressionOrLiteral(node.expression2) : node);\n }\n\n}\n\nvar _default = {\n Runner,\n TextResult: _results.default.TextResult,\n CommandResult: _results.default.CommandResult,\n OptionsResult: _results.default.OptionsResult\n};\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 352:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _yarnBound = _interopRequireDefault(__webpack_require__(424));\n\nvar _index = _interopRequireDefault(__webpack_require__(167));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst {\n OptionsResult,\n TextResult,\n CommandResult\n} = _index.default;\n_yarnBound.default.OptionsResult = OptionsResult;\n_yarnBound.default.TextResult = TextResult;\n_yarnBound.default.CommandResult = CommandResult;\nvar _default = _yarnBound.default;\nexports[\"default\"] = _default;\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 279:\n/***/ ((module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = parseLine;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// mutates node, processing [markup /] and `character:`\nfunction parseLine(node, locale) {\n node.markup = [];\n parseCharacterLabel(node);\n parseMarkup(node, locale);\n node.text = node.text.replace(/(?:\\\\(.))/g, '$1');\n}\n\nfunction parseCharacterLabel(node) {\n const match = node.text.match(/^(\\S+):\\s+/);\n\n if (match) {\n node.text = node.text.replace(match[0], '');\n node.markup.push({\n name: 'character',\n properties: {\n name: match[1]\n }\n });\n }\n}\n\nfunction parseMarkup(node, locale) {\n const attributes = [];\n let noMarkup = false;\n const attributeRegex = /(^|[^\\\\])\\[(.*?[^\\\\])\\](.|$)/;\n let textRemaining = node.text;\n let resultText = '';\n let match = textRemaining.match(attributeRegex);\n\n while (match) {\n const {\n index\n } = match;\n const [wholeMatch, charBefore, contents, charAfter] = match;\n const hasLeadingSpace = /\\s/.test(charBefore);\n const hasTrailingSpace = /\\s/.test(charAfter);\n\n const attribute = _objectSpread(_objectSpread({}, parseAttributeContents(contents, locale)), {}, {\n position: resultText.length + index + charBefore.length\n });\n\n if (!noMarkup || attribute.name === 'nomarkup') {\n const isReplacementTag = attribute.name === 'select' || attribute.name === 'plural' || attribute.name === 'ordinal';\n const shouldTrim = !isReplacementTag && attribute.isSelfClosing && attribute.properties && attribute.properties.trimwhitespace !== false && (index === 0 && hasTrailingSpace || hasLeadingSpace && hasTrailingSpace);\n\n if (attribute.properties) {\n delete attribute.properties.trimwhitespace;\n }\n\n const replacement = charBefore + (attribute.replacement || '') + (shouldTrim ? charAfter.slice(1) : charAfter);\n textRemaining = textRemaining.replace(attributeRegex, replacement); // inner slices are because charAfter could be an opening square bracket\n\n resultText += textRemaining.slice(0, index + replacement.slice(1).length);\n textRemaining = textRemaining.slice(index + replacement.slice(1).length);\n\n if (!isReplacementTag && attribute.name !== 'nomarkup') {\n attributes.push(attribute);\n }\n } else {\n // -1s are because charAfter could be an opening square bracket\n resultText += textRemaining.slice(0, index + wholeMatch.length - 1);\n textRemaining = textRemaining.slice(index + wholeMatch.length - 1);\n }\n\n if (attribute.name === 'nomarkup') {\n noMarkup = !attribute.isClosing;\n }\n\n match = textRemaining.match(attributeRegex);\n }\n\n node.text = resultText + textRemaining; // Escaped bracket support might need some TLC.\n\n const escapedCharacterRegex = /\\\\(\\[|\\])/;\n match = node.text.match(escapedCharacterRegex);\n textRemaining = node.text;\n resultText = '';\n\n while (match) {\n const char = match[1];\n attributes.forEach(attr => {\n if (attr.position > resultText.length + match.index) {\n attr.position -= 1;\n }\n });\n textRemaining = textRemaining.replace(escapedCharacterRegex, char);\n resultText += textRemaining.slice(0, match.index + 1);\n textRemaining = textRemaining.slice(match.index + 1);\n match = textRemaining.match(escapedCharacterRegex);\n }\n\n node.text = resultText + textRemaining;\n const openTagStacks = {};\n attributes.forEach(attr => {\n if (!openTagStacks[attr.name]) {\n openTagStacks[attr.name] = [];\n }\n\n if (attr.isClosing && !openTagStacks[attr.name].length) {\n throw new Error(\"Encountered closing \".concat(attr.name, \" tag before opening tag\"));\n } else if (attr.isClosing) {\n const openTag = openTagStacks[attr.name].pop();\n node.markup.push({\n name: openTag.name,\n position: openTag.position,\n properties: openTag.properties,\n length: attr.position - openTag.position\n });\n } else if (attr.isSelfClosing) {\n node.markup.push({\n name: attr.name,\n position: attr.position,\n properties: attr.properties,\n length: 0\n });\n } else if (attr.isCloseAll) {\n const openTags = Object.values(openTagStacks).flat();\n\n while (openTags.length) {\n const openTag = openTags.pop();\n node.markup.push({\n name: openTag.name,\n position: openTag.position,\n properties: openTag.properties,\n length: attr.position - openTag.position\n });\n }\n } else {\n openTagStacks[attr.name].push({\n name: attr.name,\n position: attr.position,\n properties: attr.properties\n });\n }\n });\n}\n\nfunction parseAttributeContents(contents, locale) {\n const nameMatch = contents.match(/^\\/?([^\\s=/]+)(\\/|\\s|$)/);\n const isClosing = contents[0] === '/';\n const isSelfClosing = contents[contents.length - 1] === '/';\n const isCloseAll = contents === '/';\n\n if (isCloseAll) {\n return {\n name: 'closeall',\n isCloseAll: true\n };\n } else if (isClosing) {\n return {\n name: nameMatch[1],\n isClosing: true\n };\n } else {\n const propertyAssignmentsText = nameMatch ? contents.replace(nameMatch[0], '') : contents;\n const propertyAssignments = propertyAssignmentsText.match(/(\\S+?\".*?\"|[^\\s/]+)/g);\n let properties = {};\n\n if (propertyAssignments) {\n properties = propertyAssignments.reduce((acc, propAss) => {\n return _objectSpread(_objectSpread({}, acc), parsePropertyAssignment(propAss));\n }, {});\n }\n\n const name = nameMatch && nameMatch[1] || Object.keys(properties)[0];\n let replacement;\n\n if (name === 'select') {\n replacement = processSelectAttribute(properties);\n } else if (name === 'plural') {\n replacement = processPluralAttribute(properties, locale);\n } else if (name === 'ordinal') {\n replacement = processOrdinalAttribute(properties, locale);\n }\n\n return {\n name,\n properties,\n isSelfClosing,\n replacement\n };\n }\n}\n\nfunction parsePropertyAssignment(propAss) {\n const [propName, ...rest] = propAss.split('=');\n const stringValue = rest.join('='); // just in case string value had a = in it\n\n if (!propName || !stringValue) {\n throw new Error(\"Invalid markup property assignment: \".concat(propAss));\n }\n\n let value;\n\n if (stringValue === 'true' || stringValue === 'false') {\n value = stringValue === 'true';\n } else if (/^-?\\d*\\.?\\d+$/.test(stringValue)) {\n value = +stringValue;\n } else if (stringValue[0] === '\"' && stringValue[stringValue.length - 1] === '\"') {\n value = stringValue.slice(1, -1);\n } else {\n value = stringValue;\n }\n\n return {\n [propName]: value\n };\n}\n\nfunction processSelectAttribute(properties) {\n return properties[properties.value];\n}\n\nfunction processPluralAttribute(properties, locale) {\n return properties[new Intl.PluralRules(locale).select(properties.value)].replace(/%/g, properties.value);\n}\n\nfunction processOrdinalAttribute(properties, locale) {\n return properties[new Intl.PluralRules(locale, {\n type: 'ordinal'\n }).select(properties.value)].replace(/%/g, properties.value);\n}\n\nmodule.exports = exports.default;\n\n/***/ }),\n\n/***/ 424:\n/***/ ((module, exports, __webpack_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\n\nvar _index = _interopRequireDefault(__webpack_require__(167));\n\nvar _lineParser = _interopRequireDefault(__webpack_require__(279));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nclass YarnBound {\n constructor(_ref) {\n let {\n dialogue,\n variableStorage,\n functions,\n handleCommand,\n combineTextAndOptionsResults,\n locale,\n startAt = 'Start'\n } = _ref;\n this.handleCommand = handleCommand;\n this.combineTextAndOptionsResults = combineTextAndOptionsResults;\n this.bondage = _index.default;\n this.bufferedNode = null;\n this.currentResult = null;\n this.history = [];\n this.locale = locale;\n this.runner = new _index.default.Runner();\n this.runner.noEscape = true;\n this.runner.load(dialogue);\n\n if (variableStorage) {\n variableStorage.display = variableStorage.display || variableStorage.get;\n this.runner.setVariableStorage(variableStorage);\n }\n\n if (functions) {\n Object.entries(functions).forEach(entry => {\n this.registerFunction(...entry);\n });\n }\n\n this.jump(startAt);\n }\n\n jump(startAt) {\n this.generator = this.runner.run(startAt);\n this.bufferedNode = null;\n this.advance();\n }\n\n advance(optionIndex) {\n if (typeof optionIndex !== 'undefined' && this.currentResult && this.currentResult.select) {\n this.currentResult.select(optionIndex);\n }\n\n let next = this.bufferedNode || this.generator.next().value;\n let buffered = null; // We either return the command as normal or, if a handler\n // is supplied, use that and don't bother the consuming app\n\n if (this.handleCommand) {\n while (next instanceof _index.default.CommandResult) {\n this.handleCommand(next);\n next = this.generator.next().value;\n }\n } // Lookahead for combining text + options, and for end of dialogue.\n // Can't look ahead of option nodes (what would you look ahead at?)\n\n\n if (!(next instanceof _index.default.OptionsResult)) {\n const upcoming = this.generator.next();\n buffered = upcoming.value;\n\n if (next instanceof _index.default.TextResult && this.combineTextAndOptionsResults && buffered instanceof _index.default.OptionsResult) {\n next = Object.assign(buffered, next);\n buffered = null;\n } else if (next && upcoming.done) {\n next = Object.assign(next, {\n isDialogueEnd: true\n });\n }\n }\n\n if (this.currentResult) {\n this.history.push(this.currentResult);\n }\n\n if (next instanceof _index.default.TextResult) {\n (0, _lineParser.default)(next, this.locale);\n } else if (next instanceof _index.default.OptionsResult) {\n if (next.text) {\n (0, _lineParser.default)(next, this.locale);\n }\n\n next.options.forEach(option => {\n (0, _lineParser.default)(option, this.locale);\n });\n }\n\n this.currentResult = next;\n this.bufferedNode = buffered;\n }\n\n registerFunction(name, func) {\n this.runner.registerFunction(name, func);\n }\n\n}\n\nexports[\"default\"] = YarnBound;\nmodule.exports = exports.default;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module is referenced by other modules so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(352);\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});", "// @ts-ignore\nimport YarnBound from 'yarn-bound';\nimport { getCommand } from './commands';\nimport { functions } from './functions';\nimport { splitSpacesExcludeQuotes } from './split-spaces-exclude-quotes';\nimport { YarnNodeType } from './types';\nimport { wrap } from './wrap';\n\ndeclare global {\n interface Game_System {\n variableStorage: () => Map;\n _variableStorage: Map;\n }\n}\n\nexport function initializeVariableStorage() {\n Game_System.prototype.variableStorage = function () {\n if (!this._variableStorage) {\n this._variableStorage = new Map();\n }\n return this._variableStorage;\n };\n return new Map();\n}\n\nconst MAX_DIALOG_EXHAUSTION = 3;\n\nPluginManager.registerCommand('pixelmapYarnSpinner', 'yarn', invokeYarn);\n\nfunction invokeYarn(this: any, args: any) {\n const callingEventId: number = this._eventId as number;\n return fetch(args['Yarn File Path']).then((response) => {\n if (!response.ok) {\n throw new Error('HTTP error ' + response.status); // Rejects the promise\n }\n const prefix = args['Yarn File Path'].split('.')[0].replace('dialog/', '');\n const startAt = args['Start At'];\n void response.text().then((dialogue) => {\n yarnSpinnerProcesser(prefix, dialogue, startAt, callingEventId).catch((e) => {\n console.error(e);\n });\n });\n });\n}\n\nexport async function yarnSpinnerProcesser(prefix: string, dialogue: string, startAt: string, callingEventId: number) {\n const variableStorage = new VariableStorage(prefix);\n\n // Stardew Mode is heavily opinionated, and based on https://stardewvalleywiki.com/Modding:Dialogue\n if (startAt == 'StardewMode') {\n startAt = getStardewModeNode(variableStorage, dialogue);\n }\n\n const runner = new YarnBound({\n dialogue,\n startAt: startAt,\n functions: functions,\n variableStorage: variableStorage,\n });\n\n await processYarnDialog(runner, callingEventId);\n}\n\nfunction getStardewModeNode(variableStorage: VariableStorage, dialogue: string) {\n // Holiday / Special Events\n\n // Process Exhaustion\n let exhaustion: number = variableStorage.getExhaustion();\n if (!exhaustion) {\n exhaustion = 0;\n }\n if (exhaustion >= MAX_DIALOG_EXHAUSTION) {\n return getRandomNodeOfType(YarnNodeType.Exhausted, dialogue);\n }\n variableStorage.set('dialog_exhaustion', exhaustion + 1);\n\n // Have we already met the character?\n const introduced = variableStorage.get('introduced');\n if (!introduced) {\n variableStorage.set('introduced', true);\n return 'Start';\n }\n\n // If nothing else matches, grab one of the Anytime nodes\n return getRandomNodeOfType(YarnNodeType.Anytime, dialogue);\n}\n\nfunction getNodes(dialogue: string) {\n // Create Temporary Runner for lookups\n const tempRunner = new YarnBound({\n dialogue,\n });\n return Object.entries(tempRunner.runner.yarnNodes);\n}\n\nfunction getRandomNodeOfType(type: YarnNodeType, dialogue: string) {\n const nodes = getNodes(dialogue);\n const filtered = nodes.filter((node) => {\n return node[0].includes(type);\n });\n return filtered[Math.floor(Math.random() * filtered.length)][0];\n}\n\n/**\n * Updates the character's face image within gameMessage if available.\n * @param currentResult\n */\nfunction updateCharacterPortrait(currentResult: any) {\n const character = currentResult.markup.find((markup: { name: string }) => {\n return markup.name === 'character';\n });\n if (character) {\n $gameMessage.setFaceImage(character.properties.name.toLowerCase(), 0);\n }\n}\n\nfunction addFormattedGameMessage(currentResult: any) {\n if (currentResult.text.trim().length > 0) {\n let text = currentResult.text;\n\n // Add Special Color\n const special = currentResult.markup.find((markup: { name: string }) => {\n return markup.name === 'special';\n });\n if (special) {\n text =\n currentResult.text.slice(0, special.position) +\n '\\\\C[1]' +\n currentResult.text.slice(special.position, special.position + special.length) +\n '\\\\C[0]' +\n currentResult.text.slice(special.position + special.length);\n }\n $gameMessage.add(wrap(text, { width: 58 }));\n }\n}\n\nasync function processYarnDialog(runner: YarnBound, callingEventId: number) {\n const currentResult = runner.currentResult;\n switch (currentResult.constructor) {\n case YarnBound.TextResult:\n updateCharacterPortrait(currentResult);\n addFormattedGameMessage(currentResult);\n\n if (!currentResult.isDialogueEnd) {\n if (currentResult.text.trim().length > 0) {\n // $gameMessage.newPage();\n }\n runner.advance();\n await processYarnDialog(runner, callingEventId);\n }\n break;\n case YarnBound.OptionsResult:\n const choices = []; // Because some choices may NOT be available, the index within the choices array does\n const choiceIndexMap = {}; // not always match the index in yarn. Because of that, we store the position\n let arrayIndex = 0; // of each option in BOTH arrays within a dictionary, so we can reference them in\n let yarnIndex = 0; // the callback.\n for (const option of currentResult.options) {\n if (option.isAvailable) {\n // @ts-ignore\n choices.push(option.text);\n // @ts-ignore\n choiceIndexMap[arrayIndex] = yarnIndex;\n arrayIndex = arrayIndex + 1;\n }\n yarnIndex = yarnIndex + 1;\n }\n\n $gameMessage.setChoices(choices, 0, 0);\n\n $gameMessage.setChoiceCallback(async (responseIndex) => {\n // @ts-ignore\n runner.advance(choiceIndexMap[responseIndex]);\n await processYarnDialog(runner, callingEventId);\n });\n break;\n case YarnBound.CommandResult:\n await commandHandler(currentResult, callingEventId);\n if (!currentResult.isDialogueEnd) {\n runner.advance();\n await processYarnDialog(runner, callingEventId);\n }\n break;\n default:\n break;\n }\n}\n\nasync function commandHandler(cmdResult: YarnBound.CommandResult, callingEventId: number) {\n // This matcher splits by spaces, but ignores spaces within quotes\n const splitCmd = splitSpacesExcludeQuotes(cmdResult.command);\n\n const cmd = splitCmd[0];\n await getCommand(cmd, splitCmd.slice(1), callingEventId);\n\n // break;\n // case 'FadeToBlackAndBack':\n // if (splitCmd.length == 2) {\n // // @ts-ignore\n // SceneManager._scene._active = false;\n // $gameScreen.startFadeOut(30);\n // await new Promise((r) => setTimeout(r, parseInt(splitCmd[1])));\n // $gameScreen.startFadeIn(30);\n // // @ts-ignore\n // SceneManager._scene._active = true;\n // } else {\n // console.log('Invalid argument number passed into FadeToBlackAndBack!');\n // }\n // break;\n\n // break;\n // // case 'BuyHouse':\n // // if (splitCmd.length == 1) {\n // // buyHouse();\n // // } else {\n // // console.log('Invalid argument number passed into PlaySound!');\n // // }\n // // break;\n // default:\n // console.log('No support yet for command: ' + cmd);\n // }\n}\n\nclass VariableStorage {\n storage: Map;\n prefix: string;\n\n constructor(prefix: string) {\n // this.storage = MMO_Core_Player.mmoVariableStorage as Map;\n this.storage = new Map();\n this.prefix = prefix;\n }\n\n getExhaustion() {\n return this.storage.get(this.prefix + '_dialog_exhaustion') as number;\n }\n\n get(key: string) {\n if (key.startsWith('dynamic_')) {\n return getDynamicValue(key.replace('dynamic_', ''));\n }\n const retrievalKey = key.startsWith('global_') ? key : this.prefix + '_' + key;\n return this.storage.get(retrievalKey);\n }\n\n set(key: string, value: any) {\n const retrievalKey = key.startsWith('global_') ? key : this.prefix + '_' + key;\n this.storage.set(retrievalKey, value);\n }\n}\n\nfunction getDynamicValue(variableName: string): any {\n console.log(variableName);\n return true;\n // switch (variableName) {\n // case 'playerOwnsTile':\n // return true;\n // // return MMO_Core_Player.playerOwnsNFT('0x050dc61dfb867e0fe3cf2948362b6c0f3faf790b');\n // case 'playerOwnsHouse':\n // return true;\n // // return !!MMO_Core_Player.Player.house;\n // }\n}\n\n// MonkeyPatch by Hudell, without this, it's impossible to call messages AFTER a choice callback\n// https://forums.rpgmakerweb.com/index.php?threads/script-works-but-not-in-a-conditional-explanation-please.71461/\nWindow_ChoiceList.prototype.callOkHandler = function () {\n const callback = $gameMessage._choiceCallback;\n const index = this.index();\n\n // @ts-ignore\n this._messageWindow.terminateMessage();\n this.close();\n\n if (callback) {\n callback(index);\n }\n};\n\nWindow_ChoiceList.prototype.callCancelHandler = function () {\n const callback = $gameMessage._choiceCallback;\n const index = $gameMessage.choiceCancelType();\n\n // @ts-ignore\n this._messageWindow.terminateMessage();\n this.close();\n\n if (callback) {\n callback(index);\n }\n};\n", "export function addGold(args: Array) {\n if (args.length != 1) {\n throw new Error('Invalid number of arguments');\n }\n $gameParty.gainGold(parseInt(args[0]));\n}\n", "export function getItemIdFromName(itemName: string): number {\n for (const item of $dataItems) {\n if (item && item.name === itemName) {\n return item.id;\n }\n }\n throw 'Item could not be found by name';\n}\n\nexport function getEventIdByName(name: string): number {\n for (const event of $dataMap.events) {\n if (event?.name == name) {\n return event.id;\n }\n }\n throw new Error('Could not locate an event with name: ' + name);\n}\n", "import { getItemIdFromName } from './utils';\n\nexport function addItem(args: Array) {\n if (args.length < 1 || args.length > 2) {\n throw new Error('Invalid number of arguments');\n }\n const [itemName, quantity = '1'] = args;\n $gameParty.gainItem($dataItems[getItemIdFromName(itemName)], parseInt(quantity), false);\n}\n", "export function fadeIn(args: Array) {\n if (args.length > 1) {\n throw new Error('Invalid number of arguments');\n }\n const [duration = 24] = args;\n $gameScreen.startTint([0, 0, 0, 0], duration);\n $gameScreen.startFadeIn(duration);\n}\n", "export function fadeOut(args: Array) {\n if (args.length > 6) {\n throw new Error('Invalid number of arguments');\n }\n const [duration = 24, red = 0, green = 0, blue = 0, grey = 0, alpha = 1] = args;\n\n if (args.length <= 1) {\n $gameScreen.startFadeOut(duration);\n } else {\n $gameScreen.startTint([red * alpha, green * alpha, blue * alpha, grey * alpha], duration);\n }\n}\n", "export function flashScreen(args: Array) {\n if (args.length > 6) {\n throw new Error('Invalid number of arguments');\n }\n const [duration = 8, red = 0, green = 0, blue = 0, intensity = 255] = args;\n $gameScreen.startFlash([red, green, blue, intensity], duration);\n}\n", "import { getEventIdByName } from './utils';\n\nexport function hideEntity(args: Array, _callingEventId: number) {\n // Input Validation\n if (args.length > 1) {\n throw new Error('Invalid number of arguments');\n }\n\n // If no entity passed in, default to the entity that called hideEntity\n const targetEventId = getEventIdByName(args[0]) ?? _callingEventId;\n const gameEvent = $gameMap.event(targetEventId);\n\n gameEvent.setOpacity(0);\n}\n", "export enum DIRECTION {\n UP = 8,\n DOWN = 2,\n LEFT = 4,\n RIGHT = 6,\n}\n", "import { DIRECTION } from './enums';\nimport { getEventIdByName } from './utils';\n\n/**\n * Move an event\n * @example <>\n */\nexport function moveEvent(args: Array, _callingEventId: number) {\n if (args.length < 3 || args.length > 4) {\n throw new Error('Invalid number of arguments');\n }\n\n const [directionName, distanceAsStr, speed, eventName = null] = args;\n const targetEventId = eventName ? getEventIdByName(eventName) : _callingEventId;\n const event = $gameMap._events[targetEventId];\n\n const distance = parseInt(distanceAsStr);\n const direction: DIRECTION = DIRECTION[directionName.toUpperCase() as keyof typeof DIRECTION];\n\n // Force through other events, otherwise it's really inconsistent\n event.setThrough(true);\n\n if (event.isMoving()) {\n setTimeout(() => {\n moveEvent(args, _callingEventId);\n }, 60);\n } else {\n event.moveStraight(direction);\n const distanceRemaining = distance - 1;\n setTimeout(() => {\n event.setThrough(false);\n if (distanceRemaining > 0) {\n moveEvent([args[0], distanceRemaining.toString(), speed, args[3]], _callingEventId);\n }\n }, 60);\n }\n}\n", "export function playMusic(args: Array) {\n if (args.length < 1 || args.length > 2) {\n throw new Error('Invalid number of arguments');\n }\n\n const musicName = args[0];\n const volume = args[1] ? parseInt(args[1]) : 100;\n\n AudioManager.playBgm({\n name: musicName,\n pos: 0,\n pan: 0,\n pitch: 100,\n volume: volume,\n });\n}\n", "export function playSound(args: Array) {\n if (args.length != 2) {\n throw new Error('Invalid number of arguments');\n }\n\n const soundName = args[0];\n const volume = parseInt(args[1]);\n\n AudioManager.playSe({\n name: soundName,\n pan: 0,\n pitch: 100,\n volume: volume,\n pos: 0,\n });\n}\n", "export function removeGold(args: Array) {\n if (args.length != 1) {\n throw new Error('Invalid number of arguments');\n }\n $gameParty.loseGold(parseInt(args[0]));\n}\n", "import { getItemIdFromName } from './utils';\n\nexport function removeItem(args: Array) {\n if (args.length != 2) {\n throw new Error('Invalid number of arguments');\n }\n $gameParty.loseItem($dataItems[getItemIdFromName(args[0])], parseInt(args[1]), false);\n}\n", "/**\n * Sets the background of the message window; options are 0 (fully opaque), 1 (transparent), 2 (invisible background). The default is 0.\n * @param args\n */\nexport function setBackground(args: Array) {\n if (args.length != 1) {\n throw new Error('Invalid number of arguments');\n }\n const opacity = parseInt(args[0]);\n if (opacity < 0 || opacity > 2) {\n throw new Error('Invalid opacity level, must be between 0 and two');\n }\n\n $gameMessage.setBackground(opacity);\n}\n", "import { DIRECTION } from './enums';\nimport { getEventIdByName } from './utils';\n\nexport function setFacing(args: Array, _callingEventId: number) {\n if (args.length < 1 || args.length > 2) {\n throw new Error('Invalid number of arguments');\n }\n const targetEventId = args[1] ? getEventIdByName(args[1]) : _callingEventId;\n const direction: DIRECTION = DIRECTION[args[0].toUpperCase() as keyof typeof DIRECTION];\n $gameMap._events[targetEventId].setDirection(direction);\n}\n", "import { getEventIdByName } from './utils';\n\nexport function showEntity(args: Array) {\n if (args.length > 2) {\n throw new Error('Invalid number of arguments');\n }\n\n let opacity = 1;\n if (args.length > 1) {\n opacity = parseFloat(args[1]);\n }\n const gameEvent = $gameMap.event(getEventIdByName(args[0]));\n\n if (opacity > 1) {\n throw new Error('Opacity greater than 1, please use a value between 0 and 1');\n }\n if (opacity < 0) {\n throw new Error('Opacity less than 0, please use a value between 0 and 1');\n }\n\n const opacityInHexFormat = opacity * 255; // 255 is fully opaque\n gameEvent.setOpacity(opacityInHexFormat);\n}\n", "export async function wait(args: Array) {\n if (args.length > 1) {\n throw new Error('Invalid number of arguments');\n }\n await new Promise((r) => setTimeout(r, parseInt(args[0])));\n}\n", "import { addGold } from './addGold';\nimport { addItem } from './addItem';\nimport { fadeIn } from './fadeIn';\nimport { fadeOut } from './fadeOut';\nimport { flashScreen } from './flashScreen';\nimport { hideEntity } from './hideEntity';\nimport { moveEvent } from './moveEvent';\nimport { playMusic } from './playMusic';\nimport { playSound } from './playSound';\nimport { removeGold } from './removeGold';\nimport { removeItem } from './removeItem';\nimport { setBackground } from './setBackground';\nimport { setFacing } from './setFacing';\nimport { showEntity } from './showEntity';\nimport { wait } from './wait';\n\nexport const commands = {\n add_item: addItem,\n add_gold: addGold,\n fade_out: fadeOut,\n fade_in: fadeIn,\n flash_screen: flashScreen,\n hide_entity: hideEntity,\n move_event: moveEvent,\n play_music: playMusic,\n play_sound: playSound,\n remove_item: removeItem,\n remove_gold: removeGold,\n set_facing: setFacing,\n show_entity: showEntity,\n wait: wait,\n set_background: setBackground,\n};\n\nexport function getCommand(command: keyof typeof commands, args: any, callingEventId: number) {\n if (commands[command]) {\n return commands[command](args, callingEventId) as unknown as Function;\n }\n throw new Error('Invalid command');\n}\n", "export function playerHasItemByName(itemName: string) {\n for (const item of $dataItems) {\n if (item && item.name === itemName) {\n return $gameParty.hasItem(item, true);\n }\n }\n return false;\n}\n", "import { playerHasItemByName } from '../playerHasItemByName';\n\nexport function hasItem(itemName: string) {\n return playerHasItemByName(itemName);\n}\n", "export function randomRange(min: number, max: number) {\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n", "import { hasItem } from './hasItem';\nimport { randomRange } from './randomRange';\n\nexport const functions = {\n has_item: hasItem,\n random_range: randomRange,\n};\n", "/**\n * Splits a string on each space, unless the space is within a pair of quotes.\n * @param input\n */\nexport function splitSpacesExcludeQuotes(input: string) {\n const matches = input.match(/\\\\?.|^$/g);\n if (matches) {\n // @ts-ignore\n return matches.reduce(\n (p: { quote: number; a: any[] }, c: string) => {\n if (c === '\"') {\n // eslint-disable-next-line no-bitwise\n p.quote ^= 1;\n } else if (!p.quote && c === ' ') {\n p.a.push('');\n } else {\n p.a[p.a.length - 1] += c.replace(/\\\\(.)/, '$1');\n }\n return p;\n },\n { a: [''] },\n // @ts-ignore\n ).a;\n }\n}\n", "export function wrap(\n str: string,\n options: {\n trim?: boolean;\n cut?: boolean;\n escape?: string;\n newline?: string;\n width?: number;\n indent?: string;\n },\n) {\n options = options || {};\n if (str == null) {\n return str;\n }\n const width = options.width || 50;\n const indent = typeof options.indent === 'string' ? options.indent : '';\n const newline = options.newline || '\\n' + indent;\n const escape = typeof options.escape === 'function' ? options.escape : identity;\n let regexString = '.{1,' + width + '}';\n if (!options.cut) {\n regexString += '([\\\\s\\u200B]+|$)|[^\\\\s\\u200B]+?([\\\\s\\u200B]+|$)';\n }\n const re = new RegExp(regexString, 'g');\n const lines = str.match(re) || [];\n let result =\n indent +\n lines\n .map(function (line) {\n if (line.slice(-1) === '\\n') {\n line = line.slice(0, line.length - 1);\n }\n return escape(line);\n })\n .join(newline);\n if (options.trim) {\n result = result.replace(/[ \\t]*$/gm, '');\n }\n return result;\n}\n\nfunction identity(str: string) {\n return str;\n}\n"], + "mappings": "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AI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN;AAAA,gBACA,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,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D,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,gBACN,GAAG;AAAA,kBACD,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBACJ,IAAI;AAAA,kBAC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", + "names": ["module", "exports", "__webpack_require__", "o", "lex", "YarnBound", "functions", "DIRECTION", "YarnBound"] } diff --git a/src/commands/addItem.ts b/src/commands/addItem.ts index cd63ac1..3ad0ce5 100644 --- a/src/commands/addItem.ts +++ b/src/commands/addItem.ts @@ -1,8 +1,9 @@ import { getItemIdFromName } from './utils'; export function addItem(args: Array) { - if (args.length != 2) { + if (args.length < 1 || args.length > 2) { throw new Error('Invalid number of arguments'); } - $gameParty.gainItem($dataItems[getItemIdFromName(args[0])], parseInt(args[1]), false); + const [itemName, quantity = '1'] = args; + $gameParty.gainItem($dataItems[getItemIdFromName(itemName)], parseInt(quantity), false); } diff --git a/src/commands/index.ts b/src/commands/index.ts index 9503a61..d6777e1 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -15,21 +15,21 @@ import { showEntity } from './showEntity'; import { wait } from './wait'; export const commands = { - AddItem: addItem, - AddGold: addGold, - FadeOut: fadeOut, - FadeIn: fadeIn, - FlashScreen: flashScreen, - HideEntity: hideEntity, - MoveEvent: moveEvent, - PlayMusic: playMusic, - PlaySound: playSound, - RemoveItem: removeItem, - RemoveGold: removeGold, - SetFacing: setFacing, - ShowEntity: showEntity, - Wait: wait, - SetBackground: setBackground, + add_item: addItem, + add_gold: addGold, + fade_out: fadeOut, + fade_in: fadeIn, + flash_screen: flashScreen, + hide_entity: hideEntity, + move_event: moveEvent, + play_music: playMusic, + play_sound: playSound, + remove_item: removeItem, + remove_gold: removeGold, + set_facing: setFacing, + show_entity: showEntity, + wait: wait, + set_background: setBackground, }; export function getCommand(command: keyof typeof commands, args: any, callingEventId: number) { diff --git a/src/functions/hasItem.ts b/src/functions/hasItem.ts new file mode 100644 index 0000000..ccee3d0 --- /dev/null +++ b/src/functions/hasItem.ts @@ -0,0 +1,5 @@ +import { playerHasItemByName } from '../playerHasItemByName'; + +export function hasItem(itemName: string) { + return playerHasItemByName(itemName); +} diff --git a/src/functions/index.ts b/src/functions/index.ts new file mode 100644 index 0000000..967d128 --- /dev/null +++ b/src/functions/index.ts @@ -0,0 +1,7 @@ +import { hasItem } from './hasItem'; +import { randomRange } from './randomRange'; + +export const functions = { + has_item: hasItem, + random_range: randomRange, +}; diff --git a/src/functions/randomRange.ts b/src/functions/randomRange.ts new file mode 100644 index 0000000..eec660a --- /dev/null +++ b/src/functions/randomRange.ts @@ -0,0 +1,3 @@ +export function randomRange(min: number, max: number) { + return Math.floor(Math.random() * (max - min + 1) + min); +} diff --git a/src/index.ts b/src/index.ts index 5db03d5..d08b4be 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,14 +1,11 @@ // @ts-ignore import YarnBound from 'yarn-bound'; import { getCommand } from './commands'; -import { playerHasItemByName } from './playerHasItemByName'; +import { functions } from './functions'; import { splitSpacesExcludeQuotes } from './split-spaces-exclude-quotes'; import { YarnNodeType } from './types'; import { wrap } from './wrap'; -// import { MMO_Core_Player } from '../mmoCore'; -// import { buyHouse } from '../pixelmapHouses'; - declare global { interface Game_System { variableStorage: () => Map; @@ -57,14 +54,7 @@ export async function yarnSpinnerProcesser(prefix: string, dialogue: string, sta const runner = new YarnBound({ dialogue, startAt: startAt, - functions: { - random_range: (min: number, max: number) => { - return Math.floor(Math.random() * (max - min + 1) + min); - }, - playerHasItem: (value: string) => { - return playerHasItemByName(value); - }, - }, + functions: functions, variableStorage: variableStorage, });