Files
life-of-a-naomi/js/plugins.js
2025-01-04 21:33:22 -08:00

13 lines
156 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Generated by RPG Maker.
// Do not edit this file directly.
var $plugins =
[
{"name":"BBS_VersionDisplay","status":true,"description":"v1.02 Adds display of the game version to the title screen.\nSpecial Thanks to Tsukihime for all the help.\nSpecial Thanks to 'Ramza' Michael Sweeney for all the support.\n\n============================================================================\nParameters\n============================================================================","parameters":{"Game Version Number":"1.0.1","Game Version Font":"","Version Font Size":"20","Show Version Number?":"true","Version Text Color":"white","Version Outline Color":"black","Version Outline Width":"8","Title Italic":"false","Version Text Max Width":"Graphics.width / 3"}},
{"name":"HealOnLevelUp","status":true,"description":"Allows you to heal actors on level up","parameters":{"All HP":"Y","All MP":"Y","All States":"Y"}},
{"name":"VisuMZ_0_CoreEngine","status":true,"description":"[RPG Maker MZ] [Tier 0] [Version 1.59] [CoreEngine]","parameters":{"BreakHead":"----------------------------------","CoreEngine":"Plugin Parameters","ATTENTION":"READ THE HELP FILE","BreakSettings":"----------------------------------","QoL:struct":"{\"PlayTest\":\"\",\"NewGameBoot:eval\":\"false\",\"ForceNoPlayTest:eval\":\"false\",\"OpenConsole:eval\":\"true\",\"F6key:eval\":\"true\",\"F7key:eval\":\"true\",\"NewGameCommonEvent:num\":\"0\",\"DigitGrouping\":\"\",\"DigitGroupingStandardText:eval\":\"true\",\"DigitGroupingExText:eval\":\"true\",\"DigitGroupingDamageSprites:eval\":\"true\",\"DigitGroupingGaugeSprites:eval\":\"true\",\"DigitGroupingLocale:str\":\"en-US\",\"PlayerBenefit\":\"\",\"EncounterRateMinimum:num\":\"10\",\"EscapeAlways:eval\":\"true\",\"ImprovedAccuracySystem:eval\":\"true\",\"AccuracyBoost:eval\":\"true\",\"LevelUpFullHp:eval\":\"true\",\"LevelUpFullMp:eval\":\"true\",\"Misc\":\"\",\"AntiZoomPictures:eval\":\"true\",\"AutoStretch:str\":\"stretch\",\"FontShadows:eval\":\"false\",\"FontSmoothing:eval\":\"true\",\"KeyItemProtect:eval\":\"true\",\"ModernControls:eval\":\"true\",\"NoTileShadows:eval\":\"true\",\"PixelateImageRendering:eval\":\"false\",\"RequireFocus:eval\":\"true\",\"SmartEventCollisionPriority:eval\":\"true\"}","BattleSystem:str":"stb","Color:struct":"{\"BasicColors\":\"\",\"ColorNormal:str\":\"0\",\"ColorSystem:str\":\"16\",\"ColorCrisis:str\":\"17\",\"ColorDeath:str\":\"18\",\"ColorGaugeBack:str\":\"19\",\"ColorHPGauge1:str\":\"20\",\"ColorHPGauge2:str\":\"21\",\"ColorMPGauge1:str\":\"22\",\"ColorMPGauge2:str\":\"23\",\"ColorMPCost:str\":\"23\",\"ColorPowerUp:str\":\"24\",\"ColorPowerDown:str\":\"25\",\"ColorCTGauge1:str\":\"26\",\"ColorCTGauge2:str\":\"27\",\"ColorTPGauge1:str\":\"28\",\"ColorTPGauge2:str\":\"29\",\"ColorTPCost:str\":\"29\",\"ColorPending:str\":\"#2a847d\",\"ColorExpGauge1:str\":\"30\",\"ColorExpGauge2:str\":\"31\",\"ColorMaxLvGauge1:str\":\"14\",\"ColorMaxLvGauge2:str\":\"6\",\"AlphaColors\":\"\",\"OutlineColor:str\":\"rgba(0, 0, 0, 0.6)\",\"DimColor1:str\":\"rgba(0, 0, 0, 0.6)\",\"DimColor2:str\":\"rgba(0, 0, 0, 0)\",\"ItemBackColor1:str\":\"rgba(32, 32, 32, 0.5)\",\"ItemBackColor2:str\":\"rgba(0, 0, 0, 0.5)\",\"ConditionalColors\":\"\",\"ActorHPColor:func\":\"\\\"// Set the variables used in this function.\\\\nlet actor = arguments[0];\\\\n\\\\n// Check if the actor exists. If not, return normal.\\\\nif (!actor) {\\\\n return this.normalColor();\\\\n\\\\n// If the actor is dead, return death color.\\\\n} else if (actor.isDead()) {\\\\n return this.deathColor();\\\\n\\\\n// If the actor is dying, return crisis color.\\\\n} else if (actor.isDying()) {\\\\n return this.crisisColor();\\\\n\\\\n// Otherwise, return the normal color.\\\\n} else {\\\\n return this.normalColor();\\\\n}\\\"\",\"ActorMPColor:func\":\"\\\"// Set the variables used in this function.\\\\nlet actor = arguments[0];\\\\n\\\\n// Check if the actor exists. If not, return normal.\\\\nif (!actor) {\\\\n return this.normalColor();\\\\n\\\\n// If MP rate is below 25%, return crisis color.\\\\n} else if (actor.mpRate() < 0.25) {\\\\n return this.crisisColor();\\\\n\\\\n// Otherwise, return the normal color.\\\\n} else {\\\\n return this.normalColor();\\\\n}\\\"\",\"ActorTPColor:func\":\"\\\"// Set the variables used in this function.\\\\nlet actor = arguments[0];\\\\n\\\\n// Check if the actor exists. If not, return normal.\\\\nif (!actor) {\\\\n return this.normalColor();\\\\n\\\\n// If TP rate is below 25%, return crisis color.\\\\n} else if (actor.tpRate() < 0.25) {\\\\n return this.crisisColor();\\\\n\\\\n// Otherwise, return the normal color.\\\\n} else {\\\\n return this.normalColor();\\\\n}\\\"\",\"ParamChange:func\":\"\\\"// Set the variables used in this function.\\\\nlet change = arguments[0];\\\\n\\\\n// If a positive change, use power up color.\\\\nif (change > 0) {\\\\n return this.powerUpColor();\\\\n\\\\n// If a negative change, use power down color.\\\\n} else if (change < 0) {\\\\n return this.powerDownColor();\\\\n\\\\n// Otherwise, return the normal color.\\\\n} else {\\\\n return this.normalColor();\\\\n}\\\"\",\"DamageColor:func\":\"\\\"// Set the variables used in this function.\\\\nlet colorType = arguments[0];\\\\n\\\\n// Check the value of the color type\\\\n// and return an appropriate color.\\\\nswitch (colorType) {\\\\n\\\\n case 0: // HP damage\\\\n return \\\\\\\"#ffffff\\\\\\\";\\\\n\\\\n case 1: // HP recover\\\\n return \\\\\\\"#b9ffb5\\\\\\\";\\\\n\\\\n case 2: // MP damage\\\\n return \\\\\\\"#bb88bb\\\\\\\";\\\\n\\\\n case 3: // MP recover\\\\n return \\\\\\\"#80b0ff\\\\\\\";\\\\n\\\\n default:\\\\n return \\\\\\\"#808080\\\\\\\";\\\\n}\\\"\"}","Gold:struct":"{\"GoldMax:num\":\"999999999\",\"GoldFontSize:num\":\"24\",\"GoldIcon:num\":\"314\",\"GoldOverlap:str\":\"A Lot\",\"ItemStyle:eval\":\"true\"}","ImgLoad:struct":"{\"animations:arraystr\":\"[]\",\"battlebacks1:arraystr\":\"[]\",\"battlebacks2:arraystr\":\"[]\",\"characters:arraystr\":\"[]\",\"enemies:arraystr\":\"[]\",\"faces:arraystr\":\"[]\",\"parallaxes:arraystr\":\"[]\",\"pictures:arraystr\":\"[]\",\"sv_actors:arraystr\":\"[]\",\"sv_enemies:arraystr\":\"[]\",\"system:arraystr\":\"[\\\"Balloon\\\",\\\"IconSet\\\"]\",\"tilesets:arraystr\":\"[]\",\"titles1:arraystr\":\"[]\",\"titles2:arraystr\":\"[]\"}","KeyboardInput:struct":"{\"Controls\":\"\",\"WASD:eval\":\"false\",\"DashToggleR:eval\":\"false\",\"NameInput\":\"\",\"EnableNameInput:eval\":\"true\",\"DefaultMode:str\":\"keyboard\",\"QwertyLayout:eval\":\"true\",\"NameInputMessage:eval\":\"\\\"Type in this character's name.\\\\nPress \\\\\\\\c[5]ENTER\\\\\\\\c[0] when you're done.\\\\n\\\\n-or-\\\\n\\\\nPress \\\\\\\\c[5]arrow keys\\\\\\\\c[0]/\\\\\\\\c[5]TAB\\\\\\\\c[0] to switch\\\\nto manual character entry.\\\\n\\\\nPress \\\\\\\\c[5]ESC\\\\\\\\c[0]/\\\\\\\\c[5]TAB\\\\\\\\c[0] to use to keyboard.\\\"\",\"NumberInput\":\"\",\"EnableNumberInput:eval\":\"true\",\"ButtonAssist\":\"\",\"Keyboard:str\":\"Keyboard\",\"Manual:str\":\"Manual\"}","MenuBg:struct":"{\"Scene_Menu:struct\":\"{\\\"SnapshotOpacity:num\\\":\\\"192\\\",\\\"BgFilename1:str\\\":\\\"\\\",\\\"BgFilename2:str\\\":\\\"\\\"}\",\"Scene_Item:struct\":\"{\\\"SnapshotOpacity:num\\\":\\\"192\\\",\\\"BgFilename1:str\\\":\\\"\\\",\\\"BgFilename2:str\\\":\\\"\\\"}\",\"Scene_Skill:struct\":\"{\\\"SnapshotOpacity:num\\\":\\\"192\\\",\\\"BgFilename1:str\\\":\\\"\\\",\\\"BgFilename2:str\\\":\\\"\\\"}\",\"Scene_Equip:struct\":\"{\\\"SnapshotOpacity:num\\\":\\\"192\\\",\\\"BgFilename1:str\\\":\\\"\\\",\\\"BgFilename2:str\\\":\\\"\\\"}\",\"Scene_Status:struct\":\"{\\\"SnapshotOpacity:num\\\":\\\"192\\\",\\\"BgFilename1:str\\\":\\\"\\\",\\\"BgFilename2:str\\\":\\\"\\\"}\",\"Scene_Options:struct\":\"{\\\"SnapshotOpacity:num\\\":\\\"192\\\",\\\"BgFilename1:str\\\":\\\"\\\",\\\"BgFilename2:str\\\":\\\"\\\"}\",\"Scene_Save:struct\":\"{\\\"SnapshotOpacity:num\\\":\\\"192\\\",\\\"BgFilename1:str\\\":\\\"\\\",\\\"BgFilename2:str\\\":\\\"\\\"}\",\"Scene_Load:struct\":\"{\\\"SnapshotOpacity:num\\\":\\\"192\\\",\\\"BgFilename1:str\\\":\\\"\\\",\\\"BgFilename2:str\\\":\\\"\\\"}\",\"Scene_GameEnd:struct\":\"{\\\"SnapshotOpacity:num\\\":\\\"128\\\",\\\"BgFilename1:str\\\":\\\"\\\",\\\"BgFilename2:str\\\":\\\"\\\"}\",\"Scene_Shop:struct\":\"{\\\"SnapshotOpacity:num\\\":\\\"192\\\",\\\"BgFilename1:str\\\":\\\"\\\",\\\"BgFilename2:str\\\":\\\"\\\"}\",\"Scene_Name:struct\":\"{\\\"SnapshotOpacity:num\\\":\\\"192\\\",\\\"BgFilename1:str\\\":\\\"\\\",\\\"BgFilename2:str\\\":\\\"\\\"}\",\"Scene_Unlisted:struct\":\"{\\\"SnapshotOpacity:num\\\":\\\"192\\\",\\\"BgFilename1:str\\\":\\\"\\\",\\\"BgFilename2:str\\\":\\\"\\\"}\"}","ButtonAssist:struct":"{\"General\":\"\",\"Enable:eval\":\"true\",\"Location:str\":\"bottom\",\"BgType:num\":\"0\",\"Text\":\"\",\"TextFmt:str\":\"%1:%2\",\"MultiKeyFmt:str\":\"%1/%2\",\"OkText:str\":\"Select\",\"CancelText:str\":\"Back\",\"SwitchActorText:str\":\"Switch Ally\",\"Keys\":\"\",\"KeyUnlisted:str\":\"\\\\}❪%1❫\\\\{\",\"KeyUP:str\":\"^\",\"KeyDOWN:str\":\"v\",\"KeyLEFT:str\":\"<<\",\"KeyRIGHT:str\":\">>\",\"KeySHIFT:str\":\"\\\\}❪SHIFT❫\\\\{\",\"KeyTAB:str\":\"\\\\}❪TAB❫\\\\{\",\"KeyA:str\":\"A\",\"KeyB:str\":\"B\",\"KeyC:str\":\"C\",\"KeyD:str\":\"D\",\"KeyE:str\":\"E\",\"KeyF:str\":\"F\",\"KeyG:str\":\"G\",\"KeyH:str\":\"H\",\"KeyI:str\":\"I\",\"KeyJ:str\":\"J\",\"KeyK:str\":\"K\",\"KeyL:str\":\"L\",\"KeyM:str\":\"M\",\"KeyN:str\":\"N\",\"KeyO:str\":\"O\",\"KeyP:str\":\"P\",\"KeyQ:str\":\"Q\",\"KeyR:str\":\"R\",\"KeyS:str\":\"S\",\"KeyT:str\":\"T\",\"KeyU:str\":\"U\",\"KeyV:str\":\"V\",\"KeyW:str\":\"W\",\"KeyX:str\":\"X\",\"KeyY:str\":\"Y\",\"KeyZ:str\":\"Z\"}","MenuLayout:struct":"{\"Title:struct\":\"{\\\"TitleScreen\\\":\\\"\\\",\\\"DocumentTitleFmt:str\\\":\\\"%1: %2 - Version %3\\\",\\\"Subtitle:str\\\":\\\"Subtitle\\\",\\\"Version:str\\\":\\\"0.00\\\",\\\"drawGameTitle:func\\\":\\\"\\\\\\\"const x = 20;\\\\\\\\nconst y = Graphics.height / 4;\\\\\\\\nconst maxWidth = Graphics.width - x * 2;\\\\\\\\nconst text = $dataSystem.gameTitle;\\\\\\\\nconst bitmap = this._gameTitleSprite.bitmap;\\\\\\\\nbitmap.fontFace = $gameSystem.mainFontFace();\\\\\\\\nbitmap.outlineColor = \\\\\\\\\\\\\\\"black\\\\\\\\\\\\\\\";\\\\\\\\nbitmap.outlineWidth = 8;\\\\\\\\nbitmap.fontSize = 72;\\\\\\\\nbitmap.drawText(text, x, y, maxWidth, 48, \\\\\\\\\\\\\\\"center\\\\\\\\\\\\\\\");\\\\\\\"\\\",\\\"drawGameSubtitle:func\\\":\\\"\\\\\\\"const x = 20;\\\\\\\\nconst y = Graphics.height / 4 + 72;\\\\\\\\nconst maxWidth = Graphics.width - x * 2;\\\\\\\\nconst text = Scene_Title.subtitle;\\\\\\\\nconst bitmap = this._gameTitleSprite.bitmap;\\\\\\\\nbitmap.fontFace = $gameSystem.mainFontFace();\\\\\\\\nbitmap.outlineColor = \\\\\\\\\\\\\\\"black\\\\\\\\\\\\\\\";\\\\\\\\nbitmap.outlineWidth = 6;\\\\\\\\nbitmap.fontSize = 48;\\\\\\\\nbitmap.drawText(text, x, y, maxWidth, 48, \\\\\\\\\\\\\\\"center\\\\\\\\\\\\\\\");\\\\\\\"\\\",\\\"drawGameVersion:func\\\":\\\"\\\\\\\"const bitmap = this._gameTitleSprite.bitmap;\\\\\\\\nconst x = 0;\\\\\\\\nconst y = Graphics.height - 20;\\\\\\\\nconst width = Math.round(Graphics.width / 4);\\\\\\\\nconst height = 20;\\\\\\\\nconst c1 = ColorManager.dimColor1();\\\\\\\\nconst c2 = ColorManager.dimColor2();\\\\\\\\nconst text = 'Version ' + Scene_Title.version;\\\\\\\\nbitmap.gradientFillRect(x, y, width, height, c1, c2);\\\\\\\\nbitmap.fontFace = $gameSystem.mainFontFace();\\\\\\\\nbitmap.outlineColor = \\\\\\\\\\\\\\\"black\\\\\\\\\\\\\\\";\\\\\\\\nbitmap.outlineWidth = 3;\\\\\\\\nbitmap.fontSize = 16;\\\\\\\\nbitmap.drawText(text, x + 4, y, Graphics.width, height, \\\\\\\\\\\\\\\"left\\\\\\\\\\\\\\\");\\\\\\\"\\\",\\\"CommandRect:func\\\":\\\"\\\\\\\"const offsetX = $dataSystem.titleCommandWindow.offsetX;\\\\\\\\nconst offsetY = $dataSystem.titleCommandWindow.offsetY;\\\\\\\\nconst rows = this.commandWindowRows();\\\\\\\\nconst width = this.mainCommandWidth();\\\\\\\\nconst height = this.calcWindowHeight(rows, true);\\\\\\\\nconst x = (Graphics.boxWidth - width) / 2 + offsetX;\\\\\\\\nconst y = Graphics.boxHeight - height - 96 + offsetY;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"ButtonFadeSpeed:num\\\":\\\"4\\\"}\",\"MainMenu:struct\":\"{\\\"CommandWindow\\\":\\\"\\\",\\\"CommandBgType:num\\\":\\\"0\\\",\\\"CommandRect:func\\\":\\\"\\\\\\\"const width = this.mainCommandWidth();\\\\\\\\nconst height = this.mainAreaHeight() - this.goldWindowRect().height;\\\\\\\\nconst x = this.isRightInputMode() ? Graphics.boxWidth - width : 0;\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"GoldWindow\\\":\\\"\\\",\\\"GoldBgType:num\\\":\\\"0\\\",\\\"GoldRect:func\\\":\\\"\\\\\\\"const rows = 1;\\\\\\\\nconst width = this.mainCommandWidth();\\\\\\\\nconst height = this.calcWindowHeight(rows, true);\\\\\\\\nconst x = this.isRightInputMode() ? Graphics.boxWidth - width : 0;\\\\\\\\nconst y = this.mainAreaBottom() - height;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"StatusWindow\\\":\\\"\\\",\\\"StatusBgType:num\\\":\\\"0\\\",\\\"StatusRect:func\\\":\\\"\\\\\\\"const width = Graphics.boxWidth - this.mainCommandWidth();\\\\\\\\nconst height = this.mainAreaHeight();\\\\\\\\nconst x = this.isRightInputMode() ? 0 : Graphics.boxWidth - width;\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\"}\",\"ItemMenu:struct\":\"{\\\"HelpWindow\\\":\\\"\\\",\\\"HelpBgType:num\\\":\\\"0\\\",\\\"HelpRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this.helpAreaTop();\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.helpAreaHeight();\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"CategoryWindow\\\":\\\"\\\",\\\"CategoryBgType:num\\\":\\\"0\\\",\\\"CategoryRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nconst rows = 1;\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.calcWindowHeight(rows, true);\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"ItemWindow\\\":\\\"\\\",\\\"ItemBgType:num\\\":\\\"0\\\",\\\"ItemRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this._categoryWindow.y + this._categoryWindow.height;\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.mainAreaBottom() - y;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"ActorWindow\\\":\\\"\\\",\\\"ActorBgType:num\\\":\\\"0\\\",\\\"ActorRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.mainAreaHeight();\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\"}\",\"SkillMenu:struct\":\"{\\\"HelpWindow\\\":\\\"\\\",\\\"HelpBgType:num\\\":\\\"0\\\",\\\"HelpRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this.helpAreaTop();\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.helpAreaHeight();\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"SkillTypeWindow\\\":\\\"\\\",\\\"SkillTypeBgType:num\\\":\\\"0\\\",\\\"SkillTypeRect:func\\\":\\\"\\\\\\\"const rows = 3;\\\\\\\\nconst width = this.mainCommandWidth();\\\\\\\\nconst height = this.calcWindowHeight(rows, true);\\\\\\\\nconst x = this.isRightInputMode() ? Graphics.boxWidth - width : 0;\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"StatusWindow\\\":\\\"\\\",\\\"StatusBgType:num\\\":\\\"0\\\",\\\"StatusRect:func\\\":\\\"\\\\\\\"const width = Graphics.boxWidth - this.mainCommandWidth();\\\\\\\\nconst height = this._skillTypeWindow.height;\\\\\\\\nconst x = this.isRightInputMode() ? 0 : Graphics.boxWidth - width;\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"ItemWindow\\\":\\\"\\\",\\\"ItemBgType:num\\\":\\\"0\\\",\\\"ItemRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this._statusWindow.y + this._statusWindow.height;\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.mainAreaHeight() - this._statusWindow.height;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"ActorWindow\\\":\\\"\\\",\\\"ActorBgType:num\\\":\\\"0\\\",\\\"ActorRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.mainAreaHeight();\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\"}\",\"EquipMenu:struct\":\"{\\\"HelpWindow\\\":\\\"\\\",\\\"HelpBgType:num\\\":\\\"0\\\",\\\"HelpRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this.helpAreaTop();\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.helpAreaHeight();\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"StatusWindow\\\":\\\"\\\",\\\"StatusBgType:num\\\":\\\"0\\\",\\\"StatusRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nconst width = this.statusWidth();\\\\\\\\nconst height = this.mainAreaHeight();\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"CommandWindow\\\":\\\"\\\",\\\"CommandBgType:num\\\":\\\"0\\\",\\\"CommandRect:func\\\":\\\"\\\\\\\"const x = this.statusWidth();\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nconst rows = 1;\\\\\\\\nconst width = Graphics.boxWidth - this.statusWidth();\\\\\\\\nconst height = this.calcWindowHeight(rows, true);\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"SlotWindow\\\":\\\"\\\",\\\"SlotBgType:num\\\":\\\"0\\\",\\\"SlotRect:func\\\":\\\"\\\\\\\"const commandWindowRect = this.commandWindowRect();\\\\\\\\nconst x = this.statusWidth();\\\\\\\\nconst y = commandWindowRect.y + commandWindowRect.height;\\\\\\\\nconst width = Graphics.boxWidth - this.statusWidth();\\\\\\\\nconst height = this.mainAreaHeight() - commandWindowRect.height;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"ItemWindow\\\":\\\"\\\",\\\"ItemBgType:num\\\":\\\"0\\\",\\\"ItemRect:func\\\":\\\"\\\\\\\"return this.slotWindowRect();\\\\\\\"\\\"}\",\"StatusMenu:struct\":\"{\\\"ProfileWindow\\\":\\\"\\\",\\\"ProfileBgType:num\\\":\\\"0\\\",\\\"ProfileRect:func\\\":\\\"\\\\\\\"const width = Graphics.boxWidth;\\\\\\\\nconst height = this.profileHeight();\\\\\\\\nconst x = 0;\\\\\\\\nconst y = this.mainAreaBottom() - height;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"StatusWindow\\\":\\\"\\\",\\\"StatusBgType:num\\\":\\\"0\\\",\\\"StatusRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.statusParamsWindowRect().y - y;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"StatusParamsWindow\\\":\\\"\\\",\\\"StatusParamsBgType:num\\\":\\\"0\\\",\\\"StatusParamsRect:func\\\":\\\"\\\\\\\"const width = this.statusParamsWidth();\\\\\\\\nconst height = this.statusParamsHeight();\\\\\\\\nconst x = 0;\\\\\\\\nconst y = this.mainAreaBottom() - this.profileHeight() - height;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"StatusEquipWindow\\\":\\\"\\\",\\\"StatusEquipBgType:num\\\":\\\"0\\\",\\\"StatusEquipRect:func\\\":\\\"\\\\\\\"const width = Graphics.boxWidth - this.statusParamsWidth();\\\\\\\\nconst height = this.statusParamsHeight();\\\\\\\\nconst x = this.statusParamsWidth();\\\\\\\\nconst y = this.mainAreaBottom() - this.profileHeight() - height;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\"}\",\"OptionsMenu:struct\":\"{\\\"OptionsWindow\\\":\\\"\\\",\\\"OptionsBgType:num\\\":\\\"0\\\",\\\"OptionsRect:func\\\":\\\"\\\\\\\"const n = Math.min(this.maxCommands(), this.maxVisibleCommands());\\\\\\\\nconst width = 400;\\\\\\\\nconst height = this.calcWindowHeight(n, true);\\\\\\\\nconst x = (Graphics.boxWidth - width) / 2;\\\\\\\\nconst y = (Graphics.boxHeight - height) / 2;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\"}\",\"SaveMenu:struct\":\"{\\\"HelpWindow\\\":\\\"\\\",\\\"HelpBgType:num\\\":\\\"0\\\",\\\"HelpRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nconst rows = 1;\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.calcWindowHeight(rows, false);\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"ListWindow\\\":\\\"\\\",\\\"ListBgType:num\\\":\\\"0\\\",\\\"ListRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this.mainAreaTop() + this._helpWindow.height;\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.mainAreaHeight() - this._helpWindow.height;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\"}\",\"LoadMenu:struct\":\"{\\\"HelpWindow\\\":\\\"\\\",\\\"HelpBgType:num\\\":\\\"0\\\",\\\"HelpRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nconst rows = 1;\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.calcWindowHeight(rows, false);\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"ListWindow\\\":\\\"\\\",\\\"ListBgType:num\\\":\\\"0\\\",\\\"ListRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this.mainAreaTop() + this._helpWindow.height;\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.mainAreaHeight() - this._helpWindow.height;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\"}\",\"GameEnd:struct\":\"{\\\"CommandList:arraystruct\\\":\\\"[\\\\\\\"{\\\\\\\\\\\\\\\"Symbol:str\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"toTitle\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"TextStr:str\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"Untitled\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"TextJS:func\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"return TextManager.toTitle;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"ShowJS:func\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"return true;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"EnableJS:func\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"return true;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"ExtJS:func\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"return null;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"CallHandlerJS:func\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"SceneManager._scene.commandToTitle();\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\"}\\\\\\\",\\\\\\\"{\\\\\\\\\\\\\\\"Symbol:str\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"cancel\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"TextStr:str\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"Untitled\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"TextJS:func\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"return TextManager.cancel;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"ShowJS:func\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"return true;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"EnableJS:func\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"return true;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"ExtJS:func\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"return null;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\",\\\\\\\\\\\\\\\"CallHandlerJS:func\\\\\\\\\\\\\\\":\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"SceneManager._scene.popScene();\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\"}\\\\\\\"]\\\",\\\"CommandBgType:num\\\":\\\"0\\\",\\\"CommandRect:func\\\":\\\"\\\\\\\"const rows = 2;\\\\\\\\nconst width = this.mainCommandWidth();\\\\\\\\nconst height = this.calcWindowHeight(rows, true);\\\\\\\\nconst x = (Graphics.boxWidth - width) / 2;\\\\\\\\nconst y = (Graphics.boxHeight - height) / 2;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\"}\",\"ShopMenu:struct\":\"{\\\"HelpWindow\\\":\\\"\\\",\\\"HelpBgType:num\\\":\\\"0\\\",\\\"HelpRect:func\\\":\\\"\\\\\\\"const wx = 0;\\\\\\\\nconst wy = this.helpAreaTop();\\\\\\\\nconst ww = Graphics.boxWidth;\\\\\\\\nconst wh = this.helpAreaHeight();\\\\\\\\nreturn new Rectangle(wx, wy, ww, wh);\\\\\\\"\\\",\\\"GoldWindow\\\":\\\"\\\",\\\"GoldBgType:num\\\":\\\"0\\\",\\\"GoldRect:func\\\":\\\"\\\\\\\"const rows = 1;\\\\\\\\nconst width = this.mainCommandWidth();\\\\\\\\nconst height = this.calcWindowHeight(rows, true);\\\\\\\\nconst x = Graphics.boxWidth - width;\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"CommandWindow\\\":\\\"\\\",\\\"CommandBgType:num\\\":\\\"0\\\",\\\"CommandRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this.mainAreaTop();\\\\\\\\nconst rows = 1;\\\\\\\\nconst width = this._goldWindow.x;\\\\\\\\nconst height = this.calcWindowHeight(rows, true);\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"DummyWindow\\\":\\\"\\\",\\\"DummyBgType:num\\\":\\\"0\\\",\\\"DummyRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this._commandWindow.y + this._commandWindow.height;\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.mainAreaHeight() - this._commandWindow.height;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"NumberWindow\\\":\\\"\\\",\\\"NumberBgType:num\\\":\\\"0\\\",\\\"NumberRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this._dummyWindow.y;\\\\\\\\nconst width = Graphics.boxWidth - this.statusWidth();\\\\\\\\nconst height = this._dummyWindow.height;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"StatusWindow\\\":\\\"\\\",\\\"StatusBgType:num\\\":\\\"0\\\",\\\"StatusRect:func\\\":\\\"\\\\\\\"const width = this.statusWidth();\\\\\\\\nconst height = this._dummyWindow.height;\\\\\\\\nconst x = Graphics.boxWidth - width;\\\\\\\\nconst y = this._dummyWindow.y;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"BuyWindow\\\":\\\"\\\",\\\"BuyBgType:num\\\":\\\"0\\\",\\\"BuyRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this._dummyWindow.y;\\\\\\\\nconst width = Graphics.boxWidth - this.statusWidth();\\\\\\\\nconst height = this._dummyWindow.height;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"CategoryWindow\\\":\\\"\\\",\\\"CategoryBgType:num\\\":\\\"0\\\",\\\"CategoryRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this._dummyWindow.y;\\\\\\\\nconst rows = 1;\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height = this.calcWindowHeight(rows, true);\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"SellWindow\\\":\\\"\\\",\\\"SellBgType:num\\\":\\\"0\\\",\\\"SellRect:func\\\":\\\"\\\\\\\"const x = 0;\\\\\\\\nconst y = this._categoryWindow.y + this._categoryWindow.height;\\\\\\\\nconst width = Graphics.boxWidth;\\\\\\\\nconst height =\\\\\\\\n this.mainAreaHeight() -\\\\\\\\n this._commandWindow.height -\\\\\\\\n this._categoryWindow.height;\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\"}\",\"NameMenu:struct\":\"{\\\"EditWindow\\\":\\\"\\\",\\\"EditBgType:num\\\":\\\"0\\\",\\\"EditRect:func\\\":\\\"\\\\\\\"const rows = 9;\\\\\\\\nconst inputWindowHeight = this.calcWindowHeight(rows, true);\\\\\\\\nconst padding = $gameSystem.windowPadding();\\\\\\\\nconst width = 600;\\\\\\\\nconst height = Math.min(ImageManager.faceHeight + padding * 2, this.mainAreaHeight() - inputWindowHeight);\\\\\\\\nconst x = (Graphics.boxWidth - width) / 2;\\\\\\\\nconst y = (this.mainAreaHeight() - (height + inputWindowHeight)) / 2 + this.mainAreaTop();\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\",\\\"InputWindow\\\":\\\"\\\",\\\"InputBgType:num\\\":\\\"0\\\",\\\"InputRect:func\\\":\\\"\\\\\\\"const x = this._editWindow.x;\\\\\\\\nconst y = this._editWindow.y + this._editWindow.height;\\\\\\\\nconst rows = 9;\\\\\\\\nconst width = this._editWindow.width;\\\\\\\\nconst height = this.calcWindowHeight(rows, true);\\\\\\\\nreturn new Rectangle(x, y, width, height);\\\\\\\"\\\"}\"}","Param:struct":"{\"DisplayedParams:arraystr\":\"[\\\"ATK\\\",\\\"DEF\\\",\\\"MAT\\\",\\\"MDF\\\",\\\"AGI\\\",\\\"LUK\\\"]\",\"ExtDisplayedParams:arraystr\":\"[\\\"MaxHP\\\",\\\"MaxMP\\\",\\\"ATK\\\",\\\"DEF\\\",\\\"MAT\\\",\\\"MDF\\\",\\\"AGI\\\",\\\"LUK\\\"]\",\"BasicParameters\":\"\",\"CrisisRate:num\":\"0.25\",\"BasicParameterFormula:func\":\"\\\"// Determine the variables used in this calculation.\\\\nlet paramId = arguments[0];\\\\nlet base = this.paramBase(paramId);\\\\nlet plus = this.paramPlus(paramId);\\\\nlet paramRate = this.paramRate(paramId);\\\\nlet buffRate = this.paramBuffRate(paramId);\\\\nlet flatBonus = this.paramFlatBonus(paramId);\\\\n\\\\n// Formula to determine total parameter value.\\\\nlet value = (base + plus) * paramRate * buffRate + flatBonus;\\\\n\\\\n// Determine the limits\\\\nconst maxValue = this.paramMax(paramId);\\\\nconst minValue = this.paramMin(paramId);\\\\n\\\\n// Final value\\\\nreturn Math.round(value.clamp(minValue, maxValue));\\\"\",\"BasicParamCaps\":\"\",\"BasicActorParamCaps\":\"\",\"BasicActorParamMax0:str\":\"9999\",\"BasicActorParamMax1:str\":\"9999\",\"BasicActorParamMax2:str\":\"999\",\"BasicActorParamMax3:str\":\"999\",\"BasicActorParamMax4:str\":\"999\",\"BasicActorParamMax5:str\":\"999\",\"BasicActorParamMax6:str\":\"999\",\"BasicActorParamMax7:str\":\"999\",\"BasicEnemyParamCaps\":\"\",\"BasicEnemyParamMax0:str\":\"999999\",\"BasicEnemyParamMax1:str\":\"9999\",\"BasicEnemyParamMax2:str\":\"999\",\"BasicEnemyParamMax3:str\":\"999\",\"BasicEnemyParamMax4:str\":\"999\",\"BasicEnemyParamMax5:str\":\"999\",\"BasicEnemyParamMax6:str\":\"999\",\"BasicEnemyParamMax7:str\":\"999\",\"XParameters\":\"\",\"XParameterFormula:func\":\"\\\"// Determine the variables used in this calculation.\\\\nlet xparamId = arguments[0];\\\\nlet base = this.traitsSum(Game_BattlerBase.TRAIT_XPARAM, xparamId);\\\\nlet plus = this.xparamPlus(xparamId);\\\\nlet paramRate = this.xparamRate(xparamId);\\\\nlet flatBonus = this.xparamFlatBonus(xparamId);\\\\n\\\\n// Formula to determine total parameter value.\\\\nlet value = (base + plus) * paramRate + flatBonus;\\\\n\\\\n// Final value\\\\nreturn value;\\\"\",\"XParamVocab\":\"\",\"XParamVocab0:str\":\"Hit\",\"XParamVocab1:str\":\"Evasion\",\"XParamVocab2:str\":\"Critical Rate\",\"XParamVocab3:str\":\"Critical Evade\",\"XParamVocab4:str\":\"Magic Evade\",\"XParamVocab5:str\":\"Magic Reflect\",\"XParamVocab6:str\":\"Counter\",\"XParamVocab7:str\":\"HP Regen\",\"XParamVocab8:str\":\"MP Regen\",\"XParamVocab9:str\":\"TP Regen\",\"SParameters\":\"\",\"SParameterFormula:func\":\"\\\"// Determine the variables used in this calculation.\\\\nlet sparamId = arguments[0];\\\\nlet base = this.traitsPi(Game_BattlerBase.TRAIT_SPARAM, sparamId);\\\\nlet plus = this.sparamPlus(sparamId);\\\\nlet paramRate = this.sparamRate(sparamId);\\\\nlet flatBonus = this.sparamFlatBonus(sparamId);\\\\n\\\\n// Formula to determine total parameter value.\\\\nlet value = (base + plus) * paramRate + flatBonus;\\\\n\\\\n// Final value\\\\nreturn value;\\\"\",\"SParamVocab\":\"\",\"SParamVocab0:str\":\"Aggro\",\"SParamVocab1:str\":\"Guard\",\"SParamVocab2:str\":\"Recovery\",\"SParamVocab3:str\":\"Item Effect\",\"SParamVocab4:str\":\"MP Cost\",\"SParamVocab5:str\":\"TP Charge\",\"SParamVocab6:str\":\"Physical DMG\",\"SParamVocab7:str\":\"Magical DMG\",\"SParamVocab8:str\":\"Floor DMG\",\"SParamVocab9:str\":\"EXP Gain\",\"Icons\":\"\",\"DrawIcons:eval\":\"true\",\"IconParam0:str\":\"84\",\"IconParam1:str\":\"165\",\"IconParam2:str\":\"76\",\"IconParam3:str\":\"81\",\"IconParam4:str\":\"101\",\"IconParam5:str\":\"133\",\"IconParam6:str\":\"140\",\"IconParam7:str\":\"87\",\"IconXParam0:str\":\"102\",\"IconXParam1:str\":\"82\",\"IconXParam2:str\":\"78\",\"IconXParam3:str\":\"82\",\"IconXParam4:str\":\"171\",\"IconXParam5:str\":\"222\",\"IconXParam6:str\":\"77\",\"IconXParam7:str\":\"72\",\"IconXParam8:str\":\"72\",\"IconXParam9:str\":\"72\",\"IconSParam0:str\":\"5\",\"IconSParam1:str\":\"128\",\"IconSParam2:str\":\"72\",\"IconSParam3:str\":\"176\",\"IconSParam4:str\":\"165\",\"IconSParam5:str\":\"164\",\"IconSParam6:str\":\"76\",\"IconSParam7:str\":\"79\",\"IconSParam8:str\":\"141\",\"IconSParam9:str\":\"73\"}","CustomParam:arraystruct":"[\"{\\\"ParamName:str\\\":\\\"Strength\\\",\\\"Abbreviation:str\\\":\\\"str\\\",\\\"Icon:num\\\":\\\"77\\\",\\\"Type:str\\\":\\\"integer\\\",\\\"ValueJS:json\\\":\\\"\\\\\\\"// Declare Constants\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Calculations\\\\\\\\nreturn (user.atk * 0.75) + (user.def * 0.25);\\\\\\\"\\\"}\",\"{\\\"ParamName:str\\\":\\\"Dexterity\\\",\\\"Abbreviation:str\\\":\\\"dex\\\",\\\"Icon:num\\\":\\\"82\\\",\\\"Type:str\\\":\\\"integer\\\",\\\"ValueJS:json\\\":\\\"\\\\\\\"// Declare Constants\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Calculations\\\\\\\\nreturn (user.agi * 0.75) + (user.atk * 0.25);\\\\\\\"\\\"}\",\"{\\\"ParamName:str\\\":\\\"Constitution\\\",\\\"Abbreviation:str\\\":\\\"con\\\",\\\"Icon:num\\\":\\\"81\\\",\\\"Type:str\\\":\\\"integer\\\",\\\"ValueJS:json\\\":\\\"\\\\\\\"// Declare Constants\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Calculations\\\\\\\\nreturn (user.def * 0.75) + (user.mdf * 0.25);\\\\\\\"\\\"}\",\"{\\\"ParamName:str\\\":\\\"Intelligence\\\",\\\"Abbreviation:str\\\":\\\"int\\\",\\\"Icon:num\\\":\\\"79\\\",\\\"Type:str\\\":\\\"integer\\\",\\\"ValueJS:json\\\":\\\"\\\\\\\"// Declare Constants\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Calculations\\\\\\\\nreturn (user.mat * 0.75) + (user.mdf * 0.25);\\\\\\\"\\\"}\",\"{\\\"ParamName:str\\\":\\\"Wisdom\\\",\\\"Abbreviation:str\\\":\\\"wis\\\",\\\"Icon:num\\\":\\\"72\\\",\\\"Type:str\\\":\\\"integer\\\",\\\"ValueJS:json\\\":\\\"\\\\\\\"// Declare Constants\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Calculations\\\\\\\\nreturn (user.mdf * 0.75) + (user.luk * 0.25);\\\\\\\"\\\"}\",\"{\\\"ParamName:str\\\":\\\"Charisma\\\",\\\"Abbreviation:str\\\":\\\"cha\\\",\\\"Icon:num\\\":\\\"84\\\",\\\"Type:str\\\":\\\"integer\\\",\\\"ValueJS:json\\\":\\\"\\\\\\\"// Declare Constants\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Calculations\\\\\\\\nreturn (user.luk * 0.75) + (user.agi * 0.25);\\\\\\\"\\\"}\"]","ScreenResolution:struct":"{\"Troops\":\"\",\"RepositionActors:eval\":\"true\",\"RepositionEnemies:eval\":\"true\",\"RepositionEnemies130:eval\":\"false\"}","ScreenShake:struct":"{\"DefaultStyle:str\":\"random\",\"originalJS:func\":\"\\\"// Calculation\\\\nthis.x += Math.round($gameScreen.shake());\\\"\",\"randomJS:func\":\"\\\"// Calculation\\\\n// Original Formula by Aries of Sheratan\\\\nconst power = $gameScreen._shakePower * 0.75;\\\\nconst speed = $gameScreen._shakeSpeed * 0.60;\\\\nconst duration = $gameScreen._shakeDuration;\\\\nthis.x += Math.round(Math.randomInt(power) - Math.randomInt(speed)) * (Math.min(duration, 30) * 0.5);\\\\nthis.y += Math.round(Math.randomInt(power) - Math.randomInt(speed)) * (Math.min(duration, 30) * 0.5);\\\"\",\"horzJS:func\":\"\\\"// Calculation\\\\n// Original Formula by Aries of Sheratan\\\\nconst power = $gameScreen._shakePower * 0.75;\\\\nconst speed = $gameScreen._shakeSpeed * 0.60;\\\\nconst duration = $gameScreen._shakeDuration;\\\\nthis.x += Math.round(Math.randomInt(power) - Math.randomInt(speed)) * (Math.min(duration, 30) * 0.5);\\\"\",\"vertJS:func\":\"\\\"// Calculation\\\\n// Original Formula by Aries of Sheratan\\\\nconst power = $gameScreen._shakePower * 0.75;\\\\nconst speed = $gameScreen._shakeSpeed * 0.60;\\\\nconst duration = $gameScreen._shakeDuration;\\\\nthis.y += Math.round(Math.randomInt(power) - Math.randomInt(speed)) * (Math.min(duration, 30) * 0.5);\\\"\"}","TitleCommandList:arraystruct":"[\"{\\\"Symbol:str\\\":\\\"newGame\\\",\\\"TextStr:str\\\":\\\"Untitled\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.newGame;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return true;\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return true;\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandNewGame();\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"continue\\\",\\\"TextStr:str\\\":\\\"Untitled\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.continue_;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return true;\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return DataManager.isAnySavefileExists();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandContinue();\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"options\\\",\\\"TextStr:str\\\":\\\"Untitled\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.options;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return true;\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return true;\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandOptions();\\\\\\\"\\\"}\"]","TitlePicButtons:arraystruct":"[]","UI:struct":"{\"UIArea\":\"\",\"FadeSpeed:num\":\"24\",\"BoxMargin:num\":\"4\",\"CommandWidth:num\":\"240\",\"BottomHelp:eval\":\"false\",\"RightMenus:eval\":\"true\",\"ShowButtons:eval\":\"true\",\"cancelShowButton:eval\":\"true\",\"menuShowButton:eval\":\"true\",\"pagedownShowButton:eval\":\"true\",\"numberShowButton:eval\":\"true\",\"ButtonHeight:num\":\"52\",\"BottomButtons:eval\":\"false\",\"SideButtons:eval\":\"true\",\"MenuObjects\":\"\",\"LvExpGauge:eval\":\"true\",\"ParamArrow:str\":\"→\",\"TextCodeSupport\":\"\",\"TextCodeClassNames:eval\":\"true\",\"TextCodeNicknames:eval\":\"true\"}","Window:struct":"{\"WindowDefaults\":\"\",\"EnableMasking:eval\":\"false\",\"LineHeight:num\":\"36\",\"SelectableItems\":\"\",\"ShowItemBackground:eval\":\"true\",\"ItemHeight:num\":\"8\",\"DrawItemBackgroundJS:func\":\"\\\"const rect = arguments[0];\\\\nconst c1 = ColorManager.itemBackColor1();\\\\nconst c2 = ColorManager.itemBackColor2();\\\\nconst x = rect.x;\\\\nconst y = rect.y;\\\\nconst w = rect.width;\\\\nconst h = rect.height;\\\\nthis.contentsBack.gradientFillRect(x, y, w, h, c1, c2, true);\\\\nthis.contentsBack.strokeRect(x, y, w, h, c1);\\\"\",\"ItemPadding:num\":\"8\",\"BackOpacity:num\":\"192\",\"TranslucentOpacity:num\":\"160\",\"OpenSpeed:num\":\"32\",\"ColSpacing:num\":\"8\",\"RowSpacing:num\":\"4\"}","jsQuickFunc:arraystruct":"[\"{\\\"FunctionName:str\\\":\\\"Example\\\",\\\"CodeJS:json\\\":\\\"\\\\\\\"// Insert this as a function anywhere you can input code\\\\\\\\n// such as Script Calls or Conditional Branch Scripts.\\\\\\\\n\\\\\\\\n// Process Code\\\\\\\\nreturn 'Example';\\\\\\\"\\\"}\",\"{\\\"FunctionName:str\\\":\\\"Bad Code Name\\\",\\\"CodeJS:json\\\":\\\"\\\\\\\"// If a function name has spaces in them, the spaces will\\\\\\\\n// be removed. \\\\\\\\\\\\\\\"Bad Code Name\\\\\\\\\\\\\\\" becomes \\\\\\\\\\\\\\\"BadeCodeName\\\\\\\\\\\\\\\".\\\\\\\\n\\\\\\\\n// Process Code\\\\\\\\nOhNoItsBadCode()\\\\\\\\n\\\\\\\\n// If a function has bad code, a fail safe will catch the\\\\\\\\n// error and display it in the console.\\\\\\\"\\\"}\",\"{\\\"FunctionName:str\\\":\\\"RandomNumber\\\",\\\"CodeJS:json\\\":\\\"\\\\\\\"// This generates a random number from 0 to itself.\\\\\\\\n// Example: RandomNumber(10)\\\\\\\\n\\\\\\\\n// Process Code\\\\\\\\nconst number = (arguments[0] || 0) + 1;\\\\\\\\nreturn Math.floor(number * Math.random());\\\\\\\"\\\"}\",\"{\\\"FunctionName:str\\\":\\\"RandomBetween\\\",\\\"CodeJS:json\\\":\\\"\\\\\\\"// This generates a random number between two arguments.\\\\\\\\n// Example: RandomNumber(5, 10)\\\\\\\\n\\\\\\\\n// Process Code\\\\\\\\nlet min = Math.min(arguments[0] || 0, arguments[1] || 0);\\\\\\\\nlet max = Math.max(arguments[0] || 0, arguments[1] || 0);\\\\\\\\nreturn Math.floor(Math.random() * (max - min + 1) + min);\\\\\\\"\\\"}\",\"{\\\"FunctionName:str\\\":\\\"RandomFrom\\\",\\\"CodeJS:json\\\":\\\"\\\\\\\"// Selects a number from the list of inserted numbers.\\\\\\\\n// Example: RandomFrom(5, 10, 15, 20)\\\\\\\\n\\\\\\\\n// Process Code\\\\\\\\nreturn arguments[Math.randomInt(arguments.length)];\\\\\\\"\\\"}\"]","BreakEnd1":"----------------------------------","End Of":"Plugin Parameters","BreakEnd2":"----------------------------------"}},
{"name":"VisuMZ_1_BattleCore","status":true,"description":"[RPG Maker MZ] [Tier 1] [Version 1.60] [BattleCore]","parameters":{"BreakHead":"----------------------------------","BattleCore":"Plugin Parameters","ATTENTION":"READ THE HELP FILE","BreakSettings":"----------------------------------","AutoBattle:struct":"{\"BattleDisplay\":\"\",\"AutoBattleMsg:str\":\"Press %1 or %2 to stop Auto Battle\",\"AutoBattleOK:str\":\"OK\",\"AutoBattleCancel:str\":\"Cancel\",\"AutoBattleBgType:num\":\"1\",\"AutoBattleRect:func\":\"\\\"const width = Graphics.width;\\\\nconst height = this.calcWindowHeight(1, false);\\\\nconst x = 0;\\\\nconst y = (Graphics.height - height) / 2;\\\\nreturn new Rectangle(x, y, width, height);\\\"\",\"Options\":\"\",\"AddOption:eval\":\"false\",\"AdjustRect:eval\":\"true\",\"StartName:str\":\"Auto Battle Start\",\"StyleName:str\":\"Auto Battle Style\",\"StyleOFF:str\":\"Attack\",\"StyleON:str\":\"Skills\"}","Damage:struct":"{\"DamageStyles\":\"\",\"DefaultDamageStyle:str\":\"Standard\",\"DamageStyleList:arraystruct\":\"[\\\"{\\\\\\\"Name:str\\\\\\\":\\\\\\\"Standard\\\\\\\",\\\\\\\"Formula:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Declare Constants\\\\\\\\\\\\\\\\nconst user = this.subject();\\\\\\\\\\\\\\\\nconst target = arguments[0];\\\\\\\\\\\\\\\\nconst item = this.item();\\\\\\\\\\\\\\\\nconst a = this.subject();\\\\\\\\\\\\\\\\nconst b = target;\\\\\\\\\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Replace Formula\\\\\\\\\\\\\\\\nlet formula = item.damage.formula;\\\\\\\\\\\\\\\\nif (SceneManager.isSceneBattle() && !this.isCertainHit()) {\\\\\\\\\\\\\\\\n const fmt = 'Math.max(this.applyArmorModifiers(b, %1), 0)';\\\\\\\\\\\\\\\\n formula = formula.replace(/b.def/g, fmt.format('b.def'));\\\\\\\\\\\\\\\\n formula = formula.replace(/b.mdf/g, fmt.format('b.mdf'));\\\\\\\\\\\\\\\\n formula = formula.replace(/b.agi/g, fmt.format('b.agi'));\\\\\\\\\\\\\\\\n formula = formula.replace(/b.luk/g, fmt.format('b.luk'));\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Calculate Damage\\\\\\\\\\\\\\\\nlet value = Math.max(eval(formula), 0);\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\\\\\\\\\"\\\\\\\",\\\\\\\"ItemsEquipsCore\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType1:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType2:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType3:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType4:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType5:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageType6:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageDisplay:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"return this.getItemDamageAmountTextOriginal();\\\\\\\\\\\\\\\"\\\\\\\"}\\\",\\\"{\\\\\\\"Name:str\\\\\\\":\\\\\\\"Armor Scaling\\\\\\\",\\\\\\\"Formula:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Declare Constants\\\\\\\\\\\\\\\\nconst user = this.subject();\\\\\\\\\\\\\\\\nconst target = arguments[0];\\\\\\\\\\\\\\\\nconst item = this.item();\\\\\\\\\\\\\\\\nconst a = this.subject();\\\\\\\\\\\\\\\\nconst b = target;\\\\\\\\\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Replace Formula\\\\\\\\\\\\\\\\nlet formula = item.damage.formula;\\\\\\\\\\\\\\\\nif (SceneManager.isSceneBattle() && !this.isCertainHit()) {\\\\\\\\\\\\\\\\n const fmt = 'Math.max(this.applyArmorModifiers(b, %1), 1)';\\\\\\\\\\\\\\\\n formula = formula.replace(/b.def/g, fmt.format('b.def'));\\\\\\\\\\\\\\\\n formula = formula.replace(/b.mdf/g, fmt.format('b.mdf'));\\\\\\\\\\\\\\\\n formula = formula.replace(/b.agi/g, fmt.format('b.agi'));\\\\\\\\\\\\\\\\n formula = formula.replace(/b.luk/g, fmt.format('b.luk'));\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Calculate Damage\\\\\\\\\\\\\\\\nlet value = Math.max(eval(formula), 0);\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Apply Defender's Defense Parameter\\\\\\\\\\\\\\\\nif (this.isDamage() && !this.isCertainHit()) {\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n // Calculate Base Armor\\\\\\\\\\\\\\\\n let armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\\\\\\\\\n armor = this.applyArmorModifiers(target, armor);\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n // Apply Armor to Damage\\\\\\\\\\\\\\\\n if (armor >= 0) {\\\\\\\\\\\\\\\\n value *= 100 / (100 + armor);\\\\\\\\\\\\\\\\n } else {\\\\\\\\\\\\\\\\n value *= 2 - (100 / (100 - armor));\\\\\\\\\\\\\\\\n }\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\\\\\\\\\"\\\\\\\",\\\\\\\"ItemsEquipsCore\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType1:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType2:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType3:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType4:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType5:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageType6:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageDisplay:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"return this.getItemDamageAmountTextOriginal();\\\\\\\\\\\\\\\"\\\\\\\"}\\\",\\\"{\\\\\\\"Name:str\\\\\\\":\\\\\\\"CT\\\\\\\",\\\\\\\"Formula:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst user = this.subject();\\\\\\\\\\\\\\\\nconst target = arguments[0];\\\\\\\\\\\\\\\\nconst item = this.item();\\\\\\\\\\\\\\\\nconst a = this.subject();\\\\\\\\\\\\\\\\nconst b = target;\\\\\\\\\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Create Multiplier\\\\\\\\\\\\\\\\nconst multiplier = Math.max(eval(item.damage.formula), 0);\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Declare Values\\\\\\\\\\\\\\\\nlet value = 0;\\\\\\\\\\\\\\\\nlet level = Math.max(a.level || a.luk, 1);\\\\\\\\\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\\\\\\\\\narmor = Math.max(this.applyArmorModifiers(target, armor), 0);\\\\\\\\\\\\\\\\nlet attackStat = 0;\\\\\\\\\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n attackStat = a.atk;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n attackStat = a.mat;\\\\\\\\\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\\\\\\\\\n attackStat = a.def;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\\\\\\\\\n attackStat = a.mdf;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Calculate Damage\\\\\\\\\\\\\\\\nattackStat = (attackStat * 1.75) + (level ** 2 / 45.5);\\\\\\\\\\\\\\\\nvalue = attackStat * 4;\\\\\\\\\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n value *= Math.max(256 - armor, 0) / 256;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n value *= Math.max(102.4 - armor, 0) / 128;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\nvalue *= multiplier;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\\\\\\\\\"\\\\\\\",\\\\\\\"ItemsEquipsCore\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType1:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType2:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType3:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType4:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType5:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageType6:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageDisplay:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst item = this._item;\\\\\\\\\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\\\\\\\\\nconst a = this._tempActorA;\\\\\\\\\\\\\\\\nconst b = this._tempActorB;\\\\\\\\\\\\\\\\nconst user = a;\\\\\\\\\\\\\\\\nconst target = b;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\ntry {\\\\\\\\\\\\\\\\n const value = Math.max(eval(formula), 0);\\\\\\\\\\\\\\\\n return '%1%'.format(Math.round(value * 100));\\\\\\\\\\\\\\\\n} catch (e) {\\\\\\\\\\\\\\\\n if ($gameTemp.isPlaytest()) {\\\\\\\\\\\\\\\\n console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\\\\\\\\\n }\\\\\\\\\\\\\\\\n return '?????';\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\"\\\\\\\"}\\\",\\\"{\\\\\\\"Name:str\\\\\\\":\\\\\\\"D4\\\\\\\",\\\\\\\"Formula:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst user = this.subject();\\\\\\\\\\\\\\\\nconst target = arguments[0];\\\\\\\\\\\\\\\\nconst item = this.item();\\\\\\\\\\\\\\\\nconst a = this.subject();\\\\\\\\\\\\\\\\nconst b = target;\\\\\\\\\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Create Multiplier\\\\\\\\\\\\\\\\nconst multiplier = Math.max(eval(item.damage.formula), 0);\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Declare Values\\\\\\\\\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\\\\\\\\\narmor = this.applyArmorModifiers(target, armor);\\\\\\\\\\\\\\\\nlet stat = 0;\\\\\\\\\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n stat = a.atk;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n stat = a.mat;\\\\\\\\\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\\\\\\\\\n stat = a.def;\\\\\\\\\\\\\\\\n armor = 0;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\\\\\\\\\n stat = a.mdf;\\\\\\\\\\\\\\\\n armor = 0;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Calculate Damage \\\\\\\\\\\\\\\\nlet value = 1.5 * Math.max(2 * stat * multiplier - armor, 1) * multiplier / 5;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\\\\\\\\\"\\\\\\\",\\\\\\\"ItemsEquipsCore\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType1:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType2:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType3:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType4:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType5:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageType6:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageDisplay:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst item = this._item;\\\\\\\\\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\\\\\\\\\nconst a = this._tempActorA;\\\\\\\\\\\\\\\\nconst b = this._tempActorB;\\\\\\\\\\\\\\\\nconst user = a;\\\\\\\\\\\\\\\\nconst target = b;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\ntry {\\\\\\\\\\\\\\\\n const value = Math.max(eval(formula), 0);\\\\\\\\\\\\\\\\n return '%1%'.format(Math.round(value * 100));\\\\\\\\\\\\\\\\n} catch (e) {\\\\\\\\\\\\\\\\n if ($gameTemp.isPlaytest()) {\\\\\\\\\\\\\\\\n console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\\\\\\\\\n }\\\\\\\\\\\\\\\\n return '?????';\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\"\\\\\\\"}\\\",\\\"{\\\\\\\"Name:str\\\\\\\":\\\\\\\"DQ\\\\\\\",\\\\\\\"Formula:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst user = this.subject();\\\\\\\\\\\\\\\\nconst target = arguments[0];\\\\\\\\\\\\\\\\nconst item = this.item();\\\\\\\\\\\\\\\\nconst a = this.subject();\\\\\\\\\\\\\\\\nconst b = target;\\\\\\\\\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Create Multiplier\\\\\\\\\\\\\\\\nlet multiplier = Math.max(eval(item.damage.formula), 0);\\\\\\\\\\\\\\\\nif (this.isCertainHit()) {\\\\\\\\\\\\\\\\n let value = multiplier * Math.max(a.atk, a.mat);\\\\\\\\\\\\\\\\n return (isNaN(value) ? 0 : value) * sign;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Get Primary Stats\\\\\\\\\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\\\\\\\\\narmor = this.applyArmorModifiers(b, armor);\\\\\\\\\\\\\\\\nlet stat = 1;\\\\\\\\\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n stat = a.atk;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n stat = a.mat;\\\\\\\\\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\\\\\\\\\n stat = a.def;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\\\\\\\\\n stat = a.mdf;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Check for Recovery\\\\\\\\\\\\\\\\nif (this.isRecover()) {\\\\\\\\\\\\\\\\n let value = stat * multiplier * sign;\\\\\\\\\\\\\\\\n return isNaN(value) ? 0 : value;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Calculate Damage\\\\\\\\\\\\\\\\nlet value = 0;\\\\\\\\\\\\\\\\nif (stat < ((2 + armor) / 2)) {\\\\\\\\\\\\\\\\n // Plink Damage\\\\\\\\\\\\\\\\n let baseline = Math.max(stat - ((12 * (armor - stat + 1)) / stat), 5);\\\\\\\\\\\\\\\\n value = baseline / 3;\\\\\\\\\\\\\\\\n} else {\\\\\\\\\\\\\\\\n // Normal Damage\\\\\\\\\\\\\\\\n let baseline = Math.max(stat - (armor / 2), 1);\\\\\\\\\\\\\\\\n value = baseline / 2;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\nvalue *= multiplier;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\nreturn isNaN(value) ? 0 : value;\\\\\\\\\\\\\\\"\\\\\\\",\\\\\\\"ItemsEquipsCore\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType1:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType2:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType3:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType4:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType5:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageType6:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageDisplay:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst item = this._item;\\\\\\\\\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\\\\\\\\\nconst a = this._tempActorA;\\\\\\\\\\\\\\\\nconst b = this._tempActorB;\\\\\\\\\\\\\\\\nconst user = a;\\\\\\\\\\\\\\\\nconst target = b;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\ntry {\\\\\\\\\\\\\\\\n const value = Math.max(eval(formula), 0);\\\\\\\\\\\\\\\\n return '%1%'.format(Math.round(value * 100));\\\\\\\\\\\\\\\\n} catch (e) {\\\\\\\\\\\\\\\\n if ($gameTemp.isPlaytest()) {\\\\\\\\\\\\\\\\n console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\\\\\\\\\n }\\\\\\\\\\\\\\\\n return '?????';\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\"\\\\\\\"}\\\",\\\"{\\\\\\\"Name:str\\\\\\\":\\\\\\\"FF7\\\\\\\",\\\\\\\"Formula:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst user = this.subject();\\\\\\\\\\\\\\\\nconst target = arguments[0];\\\\\\\\\\\\\\\\nconst item = this.item();\\\\\\\\\\\\\\\\nconst a = this.subject();\\\\\\\\\\\\\\\\nconst b = target;\\\\\\\\\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Create Power\\\\\\\\\\\\\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Declare base Damage\\\\\\\\\\\\\\\\nlet baseDamage = 0;\\\\\\\\\\\\\\\\nlet level = Math.max(a.level || a.luk, 1);\\\\\\\\\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n baseDamage = a.atk + ((a.atk + level) / 32) * ((a.atk * level) / 32);\\\\\\\\\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n baseDamage = 6 * (a.mat + level);\\\\\\\\\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\\\\\\\\\n baseDamage = 6 * (a.def + level);\\\\\\\\\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\\\\\\\\\n baseDamage = 6 * (a.mdf + level);\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Calculate Final Damage\\\\\\\\\\\\\\\\nlet value = baseDamage;\\\\\\\\\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\\\\\\\\\narmor = this.applyArmorModifiers(target, armor);\\\\\\\\\\\\\\\\nif (this.isRecover()) {\\\\\\\\\\\\\\\\n value += 22 * power;\\\\\\\\\\\\\\\\n} else {\\\\\\\\\\\\\\\\n value = (power * Math.max(512 - armor, 1) * baseDamage) / (16 * 512);\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\\\\\\\\\"\\\\\\\",\\\\\\\"ItemsEquipsCore\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType1:str\\\\\\\":\\\\\\\"%1 Damage Power\\\\\\\",\\\\\\\"DamageType2:str\\\\\\\":\\\\\\\"%1 Damage Power\\\\\\\",\\\\\\\"DamageType3:str\\\\\\\":\\\\\\\"%1 Recovery Power\\\\\\\",\\\\\\\"DamageType4:str\\\\\\\":\\\\\\\"%1 Recovery Power\\\\\\\",\\\\\\\"DamageType5:str\\\\\\\":\\\\\\\"%1 Drain Power\\\\\\\",\\\\\\\"DamageType6:str\\\\\\\":\\\\\\\"%1 Drain Power\\\\\\\",\\\\\\\"DamageDisplay:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst item = this._item;\\\\\\\\\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\\\\\\\\\nconst a = this._tempActorA;\\\\\\\\\\\\\\\\nconst b = this._tempActorB;\\\\\\\\\\\\\\\\nconst user = a;\\\\\\\\\\\\\\\\nconst target = b;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\ntry {\\\\\\\\\\\\\\\\n return formula;\\\\\\\\\\\\\\\\n} catch (e) {\\\\\\\\\\\\\\\\n if ($gameTemp.isPlaytest()) {\\\\\\\\\\\\\\\\n console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\\\\\\\\\n }\\\\\\\\\\\\\\\\n return '?????';\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\"\\\\\\\"}\\\",\\\"{\\\\\\\"Name:str\\\\\\\":\\\\\\\"FF8\\\\\\\",\\\\\\\"Formula:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst user = this.subject();\\\\\\\\\\\\\\\\nconst target = arguments[0];\\\\\\\\\\\\\\\\nconst item = this.item();\\\\\\\\\\\\\\\\nconst a = this.subject();\\\\\\\\\\\\\\\\nconst b = target;\\\\\\\\\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Create Power\\\\\\\\\\\\\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Declare Damage\\\\\\\\\\\\\\\\nlet Value = 0;\\\\\\\\\\\\\\\\nlet level = Math.max(a.level || a.luk, 1);\\\\\\\\\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\\\\\\\\\narmor = this.applyArmorModifiers(target, armor);\\\\\\\\\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n value = a.atk ** 2 / 16 + a.atk;\\\\\\\\\\\\\\\\n value *= Math.max(265 - armor, 1) / 256;\\\\\\\\\\\\\\\\n value *= power / 16;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n value = a.mat + power;\\\\\\\\\\\\\\\\n value *= Math.max(265 - armor, 1) / 4;\\\\\\\\\\\\\\\\n value *= power / 256;\\\\\\\\\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\\\\\\\\\n value = (power + a.def) * power / 2;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\\\\\\\\\n value = (power + a.mdf) * power / 2;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\\\\\\\\\"\\\\\\\",\\\\\\\"ItemsEquipsCore\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType1:str\\\\\\\":\\\\\\\"%1 Damage Power\\\\\\\",\\\\\\\"DamageType2:str\\\\\\\":\\\\\\\"%1 Damage Power\\\\\\\",\\\\\\\"DamageType3:str\\\\\\\":\\\\\\\"%1 Recovery Power\\\\\\\",\\\\\\\"DamageType4:str\\\\\\\":\\\\\\\"%1 Recovery Power\\\\\\\",\\\\\\\"DamageType5:str\\\\\\\":\\\\\\\"%1 Drain Power\\\\\\\",\\\\\\\"DamageType6:str\\\\\\\":\\\\\\\"%1 Drain Power\\\\\\\",\\\\\\\"DamageDisplay:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst item = this._item;\\\\\\\\\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\\\\\\\\\nconst a = this._tempActorA;\\\\\\\\\\\\\\\\nconst b = this._tempActorB;\\\\\\\\\\\\\\\\nconst user = a;\\\\\\\\\\\\\\\\nconst target = b;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\ntry {\\\\\\\\\\\\\\\\n return formula;\\\\\\\\\\\\\\\\n} catch (e) {\\\\\\\\\\\\\\\\n if ($gameTemp.isPlaytest()) {\\\\\\\\\\\\\\\\n console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\\\\\\\\\n }\\\\\\\\\\\\\\\\n return '?????';\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\"\\\\\\\"}\\\",\\\"{\\\\\\\"Name:str\\\\\\\":\\\\\\\"FF9\\\\\\\",\\\\\\\"Formula:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst user = this.subject();\\\\\\\\\\\\\\\\nconst target = arguments[0];\\\\\\\\\\\\\\\\nconst item = this.item();\\\\\\\\\\\\\\\\nconst a = this.subject();\\\\\\\\\\\\\\\\nconst b = target;\\\\\\\\\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Create Damage Constant\\\\\\\\\\\\\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\\\\\\\\\\\\\nif (this.isCertainHit()) {\\\\\\\\\\\\\\\\n return (isNaN(power) ? 0 : power) * sign;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Declare Main Stats\\\\\\\\\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\\\\\\\\\narmor = this.applyArmorModifiers(b, armor);\\\\\\\\\\\\\\\\nlet stat = 1;\\\\\\\\\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n stat = a.atk;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n stat = a.mat;\\\\\\\\\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\\\\\\\\\n stat = a.def;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\\\\\\\\\n stat = a.mdf;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Declare Base Damage\\\\\\\\\\\\\\\\nlet baseDamage = power;\\\\\\\\\\\\\\\\nif (this.isPhysical()) {\\\\\\\\\\\\\\\\n baseDamage += stat;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\nif (this.isDamage() || this.isDrain()) {\\\\\\\\\\\\\\\\n baseDamage -= armor;\\\\\\\\\\\\\\\\n baseDamage = Math.max(1, baseDamage);\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Declare Bonus Damage\\\\\\\\\\\\\\\\nlet bonusDamage = stat + (((a.level || a.luk) + stat) / 8);\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Declare Final Damage\\\\\\\\\\\\\\\\nlet value = baseDamage * bonusDamage * sign;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\nreturn isNaN(value) ? 0 : value;\\\\\\\\\\\\\\\"\\\\\\\",\\\\\\\"ItemsEquipsCore\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType1:str\\\\\\\":\\\\\\\"%1 Damage Power\\\\\\\",\\\\\\\"DamageType2:str\\\\\\\":\\\\\\\"%1 Damage Power\\\\\\\",\\\\\\\"DamageType3:str\\\\\\\":\\\\\\\"%1 Recovery Power\\\\\\\",\\\\\\\"DamageType4:str\\\\\\\":\\\\\\\"%1 Recovery Power\\\\\\\",\\\\\\\"DamageType5:str\\\\\\\":\\\\\\\"%1 Drain Power\\\\\\\",\\\\\\\"DamageType6:str\\\\\\\":\\\\\\\"%1 Drain Power\\\\\\\",\\\\\\\"DamageDisplay:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst item = this._item;\\\\\\\\\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\\\\\\\\\nconst a = this._tempActorA;\\\\\\\\\\\\\\\\nconst b = this._tempActorB;\\\\\\\\\\\\\\\\nconst user = a;\\\\\\\\\\\\\\\\nconst target = b;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\ntry {\\\\\\\\\\\\\\\\n return formula;\\\\\\\\\\\\\\\\n} catch (e) {\\\\\\\\\\\\\\\\n if ($gameTemp.isPlaytest()) {\\\\\\\\\\\\\\\\n console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\\\\\\\\\n }\\\\\\\\\\\\\\\\n return '?????';\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\"\\\\\\\"}\\\",\\\"{\\\\\\\"Name:str\\\\\\\":\\\\\\\"FF10\\\\\\\",\\\\\\\"Formula:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst user = this.subject();\\\\\\\\\\\\\\\\nconst target = arguments[0];\\\\\\\\\\\\\\\\nconst item = this.item();\\\\\\\\\\\\\\\\nconst a = this.subject();\\\\\\\\\\\\\\\\nconst b = target;\\\\\\\\\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Create Damage Constant\\\\\\\\\\\\\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\\\\\\\\\\\\\nif (this.isCertainHit()) {\\\\\\\\\\\\\\\\n return (isNaN(power) ? 0 : power) * sign;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Create Damage Offense Value\\\\\\\\\\\\\\\\nlet value = power;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n value = (((a.atk ** 3) / 32) + 32) * power / 16;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n value = power * ((a.mat ** 2 / 6) + power) / 4;\\\\\\\\\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\\\\\\\\\n value = power * ((a.def + power) / 2);\\\\\\\\\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\\\\\\\\\n value = power * ((a.mdf + power) / 2);\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Apply Damage Defense Value\\\\\\\\\\\\\\\\nif (this.isDamage() || this.isDrain()) {\\\\\\\\\\\\\\\\n let armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\\\\\\\\\n armor = this.applyArmorModifiers(b, armor);\\\\\\\\\\\\\\\\n armor = Math.max(armor, 1);\\\\\\\\\\\\\\\\n value *= ((((armor - 280.4) ** 2) / 110) / 16) / 730;\\\\\\\\\\\\\\\\n value *= (730 - (armor * 51 - (armor ** 2) / 11) / 10) / 730;\\\\\\\\\\\\\\\\n} else if (this.isRecover()) {\\\\\\\\\\\\\\\\n value *= -1;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\nreturn isNaN(value) ? 0 : value;\\\\\\\\\\\\\\\"\\\\\\\",\\\\\\\"ItemsEquipsCore\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType1:str\\\\\\\":\\\\\\\"%1 Damage Power\\\\\\\",\\\\\\\"DamageType2:str\\\\\\\":\\\\\\\"%1 Damage Power\\\\\\\",\\\\\\\"DamageType3:str\\\\\\\":\\\\\\\"%1 Recovery Power\\\\\\\",\\\\\\\"DamageType4:str\\\\\\\":\\\\\\\"%1 Recovery Power\\\\\\\",\\\\\\\"DamageType5:str\\\\\\\":\\\\\\\"%1 Drain Power\\\\\\\",\\\\\\\"DamageType6:str\\\\\\\":\\\\\\\"%1 Drain Power\\\\\\\",\\\\\\\"DamageDisplay:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst item = this._item;\\\\\\\\\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\\\\\\\\\nconst a = this._tempActorA;\\\\\\\\\\\\\\\\nconst b = this._tempActorB;\\\\\\\\\\\\\\\\nconst user = a;\\\\\\\\\\\\\\\\nconst target = b;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\ntry {\\\\\\\\\\\\\\\\n return formula;\\\\\\\\\\\\\\\\n} catch (e) {\\\\\\\\\\\\\\\\n if ($gameTemp.isPlaytest()) {\\\\\\\\\\\\\\\\n console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\\\\\\\\\n }\\\\\\\\\\\\\\\\n return '?????';\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\"\\\\\\\"}\\\",\\\"{\\\\\\\"Name:str\\\\\\\":\\\\\\\"MK\\\\\\\",\\\\\\\"Formula:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst user = this.subject();\\\\\\\\\\\\\\\\nconst target = arguments[0];\\\\\\\\\\\\\\\\nconst item = this.item();\\\\\\\\\\\\\\\\nconst a = this.subject();\\\\\\\\\\\\\\\\nconst b = target;\\\\\\\\\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Create Multiplier\\\\\\\\\\\\\\\\nconst multiplier = Math.max(eval(item.damage.formula), 0);\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Declare Values\\\\\\\\\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\\\\\\\\\narmor = this.applyArmorModifiers(target, armor);\\\\\\\\\\\\\\\\nconst denominator = Math.max(200 + armor, 1);\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Calculate Damage \\\\\\\\\\\\\\\\nlet value = 0;\\\\\\\\\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n value = 200 * a.atk / denominator;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n value = 200 * a.mat / denominator;\\\\\\\\\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\\\\\\\\\n value = 200 * a.def / 200;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\\\\\\\\\n value = 200 * a.mdf / 200;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\nvalue *= multiplier;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\\\\\\\\\"\\\\\\\",\\\\\\\"ItemsEquipsCore\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType1:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType2:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType3:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType4:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType5:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageType6:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageDisplay:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst item = this._item;\\\\\\\\\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\\\\\\\\\nconst a = this._tempActorA;\\\\\\\\\\\\\\\\nconst b = this._tempActorB;\\\\\\\\\\\\\\\\nconst user = a;\\\\\\\\\\\\\\\\nconst target = b;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\ntry {\\\\\\\\\\\\\\\\n const value = Math.max(eval(formula), 0);\\\\\\\\\\\\\\\\n return '%1%'.format(Math.round(value * 100));\\\\\\\\\\\\\\\\n} catch (e) {\\\\\\\\\\\\\\\\n if ($gameTemp.isPlaytest()) {\\\\\\\\\\\\\\\\n console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\\\\\\\\\n }\\\\\\\\\\\\\\\\n return '?????';\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\"\\\\\\\"}\\\",\\\"{\\\\\\\"Name:str\\\\\\\":\\\\\\\"MOBA\\\\\\\",\\\\\\\"Formula:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst user = this.subject();\\\\\\\\\\\\\\\\nconst target = arguments[0];\\\\\\\\\\\\\\\\nconst item = this.item();\\\\\\\\\\\\\\\\nconst a = this.subject();\\\\\\\\\\\\\\\\nconst b = target;\\\\\\\\\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Create Damage Value\\\\\\\\\\\\\\\\nlet value = Math.max(eval(item.damage.formula), 0) * sign;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Apply Attacker's Offense Parameter\\\\\\\\\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n value *= a.atk;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n value *= a.mat;\\\\\\\\\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\\\\\\\\\n value *= a.def;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\\\\\\\\\n value *= a.mdf;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Apply Defender's Defense Parameter\\\\\\\\\\\\\\\\nif (this.isDamage() && !this.isCertainHit()) {\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n // Calculate Base Armor\\\\\\\\\\\\\\\\n let armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\\\\\\\\\n armor = this.applyArmorModifiers(target, armor);\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n // Apply Armor to Damage\\\\\\\\\\\\\\\\n if (armor >= 0) {\\\\\\\\\\\\\\\\n value *= 100 / (100 + armor);\\\\\\\\\\\\\\\\n } else {\\\\\\\\\\\\\\\\n value *= 2 - (100 / (100 - armor));\\\\\\\\\\\\\\\\n }\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\nreturn isNaN(value) ? 0 : value;\\\\\\\\\\\\\\\"\\\\\\\",\\\\\\\"ItemsEquipsCore\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType1:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType2:str\\\\\\\":\\\\\\\"%1 Damage Multiplier\\\\\\\",\\\\\\\"DamageType3:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType4:str\\\\\\\":\\\\\\\"%1 Recovery Multiplier\\\\\\\",\\\\\\\"DamageType5:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageType6:str\\\\\\\":\\\\\\\"%1 Drain Multiplier\\\\\\\",\\\\\\\"DamageDisplay:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst item = this._item;\\\\\\\\\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\\\\\\\\\nconst a = this._tempActorA;\\\\\\\\\\\\\\\\nconst b = this._tempActorB;\\\\\\\\\\\\\\\\nconst user = a;\\\\\\\\\\\\\\\\nconst target = b;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\ntry {\\\\\\\\\\\\\\\\n const value = Math.max(eval(formula), 0);\\\\\\\\\\\\\\\\n return '%1%'.format(Math.round(value * 100));\\\\\\\\\\\\\\\\n} catch (e) {\\\\\\\\\\\\\\\\n if ($gameTemp.isPlaytest()) {\\\\\\\\\\\\\\\\n console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\\\\\\\\\n }\\\\\\\\\\\\\\\\n return '?????';\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\"\\\\\\\"}\\\",\\\"{\\\\\\\"Name:str\\\\\\\":\\\\\\\"PKMN\\\\\\\",\\\\\\\"Formula:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst user = this.subject();\\\\\\\\\\\\\\\\nconst target = arguments[0];\\\\\\\\\\\\\\\\nconst item = this.item();\\\\\\\\\\\\\\\\nconst a = this.subject();\\\\\\\\\\\\\\\\nconst b = target;\\\\\\\\\\\\\\\\nconst v = $gameVariables._data;\\\\\\\\\\\\\\\\nconst sign = [3, 4].includes(item.damage.type) ? -1 : 1;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Create Power\\\\\\\\\\\\\\\\nconst power = Math.max(eval(item.damage.formula), 0);\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Declare Values\\\\\\\\\\\\\\\\nlet value = 0;\\\\\\\\\\\\\\\\nlet level = Math.max(a.level || a.luk, 1);\\\\\\\\\\\\\\\\nlet armor = this.isPhysical() ? b.def : b.mdf;\\\\\\\\\\\\\\\\narmor = Math.max(this.applyArmorModifiers(target, armor), 0);\\\\\\\\\\\\\\\\nlet attackStat = 0;\\\\\\\\\\\\\\\\nif (this.isPhysical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n attackStat = a.atk;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && (this.isDamage() || this.isDrain())) {\\\\\\\\\\\\\\\\n attackStat = a.mat;\\\\\\\\\\\\\\\\n} else if (this.isPhysical() && this.isRecover()) {\\\\\\\\\\\\\\\\n attackStat = a.def;\\\\\\\\\\\\\\\\n} else if (this.isMagical() && this.isRecover()) {\\\\\\\\\\\\\\\\n attackStat = a.mdf;\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Calculate Damage\\\\\\\\\\\\\\\\nvalue = (((((2 * level) / 5) + 2) * power * (attackStat / armor)) / 50) + 2;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\nreturn (isNaN(value) ? 0 : value) * sign;\\\\\\\\\\\\\\\"\\\\\\\",\\\\\\\"ItemsEquipsCore\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType\\\\\\\":\\\\\\\"\\\\\\\",\\\\\\\"DamageType1:str\\\\\\\":\\\\\\\"%1 Damage Power\\\\\\\",\\\\\\\"DamageType2:str\\\\\\\":\\\\\\\"%1 Damage Power\\\\\\\",\\\\\\\"DamageType3:str\\\\\\\":\\\\\\\"%1 Recovery Power\\\\\\\",\\\\\\\"DamageType4:str\\\\\\\":\\\\\\\"%1 Recovery Power\\\\\\\",\\\\\\\"DamageType5:str\\\\\\\":\\\\\\\"%1 Drain Power\\\\\\\",\\\\\\\"DamageType6:str\\\\\\\":\\\\\\\"%1 Drain Power\\\\\\\",\\\\\\\"DamageDisplay:func\\\\\\\":\\\\\\\"\\\\\\\\\\\\\\\"// Define Constants\\\\\\\\\\\\\\\\nconst item = this._item;\\\\\\\\\\\\\\\\nconst formula = item.damage.formula;\\\\\\\\\\\\\\\\nconst a = this._tempActorA;\\\\\\\\\\\\\\\\nconst b = this._tempActorB;\\\\\\\\\\\\\\\\nconst user = a;\\\\\\\\\\\\\\\\nconst target = b;\\\\\\\\\\\\\\\\n\\\\\\\\\\\\\\\\n// Return Value\\\\\\\\\\\\\\\\ntry {\\\\\\\\\\\\\\\\n return formula;\\\\\\\\\\\\\\\\n} catch (e) {\\\\\\\\\\\\\\\\n if ($gameTemp.isPlaytest()) {\\\\\\\\\\\\\\\\n console.log('Damage Formula Error for %1'.format(this._item.name));\\\\\\\\\\\\\\\\n }\\\\\\\\\\\\\\\\n return '?????';\\\\\\\\\\\\\\\\n}\\\\\\\\\\\\\\\"\\\\\\\"}\\\"]\",\"Cap\":\"\",\"EnableDamageCap:eval\":\"false\",\"DefaultHardCap:num\":\"9999\",\"EnableSoftCap:eval\":\"false\",\"DefaultSoftCap:num\":\"0.80\",\"DefaultSoftScaler:num\":\"0.1275\",\"Popups\":\"\",\"PopupDuration:num\":\"128\",\"NewPopupBottom:eval\":\"true\",\"PopupPosition:str\":\"base\",\"PopupOffsetX:num\":\"0\",\"PopupOffsetY:num\":\"0\",\"PopupShiftX:num\":\"8\",\"PopupShiftY:num\":\"-28\",\"hpDamageFmt:str\":\"-%1\",\"hpHealingFmt:str\":\"+%1\",\"mpDamageFmt:str\":\"-%1 %2\",\"mpHealingFmt:str\":\"+%1 %2\",\"CriticalColor:eval\":\"[255, 0, 0, 160]\",\"CriticalDuration:num\":\"128\",\"Formulas\":\"\",\"OverallFormulaJS:func\":\"\\\"// Declare Constants\\\\nconst target = arguments[0];\\\\nconst critical = arguments[1];\\\\nconst item = this.item();\\\\n\\\\n// Get Base Damage\\\\nconst baseValue = this.evalDamageFormula(target);\\\\n\\\\n// Calculate Element Modifiers\\\\nlet value = baseValue * this.calcElementRate(target);\\\\n\\\\n// Calculate Physical and Magical Modifiers\\\\nif (this.isPhysical()) {\\\\n value *= target.pdr;\\\\n}\\\\nif (this.isMagical()) {\\\\n value *= target.mdr;\\\\n}\\\\n\\\\n// Apply Healing Modifiers\\\\nif (baseValue < 0) {\\\\n value *= target.rec;\\\\n}\\\\n\\\\n// Apply Critical Modifiers\\\\nif (critical) {\\\\n value = this.applyCritical(value);\\\\n}\\\\n\\\\n// Apply Variance and Guard Modifiers\\\\nvalue = this.applyVariance(value, item.damage.variance);\\\\nvalue = this.applyGuard(value, target);\\\\n\\\\n// Finalize Damage\\\\nvalue = Math.round(value);\\\\nreturn value;\\\"\",\"VarianceFormulaJS:func\":\"\\\"// Declare Constants\\\\nconst damage = arguments[0];\\\\nconst variance = arguments[1];\\\\n\\\\n// Calculate Variance\\\\nconst amp = Math.floor(Math.max((Math.abs(damage) * variance) / 100, 0));\\\\nconst v = Math.randomInt(amp + 1) + Math.randomInt(amp + 1) - amp;\\\\n\\\\n// Return Damage\\\\nreturn damage >= 0 ? damage + v : damage - v;\\\"\",\"GuardFormulaJS:func\":\"\\\"// Declare Constants\\\\nconst damage = arguments[0];\\\\nconst target = arguments[1];\\\\n\\\\n// Return Damage Early\\\\nconst note = this.item().note;\\\\nif (note.match(/<UNBLOCKABLE>/i)) return damage;\\\\nif (!target.isGuard()) return damage;\\\\nif (damage < 0) return damage;\\\\n\\\\n// Declare Guard Rate\\\\nlet guardRate = 0.5;\\\\nguardRate /= target.grd;\\\\n\\\\n// Return Damage\\\\nreturn damage * guardRate;\\\"\",\"Critical\":\"\",\"CriticalHitRateJS:func\":\"\\\"// Declare Constants\\\\nconst user = this.subject();\\\\nconst target = arguments[0];\\\\n\\\\n// Create Base Critical Rate\\\\nlet rate = this.subject().cri * (1 - target.cev);\\\\n\\\\n// Apply Notetags\\\\nconst note = this.item().note;\\\\nif (note.match(/<ALWAYS CRITICAL>/i)) {\\\\n return 1;\\\\n}\\\\nif (note.match(/<SET CRITICAL RATE:[ ](\\\\\\\\d+)([%])>/i)) {\\\\n return Number(RegExp.$1) / 100;\\\\n}\\\\nif (note.match(/<MODIFY CRITICAL RATE:[ ](\\\\\\\\d+)([%])>/i)) {\\\\n rate *= Number(RegExp.$1) / 100;\\\\n}\\\\nif (note.match(/<MODIFY CRITICAL RATE:[ ]([\\\\\\\\+\\\\\\\\-]\\\\\\\\d+)([%])>/i)) {\\\\n rate += Number(RegExp.$1) / 100;\\\\n}\\\\nif (note.match(/<JS CRITICAL RATE>\\\\\\\\s*([\\\\\\\\s\\\\\\\\S]*)\\\\\\\\s*<\\\\\\\\/JS CRITICAL RATE>/i)) {\\\\n const code = String(RegExp.$1);\\\\n try {\\\\n eval(code);\\\\n } catch (e) {\\\\n if ($gameTemp.isPlaytest()) console.log(e);\\\\n }\\\\n}\\\\n\\\\n// Apply LUK Buffs/Debuffs\\\\nconst lukStack = this.subject().buff(7);\\\\nrate *= 2 ** lukStack;\\\\n\\\\n// Return Rate\\\\nreturn rate;\\\"\",\"CriticalHitMultiplier:func\":\"\\\"// Declare Constants\\\\nconst user = this.subject();\\\\nlet damage = arguments[0];\\\\nlet multiplier = 2.0;\\\\nlet bonusDamage = this.subject().luk * this.subject().cri;\\\\nif (this.isHpRecover() || this.isMpRecover()) {\\\\n bonusDamage *= -1;\\\\n}\\\\n\\\\n// Apply Notetags\\\\nconst note = this.item().note;\\\\nif (note.match(/<MODIFY CRITICAL MULTIPLIER:[ ](\\\\\\\\d+)([%])>/i)) {\\\\n multiplier = Number(RegExp.$1) / 100;\\\\n}\\\\nif (note.match(/<MODIFY CRITICAL MULTIPLIER:[ ]([\\\\\\\\+\\\\\\\\-]\\\\\\\\d+)([%])>/i)) {\\\\n multiplier += Number(RegExp.$1) / 100;\\\\n}\\\\nif (note.match(/<MODIFY CRITICAL BONUS DAMAGE:[ ](\\\\\\\\d+)([%])>/i)) {\\\\n bonusDamage *= Number(RegExp.$1) / 100;\\\\n}\\\\nif (note.match(/<MODIFY CRITICAL BONUS DAMAGE:[ ]([\\\\\\\\+\\\\\\\\-]\\\\\\\\d+)([%])>/i)) {\\\\n bonusDamage += bonusDamage * (RegExp.$1) / 100;\\\\n}\\\\nif (note.match(/<JS CRITICAL DAMAGE>\\\\\\\\s*([\\\\\\\\s\\\\\\\\S]*)\\\\\\\\s*<\\\\\\\\/JS CRITICAL DAMAGE>/i)) {\\\\n const code = String(RegExp.$1);\\\\n try {\\\\n eval(code);\\\\n } catch (e) {\\\\n if ($gameTemp.isPlaytest()) console.log(e);\\\\n }\\\\n}\\\\n\\\\n// Return Damage\\\\nreturn damage * multiplier + bonusDamage;\\\"\"}","Mechanics:struct":"{\"ActionSpeed\":\"\",\"AllowRandomSpeed:eval\":\"false\",\"CalcActionSpeedJS:func\":\"\\\"// Declare Constants\\\\nconst agi = this.subject().agi;\\\\n\\\\n// Create Speed\\\\nlet speed = agi;\\\\nif (this.allowRandomSpeed()) {\\\\n speed += Math.randomInt(Math.floor(5 + agi / 4));\\\\n}\\\\nif (this.item()) {\\\\n speed += this.item().speed;\\\\n}\\\\nif (this.isAttack()) {\\\\n speed += this.subject().attackSpeed();\\\\n}\\\\n\\\\n// Return Speed\\\\nreturn speed;\\\"\",\"BaseTroop\":\"\",\"BaseTroopIDs:arraynum\":\"[\\\"1\\\"]\",\"CommonEvents\":\"\",\"BattleStartEvent:num\":\"0\",\"BattleEndEvent:num\":\"0\",\"VictoryEvent:num\":\"1\",\"DefeatEvent:num\":\"0\",\"EscapeSuccessEvent:num\":\"0\",\"EscapeFailEvent:num\":\"0\",\"Escape\":\"\",\"CalcEscapeRatioJS:func\":\"\\\"// Calculate Escape Ratio\\\\nlet ratio = 0.5;\\\\nratio *= $gameParty.agility();\\\\nratio /= $gameTroop.agility();\\\\n\\\\n// Return Ratio\\\\nreturn ratio;\\\"\",\"CalcEscapeRaiseJS:func\":\"\\\"// Calculate Escape Ratio\\\\nlet value = 0.1;\\\\nvalue += $gameParty.aliveMembers().length;\\\\n\\\\n// Return Value\\\\nreturn value;\\\"\",\"Switches\":\"\",\"SwitchCritical:num\":\"0\",\"SwitchMissEvade:num\":\"0\",\"Variables\":\"\",\"VariableDmg:num\":\"0\",\"VariableHeal:num\":\"0\",\"BattleJS\":\"\",\"PreStartBattleJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"PostStartBattleJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"BattleVictoryJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"EscapeSuccessJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"EscapeFailureJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"BattleDefeatJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"PreEndBattleJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"PostEndBattleJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"TurnJS\":\"\",\"PreStartTurnJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"PostStartTurnJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"PreEndTurnJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"PostEndTurnJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"PreRegenerateJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"PostRegenerateJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"ActionJS\":\"\",\"PreStartActionJS:func\":\"\\\"// Declare Constants\\\\nconst value = arguments[0];\\\\nconst user = this.subject();\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\nconst action = this;\\\\nconst item = this.item();\\\\nconst skill = this.item();\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"PostStartActionJS:func\":\"\\\"// Declare Constants\\\\nconst value = arguments[0];\\\\nconst user = this.subject();\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\nconst action = this;\\\\nconst item = this.item();\\\\nconst skill = this.item();\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"PreApplyJS:func\":\"\\\"// Declare Constants\\\\nconst value = arguments[0];\\\\nconst target = arguments[1];\\\\nconst user = this.subject();\\\\nconst a = user;\\\\nconst b = target;\\\\nconst action = this;\\\\nconst item = this.item();\\\\nconst skill = this.item();\\\\n\\\\n// Perform Actions\\\\n\\\\n// Return Value\\\\nreturn value;\\\"\",\"PreDamageJS:func\":\"\\\"// Declare Constants\\\\nconst value = arguments[0];\\\\nconst target = arguments[1];\\\\nconst user = this.subject();\\\\nconst a = user;\\\\nconst b = target;\\\\nconst action = this;\\\\nconst item = this.item();\\\\nconst skill = this.item();\\\\n\\\\n// Perform Actions\\\\n\\\\n// Return Value\\\\nreturn value;\\\"\",\"PostDamageJS:func\":\"\\\"// Declare Constants\\\\nconst value = arguments[0];\\\\nconst target = arguments[1];\\\\nconst user = this.subject();\\\\nconst a = user;\\\\nconst b = target;\\\\nconst action = this;\\\\nconst item = this.item();\\\\nconst skill = this.item();\\\\n\\\\n// Perform Actions\\\\n\\\\n// Return Value\\\\nreturn value;\\\"\",\"PostApplyJS:func\":\"\\\"// Declare Constants\\\\nconst value = arguments[0];\\\\nconst target = arguments[1];\\\\nconst user = this.subject();\\\\nconst a = user;\\\\nconst b = target;\\\\nconst action = this;\\\\nconst item = this.item();\\\\nconst skill = this.item();\\\\n\\\\n// Perform Actions\\\\n\\\\n// Return Value\\\\nreturn value;\\\"\",\"PreEndActionJS:func\":\"\\\"// Declare Constants\\\\nconst value = arguments[0];\\\\nconst user = this.subject();\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\nconst action = this;\\\\nconst item = this.item();\\\\nconst skill = this.item();\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"PostEndActionJS:func\":\"\\\"// Declare Constants\\\\nconst value = arguments[0];\\\\nconst user = this.subject();\\\\nconst target = user;\\\\nconst a = user;\\\\nconst b = user;\\\\nconst action = this;\\\\nconst item = this.item();\\\\nconst skill = this.item();\\\\n\\\\n// Perform Actions\\\\n\\\"\"}","CmdWindows":"----------------------------------","BattleLayout:struct":"{\"Style:str\":\"sideview_ui\",\"ListStyle\":\"\",\"ShowFacesListStyle:eval\":\"true\",\"CommandWidth:num\":\"192\",\"XPStyle\":\"\",\"XPActorCommandLines:num\":\"4\",\"XPActorDefaultHeight:num\":\"64\",\"XPSpriteYLocation:str\":\"name\",\"PotraitStyle\":\"\",\"ShowPortraits:eval\":\"true\",\"PortraitScale:num\":\"0.5\",\"BorderStyle\":\"\",\"SkillItemBorderCols:num\":\"1\",\"ShowPortraitsBorderStyle:eval\":\"true\",\"PortraitScaleBorderStyle:num\":\"1.25\",\"SkillItemWindows\":\"\",\"SkillItemMiddleLayout:eval\":\"false\",\"SkillItemStandardCols:num\":\"2\",\"StatusWindow\":\"\",\"StatusWindowName\":\"\",\"NameOffsetX:num\":\"+0\",\"NameOffsetY:num\":\"+0\",\"StatusWindowHpGauge\":\"\",\"HpGaugeOffsetX:num\":\"+0\",\"HpGaugeOffsetY:num\":\"+0\",\"StatusWindowMpGauge\":\"\",\"MpGaugeOffsetX:num\":\"+0\",\"MpGaugeOffsetY:num\":\"+0\",\"StatusWindowTpGauge\":\"\",\"TpGaugeOffsetX:num\":\"+0\",\"TpGaugeOffsetY:num\":\"+0\",\"StatusWindowStateIcon\":\"\",\"StateIconOffsetX:num\":\"+0\",\"StateIconOffsetY:num\":\"+0\",\"StatusWindowTpbGauge\":\"\",\"TpbGaugeOffsetX:num\":\"+0\",\"TpbGaugeOffsetY:num\":\"+0\",\"StatusWindowSkin\":\"\",\"StatusWindowSkinFilename:str\":\"\",\"StatusWindowSkinHide:eval\":\"false\",\"StatusWindowSelectBack\":\"\",\"StatusWindowSelectableBackHide:eval\":\"false\",\"StatusWindowAttachments\":\"\",\"StatusWindowBackAttachment\":\"\",\"StatusWindowAttachmentBack:str\":\"\",\"StatusWindowAttachmentBackOffsetX:num\":\"+0\",\"StatusWindowAttachmentBackOffsetY:num\":\"+0\",\"StatusWindowFrontAttachment\":\"\",\"StatusWindowAttachmentFront:str\":\"\",\"StatusWindowAttachmentFrontOffsetX:num\":\"+0\",\"StatusWindowAttachmentFrontOffsetY:num\":\"+0\",\"UiElements\":\"\",\"AntiTintUiElements:eval\":\"true\"}","BattleLog:struct":"{\"General\":\"\",\"BackColor:str\":\"#000000\",\"MaxLines:num\":\"10\",\"MessageWait:num\":\"16\",\"TextAlign:str\":\"center\",\"BattleLogRectJS:func\":\"\\\"const wx = 0;\\\\nconst wy = 0;\\\\nconst ww = Graphics.boxWidth;\\\\nconst wh = this.calcWindowHeight(10, false);\\\\nreturn new Rectangle(wx, wy, ww, wh);\\\"\",\"StartTurn\":\"\",\"StartTurnShow:eval\":\"false\",\"StartTurnMsg:str\":\"Turn %1\",\"StartTurnWait:num\":\"40\",\"DisplayAction\":\"\",\"ActionCenteredName:eval\":\"false\",\"ActionSkillMsg1:eval\":\"true\",\"ActionSkillMsg2:eval\":\"true\",\"ActionItemMsg:eval\":\"false\",\"ActionChanges\":\"\",\"ShowCounter:eval\":\"true\",\"ShowReflect:eval\":\"true\",\"ShowSubstitute:eval\":\"true\",\"ActionResults\":\"\",\"ShowFailure:eval\":\"false\",\"ShowCritical:eval\":\"false\",\"ShowMissEvasion:eval\":\"false\",\"ShowHpDmg:eval\":\"false\",\"ShowMpDmg:eval\":\"false\",\"ShowTpDmg:eval\":\"false\",\"DisplayStates\":\"\",\"ShowAddedState:eval\":\"false\",\"ShowRemovedState:eval\":\"false\",\"ShowCurrentState:eval\":\"false\",\"ShowAddedBuff:eval\":\"false\",\"ShowAddedDebuff:eval\":\"false\",\"ShowRemovedBuff:eval\":\"false\"}","Battleback:struct":"{\"DefaultStyle:str\":\"MZ\",\"jsOneForOne:func\":\"\\\"// Adjust Size\\\\nthis.width = Graphics.width;\\\\nthis.height = Graphics.height;\\\\n\\\\n// Adjust Scale\\\\nconst scale = 1.0;\\\\nthis.scale.x = scale;\\\\nthis.scale.y = scale;\\\\n\\\\n// Adjust Coordinates\\\\nthis.x = 0;\\\\nthis.y = 0;\\\"\",\"jsScaleToFit:func\":\"\\\"// Adjust Size\\\\nthis.width = Graphics.width;\\\\nthis.height = Graphics.height;\\\\n\\\\n// Adjust Scale\\\\nconst ratioX = this.width / this.bitmap.width;\\\\nconst ratioY = this.height / this.bitmap.height;\\\\nconst scale = Math.max(ratioX, ratioY);\\\\nthis.scale.x = scale;\\\\nthis.scale.y = scale;\\\\n\\\\n// Adjust Coordinates\\\\nthis.x = (Graphics.width - this.width) / 2;\\\\nthis.y = Graphics.height - this.height;\\\"\",\"jsScaleDown:func\":\"\\\"// Adjust Size\\\\nthis.width = Graphics.width;\\\\nthis.height = Graphics.height;\\\\n\\\\n// Adjust Scale\\\\nconst ratioX = Math.min(1, this.width / this.bitmap.width);\\\\nconst ratioY = Math.min(1, this.height / this.bitmap.height);\\\\nconst scale = Math.max(ratioX, ratioY);\\\\nthis.scale.x = scale;\\\\nthis.scale.y = scale;\\\\n\\\\n// Adjust Coordinates\\\\nthis.x = (Graphics.width - this.width) / 2;\\\\nthis.y = Graphics.height - this.height;\\\"\",\"jsScale Up:func\":\"\\\"// Adjust Size\\\\nthis.width = Graphics.width;\\\\nthis.height = Graphics.height;\\\\n\\\\n// Adjust Scale\\\\nconst ratioX = Math.max(1, this.width / this.bitmap.width);\\\\nconst ratioY = Math.max(1, this.height / this.bitmap.height);\\\\nconst scale = Math.max(ratioX, ratioY);\\\\nthis.scale.x = scale;\\\\nthis.scale.y = scale;\\\\n\\\\n// Adjust Coordinates\\\\nthis.x = (Graphics.width - this.width) / 2;\\\\nthis.y = Graphics.height - this.height;\\\"\"}","PartyCmd:struct":"{\"Cmd\":\"\",\"CmdStyle:str\":\"auto\",\"CmdTextAlign:str\":\"left\",\"CmdIconFight:num\":\"76\",\"CommandAddAutoBattle:eval\":\"false\",\"CmdIconAutoBattle:num\":\"78\",\"CmdTextAutoBattle:str\":\"Auto\",\"CommandAddOptions:eval\":\"false\",\"CmdIconOptions:num\":\"83\",\"ActiveTpbOptionsMessage:str\":\"Options Menu queued after action is complete.\",\"CmdIconEscape:num\":\"82\",\"Access\":\"\",\"SkipPartyCmd:eval\":\"true\",\"DisablePartyCmd:eval\":\"false\",\"HelpWindow\":\"\",\"HelpFight:str\":\"Select actions to fight.\",\"HelpAutoBattle:str\":\"Sets party to Auto Battle mode.\",\"HelpOptions:str\":\"Opens up the Options Menu.\",\"HelpEscape:str\":\"Attempt to escape the battle.\"}","ActorCmd:struct":"{\"Cmd\":\"\",\"CmdStyle:str\":\"auto\",\"CmdTextAlign:str\":\"left\",\"CmdIconItem:num\":\"176\",\"IconStypeNorm:num\":\"78\",\"IconStypeMagic:num\":\"79\",\"BattleCmd\":\"\",\"BattleCmdList:arraystr\":\"[\\\"attack\\\",\\\"skills\\\",\\\"escape\\\"]\",\"ShowCosts:eval\":\"true\",\"HelpWindow\":\"\",\"HelpSkillType:str\":\"Opens up a list of skills under the \\\\C[16]%1\\\\C[0] category.\",\"HelpItem:str\":\"Opens up a list of items that you can use.\",\"HelpEscape:str\":\"Attempt to escape the battle.\",\"HelpAutoBattle:str\":\"Automatically choose an action suitable for combat.\",\"HelpParty:str\":\"Automatically choose an action suitable for combat.\"}","VisualBreak":"----------------------------------","Actor:struct":"{\"Flinch\":\"\",\"FlinchDistanceX:num\":\"12\",\"FlinchDistanceY:num\":\"0\",\"FlinchDuration:num\":\"6\",\"SvBattlers\":\"\",\"AnchorX:num\":\"0.5\",\"AnchorY:num\":\"1.0\",\"ChantStyle:eval\":\"true\",\"OffsetX:num\":\"0\",\"OffsetY:num\":\"0\",\"MotionSpeed:num\":\"12\",\"PrioritySortActive:eval\":\"true\",\"PrioritySortActors:eval\":\"false\",\"Shadow:eval\":\"true\",\"SmoothImage:eval\":\"true\",\"HomePosJS:func\":\"\\\"// Declare Constants\\\\nconst sprite = this;\\\\nconst actor = this._actor;\\\\nconst index = arguments[0];\\\\n\\\\n// Make Calculations\\\\nlet x = Math.round((Graphics.width / 2) + 192)\\\\nx -= Math.floor((Graphics.width - Graphics.boxWidth) / 2);\\\\nx += index * 32;\\\\nlet y = (Graphics.height - 200) - ($gameParty.maxBattleMembers() * 48);\\\\ny -= Math.floor((Graphics.height - Graphics.boxHeight) / 2);\\\\ny += index * 48;\\\\n\\\\n// Home Position Offsets\\\\nconst offsetNote = /<SIDEVIEW HOME OFFSET:[ ]([\\\\\\\\+\\\\\\\\-]\\\\\\\\d+),[ ]([\\\\\\\\+\\\\\\\\-]\\\\\\\\d+)>/i;\\\\nconst xOffsets = actor.traitObjects().map((obj) => (obj && obj.note.match(offsetNote) ? Number(RegExp.$1) : 0));\\\\nconst yOffsets = actor.traitObjects().map((obj) => (obj && obj.note.match(offsetNote) ? Number(RegExp.$2) : 0));\\\\nx = xOffsets.reduce((r, offset) => r + offset, x);\\\\ny = yOffsets.reduce((r, offset) => r + offset, y);\\\\n\\\\n// Set Home Position\\\\nthis.setHome(x, y);\\\"\"}","Enemy:struct":"{\"Visual\":\"\",\"AttackAnimation:num\":\"1\",\"EmergeText:eval\":\"false\",\"OffsetX:num\":\"0\",\"OffsetY:num\":\"0\",\"SmoothImage:eval\":\"true\",\"SelectWindow\":\"\",\"FrontViewSelect:eval\":\"false\",\"SideviewSelect:eval\":\"true\",\"NameFontSize:num\":\"22\",\"SvBattlers\":\"\",\"AllowCollapse:eval\":\"false\",\"AnchorX:num\":\"0.5\",\"AnchorY:num\":\"1.0\",\"MotionIdle:str\":\"walk\",\"Shadow:eval\":\"true\",\"Width:num\":\"64\",\"Height:num\":\"64\",\"WtypeId:num\":\"0\"}","HpGauge:struct":"{\"Display\":\"\",\"ShowActorGauge:eval\":\"true\",\"ShowEnemyGauge:eval\":\"true\",\"RequiresDefeat:eval\":\"false\",\"BTestBypass:eval\":\"true\",\"Settings\":\"\",\"AnchorX:num\":\"0.5\",\"AnchorY:num\":\"1.0\",\"Scale:num\":\"0.5\",\"OffsetX:num\":\"0\",\"OffsetY:num\":\"-3\",\"Options\":\"\",\"AddHpGaugeOption:eval\":\"true\",\"AdjustRect:eval\":\"true\",\"Name:str\":\"Show HP Gauge\"}","ActionSequence:struct":"{\"AutoSequences\":\"\",\"AutoMeleeSolo:eval\":\"true\",\"AutoMeleeAoE:eval\":\"true\",\"CastAnimations\":\"\",\"CastCertain:num\":\"120\",\"CastPhysical:num\":\"52\",\"CastMagical:num\":\"51\",\"CounterReflection\":\"\",\"CounterPlayback:eval\":\"true\",\"ReflectAnimation:num\":\"53\",\"ReflectPlayback:eval\":\"true\",\"Stepping\":\"\",\"MeleeDistance:num\":\"24\",\"StepDistanceX:num\":\"48\",\"StepDistanceY:num\":\"0\",\"StepDuration:num\":\"12\"}","BreakEnd1":"----------------------------------","End Of":"Plugin Parameters","BreakEnd2":"----------------------------------"}},
{"name":"VisuMZ_1_SkillsStatesCore","status":true,"description":"[RPG Maker MZ] [Tier 1] [Version 1.48] [SkillsStatesCore]","parameters":{"BreakHead":"----------------------------------","SkillsStatesCore":"Plugin Parameters","ATTENTION":"READ THE HELP FILE","BreakSettings":"----------------------------------","Skills:struct":"{\"General\":\"\",\"EnableLayout:eval\":\"true\",\"LayoutStyle:str\":\"upper/left\",\"SkillTypeWindow\":\"\",\"CmdStyle:str\":\"auto\",\"CmdTextAlign:str\":\"left\",\"CmdWidth:num\":\"240\",\"ListWindow\":\"\",\"ListWindowCols:num\":\"1\",\"ShopStatusWindow\":\"\",\"ShowShopStatus:eval\":\"true\",\"SkillSceneAdjustSkillList:eval\":\"true\",\"SkillSceneStatusBgType:num\":\"0\",\"SkillMenuStatusRect:func\":\"\\\"const ww = this.shopStatusWidth();\\\\nconst wh = this._itemWindow.height;\\\\nconst wx = Graphics.boxWidth - this.shopStatusWidth();\\\\nconst wy = this._itemWindow.y;\\\\nreturn new Rectangle(wx, wy, ww, wh);\\\"\",\"SkillTypes\":\"\",\"HiddenSkillTypes:arraynum\":\"[]\",\"BattleHiddenSkillTypes:arraynum\":\"[]\",\"IconStypeNorm:num\":\"78\",\"IconStypeMagic:num\":\"79\",\"SortSkillTypesAbc:arraynum\":\"[]\",\"CustomJS\":\"\",\"SkillConditionJS:func\":\"\\\"// Declare Variables\\\\nconst skill = arguments[0];\\\\nconst user = this;\\\\nconst target = this;\\\\nconst a = this;\\\\nconst b = this;\\\\nlet enabled = true;\\\\n\\\\n// Perform Checks\\\\n\\\\n\\\\n// Return boolean\\\\nreturn enabled;\\\"\"}","Costs:arraystruct":"[\"{\\\"Name:str\\\":\\\"HP\\\",\\\"Settings\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"FontColor:str\\\":\\\"20\\\",\\\"FontSize:num\\\":\\\"22\\\",\\\"Cost\\\":\\\"\\\",\\\"CalcJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nlet cost = 0;\\\\\\\\n\\\\\\\\n// Calculations\\\\\\\\nconst note = skill.note;\\\\\\\\nif (note.match(/<HP COST:[ ](\\\\\\\\\\\\\\\\d+)>/i)) {\\\\\\\\n cost += Number(RegExp.$1);\\\\\\\\n}\\\\\\\\nif (note.match(/<HP COST:[ ](\\\\\\\\\\\\\\\\d+)([%])>/i)) {\\\\\\\\n cost += Math.ceil(Number(RegExp.$1) * user.mhp / 100);\\\\\\\\n}\\\\\\\\nif (note.match(/<JS HP COST>\\\\\\\\\\\\\\\\s*([\\\\\\\\\\\\\\\\s\\\\\\\\\\\\\\\\S]*)\\\\\\\\\\\\\\\\s*<\\\\\\\\\\\\\\\\/JS HP COST>/i)) {\\\\\\\\n const code = String(RegExp.$1);\\\\\\\\n eval(code);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Apply Trait Cost Alterations\\\\\\\\nif (cost > 0) {\\\\\\\\n const rateNote = /<HP COST:[ ](\\\\\\\\\\\\\\\\d+\\\\\\\\\\\\\\\\.?\\\\\\\\\\\\\\\\d*)([%])>/i;\\\\\\\\n const rates = user.traitObjects().map((obj) => (obj && obj.note.match(rateNote) ? Number(RegExp.$1) / 100 : 1));\\\\\\\\n const flatNote = /<HP COST:[ ]([\\\\\\\\\\\\\\\\+\\\\\\\\\\\\\\\\-]\\\\\\\\\\\\\\\\d+)>/i;\\\\\\\\n const flats = user.traitObjects().map((obj) => (obj && obj.note.match(flatNote) ? Number(RegExp.$1) : 0));\\\\\\\\n cost = rates.reduce((r, rate) => r * rate, cost);\\\\\\\\n cost = flats.reduce((r, flat) => r + flat, cost);\\\\\\\\n cost = Math.max(1, cost);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Set Cost Limits\\\\\\\\nif (note.match(/<HP COST MAX:[ ](\\\\\\\\\\\\\\\\d+)>/i)) {\\\\\\\\n cost = Math.min(cost, Number(RegExp.$1));\\\\\\\\n}\\\\\\\\nif (note.match(/<HP COST MIN:[ ](\\\\\\\\\\\\\\\\d+)>/i)) {\\\\\\\\n cost = Math.max(cost, Number(RegExp.$1));\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return cost value\\\\\\\\nreturn Math.round(Math.max(0, cost));\\\\\\\"\\\",\\\"CanPayJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Return Boolean\\\\\\\\nif (cost <= 0) {\\\\\\\\n return true;\\\\\\\\n} else {\\\\\\\\n return user._hp > cost;\\\\\\\\n}\\\\\\\"\\\",\\\"PayJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Process Payment\\\\\\\\nuser._hp -= cost;\\\\\\\"\\\",\\\"Windows\\\":\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Return Boolean\\\\\\\\nreturn cost > 0;\\\\\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\nconst settings = arguments[2];\\\\\\\\nconst fontSize = settings.FontSize;\\\\\\\\nconst color = settings.FontColor;\\\\\\\\nconst name = TextManager.hp;\\\\\\\\nconst icon = settings.Icon;\\\\\\\\nlet text = '';\\\\\\\\n\\\\\\\\n// Text: Change Font Size\\\\\\\\ntext += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\FS[%1]'.format(fontSize);\\\\\\\\n\\\\\\\\n// Text: Add Color\\\\\\\\nif (color.match(/#(.*)/i) && Imported.VisuMZ_1_MessageCore) {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\HexColor<%1>'.format(String(RegExp.$1));\\\\\\\\n} else {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\C[%1]'.format(color);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Text: Add Cost\\\\\\\\ntext += '%1%2'.format(cost, name);\\\\\\\\n\\\\\\\\n// Text: Add Icon\\\\\\\\nif (icon > 0) {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\I[%1]'.format(icon);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return text\\\\\\\\nreturn text;\\\\\\\"\\\",\\\"Gauges\\\":\\\"\\\",\\\"GaugeMaxJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Return value\\\\\\\\nreturn user.mhp;\\\\\\\"\\\",\\\"GaugeCurrentJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Return value\\\\\\\\nreturn user.hp;\\\\\\\"\\\",\\\"GaugeDrawJS:func\\\":\\\"\\\\\\\"// Declare Settings\\\\\\\\nconst color1 = ColorManager.hpGaugeColor1();\\\\\\\\nconst color2 = ColorManager.hpGaugeColor2();\\\\\\\\nconst label = TextManager.hpA;\\\\\\\\n\\\\\\\\n// Declare Variables\\\\\\\\nconst sprite = this;\\\\\\\\nconst settings = sprite._costSettings;\\\\\\\\nconst bitmap = sprite.bitmap;\\\\\\\\nconst user = sprite._battler;\\\\\\\\nconst currentValue = sprite.currentDisplayedValue();\\\\\\\\nconst bitmapWidth = sprite.bitmapWidth();\\\\\\\\nconst bitmapHeight = sprite.textHeight ? sprite.textHeight() : sprite.bitmapHeight();\\\\\\\\nconst gaugeHeight = sprite.gaugeHeight();\\\\\\\\n\\\\\\\\n// Draw Gauge\\\\\\\\nconst gx = 0;\\\\\\\\nconst gy = bitmapHeight - gaugeHeight;\\\\\\\\nconst gw = bitmapWidth - gx;\\\\\\\\nconst gh = gaugeHeight;\\\\\\\\nthis.drawFullGauge(color1, color2, gx, gy, gw, gh);\\\\\\\\n\\\\\\\\n// Draw Label\\\\\\\\nconst lx = 4;\\\\\\\\nconst ly = 0;\\\\\\\\nconst lw = bitmapWidth;\\\\\\\\nconst lh = bitmapHeight;\\\\\\\\nsprite.setupLabelFont();\\\\\\\\nbitmap.paintOpacity = 255;\\\\\\\\nbitmap.drawText(label, lx, ly, lw, lh, \\\\\\\\\\\\\\\"left\\\\\\\\\\\\\\\");\\\\\\\\n\\\\\\\\n// Draw Value\\\\\\\\nconst vw = bitmapWidth - 2;\\\\\\\\nconst vh = bitmapHeight;\\\\\\\\nsprite.setupValueFont();\\\\\\\\nbitmap.textColor = ColorManager.hpColor(user);\\\\\\\\nbitmap.drawText(currentValue, 0, 0, vw, vh, \\\\\\\\\\\\\\\"right\\\\\\\\\\\\\\\");\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"MP\\\",\\\"Settings\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"FontColor:str\\\":\\\"23\\\",\\\"FontSize:num\\\":\\\"22\\\",\\\"Cost\\\":\\\"\\\",\\\"CalcJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nlet cost = 0;\\\\\\\\n\\\\\\\\n// Calculations\\\\\\\\nconst note = skill.note;\\\\\\\\ncost = Math.floor(skill.mpCost * user.mcr);\\\\\\\\nif (note.match(/<MP COST:[ ](\\\\\\\\\\\\\\\\d+)([%])>/i)) {\\\\\\\\n cost += Math.ceil(Number(RegExp.$1) * user.mmp / 100);\\\\\\\\n}\\\\\\\\nif (note.match(/<JS MP COST>\\\\\\\\\\\\\\\\s*([\\\\\\\\\\\\\\\\s\\\\\\\\\\\\\\\\S]*)\\\\\\\\\\\\\\\\s*<\\\\\\\\\\\\\\\\/JS MP COST>/i)) {\\\\\\\\n const code = String(RegExp.$1);\\\\\\\\n eval(code);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Apply Trait Cost Alterations\\\\\\\\nif (cost > 0) {\\\\\\\\n const rateNote = /<MP COST:[ ](\\\\\\\\\\\\\\\\d+\\\\\\\\\\\\\\\\.?\\\\\\\\\\\\\\\\d*)([%])>/i;\\\\\\\\n const rates = user.traitObjects().map((obj) => (obj && obj.note.match(rateNote) ? Number(RegExp.$1) / 100 : 1));\\\\\\\\n const flatNote = /<MP COST:[ ]([\\\\\\\\\\\\\\\\+\\\\\\\\\\\\\\\\-]\\\\\\\\\\\\\\\\d+)>/i;\\\\\\\\n const flats = user.traitObjects().map((obj) => (obj && obj.note.match(flatNote) ? Number(RegExp.$1) : 0));\\\\\\\\n cost = rates.reduce((r, rate) => r * rate, cost);\\\\\\\\n cost = flats.reduce((r, flat) => r + flat, cost);\\\\\\\\n cost = Math.max(1, cost);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Set Cost Limits\\\\\\\\nif (note.match(/<MP COST MAX:[ ](\\\\\\\\\\\\\\\\d+)>/i)) {\\\\\\\\n cost = Math.min(cost, Number(RegExp.$1));\\\\\\\\n}\\\\\\\\nif (note.match(/<MP COST MIN:[ ](\\\\\\\\\\\\\\\\d+)>/i)) {\\\\\\\\n cost = Math.max(cost, Number(RegExp.$1));\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return cost value\\\\\\\\nreturn Math.round(Math.max(0, cost));\\\\\\\"\\\",\\\"CanPayJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Return Boolean\\\\\\\\nreturn user._mp >= cost;\\\\\\\"\\\",\\\"PayJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Process Payment\\\\\\\\nuser._mp -= cost;\\\\\\\"\\\",\\\"Windows\\\":\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Return Boolean\\\\\\\\nreturn cost > 0;\\\\\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\nconst settings = arguments[2];\\\\\\\\nconst fontSize = settings.FontSize;\\\\\\\\nconst color = settings.FontColor;\\\\\\\\nconst name = TextManager.mp;\\\\\\\\nconst icon = settings.Icon;\\\\\\\\nlet text = '';\\\\\\\\n\\\\\\\\n// Text: Change Font Size\\\\\\\\ntext += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\FS[%1]'.format(fontSize);\\\\\\\\n\\\\\\\\n// Text: Add Color\\\\\\\\nif (color.match(/#(.*)/i) && Imported.VisuMZ_1_MessageCore) {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\HexColor<#%1>'.format(String(RegExp.$1));\\\\\\\\n} else {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\C[%1]'.format(color);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Text: Add Cost\\\\\\\\ntext += '%1%2'.format(cost, name);\\\\\\\\n\\\\\\\\n// Text: Add Icon\\\\\\\\nif (icon > 0) {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\I[%1]'.format(icon);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return text\\\\\\\\nreturn text;\\\\\\\"\\\",\\\"Gauges\\\":\\\"\\\",\\\"GaugeMaxJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Return value\\\\\\\\nreturn user.mmp;\\\\\\\"\\\",\\\"GaugeCurrentJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Return value\\\\\\\\nreturn user.mp;\\\\\\\"\\\",\\\"GaugeDrawJS:func\\\":\\\"\\\\\\\"// Declare Settings\\\\\\\\nconst color1 = ColorManager.mpGaugeColor1();\\\\\\\\nconst color2 = ColorManager.mpGaugeColor2();\\\\\\\\nconst label = TextManager.mpA;\\\\\\\\n\\\\\\\\n// Declare Variables\\\\\\\\nconst sprite = this;\\\\\\\\nconst settings = sprite._costSettings;\\\\\\\\nconst bitmap = sprite.bitmap;\\\\\\\\nconst user = sprite._battler;\\\\\\\\nconst currentValue = sprite.currentDisplayedValue();\\\\\\\\nconst bitmapWidth = sprite.bitmapWidth();\\\\\\\\nconst bitmapHeight = sprite.textHeight ? sprite.textHeight() : sprite.bitmapHeight();\\\\\\\\nconst gaugeHeight = sprite.gaugeHeight();\\\\\\\\n\\\\\\\\n// Draw Gauge\\\\\\\\nconst gx = 0;\\\\\\\\nconst gy = bitmapHeight - gaugeHeight;\\\\\\\\nconst gw = bitmapWidth - gx;\\\\\\\\nconst gh = gaugeHeight;\\\\\\\\nthis.drawFullGauge(color1, color2, gx, gy, gw, gh);\\\\\\\\n\\\\\\\\n// Draw Label\\\\\\\\nconst lx = 4;\\\\\\\\nconst ly = 0;\\\\\\\\nconst lw = bitmapWidth;\\\\\\\\nconst lh = bitmapHeight;\\\\\\\\nsprite.setupLabelFont();\\\\\\\\nbitmap.paintOpacity = 255;\\\\\\\\nbitmap.drawText(label, lx, ly, lw, lh, \\\\\\\\\\\\\\\"left\\\\\\\\\\\\\\\");\\\\\\\\n\\\\\\\\n// Draw Value\\\\\\\\nconst vw = bitmapWidth - 2;\\\\\\\\nconst vh = bitmapHeight;\\\\\\\\nsprite.setupValueFont();\\\\\\\\nbitmap.textColor = ColorManager.mpColor(user);\\\\\\\\nbitmap.drawText(currentValue, 0, 0, vw, vh, \\\\\\\\\\\\\\\"right\\\\\\\\\\\\\\\");\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"TP\\\",\\\"Settings\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"FontColor:str\\\":\\\"29\\\",\\\"FontSize:num\\\":\\\"22\\\",\\\"Cost\\\":\\\"\\\",\\\"CalcJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nlet cost = 0;\\\\\\\\n\\\\\\\\n// Calculations\\\\\\\\nconst note = skill.note;\\\\\\\\ncost = skill.tpCost;\\\\\\\\nif (note.match(/<TP COST:[ ](\\\\\\\\\\\\\\\\d+)([%])>/i)) {\\\\\\\\n cost += Math.ceil(Number(RegExp.$1) * user.maxTp() / 100);\\\\\\\\n}\\\\\\\\nif (note.match(/<JS TP COST>\\\\\\\\\\\\\\\\s*([\\\\\\\\\\\\\\\\s\\\\\\\\\\\\\\\\S]*)\\\\\\\\\\\\\\\\s*<\\\\\\\\\\\\\\\\/JS TP COST>/i)) {\\\\\\\\n const code = String(RegExp.$1);\\\\\\\\n eval(code);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Apply Trait Cost Alterations\\\\\\\\nif (cost > 0) {\\\\\\\\n const rateNote = /<TP COST:[ ](\\\\\\\\\\\\\\\\d+\\\\\\\\\\\\\\\\.?\\\\\\\\\\\\\\\\d*)([%])>/i;\\\\\\\\n const rates = user.traitObjects().map((obj) => (obj && obj.note.match(rateNote) ? Number(RegExp.$1) / 100 : 1));\\\\\\\\n const flatNote = /<TP COST:[ ]([\\\\\\\\\\\\\\\\+\\\\\\\\\\\\\\\\-]\\\\\\\\\\\\\\\\d+)>/i;\\\\\\\\n const flats = user.traitObjects().map((obj) => (obj && obj.note.match(flatNote) ? Number(RegExp.$1) : 0));\\\\\\\\n cost = rates.reduce((r, rate) => r * rate, cost);\\\\\\\\n cost = flats.reduce((r, flat) => r + flat, cost);\\\\\\\\n cost = Math.max(1, cost);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Set Cost Limits\\\\\\\\nif (note.match(/<TP COST MAX:[ ](\\\\\\\\\\\\\\\\d+)>/i)) {\\\\\\\\n cost = Math.min(cost, Number(RegExp.$1));\\\\\\\\n}\\\\\\\\nif (note.match(/<TP COST MIN:[ ](\\\\\\\\\\\\\\\\d+)>/i)) {\\\\\\\\n cost = Math.max(cost, Number(RegExp.$1));\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return cost value\\\\\\\\nreturn Math.round(Math.max(0, cost));\\\\\\\"\\\",\\\"CanPayJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Return Boolean\\\\\\\\nreturn user._tp >= cost;\\\\\\\"\\\",\\\"PayJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Process Payment\\\\\\\\nuser._tp -= cost;\\\\\\\"\\\",\\\"Windows\\\":\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Return Boolean\\\\\\\\nreturn cost > 0;\\\\\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\nconst settings = arguments[2];\\\\\\\\nconst fontSize = settings.FontSize;\\\\\\\\nconst color = settings.FontColor;\\\\\\\\nconst name = TextManager.tp;\\\\\\\\nconst icon = settings.Icon;\\\\\\\\nlet text = '';\\\\\\\\n\\\\\\\\n// Text: Change Font Size\\\\\\\\ntext += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\FS[%1]'.format(fontSize);\\\\\\\\n\\\\\\\\n// Text: Add Color\\\\\\\\nif (color.match(/#(.*)/i) && Imported.VisuMZ_1_MessageCore) {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\HexColor<#%1>'.format(String(RegExp.$1));\\\\\\\\n} else {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\C[%1]'.format(color);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Text: Add Cost\\\\\\\\ntext += '%1%2'.format(cost, name);\\\\\\\\n\\\\\\\\n// Text: Add Icon\\\\\\\\nif (icon > 0) {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\I[%1]'.format(icon);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return text\\\\\\\\nreturn text;\\\\\\\"\\\",\\\"Gauges\\\":\\\"\\\",\\\"GaugeMaxJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Return value\\\\\\\\nreturn user.maxTp();\\\\\\\"\\\",\\\"GaugeCurrentJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Return value\\\\\\\\nreturn user.tp;\\\\\\\"\\\",\\\"GaugeDrawJS:func\\\":\\\"\\\\\\\"// Declare Settings\\\\\\\\nconst color1 = ColorManager.tpGaugeColor1();\\\\\\\\nconst color2 = ColorManager.tpGaugeColor2();\\\\\\\\nconst label = TextManager.tpA;\\\\\\\\n\\\\\\\\n// Declare Variables\\\\\\\\nconst sprite = this;\\\\\\\\nconst settings = sprite._costSettings;\\\\\\\\nconst bitmap = sprite.bitmap;\\\\\\\\nconst user = sprite._battler;\\\\\\\\nconst currentValue = sprite.currentDisplayedValue();\\\\\\\\nconst bitmapWidth = sprite.bitmapWidth();\\\\\\\\nconst bitmapHeight = sprite.textHeight ? sprite.textHeight() : sprite.bitmapHeight();\\\\\\\\nconst gaugeHeight = sprite.gaugeHeight();\\\\\\\\n\\\\\\\\n// Draw Gauge\\\\\\\\nconst gx = 0;\\\\\\\\nconst gy = bitmapHeight - gaugeHeight;\\\\\\\\nconst gw = bitmapWidth - gx;\\\\\\\\nconst gh = gaugeHeight;\\\\\\\\nthis.drawFullGauge(color1, color2, gx, gy, gw, gh);\\\\\\\\n\\\\\\\\n// Draw Label\\\\\\\\nconst lx = 4;\\\\\\\\nconst ly = 0;\\\\\\\\nconst lw = bitmapWidth;\\\\\\\\nconst lh = bitmapHeight;\\\\\\\\nsprite.setupLabelFont();\\\\\\\\nbitmap.paintOpacity = 255;\\\\\\\\nbitmap.drawText(label, lx, ly, lw, lh, \\\\\\\\\\\\\\\"left\\\\\\\\\\\\\\\");\\\\\\\\n\\\\\\\\n// Draw Value\\\\\\\\nconst vw = bitmapWidth - 2;\\\\\\\\nconst vh = bitmapHeight;\\\\\\\\nsprite.setupValueFont();\\\\\\\\nbitmap.textColor = ColorManager.tpColor(user);\\\\\\\\nbitmap.drawText(currentValue, 0, 0, vw, vh, \\\\\\\\\\\\\\\"right\\\\\\\\\\\\\\\");\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"Gold\\\",\\\"Settings\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"FontColor:str\\\":\\\"17\\\",\\\"FontSize:num\\\":\\\"22\\\",\\\"Cost\\\":\\\"\\\",\\\"CalcJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nlet cost = 0;\\\\\\\\n\\\\\\\\n// Calculations\\\\\\\\nconst note = skill.note;\\\\\\\\nif (note.match(/<GOLD COST:[ ](\\\\\\\\\\\\\\\\d+)>/i)) {\\\\\\\\n cost += Number(RegExp.$1);\\\\\\\\n}\\\\\\\\nif (note.match(/<GOLD COST:[ ](\\\\\\\\\\\\\\\\d+)([%])>/i)) {\\\\\\\\n cost += Math.ceil(Number(RegExp.$1) * $gameParty.gold() / 100);\\\\\\\\n}\\\\\\\\nif (note.match(/<JS GOLD COST>\\\\\\\\\\\\\\\\s*([\\\\\\\\\\\\\\\\s\\\\\\\\\\\\\\\\S]*)\\\\\\\\\\\\\\\\s*<\\\\\\\\\\\\\\\\/JS GOLD COST>/i)) {\\\\\\\\n const code = String(RegExp.$1);\\\\\\\\n eval(code);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Apply Trait Cost Alterations\\\\\\\\nif (cost > 0) {\\\\\\\\n const rateNote = /<GOLD COST:[ ](\\\\\\\\\\\\\\\\d+\\\\\\\\\\\\\\\\.?\\\\\\\\\\\\\\\\d*)([%])>/i;\\\\\\\\n const rates = user.traitObjects().map((obj) => (obj && obj.note.match(rateNote) ? Number(RegExp.$1) / 100 : 1));\\\\\\\\n const flatNote = /<GOLD COST:[ ]([\\\\\\\\\\\\\\\\+\\\\\\\\\\\\\\\\-]\\\\\\\\\\\\\\\\d+)>/i;\\\\\\\\n const flats = user.traitObjects().map((obj) => (obj && obj.note.match(flatNote) ? Number(RegExp.$1) : 0));\\\\\\\\n cost = rates.reduce((r, rate) => r * rate, cost);\\\\\\\\n cost = flats.reduce((r, flat) => r + flat, cost);\\\\\\\\n cost = Math.max(1, cost);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Set Cost Limits\\\\\\\\nif (note.match(/<GOLD COST MAX:[ ](\\\\\\\\\\\\\\\\d+)>/i)) {\\\\\\\\n cost = Math.min(cost, Number(RegExp.$1));\\\\\\\\n}\\\\\\\\nif (note.match(/<GOLD COST MIN:[ ](\\\\\\\\\\\\\\\\d+)>/i)) {\\\\\\\\n cost = Math.max(cost, Number(RegExp.$1));\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return cost value\\\\\\\\nreturn Math.round(Math.max(0, cost));\\\\\\\"\\\",\\\"CanPayJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Return Boolean\\\\\\\\nreturn $gameParty.gold() >= cost;\\\\\\\"\\\",\\\"PayJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Process Payment\\\\\\\\n$gameParty.loseGold(cost);\\\\\\\"\\\",\\\"Windows\\\":\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Return Boolean\\\\\\\\nreturn cost > 0;\\\\\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\nconst settings = arguments[2];\\\\\\\\nconst fontSize = settings.FontSize;\\\\\\\\nconst color = settings.FontColor;\\\\\\\\nconst name = TextManager.currencyUnit;\\\\\\\\nconst icon = settings.Icon;\\\\\\\\nlet text = '';\\\\\\\\n\\\\\\\\n// Text: Change Font Size\\\\\\\\ntext += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\FS[%1]'.format(fontSize);\\\\\\\\n\\\\\\\\n// Text: Add Color\\\\\\\\nif (color.match(/#(.*)/i) && Imported.VisuMZ_1_MessageCore) {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\HexColor<#%1>'.format(String(RegExp.$1));\\\\\\\\n} else {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\C[%1]'.format(color);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Text: Add Cost\\\\\\\\ntext += '%1%2'.format(cost, name);\\\\\\\\n\\\\\\\\n// Text: Add Icon\\\\\\\\nif (icon > 0) {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\I[%1]'.format(icon);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return text\\\\\\\\nreturn text;\\\\\\\"\\\",\\\"Gauges\\\":\\\"\\\",\\\"GaugeMaxJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Return value\\\\\\\\nreturn $gameParty.maxGold();\\\\\\\"\\\",\\\"GaugeCurrentJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Return value\\\\\\\\nreturn $gameParty.gold();\\\\\\\"\\\",\\\"GaugeDrawJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst sprite = this;\\\\\\\\nconst settings = sprite._costSettings;\\\\\\\\nconst bitmap = sprite.bitmap;\\\\\\\\nconst user = sprite._battler;\\\\\\\\nconst currentValue = sprite.currentDisplayedValue();\\\\\\\\n\\\\\\\\n// Draw Label\\\\\\\\nconst label = TextManager.currencyUnit;\\\\\\\\nconst lx = 4;\\\\\\\\nconst ly = 0;\\\\\\\\nconst lw = sprite.bitmapWidth();\\\\\\\\nconst lh = sprite.bitmapHeight();\\\\\\\\nsprite.setupLabelFont();\\\\\\\\nbitmap.paintOpacity = 255;\\\\\\\\nbitmap.drawText(label, lx, ly, lw, lh, \\\\\\\\\\\\\\\"left\\\\\\\\\\\\\\\");\\\\\\\\n\\\\\\\\n// Draw Value\\\\\\\\nconst vw = sprite.bitmapWidth() - 2;\\\\\\\\nconst vh = sprite.bitmapHeight();\\\\\\\\nsprite.setupValueFont();\\\\\\\\nbitmap.textColor = ColorManager.normalColor();\\\\\\\\nbitmap.drawText(currentValue, 0, 0, vw, vh, \\\\\\\\\\\\\\\"right\\\\\\\\\\\\\\\");\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"Potion\\\",\\\"Settings\\\":\\\"\\\",\\\"Icon:num\\\":\\\"176\\\",\\\"FontColor:str\\\":\\\"0\\\",\\\"FontSize:num\\\":\\\"22\\\",\\\"Cost\\\":\\\"\\\",\\\"CalcJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nlet cost = 0;\\\\\\\\n\\\\\\\\n// Calculations\\\\\\\\nconst note = skill.note;\\\\\\\\nif (note.match(/<POTION COST:[ ](\\\\\\\\\\\\\\\\d+)>/i)) {\\\\\\\\n cost += Number(RegExp.$1);\\\\\\\\n}\\\\\\\\nif (note.match(/<JS POTION COST>\\\\\\\\\\\\\\\\s*([\\\\\\\\\\\\\\\\s\\\\\\\\\\\\\\\\S]*)\\\\\\\\\\\\\\\\s*<\\\\\\\\\\\\\\\\/JS POTION COST>/i)) {\\\\\\\\n const code = String(RegExp.$1);\\\\\\\\n eval(code);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Apply Trait Cost Alterations\\\\\\\\nif (cost > 0) {\\\\\\\\n const rateNote = /<POTION COST:[ ](\\\\\\\\\\\\\\\\d+\\\\\\\\\\\\\\\\.?\\\\\\\\\\\\\\\\d*)([%])>/i;\\\\\\\\n const rates = user.traitObjects().map((obj) => (obj && obj.note.match(rateNote) ? Number(RegExp.$1) / 100 : 1));\\\\\\\\n const flatNote = /<POTION COST:[ ]([\\\\\\\\\\\\\\\\+\\\\\\\\\\\\\\\\-]\\\\\\\\\\\\\\\\d+)>/i;\\\\\\\\n const flats = user.traitObjects().map((obj) => (obj && obj.note.match(flatNote) ? Number(RegExp.$1) : 0));\\\\\\\\n cost = rates.reduce((r, rate) => r * rate, cost);\\\\\\\\n cost = flats.reduce((r, flat) => r + flat, cost);\\\\\\\\n cost = Math.max(1, cost);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Set Cost Limits\\\\\\\\nif (note.match(/<POTION COST MAX:[ ](\\\\\\\\\\\\\\\\d+)>/i)) {\\\\\\\\n cost = Math.min(cost, Number(RegExp.$1));\\\\\\\\n}\\\\\\\\nif (note.match(/<POTION COST MIN:[ ](\\\\\\\\\\\\\\\\d+)>/i)) {\\\\\\\\n cost = Math.max(cost, Number(RegExp.$1));\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return cost value\\\\\\\\nreturn Math.round(Math.max(0, cost));\\\\\\\"\\\",\\\"CanPayJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\nconst item = $dataItems[7];\\\\\\\\n\\\\\\\\n// Return Boolean\\\\\\\\nif (user.isActor() && cost > 0) {\\\\\\\\n return $gameParty.numItems(item) >= cost;\\\\\\\\n} else {\\\\\\\\n return true;\\\\\\\\n}\\\\\\\"\\\",\\\"PayJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\nconst item = $dataItems[7];\\\\\\\\n\\\\\\\\n// Process Payment\\\\\\\\nif (user.isActor()) {\\\\\\\\n $gameParty.loseItem(item, cost);\\\\\\\\n}\\\\\\\"\\\",\\\"Windows\\\":\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Return Boolean\\\\\\\\nreturn cost > 0;\\\\\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst item = $dataItems[7];\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\nconst settings = arguments[2];\\\\\\\\nconst fontSize = settings.FontSize;\\\\\\\\nconst color = settings.FontColor;\\\\\\\\nconst name = settings.Name;\\\\\\\\nconst icon = settings.Icon;\\\\\\\\nlet text = '';\\\\\\\\n\\\\\\\\n// Text: Change Font Size\\\\\\\\ntext += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\FS[%1]'.format(fontSize);\\\\\\\\n\\\\\\\\n// Text: Add Color\\\\\\\\nif (color.match(/#(.*)/i) && Imported.VisuMZ_1_MessageCore) {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\HexColor<#%1>'.format(String(RegExp.$1));\\\\\\\\n} else {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\C[%1]'.format(color);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Text: Add Cost\\\\\\\\ntext += '×%1'.format(cost);\\\\\\\\n\\\\\\\\n// Text: Add Icon\\\\\\\\ntext += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\I[%1]'.format(item.iconIndex);\\\\\\\\n\\\\\\\\n// Return text\\\\\\\\nreturn text;\\\\\\\"\\\",\\\"Gauges\\\":\\\"\\\",\\\"GaugeMaxJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst item = $dataItems[7];\\\\\\\\n\\\\\\\\n// Return value\\\\\\\\nreturn $gameParty.maxItems(item);\\\\\\\"\\\",\\\"GaugeCurrentJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst item = $dataItems[7];\\\\\\\\n\\\\\\\\n// Return value\\\\\\\\nreturn $gameParty.numItems(item);\\\\\\\"\\\",\\\"GaugeDrawJS:func\\\":\\\"\\\\\\\"// Declare Settings\\\\\\\\nconst color1 = ColorManager.textColor(30);\\\\\\\\nconst color2 = ColorManager.textColor(31);\\\\\\\\n\\\\\\\\n// Declare Variables\\\\\\\\nconst sprite = this;\\\\\\\\nconst settings = sprite._costSettings;\\\\\\\\nconst bitmap = sprite.bitmap;\\\\\\\\nconst user = sprite._battler;\\\\\\\\nconst item = $dataItems[7];\\\\\\\\nconst currentValue = sprite.currentDisplayedValue();\\\\\\\\nconst bitmapWidth = sprite.bitmapWidth();\\\\\\\\nconst bitmapHeight = sprite.textHeight ? sprite.textHeight() : sprite.bitmapHeight();\\\\\\\\nconst gaugeHeight = sprite.gaugeHeight();\\\\\\\\n\\\\\\\\n// Draw Gauge\\\\\\\\nconst gx = 0;\\\\\\\\nconst gy = bitmapHeight - gaugeHeight;\\\\\\\\nconst gw = bitmapWidth - gx;\\\\\\\\nconst gh = gaugeHeight;\\\\\\\\nthis.drawFullGauge(color1, color2, gx, gy, gw, gh);\\\\\\\\n\\\\\\\\n// Draw Icon\\\\\\\\nconst iconIndex = item.iconIndex;\\\\\\\\nconst iconBitmap = ImageManager.loadSystem(\\\\\\\\\\\\\\\"IconSet\\\\\\\\\\\\\\\");\\\\\\\\nconst pw = ImageManager.iconWidth;\\\\\\\\nconst ph = ImageManager.iconHeight;\\\\\\\\nconst sx = (iconIndex % 16) * pw;\\\\\\\\nconst sy = Math.floor(iconIndex / 16) * ph;\\\\\\\\nbitmap.blt(iconBitmap, sx, sy, pw, ph, 0, 0, 24, 24);\\\\\\\\n\\\\\\\\n// Draw Value\\\\\\\\nconst vw = bitmapWidth - 2;\\\\\\\\nconst vh = bitmapHeight;\\\\\\\\nsprite.setupValueFont();\\\\\\\\nbitmap.textColor = ColorManager.normalColor();\\\\\\\\nbitmap.drawText(currentValue, 0, 0, vw, vh, \\\\\\\\\\\\\\\"right\\\\\\\\\\\\\\\");\\\\\\\"\\\"}\",\"{\\\"Name:str\\\":\\\"Item Cost\\\",\\\"Settings\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"FontColor:str\\\":\\\"0\\\",\\\"FontSize:num\\\":\\\"22\\\",\\\"Cost\\\":\\\"\\\",\\\"CalcJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nlet cost = 0;\\\\\\\\n\\\\\\\\n// Calculations\\\\\\\\nconst note = skill.note;\\\\\\\\ncost = {\\\\\\\\n items: {},\\\\\\\\n weapons: {},\\\\\\\\n armors: {},\\\\\\\\n};\\\\\\\\n\\\\\\\\n// Gather Cost Notetags\\\\\\\\n{ // Item Costs\\\\\\\\n const notetag = /<ITEM COST:[ ](\\\\\\\\\\\\\\\\d+)[ ](.*)>/gi;\\\\\\\\n const matches = note.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const amount = Number(RegExp.$1);\\\\\\\\n const name = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry = $dataItems.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry) {\\\\\\\\n cost.items[entry.id] = amount;\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n{ // Weapon Costs\\\\\\\\n const notetag = /<WEAPON COST:[ ](\\\\\\\\\\\\\\\\d+)[ ](.*)>/gi;\\\\\\\\n const matches = note.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const amount = Number(RegExp.$1);\\\\\\\\n const name = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry = $dataWeapons.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry) {\\\\\\\\n cost.weapons[entry.id] = amount;\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n{ // Armor Costs\\\\\\\\n const notetag = /<ARMOR COST:[ ](\\\\\\\\\\\\\\\\d+)[ ](.*)>/gi;\\\\\\\\n const matches = note.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const amount = Number(RegExp.$1);\\\\\\\\n const name = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry = $dataArmors.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry) {\\\\\\\\n cost.armors[entry.id] = amount;\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Declare Trait Objects\\\\\\\\nconst traitObjects = user.traitObjects();\\\\\\\\n\\\\\\\\n// Apply Cost Rate Modifiers\\\\\\\\nfor (const traitObject of traitObjects) {\\\\\\\\n if (!traitObject) continue;\\\\\\\\n const objNote = traitObject.note || '';\\\\\\\\n { // Item Cost Rate Modifiers\\\\\\\\n const notetag = /<ITEM COST:[ ](\\\\\\\\\\\\\\\\d+)([%])[ ](.*)>/gi;\\\\\\\\n const matches = objNote.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const rate = Number(RegExp.$1) * 0.01;\\\\\\\\n const name = String(RegExp.$3).toUpperCase().trim();\\\\\\\\n const entry = $dataItems.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry && cost.items[entry.id]) {\\\\\\\\n cost.items[entry.id] = Math.ceil(cost.items[entry.id] * rate);\\\\\\\\n if (cost.items[entry.id] <= 0) cost.items[entry.id] = 0;\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n { // Weapon Cost Rate Modifiers\\\\\\\\n const notetag = /<WEAPON COST:[ ](\\\\\\\\\\\\\\\\d+)([%])[ ](.*)>/gi;\\\\\\\\n const matches = objNote.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const rate = Number(RegExp.$1) * 0.01;\\\\\\\\n const name = String(RegExp.$3).toUpperCase().trim();\\\\\\\\n const entry = $dataWeapons.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry && cost.weapons[entry.id]) {\\\\\\\\n cost.weapons[entry.id] = Math.ceil(cost.weapons[entry.id] * rate);\\\\\\\\n if (cost.weapons[entry.id] <= 0) cost.weapons[entry.id] = 0;\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n { // Armor Cost Rate Modifiers\\\\\\\\n const notetag = /<ARMOR COST:[ ](\\\\\\\\\\\\\\\\d+)([%])[ ](.*)>/gi;\\\\\\\\n const matches = objNote.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const rate = Number(RegExp.$1) * 0.01;\\\\\\\\n const name = String(RegExp.$3).toUpperCase().trim();\\\\\\\\n const entry = $dataArmors.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry && cost.armors[entry.id]) {\\\\\\\\n cost.armors[entry.id] = Math.ceil(cost.armors[entry.id] * rate);\\\\\\\\n if (cost.armors[entry.id] <= 0) cost.armors[entry.id] = 0;\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Apply Flat Cost Modifiers\\\\\\\\nfor (const traitObject of traitObjects) {\\\\\\\\n if (!traitObject) continue;\\\\\\\\n const objNote = traitObject.note || '';\\\\\\\\n { // Item Flat Cost Modifiers\\\\\\\\n const notetag = /<ITEM COST:[ ]([\\\\\\\\\\\\\\\\+\\\\\\\\\\\\\\\\-]\\\\\\\\\\\\\\\\d+)[ ](.*)>/gi;\\\\\\\\n const matches = objNote.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const flat = Number(RegExp.$1);\\\\\\\\n const name = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry = $dataItems.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry && cost.items[entry.id]) {\\\\\\\\n cost.items[entry.id] += flat;\\\\\\\\n if (cost.items[entry.id] <= 0) cost.items[entry.id] = 0;\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n { // Weapon Flat Cost Modifiers\\\\\\\\n const notetag = /<WEAPON COST:[ ]([\\\\\\\\\\\\\\\\+\\\\\\\\\\\\\\\\-]\\\\\\\\\\\\\\\\d+)[ ](.*)>/gi;\\\\\\\\n const matches = objNote.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const flat = Number(RegExp.$1);\\\\\\\\n const name = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry = $dataWeapons.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry && cost.weapons[entry.id]) {\\\\\\\\n cost.weapons[entry.id] += flat;\\\\\\\\n if (cost.weapons[entry.id] <= 0) cost.weapons[entry.id] = 0;\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n { // Armor Flat Cost Modifiers\\\\\\\\n const notetag = /<ARMOR COST:[ ]([\\\\\\\\\\\\\\\\+\\\\\\\\\\\\\\\\-]\\\\\\\\\\\\\\\\d+)[ ](.*)>/gi;\\\\\\\\n const matches = objNote.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const flat = Number(RegExp.$1);\\\\\\\\n const name = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry = $dataArmors.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry && cost.armors[entry.id]) {\\\\\\\\n cost.armors[entry.id] += flat;\\\\\\\\n if (cost.armors[entry.id] <= 0) cost.armors[entry.id] = 0;\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Set Cost Limits\\\\\\\\n{ // Item Cost Limits\\\\\\\\n { // Maximum Cost\\\\\\\\n const notetag = /<ITEM COST MAX:[ ](\\\\\\\\\\\\\\\\d+)[ ](.*)>/gi;\\\\\\\\n const matches = note.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const max = Number(RegExp.$1);\\\\\\\\n const name = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry = $dataItems.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry && cost.items[entry.id] !== undefined) {\\\\\\\\n cost.items[entry.id] = Math.min(max, cost.items[entry.id]);\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n { // Minimum Cost\\\\\\\\n const notetag = /<ITEM COST MIN:[ ](\\\\\\\\\\\\\\\\d+)[ ](.*)>/gi;\\\\\\\\n const matches = note.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const min = Number(RegExp.$1);\\\\\\\\n const name = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry = $dataItems.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry && cost.items[entry.id] !== undefined) {\\\\\\\\n cost.items[entry.id] = Math.max(min, cost.items[entry.id]);\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n{ // Weapon Cost Limits\\\\\\\\n { // Maximum Cost\\\\\\\\n const notetag = /<WEAPON COST MAX:[ ](\\\\\\\\\\\\\\\\d+)[ ](.*)>/gi;\\\\\\\\n const matches = note.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const max = Number(RegExp.$1);\\\\\\\\n const name = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry = $dataWeapons.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry && cost.weapons[entry.id] !== undefined) {\\\\\\\\n cost.weapons[entry.id] = Math.min(max, cost.weapons[entry.id]);\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n { // Minimum Cost\\\\\\\\n const notetag = /<WEAPON COST MIN:[ ](\\\\\\\\\\\\\\\\d+)[ ](.*)>/gi;\\\\\\\\n const matches = note.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const min = Number(RegExp.$1);\\\\\\\\n const name = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry = $dataWeapons.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry && cost.weapons[entry.id] !== undefined) {\\\\\\\\n cost.weapons[entry.id] = Math.max(min, cost.weapons[entry.id]);\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n{ // Armor Cost Limits\\\\\\\\n { // Maximum Cost\\\\\\\\n const notetag = /<ARMOR COST MAX:[ ](\\\\\\\\\\\\\\\\d+)[ ](.*)>/gi;\\\\\\\\n const matches = note.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const max = Number(RegExp.$1);\\\\\\\\n const name = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry = $dataArmors.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry && cost.armors[entry.id] !== undefined) {\\\\\\\\n cost.armors[entry.id] = Math.min(max, cost.armors[entry.id]);\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n { // Minimum Cost\\\\\\\\n const notetag = /<ARMOR COST MIN:[ ](\\\\\\\\\\\\\\\\d+)[ ](.*)>/gi;\\\\\\\\n const matches = note.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const min = Number(RegExp.$1);\\\\\\\\n const name = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry = $dataArmors.find(obj => obj && obj.name.toUpperCase().trim() === name);\\\\\\\\n if (entry && cost.armors[entry.id] !== undefined) {\\\\\\\\n cost.armors[entry.id] = Math.max(min, cost.armors[entry.id]);\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Apply Replacement Costs\\\\\\\\nfor (const traitObject of traitObjects) {\\\\\\\\n if (!traitObject) continue;\\\\\\\\n const objNote = traitObject.note || '';\\\\\\\\n { // Item Replacement Costs\\\\\\\\n const notetag = /<REPLACE ITEM (.*) COST:[ ](.*)>/gi;\\\\\\\\n const matches = objNote.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const name1 = String(RegExp.$1).toUpperCase().trim();\\\\\\\\n const name2 = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry1 = $dataItems.find(obj => obj && obj.name.toUpperCase().trim() === name1);\\\\\\\\n const entry2 = $dataItems.find(obj => obj && obj.name.toUpperCase().trim() === name2);\\\\\\\\n if (entry1 && entry2 && cost.items[entry1.id]) {\\\\\\\\n cost.items[entry2.id] = cost.items[entry1.id];\\\\\\\\n delete cost.items[entry1.id];\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n { // Weapon Replacement Costs\\\\\\\\n const notetag = /<REPLACE WEAPON (.*) COST:[ ](.*)>/gi;\\\\\\\\n const matches = objNote.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const name1 = String(RegExp.$1).toUpperCase().trim();\\\\\\\\n const name2 = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry1 = $dataWeapons.find(obj => obj && obj.name.toUpperCase().trim() === name1);\\\\\\\\n const entry2 = $dataWeapons.find(obj => obj && obj.name.toUpperCase().trim() === name2);\\\\\\\\n if (entry1 && entry2 && cost.weapons[entry1.id]) {\\\\\\\\n cost.weapons[entry2.id] = cost.weapons[entry1.id];\\\\\\\\n delete cost.items[entry1.id];\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n { // Armor Replacement Costs\\\\\\\\n const notetag = /<REPLACE ARMOR (.*) COST:[ ](.*)>/gi;\\\\\\\\n const matches = objNote.match(notetag);\\\\\\\\n if (matches) {\\\\\\\\n for (const currentMatch of matches) {\\\\\\\\n currentMatch.match(notetag);\\\\\\\\n const name1 = String(RegExp.$1).toUpperCase().trim();\\\\\\\\n const name2 = String(RegExp.$2).toUpperCase().trim();\\\\\\\\n const entry1 = $dataArmors.find(obj => obj && obj.name.toUpperCase().trim() === name1);\\\\\\\\n const entry2 = $dataArmors.find(obj => obj && obj.name.toUpperCase().trim() === name2);\\\\\\\\n if (entry1 && entry2 && cost.armors[entry1.id]) {\\\\\\\\n cost.armors[entry2.id] = cost.armors[entry1.id];\\\\\\\\n delete cost.items[entry1.id];\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return cost data\\\\\\\\nreturn cost;\\\\\\\"\\\",\\\"CanPayJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Check Individual Costs\\\\\\\\n{ // Check Item Costs\\\\\\\\n for (let id in cost.items) {\\\\\\\\n const obj = $dataItems[id];\\\\\\\\n if (obj) {\\\\\\\\n const costAmount = cost.items[id];\\\\\\\\n const ownedAmount = $gameParty.numItems(obj);\\\\\\\\n if (costAmount > ownedAmount) return false;\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n{ // Check Weapon Costs\\\\\\\\n for (let id in cost.weapons) {\\\\\\\\n const obj = $dataWeapons[id];\\\\\\\\n if (obj) {\\\\\\\\n const costAmount = cost.weapons[id];\\\\\\\\n const ownedAmount = $gameParty.numItems(obj);\\\\\\\\n if (costAmount > ownedAmount) return false;\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n{ // Check Armor Costs\\\\\\\\n for (let id in cost.armors) {\\\\\\\\n const obj = $dataArmors[id];\\\\\\\\n if (obj) {\\\\\\\\n const costAmount = cost.armors[id];\\\\\\\\n const ownedAmount = $gameParty.numItems(obj);\\\\\\\\n if (costAmount > ownedAmount) return false;\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return True\\\\\\\\nreturn true;\\\\\\\"\\\",\\\"PayJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Process Payment\\\\\\\\n{ // Check Item Costs\\\\\\\\n for (let id in cost.items) {\\\\\\\\n const obj = $dataItems[id];\\\\\\\\n if (obj && obj.consumable) {\\\\\\\\n if (obj.itypeId !== 2) {\\\\\\\\n const costAmount = cost.items[id];\\\\\\\\n $gameParty.loseItem(obj, costAmount);\\\\\\\\n }\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n{ // Check Weapon Costs\\\\\\\\n for (let id in cost.weapons) {\\\\\\\\n const obj = $dataWeapons[id];\\\\\\\\n if (obj) {\\\\\\\\n const costAmount = cost.weapons[id];\\\\\\\\n $gameParty.loseItem(obj, costAmount);\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\\n{ // Check Armor Costs\\\\\\\\n for (let id in cost.armors) {\\\\\\\\n const obj = $dataArmors[id];\\\\\\\\n if (obj) {\\\\\\\\n const costAmount = cost.armors[id];\\\\\\\\n $gameParty.loseItem(obj, costAmount);\\\\\\\\n }\\\\\\\\n }\\\\\\\\n}\\\\\\\"\\\",\\\"Windows\\\":\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\n\\\\\\\\n// Check Keys\\\\\\\\nconst keys = ['items', 'weapons', 'armors'];\\\\\\\\n\\\\\\\\n// Return False\\\\\\\\nreturn keys.some(key => Object.keys(cost[key]).length > 0);\\\\\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\nconst skill = arguments[0];\\\\\\\\nconst cost = arguments[1];\\\\\\\\nconst settings = arguments[2];\\\\\\\\nconst fontSize = settings.FontSize;\\\\\\\\nconst color = settings.FontColor;\\\\\\\\nconst name = settings.Name;\\\\\\\\nconst icon = settings.Icon;\\\\\\\\nconst keys = ['items', 'weapons', 'armors'];\\\\\\\\nlet text = '';\\\\\\\\n\\\\\\\\n// Text: Change Font Size\\\\\\\\ntext += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\FS[%1]'.format(fontSize);\\\\\\\\n\\\\\\\\n// Text: Add Color\\\\\\\\nif (color.match(/#(.*)/i) && Imported.VisuMZ_1_MessageCore) {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\HexColor<#%1>'.format(String(RegExp.$1));\\\\\\\\n} else {\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\C[%1]'.format(color);\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Text: Add Cost\\\\\\\\nfor (const key of keys) {\\\\\\\\n const database = [$dataItems, $dataWeapons, $dataArmors][keys.indexOf(key)];\\\\\\\\n const costData = cost[key];\\\\\\\\n const idList = Object.keys(costData).sort((a, b) => a - b);\\\\\\\\n for (const id of idList) {\\\\\\\\n const obj = database[id];\\\\\\\\n const iconIndex = obj.iconIndex;\\\\\\\\n const costAmount = costData[id];\\\\\\\\n text += '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\I[%1]×%2 '.format(iconIndex, costAmount);\\\\\\\\n }\\\\\\\\n}\\\\\\\\n\\\\\\\\n// Return text\\\\\\\\nreturn text.trim();\\\\\\\"\\\",\\\"Gauges\\\":\\\"\\\",\\\"GaugeMaxJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Return value\\\\\\\\nreturn 0;\\\\\\\"\\\",\\\"GaugeCurrentJS:func\\\":\\\"\\\\\\\"// Declare Variables\\\\\\\\nconst user = this;\\\\\\\\n\\\\\\\\n// Return value\\\\\\\\nreturn 0;\\\\\\\"\\\",\\\"GaugeDrawJS:func\\\":\\\"\\\\\\\"// Don't Draw Anything\\\\\\\\n// This does not work as a gauge.\\\\\\\"\\\"}\"]","Gauge:struct":"{\"Labels\":\"\",\"LabelFontMainType:str\":\"main\",\"MatchLabelColor:eval\":\"true\",\"MatchLabelGaugeColor:num\":\"2\",\"PresetLabelGaugeColor:num\":\"16\",\"LabelOutlineSolid:eval\":\"true\",\"LabelOutlineWidth:num\":\"3\",\"Values\":\"\",\"ValueFontMainType:str\":\"number\",\"ValueOutlineSolid:eval\":\"true\",\"ValueOutlineWidth:num\":\"3\"}","BreakSkills":"----------------------------------","States:struct":"{\"General\":\"\",\"ReapplyRules:str\":\"greater\",\"MaxTurns:num\":\"99\",\"ActionEndUpdate:eval\":\"true\",\"Turns\":\"\",\"ShowTurns:eval\":\"true\",\"TurnFontSize:num\":\"16\",\"TurnOffsetX:num\":\"-4\",\"TurnOffsetY:num\":\"-6\",\"ColorNeutral:str\":\"0\",\"ColorPositive:str\":\"24\",\"ColorNegative:str\":\"27\",\"Data\":\"\",\"ShowData:eval\":\"true\",\"DataFontSize:num\":\"12\",\"DataOffsetX:num\":\"0\",\"DataOffsetY:num\":\"8\",\"CustomJS\":\"\",\"onAddStateJS:func\":\"\\\"// Declare Variables\\\\nconst stateId = arguments[0];\\\\nconst origin = this.getStateOrigin(stateId);\\\\nconst state = $dataStates[stateId];\\\\nconst user = this.getCurrentStateActiveUser();\\\\nconst target = this;\\\\nconst a = origin;\\\\nconst b = this;\\\\n\\\\n// Perform Actions\\\"\",\"onEraseStateJS:func\":\"\\\"// Declare Variables\\\\nconst stateId = arguments[0];\\\\nconst origin = this.getStateOrigin(stateId);\\\\nconst state = $dataStates[stateId];\\\\nconst user = this.getCurrentStateActiveUser();\\\\nconst target = this;\\\\nconst a = origin;\\\\nconst b = this;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"onExpireStateJS:func\":\"\\\"// Declare Variables\\\\nconst stateId = arguments[0];\\\\nconst origin = this.getStateOrigin(stateId);\\\\nconst state = $dataStates[stateId];\\\\nconst user = this.getCurrentStateActiveUser();\\\\nconst target = this;\\\\nconst a = origin;\\\\nconst b = this;\\\\n\\\\n// Perform Actions\\\\n\\\"\"}","Buffs:struct":"{\"General\":\"\",\"ReapplyRules:str\":\"greater\",\"MaxTurns:num\":\"99\",\"Stacking\":\"\",\"StackBuffMax:num\":\"2\",\"StackDebuffMax:num\":\"2\",\"MultiplierJS:func\":\"\\\"// Declare Variables\\\\nconst user = this;\\\\nconst paramId = arguments[0];\\\\nconst buffLevel = arguments[1];\\\\nlet rate = 1;\\\\n\\\\n// Perform Calculations\\\\nrate += buffLevel * 0.25;\\\\n\\\\n// Return Rate\\\\nreturn Math.max(0, rate);\\\"\",\"Turns\":\"\",\"ShowTurns:eval\":\"true\",\"TurnFontSize:num\":\"16\",\"TurnOffsetX:num\":\"-4\",\"TurnOffsetY:num\":\"-6\",\"ColorBuff:str\":\"24\",\"ColorDebuff:str\":\"27\",\"Data\":\"\",\"ShowData:eval\":\"false\",\"DataFontSize:num\":\"12\",\"DataOffsetX:num\":\"0\",\"DataOffsetY:num\":\"8\",\"CustomJS\":\"\",\"onAddBuffJS:func\":\"\\\"// Declare Variables\\\\nconst paramId = arguments[0];\\\\nconst modifier = this._buffs[paramId];\\\\nconst origin = this.getCurrentStateActiveUser();\\\\nconst user = this.getCurrentStateActiveUser();\\\\nconst target = this;\\\\nconst a = origin;\\\\nconst b = this;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"onAddDebuffJS:func\":\"\\\"// Declare Variables\\\\nconst paramId = arguments[0];\\\\nconst modifier = this._buffs[paramId];\\\\nconst origin = this.getCurrentStateActiveUser();\\\\nconst user = this.getCurrentStateActiveUser();\\\\nconst target = this;\\\\nconst a = origin;\\\\nconst b = this;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"onEraseBuffJS:func\":\"\\\"// Declare Variables\\\\nconst paramId = arguments[0];\\\\nconst modifier = this._buffs[paramId];\\\\nconst origin = this.getCurrentStateActiveUser();\\\\nconst user = this.getCurrentStateActiveUser();\\\\nconst target = this;\\\\nconst a = origin;\\\\nconst b = this;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"onEraseDebuffJS:func\":\"\\\"// Declare Variables\\\\nconst paramId = arguments[0];\\\\nconst modifier = this._buffs[paramId];\\\\nconst origin = this.getCurrentStateActiveUser();\\\\nconst user = this.getCurrentStateActiveUser();\\\\nconst target = this;\\\\nconst a = origin;\\\\nconst b = this;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"onExpireBuffJS:func\":\"\\\"// Declare Variables\\\\nconst paramId = arguments[0];\\\\nconst modifier = this._buffs[paramId];\\\\nconst origin = this.getCurrentStateActiveUser();\\\\nconst user = this.getCurrentStateActiveUser();\\\\nconst target = this;\\\\nconst a = origin;\\\\nconst b = this;\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"onExpireDebuffJS:func\":\"\\\"// Declare Variables\\\\nconst paramId = arguments[0];\\\\nconst modifier = this._buffs[paramId];\\\\nconst origin = this.getCurrentStateActiveUser();\\\\nconst user = this.getCurrentStateActiveUser();\\\\nconst target = this;\\\\nconst a = origin;\\\\nconst b = this;\\\\n\\\\n// Perform Actions\\\\n\\\"\"}","PassiveStates:struct":"{\"List\":\"\",\"Global:arraynum\":\"[]\",\"Actor:arraynum\":\"[]\",\"Enemy:arraynum\":\"[]\",\"CustomJS\":\"\",\"PassiveConditionJS:func\":\"\\\"// Declare Variables\\\\nconst state = arguments[0];\\\\nconst stateId = state.id;\\\\nconst user = this;\\\\nconst target = this;\\\\nconst a = this;\\\\nconst b = this;\\\\nlet condition = true;\\\\n\\\\n// Perform Checks\\\\n\\\\n\\\\n// Return boolean\\\\nreturn condition;\\\"\"}","BreakEnd1":"----------------------------------","End Of":"Plugin Parameters","BreakEnd2":"----------------------------------"}},
{"name":"VisuMZ_2_BattleSystemSTB","status":true,"description":"[RPG Maker MZ] [Tier 2] [Version 1.14] [BattleSystemSTB]","parameters":{"BreakHead":"----------------------------------","BattleSystemSTB":"Plugin Parameters","ATTENTION":"READ THE HELP FILE","BreakSettings":"----------------------------------","Speed:struct":"{\"Speed\":\"\",\"InitialSpeedJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst agi = user.agi;\\\\n\\\\n// Create Base Speed\\\\nlet speed = agi;\\\\n\\\\n// Random Speed Check\\\\nif (user.allowRandomSpeed()) {\\\\n speed += Math.randomInt(Math.floor(5 + agi / 4));\\\\n}\\\\n\\\\n// Add Saved Speed Modifiers from Previous Round\\\\nspeed += user.getSTBNextTurnSpeed();\\\\n\\\\n// Return Speed\\\\nreturn speed;\\\"\",\"NextTurnSavedSpeedJS:func\":\"\\\"// Create Speed\\\\nconst action = this;\\\\nlet speed = 0;\\\\n\\\\n// Check Object\\\\nif (action.item()) {\\\\n speed += action.item().speed;\\\\n}\\\\n\\\\n// Check Attack\\\\nif (action.isAttack()) {\\\\n speed += action.subject().attackSpeed();\\\\n}\\\\n\\\\n// Return Speed\\\\nreturn speed;\\\"\"}","Exploit:struct":"{\"EnableExploit:eval\":\"true\",\"ExploitCritical:eval\":\"true\",\"ExploitEleWeakness:eval\":\"true\",\"ExploitEleRate:num\":\"1.05\",\"TurnResetExploits:eval\":\"true\"}","Exploited:struct":"{\"Mechanics\":\"\",\"AddedStates:arraynum\":\"[\\\"13\\\"]\",\"FullExploitEvents\":\"\",\"vsActorsFullExploit:num\":\"0\",\"vsEnemiesFullExploit:num\":\"0\",\"UnlimitedExploits:eval\":\"false\",\"CustomJS:func\":\"\\\"// Declare Constants\\\\nconst target = this;\\\\nconst user = arguments[0];\\\\nconst action = arguments[1];\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"Animation\":\"\",\"AnimationID:num\":\"0\",\"Mirror:eval\":\"false\",\"Mute:eval\":\"false\",\"Popups\":\"\",\"PopupText:str\":\"\",\"TextColor:str\":\"0\",\"FlashColor:eval\":\"[255, 255, 255, 160]\",\"FlashDuration:num\":\"60\"}","Exploiter:struct":"{\"Mechanics\":\"\",\"AddedStates:arraynum\":\"[]\",\"ExtraActions:num\":\"1\",\"MultipleExploits:eval\":\"false\",\"CustomJS:func\":\"\\\"// Declare Constants\\\\nconst user = this;\\\\nconst target = arguments[0];\\\\nconst action = arguments[1];\\\\n\\\\n// Perform Actions\\\\n\\\"\",\"Animation\":\"\",\"AnimationID:num\":\"12\",\"Mirror:eval\":\"false\",\"Mute:eval\":\"false\",\"Popups\":\"\",\"PopupText:str\":\"ONE MORE!\",\"TextColor:str\":\"0\",\"FlashColor:eval\":\"[255, 255, 128, 160]\",\"FlashDuration:num\":\"60\"}","TurnOrder:struct":"{\"General\":\"\",\"DisplayPosition:str\":\"top\",\"DisplayOffsetX:num\":\"0\",\"DisplayOffsetY:num\":\"0\",\"CenterHorz:eval\":\"true\",\"RepositionTopForHelp:eval\":\"true\",\"RepositionLogWindow:eval\":\"true\",\"OrderDirection:eval\":\"true\",\"SubjectDistance:num\":\"8\",\"ScreenBuffer:num\":\"20\",\"Reposition\":\"\",\"RepositionTopHelpX:num\":\"0\",\"RepositionTopHelpY:num\":\"96\",\"Slots\":\"\",\"MaxHorzSprites:num\":\"16\",\"MaxVertSprites:num\":\"10\",\"SpriteLength:num\":\"72\",\"SpriteThin:num\":\"36\",\"UpdateFrames:num\":\"24\",\"Border\":\"\",\"ShowMarkerBorder:eval\":\"true\",\"BorderActor\":\"\",\"ActorBorderColor:str\":\"4\",\"ActorSystemBorder:str\":\"\",\"BorderEnemy\":\"\",\"EnemyBorderColor:str\":\"2\",\"EnemySystemBorder:str\":\"\",\"BorderThickness:num\":\"2\",\"Sprite\":\"\",\"ActorSprite\":\"\",\"ActorBattlerType:str\":\"face\",\"ActorBattlerIcon:num\":\"84\",\"EnemySprite\":\"\",\"EnemyBattlerType:str\":\"enemy\",\"EnemyBattlerFaceName:str\":\"Monster\",\"EnemyBattlerFaceIndex:num\":\"1\",\"EnemyBattlerIcon:num\":\"298\",\"EnemyBattlerMatchHue:eval\":\"true\",\"Letter\":\"\",\"EnemyBattlerDrawLetter:eval\":\"true\",\"EnemyBattlerFontFace:str\":\"\",\"EnemyBattlerFontSize:num\":\"16\",\"Background\":\"\",\"ShowMarkerBg:eval\":\"true\",\"BackgroundActor\":\"\",\"ActorBgColor1:str\":\"19\",\"ActorBgColor2:str\":\"9\",\"ActorSystemBg:str\":\"\",\"BackgroundEnemy\":\"\",\"EnemyBgColor1:str\":\"19\",\"EnemyBgColor2:str\":\"18\",\"EnemySystemBg:str\":\"\"}","BreakEnd1":"----------------------------------","End Of":"Plugin Parameters","BreakEnd2":"----------------------------------"}},
{"name":"VisuMZ_3_SideviewBattleUI","status":true,"description":"[RPG Maker MZ] [Tier 3] [Version 1.04] [SideviewBattleUI]","parameters":{"BreakHead":"----------------------------------","SideviewBattleUI":"Plugin Parameters","ATTENTION":"READ THE HELP FILE","BreakSettings":"----------------------------------","Battler:struct":"{\"Enable:eval\":\"true\",\"OffsetX:num\":\"-80\",\"OffsetY:num\":\"+128\"}","GeneralWindow:struct":"{\"Global\":\"\",\"UiScale:num\":\"0.80\",\"HelpWindow\":\"\",\"HelpFadeStyle:eval\":\"true\",\"ActorCommandWindow\":\"\",\"ActorCommandWindowMaxRows:num\":\"8\",\"PartyCommandWindow\":\"\",\"PartyCommandWindowMaxRows:num\":\"8\",\"ItemWindow\":\"\",\"ItemWindowMaxRows:num\":\"8\",\"ItemWindowWidth:num\":\"400\",\"ItemWindowOffsetX:num\":\"+16\",\"ItemWindowOffsetY:num\":\"+16\",\"SkillWindow\":\"\",\"SkillWindowMaxRows:num\":\"8\",\"SkillWindowWidth:num\":\"400\",\"SkillWindowOffsetX:num\":\"+16\",\"SkillWindowOffsetY:num\":\"+16\"}","StatusWindow:struct":"{\"Dimensions\":\"\",\"WidthBase:num\":\"200\",\"HeightBase:str\":\"auto\",\"HeightBuffer:num\":\"4\",\"MoveDistance:num\":\"48\",\"MoveSpeed:num\":\"4\",\"Standard\":\"\",\"BgShow:eval\":\"true\",\"Name\":\"\",\"NameShow:eval\":\"true\",\"NameOffsetX:num\":\"+48\",\"NameOffsetY:num\":\"+0\",\"States\":\"\",\"StatesShow:eval\":\"true\",\"StatesIgnoreScale:eval\":\"true\",\"StatesOffsetX:num\":\"+20\",\"StatesOffsetY:num\":\"+20\",\"Tpb\":\"\",\"TpbShow:eval\":\"false\",\"TpbOffsetX:num\":\"+44\",\"TpbOffsetY:num\":\"+0\",\"Hp\":\"\",\"HpShow:eval\":\"true\",\"HpOffsetX:num\":\"+60\",\"HpOffsetY:num\":\"+0\",\"Mp\":\"\",\"MpShow:eval\":\"true\",\"MpOffsetX:num\":\"+68\",\"MpOffsetY:num\":\"+0\",\"Tp\":\"\",\"TpShow:eval\":\"false\",\"TpOffsetX:num\":\"+74\",\"TpOffsetY:num\":\"+0\",\"Compatibility\":\"\",\"Aggro\":\"\",\"AggroShow:eval\":\"true\",\"AggroOffsetX:num\":\"+44\",\"AggroOffsetY:num\":\"+0\",\"Boost\":\"\",\"BoostShow:eval\":\"true\",\"BoostOffsetX:num\":\"+52\",\"BoostOffsetY:num\":\"+2\",\"Brave\":\"\",\"BraveShow:eval\":\"true\",\"BraveOffsetX:num\":\"+52\",\"BraveOffsetY:num\":\"-6\",\"BreakShield\":\"\",\"BreakShieldShow:eval\":\"true\",\"BreakShieldIgnoreScale:eval\":\"true\",\"BreakShieldOffsetX:num\":\"+20\",\"BreakShieldOffsetY:num\":\"+20\",\"StateTooltips\":\"\",\"StateTooltipsShow:eval\":\"true\",\"JS\":\"\",\"CustomUi:func\":\"\\\"// Declare Variables\\\\nconst actor = arguments[0];\\\\nlet x = 0;\\\\nlet y = 0;\\\\nlet width = this.innerWidth;\\\\nlet height = this.innerHeight;\\\\n\\\\n// Draw Custom Elements\\\\n// Put in code you want here used for windows classes\\\"\"}","BreakEnd1":"----------------------------------","End Of":"Plugin Parameters","BreakEnd2":"----------------------------------"}}
];