Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Generated by RPG Maker.
- // Do not edit this file directly.
- var $plugins =
- [
- {"name":"VisuMZ_0_CoreEngine","status":true,"description":"[RPG Maker MZ] [Tier 0] [Version 1.80] [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\",\"BattleTest\":\"\",\"BTestItems:eval\":\"true\",\"BTestWeapons:eval\":\"true\",\"BTestArmors:eval\":\"true\",\"BTestAddedQuantity:num\":\"90\",\"ShiftR_Toggle:eval\":\"true\",\"ShiftT_Toggle:eval\":\"true\",\"DigitGrouping\":\"\",\"DigitGroupingStandardText:eval\":\"true\",\"DigitGroupingExText:eval\":\"true\",\"DigitGroupingDamageSprites:eval\":\"true\",\"DigitGroupingGaugeSprites:eval\":\"true\",\"DigitGroupingLocale:str\":\"en-US\",\"PlayerBenefit\":\"\",\"EncounterRateMinimum:num\":\"30\",\"EscapeAlways:eval\":\"true\",\"ImprovedAccuracySystem:eval\":\"true\",\"AccuracyBoost:eval\":\"true\",\"LevelUpFullHp:eval\":\"false\",\"LevelUpFullMp:eval\":\"false\",\"Pictures\":\"\",\"AntiZoomPictures:eval\":\"true\",\"PictureContainers\":\"\",\"DetachBattlePictureContainer:eval\":\"false\",\"DetachMapPictureContainer:eval\":\"false\",\"Misc\":\"\",\"AnimationMirrorOffset:eval\":\"false\",\"AutoStretch:str\":\"default\",\"FontShadows:eval\":\"false\",\"FontSmoothing:eval\":\"true\",\"FontWidthFix:eval\":\"true\",\"KeyItemProtect:eval\":\"true\",\"MapNameTextCode:eval\":\"true\",\"ModernControls:eval\":\"true\",\"MvAnimationRate:num\":\"4\",\"NewGameCommonEventAll:num\":\"0\",\"NoTileShadows:eval\":\"false\",\"PixelateImageRendering:eval\":\"false\",\"RequireFocus:eval\":\"false\",\"ShortcutScripts:eval\":\"true\",\"SmartEventCollisionPriority:eval\":\"true\",\"SubfolderParse:eval\":\"true\"}","BattleSystem:str":"database","Color:struct":"{\"BasicColors\":\"\",\"ColorNormal:str\":\"0\",\"ColorSystem:str\":\"#00ffea\",\"ColorCrisis:str\":\"17\",\"ColorDeath:str\":\"18\",\"ColorGaugeBack:str\":\"#000000\",\"ColorHPGauge1:str\":\"#990000\",\"ColorHPGauge2:str\":\"#ff0000\",\"ColorMPGauge1:str\":\"#009900\",\"ColorMPGauge2:str\":\"#00ff00\",\"ColorMPCost:str\":\"#00ff00\",\"ColorPowerUp:str\":\"#00ff00\",\"ColorPowerDown:str\":\"#ff6666\",\"ColorCTGauge1:str\":\"26\",\"ColorCTGauge2:str\":\"27\",\"ColorTPGauge1:str\":\"28\",\"ColorTPGauge2:str\":\"29\",\"ColorTPCost:str\":\"29\",\"ColorPending:str\":\"#2a847d\",\"ColorExpGauge1:str\":\"#8c0099\",\"ColorExpGauge2:str\":\"#ea00ff\",\"ColorMaxLvGauge1:str\":\"14\",\"ColorMaxLvGauge2:str\":\"6\",\"AlphaColors\":\"\",\"OutlineColor:str\":\"rgba(0, 0, 0, 0.6)\",\"OutlineColorGauge:str\":\"rgba(0, 0, 0, 1.0)\",\"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 \\\\\\\"#00ff00\\\\\\\";\\\\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\":\"0\",\"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\"}","ControllerButtons:arraystruct":"[]","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\":\"[\\\"MaxHP\\\",\\\"MaxMP\\\",\\\"ATK\\\",\\\"DEF\\\"]\",\"ExtDisplayedParams:arraystr\":\"[\\\"MaxHP\\\",\\\"MaxMP\\\",\\\"ATK\\\",\\\"DEF\\\"]\",\"BasicParameters\":\"\",\"ShowActorLevel:eval\":\"true\",\"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\":\"false\",\"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":"{\"Maps\":\"\",\"AutoScrollLockX:eval\":\"true\",\"AutoScrollLockY:eval\":\"true\",\"DisplayLockX:num\":\"0.15625\",\"DisplayLockY:num\":\"0.00000\",\"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();\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"shutdown\\\",\\\"TextStr:str\\\":\\\"Quit\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.gameEnd;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return Utils.isNwjs();\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return true;\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager.exit();\\\\\\\\n\\\\\\\\n// Note!\\\\\\\\n// Do NOT use this command with mobile devices or\\\\\\\\n// browser games. All it does is cause the game to\\\\\\\\n// display a blank, black canvas which the player\\\\\\\\n// is unable to do anything with. It does NOT force\\\\\\\\n// close the browser tab nor the app.\\\\\\\"\\\"}\"]","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\",\"ItemPadding:num\":\"8\",\"BackOpacity:num\":\"192\",\"TranslucentOpacity:num\":\"160\",\"OpenSpeed:num\":\"32\",\"ColSpacing:num\":\"8\",\"RowSpacing:num\":\"4\",\"ScrollBar\":\"\",\"ShowScrollBar:eval\":\"true\",\"BarThickness:num\":\"2\",\"BarOffset:num\":\"+2\",\"BarBodyColor:str\":\"0\",\"OffBarColor:str\":\"7\",\"OffBarOpacity:num\":\"128\",\"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);\\\"\",\"TextPopup\":\"\",\"DurationPerChat:num\":\"1.5\",\"MinDuration:num\":\"90\",\"MaxDuration:num\":\"300\"}","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: RandomBetween(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_MainMenuCore","status":true,"description":"[RPG Maker MZ] [Tier 1] [Version 1.22] [MainMenuCore]","parameters":{"BreakHead":"----------------------------------","MainMenuCore":"Plugin Parameters","ATTENTION":"READ THE HELP FILE","BreakSettings":"----------------------------------","General:struct":"{\"GoldWindow\":\"\",\"ThinGoldWindow:eval\":\"true\",\"AutoGoldHeight:eval\":\"true\",\"AutoGoldY:eval\":\"true\",\"StatusWindow\":\"\",\"StatusSelectLast:eval\":\"false\",\"SoloParty\":\"\",\"SoloQuick:eval\":\"true\",\"SubMenus\":\"\",\"ActorBgMenus:arraystr\":\"[\\\"Scene_Skill\\\"]\",\"ActorBgMenuJS:func\":\"\\\"this.anchor.x = 0.5;\\\\nconst scale = 1.25;\\\\nthis.scale.x = this.scale.y = scale;\\\\nthis.x = Graphics.width;\\\\nthis.y = Graphics.height - (this.bitmap.height * Math.abs(scale));\\\\nthis._targetX = Graphics.width * 3 / 4;\\\\nthis._targetY = Graphics.height - (this.bitmap.height * Math.abs(scale));\\\\nthis._duration = 10;\\\\nthis.opacity = 0;\\\"\",\"PartyWindow\":\"\",\"ShowReserve:eval\":\"false\",\"HideMainMenuOnly:eval\":\"true\"}","CommandList:arraystruct":"[\"{\\\"Symbol:str\\\":\\\"Map\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"TextStr:str\\\":\\\"Map\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return 'Text';\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return this.needsCommand(\\\\\\\\\\\\\\\"Map\\\\\\\\\\\\\\\");\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return true;\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return 63;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandCommonEvent();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"skill\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"TextStr:str\\\":\\\"Skills\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.skill;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return this.needsCommand(\\\\\\\\\\\\\\\"skill\\\\\\\\\\\\\\\");\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.areMainCommandsEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandPersonal();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"SceneManager.push(Scene_Skill);\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"equip\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.equip;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return this.needsCommand(\\\\\\\\\\\\\\\"equip\\\\\\\\\\\\\\\");\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.areMainCommandsEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandPersonal();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"SceneManager.push(Scene_Equip);\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"item\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"TextStr:str\\\":\\\"Inventory\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.item;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return this.needsCommand(\\\\\\\\\\\\\\\"item\\\\\\\\\\\\\\\");\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.areMainCommandsEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandItem();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"status\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.status;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return this.needsCommand(\\\\\\\\\\\\\\\"status\\\\\\\\\\\\\\\");\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.areMainCommandsEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandPersonal();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"SceneManager.push(Scene_Status);\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"Fly to Campsite\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"TextStr:str\\\":\\\"Fly to Campsite\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return 'Text';\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"//Appears if Switch 2 (FLYER) = ON\\\\\\\\n//and Switch 108 (Party in Dungeon) = OFF\\\\\\\\nreturn $gameSwitches.value(002) && !$gameSwitches.value(108)\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return true;\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return 11;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandCommonEvent();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"Burrow Outside\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"TextStr:str\\\":\\\"Burrow Outside\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return 'Text';\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"//Appears if Switch 3 (BURROWER) = ON\\\\\\\\n//and Switch 108 (Party in Dungeon) = ON\\\\\\\\nreturn $gameSwitches.value(3) && $gameSwitches.value(108)\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return true;\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return 82;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandCommonEvent();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"classChange\\\",\\\"Icon:num\\\":\\\"133\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.classChangeMenuCommand;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return Imported.VisuMZ_2_ClassChangeSystem &&\\\\\\\\n this.isClassChangeCommandVisible();\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.areMainCommandsEnabled() &&\\\\\\\\n this.isClassChangeCommandEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandPersonal();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"SceneManager.push(Scene_ClassChange);\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"itemCrafting\\\",\\\"Icon:num\\\":\\\"223\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.ItemCraftingMenuCommand;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return Imported.VisuMZ_2_ItemCraftingSys &&\\\\\\\\n this.isItemCraftingCommandVisible();\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.isItemCraftingCommandEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandItemCrafting();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"subcategory\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"230\\\",\\\"TextStr:str\\\":\\\"Datalog\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return 'Text';\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return this.isSubcategoryVisible(arguments[1]);\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return true;\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"// This becomes the subcategory name. Case-sensitive.\\\\\\\\n\\\\\\\\nreturn 'datalog';\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\\nthis.setSubcategory(ext);\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"quest\\\",\\\"Subcategory:str\\\":\\\"datalog\\\",\\\"Icon:num\\\":\\\"186\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.questCommandName;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return Imported.VisuMZ_2_QuestSystem &&\\\\\\\\n this.isQuestCommandVisible();\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.isQuestCommandEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandQuest();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"bestiary\\\",\\\"Subcategory:str\\\":\\\"datalog\\\",\\\"Icon:num\\\":\\\"10\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.BestiaryMenuCommand;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return Imported.VisuMZ_2_Bestiary &&\\\\\\\\n this.isBestiaryCommandVisible();\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.isBestiaryCommandEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandBestiary();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"tutorialList\\\",\\\"Subcategory:str\\\":\\\"datalog\\\",\\\"Icon:num\\\":\\\"187\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.tutorial.menuCmd;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return Imported.VisuMZ_2_TutorialPanelSys &&\\\\\\\\n this.isTutorialListCommandVisible();\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.isTutorialListCommandEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandTutorialList();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"messageLog\\\",\\\"Subcategory:str\\\":\\\"datalog\\\",\\\"Icon:num\\\":\\\"193\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.MessageLogMenuCommand;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return Imported.VisuMZ_3_MessageLog &&\\\\\\\\n this.isMessageLogCommandVisible();\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.isMessageLogCommandEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandMessageLog();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"combatLog\\\",\\\"Subcategory:str\\\":\\\"datalog\\\",\\\"Icon:num\\\":\\\"189\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.combatLog_BattleCmd_Name;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return Imported.VisuMZ_4_CombatLog &&\\\\\\\\n this.isCombatLogCommandVisible();\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.isCombatLogCommandEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandCombatLog();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"cgGallery\\\",\\\"Subcategory:str\\\":\\\"datalog\\\",\\\"Icon:num\\\":\\\"311\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.cgGalleryMenuCommand;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return Imported.VisuMZ_4_CGGallery &&\\\\\\\\n this.isCgGalleryCommandVisible();\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.isCgGalleryCommandEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandCgGallery();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"creditsPage\\\",\\\"Subcategory:str\\\":\\\"datalog\\\",\\\"Icon:num\\\":\\\"193\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.CreditsPageMenuCommand;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return Imported.VisuMZ_4_CreditsPage &&\\\\\\\\n this.isCreditsPageCommandVisible();\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.isCreditsPageCommandEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandCreditsPage();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"patchNotes\\\",\\\"Subcategory:str\\\":\\\"datalog\\\",\\\"Icon:num\\\":\\\"83\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.PatchNotesMenuCommand;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return Imported.VisuMZ_4_PatchNotes &&\\\\\\\\n this.isPatchNotesCommandVisible();\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.isPatchNotesCommandEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandPatchNotes();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"formation\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.formation;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return this.needsCommand(\\\\\\\\\\\\\\\"formation\\\\\\\\\\\\\\\");\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.isFormationEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandFormation();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"options\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.options;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return this.needsCommand(\\\\\\\\\\\\\\\"options\\\\\\\\\\\\\\\");\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.isOptionsEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandOptions();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"save\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"TextStr:str\\\":\\\"\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.save;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"// return this.needsCommand(\\\\\\\\\\\\\\\"save\\\\\\\\\\\\\\\");\\\\\\\\nreturn false;\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.isSaveEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandSave();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"commonEvent2\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"87\\\",\\\"TextStr:str\\\":\\\"Common Event 2\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return 'Text';\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return false;\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.areMainCommandsEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return 2;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandPersonal();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"// Declare Ext\\\\\\\\nconst ext = arguments[0];\\\\\\\\n\\\\\\\\n// Declare Status Window\\\\\\\\nconst statusWindow = SceneManager._scene._statusWindow;\\\\\\\\n\\\\\\\\n// Declare Actor ID\\\\\\\\nconst actorId = statusWindow.actor(statusWindow.index()).actorId();\\\\\\\\n\\\\\\\\n// Set variable 1 to Actor ID\\\\\\\\n$gameVariables.setValue(1, actorId);\\\\\\\\n\\\\\\\\n// Prepare Common Event ext to run\\\\\\\\n$gameTemp.reserveCommonEvent(ext);\\\\\\\\n\\\\\\\\n// Exit Main Menu\\\\\\\\nSceneManager._scene.popScene();\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"load\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"TextStr:str\\\":\\\"Load\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return 'Load';\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return this.needsCommand(\\\\\\\\\\\\\\\"save\\\\\\\\\\\\\\\");\\\\\\\\nreturn false;\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return DataManager.isAnySavefileExists();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandLoad();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\",\"{\\\"Symbol:str\\\":\\\"gameEnd\\\",\\\"Subcategory:str\\\":\\\"\\\",\\\"Icon:num\\\":\\\"0\\\",\\\"TextStr:str\\\":\\\"Quit\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return TextManager.gameEnd;\\\\\\\"\\\",\\\"ShowJS:func\\\":\\\"\\\\\\\"return this.needsCommand(\\\\\\\\\\\\\\\"gameEnd\\\\\\\\\\\\\\\");\\\\\\\"\\\",\\\"EnableJS:func\\\":\\\"\\\\\\\"return this.isGameEndEnabled();\\\\\\\"\\\",\\\"ExtJS:func\\\":\\\"\\\\\\\"return null;\\\\\\\"\\\",\\\"CallHandlerJS:func\\\":\\\"\\\\\\\"SceneManager._scene.commandGameEnd();\\\\\\\\n//Use this to close game: SceneManager.exit();\\\\\\\"\\\",\\\"PersonalHandlerJS:func\\\":\\\"\\\\\\\"const ext = arguments[0];\\\\\\\"\\\"}\"]","Playtime:struct":"{\"Enable:eval\":\"false\",\"AdjustCommandHeight:eval\":\"false\",\"BgType:num\":\"0\",\"FontSize:num\":\"20\",\"Icon:num\":\"0\",\"Time:str\":\"Time\",\"WindowRect:func\":\"\\\"const rows = 1;\\\\nconst ww = this.mainCommandWidth();\\\\nconst wh = this.calcWindowHeight(rows, false);\\\\nconst wx = this.isRightInputMode() ? Graphics.boxWidth - ww : 0;\\\\nlet wy = this.mainAreaBottom() - wh;\\\\nif (this._goldWindow) wy -= this._goldWindow.height;\\\\nif (this.canCreateVariableWindow()) wy -= this.variableWindowRect().height;\\\\nreturn new Rectangle(wx, wy, ww, wh);\\\"\"}","Variable:struct":"{\"Enable:eval\":\"false\",\"AdjustCommandHeight:eval\":\"false\",\"BgType:num\":\"0\",\"FontSize:num\":\"24\",\"VarList:arraynum\":\"[\\\"1\\\",\\\"2\\\"]\",\"WindowRect:func\":\"\\\"const rows = VisuMZ.MainMenuCore.Settings.Variable.VarList.length;\\\\nconst ww = this.mainCommandWidth();\\\\nconst wh = this.calcWindowHeight(rows, false);\\\\nconst wx = this.isRightInputMode() ? Graphics.boxWidth - ww : 0;\\\\nlet wy = this.mainAreaBottom() - wh;\\\\nif (this._goldWindow) wy -= this._goldWindow.height;\\\\nreturn new Rectangle(wx, wy, ww, wh);\\\"\"}","ParamBreak1":"----------------------------------","CommandWindowStyle:str":"default","CustomCmdWin:struct":"{\"Style:str\":\"auto\",\"TextAlign:str\":\"left\",\"Rows:num\":\"16\",\"Cols:num\":\"4\",\"MobileThickness:num\":\"5\"}","ParamBreak2":"----------------------------------","StatusGraphic:str":"face","StatusListStyle:str":"default","InnerMenuListStyle:str":"default","ListStyles:struct":"{\"DefaultStyle:func\":\"\\\"// Declare Constants\\\\nconst actor = arguments[0];\\\\nconst rect = arguments[1];\\\\n\\\\n// Draw Actor Graphic\\\\nconst gx = rect.x + (this.graphicType() === 'face' ? 1 : 0);\\\\nconst gy = rect.y + (this.graphicType() === 'face' ? 1 : 0);\\\\nconst gw = Math.min(rect.width, ImageManager.faceWidth);\\\\nconst gh = Math.min(rect.height, ImageManager.faceHeight);\\\\nthis.drawActorGraphic(actor, gx, gy, gw, gh);\\\\n\\\\n// Draw Status Stuff\\\\nconst sx = rect.x + 180;\\\\nconst sy = rect.y + rect.height / 2 - this.lineHeight() * 1.5;\\\\nconst lineHeight = this.lineHeight();\\\\nconst sx2 = sx + 180;\\\\nthis.drawActorName(actor, sx, sy);\\\\nthis.drawActorLevel(actor, sx, sy + lineHeight * 1);\\\\nthis.drawActorIcons(actor, sx, sy + lineHeight * 2);\\\\nthis.drawActorClass(actor, sx2, sy);\\\\n\\\\n// Place Gauges\\\\nconst sy2 = sy + lineHeight;\\\\nconst gaugeLineHeight = this.gaugeLineHeight();\\\\nthis.placeGauge(actor, \\\\\\\"hp\\\\\\\", sx2, sy2);\\\\nthis.placeGauge(actor, \\\\\\\"mp\\\\\\\", sx2, sy2 + gaugeLineHeight);\\\\nconst roomForTp = (sy2 + gaugeLineHeight * 3) <= rect.y + rect.height;\\\\nif ($dataSystem.optDisplayTp && roomForTp) {\\\\n this.placeGauge(actor, \\\\\\\"tp\\\\\\\", sx2, sy2 + gaugeLineHeight * 2);\\\\n}\\\\n\\\\n// Following Requires VisuStella MZ's Core Engine\\\\n// Draw Additional Parameter Data if Enough Room\\\\nconst sx3 = sx2 + 180;\\\\nconst sw = rect.width - sx3 - 2;\\\\nif (Imported.VisuMZ_0_CoreEngine && sw >= 300) {\\\\n const params = VisuMZ.CoreEngine.Settings.Param.DisplayedParams;\\\\n const pw = Math.floor(sw / 2) - 24;\\\\n let px = sx3;\\\\n let py = rect.y + Math.floor((rect.height - (Math.ceil(params.length / 2) * gaugeLineHeight)) / 2);\\\\n let counter = 0;\\\\n for (const param of params) {\\\\n this.resetFontSettings();\\\\n this.drawParamText(px, py, pw, param, true);\\\\n this.resetTextColor();\\\\n this.contents.fontSize -= 8;\\\\n const paramValue = actor.paramValueByName(param, true);\\\\n this.contents.drawText(paramValue, px, py, pw, gaugeLineHeight, 'right');\\\\n counter++;\\\\n if (counter % 2 === 0) {\\\\n px = sx3;\\\\n py += gaugeLineHeight;\\\\n } else {\\\\n px += pw + 24;\\\\n }\\\\n }\\\\n}\\\"\",\"VerticalStyle:func\":\"\\\"// Declare Constants\\\\nconst actor = arguments[0];\\\\nconst rect = arguments[1];\\\\n\\\\n\\\\nconst lineHeight = this.lineHeight();\\\\nconst gaugeLineHeight = this.gaugeLineHeight();\\\\nconst totalHeight = (lineHeight * 4.5) + (gaugeLineHeight * ($dataSystem.optDisplayTp ? 3 : 2));\\\\n\\\\n// Draw Actor Graphic\\\\nconst gw = rect.width;\\\\nconst gh = Math.min(rect.height, ImageManager.faceHeight);\\\\nconst gx = rect.x;\\\\nconst gy = Math.max(rect.y, rect.y + (rect.height - totalHeight - gh) / 2);\\\\nthis.drawActorGraphic(actor, gx, gy, gw, gh);\\\\n\\\\n// Draw Actor Name\\\\nlet sx = rect.x;\\\\nlet sy = Math.max(gy + gh, rect.y + (rect.height - totalHeight + gh) / 2);\\\\nlet sw = rect.width;\\\\nthis.drawText(actor.name(), sx, sy, sw, 'center');\\\\n\\\\n// Draw Actor Level\\\\nsx = rect.x + Math.round((rect.width - 128) / 2);\\\\nsy += lineHeight;\\\\nthis.drawActorLevel(actor, sx, sy);\\\\n\\\\n// Draw Actor Class\\\\nconst className = actor.currentClass().name;\\\\nsx = rect.x + Math.round((rect.width - this.textSizeEx(className).width) / 2);\\\\nsy += lineHeight;\\\\nthis.drawTextEx(className, sx, sy, sw);\\\\n\\\\n// Draw Actor Icons\\\\nsx = rect.x + Math.round((rect.width - 128) / 2);\\\\nsy += lineHeight;\\\\nthis.drawActorIcons(actor, sx, sy);\\\\n\\\\n// Draw Gauges\\\\nsx = rect.x + Math.round((rect.width - 128) / 2);\\\\nsy += lineHeight;\\\\nthis.placeGauge(actor, \\\\\\\"hp\\\\\\\", sx, sy);\\\\nsy += gaugeLineHeight;\\\\nthis.placeGauge(actor, \\\\\\\"mp\\\\\\\", sx, sy);\\\\nsy += gaugeLineHeight;\\\\nif ($dataSystem.optDisplayTp) {\\\\n this.placeGauge(actor, \\\\\\\"tp\\\\\\\", sx, sy);\\\\n}\\\"\",\"PortraitStyle:func\":\"\\\"// Declare Constants\\\\nconst actor = arguments[0];\\\\nconst rect = arguments[1];\\\\n\\\\n// Make Constants\\\\nconst lineHeight = this.lineHeight();\\\\nconst gaugeLineHeight = this.gaugeLineHeight();\\\\nconst totalHeight = (lineHeight * 4.5) + (gaugeLineHeight * ($dataSystem.optDisplayTp ? 3 : 2));\\\\n\\\\n// Draw Actor Graphic\\\\nconst gw = rect.width;\\\\nconst gh = rect.height;\\\\nconst gx = rect.x;\\\\nconst gy = rect.y;\\\\nthis.drawItemActorMenuImage(actor, gx, gy, gw, gh);\\\\n\\\\n// Draw Dark Rectangle\\\\nlet sx = rect.x;\\\\nlet sy = Math.max(rect.y, rect.y + (rect.height - totalHeight));\\\\nlet sw = rect.width;\\\\nlet sh = rect.y + rect.height - sy;\\\\nthis.contents.fillRect(sx+1, sy+lineHeight/2, sw-2, sh-1-lineHeight/2, ColorManager.dimColor1());\\\\nthis.contents.gradientFillRect(sx+1, sy-lineHeight/2, sw-2, lineHeight, ColorManager.dimColor2(), ColorManager.dimColor1(), true);\\\\n\\\\n// Draw Actor Name\\\\nthis.drawText(actor.name(), sx, sy, sw, 'center');\\\\n\\\\n// Draw Actor Level\\\\nsx = rect.x + Math.round((rect.width - 128) / 2);\\\\nsy += lineHeight;\\\\nthis.drawActorLevel(actor, sx, sy);\\\\n\\\\n// Draw Actor Class\\\\nconst className = actor.currentClass().name;\\\\nsx = rect.x + Math.round((rect.width - this.textSizeEx(className).width) / 2);\\\\nsy += lineHeight;\\\\nthis.drawTextEx(className, sx, sy, sw);\\\\n\\\\n// Draw Actor Icons\\\\nsx = rect.x + Math.round((rect.width - 128) / 2);\\\\nsy += lineHeight;\\\\nthis.drawActorIcons(actor, sx, sy);\\\\n\\\\n// Draw Gauges\\\\nsx = rect.x + Math.round((rect.width - 128) / 2);\\\\nsy += lineHeight;\\\\nthis.placeGauge(actor, \\\\\\\"hp\\\\\\\", sx, sy);\\\\nsy += gaugeLineHeight;\\\\nthis.placeGauge(actor, \\\\\\\"mp\\\\\\\", sx, sy);\\\\nsy += gaugeLineHeight;\\\\nif ($dataSystem.optDisplayTp) {\\\\n this.placeGauge(actor, \\\\\\\"tp\\\\\\\", sx, sy);\\\\n}\\\"\",\"SoloStyle:func\":\"\\\"// Declare Constants\\\\nconst actor = arguments[0];\\\\nconst rect = arguments[1];\\\\n\\\\n// Make Constants\\\\nconst lineHeight = this.lineHeight();\\\\nconst gaugeLineHeight = this.gaugeLineHeight();\\\\n\\\\n// Draw Actor Graphic\\\\nlet sx = rect.x;\\\\nlet sy = rect.y;\\\\nlet sw = rect.width;\\\\nlet sh = rect.height;\\\\n\\\\n// Portrait\\\\nif (actor.getMenuImage() !== '') {\\\\n this.drawItemActorMenuImage(actor, rect.x, rect.y, rect.width, rect.height);\\\\n\\\\n// Everything Else\\\\n} else {\\\\n const gx = Math.max(0, rect.x + Math.floor(((rect.width / 2) - ImageManager.faceWidth) / 2));\\\\n const gy = Math.max(0, rect.y + rect.height - Math.ceil(lineHeight * 4.5) - ImageManager.faceHeight);\\\\n this.drawActorGraphic(actor, gx, gy, ImageManager.faceWidth, ImageManager.faceHeight);\\\\n}\\\\n\\\\n// Draw Dark Rectangle\\\\nsh = Math.ceil(lineHeight * 4.5);\\\\nsy = rect.y + rect.height - sh;\\\\nthis.contents.fillRect(sx+1, sy+lineHeight/2, sw-2, sh-1-lineHeight/2, ColorManager.dimColor1());\\\\nthis.contents.gradientFillRect(sx+1, sy-lineHeight/2, sw-2, lineHeight, ColorManager.dimColor2(), ColorManager.dimColor1(), true);\\\\n\\\\n// Draw Actor Name\\\\nsw = Math.round(rect.width / 2);\\\\nthis.drawText(actor.name(), sx, sy, sw, 'center');\\\\n\\\\n// Draw Actor Level\\\\nsx = Math.max(0, rect.x + Math.floor(((rect.width / 2) - 128) / 2));\\\\nsy += lineHeight;\\\\nthis.drawActorLevel(actor, sx, sy);\\\\n\\\\n// Draw Actor Class\\\\nconst className = actor.currentClass().name;\\\\nsx = rect.x + Math.round(((rect.width / 2) - this.textSizeEx(className).width) / 2);\\\\nsy += lineHeight;\\\\nthis.drawTextEx(className, sx, sy, sw);\\\\n\\\\n// Draw Actor Icons\\\\nsx = rect.x + Math.round(((rect.width / 2) - 128) / 2);\\\\nsy += lineHeight;\\\\nthis.drawActorIcons(actor, sx, sy);\\\\n\\\\n// Prepare Stat Coordinates\\\\nsx = rect.x + Math.floor(rect.width / 2);\\\\nsw = rect.width / 2;\\\\nsh = rect.height;\\\\nconst sx3 = sx;\\\\nconst cw = rect.width - sx3 - 2;\\\\n\\\\n// Prepare Total Content Height to vertically center the content.\\\\nlet totalHeight = gaugeLineHeight * ($dataSystem.optDisplayTp ? 3 : 2);\\\\nif (Imported.VisuMZ_0_CoreEngine && cw >= 300) {\\\\n const params = VisuMZ.CoreEngine.Settings.Param.DisplayedParams;\\\\n totalHeight += lineHeight;\\\\n totalHeight += Math.ceil(params.length / 2) * gaugeLineHeight;\\\\n}\\\\nconst equips = actor.equips();\\\\ntotalHeight += lineHeight;\\\\ntotalHeight += equips.length * lineHeight;\\\\nsy = Math.max(rect.y, rect.y + Math.floor((rect.height - totalHeight) / 2));\\\\n\\\\n// Place Gauges\\\\nthis.placeGauge(actor, \\\\\\\"hp\\\\\\\", sx, sy);\\\\nsy += gaugeLineHeight;\\\\nthis.placeGauge(actor, \\\\\\\"mp\\\\\\\", sx, sy);\\\\nif ($dataSystem.optDisplayTp) {\\\\n sy += gaugeLineHeight;\\\\n this.placeGauge(actor, \\\\\\\"tp\\\\\\\", sx, sy);\\\\n sy += gaugeLineHeight;\\\\n}\\\\nlet ny = sy;\\\\n\\\\n// Following Requires VisuStella MZ's Core Engine\\\\n// Draw Additional Parameter Data if Enough Room\\\\nif (Imported.VisuMZ_0_CoreEngine && cw >= 300) {\\\\n const params = VisuMZ.CoreEngine.Settings.Param.DisplayedParams;\\\\n sy += lineHeight;\\\\n const pw = Math.floor(cw / 2) - 24;\\\\n let px = sx3;\\\\n let counter = 0;\\\\n for (const param of params) {\\\\n this.resetFontSettings();\\\\n this.drawParamText(px, sy, pw, param, true);\\\\n this.resetTextColor();\\\\n this.contents.fontSize -= 8;\\\\n const paramValue = actor.paramValueByName(param, true);\\\\n this.contents.drawText(paramValue, px, sy, pw, gaugeLineHeight, 'right');\\\\n counter++;\\\\n if (counter % 2 === 0) {\\\\n px = sx3;\\\\n sy += gaugeLineHeight;\\\\n } else {\\\\n px += pw + 24;\\\\n }\\\\n }\\\\n ny += lineHeight;\\\\n ny += Math.ceil(params.length / 2) * gaugeLineHeight;\\\\n}\\\\n\\\\n// Draw Actor Equipment\\\\nthis.resetFontSettings();\\\\nsx = rect.x + Math.floor(rect.width / 2);\\\\nsy = ny + lineHeight;\\\\nsw = rect.width / 2;\\\\nfor (const equip of equips) {\\\\n if (equip) {\\\\n this.drawItemName(equip, sx, sy, sw);\\\\n sy += lineHeight;\\\\n if (sy + lineHeight > rect.y + rect.height) return;\\\\n }\\\\n}\\\"\",\"ThinStyle:func\":\"\\\"// Declare Constants\\\\nconst actor = arguments[0];\\\\nconst rect = arguments[1];\\\\n\\\\n// Draw Actor Graphic\\\\nconst gx = rect.x + (this.graphicType() === 'face' ? 1 : 0);\\\\nconst gy = rect.y + (this.graphicType() === 'face' ? 1 : 0);\\\\nconst gw = Math.min(rect.width, ImageManager.faceWidth);\\\\nconst gh = Math.min(rect.height, ImageManager.faceHeight);\\\\nthis.drawActorGraphic(actor, gx, gy, gw, gh);\\\\n\\\\n// Draw Status Stuff\\\\nconst lineHeight = this.lineHeight();\\\\nlet sx = rect.x + 160;\\\\nlet sy = rect.y + ((rect.height - lineHeight) / 2) - 2;\\\\n\\\\n// Draw Actor Data\\\\nthis.drawActorName(actor, sx, sy);\\\\nthis.drawActorLevel(actor, gx+8, rect.y + rect.height - lineHeight +1);\\\\n\\\\n// Place Gauges\\\\nsx += 180;\\\\nsy += (lineHeight - this.gaugeLineHeight()) / 2;\\\\nthis.placeGauge(actor, \\\\\\\"hp\\\\\\\", sx, sy);\\\\nsx += 140;\\\\nif ((sx + 128) > rect.x + rect.width) return;\\\\nthis.placeGauge(actor, \\\\\\\"mp\\\\\\\", sx, sy);\\\\nsx += 140;\\\\nif ((sx + 128) > rect.x + rect.width) return;\\\\nif ($dataSystem.optDisplayTp) this.placeGauge(actor, \\\\\\\"tp\\\\\\\", sx, sy);\\\"\",\"ThickerStyle:func\":\"\\\"// Declare Constants\\\\nconst actor = arguments[0];\\\\nconst rect = arguments[1];\\\\n\\\\n// Draw Actor Graphic\\\\nconst gx = rect.x + (this.graphicType() === 'face' ? 1 : 0);\\\\nconst gy = rect.y + (this.graphicType() === 'face' ? 1 : 0);\\\\nconst gw = Math.min(rect.width, ImageManager.faceWidth);\\\\nconst gh = Math.min(rect.height, ImageManager.faceHeight);\\\\nthis.drawActorGraphic(actor, gx, gy, gw, gh);\\\\n\\\\n// Draw Status Stuff\\\\nconst lineHeight = this.lineHeight();\\\\nconst gaugeLineHeight = this.gaugeLineHeight();\\\\nlet sx = rect.x + 160;\\\\nlet sy = rect.y + ((rect.height - (lineHeight * 2)) / 2) - 2;\\\\n\\\\n// Draw Actor Data\\\\nthis.drawActorLevel(actor, gx+8, rect.y + rect.height - lineHeight +1);\\\\nthis.drawActorName(actor, sx, sy);\\\\nthis.drawActorClass(actor, sx, sy + lineHeight);\\\\n//this.drawActorLevel(actor, sx, sy + lineHeight);\\\\n\\\\n// Place Gauges\\\\nsx += 180;\\\\nsy = rect.y + ((rect.height - (gaugeLineHeight * ($dataSystem.optDisplayTp ? 3 : 2))) / 2) - 2;\\\\nthis.placeGauge(actor, \\\\\\\"hp\\\\\\\", sx, sy);\\\\nthis.placeGauge(actor, \\\\\\\"mp\\\\\\\", sx, sy + gaugeLineHeight);\\\\nif ($dataSystem.optDisplayTp) this.placeGauge(actor, \\\\\\\"tp\\\\\\\", sx, sy + (gaugeLineHeight * 2));\\\\nsx += 160;\\\\n\\\\n// Following Requires VisuStella MZ's Core Engine\\\\n// Draw Additional Parameter Data if Enough Room\\\\nconst sx3 = sx;\\\\nconst sw = rect.width - sx3 - 2;\\\\nif (Imported.VisuMZ_0_CoreEngine && sw >= 300) {\\\\n const params = VisuMZ.CoreEngine.Settings.Param.DisplayedParams;\\\\n const pw = Math.floor(sw / 2) - 24;\\\\n sy = rect.y + ((rect.height - (gaugeLineHeight * Math.ceil(params.length / 2))) / 2) - 2;\\\\n let px = sx3;\\\\n let py = rect.y + Math.floor((rect.height - (Math.ceil(params.length / 2) * gaugeLineHeight)) / 2);\\\\n let counter = 0;\\\\n for (const param of params) {\\\\n this.resetFontSettings();\\\\n this.drawParamText(px, py, pw, param, true);\\\\n this.resetTextColor();\\\\n this.contents.fontSize -= 8;\\\\n const paramValue = actor.paramValueByName(param, true);\\\\n this.contents.drawText(paramValue, px, py, pw, gaugeLineHeight, 'right');\\\\n counter++;\\\\n if (counter % 2 === 0) {\\\\n px = sx3;\\\\n py += gaugeLineHeight;\\\\n } else {\\\\n px += pw + 24;\\\\n }\\\\n }\\\\n}\\\"\"}","BreakEnd1":"----------------------------------","End Of":"Plugin Parameters","BreakEnd2":"----------------------------------"}},
- {"name":"VisuMZ_1_BattleCore","status":true,"description":"[RPG Maker MZ] [Tier 1] [Version 1.80] [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\":\"150\",\"NewPopupBottom:eval\":\"true\",\"PopupPosition:str\":\"center\",\"EndBattlePopups:eval\":\"true\",\"PopupOffsetX:num\":\"0\",\"PopupOffsetY:num\":\"0\",\"PopupShiftX:num\":\"0\",\"PopupShiftY:num\":\"-32\",\"hpDamageFmt:str\":\"-%1\",\"hpHealingFmt:str\":\"+%1\",\"mpDamageFmt:str\":\"-%1 %2\",\"mpHealingFmt:str\":\"+%1 %2\",\"CriticalColor:eval\":\"[255, 0, 0, 255]\",\"CriticalDuration:num\":\"120\",\"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\":\"true\",\"SyncBuffExpire:eval\":\"true\",\"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\":\"10\",\"DefeatEvent:num\":\"70\",\"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\\\"\",\"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\":\"default\",\"ListStyle\":\"\",\"ShowFacesListStyle:eval\":\"true\",\"CommandWidth:num\":\"192\",\"XPStyle\":\"\",\"XPActorCommandLines:num\":\"4\",\"XPActorDefaultHeight:num\":\"64\",\"XPSpriteYLocation:str\":\"name\",\"PotraitStyle\":\"\",\"ShowPortraits:eval\":\"true\",\"PortraitScale:num\":\"0.25\",\"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\":\"true\",\"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\":\"8\",\"MessageWait:num\":\"60\",\"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\":\"true\",\"ActionSkillMsg1:eval\":\"true\",\"ActionSkillMsg2:eval\":\"true\",\"ActionItemMsg:eval\":\"true\",\"ActionChanges\":\"\",\"ShowCounter:eval\":\"false\",\"ShowReflect:eval\":\"false\",\"ShowSubstitute:eval\":\"false\",\"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\"}","BattlebackScale:struct":"{\"DefaultStyle:str\":\"1:1\",\"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;\\\"\",\"jsScaleUp: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\":\"true\",\"CmdIconAutoBattle:num\":\"78\",\"CmdTextAutoBattle:str\":\"Auto\",\"CommandAddOptions:eval\":\"true\",\"CmdIconOptions:num\":\"83\",\"ActiveTpbOptionsMessage:str\":\"Options Menu queued after action is complete.\",\"CmdIconEscape:num\":\"82\",\"Access\":\"\",\"SkipPartyCmd:eval\":\"true\",\"DisablePartyCmd:eval\":\"true\",\"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\\\",\\\"guard\\\"]\",\"ShowCosts:eval\":\"false\",\"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.\"}","MultiTarget:struct":"{\"Properties\":\"\",\"WindowWidth:num\":\"280\",\"BgType:num\":\"2\",\"ShowButton:eval\":\"true\",\"Vocab\":\"\",\"AllActorsText:str\":\"All Allies\",\"AllEnemiesText:str\":\"All Enemies\",\"Offsets\":\"\",\"ActorOffsets\":\"\",\"ActorOffsetX:num\":\"+0\",\"ActorOffsetY:num\":\"+0\",\"EnemyOffsets\":\"\",\"EnemyOffsetX:num\":\"+0\",\"EnemyOffsetY:num\":\"+0\"}","VisualBreak":"----------------------------------","Actor:struct":"{\"Flinch\":\"\",\"FlinchDistanceX:num\":\"12\",\"FlinchDistanceY:num\":\"0\",\"FlinchDuration:num\":\"6\",\"ShakeFlinch:eval\":\"false\",\"ShakeFlinchDuration:num\":\"24\",\"ShakeFlinchPower:num\":\"48\",\"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\":\"false\",\"SelectWindow\":\"\",\"LastSelected:eval\":\"true\",\"FrontViewSelect:eval\":\"false\",\"SideviewSelect:eval\":\"true\",\"Name\":\"\",\"NameLegacy:eval\":\"false\",\"NameFontSize:num\":\"22\",\"NamePosition\":\"\",\"NameOffsetX:num\":\"0\",\"NameOffsetY:num\":\"-235\",\"NameAttachStateIcon:eval\":\"true\",\"AttachStateOffsetX:num\":\"-39\",\"AttachStateOffsetY:num\":\"-30\",\"NameVisibility\":\"\",\"NameAlwaysHidden:eval\":\"false\",\"NameAlwaysVisible:eval\":\"true\",\"NameAlwaysSelectOnly:eval\":\"false\",\"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\":\"false\",\"ShowEnemyGauge:eval\":\"true\",\"RequiresDefeat:eval\":\"false\",\"BTestBypass:eval\":\"true\",\"Settings\":\"\",\"AniDuration:num\":\"20\",\"AnchorX:num\":\"0.5\",\"AnchorY:num\":\"1.0\",\"Scale:num\":\"0.5\",\"OffsetX:num\":\"0\",\"OffsetY:num\":\"3\",\"Options\":\"\",\"AddHpGaugeOption:eval\":\"false\",\"AdjustRect:eval\":\"true\",\"Name:str\":\"Show HP Gauge\"}","ActionSequence:struct":"{\"AutoSequences\":\"\",\"AutoMeleeSolo:eval\":\"true\",\"AutoMeleeAoE:eval\":\"true\",\"QoL\":\"\",\"AutoNotetag:eval\":\"false\",\"CastAnimations\":\"\",\"CastCertain:num\":\"52\",\"CastPhysical:num\":\"91\",\"CastMagical:num\":\"0\",\"CounterReflection\":\"\",\"CounterPlayback:eval\":\"false\",\"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_MessageCore","status":true,"description":"[RPG Maker MZ] [Tier 1] [Version 1.47] [MessageCore]","parameters":{"BreakHead":"----------------------------------","MessageCore":"Plugin Parameters","ATTENTION":"READ THE HELP FILE","BreakSettings":"----------------------------------","General:struct":"{\"MessageWindow\":\"\",\"MessageRows:num\":\"4\",\"MessageWidth:num\":\"816\",\"FastForwardKey:str\":\"pagedown\",\"MessageTextDelay:num\":\"0\",\"MsgWindowOffsetX:num\":\"+0\",\"MsgWindowOffsetY:num\":\"+0\",\"StretchDimmedBg:eval\":\"true\",\"DefaultOutlineWidth:num\":\"5\",\"EachMessageStart:json\":\"\\\"\\\"\",\"EachMessageEnd:json\":\"\\\"\\\"\",\"NameBoxWindow\":\"\",\"NameBoxWindowDefaultColor:num\":\"0\",\"NameBoxWindowOffsetX:num\":\"0\",\"NameBoxWindowOffsetY:num\":\"0\",\"ChoiceListWindow\":\"\",\"ChoiceWindowLineHeight:num\":\"36\",\"ChoiceWindowMinWidth:num\":\"96\",\"ChoiceWindowMaxRows:num\":\"8\",\"ChoiceWindowMaxCols:num\":\"1\",\"ChoiceWindowTextAlign:str\":\"default\",\"DefaultTextCodes\":\"\",\"RelativePXPY:eval\":\"true\",\"FontBiggerCap:eval\":\"108\",\"FontSmallerCap:eval\":\"12\",\"FontChangeValue:eval\":\"12\"}","AutoColor:struct":"{\"DatabaseHighlighting\":\"\",\"Actors:str\":\"0\",\"Classes:str\":\"0\",\"Skills:str\":\"0\",\"Items:str\":\"0\",\"Weapons:str\":\"0\",\"Armors:str\":\"0\",\"Enemies:str\":\"0\",\"States:str\":\"0\",\"WordHighlighting\":\"\",\"TextColor1:arraystr\":\"[]\",\"TextColor2:arraystr\":\"[]\",\"TextColor3:arraystr\":\"[]\",\"TextColor4:arraystr\":\"[]\",\"TextColor5:arraystr\":\"[]\",\"TextColor6:arraystr\":\"[]\",\"TextColor7:arraystr\":\"[]\",\"TextColor8:arraystr\":\"[]\",\"TextColor9:arraystr\":\"[]\",\"TextColor10:arraystr\":\"[]\",\"TextColor11:arraystr\":\"[]\",\"TextColor12:arraystr\":\"[]\",\"TextColor13:arraystr\":\"[]\",\"TextColor14:arraystr\":\"[]\",\"TextColor15:arraystr\":\"[]\",\"TextColor16:arraystr\":\"[]\",\"TextColor17:arraystr\":\"[]\",\"TextColor18:arraystr\":\"[]\",\"TextColor19:arraystr\":\"[]\",\"TextColor20:arraystr\":\"[]\",\"TextColor21:arraystr\":\"[]\",\"TextColor22:arraystr\":\"[]\",\"TextColor23:arraystr\":\"[]\",\"TextColor24:arraystr\":\"[]\",\"TextColor25:arraystr\":\"[]\",\"TextColor26:arraystr\":\"[]\",\"TextColor27:arraystr\":\"[]\",\"TextColor28:arraystr\":\"[]\",\"TextColor29:arraystr\":\"[]\",\"TextColor30:arraystr\":\"[]\",\"TextColor31:arraystr\":\"[]\"}","CustomFonts:arraystruct":"[\"{\\\"FontFamily:str\\\":\\\"mplus-2p\\\",\\\"Filename:str\\\":\\\"mplus-2p-bold-sub.woff\\\"}\"]","TextCodeActions:arraystruct":"[\"{\\\"Match:str\\\":\\\"ChangeFace\\\",\\\"Type:str\\\":\\\"\\\\\\\\<(.*?)\\\\\\\\>\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nconst data = this.obtainEscapeString(textState).split(',');\\\\\\\\nif (textState.drawing) {\\\\\\\\n const filename = data[0].trim();\\\\\\\\n const index = parseInt(data[1] || '0');\\\\\\\\n $gameMessage.setFaceImage(filename, index);\\\\\\\\n this.loadMessageFace();\\\\\\\\n const rtl = $gameMessage.isRTL();\\\\\\\\n const width = ImageManager.faceWidth;\\\\\\\\n const height = this.innerHeight;\\\\\\\\n const x = rtl ? this.innerWidth - width - 4 : 4;\\\\\\\\n this.contents.clearRect(x, 0, width, height);\\\\\\\\n this._faceBitmap.addLoadListener(this.drawMessageFace.bind(this));\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"FaceIndex\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nconst index = this.obtainEscapeParam(textState);\\\\\\\\nif (textState.drawing) {\\\\\\\\n const filename = $gameMessage.faceName();\\\\\\\\n $gameMessage.setFaceImage(filename, index);\\\\\\\\n this.loadMessageFace();\\\\\\\\n const rtl = $gameMessage.isRTL();\\\\\\\\n const width = ImageManager.faceWidth;\\\\\\\\n const height = this.innerHeight;\\\\\\\\n const x = rtl ? this.innerWidth - width - 4 : 4;\\\\\\\\n this.contents.clearRect(x, 0, width, height);\\\\\\\\n this._faceBitmap.addLoadListener(this.drawMessageFace.bind(this));\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"TextDelay\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nconst delay = this.obtainEscapeParam(textState);\\\\\\\\nif (textState.drawing && this.constructor === Window_Message) {\\\\\\\\n this.setTextDelay(delay);\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"NormalBG\\\",\\\"Type:str\\\":\\\"\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nif (textState.drawing) {\\\\\\\\n this.setBackgroundType(0);\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"DimBG\\\",\\\"Type:str\\\":\\\"\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nif (textState.drawing) {\\\\\\\\n this.setBackgroundType(1);\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"TransparentBG\\\",\\\"Type:str\\\":\\\"\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nif (textState.drawing) {\\\\\\\\n this.setBackgroundType(2);\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"FontChange\\\",\\\"Type:str\\\":\\\"\\\\\\\\<(.*?)\\\\\\\\>\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nconst fontName = this.obtainEscapeString(textState);\\\\\\\\nthis.contents.fontFace = fontName;\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"ResetFont\\\",\\\"Type:str\\\":\\\"\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"this.resetFontSettings();\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"ResetColor\\\",\\\"Type:str\\\":\\\"\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"this.resetTextColor();\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"HexColor\\\",\\\"Type:str\\\":\\\"\\\\\\\\<(.*?)\\\\\\\\>\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nconst hexColor = this.obtainEscapeString(textState);\\\\\\\\nif (!this.isColorLocked() && textState.drawing) {\\\\\\\\n this.changeTextColor(hexColor);\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"OutlineColor\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nconst colorIndex = this.obtainEscapeParam(textState);\\\\\\\\nif (!this.isColorLocked() && textState.drawing) {\\\\\\\\n this.changeOutlineColor(ColorManager.textColor(colorIndex));\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"OutlineHexColor\\\",\\\"Type:str\\\":\\\"\\\\\\\\<(.*?)\\\\\\\\>\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nconst hexColor = this.obtainEscapeString(textState);\\\\\\\\nif (!this.isColorLocked() && textState.drawing) {\\\\\\\\n this.changeOutlineColor(hexColor);\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"OutlineWidth\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nconst width = this.obtainEscapeParam(textState);\\\\\\\\nif (textState.drawing) {\\\\\\\\n this.contents.outlineWidth = width;\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"WindowMoveTo\\\",\\\"Type:str\\\":\\\"\\\\\\\\<(.*?)\\\\\\\\>\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nconst data = this.obtainEscapeString(textState).split(',');\\\\\\\\nif (textState.drawing) {\\\\\\\\n const x = !!data[0] ? Number(data[0].trim()) : this.x;\\\\\\\\n const y = !!data[1] ? Number(data[1].trim()) : this.y;\\\\\\\\n const width = !!data[2] ? Number(data[2].trim()) : this.width;\\\\\\\\n const height = !!data[3] ? Number(data[3].trim()) : this.height;\\\\\\\\n const duration = !!data[4] ? Number(data[4].trim()) : 20;\\\\\\\\n const easingType = !!data[5] ? data[5].trim() : 0;\\\\\\\\n this.moveTo(x, y, width, height, duration, easingType);\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"WindowMoveBy\\\",\\\"Type:str\\\":\\\"\\\\\\\\<(.*?)\\\\\\\\>\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nconst data = this.obtainEscapeString(textState).split(',');\\\\\\\\nif (textState.drawing) {\\\\\\\\n const x = !!data[0] ? Number(data[0].trim()) : 0;\\\\\\\\n const y = !!data[1] ? Number(data[1].trim()) : 0;\\\\\\\\n const width = !!data[2] ? Number(data[2].trim()) : 0;\\\\\\\\n const height = !!data[3] ? Number(data[3].trim()) : 0;\\\\\\\\n const duration = !!data[4] ? Number(data[4].trim()) : 20;\\\\\\\\n const easingType = !!data[5] ? data[5].trim() : 0;\\\\\\\\n this.moveBy(x, y, width, height, duration, easingType);\\\\\\\\n}\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"WindowReset\\\",\\\"Type:str\\\":\\\"\\\",\\\"CommonEvent:num\\\":\\\"0\\\",\\\"ActionJS:func\\\":\\\"\\\\\\\"const textState = arguments[0];\\\\\\\\nif (textState.drawing) {\\\\\\\\n const frames = 20;\\\\\\\\n const easingType = 0;\\\\\\\\n this.resetRect(frames, easingType);\\\\\\\\n}\\\\\\\"\\\"}\"]","TextCodeReplace:arraystruct":"[\"{\\\"Match:str\\\":\\\"ActorFace\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const actorId = parseInt(arguments[1]);\\\\\\\\nconst actor = $gameActors.actor(actorId);\\\\\\\\nif (this.constructor === Window_Message && actor) {\\\\\\\\n $gameMessage.setFaceImage(\\\\\\\\n actor.faceName(),\\\\\\\\n actor.faceIndex()\\\\\\\\n );\\\\\\\\n}\\\\\\\\nreturn '';\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"PartyFace\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const index = parseInt(arguments[1]) - 1;\\\\\\\\nconst actor = $gameParty.members()[index];\\\\\\\\nif (this.constructor === Window_Message && actor) {\\\\\\\\n $gameMessage.setFaceImage(\\\\\\\\n actor.faceName(),\\\\\\\\n actor.faceIndex()\\\\\\\\n );\\\\\\\\n}\\\\\\\\nreturn '';\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"Class\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataClasses;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = true;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"ClassIcon\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataClasses;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst obj = database[id];\\\\\\\\nconst icon = obj ? (obj.iconIndex || 0) : 0;\\\\\\\\nreturn icon ? '\\\\\\\\\\\\\\\\x1bI[%1]'.format(icon) : '';\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"ClassName\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataClasses;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = false;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"Skill\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataSkills;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = true;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"SkillIcon\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataSkills;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst obj = database[id];\\\\\\\\nconst icon = obj ? (obj.iconIndex || 0) : 0;\\\\\\\\nreturn icon ? '\\\\\\\\\\\\\\\\x1bI[%1]'.format(icon) : '';\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"SkillName\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataSkills;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = false;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"Item\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataItems;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = true;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"ItemIcon\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataItems;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst obj = database[id];\\\\\\\\nconst icon = obj ? (obj.iconIndex || 0) : 0;\\\\\\\\nreturn icon ? '\\\\\\\\\\\\\\\\x1bI[%1]'.format(icon) : '';\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"ItemName\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataItems;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = false;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"ItemQuantity\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataItems;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nreturn $gameParty.numItems(database[id]);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"Weapon\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataWeapons;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = true;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"WeaponIcon\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataWeapons;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst obj = database[id];\\\\\\\\nconst icon = obj ? (obj.iconIndex || 0) : 0;\\\\\\\\nreturn icon ? '\\\\\\\\\\\\\\\\x1bI[%1]'.format(icon) : '';\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"WeaponName\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataWeapons;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = false;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"WeaponQuantity\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataWeapons;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nreturn $gameParty.numItems(database[id]);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"Armor\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataArmors;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = true;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"ArmorIcon\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataArmors;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst obj = database[id];\\\\\\\\nconst icon = obj ? (obj.iconIndex || 0) : 0;\\\\\\\\nreturn icon ? '\\\\\\\\\\\\\\\\x1bI[%1]'.format(icon) : '';\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"ArmorName\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataArmors;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = false;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"ArmorQuantity\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataArmors;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nreturn $gameParty.numItems(database[id]);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"State\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataStates;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = true;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"StateIcon\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataStates;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst obj = database[id];\\\\\\\\nconst icon = obj ? (obj.iconIndex || 0) : 0;\\\\\\\\nreturn icon ? '\\\\\\\\\\\\\\\\x1bI[%1]'.format(icon) : '';\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"StateName\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataStates;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = false;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"LastGainObj\\\",\\\"Type:str\\\":\\\"\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const icon = true;\\\\\\\\nreturn this.lastGainedObjectName(icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"LastGainObjIcon\\\",\\\"Type:str\\\":\\\"\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return this.lastGainedObjectIcon();\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"LastGainObjName\\\",\\\"Type:str\\\":\\\"\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const icon = false;\\\\\\\\nreturn this.lastGainedObjectName(icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"LastGainObjQuantity\\\",\\\"Type:str\\\":\\\"\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return this.lastGainedObjectQuantity();\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"Enemy\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataEnemies;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = true;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"EnemyName\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataEnemies;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = false;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"Troop\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataTroops;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = true;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"TroopName\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"const database = $dataTroops;\\\\\\\\nconst id = parseInt(arguments[1]);\\\\\\\\nconst icon = false;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"TroopMember\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"if (!$gameParty.inBattle()) return \\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\";\\\\\\\\nconst index = (parseInt(arguments[1]) - 1) || 0;\\\\\\\\nconst member = $gameTroop.members()[index];\\\\\\\\nconst database = $dataEnemies;\\\\\\\\nconst id = member ? member.enemyId() : 0;\\\\\\\\nconst icon = true;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"TroopMemberName\\\",\\\"Type:str\\\":\\\"\\\\\\\\[(\\\\\\\\d+)\\\\\\\\]\\\",\\\"TextStr:str\\\":\\\"Undefined\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"if (!$gameParty.inBattle()) return \\\\\\\\\\\\\\\"\\\\\\\\\\\\\\\";\\\\\\\\nconst index = (parseInt(arguments[1]) - 1) || 0;\\\\\\\\nconst member = $gameTroop.members()[index];\\\\\\\\nconst database = $dataEnemies;\\\\\\\\nconst id = member ? member.enemyId() : 0;\\\\\\\\nconst icon = false;\\\\\\\\nreturn this.databaseObjectName(database, id, icon);\\\\\\\"\\\"}\"]","TextMacros:arraystruct":"[\"{\\\"Match:str\\\":\\\"Example Macro\\\",\\\"TextStr:str\\\":\\\"This is the text that will be displayed when you type [Example Macro].\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return 'Text';\\\\\\\"\\\"}\",\"{\\\"Match:str\\\":\\\"Leader\\\",\\\"TextStr:str\\\":\\\"\\\\\\\\P[1]\\\",\\\"TextJS:func\\\":\\\"\\\\\\\"return 'Text';\\\\\\\"\\\"}\"]","Localization:struct":"{\"Main\":\"\",\"Enable:eval\":\"false\",\"CsvFilename:str\":\"Languages.csv\",\"Options\":\"\",\"AddOption:eval\":\"true\",\"AdjustRect:eval\":\"true\",\"Name:str\":\"Text Language\",\"Localized\":\"\",\"DefaultLocale:str\":\"English\",\"Languages:arraystr\":\"[\\\"Bengali\\\",\\\"Chinese(Simplified)\\\",\\\"Chinese(Traditional)\\\",\\\"Czech\\\",\\\"Danish\\\",\\\"Dutch\\\",\\\"English\\\",\\\"Finnish\\\",\\\"French\\\",\\\"German\\\",\\\"Greek\\\",\\\"Hindi\\\",\\\"Hungarian\\\",\\\"Indonesian\\\",\\\"Italian\\\",\\\"Japanese\\\",\\\"Korean\\\",\\\"Norwegian\\\",\\\"Polish\\\",\\\"Portuguese\\\",\\\"Romanian\\\",\\\"Russian\\\",\\\"Slovak\\\",\\\"Spanish\\\",\\\"Swedish\\\",\\\"Tamil\\\",\\\"Thai\\\",\\\"Turkish\\\"]\",\"LangNames\":\"\",\"Bengali:str\":\"বাংলা\",\"Chinese(Simplified):str\":\"简体中文\",\"Chinese(Traditional):str\":\"繁體中文\",\"Czech:str\":\"Čeština\",\"Danish:str\":\"Dansk\",\"Dutch:str\":\"Nederlands\",\"English:str\":\"English\",\"Finnish:str\":\"Suomi\",\"French:str\":\"Français\",\"German:str\":\"Deutsch\",\"Greek:str\":\"Ελληνικά\",\"Hindi:str\":\"हिन्दी\",\"Hungarian:str\":\"Magyar\",\"Indonesian:str\":\"Bahasa Indo\",\"Italian:str\":\"Italiano\",\"Japanese:str\":\"日本語\",\"Korean:str\":\"한국어\",\"Norwegian:str\":\"Norsk\",\"Polish:str\":\"Polski\",\"Portuguese:str\":\"Português\",\"Romanian:str\":\"Română\",\"Russian:str\":\"Русский\",\"Slovak:str\":\"Slovenčina\",\"Spanish:str\":\"Español\",\"Swedish:str\":\"Svenska\",\"Tamil:str\":\"தமிழ்\",\"Thai:str\":\"ไทย\",\"Turkish:str\":\"Türkçe\"}","TextSpeed:struct":"{\"AddOption:eval\":\"false\",\"AdjustRect:eval\":\"false\",\"Name:str\":\"Text Speed\",\"Default:num\":\"10\",\"Instant:str\":\"Instant\"}","WordWrap:struct":"{\"EnableWordWrap\":\"\",\"MessageWindow:eval\":\"false\",\"HelpWindow:eval\":\"false\",\"Rules\":\"\",\"LineBreakSpace:eval\":\"true\",\"TightWrap:eval\":\"false\",\"EndPadding:num\":\"0\"}","BreakEnd1":"----------------------------------","End Of":"Plugin Parameters","BreakEnd2":"----------------------------------"}},
- {"name":"VisuMZ_1_ItemsEquipsCore","status":true,"description":"[RPG Maker MZ] [Tier 1] [Version 1.51] [ItemsEquipsCore]","parameters":{"BreakHead":"----------------------------------","ItemsEquipsCore":"Plugin Parameters","ATTENTION":"READ THE HELP FILE","BreakSettings":"----------------------------------","ItemScene:struct":"{\"General\":\"\",\"EnableLayout:eval\":\"false\",\"LayoutStyle:str\":\"upper/left\",\"ListWindow\":\"\",\"ListWindowCols:num\":\"1\",\"ItemQt\":\"\",\"MaxItems:num\":\"99\",\"MaxWeapons:num\":\"99\",\"MaxArmors:num\":\"99\",\"ItemQuantityFmt:str\":\"×%1\",\"ItemQuantityFontSize:num\":\"22\",\"ShopStatusWindow\":\"\",\"ShowShopStatus:eval\":\"false\",\"ItemSceneAdjustItemList:eval\":\"true\",\"ItemMenuStatusBgType:num\":\"0\",\"ItemMenuStatusRect:func\":\"\\\"const width = this.statusWidth();\\\\nconst height = this._itemWindow.height;\\\\nconst x = Graphics.boxWidth - width;\\\\nconst y = this._itemWindow.y;\\\\nreturn new Rectangle(x, y, width, height);\\\"\",\"ButtonAssist\":\"\",\"buttonAssistCategory:str\":\"Switch Category\"}","Categories:struct":"{\"MainList\":\"\",\"List:arraystruct\":\"[\\\"{\\\\\\\"Type:str\\\\\\\":\\\\\\\"EType:5\\\\\\\",\\\\\\\"Icon:num\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"SwitchID:num\\\\\\\":\\\\\\\"0\\\\\\\"}\\\",\\\"{\\\\\\\"Type:str\\\\\\\":\\\\\\\"EType:4\\\\\\\",\\\\\\\"Icon:num\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"SwitchID:num\\\\\\\":\\\\\\\"0\\\\\\\"}\\\",\\\"{\\\\\\\"Type:str\\\\\\\":\\\\\\\"KeyItems\\\\\\\",\\\\\\\"Icon:num\\\\\\\":\\\\\\\"0\\\\\\\",\\\\\\\"SwitchID:num\\\\\\\":\\\\\\\"0\\\\\\\"}\\\"]\",\"Style:str\":\"text\",\"TextAlign:str\":\"center\",\"Vocabulary\":\"\",\"HiddenItemA:str\":\"Special Items\",\"HiddenItemB:str\":\"Unique Items\",\"Consumable:str\":\"Consumable\",\"Nonconsumable:str\":\"Nonconsumable\",\"AlwaysUsable:str\":\"Usable\",\"BattleUsable:str\":\"Battle\",\"FieldUsable:str\":\"Field\",\"NeverUsable:str\":\"Materials\"}","New:struct":"{\"Enable:eval\":\"true\",\"Icon:num\":\"0\",\"Text:str\":\"NEW!\",\"FontColor:str\":\"17\",\"FontFace:str\":\"Verdana\",\"FontSize:str\":\"16\",\"FadeLimit:num\":\"360\",\"FadeSpeed:num\":\"4\",\"OffsetX:num\":\"0\",\"OffsetY:num\":\"4\"}","EquipScene:struct":"{\"General\":\"\",\"EnableLayout:eval\":\"false\",\"ParamValueFontSize:num\":\"22\",\"MenuPortraits:eval\":\"true\",\"DrawPortraitJS:func\":\"\\\"// Declare Variables\\\\nconst lineHeight = this.lineHeight();\\\\nconst padding = this.itemPadding();\\\\nconst x1 = padding;\\\\nconst x2 = this.innerWidth - 128 - padding;\\\\n\\\\n// Draw Menu Image\\\\nthis.drawItemActorMenuImage(this._actor, 0, 0, this.innerWidth, this.innerHeight);\\\\n\\\\n// Draw Data\\\\nthis.drawActorName(this._actor, x1, lineHeight * 0);\\\\nthis.drawActorClass(this._actor, x1, lineHeight * 1);\\\\nthis.drawActorIcons(this._actor, x1, lineHeight * 2);\\\\nthis.drawActorLevel(this._actor, x2, lineHeight * 0);\\\\nthis.placeBasicGauges(this._actor, x2, lineHeight * 1);\\\"\",\"DrawFaceJS:func\":\"\\\"// Declare Variables\\\\nconst lineHeight = this.lineHeight();\\\\nconst gaugeLineHeight = this.gaugeLineHeight();\\\\nconst x = Math.floor(this.innerWidth / 2);\\\\nconst limitHeight = this.innerHeight - (this.actorParams().length * lineHeight);\\\\nconst actorX = Math.floor((x - ImageManager.faceWidth) / 2);\\\\nconst actorY = Math.max(0, Math.floor((limitHeight - ImageManager.faceHeight) / 2));\\\\nlet dataHeight = lineHeight * 3;\\\\ndataHeight += gaugeLineHeight * ($dataSystem.optDisplayTp ? 3 : 2);\\\\nconst dataY = Math.max(0, Math.floor((limitHeight - dataHeight) / 2));\\\\n\\\\n// Draw Data\\\\nthis.drawActorFace(this._actor, actorX, actorY, ImageManager.faceWidth, ImageManager.faceHeight);\\\\nthis.drawActorIcons(this._actor, actorX + 16, actorY + ImageManager.faceHeight - lineHeight);\\\\nthis.drawActorName(this._actor, x, dataY + lineHeight * 0);\\\\nthis.drawActorLevel(this._actor, x, dataY + lineHeight * 1);\\\\nthis.drawActorClass(this._actor, x, dataY + lineHeight * 2);\\\\nthis.placeBasicGauges(this._actor, x, dataY + lineHeight * 3);\\\"\",\"DrawParamJS:func\":\"\\\"// Declare variables\\\\nconst params = this.actorParams();\\\\nconst lineHeight = this.lineHeight();\\\\nconst padding = this.itemPadding();\\\\nconst baseX = 0;\\\\nconst baseY = this.innerHeight - params.length * lineHeight;\\\\nconst baseWidth = this.innerWidth;\\\\nconst valueFontSize = this.paramValueFontSize();\\\\n\\\\n// Calculate Widths\\\\nlet paramNameWidth = Math.max(...params.map(param => this.textWidth(TextManager.param(param))));\\\\nparamNameWidth += padding * 2;\\\\nif (this.isUseParamNamesWithIcons()) {\\\\n paramNameWidth += ImageManager.iconWidth + 4;\\\\n}\\\\nlet arrowWidth = this.rightArrowWidth();\\\\nconst totalDivides = this.innerWidth >= 500 ? 3 : 2;\\\\nlet paramValueWidth = Math.floor((baseWidth - paramNameWidth - arrowWidth) / totalDivides);\\\\nparamNameWidth = baseWidth - (paramValueWidth * totalDivides) - arrowWidth;\\\\n\\\\n// Draw Parameters\\\\nlet x = baseX;\\\\nlet y = baseY;\\\\nlet value = 0;\\\\nlet diffValue = 0;\\\\nlet alter = 2;\\\\nfor (const paramId of params) {\\\\n // Draw Param Name\\\\n this.drawItemDarkRect(x, y, paramNameWidth, lineHeight, alter);\\\\n this.drawUpdatedParamName(paramId, x, y, paramNameWidth);\\\\n this.resetFontSettings();\\\\n x += paramNameWidth;\\\\n\\\\n // Draw Param Before\\\\n this.contents.fontSize = valueFontSize;\\\\n this.drawItemDarkRect(x, y, paramValueWidth, lineHeight, alter);\\\\n this.drawUpdatedBeforeParamValue(paramId, x, y, paramValueWidth);\\\\n this.resetFontSettings();\\\\n x += paramValueWidth;\\\\n\\\\n // Draw Arrow\\\\n this.drawItemDarkRect(x, y, arrowWidth, lineHeight, alter);\\\\n this.drawRightArrow(x, y);\\\\n x += arrowWidth;\\\\n\\\\n // Draw Param After\\\\n this.contents.fontSize = valueFontSize;\\\\n this.drawItemDarkRect(x, y, paramValueWidth, lineHeight, alter);\\\\n this.drawUpdatedAfterParamValue(paramId, x, y, paramValueWidth);\\\\n x += paramValueWidth;\\\\n\\\\n // Draw Param Change\\\\n if (totalDivides > 2) {\\\\n this.drawItemDarkRect(x, y, paramValueWidth, lineHeight, alter);\\\\n this.drawUpdatedParamValueDiff(paramId, x, y, paramValueWidth);\\\\n }\\\\n\\\\n // Prepare Next Parameter\\\\n x = baseX;\\\\n y += lineHeight;\\\\n alter = alter === 2 ? 1 : 2;\\\\n}\\\"\",\"LayoutStyle:str\":\"upper/right\",\"StatusWindowWidth:num\":\"312\",\"DrawBackRect:eval\":\"true\",\"BackRectColor:str\":\"19\",\"CursedTextPopup:json\":\"\\\"%1 is cursed by %3%2!\\\"\",\"Command\":\"\",\"CmdStyle:str\":\"auto\",\"CmdTextAlign:str\":\"center\",\"CmdIconEquip:num\":\"0\",\"equipCmdDesc:json\":\"\\\"Pick and choose gear to change.\\\"\",\"CommandAddOptimize:eval\":\"true\",\"optimizeCmdDesc:json\":\"\\\"Equip the strongest available gear.\\\"\",\"CmdIconOptimize:num\":\"0\",\"CommandAddClear:eval\":\"true\",\"clearCmdDesc:json\":\"\\\"Remove all available gear.\\\"\",\"CmdIconClear:num\":\"0\",\"RemoveEquip\":\"\",\"RemoveEquipIcon:num\":\"0\",\"RemoveEquipText:str\":\"Remove\",\"ShiftShortcutKey:eval\":\"true\",\"Rulings\":\"\",\"EquipAdjustHpMp:eval\":\"true\",\"NonRemoveETypes:arraynum\":\"[]\",\"NonOptimizeETypes:arraynum\":\"[]\",\"ButtonAssist\":\"\",\"buttonAssistRemove:str\":\"Unequip\"}","ShopScene:struct":"{\"General\":\"\",\"EnableLayout:eval\":\"true\",\"LayoutStyle:str\":\"upper/left\",\"Switches\":\"\",\"SwitchBuy:num\":\"0\",\"SwitchSell:num\":\"0\",\"Command\":\"\",\"CmdHideDisabled:eval\":\"true\",\"CmdStyle:str\":\"text\",\"CmdTextAlign:str\":\"center\",\"CmdIconBuy:num\":\"208\",\"CmdIconSell:num\":\"314\",\"CmdIconCancel:num\":\"82\",\"CmdCancelRename:str\":\"Cancel\",\"Prices\":\"\",\"SellPriceRate:num\":\"0.25\",\"BuyPriceJS:func\":\"\\\"// Declare variables\\\\nlet item = arguments[0];\\\\nlet price = arguments[1];\\\\n\\\\n// Return the finalized price\\\\nreturn price;\\\"\",\"SellPriceJS:func\":\"\\\"// Declare variables\\\\nlet item = arguments[0];\\\\nlet price = arguments[1];\\\\n\\\\n// Return the finalized price\\\\nreturn price;\\\"\",\"ButtonAssist\":\"\",\"buttonAssistSmallIncrement:str\":\"-1/+1\",\"buttonAssistLargeIncrement:str\":\"-10/+10\"}","StatusWindow:struct":"{\"General\":\"\",\"Width:num\":\"352\",\"ParamChangeFontSize:num\":\"22\",\"Translucent:num\":\"64\",\"DrawBackRect:eval\":\"true\",\"BackRectColor:str\":\"19\",\"EquipData\":\"\",\"AlreadyEquipMarker:str\":\"E\",\"CannotEquipMarker:str\":\"-\",\"EquipDelayMS:num\":\"240\",\"NoChangeMarker:str\":\"-\",\"DrawEquipData:func\":\"\\\"// Set Variables\\\\nconst lineHeight = this.lineHeight();\\\\nconst paramheight = this.gaugeLineHeight() + 8;\\\\nlet x = 0;\\\\nlet y = 0;\\\\nlet width = this.innerWidth;\\\\nlet height = this.innerHeight;\\\\nlet hw = Math.floor(width / 2);\\\\nlet hx = x + width - hw;\\\\n\\\\n// Draw Item Name, Type, and Quantity\\\\nthis.drawItemName(this._item, x + this.itemPadding(), y, width - this.itemPadding() * 2);\\\\nthis.drawItemDarkRect(x, y, width);\\\\ny += lineHeight;\\\\nif (this.drawItemEquipType(x, y, hw)) y += 0;\\\\nif (this.drawItemQuantity(hx, y, hw)) y += lineHeight;\\\\n\\\\n// Draw Parameter Names\\\\nconst params = this.actorParams();\\\\nconst backY = y;\\\\ny = height - (params.length * paramheight) - 4;\\\\nlet paramX = x;\\\\nlet paramWidth = 0;\\\\nlet tableY = y;\\\\nfor (const paramId of params) {\\\\n paramWidth = Math.max(this.drawParamName(paramId, x + 4, y + 4, width), paramWidth);\\\\n y += paramheight;\\\\n}\\\\n\\\\n// Draw Actor Data\\\\nconst actorMax = $gameParty.maxBattleMembers();\\\\nconst actorWidth = Math.floor((width - paramWidth) / actorMax);\\\\nparamWidth = width - (actorWidth * actorMax);\\\\nfor (const actor of $gameParty.battleMembers()) {\\\\n const index = $gameParty.battleMembers().indexOf(actor);\\\\n const actorX = paramX + paramWidth + (index * actorWidth);\\\\n this.changePaintOpacity(actor.canEquip(this._item));\\\\n this.drawActorCharacter(actor, actorX + (actorWidth / 2), tableY);\\\\n let actorY = tableY;\\\\n\\\\n // Draw Parameter Changes\\\\n for (const paramId of params) {\\\\n const diffY = actorY - ((lineHeight - paramheight) / 2);\\\\n this.drawActorParamDifference(actor, paramId, actorX, diffY, actorWidth);\\\\n actorY += paramheight;\\\\n }\\\\n}\\\\n\\\\n// Draw Back Rectangles\\\\nthis.drawItemDarkRect(paramX, backY, paramWidth, tableY - backY);\\\\nfor (let i = 0; i < actorMax; i++) {\\\\n const actorX = paramX + paramWidth + (i * actorWidth);\\\\n this.drawItemDarkRect(actorX, backY, actorWidth, tableY - backY);\\\\n}\\\\nfor (const paramId of params) {\\\\n this.drawItemDarkRect(paramX, tableY, paramWidth, paramheight);\\\\n for (let i = 0; i < actorMax; i++) {\\\\n const actorX = paramX + paramWidth + (i * actorWidth);\\\\n this.drawItemDarkRect(actorX, tableY, actorWidth, paramheight);\\\\n }\\\\n tableY += paramheight;\\\\n}\\\"\",\"ItemData\":\"\",\"ItemGeneral\":\"\",\"MaxIcons:num\":\"8\",\"MultiplierStandard:num\":\"1000000\",\"DrawItemData:func\":\"\\\"const lineHeight = this.lineHeight();\\\\nlet x = 0;\\\\nlet y = 0;\\\\nlet width = this.innerWidth;\\\\nlet height = this.innerHeight;\\\\nlet hw = Math.floor(width / 2);\\\\nlet hx = x + width - hw;\\\\n\\\\n// Draw Item Name and Quantity\\\\nthis.drawItemName(this._item, x + this.itemPadding(), y, width - this.itemPadding() * 2);\\\\nthis.drawItemDarkRect(x, y, width);\\\\ny += lineHeight;\\\\n\\\\n// Draw Main Item Properties\\\\n// if (this.drawItemConsumable(x, y, hw)) y += 0;\\\\n// if (this.drawItemQuantity(hx, y, hw)) y += lineHeight;\\\\n// if (this._item.occasion < 3) {\\\\n// y = this.drawItemDamage(x, y, width);\\\\n// y = this.drawItemEffects(x, y, width);\\\\n// }\\\\n// y = this.drawItemCustomEntries(x, y, width);\\\\n\\\\n// Draw Remaining Item Properties\\\\n// if (this._item.occasion < 3) {\\\\n// if (this.drawItemOccasion(x, y, hw)) y += 0;\\\\n// if (this.drawItemScope(hx, y, hw)) y += lineHeight;\\\\n// if (this.drawItemHitType(x, y, hw)) y += 0;\\\\n// if (this.drawItemSuccessRate(hx, y, hw)) y += lineHeight;\\\\n// if (this.drawItemSpeed(x, y, hw)) y += 0;\\\\n// if (this.drawItemRepeats(hx, y, hw)) y += lineHeight;\\\\n//}\\\\n\\\\n// Fill Rest of the Window\\\\nthis.drawItemDarkRect(x, y, width, height - y);\\\"\",\"Vocabulary\":\"\",\"LabelConsume:str\":\"\",\"Consumable:str\":\"\",\"NotConsumable:str\":\"\",\"Occasions\":\"\",\"Occasion0:str\":\"Anytime Use\",\"Occasion1:str\":\"Battle-Only\",\"Occasion2:str\":\"Field-Only\",\"Occasion3:str\":\"\",\"Scope\":\"\",\"Scope0:str\":\"No Target\",\"Scope1:str\":\"1 Foe\",\"Scope2:str\":\"All Foes\",\"Scope3:str\":\"Random Foe\",\"Scope4:str\":\"2 Random Foes\",\"Scope5:str\":\"3 Random Foes\",\"Scope6:str\":\"4 Random Foes\",\"Scope7:str\":\"1 Ally\",\"Scope8:str\":\"Alive Allies\",\"Scope9:str\":\"Dead Ally\",\"Scope10:str\":\"Dead Allies\",\"Scope11:str\":\"User\",\"Scope12:str\":\"Any Ally\",\"Scope13:str\":\"All Allies\",\"Scope14:str\":\"Everybody\",\"BattleCore\":\"\",\"ScopeRandomAny:str\":\"%1 Random Units\",\"ScopeRandomEnemies:str\":\"%1 Random Foes\",\"ScopeRandomAllies:str\":\"%1 Random Allies\",\"ScopeAlliesButUser:str\":\"Other Allies\",\"ScopeAllyOrEnemy:str\":\"Ally/Enemy\",\"ScopeEnemyOrAlly:str\":\"Enemy/Ally\",\"LabelSpeed:str\":\"Speed\",\"Speed2000:str\":\"Fastest\",\"Speed1000:str\":\"Faster\",\"Speed1:str\":\"Fast\",\"Speed0:str\":\"Normal\",\"SpeedNeg999:str\":\"Slow\",\"SpeedNeg1999:str\":\"Slower\",\"SpeedNeg2000:str\":\"Slowest\",\"LabelSuccessRate:str\":\"Accuracy\",\"LabelRepeats:str\":\"Hits\",\"LabelHitType:str\":\"Type\",\"HitType0:str\":\"Neutral\",\"HitType1:str\":\"Physical\",\"HitType2:str\":\"Magical\",\"LabelElement:str\":\"Element\",\"ElementWeapon:str\":\"\\\\I[97]Weapon\",\"ElementNone:str\":\"\\\\I[160]No Element\",\"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\",\"Effects\":\"\",\"LabelRecoverHP:str\":\"%1 Recovery\",\"LabelRecoverMP:str\":\"%1 Recovery\",\"LabelRecoverTP:str\":\"%1 Recovery\",\"LabelSelfGainTP:str\":\"User %1\",\"LabelDamageHP:str\":\"%1 Damage\",\"LabelDamageMP:str\":\"%1 Damage\",\"LabelDamageTP:str\":\"%1 Damage\",\"LabelApply:str\":\"Applies\",\"LabelRemove:str\":\"Removes\"}","BreakEnd1":"----------------------------------","End Of":"Plugin Parameters","BreakEnd2":"----------------------------------"}},
- {"name":"NoShopStatWindow","status":true,"description":"","parameters":{}},
- {"name":"VisuMZ_1_SkillsStatesCore","status":true,"description":"[RPG Maker MZ] [Tier 1] [Version 1.43] [SkillsStatesCore]","parameters":{"BreakHead":"----------------------------------","SkillsStatesCore":"Plugin Parameters","ATTENTION":"READ THE HELP FILE","BreakSettings":"----------------------------------","Skills:struct":"{\"General\":\"\",\"EnableLayout:eval\":\"false\",\"LayoutStyle:str\":\"upper/left\",\"SkillTypeWindow\":\"\",\"CmdStyle:str\":\"auto\",\"CmdTextAlign:str\":\"left\",\"CmdWidth:num\":\"240\",\"ListWindow\":\"\",\"ListWindowCols:num\":\"1\",\"ShopStatusWindow\":\"\",\"ShowShopStatus:eval\":\"false\",\"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\",\"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\",\"TurnEndOnMap:num\":\"20\",\"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\\\\n// APH added this. It immediately remove state (15)\\\\n// HP Regen the party is not in battle. This prevents\\\\n// certain skills from applying the state outside of\\\\n// battle.\\\\nif (!$gameParty.inBattle()) {\\\\n target.removeState(15);\\\\n}\\\"\",\"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\":\"1\",\"StackDebuffMax:num\":\"1\",\"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.20;\\\\n\\\\n// Return Rate\\\\nreturn Math.max(0, rate);\\\"\",\"Turns\":\"\",\"ShowTurns:eval\":\"true\",\"TurnFontSize:num\":\"16\",\"TurnOffsetX:num\":\"0\",\"TurnOffsetY:num\":\"-10\",\"ColorBuff:str\":\"#00ff00\",\"ColorDebuff:str\":\"#ff0000\",\"Data\":\"\",\"ShowData:eval\":\"false\",\"DataFontSize:num\":\"12\",\"DataOffsetX:num\":\"0\",\"DataOffsetY:num\":\"25\",\"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// APH added this. It immediately removes a buff if the\\\\n// party is not in battle. This prevents the Growth Ray\\\\n// skill from buffing outside of battle.\\\\nif (!$gameParty.inBattle()) {\\\\n target.removeBuff(paramId);\\\\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\":\"[]\",\"Cache\":\"\",\"RefreshCacheSwitch:eval\":\"false\",\"RefreshCacheVar:eval\":\"false\",\"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_3_VisualStateEffect","status":true,"description":"[RPG Maker MZ] [Tier 3] [Version 1.24] [VisualStateEffects]","parameters":{"BreakHead":"----------------------------------","VisualStateEffects":"Plugin Parameters","ATTENTION":"READ THE HELP FILE","BreakSettings":"----------------------------------","General:struct":"{\"Actors\":\"\",\"ActorOverlay:eval\":\"false\",\"ActorStateIcon:eval\":\"false\",\"Enemies\":\"\",\"EnemyOverlay:eval\":\"false\",\"EnemyStateIcon:eval\":\"false\"}","BuffDebuff:struct":"{\"ShowPopups:eval\":\"true\",\"BuffPopupFmt:str\":\"%1▲\",\"BuffTextColor:str\":\"#00ff00\",\"BuffFlashColor:eval\":\"[0, 255, 0, 160]\",\"BuffFlashDuration:num\":\"60\",\"DebuffPopupFmt:str\":\"%1▼\",\"DebuffTextColor:str\":\"#ff0000\",\"DebuffFlashColor:eval\":\"[255, 0, 0, 160]\",\"DebuffFlashDuration:num\":\"60\",\"ShowAnimations:eval\":\"false\",\"AnimationMirror:eval\":\"false\",\"AnimationMute:eval\":\"false\",\"BuffAnimations\":\"\",\"Buff0Animation:num\":\"52\",\"Buff1Animation:num\":\"53\",\"Buff2Animation:num\":\"0\",\"Buff3Animation:num\":\"0\",\"Buff4Animation:num\":\"53\",\"Buff5Animation:num\":\"53\",\"Buff6Animation:num\":\"51\",\"Buff7Animation:num\":\"51\",\"DebuffAnimations\":\"\",\"Debuff0Animation:num\":\"55\",\"Debuff1Animation:num\":\"56\",\"Debuff2Animation:num\":\"0\",\"Debuff3Animation:num\":\"0\",\"Debuff4Animation:num\":\"56\",\"Debuff5Animation:num\":\"56\",\"Debuff6Animation:num\":\"54\",\"Debuff7Animation:num\":\"54\"}","State:struct":"{\"ShowPopups:eval\":\"true\",\"AllowDupes:eval\":\"false\",\"BattleEndPopup:eval\":\"false\",\"AddPopupFmt:str\":\"+%1\",\"ErasePopupFmt:str\":\"-%1\",\"TextColor:str\":\"#ffea00\",\"MatchTurnCountColor:eval\":\"false\",\"FlashColor:eval\":\"[0, 0, 0, 0]\",\"FlashDuration:num\":\"60\",\"StateAnimations\":\"\",\"AddEraseAnimations\":\"\",\"AnimationMirror:eval\":\"false\",\"AnimationMute:eval\":\"false\",\"RepeatingAnimations\":\"\",\"CycleTime:num\":\"300\",\"RepeatMirror:eval\":\"false\",\"RepeatMute:eval\":\"true\"}","CounterPopup:struct":"{\"Counter\":\"\",\"CounterPopupText:str\":\"COUNTER!\",\"CounterIcon:num\":\"0\",\"CounterTextColor:str\":\"0\",\"CounterFlashColor:eval\":\"[255, 255, 255, 160]\",\"CounterFlashDuration:num\":\"60\",\"Reflect\":\"\",\"ReflectPopupText:str\":\"REFLECT!\",\"ReflectIcon:num\":\"0\",\"ReflectTextColor:str\":\"0\",\"ReflectFlashColor:eval\":\"[255, 255, 255, 160]\",\"ReflectFlashDuration:num\":\"60\",\"Sub\":\"\",\"SubPopupText:str\":\"COVER!\",\"SubIcon:num\":\"0\",\"SubTextColor:str\":\"0\",\"SubFlashColor:eval\":\"[255, 255, 255, 160]\",\"SubFlashDuration:num\":\"60\"}","BreakEnd1":"----------------------------------","End Of":"Plugin Parameters","BreakEnd2":"----------------------------------"}},
- {"name":"VisuMZ_4_WeaknessPopups","status":true,"description":"[RPG Maker MZ] [Tier 4] [Version 1.10] [WeaknessPopups]","parameters":{"BreakHead":"----------------------------------","WeaknessPopups":"Plugin Parameters","ATTENTION":"READ THE HELP FILE","BreakSettings":"----------------------------------","Critical":"","Critical:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"AnimationID:num\":\"0\",\"AniMirror:eval\":\"false\",\"AniMute:eval\":\"false\",\"Render\":\"\",\"text:str\":\"CRITICAL!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"mplus-2p\",\"fontSize:num\":\"32\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#ffffff\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetXvariance:num\":\"0\",\"offsetY:num\":\"30\",\"offsetYvariance:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"10\",\"startScaleX:num\":\"1.5\",\"startScaleY:num\":\"1.5\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"0.0\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"90\",\"fadeDuration:num\":\"1\"}","CritStackOffsetX:num":"+32","CritStackOffsetY:num":"-32","Element":"","Element200:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"WEAKNESS!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"48\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#ed1c24\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1.0)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.05\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","Element175:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"WEAKNESS!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"46\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#ed1c24\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1.0)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.05\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","Element150:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"WEAKNESS!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"44\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#ed1c24\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1.0)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.05\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","Element125:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"WEAKNESS!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"42\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#ed1c24\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1.0)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.05\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","Element110:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"WEAKNESS!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"40\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#ed1c24\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1.0)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.05\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","Element105:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"WEAKNESS!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"38\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#ed1c24\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1.0)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.05\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","Element101:struct":"{\"General\":\"\",\"enabled:eval\":\"false\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"DISABLED\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"48\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"2\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.10\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","Element99:struct":"{\"General\":\"\",\"enabled:eval\":\"false\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"DISABLED\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"48\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"2\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.10\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","Element95:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"RESIST!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"38\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#82ca9c\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1.0)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.05\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","Element90:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"RESIST!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"40\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#82ca9c\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1.0)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.05\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","Element75:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"RESIST!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"42\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#82ca9c\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1.0)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.05\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","Element50:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"RESIST!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"44\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#82ca9c\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1.0)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.05\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","Element25:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"RESIST!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"46\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#82ca9c\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1.0)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.05\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","Element0:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"AnimationID:num\":\"0\",\"AniMirror:eval\":\"false\",\"AniMute:eval\":\"false\",\"Render\":\"\",\"text:str\":\"IMMUNE!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"mplus-2p\",\"fontSize:num\":\"32\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#ffffff\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1.0)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetXvariance:num\":\"0\",\"offsetY:num\":\"-30\",\"offsetYvariance:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"10\",\"startScaleX:num\":\"1.5\",\"startScaleY:num\":\"1.5\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.05\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"90\",\"fadeDuration:num\":\"1\"}","ElementNegative:struct":"{\"General\":\"\",\"enabled:eval\":\"true\",\"Image\":\"\",\"filename:str\":\"\",\"Render\":\"\",\"text:str\":\"ABSORB!\",\"bitmapWidth:num\":\"600\",\"bitmapHeight:num\":\"200\",\"fontFace:str\":\"Impact\",\"fontSize:num\":\"48\",\"fontBold:eval\":\"true\",\"fontItalic:eval\":\"false\",\"textColor:str\":\"#bd8cbf\",\"outlineSize:num\":\"5\",\"outlineColor:str\":\"rgba(0, 0, 0, 1.0)\",\"Offset\":\"\",\"offsetX:num\":\"0\",\"offsetY:num\":\"0\",\"Scale\":\"\",\"scaleDuration:num\":\"20\",\"startScaleX:num\":\"2.0\",\"startScaleY:num\":\"2.0\",\"targetScaleX:num\":\"1.0\",\"targetScaleY:num\":\"1.0\",\"Acceleration\":\"\",\"startSpeedX:num\":\"0\",\"startSpeedY:num\":\"0\",\"deltaSpeedX:num\":\"-0.05\",\"deltaSpeedY:num\":\"0\",\"Fading\":\"\",\"opaqueDuration:num\":\"40\",\"fadeDuration:num\":\"20\"}","BreakEnd1":"----------------------------------","End Of":"Plugin Parameters","BreakEnd2":"----------------------------------"}},
- {"name":"VisuMZ_4_BattleCursor","status":true,"description":"[RPG Maker MZ] [Tier 4] [Version 1.04] [BattleCursor]","parameters":{"BreakHead":"----------------------------------","BattleCursor":"Plugin Parameters","ATTENTION":"READ THE HELP FILE","BreakSettings":"----------------------------------","ActorCursor:struct":"{\"type:str\":\"system\",\"iconIndex:num\":\"112\",\"pictureFilename:str\":\"\",\"systemFilename:str\":\"\",\"frameDelay:num\":\"8\",\"Anchor\":\"\",\"anchorX:str\":\"center\",\"anchorY:str\":\"middle\",\"Position\":\"\",\"positionX:str\":\"center\",\"positionY:str\":\"middle\",\"Offset\":\"\",\"offsetX:num\":\"+0\",\"offsetY:num\":\"+0\",\"Wave\":\"\",\"waveType:str\":\"none\",\"waveSpeed:num\":\"0.05\",\"waveDistance:num\":\"10\"}","EnemyCursor:struct":"{\"type:str\":\"system\",\"iconIndex:num\":\"112\",\"pictureFilename:str\":\"\",\"systemFilename:str\":\"BattleCursor-Enemy\",\"frameDelay:num\":\"8\",\"Anchor\":\"\",\"anchorX:str\":\"center\",\"anchorY:str\":\"middle\",\"Position\":\"\",\"positionX:str\":\"center\",\"positionY:str\":\"middle\",\"Offset\":\"\",\"offsetX:num\":\"+0\",\"offsetY:num\":\"+0\",\"Wave\":\"\",\"waveType:str\":\"none\",\"waveSpeed:num\":\"0.05\",\"waveDistance:num\":\"10\"}","BreakEnd1":"----------------------------------","End Of":"Plugin Parameters","BreakEnd2":"----------------------------------"}},
- {"name":"battle_speed_option","status":true,"description":"Adds a Battle Speed option to control message wait and animation speed with exceptions for specific animations. Menu shows Normal / Fast.","parameters":{"defaultSpeed":"normal"}},
- {"name":"optionmenu_fullscreen","status":true,"description":"Adds a fullscreen option to the Options window.","parameters":{"Option name":"Fullscreen"}},
- {"name":"skillmenu_skipselect","status":true,"description":"","parameters":{}},
- {"name":"critical_hit_sound","status":true,"description":"","parameters":{}},
- {"name":"default_volumes_touchUI","status":true,"description":"","parameters":{}},
- {"name":"MGC_GameOverCommonEvent","status":true,"description":"Game Over Common Event [Version 1.0]","parameters":{"commonEvent":"70"}},
- {"name":"TY_AdjustVolume","status":true,"description":"v1.0 Adjust Volume","parameters":{"Adjust Volume":"10"}},
- {"name":"wasdKeyMZ","status":true,"description":"It is a plugin that corresponds to the wasd move.","parameters":{}},
- {"name":"TAA_MapTitleScreen","status":true,"description":"[1.2.2] Use a map in your title screen","parameters":{"---Main Configs---":"","Enabled by Default":"true","Title Configs":"[\"{\\\"Map ID\\\":\\\"104\\\",\\\"Camera\\\":\\\"Static\\\",\\\"Static Camera X\\\":\\\"0\\\",\\\"Static Camera Y\\\":\\\"0\\\",\\\"Event ID to Follow\\\":\\\"1\\\"}\"]","Default Title":"1","Skip Title Default":"Skip to new game","Skip Title Option Menu":"false","Skip Title Texts":"{\"Menu Text\":\"Skip Title To\",\"Do Not Skip\":\"Load Title\",\"Skip to New Game\":\"New Game\",\"Skip to Latest Save\":\"Latest Save\"}","---Game Title---":"","Custom Title Enabled":"false","Replace Default Title":"","Title Type":"Text","Enable Title FadeOut":"true","Title X Position":"20","Title Y Position":"Graphics.height / 4","---Text Configs---":"","Outline Color":"#000000","Outline Width":"8","Text Color":"#ffffff","Font Size":"72","Font Face":"GameFont","Text Alignment":"center","---Image Config---":"","Title Image":"","---Title Commands---":"","Enable Window Params":"true","Window Orientation":"Vertical","Commands X Position":"(Graphics.boxWidth - this.width) / 2","Commands Y Position":"Graphics.boxHeight - this.height - 96","Commands Width":"240","Commands Height":"this.fittingHeight(this.numVisibleRows())","Max Columns":"3","Item Text Align":"center","Window Skin":"Window"}},
- {"name":"key_item_quantity","status":true,"description":"Show quantity for key items in VisuStella item menu","parameters":{}},
- {"name":"alphabetical_item_sort","status":true,"description":"Sorts all inventory items alphabetically (Items, Weapons, Armors, Key Items).","parameters":{}},
- {"name":"MouseIdleHide","status":true,"description":"Hides the mouse cursor after inactivity and disables mouse hover selection. v1.0","parameters":{"IdleTime":"3"}},
- {"name":"options_menu_reorder","status":true,"description":"Fully control the order of all Options menu items, including custom ones like Battle Speed, Fullscreen, and Touch UI.","parameters":{}},
- {"name":"map_key_tab","status":true,"description":"Runs Common Event 63 when Tab is pressed.","parameters":{}},
- {"name":"encounter_minimum_steps","status":true,"description":"Minimum Step Encounter (per-map encounter rate, preserves average) – Prevents encounters below a minimum while keeping mean at the map's encounter rate.","parameters":{"Minimum Steps":"20"}},
- {"name":"SteamLink","status":false,"description":"Link Rpg maker MZ with Steam!","parameters":{}},
- {"name":"SteamLinkCommandsAddon","status":false,"description":"SteamLink Commands Addon","parameters":{"trueVariable":""}},
- {"name":"LoopDialogue","status":true,"description":"Fixes random dialogue loop.","parameters":{}}
- ];