Guest User

Untitled

a guest
Apr 11th, 2025
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 431.40 KB | Source Code | 0 0
  1. /*!/*:
  2. @target MZ
  3. @plugindesc ARPG_Core v1.6.3
  4. @author unagi ootoro
  5.  
  6. @help
  7. 【Summary】
  8. This plug-in provides the ability to convert an RPG Maker MZ system into an ARPG.
  9.  
  10. ■ Features
  11. This plug-in provides the functions necessary for action RPGs, such as player and enemy status management, hit detection settings, and attack processing settings.
  12.  
  13. All damaging objects (sword slashes, bullets, etc.) are realized by dynamically setting events.
  14. This makes the plug-in highly customizable.
  15.  
  16. Common events can also be used to create processing when a character takes damage.
  17. For example, in the sample game, when a character takes damage, the character is knocked back in the direction of the damage.
  18. This is achieved by executing a plug-in command for blowing up the character from the common event.
  19. This functionality can be used to implement a combo-like system where, for example, a character is only blown away if he is hit by a series of attacks.
  20.  
  21. In addition, since this plug-in is built on top of the dot movement plug-in, any character movement can be controlled in dot units, making it possible to create very action-oriented games.
  22. For example, by calculating the angle between the enemy character and the player and sending bullets in that direction, it is possible to create an attack that pursues the player.
  23.  
  24. ■ Required Plug-ins
  25. The following plug-ins are required to install this plug-in.
  26.  
  27. Dot Move System (DotMoveSystem.js)
  28. DotMoveSystem.js is used to control characters in dot units.
  29.  
  30. Dot Movement System Function Extension (DotMoveSystem_FunctionEx.js)
  31. This plug-in adds various extended functions to the main body of the dot movement system.
  32.  
  33. Self Variable (SelfVariable.js)
  34. This plug-in provides self-variables, extended self-switches, and common event variables/switches.
  35. The ARPG core may automatically set various in-game flags as self-variables to events (e.g., ID of the user who used a skill), so this is used for this purpose.
  36.  
  37. Please install this plug-in, including these dependent plug-ins, in the following order.
  38. ・DotMoveSystem.js
  39. ・DotMoveSystem_FunctionEx.js
  40. ・SelfVariable.js
  41. ・ARPG_Core.js
  42.  
  43.  
  44. 【 Details of Functions】
  45. [General]
  46. ■ Starting and stopping ARPG mode
  47. If set to ON in the "ARPG mode switching" plug-in command, ARPG mode is started.
  48. When set to OFF, ARPG mode is terminated.
  49. Once in ARPG mode, you can fight with enemies in the field.
  50. Whether the current ARPG mode is ON or not can be checked by the switch set in the plug-in parameter "ARPG Mode Switch".
  51. The current ARPG mode can be checked by the switch set in the plugin parameter "ARPG Mode Switch".
  52.  
  53. Note 1: If the player moves to another map, ARPG mode will automatically switch to OFF.
  54. Note 2: Changing the ARPG mode switch has no effect.
  55. ARPG mode must be switched by this command.
  56. Note 3: Saving is not possible during ARPG combat.
  57.  
  58. [Copy Events/Dynamic Events]
  59. ■ Copying Events
  60. The following description in the Note field of an event will copy the specified event from the list of dynamic event copy source maps specified in the plugin parameters.
  61. The specified event is copied from the list of dynamic event copy source maps.
  62. <cp: Copy source event name or event ID>.
  63.  
  64. It is also possible to limit the copy source map by describing as follows
  65. <cp: copy source map ID, copy source event name or event ID>.
  66.  
  67. Note: All the IDs of the source map are plugin parameters.
  68.        The ID of the map to be copied must be set in the "Copy Event Common Settings/List of Dynamic Event Generator Map IDs.
  69.  
  70. ■ Dynamic Event Generation
  71. Events can be generated dynamically by executing the "Dynamic Event Generation" plug-in command.
  72. The event from which the dynamic event is copied must be placed on the map registered in the plugin parameter "List of map IDs from which dynamic events are generated".
  73.  
  74. ■ Deleting Dynamic Events
  75. Generated dynamic events can be completely deleted by executing the event command "Temporarily delete event".
  76.  
  77.  
  78. [Actor related]
  79. ■ About the Guard
  80. While pressing the A key during ARPG combat, the player guards.
  81. f a player is attacked from the opposite direction of the player's direction while on guard,
  82. the damage is halved if the player is on guard.
  83. Also, if the attacker guards just before guarding, it is a just guard and completely neutralizes the damage.
  84.  
  85. See "Angle of Attack for Skill Objects" for the direction of attack used to determine guard success.
  86.  
  87. If you do not use the guard function, set the plug-in parameter
  88. "Key Common Settings/Actor Guard Key"to Set the key name to "Unassigned".
  89.  
  90. Also, if you use the Guard function but do not use Just Guard,
  91. set 0 to the number of frames for Just Guard.
  92.  
  93. ■ Guard setting by plugin command
  94. In addition to pressing the A key, it is also possible to guard by executing a plugin command.
  95. If you set the guard mode to ON with the plugin command "Player guard mode setting",
  96. it will be in a guarded state during that time. When set to OFF, the guard is released.
  97. This function is mainly intended for guarding in environments without a keyboard or gamepad.
  98.  
  99. ■ Actor switching
  100. You can switch the player's actor by pressing the "S" key.
  101. This function can be used regardless of ON/OFF of ARPG mode.
  102.  
  103. You can also switch actors by executing the plugin command "Change control actor".
  104.  
  105. When the switch set in the plugin parameter "Control actor change permission switch ID" turns OFF,
  106. actor switching by key input is disabled.
  107.  
  108. ※Note: Actors cannot be switched while they are attacking or taking damage.
  109.         Also, the menu screen reordering function cannot be used while the actor cannot be switched.
  110.  
  111.  
  112. [Enemy-related]
  113. ■ About Enemy Character Settings
  114. In the event of an enemy character, by executing the "Setup Enemy" plug-in command through parallel processing or automatic execution, the event in which it is executed will be called "Setup Enemy".
  115. By executing the plugin command "Setup Enemy" in an event of an enemy character, the event in which it is executed is treated as an enemy character.
  116. The "Enemy setting" is used as an enemy character.
  117. Please be sure to execute "Setup Enemy" when the ARPG mode is ON.
  118.  
  119. "Collision Attack Skill ID", "Enemy Kill Common Event ID", and "Enemy Damage Common Event ID"
  120. can be set as arguments when setting enemy characters, but if 0 is specified for these values,
  121. the plug-in parameter "Enemy The value of the parameter with the same name in "Common Settings" is applied.
  122.  
  123. ■ Displaying HP of Enemy Characters
  124. The HP gauge can be set in the "Setup Enemy" plug-in command to display the HP of the enemy character.
  125. When "Normal" is selected, the HP gauge is displayed directly on the enemy character.
  126. When "Boss" is selected, a large HP gauge is displayed at the top of the screen.
  127.  
  128.  
  129. [Skill Related]
  130. ■ Creating Skills
  131. If you put <action: common event name or ID> in the memo field of a skill, the corresponding common event will be invoked when you execute that skill.
  132. This common event is called an "action common event.
  133. Within an Action Common Event, by executing the "Activate Skill" plug-in command, the skill is activated and MP or TP is consumed.
  134.  
  135. In this state, skill objects are generated by executing the "Create Skill Object" command.
  136. Skill objects are objects that, when hit by a battler, cause damage, recover HP, etc.
  137. It is an event that can give the battler the effect of a skill.
  138. Consider a skill object as a bullet fired by a player or an enemy character in a shooting game.
  139. The skill object collides with the battler.
  140. When a skill object collides with a battler, the effect set by the skill is applied to the colliding battler.
  141. The default hit detection of a skill object is the size of the event that made it a skill object.
  142. However, you can customize the hit judgment freely by following the procedure in " ■ Setting the Hit Judgment below.
  143.  
  144. If "Activate Skill" is not executed, MP/TP will not be consumed. Use this to your advantage.
  145. If a skill activation condition is not met (for example, if there is an enemy character nearby) when the common event of a skill action is executed, the skill will not be executed.
  146. If the common event of the skill action is executed and the skill activation condition is not met (e.g., an enemy character is nearby), the skill is not executed.
  147.  
  148. Note: It is not possible to create a skill object without activating a skill. If you do, an error message will be displayed.
  149.  
  150. ■ Common Event Variables Available in Action Common Events
  151. The common event variable for storing the user event ID will automatically contain the event ID of the character who is the user who executed the action common event.
  152. The event ID is automatically stored in the common event variable when the character is an event.
  153.  
  154. By combining these two variables, it is possible to specify the character who used the skill in the character specification argument of various plug-in commands.
  155.  
  156. These variables must be common event variables.
  157.  
  158. ■ Pass common event variable/switch value to action common event
  159. By writing the following in the memo field of the skill, it is possible to set the value
  160. in advancewhen executing the specified action common event.
  161. ・When setting common event variables
  162. <set-var Variable ID, Value>
  163. (e.g.) Set the value 100 to the variable with ID=10
  164. <set-var 10, 100>
  165.  
  166. ・When setting a common event switch
  167. <set-sw Switch ID, Value>
  168. (e.g.) Set the switch with ID=10 to ON
  169. <set-sw 10>
  170.  
  171. ※ Make sure these variables/switches are common event variables or common event switches.
  172. ※ This function was added from ARPG_Core v1.4.0.
  173.  
  174. ■ Self variables available in events generated as skill objects
  175. In events generated by the "Create Skill Object" plug-in command
  176. The self-variables "skill object user type stored self-variable" and "skill object user event ID stored self-variable" can be used.
  177. The self-variable that stores the skill object user type stores the type of the character that is the user who executed the skill object generation.
  178.  
  179. These variables must be self-event variables.
  180.  
  181. ■ Cancel using skill when receive damage
  182. If the plugin command "Damage Skill Cancel Enable/Disable Toggle" is set to Enable,
  183. the skill will be canceled when damage is taken, forcing the skill common event to end.
  184.  
  185. Also, if you specify a chanting common event ID in the "Activate Skill" plugin command
  186. The common event will be executed until the skill is activated,
  187. during which time skill cancellation by damage will be enabled.
  188. The same can be achieved with the "Damage Skill Cancel Enable/Disable Toggle" command.
  189. However, it is simpler to use this method when skill chanting is the objective.
  190.  
  191. ※ The maximum HP damage ratio for skill cancellation can be changed by setting the
  192. "Skill Cancel Damage Rate" in the "Battler ARPG Parameter Settings" plugin command.
  193. The maximum HP damage ratio for skill cancellation can be changed by setting the
  194. "Skill Cancel Damage Rate" in the "Battler ARPG Parameter Settings" plugin command.
  195. If not set, the skill will be canceled if it takes even one damage.
  196.  
  197. ■ Revert movement speed when skill is completed or canceled
  198. When the skill is activated, data such as movement speed is retained.
  199. Retained data will be restored upon skill completion or cancellation.
  200. By using this function, you don't have to be conscious of restoring the movement
  201. speed etc. when canceling an attack motion, for example.
  202.  
  203. The data retained when the skill is activated is as follows.
  204. ・Moving Speed
  205. ・Character images and indexes
  206. ・Orientation fixed
  207.  
  208. ※ This function was added from ARPG_Core v1.4.0.
  209.  
  210. ■ Attack Angle of Skill Objects
  211. By executing the "Specify Attack Angle" plug-in command for a skill object
  212. The attack angle can be set for a skill object by executing the "Specify Attack Angle" plug-in command for the skill object.
  213. The angle of attack set here is used to determine whether the skill object is facing the user when guarding.
  214.  
  215. The value set here can be obtained by reading the common event variable "Common variable for storing damage angle" in the common event that is executed when damage is received.
  216. This can be combined with the "Blow away character" plugin command to blow away the character in the direction of the damage.
  217.  
  218. ■ Synchronize the position of the skill object and the movement of the user
  219. By executing the plugin command "Skill object user position synchronization" for the skill object,
  220. the position of the skill object and the movement of the user can be synchronization.
  221. When using this function, it is possible to attack while dashing, for example.
  222.  
  223. ■ Applying Skill Effects
  224. After activating a skill, execute the plug-in command "Apply Skill Effects".
  225. The effect of the relevant skill can be applied to the user.
  226. Only the damage of the skill will be applied.
  227.  
  228. In addition, when the plugin command "Test apply skill effect" is executed, the user will not be able to see the effect of the skill before it can be applied.
  229. This function allows you to check in advance whether the skill effect can be applied.
  230. By using this function, it is possible, for example, to disable recovery items when HP is full.
  231. For example, if the HP is full, the recovery item cannot be used.
  232.  
  233. ■ Displaying Skill Names When Skills are Activated
  234. A popup window will appear when a skill is activated by entering the following information in the notes field of the skill.
  235. In this case, the text set in the "Message" field of the skill will be displayed.
  236. <showSkillNam>e
  237.  
  238. ■ Setting invincibility time when taking damage
  239. The invincibility time when damaged by a skill can be set by populating the following in the Note field of the skill.
  240. <noDamageFrame: invincibility time>
  241.  
  242. Example: To set the invincibility time to 60 frames
  243. <noDamageFrame: 60>
  244.  
  245. If this setting is omitted, the invincibility time is 30 frames.
  246.  
  247. ■ Setting a time limit after using a skill
  248. You can set a time limit after using a skill by populating the following information in the Note field of the skill.
  249. The following is a list of the time to prohibit attacks after a skill is used.
  250. <noAttackFrame: Attack delay>
  251.  
  252. Example: To set the no-attack time to 120 frames
  253. <noAttackFrame: 120>
  254.  
  255. If this setting is omitted, the no-attack time is set to 60 frames.
  256.  
  257. ■ Specify inertial movement cancellation when skill is activated
  258. Inertial movement can be canceled when the skill is activated
  259. by writing the following in the memo field of the skill.
  260. <cancelAcceleration: true>
  261.  
  262. If you set it as follows, inertial movement will continue even after the skill is activated.
  263. <cancelAcceleration: false>
  264.  
  265. ※ If this setting is omitted, inertial movement cancellation is enabled.
  266.  
  267. ■ Specify movement prohibition when skill is activated
  268. You can prohibit movement when the skill is activated
  269. by writing the following in the memo field of the skill.
  270. <disableMove: true>
  271.  
  272. If you set it as follows, inertial movement will continue even after the skill is activated.
  273. <disableMove: false>
  274.  
  275. ※ If you omit this setting, no movement is enabled.
  276. ※ Only player movement and autonomous movement by key or touch are prohibited.
  277.    Movement from event commands is not prohibited.
  278.  
  279. ■ Overwrite skill for damage determination when character collides
  280. By writing the following in the memo field of the skill, you can overwrite it with a skill
  281. that damages the enemy if it collides with the enemy while using the skill.
  282. <overwriteCollideAttack>
  283.  
  284. If you overwrite it, it will automatically return to the original setting when the skill ends.
  285.  
  286.  
  287. [Field Objects]
  288. ■ Field Objects
  289. Field object is an object that is neither a player nor an enemy, but can be set to be hit by a player or an enemy. It can be grass that can be destroyed by a sword, a switch that turns ON when hit by an arrow, etc.
  290. The hit detection of field objects can be set to "Custom".
  291.  
  292. You can set "damage judgment" or "custom judgment" for the hit judgment of the field object.
  293. For details on the collision judgment, please refer to "■ collision detection settings".
  294.  
  295. ■ Field object damage handling
  296. If you set "Damage Judgment" to the field object, the common event set in
  297. "Field Object Damage Common Event ID" will be called when the attack judgment touches.
  298.  
  299. Field objects do not have HP, so all you do in damage processing is calling a common event.
  300. This processing is mainly intended for use such as destroying grass when a sword attack hits it.
  301.  
  302. [related to collision detection]
  303. ■ collision detection settings
  304. The "collision detection settings" plug-in command can be used to configure the hit detection settings.
  305. The following types of collision detection are available
  306. Attack detection: If this detection comes in contact with a "damage detection", damage will be inflicted to the user who set the damage detection.
  307. Damage detection: If this detection contacts the "attack detection," the attacker is damaged.
  308. Custom detection: This is a user-definable collision detection. The collision detection set here can be checked with the "collision detection check" plugin command.
  309.  
  310. Collision detection can be set for the following characters
  311. If collision detection is set for other characters, an error will occur.
  312. Player (all collision detection can be set)
  313. Enemy (all collision detection can be set)
  314. Field object (only damage judgment/custom judgment can be set)
  315. Skill object (only attack detection/custom detection can be set)
  316.  
  317. Player collision detection can be set using the "Player collision detection setting" plug-in parameter.
  318.  
  319. ■ Collision detection check by plug-in commands
  320. Damage processing according to the attack detection and damage detection is automatically performed by the plug-in.
  321. However, the "collision detection check" plug-in command allows you to check for collision detection at any time.
  322. The "collision detection check" plug-in command allows collision detection to be checked at any desired timing.
  323.  
  324. ■ Collision detection visibility
  325. If the switch which you specified for the plugin parameter "HitBoxSetting/switch ID for hit box visibility" is ON, the hit box will be visible.
  326.  
  327. Also, pressing the key (F6 by default) set in the plugin parameter "Hitbox visualization switching key"
  328. can automatically switch the visualization state of the hitbox.
  329. This function is only valid during test play.
  330. ※ If the hitbox is visualized in the switch settings, it can be visualized even if it is not a test play.
  331.  
  332.  
  333. [Combo attack function]
  334. By setting the plug-in parameter "action combo setting", it is possible to easily create a combo attack.
  335. With this setting, if the skill specified by the "derived source skill ID" is executed within the
  336. "minimum combo possible time" to "maximum combo possible time", the skill will be changed to the
  337. skill specified by the "derived skill ID". It is possible to execute after overwriting.
  338. Also, if there is a combo destination setting, the attack prohibition time set by noAttackFrame
  339. will be ignored and the minimum combo possible time will be used to determine whether an attack is possible or not.
  340.  
  341. ※ This function was added from ARPG_Core v1.4.0.
  342.  
  343.  
  344. [Other]
  345. Setting up states to be resolved over time
  346. In ARPGs, there may be many situations where you want to resolve states over time.
  347. We have prepared a function for this purpose.
  348. By populating the following in the state Note field, the state can be resolved at the specified number of frames elapsed.
  349. The state can be resolved when the specified number of frames have elapsed.
  350. <duration: number of frames>
  351.  
  352. For example, to resolve the state after 10 seconds, set as follows (1 second = 60 frames)
  353. <duration: 60>
  354.  
  355. This setting alone will not update the number of frames remaining when states are stacked.
  356. If you want to update the number of remaining frames by stacking states, you need to include the following information in the Note field.
  357. <overWriteDuration: number of frames>
  358.  
  359. ■ Skill settings for each weapon
  360. It is possible to switch skills during a normal attack depending on the type of weapon.
  361. The specified skill is executed by making the following entry in the Note field of the weapon.
  362. <skill: skill name>
  363.  
  364. *Note
  365. When dual wielding is set, only the setting of the first equipped weapon will be reflected.
  366.  
  367. ■ Firing a transparent object
  368. You can fire a transparent object to check whether the enemy is in front of you or not.
  369. For example, it can be used to check if there is an enemy in front of you.
  370. The collision target of the transparent object is the same as an event whose priority is set to Same as characters.
  371.  
  372. *Note
  373. If there is already a character at the position where the transparent object is created, the transparent object will pass through the character and collide with the character.
  374. the transparent object will pass through the character.
  375.  
  376. ■ Target Selection Function
  377. The "Target Selection" plug-in command allows the player or enemy to be selected by the cursor in the game.
  378. This makes it possible, for example, to fire bullets at a selected enemy character.
  379.  
  380. If the weight is turned on, time can be stopped while the selection is being made, and if it is turned off, the selection can be made in real time.
  381.  
  382. When "Cancelable" is turned on, the target selection can be canceled when the cancel button is pressed during the target selection.
  383. In this case, the result stored in the selection result storage switch is turned OFF.
  384.  
  385. ■ CheckInTheScreen event
  386. By executing the "CheckInTheScreen" plug-in parameter
  387. The plugin parameter "CheckInTheScreen" can be used to determine if the specified character is on the screen.
  388.  
  389. ■ Attribute judgment when receiving damage
  390. By executing the plug-in command "Damage attribute check" in the common event that is executed when you
  391. receive damage, you can determine which attribute you received damage from.
  392. *Note: Normal attacks cannot be judged as attributes.
  393.  
  394. ■ Increase attribute when attacking
  395. Normally, only one attribute can be given to a skill, but it is possible to increase the attribute by writing
  396. the following in the memo field. This setting can be used multiple times in one memo field.
  397. <damageElement: Element name>
  398.  
  399. Example: When adding attributes of fire and ice
  400. <damageElement: fire>
  401. <damageElement: ice>
  402.  
  403. ■ Character weight
  404. By executing the "Character Action Weight" plug-in command, you can stop a character's
  405. events for a certain period of time. can be stopped for a certain period of time.
  406. The difference between this command and the "wait" event command is that the wait, when executed from a parallel move,
  407. stops the character's autonomous movement, but the character action wait stops the autonomous movement as well.
  408. However, the difference is that the character action weight stops the autonomous movement as well.
  409. Therefore, this command can be used when weights are needed for rigidity in the event of damage.
  410.  
  411. ■ How to check if the character has moved
  412. Character movement can be checked by using the plug-in command
  413. The character's movement can be checked by using the plugin command "Check if character is moved".
  414. When this command is executed, if the character has moved at least once before being updated in the next frame,
  415. the specified switch will be turned on, The specified switch will be turned ON.
  416. The flag indicating whether or not the character has moved within the frame will be cleared when the
  417. target character is updated in the next frame. The flag indicating whether the character has moved
  418. within the frame is cleared when the target character is updated in the next frame.
  419.  
  420. [Appendix]
  421. When you specify a character for plugin parameters/plugin commands, you can input a variable value;
  422.  
  423. ■ Chracter type variable value
  424. Player: 1
  425. Follower: 2
  426. Event: 3
  427. Vehicle: 4
  428.  
  429. ■ Follower index variable value
  430. First: 1
  431. Second: 2
  432. Etc.
  433.  
  434. ■ Vehicle variable value
  435. Boat: 1
  436. Ship: 2
  437. Airship: 3
  438.  
  439.  
  440. @command ChangeARPGMode
  441. @text Toggle ARPG mode
  442. @desc Enables/disables ARPG mode.
  443.  
  444. @arg ARPGMode
  445. @text ARPG Mode
  446. @type boolean
  447. @default true
  448. @desc Specify the ARPG mode to switch to.
  449.  
  450.  
  451. @command MakeDynamicEvent
  452. @text Create a dynamic object
  453. @desc Generate a dynamic object.
  454.  
  455. @arg SrcMapId
  456. @type number
  457. @text Source map ID
  458. @default 1
  459. @desc Specify source map ID.
  460.  
  461. @arg SrcEventIdOrName
  462. @type string
  463. @text Source event ID or event name
  464. @default 0
  465. @desc Source event ID or event name
  466.  
  467. @arg X
  468. @type number
  469. @text X coordinate
  470. @default 0
  471. @desc Specify X coordinate to generate event.
  472.  
  473. @arg XByVariable
  474. @type variable
  475. @text X-coordinate (variable specification)
  476. @default 0
  477. @desc Specify the X coordinate to generate event by variable. If you set the X value directly, specify 0 for this parameter.
  478.  
  479. @arg Y
  480. @type number
  481. @text Y coordinate
  482. @default 0
  483. @desc Specify the Y coordinate to generate event.
  484.  
  485. @arg YByVariable
  486. @type variable
  487. @text Y-coordinate (specify variable)
  488. @default 0
  489. @desc Specify the Y coordinate to generate event by variable. If you set Y value directly, specify 0 for this parameter.
  490.  
  491. @arg MadeDynamicEventId
  492. @text Variable for storing made dynamic event ID
  493. @type variable
  494. @default 0
  495. @desc Specify the variable ID to store the generated dynamic event ID.
  496.  
  497.  
  498. @command GetCharacterFloatPosition
  499. @text Get character float position
  500. @desc Get character float position.
  501.  
  502. @arg CharacterSpecification
  503. @text Character specification
  504. @type struct<CharacterSpecification>
  505. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  506. @desc Specifies the target character.
  507.  
  508. @arg LeftUpOrCenter
  509. @text Upper Left or Center
  510. @type select
  511. @option Upper Left
  512. @value leftup
  513. @option Center
  514. @value center
  515. @default leftup
  516. @desc Specify which to get, the character's upper left or center of the coordinate.
  517.  
  518. @arg StoreFloatXVariableId
  519. @text Variable ID for storing decimal X coordinate
  520. @type variable
  521. @default 0
  522. @desc Specify the variable ID to store the acquired decimal X coordinate.
  523.  
  524. @arg StoreFloatYVariableId
  525. @text Variable ID to store decimal Y coordinate
  526. @type variable
  527. @default 0
  528. @desc Specify variable ID to store acquired decimal Y coordinate.
  529.  
  530.  
  531. @command CalcDeg
  532. @text Obtain angle between characters
  533. @desc Obtains the angle of the target character as seen from the main character.
  534.  
  535. @arg SubjectCharacterSpecification
  536. @text Subject character specification
  537. @type struct<CharacterSpecification>
  538. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  539. @desc Specify the main character.
  540.  
  541. @arg TargetCharacterSpecification
  542. @text Target character specification
  543. @type struct<CharacterSpecification>
  544. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  545. @desc Specify the target character.
  546.  
  547. @arg StoreDegreeVariableId
  548. @text Angle storage variable ID
  549. @type variable
  550. @default 0
  551. @desc Specify the variable ID to store the acquired angle.
  552.  
  553.  
  554. @command CalcFar
  555. @text Get distance between characters
  556. @desc Obtains the distance between the main character and the target character.
  557.  
  558. @arg SubjectCharacterSpecification
  559. @text Subject character specification
  560. @type struct<CharacterSpecification>
  561. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  562. @desc Specifies the main character.
  563.  
  564. @arg TargetCharacterSpecification
  565. @text Target character specification
  566. @type struct<CharacterSpecification>
  567. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  568. @desc Specify the target character.
  569.  
  570. @arg StoreFarVariableId
  571. @text Distance store variable ID
  572. @type variable
  573. @default 0
  574. @desc Specify the variable ID to store the acquired distance.
  575.  
  576.  
  577. @command CheckInTheScreen
  578. @text Check if the character is in the screen
  579. @desc Checks if the character is in the screen.
  580.  
  581. @arg CharacterSpecification
  582. @text Character specification
  583. @type struct<CharacterSpecification>
  584. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  585. @desc Specify the target character.
  586.  
  587. @arg XMargin
  588. @text X-axis margin
  589. @type number
  590. @decimals 2
  591. @default 2
  592. @desc Specifies the off-screen margin width for the X-axis. The unit is the number of squares.
  593.  
  594. @arg YMargin
  595. @text Y-axis margin
  596. @type number
  597. @decimals 2
  598. @default 2
  599. @desc Specifies the off-screen margin width for the X-axis. The unit is the number of squares.
  600.  
  601. @arg StoreResultSwitchId
  602. @text Result store switch ID
  603. @type switch
  604. @default 1
  605. @desc Specify the switch ID to set ON if the character is in the screen and OFF otherwise.
  606.  
  607.  
  608. @command CheckMoved
  609. @text Check if character is moved
  610. @desc Checks if the character has moved within the frame.
  611.  
  612. @arg CharacterSpecification
  613. @text Character specification
  614. @type struct<CharacterSpecification>
  615. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  616. @desc Specify the target character.
  617.  
  618. @arg StoreResultSwitchId
  619. @text Result store switch ID
  620. @type switch
  621. @default 1
  622. @desc Specify the switch ID to set ON if moved, OFF otherwise.
  623.  
  624.  
  625. @command TransparentObjectCast
  626. @text Fires transparent object
  627. @desc Fire a transparent object and check if it hits the object.
  628.  
  629. @arg TransparentObjectPosition
  630. @type struct<TransparentObjectPosition>
  631. @text Position specification
  632. @desc Specify the position at which the transparent object is created.
  633.  
  634. @arg Degree
  635. @text angle
  636. @type number
  637. @decimals 2
  638. @default 0
  639. @desc Specifies the launch angle of the transparent object.
  640.  
  641. @arg DegreeByVariable
  642. @text angle (specify variable)
  643. @type variable
  644. @default 0
  645. @desc Specify the launch angle of transparent object by variable.
  646.  
  647. @arg Far
  648. @text distance
  649. @type number
  650. @decimals 2
  651. @default 0
  652. @desc Specifies the distance of the transparent object to be fired. 0 means infinite.
  653.  
  654. @arg FarByVariable
  655. @text distance (variable specification)
  656. @type variable
  657. @default 0
  658. @desc Specify the launch distance of the transparent object by variable.
  659.  
  660. @arg Width
  661. @text width
  662. @type number
  663. @decimals 2
  664. @default 1
  665. @desc Specifies the width of the transparent object.
  666.  
  667. @arg Height
  668. @text Height
  669. @type number
  670. @decimals 2
  671. @default 1
  672. @desc Specifies the height of the transparent object.
  673.  
  674. @arg CollisionResultSwitchId
  675. @text Switch ID for storing collision results
  676. @type switch
  677. @default 1
  678. @desc Specify the switch ID to set ON in case of collision and OFF otherwise.
  679.  
  680. @arg CollidedXVariableId
  681. @text Collided X coordinate storage variable ID
  682. @type variable
  683. @default 0
  684. @desc Specify the variable ID that stores the X coordinate of the point where the collision occurred.
  685.  
  686. @arg CollidedYVariableId
  687. @text Variable ID for storing collided X-coordinates
  688. @type variable
  689. @default 0
  690. @desc Specify the variable ID that stores the X coordinate of the point where the collision occurred.
  691.  
  692.  
  693. @command SetupEnemy
  694. @text Setup Enemy
  695. @desc Setup the enemy for event.
  696.  
  697. @arg CharacterSpecification
  698. @text Character specification
  699. @type struct<CharacterSpecification>
  700. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  701. @desc Specify the target character.
  702.  
  703. @arg EnemyId
  704. @text Enemy ID
  705. @type enemy
  706. @default 1
  707. @desc Specify the enemy ID.
  708.  
  709. @arg CollideAttackSkillId
  710. @text Collision Attack Skill ID
  711. @type skill
  712. @default 0
  713. @desc
  714. Specify the skill ID for damage calculation when the enemy collides with the actor.
  715.  
  716. @arg DamageCommonEventId
  717. @text Enemy damage common event ID
  718. @type common_event
  719. @default 0
  720. @desc
  721. Specifies the common event to be executed when the enemy is damaged.
  722.  
  723. @arg DefeatEnemyCommonEventId
  724. @text Defeat Enemy Common Event ID
  725. @type common_event
  726. @default 0
  727. @desc
  728. Specify the common event ID to be executed when an enemy is defeated.
  729.  
  730. @arg HpGauge
  731. @text HP gauge
  732. @type select
  733. @option none
  734. @value none
  735. @option normal
  736. @value normal
  737. @option boss
  738. @value boss
  739. @default normal
  740. @desc Sets the display of the HP gauge.
  741.  
  742.  
  743. @command ChangeHpGaugeVisible
  744. @text toggles the enemy HP gauge visibility
  745. @desc Toggles the display/non-display of the HP gauge of the enemy.
  746.  
  747. @arg CharacterSpecification
  748. @text Character specification
  749. @type struct<CharacterSpecification>
  750. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  751. @desc Specify the target character.
  752.  
  753. @arg ShowOrHide
  754. @text show/hide
  755. @type boolean
  756. @on Show
  757. @off hide
  758. @default true
  759. @desc Select to show or hide.
  760.  
  761.  
  762. @command SetupFieldObject
  763. @text Setup FieldObject
  764. @desc Setup field object for event.
  765.  
  766. @arg DamageCommonEventId
  767. @text Field Object Damage Common Event ID
  768. @type common_event
  769. @default 0
  770. @desc
  771. Specifies a common event to execute when a field object takes damage.
  772.  
  773.  
  774. @command UseSkill
  775. @text Use Skill
  776. @desc Use Skill
  777.  
  778. @arg SkillId
  779. @type skill
  780. @text Skill ID
  781. @default 1
  782. @desc Specify the ID of the skill to be used. If a name or variable is specified, it takes precedence.
  783.  
  784. @arg SkillByName
  785. @type string
  786. @text Skill (specify name)
  787. @desc Specify the name of the skill to be used. If you do not use naming, leave it blank.
  788.  
  789. @arg SkillIdByVariable
  790. @type variable
  791. @text Skill ID (variable specification)
  792. @default 0
  793. @desc Specify the ID of the skill to be used by variable. If you do not use variable specification, set it to 0.
  794.  
  795.  
  796. @command UseItem
  797. @text UseItem
  798. @desc Use item.
  799.  
  800. @arg ItemId
  801. @type item
  802. @text Item ID
  803. @default 1
  804. @desc Specify the ID of the item to be used. If a name or variable is specified, it takes precedence.
  805.  
  806. @arg ItemByName
  807. @type string
  808. @text Item (specify name)
  809. @desc Specify the name of the item to be used. If you do not use the name specification, leave it blank.
  810.  
  811. @arg ItemIdByVariable
  812. @type variable
  813. @text Item ID (specify variable)
  814. @default 0
  815. @desc Specify the ID of the item to be used by variable. If you do not use variable specification, set it to 0.
  816.  
  817.  
  818. @command SkillActivation
  819. @text Skill Activation
  820. @desc Activate a skill. This command must be invoked in the action common event of the skill.
  821.  
  822. @arg ChantCommonEventId
  823. @type common_event
  824. @text Chant Common Event ID
  825. @default 0
  826. @desc Specify the ID of the common event to perform the chanting process.
  827.  
  828.  
  829. @command SkillCancel
  830. @text Skill Cancel
  831. @desc Cancels the skill being used. This command must be called within the skill action common event.
  832.  
  833.  
  834. @command ChangeSkillCancelWhenDamageEnableOrDisable
  835. @text Damage Skill Cancel Enable/Disable change
  836. @desc Enables/disables skill cancellation due to damage. This command must be invoked within the skill's action common event.
  837.  
  838. @arg EnableOrDisable
  839. @text Enable/Disable
  840. @type boolean
  841. @on Enable
  842. @off Disable
  843. @default true
  844. @desc
  845. Select enable or disable.
  846.  
  847.  
  848. @command TestApplySkillEffect
  849. @text Test apply skill effect
  850. @desc Tests if a skill effect can be applied to the user and sets the result to a switch.
  851.  
  852. @arg IsSkillSpecification
  853. @text IsSkillSpecification
  854. @type boolean
  855. @default false
  856. @desc If ON is specified, the target skill is specified. If not specified, the activated skill is applied.
  857.  
  858. @arg SkillSpecification
  859. @text SkillSpecification
  860. @type struct<SkillSpecification>
  861. @default {"SkillOrItem":"skill","SkillId":"1","SkillByName":"","SkillIdByVariable":"0","ItemId":"1","ItemByName":"","ItemIdByVariable":"0"}
  862. @desc Specify the skill to be used when "On" is selected.
  863.  
  864. @arg StoreResultSwitchId
  865. @text Result store switch ID
  866. @type switch
  867. @default 1
  868. @desc Specify the switch ID to set ON if available, otherwise OFF.
  869.  
  870.  
  871. @command ApplySkillEffect
  872. @text apply skill effect
  873. @desc Apply the skill effect to the user. This command must always be invoked after "Activate Skill" in the skill's action common event.
  874.  
  875. @arg IsSkillSpecification
  876. @text IsSkillSpecification
  877. @type boolean
  878. @default false
  879. @desc If ON is specified, the target skill is specified. If not specified, the activated skill is applied.
  880.  
  881. @arg SkillSpecification
  882. @text Skill specification
  883. @type struct<SkillSpecification>
  884. @default {"SkillOrItem":"skill","SkillId":"1","SkillByName":"","SkillIdByVariable":"0","ItemId":"1","ItemByName":"","ItemIdByVariable":"0"}
  885. @desc Specify the skills to be covered when "On" is set to "SkillIdByVariable" or "On" is set to "SkillIdByVariable".
  886.  
  887.  
  888. @command MakeSkillObject
  889. @text Create Skill Object
  890. @desc Generate a skill object.
  891.  
  892. @arg SrcMapId
  893. @type number
  894. @text Source map ID
  895. @default 1
  896. @desc Specify the source map ID.
  897.  
  898. @arg SrcEventIdOrName
  899. @text Source event ID or event name
  900. @type string
  901. @default 0
  902. @desc Specify the source event ID or event name.
  903.  
  904. @arg SkillObjectPosition
  905. @type struct<SkillObjectPosition>
  906. @text Position specification
  907. @desc Specify the position at which the skill object is generated.
  908.  
  909. @arg IsSkillSpecification
  910. @text IsSkillSpecification
  911. @type boolean
  912. @default false
  913. @desc If ON is specified, the target skill is specified. If not specified, the activated skill is applied.
  914.  
  915. @arg SkillSpecification
  916. @text Skill specification
  917. @type struct<SkillSpecification>
  918. @default {"SkillOrItem":"skill","SkillId":"1","SkillByName":"","SkillIdByVariable":"0","ItemId":"1","ItemByName":"","ItemIdByVariable":"0"}
  919. @desc Specify the skills to be covered when "On" is set to "SkillIdByVariable" or "On" is set to "SkillIdByVariable".
  920.  
  921. @arg MadeDynamicEventId
  922. @text Variable for storing made dynamic event ID
  923. @type variable
  924. @default 0
  925. @desc Specify the variable ID to store the generated dynamic event ID.
  926.  
  927.  
  928. @command SetAttackDegree
  929. @text Specify attack angle
  930. @desc Specify the attack angle of the skill object.
  931.  
  932. @arg CharacterSpecification
  933. @text Character specification
  934. @type struct<CharacterSpecification>
  935. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  936. @desc Specifies the target character.
  937.  
  938. @arg AttackDegree
  939. @type number
  940. @text Attack angle
  941. @default 0
  942. @desc Set the attack angle.
  943.  
  944. @arg AttackDegreeByVariable
  945. @type variable
  946. @text Attack angle (specified by variable)
  947. @default 0
  948. @desc Set the attack angle by variable.
  949.  
  950.  
  951. @command SetUserPositionSynchronize
  952. @text Set skill object user position synchronization
  953. @desc Specifies whether or not to synchronize the user position of the skill object.
  954.  
  955. @arg CharacterSpecification
  956. @text Character specification
  957. @type struct<CharacterSpecification>
  958. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  959. @desc Specify the target character.
  960.  
  961. @arg Synchronize
  962. @type boolean
  963. @text Synchronize
  964. @on Enable
  965. @off Disable
  966. @default true
  967. @desc Specifies whether synchronization is enabled or disabled.
  968.  
  969.  
  970. @command CheckDamageElement
  971. @text Damage attribute check
  972. @desc Checks damaged attributes. Be sure to call this command from the received damage processing.
  973.  
  974. @arg ElementName
  975. @text Element name
  976. @type string
  977. @desc Specifies the attribute name to be checked.
  978.  
  979. @arg StoreResultSwitchId
  980. @text Result store switch ID
  981. @type switch
  982. @default 1
  983. @desc Specifies the switch ID that sets ON if the attribute is specified, and OFF otherwise.
  984.  
  985.  
  986. @command SetHitBox
  987. @text SetHitBox
  988. @desc Set the hitbox setting. If the hitbox is set again for the same type, the existing setting is overwritten.
  989. @arg CharacterSpecification
  990. @text Character specification
  991. @type struct<CharacterSpecification>
  992. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  993. @desc Specify the target character.
  994.  
  995. @arg HitBoxType
  996. @text HitBoxType
  997. @type select
  998. @option attack
  999. @value attack
  1000. @option damage
  1001. @value damage
  1002. @option custom
  1003. @value custom
  1004. @default attack
  1005. @desc Set the hitbox type.
  1006.  
  1007. @arg CustomHitBoxTag
  1008. @text custom hit box tag
  1009. @type string
  1010. @desc Specify tag for custom hitbox type.
  1011.  
  1012. @arg HitBoxList
  1013. @type struct<Box>[]
  1014. @text HitBoxList
  1015. @default []
  1016. @desc Set the hit box.
  1017.  
  1018.  
  1019. @command ChangeHitBoxEnableOrDisable
  1020. @text Change hitbox enable/disable
  1021. @desc Enables or disables the hitbox.
  1022.  
  1023. @arg CharacterSpecification
  1024. @text Character specification
  1025. @type struct<CharacterSpecification>
  1026. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  1027. @desc Specify the target character.
  1028.  
  1029. @arg HitBoxType
  1030. @text HitBoxType
  1031. @type select
  1032. @option attack
  1033. @value attack
  1034. @option damage
  1035. @value damage
  1036. @option custom
  1037. @value custom
  1038. @default attack
  1039. @desc Set the hitbox type.
  1040.  
  1041. @arg CustomHitBoxTag
  1042. @text custom hit box tag
  1043. @type string
  1044. @desc Specifies the tag for a custom hitbox type.
  1045.  
  1046. @arg Enabled
  1047. @text Enabled
  1048. @type boolean
  1049. @desc If set to true, enable the hitbox.
  1050.  
  1051.  
  1052. @command HitCheck
  1053. @text Hit check
  1054. @desc Perform hit check by hitbox.
  1055.  
  1056. @arg SubjectCharacterSpecification
  1057. @text Subject character specification
  1058. @type struct<CharacterSpecification>
  1059. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  1060. @desc Specifies the main character.
  1061.  
  1062. @arg SubjectHitBoxType
  1063. @text subject hit box type
  1064. @type select
  1065. @option attack
  1066. @value attack
  1067. @option damage
  1068. @value damage
  1069. @option custom
  1070. @value custom
  1071. @default attack
  1072. @desc Set the hitbox type.
  1073.  
  1074. @arg SubjectCustomHitBoxTag
  1075. @text subject custom hit box tag
  1076. @type string
  1077. @desc Sets the custom hitbox tag.
  1078.  
  1079. @arg IsTargetSpecification
  1080. @text IsTargetSpecification
  1081. @type boolean
  1082. @default false
  1083. @desc Specify the event to be targeted if ON is specified.
  1084.  
  1085. @arg TargetCharacterSpecification
  1086. @text Target character specification
  1087. @type struct<CharacterSpecification>
  1088. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  1089. @desc Specifies the target character when "Target" is ON.
  1090.  
  1091. @arg TargetHitBoxType
  1092. @text Target hit box type
  1093. @type select
  1094. @option attack
  1095. @value attack
  1096. @option damage
  1097. @value damage
  1098. @option custom
  1099. @value custom
  1100. @default attack
  1101. @desc Set the hitbox type.
  1102.  
  1103. @arg TargetCustomHitBoxTag
  1104. @text Target custom hit box tag
  1105. @type string
  1106. @desc Set custom hitbox tag.
  1107.  
  1108. @arg StoreResultSwitchId
  1109. @text Result store switch ID
  1110. @type switch
  1111. @default 1
  1112. @desc Specify the switch ID to set ON if there was a hit and OFF otherwise.
  1113.  
  1114.  
  1115. @command GetBattlerStatus
  1116. @text GetBattlerStatus
  1117. @desc Get the status of the specified battler.
  1118.  
  1119. @arg CharacterSpecification
  1120. @text Character specification
  1121. @type struct<CharacterSpecification>
  1122. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  1123. @desc Specifies the target character.
  1124.  
  1125. @arg StatusType
  1126. @type select
  1127. @option mhp
  1128. @option mmp
  1129. @option hp
  1130. @option mp
  1131. @option tp
  1132. @option atk
  1133. @option mat
  1134. @option mdf
  1135. @option agi
  1136. @option luk
  1137. @option hit
  1138. @option eva
  1139. @option cri
  1140. @option cev
  1141. @option mev
  1142. @option mrf
  1143. @option cnt
  1144. @option hrg
  1145. @option mrg
  1146. @option trg
  1147. @option tgr
  1148. @option grd
  1149. @option rec
  1150. @option pha
  1151. @option mcr
  1152. @option tcr
  1153. @option pdr
  1154. @option mdr
  1155. @option fdr
  1156. @option exr
  1157. @text status type
  1158. @default mhp
  1159. @desc Specifies the status type.
  1160.  
  1161. @arg DestVariableId
  1162. @type variable
  1163. @text Destination Variable
  1164. @default 1
  1165. @desc Specify the destination variable for the acquired status value.
  1166.  
  1167.  
  1168. @command SetBattlerStatus
  1169. @text SetBattlerStatus
  1170. @desc Set the status of the specified battler.
  1171.  
  1172. @arg CharacterSpecification
  1173. @text Character specification
  1174. @type struct<CharacterSpecification>
  1175. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  1176. @desc Specify the target character.
  1177.  
  1178. @arg StatusType
  1179. @type select
  1180. @option hp
  1181. @option mp
  1182. @option tp
  1183. @text StatusType
  1184. @default mhp
  1185. @desc Specifies the status type.
  1186.  
  1187. @arg Value
  1188. @type number
  1189. @text Value
  1190. @default 0
  1191. @desc Specifies the status value to be set.
  1192.  
  1193. @arg ValueByVariable
  1194. @type variable
  1195. @text value (specify variable)
  1196. @default 0
  1197. @desc Specify the variable ID in which the status value to be set is stored.
  1198.  
  1199.  
  1200. @command GetBattlerARPGParameter
  1201. @text GetBattlerARPGParameter
  1202. @desc Get the ARPG-specific parameters for the specified battler.
  1203.  
  1204. @arg CharacterSpecification
  1205. @text Character specification
  1206. @type struct<CharacterSpecification>
  1207. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  1208. @desc Specifies the target character.
  1209.  
  1210. @arg ARPGParameterType
  1211. @type select
  1212. @option skill cancel damage rate
  1213. @value skillCancelDamageRate
  1214. @option Just guard frame
  1215. @value justGuardFrame
  1216. @text ARPGParameterType
  1217. @default skillCancelDamageRate
  1218. @desc Specify ARPG parameter type.
  1219.  
  1220. @arg DestVariableId
  1221. @type variable
  1222. @text Destination Variable
  1223. @default 1
  1224. @desc Specify destination variable for acquired status value.
  1225.  
  1226.  
  1227. @command SetBattlerARPGParameter
  1228. @text SetBattlerARPGParameter
  1229. @desc Set the ARPG only parameter of the specified battler.
  1230.  
  1231. @arg CharacterSpecification
  1232. @text Character specification
  1233. @type struct<CharacterSpecification>
  1234. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  1235. @desc Specify the target character.
  1236.  
  1237. @arg ARPGParameterType
  1238. @type select
  1239. @option skill cancel damage rate
  1240. @value skillCancelDamageRate
  1241. @option Just guard frame
  1242. @value justGuardFrame
  1243. @text ARPGParameterType
  1244. @default skillCancelDamageRate
  1245. @desc Specify ARPG parameter type.
  1246.  
  1247. @arg Value
  1248. @type number
  1249. @text Value
  1250. @default 0
  1251. @decimals 2
  1252. @desc Specifies the status value to be set.
  1253.  
  1254. @arg ValueByVariable
  1255. @type variable
  1256. @text value (specify variable)
  1257. @default 0
  1258. @desc Specify the variable ID where the status value to be set is stored.
  1259.  
  1260.  
  1261. @command GetBattlerARPGFlag
  1262. @text Get battler ARPG flag
  1263. @desc Get the ARPG only flag of the specified battler.
  1264.  
  1265. @arg CharacterSpecification
  1266. @text Character specification
  1267. @type struct<CharacterSpecification>
  1268. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  1269. @desc Specify the target character.
  1270.  
  1271. @arg ARPGFlagType
  1272. @type select
  1273. @option No damage flag
  1274. @value noDamageFlag
  1275. @option No attack flag
  1276. @value noAttackFlag
  1277. @text ARPG flag type
  1278. @default noDamageFlag
  1279. @desc Specify the ARPG flag type.
  1280.  
  1281. @arg DestSwitchId
  1282. @type switch
  1283. @text Destination switch
  1284. @default 1
  1285. @desc Specifies the switch to which the retrieved flag values are to be stored.
  1286.  
  1287.  
  1288. @command SetBattlerARPGFlag
  1289. @text Set battler ARPG flag
  1290. @desc Sets the ARPG-only flag for the specified battler.
  1291.  
  1292. @arg CharacterSpecification
  1293. @text Character specification
  1294. @type struct<CharacterSpecification>
  1295. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  1296. @desc Specify the target character.
  1297.  
  1298. @arg ARPGFlagType
  1299. @type select
  1300. @option No damage flag
  1301. @value noDamageFlag
  1302. @option No attack flag
  1303. @value noAttackFlag
  1304. @text ARPG flag type
  1305. @default noDamageFlag
  1306. @desc Specify the ARPG flag type.
  1307.  
  1308. @arg Value
  1309. @type boolean
  1310. @text Value
  1311. @default true
  1312. @desc Specify the flag value to be set.
  1313.  
  1314. @arg ValueBySwitch
  1315. @type switch
  1316. @text Value(by switch)
  1317. @default 0
  1318. @desc Specifies the switch ID where the flag value to be set is stored.
  1319.  
  1320.  
  1321. @command SetCheckMapValid
  1322. @text Toggle map valid range check valid/invalid
  1323. @desc Toggle enable/disable of map valid range check.
  1324.  
  1325. @arg CharacterSpecification
  1326. @text Character specification
  1327. @type struct<CharacterSpecification>
  1328. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  1329. @desc
  1330. Specify the target character.
  1331. @arg EnableOrDisable
  1332. @text enable/disable
  1333. @type boolean
  1334. @on Enable
  1335. @off Disable
  1336. @default true
  1337. @desc
  1338. Select enable or disable.
  1339.  
  1340.  
  1341. @command CharacterBlowAway
  1342. @text Character Knockback
  1343. @desc Knocks the character back in the specified direction.
  1344.  
  1345. @arg CharacterSpecification
  1346. @text Character specification
  1347. @type struct<CharacterSpecification>
  1348. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  1349. @desc Specify the target character.
  1350.  
  1351. @arg Degree
  1352. @text angle
  1353. @type number
  1354. @default 0
  1355. @desc Specifies the angle at which the character will be blown away.
  1356.  
  1357. @arg DegreeByVariable
  1358. @text angle (specify variable)
  1359. @type variable
  1360. @default 0
  1361. @desc Specify the angle to blow off by variable.
  1362.  
  1363. @arg InitialVelocity
  1364. @text InitialVelocity
  1365. @type number
  1366. @decimals 2
  1367. @default 0.5
  1368. @desc Specify the initial velocity to blow off.
  1369.  
  1370. @arg InitialVelocityByVariable
  1371. @text Initial velocity (specify variable)
  1372. @type variable
  1373. @default 0
  1374. @desc Specify initial velocity to blow off by variable.
  1375.  
  1376. @arg Duration
  1377. @text Duration
  1378. @type number
  1379. @decimals 2
  1380. @default 10
  1381. @desc Specifies the interval between blasts.
  1382.  
  1383. @arg DurationByVariable
  1384. @text interval (variable specification)
  1385. @type variable
  1386. @default 0
  1387. @desc Specify the interval between blasts by variable.
  1388.  
  1389. @arg Wait
  1390. @text Wait
  1391. @type boolean
  1392. @default true
  1393. @desc If true is specified, it will wait until blowing away is completed.
  1394.  
  1395.  
  1396. @command CharacterActionWait
  1397. @text Character action weight
  1398. @desc Makes the character's actions wait for a certain amount of time.
  1399.  
  1400. @arg CharacterSpecification
  1401. @text Character specification
  1402. @type struct<CharacterSpecification>
  1403. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  1404. @desc Specify the target character.
  1405.  
  1406. @arg Duration
  1407. @text Duration
  1408. @type number
  1409. @decimals 2
  1410. @default 10
  1411. @desc Specifies the interval between blasts.
  1412.  
  1413. @arg DurationByVariable
  1414. @text interval (variable specification)
  1415. @type variable
  1416. @default 0
  1417. @desc Specify the interval between blasts by variable.
  1418.  
  1419.  
  1420. @command TargetSelect
  1421. @text TargetSelect
  1422. @desc Target selection.
  1423.  
  1424. @arg SelectResultSwitchId
  1425. @text Switch ID to store selection result
  1426. @type switch
  1427. @default 0
  1428. @desc
  1429. Specify the switch ID that is set to ON if the target is successfully selected.
  1430.  
  1431. @arg SelectedTargetCharacterKindVariableId
  1432. @text Variable ID for selected target character type
  1433. @type variable
  1434. @default 0
  1435. @desc
  1436. Specify a variable ID which stores the character type of the selected target.
  1437.  
  1438. @arg SelectedTargetEventIdVariableId
  1439. @text Variable ID for selected target event ID
  1440. @type variable
  1441. @default 0
  1442. @desc
  1443. Specify a variable ID which stores the event ID of the target.
  1444.  
  1445. @arg Wait
  1446. @text wait
  1447. @type boolean
  1448. @default true
  1449. @desc
  1450. If set to ON, scene will be stopped while target is selected.
  1451.  
  1452. @arg Cancelable
  1453. @text Cancelable
  1454. @type boolean
  1455. @default true
  1456. @desc
  1457. If set to ON, enables cancellation of target selection.
  1458.  
  1459.  
  1460. @command SearchNearBattler
  1461. @text Search for nearby battlers
  1462. @desc Search for the nearest battler from the target.
  1463.  
  1464. @arg Target
  1465. @text Target
  1466. @type select
  1467. @option all battlers
  1468. @value all
  1469. @option enemy character
  1470. @value opponent
  1471. @option friend
  1472. @value friend
  1473. @default all
  1474. @desc Specify the target.
  1475.  
  1476. @arg SubjectCharacterSpecification
  1477. @text Subject character specification
  1478. @type struct<CharacterSpecification>
  1479. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  1480. @desc Specifies the main character.
  1481.  
  1482. @arg StoreResultSwitchId
  1483. @text StoreResultSwitchId
  1484. @type switch
  1485. @default 1
  1486. @desc Specify the switch ID to set ON if an enemy character is found and OFF otherwise.
  1487.  
  1488. @arg StoreCharacterKindVariableId
  1489. @text Variable ID for storing character type
  1490. @type variable
  1491. @default 0
  1492. @desc Specify the variable ID to store the character type of the found battler.
  1493.  
  1494. @arg StoreEventIdVariableId
  1495. @text Variable ID to store event ID
  1496. @type variable
  1497. @default 0
  1498. @desc Specify the variable ID to store the event ID if the found battler is an event.
  1499.  
  1500.  
  1501. @command SetPlayerGuardMode
  1502. @text Player guard mode setting
  1503. @desc Sets the player's guard mode.
  1504.  
  1505. @arg GuardMode
  1506. @text Guard nide
  1507. @type boolean
  1508. @default true
  1509. @desc
  1510. Specifies guard mode ON or OFF.
  1511.  
  1512.  
  1513. @command ChangeControlActor
  1514. @text Change control actor
  1515. @desc Change the manipulation actor. This command has the same behavior as changing the actor by key input.
  1516.  
  1517.  
  1518. @command ShowMessagePopup
  1519. @text Show message popup
  1520. @desc Show message popup
  1521.  
  1522. @arg Text
  1523. @text text
  1524. @type string
  1525. @desc
  1526. Specify the text to display in the popup.
  1527.  
  1528. @arg WindowWidth
  1529. @text Width
  1530. @type number
  1531. @default 640
  1532. @desc
  1533. Specifies the width of the popup window.
  1534.  
  1535. @arg Time
  1536. @text time
  1537. @type number
  1538. @default 60
  1539. @desc
  1540. Specify the display time of the popup.
  1541.  
  1542.  
  1543. @param CopyEventSetting
  1544. @text Copy event common setting
  1545. @type struct<CopyEventSetting>
  1546. @default {"CopyEventTag":"cp","DynamicEventSrcMapIds":"[]"}
  1547. @desc
  1548. Copy event common setting.
  1549.  
  1550. @param BattlerSetting
  1551. @text Battler common setting
  1552. @type struct<BattlerSetting>
  1553. @default {"DamageDegCommonVariableId":"0","UserKindCommonVariableId":"0","UserEventIdCommonVariableId":"0","DamageKindCommonVariableId":"0","DamageTypeCommonVariableId":"0","DamageValueCommonVariableId":"0"}
  1554. @desc
  1555. Common setting for battler.
  1556.  
  1557. @param ActorSetting
  1558. @text Actor common setting
  1559. @type struct<ActorSetting>
  1560. @default {"NormalAttackSkillId":"0","DamageCommonEventId":"0","NormalGuardCommonEventId":"0","JustGuardCommonEventId":"0","StartGuardCommonEventId":"0","EndGuardCommonEventId":"0","JustGuardFrame":"10","ActorHitBox":"{\"AttackHitBoxList\":\"[]\",\"DamageHitBoxList\":\"[]\"}","GameOverCommonEventId":"0","LevelUpCommonEventId":"0"}
  1561. @desc
  1562. Common setting of Actor.
  1563.  
  1564. @param EnemySetting
  1565. @text Enemy common setting
  1566. @type struct<EnemySetting>
  1567. @default {"CollideAttackSkillId":"0","DamageCommonEventId":"0","DefeatEnemyCommonEventId":"0"}
  1568. @desc
  1569. Enemy common setting.
  1570.  
  1571. @param SkillObjectSetting
  1572. @text Skill object common setting
  1573. @type struct<SkillObjectSetting>
  1574. @default {"SkillObjectUserKindSelfVariableId":"0","SkillObjectUserEventIdSelfVariableId":"0","CollisionDetectExSelfSwitchId":"0"}
  1575. @desc
  1576. Configure common settings for skill objects.
  1577.  
  1578. @param HitBoxSetting
  1579. @text Hit box common setting
  1580. @type struct<HitBoxSetting>
  1581. @default {"VisibleHitAreaSwitchId":"0","AttackHitBoxColor":"#ff0000aa","DamageHitBoxColor":"#0000ffaa","CustomHitBoxDefaultColor":"#00ff00aa","CustomHitBoxColorList":"[]"}
  1582. @desc
  1583. Perform common setting of hitbox.
  1584.  
  1585. @param ActionComboSetting
  1586. @text Action combo setting
  1587. @type struct<ActionComboData>[]
  1588. @desc
  1589. Set the action combo.
  1590.  
  1591. @param EnemyHpGaugeSetting
  1592. @text Enemy HP Gauge Setting
  1593. @type struct<EnemyHpGaugeSetting>
  1594. @default {"NormalEnemyHpGaugePosition":"up","NormalEnemyHpGaugeYOffset":"-8","NormalEnemyHpGaugeHeight":"6","NormalEnemyHpGaugeColor1":"#00aa00","NormalEnemyHpGaugeColor2":"#22ff22","BossEnemyHpGaugeLabel":"BOSS","BossEnemyHpGaugeYOffset":"16","BossEnemyHpGaugeWidth":"500","BossEnemyHpGaugeHeight":"12","BossEnemyHpGaugeColor1":"#00aa00","BossEnemyHpGaugeColor2":"#22ff22"}
  1595. @desc
  1596. Enemy HP gauge setting.
  1597.  
  1598. @param KeySetting
  1599. @text Key setting
  1600. @type struct<KeySetting>
  1601. @default {"Menu":"{\"KeyName\":\"escape\",\"KeySymbol\":\"\",\"KeyCode\":\"0\",\"ButtonIndex\":\"-1\"}","ActorNormalAttack":"{\"KeyName\":\"ok\",\"KeySymbol\":\"\",\"KeyCode\":\"0\",\"ButtonIndex\":\"-1\"}","ActorGuard":"{\"KeyName\":\"other\",\"KeySymbol\":\"A\",\"KeyCode\":\"65\",\"ButtonIndex\":\"6\"}","VisibleHitBox":"{\"KeyName\":\"other\",\"KeySymbol\":\"F6\",\"KeyCode\":\"117\",\"ButtonIndex\":\"-1\"}","ChangeControlActor":"{\"KeyName\":\"other\",\"KeySymbol\":\"S\",\"KeyCode\":\"83\",\"ButtonIndex\":\"11\"}"}
  1602. @desc
  1603. Configure various settings for key input.
  1604.  
  1605. @param SESetting
  1606. @text SE Setting
  1607. @type struct<SESetting>
  1608. @default {"ActorChange":"{\"FileName\":\"Decision5\",\"Volume\":\"90\",\"Pitch\":\"100\",\"Pan\":\"0\"}"}
  1609. @desc
  1610. Configure various settings for the SE.
  1611.  
  1612. @param EnableARPGSwitchId
  1613. @text ARPG enable switch ID
  1614. @type switch
  1615. @default 0
  1616. @desc
  1617. Specify the switch ID to enable ARPG.
  1618.  
  1619. @param UseDamagePopup
  1620. @text Use damage popup
  1621. @type boolean
  1622. @default true
  1623. @desc
  1624. If true is set, the damage value will be displayed when the damage caused by the attack occurs.
  1625.  
  1626. @param UseImageDamage
  1627. @text Use Damage Image
  1628. @type boolean
  1629. @default false
  1630. @desc
  1631. If set to true, the image in system/Damage.png will be used for damage display.
  1632.  
  1633. @param UseImageTargetSelectCursor
  1634. @text Use target select cursor image
  1635. @type boolean
  1636. @default false
  1637. @desc
  1638. If set to true, use image as target select cursor.
  1639.  
  1640. @param TargetSelectCursorImageFileName
  1641. @text Target select cursor image file name
  1642. @type file
  1643. @dir img
  1644. @desc
  1645. Specify the target selection cursor image file name.
  1646.  
  1647. @param EnableChangeControlActorSwitchId
  1648. @text Control actor change permission switch ID
  1649. @type switch
  1650. @default 0
  1651. @desc
  1652. Specifies the switch ID that allows modification of the control actor. If set to 0, it is always enabled.
  1653.  
  1654. @param ErrorMessageLanguage
  1655. @text Error message language
  1656. @type select
  1657. @option english
  1658. @value en
  1659. @option Japanese
  1660. @value ja
  1661. @default en
  1662. @desc
  1663. Specifies the display language of error messages.
  1664. */
  1665. /*!/*~struct~CopyEventSetting:
  1666. @param CopyEventTag
  1667. @text CopyEventTag
  1668. @type string
  1669. @default cp
  1670. @desc
  1671. Specify the tag name to determine the event to be copied.
  1672.  
  1673. @param DynamicEventSrcMapIds
  1674. @text List of map IDs from which dynamic events are generated
  1675. @type number[]
  1676. @default []
  1677. @desc
  1678. Set the list of map IDs from which dynamic events are generated.
  1679. */
  1680. /*!/*~struct~BattlerSetting:
  1681. @param DamageDegCommonVariableId
  1682. @text Common variable for storing damage angle
  1683. @type variable
  1684. @default 0
  1685. @desc
  1686. Specify a common variable to store the angle of damage.
  1687.  
  1688. @param UserKindCommonVariableId
  1689. @text Common event variable to store user type
  1690. @type variable
  1691. @default 0
  1692. @desc
  1693. Specify a variable to store the user type (1: player, 3: event) when an action common event is executed by the battler.
  1694.  
  1695. @param UserEventIdCommonVariableId
  1696. @text Common event variable to store user event ID
  1697. @type variable
  1698. @default 0
  1699. @desc
  1700. Specify a variable to store the event ID when an action common event is executed in battler.
  1701.  
  1702. @param DamageKindCommonVariableId
  1703. @text Damage Kind Common Variable ID
  1704. @type variable
  1705. @default 0
  1706. @desc
  1707. Specify the common variable to which the damage type is set when damage is received.
  1708.  
  1709. @param DamageTypeCommonVariableId
  1710. @text Damage type common variable ID
  1711. @type variable
  1712. @default 0
  1713. @desc
  1714. Specify the common variable to which the damage type is set when damage is taken.
  1715.  
  1716. @param DamageValueCommonVariableId
  1717. @text DamageValueCommonVariableID
  1718. @type variable
  1719. @default 0
  1720. @desc
  1721. Specifies the common variable to which the damage value is set when damage is received.
  1722. */
  1723. /*!/*~struct~ActorSetting:
  1724. @param NormalAttackSkillId
  1725. @text Normal attack skill ID
  1726. @type skill
  1727. @default 0
  1728. @desc
  1729. Specify the skill ID for normal attacks.
  1730.  
  1731. @param DamageCommonEventId
  1732. @text Actor damage common event ID
  1733. @type common_event
  1734. @default 0
  1735. @desc
  1736. Specifies the common event to be executed when an actor is damaged.
  1737.  
  1738. @param DeadCommonEventId
  1739. @text Actor dead Common Event ID
  1740. @type common_event
  1741. @default 0
  1742. @desc
  1743. Specifies a common event to execute when an actor becomes dead.
  1744.  
  1745. @param NormalGuardCommonEventId
  1746. @text actor normal guard common event ID
  1747. @type common_event
  1748. @default 0
  1749. @desc
  1750. Specify the common event to be executed when the actor is normally guarded.
  1751.  
  1752. @param JustGuardCommonEventId
  1753. @text Actor JustGuard Common Event ID
  1754. @type common_event
  1755. @default 0
  1756. @desc
  1757. Specify the common event to be executed when the actor just guards.
  1758.  
  1759. @param StartGuardCommonEventId
  1760. @text Actor guard start common event ID
  1761. @type common_event
  1762. @default 0
  1763. @desc
  1764. Specifies the common event to be executed when the actor starts guarding.
  1765.  
  1766. @param EndGuardCommonEventId
  1767. @text Actor Guard End Common Event ID
  1768. @type common_event
  1769. @default 0
  1770. @desc
  1771. Specify the common event to be executed when the actor finishes guarding.
  1772.  
  1773. @param JustGuardFrame
  1774. @text JustGuardFrame
  1775. @type number
  1776. @default 10
  1777. @desc
  1778. Specify the number of just-guarded frames allowed.
  1779.  
  1780. @param ActorHitBox
  1781. @text Actor Hit Box
  1782. @type struct<ActorHitBox>
  1783. @default {"DamageHitBoxList":"[]"}
  1784. @desc Specify the actor hit box setting.
  1785.  
  1786. @param GameOverCommonEventId
  1787. @text GameOver Common Event ID
  1788. @type common_event
  1789. @default 0
  1790. @desc
  1791. Specify the common event ID to be executed when the game is over. 0 specifies that the game is moved to the game over scene.
  1792.  
  1793. @param LevelUpCommonEventId
  1794. @text LevelUpCommonEventID
  1795. @type common_event
  1796. @default 0
  1797. @desc
  1798. Specify the common event to be executed when the level is raised.
  1799. */
  1800. /*!/*~struct~EnemySetting:
  1801. @param CollideAttackSkillId
  1802. @text Collision Attack Skill ID
  1803. @type skill
  1804. @default 0
  1805. @desc
  1806. Specify the skill ID for damage calculation when the enemy collides with the actor.
  1807.  
  1808. @param DamageCommonEventId
  1809. @text Enemy Damage Common Event ID
  1810. @type common_event
  1811. @default 0
  1812. @desc
  1813. Specify the common event to be executed when the enemy is damaged.
  1814.  
  1815. @param DefeatEnemyCommonEventId
  1816. @text Enemy Defeat Common Event ID
  1817. @type common_event
  1818. @default 0
  1819. @desc
  1820. Specify the common event ID to be executed when an enemy is defeated.
  1821. */
  1822. /*!/*~struct~SkillObjectSetting:
  1823. @param SkillObjectUserKindSelfVariableId
  1824. @text SkillObjectUserKindSelfVariable
  1825. @type variable
  1826. @default 0
  1827. @desc
  1828. Specify the self-variable to store the type of the user who created the skill object.
  1829.  
  1830. @param SkillObjectUserEventIdSelfVariableId
  1831. @text Self variable to store skill object user event ID
  1832. @type variable
  1833. @default 0
  1834. @desc
  1835. Specify the self variable to store the event ID when the type of the user who generated the skill object is an event.
  1836.  
  1837. @param CollisionDetectExSelfSwitchId
  1838. @text Ex-self switch ID for collision detect
  1839. @type switch
  1840. @default 0
  1841. @desc
  1842. Specify an ex-self switch ID which will turn ON when the skill object collides the target.
  1843. */
  1844. /*!/*~struct~HitBoxSetting:
  1845. @param VisibleHitAreaSwitchId
  1846. @text switch ID for hit box visibility
  1847. @type switch
  1848. @default 0
  1849. @desc
  1850. Specify the switch ID to switch whether the hit box is visible or not.
  1851.  
  1852. @param AttackHitBoxColor
  1853. @text Attack Hit Box Color
  1854. @type string
  1855. @default #ff0000aa
  1856. @desc
  1857. Specify the color of the attack judgment when the hit box is made visible.
  1858.  
  1859. @param DamageHitBoxColor
  1860. @text Damage Hit Box Color
  1861. @type string
  1862. @default #0000ffaa
  1863. @desc
  1864. Specify the color of the damage judgment when the hit box is made visible.
  1865.  
  1866. @param CustomHitBoxDefaultColor
  1867. @text Custom Hit Box Default Color
  1868. @type string
  1869. @default #00ff00aa
  1870. @desc
  1871. Specifies the default color of the custom hitbox when the hitbox is made visible.
  1872.  
  1873. @param CustomHitBoxColorList
  1874. @text custom hit box color list
  1875. @type string<CustomHitBoxColor>
  1876. @default []
  1877. @desc
  1878. Specify the custom hit box color list for hit box visualization.
  1879. */
  1880. /*!/*~struct~ActionComboData:
  1881. @param SkillId
  1882. @text Skill ID
  1883. @type skill
  1884. @default 0
  1885. @desc
  1886. Specify the skill ID for combo derivation.
  1887.  
  1888. @param ActionComboDerivations
  1889. @text Action combo derivation list
  1890. @type struct<ActionComboDerivation>[]
  1891. @desc
  1892. Specifies a derived list of action combos.
  1893. */
  1894. /*!/*~struct~ActionComboDerivation:
  1895. @param FromSkillId
  1896. @text Origin skill ID
  1897. @type skill
  1898. @default 0
  1899. @desc
  1900. Specify the skill ID from which the combo is derived.
  1901.  
  1902. @param DerivationSkillId
  1903. @text Destination Skill ID
  1904. @type skill
  1905. @default 0
  1906. @desc
  1907. Specify the skill ID of the combo destination. Specify 0 for the first skill in the combo.
  1908.  
  1909. @param MinComboFrame
  1910. @text Minimum combo frame
  1911. @type number
  1912. @min 0
  1913. @default 30
  1914. @desc
  1915. Specifies the time in frames until a combo attack becomes possible.
  1916.  
  1917. @param MaxComboFrame
  1918. @text Maximum combo frame
  1919. @type number
  1920. @min 0
  1921. @default 60
  1922. @desc
  1923. Specifies the maximum time, in frames, allowed for combo attacks.
  1924. */
  1925. /*!/*~struct~EnemyHpGaugeSetting:
  1926. @param NormalEnemyHpGaugePosition
  1927. @text Normal enemy hp gauge position
  1928. @type select
  1929. @option Up
  1930. @value up
  1931. @option Down
  1932. @value down
  1933. @default up
  1934. @desc Sets the display position of the normal enemy HP gauge.
  1935.  
  1936. @param NormalEnemyHpGaugeYOffset
  1937. @text Normal enemy hp gauge Y Offset
  1938. @type number
  1939. @min -9999
  1940. @default -8
  1941. @desc Sets the normal enemy HP gauge display Y coordinate offset.
  1942.  
  1943. @param NormalEnemyHpGaugeHeight
  1944. @text Normal enemy hp gauge height
  1945. @type number
  1946. @min 1
  1947. @default 6
  1948. @desc Sets the height of the normal enemy HP gauge.
  1949.  
  1950. @param NormalEnemyHpGaugeColor1
  1951. @text Normal Enemy HP Gauge Color 1
  1952. @type string
  1953. @default #00aa00
  1954. @desc Set Normal Enemy HP gauge color 1.
  1955.  
  1956. @param NormalEnemyHpGaugeColor2
  1957. @text Normal Enemy HP gauge color 2
  1958. @type string
  1959. @default #22ff22
  1960. @desc Set Normal Enemy HP gauge color 1.
  1961.  
  1962. @param BossEnemyHpGaugeLabel
  1963. @text Boss Enemy HP Gauge Label
  1964. @type string
  1965. @default BOSS
  1966. @desc Sets the text to be displayed next to the Boss Enemy HP gauge.
  1967.  
  1968. @param BossEnemyHpGaugeYOffset
  1969. @text Boss enemy hp gauge Y offset
  1970. @type number
  1971. @min 1
  1972. @default 16
  1973. @desc Sets the display Y coordinate offset of the boss enemy HP gauge.
  1974.  
  1975. @param BossEnemyHpGaugeWidth
  1976. @text Boss enemy hp gauge width
  1977. @type number
  1978. @min 1
  1979. @default 500
  1980. @desc Sets the width of the boss enemy HP gauge.
  1981.  
  1982. @param BossEnemyHpGaugeHeight
  1983. @text Boss enemy hp gauge height
  1984. @type number
  1985. @min 1
  1986. @default 12
  1987. @desc Sets the height of the boss enemy HP gauge.
  1988.  
  1989. @param BossEnemyHpGaugeColor1
  1990. @text Boss Enemy HP Gauge Color1
  1991. @type string
  1992. @default #00aa00
  1993. @desc Set the color of boss enemy HP gauge 1.
  1994.  
  1995. @param BossEnemyHpGaugeColor2
  1996. @text Boss Enemy HP Gauge Color 2
  1997. @type string
  1998. @default #22ff22
  1999. @desc Set Boss Enemy HP gauge color 1.
  2000. */
  2001. /*!/*~struct~KeySetting:
  2002. @param Cancel
  2003. @text Cancel key
  2004. @type struct<Key>
  2005. @default {"KeyName":"escape","KeySymbol":"","KeyCodes":"[]","ButtonIndexes":"[]","KeyCode":"0","ButtonIndex":"-1"}
  2006. @desc
  2007. Specifies the key used for cancellation.
  2008.  
  2009. @param Menu
  2010. @text Menu key
  2011. @type struct<Key>
  2012. @default {"KeyName":"menu","KeySymbol":"","KeyCodes":"[]","ButtonIndexes":"[\"3\"]","KeyCode":"-1","ButtonIndex":"-1"}
  2013. @desc
  2014. Specifies the key to open the menu screen.
  2015.  
  2016. @param ActorNormalAttack
  2017. @text Actor normal attack key
  2018. @type struct<Key>
  2019. @default {"KeyName":"ok","KeySymbol":"","KeyCodes":"[]","ButtonIndexes":"[]","KeyCode":"-1","ButtonIndex":"-1"}
  2020. @desc
  2021. Specify the key for the actor's normal attack.
  2022.  
  2023. @param ActorGuard
  2024. @text Actor guard key
  2025. @type struct<Key>
  2026. @default {"KeyName":"other","KeySymbol":"A","KeyCodes":"[\"65\"]","ButtonIndexes":"[\"6\"]","KeyCode":"-1","ButtonIndex":"-1"}
  2027. @desc
  2028. Specify the key for the actor to guard.
  2029.  
  2030. @param VisibleHitBox
  2031. @text Hitbox visualization toggle key
  2032. @type struct<Key>
  2033. @default {"KeyName":"other","KeySymbol":"F6","KeyCodes":"[\"117\"]","ButtonIndexes":"[]","KeyCode":"-1","ButtonIndex":"-1"}
  2034. @desc
  2035. Specifies the key that toggles the hitbox visualization on/off.
  2036.  
  2037. @param ChangeControlActor
  2038. @text Change control actor
  2039. @type struct<Key>
  2040. @default {"KeyName":"other","KeySymbol":"S","KeyCodes":"[\"83\"]","ButtonIndexes":"[\"11\"]","KeyCode":"-1","ButtonIndex":"-1"}
  2041. @desc
  2042. Specifies the key that modifies the manipulation actor.
  2043. */
  2044. /*!/*~struct~SESetting:
  2045. @param ActorChange
  2046. @text Actor change
  2047. @type struct<SE>
  2048. @default {"FileName":"","Volume":"90","Pitch":"100","Pan":"0"}
  2049. @desc
  2050. Specifies the SE to play when changing actors.
  2051. */
  2052. /*!/*~struct~Key:
  2053. @param KeyName
  2054. @text KeyName
  2055. @type select
  2056. @option decision
  2057. @value ok
  2058. @option cancel
  2059. @value escape
  2060. @option menu
  2061. @value menu
  2062. @option shift
  2063. @value shift
  2064. @option down
  2065. @value down
  2066. @option left
  2067. @value left
  2068. @option right
  2069. @value right
  2070. @option up
  2071. @value up
  2072. @option page up
  2073. @value pageup
  2074. @option page down
  2075. @value pagedown
  2076. @option other
  2077. @value other
  2078. @option unassigned
  2079. @value unassigned
  2080. @default ok
  2081. @desc
  2082. Specify the key.
  2083.  
  2084. @param KeySymbol
  2085. @text key symbol
  2086. @type string
  2087. @desc
  2088. Specify the key symbol when the key is selected as other. Leave blank if not used.
  2089.  
  2090. @param KeyCodes
  2091. @text Key code list
  2092. @type number[]
  2093. @default []
  2094. @desc
  2095. Specify all the key codes to be assigned when the key is selected as Other.
  2096.  
  2097. @param ButtonIndexes
  2098. @text Button index list
  2099. @type number[]
  2100. @default []
  2101. @desc
  2102. Specify all the indexes of the buttons to be assigned when the key is selected as Other.
  2103.  
  2104. @param KeyCode(Scheduled to be discontinued)
  2105. @text key code
  2106. @type number
  2107. @min -1
  2108. @default -1
  2109. @desc
  2110. Specify the key code when the key is selected as other. Specify -1 if keyboard is not used.
  2111.  
  2112. @param ButtonIndex(Scheduled to be discontinued)
  2113. @text ButtonIndex
  2114. @type number
  2115. @min -1
  2116. @default -1
  2117. @desc
  2118. Specify the index of the button when the key is selected as other. Specify -1 if gamepad is not used.
  2119. */
  2120. /*!/*~struct~Box:
  2121. @param X
  2122. @text X coordinate
  2123. @type number
  2124. @min -9999
  2125. @decimals 2
  2126. @default 0
  2127. @desc
  2128. Specify X coordinate.
  2129.  
  2130. @param Y
  2131. @text Y coordinate
  2132. @type number
  2133. @min -9999
  2134. @decimals 2
  2135. @default 0
  2136. @desc
  2137. Specify Y coordinate.
  2138.  
  2139. @param Width
  2140. @text width
  2141. @type number
  2142. @min 0
  2143. @decimals 2
  2144. @default 1
  2145. @desc
  2146. Specify the width.
  2147.  
  2148. @param Height
  2149. @text height
  2150. @type number
  2151. @min 0
  2152. @decimals 2
  2153. @default 1
  2154. @desc
  2155. Specify the height.
  2156. */
  2157. /*!/*~struct~CustomHitBoxColor:
  2158. @param CustomHitBoxTag
  2159. @text custom hit box tag
  2160. @type string
  2161. @desc Specify the tag for the custom hit box.
  2162.  
  2163. @param Color
  2164. @text Color
  2165. @type string
  2166. @default #00ff00aa
  2167. @desc
  2168. Specifies the color of the custom hitbox when the hitbox is made visible.
  2169. */
  2170. /*!/*~struct~SkillObjectPosition:
  2171. @param Specification
  2172. @text Position specification
  2173. @type select
  2174. @option current coordinate
  2175. @value current
  2176. @option forward coordinate
  2177. @value forward
  2178. @option character coordinates
  2179. @value character
  2180. @option custom coordinates
  2181. @value custom
  2182. @default current
  2183. @desc
  2184. Select the position specification method.
  2185.  
  2186. @param CharacterSpecification
  2187. @text Character specification
  2188. @type struct<CharacterSpecification>
  2189. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  2190. @desc Specifies the target character when the character coordinates are selected by position specification.
  2191.  
  2192. @param CustomPosition
  2193. @text custom coordinates
  2194. @type struct<Position>
  2195. @desc
  2196. Specify the generated coordinates when custom coordinates are selected for position specification.
  2197. */
  2198. /*!/*~struct~TransparentObjectPosition:
  2199. @param Specification
  2200. @text Position specification
  2201. @type select
  2202. @option character coordinate
  2203. @value character
  2204. @option custom coordinates
  2205. @value custom
  2206. @default current
  2207. @desc
  2208. Select the position specification method.
  2209.  
  2210. @param CharacterSpecification
  2211. @text Character specification
  2212. @type struct<CharacterSpecification>
  2213. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  2214. @desc Specifies the target character when the character coordinates are selected by position specification.
  2215.  
  2216. @param CustomPosition
  2217. @text custom coordinates
  2218. @type struct<Position>
  2219. @desc
  2220. Specify the generated coordinates when custom coordinates are selected by position specification.
  2221. */
  2222. /*!/*~struct~Position:
  2223. @param X
  2224. @type number
  2225. @text X coordinate
  2226. @default 0
  2227. @desc Specify X coordinate to generate event.
  2228.  
  2229. @param XByVariable
  2230. @type variable
  2231. @text X-coordinate (specify variable)
  2232. @default 0
  2233. @desc Specify the X coordinate to generate event by variable. If you set the value directly, specify 0 for this parameter.
  2234.  
  2235. @param Y
  2236. @type number
  2237. @text Y coordinate
  2238. @default 0
  2239. @desc Specify Y coordinate to generate event.
  2240.  
  2241. @param YByVariable
  2242. @type variable
  2243. @text Y-coordinate (specify variable)
  2244. @default 0
  2245. @desc Specify the Y coordinate to generate event by variable. If a direct value is set, specify 0 for this parameter.
  2246. */
  2247. /*!/*~struct~ActorHitBox:
  2248. @param DamageHitBoxList
  2249. @type struct<Box>[]
  2250. @text Damage judgment hit box list
  2251. @default []
  2252. @desc Set the damage judgment hit box.
  2253. */
  2254. /*!/*~struct~SE:
  2255. @param FileName
  2256. @text SE file name
  2257. @type file
  2258. @dir audio/se
  2259. @desc
  2260. Specify the SE file name to be played.
  2261.  
  2262. @param Volume
  2263. @text SE volume
  2264. @type number
  2265. @default 90
  2266. @desc
  2267. Specify the volume of SE to be played.
  2268.  
  2269. @param Pitch
  2270. @text SE pitch
  2271. @type number
  2272. @default 100
  2273. @desc
  2274. Specify the pitch of the SE to be played.
  2275.  
  2276. @param Pan
  2277. @text SE phase
  2278. @type number
  2279. @default 0
  2280. @desc
  2281. Specify the pan of SE to be played.
  2282. */
  2283. /*!/*~struct~CharacterSpecification:
  2284. @param CharacterKind
  2285. @text Character Kind
  2286. @type select
  2287. @option thisEvent
  2288. @value thisEvent
  2289. @option player
  2290. @value player
  2291. @option follower
  2292. @value follower
  2293. @option event
  2294. @option event
  2295. @option vehicle
  2296. @value vehicle
  2297. @default thisEvent
  2298. @desc
  2299. Specify the character type.
  2300.  
  2301. @param CharacterKindByVariable
  2302. @text Character type (variable specification)
  2303. @type variable
  2304. @default 0
  2305. @desc
  2306. Specify character type by variable.
  2307.  
  2308. @param EventIdOrName
  2309. @text event ID or event name
  2310. @type string
  2311. @default 1
  2312. @desc
  2313. Specify the event ID or event name when an event is specified for the character type.
  2314.  
  2315.  
  2316. @param EventIdByVariable
  2317. @text event ID (variable specification)
  2318. @type variable
  2319. @default 0
  2320. @desc
  2321. Specify the event ID as a variable when an event is specified for the character type.
  2322.  
  2323. @param FollowerIndex
  2324. @text follower index
  2325. @type number
  2326. @min 1
  2327. @default 1
  2328. @desc
  2329. Specify the order of target followers when follower is specified as the character type.
  2330.  
  2331. @param FollowerIndexByVariable
  2332. @text follower index (specify variable)
  2333. @type variable
  2334. @default 0
  2335. @desc
  2336. Specify the order of target followers by variable when follower is specified for character type.
  2337.  
  2338. @param VehicleKind
  2339. @text Vehicle type
  2340. @type select
  2341. @option small boat
  2342. @value boat
  2343. @option large ship
  2344. @value ship
  2345. @option airship
  2346. @value airship
  2347. @default boat
  2348. @desc
  2349. Specifies the target vehicle when a vehicle is specified for the character type.
  2350.  
  2351. @param VehicleKindByVariable
  2352. @text Vehicle type (specify variable)
  2353. @type variable
  2354. @default 0
  2355. @desc
  2356. Specify the target vehicle by variable when a vehicle is specified for the character type.
  2357. */
  2358. /*!/*~struct~SkillSpecification:
  2359. @param SkillOrItem
  2360. @text skill or item
  2361. @type select
  2362. @option skill
  2363. @value skill
  2364. @option item
  2365. @value item
  2366. @default skill
  2367. @desc Select whether to specify a skill or an item.
  2368.  
  2369. @param SkillId
  2370. @type skill
  2371. @text Skill ID
  2372. @default 1
  2373. @desc Specify the ID of the skill to be used. If a name or variable is specified, it takes precedence.
  2374.  
  2375. @param SkillByName
  2376. @type string
  2377. @text Skill (specify name)
  2378. @desc Specify the name of the skill to be used. If you do not use the name specification, leave it blank.
  2379.  
  2380. @param SkillIdByVariable
  2381. @type variable
  2382. @text Skill ID (specify variable)
  2383. @default 0
  2384. @desc Specify the ID of the skill to be used by variable. If you do not use variable specification, set it to 0.
  2385.  
  2386. @param ItemId
  2387. @type item
  2388. @text Item ID
  2389. @default 1
  2390. @desc Specifies the ID of the item to be used. If a name or variable is specified, it takes precedence.
  2391.  
  2392. @param ItemByName
  2393. @type string
  2394. @text Item (specify name)
  2395. @desc Specify the name of the item to be used. Leave blank if you do not use naming.
  2396.  
  2397. @param ItemIdByVariable
  2398. @type variable
  2399. @text Item ID (variable specification)
  2400. @default 0
  2401. @desc Specify the ID of the item to be used by variable. If you do not use variable specification, set it to 0.
  2402. */
  2403. /*!/*:ja
  2404. @target MZ
  2405. @plugindesc ARPGコア v1.6.3
  2406. @author うなぎおおとろ
  2407.  
  2408. @help
  2409. 【概要】
  2410. 本プラグインはツクールMZのシステムをARPGに変換する機能を提供します。
  2411.  
  2412. ■ 特徴
  2413. 本プラグインはアクションRPGに必要なプレイヤーやエネミーのステータス管理、
  2414. 当たり判定の設定、攻撃処理の設定といった機能を提供します。
  2415.  
  2416. ダメージを与えるオブジェクト(剣による斬撃や弾の発射など)は全てイベントを動的に設定することで
  2417. 実現します。このため、非常にカスタマイズ性の高いプラグインになっています。
  2418.  
  2419. また、ダメージを受けた場合の処理などもコモンイベントによって作成することが可能です。
  2420. 例えば、サンプルゲームではダメージを受けた場合、キャラクターがダメージを受けた方向にノックバックしますが、
  2421. これはコモンイベントからキャラクター吹き飛ばし用のプラグインコマンドを実行することで実現しています。
  2422. この機能を活用すれば、例えば連続して攻撃を当てた場合のみ吹き飛ばすといったコンボ的なシステムを導入することも可能です。
  2423.  
  2424. また、本プラグインではドット移動プラグインの上に構築していますので、あらゆるキャラクターの移動を
  2425. ドット単位で制御でき、非常にアクション性の高いゲームを作ることが可能です。
  2426. 例えば敵キャラとプレイヤーの角度を計算し、その方向に向けて弾を飛ばすことで、
  2427. プレイヤーを追撃する攻撃なども実現できます。
  2428.  
  2429. ■ 依存プラグイン
  2430. 本プラグインの導入に当たっては以下のプラグインを必須とします。
  2431.  
  2432. ・ドット移動システム(DotMoveSystem.js)
  2433. キャラクターをドット単位で制御するために使用します。
  2434.  
  2435. ・ドット移動機能拡張プラグイン(DotMoveSystem_FunctionEx.js)
  2436. ドット移動システム本体に様々な拡張機能を追加するプラグインです。
  2437.  
  2438. ・セルフ変数プラグイン(SelfVariable.js)
  2439. セルフ変数や拡張セルフスイッチ、コモンイベント変数/スイッチを提供するプラグインです。
  2440. ARPGコアでは様々なゲーム中でのフラグを自動的にセルフ変数として
  2441. イベントに設定することがありますので(スキルを使用したユーザーのIDなど)、
  2442. そのために使用します。
  2443.  
  2444. これらの依存プラグインを含めた本プラグインの導入順については以下のように導入してください。
  2445. ・DotMoveSystem.js
  2446. ・DotMoveSystem_FunctionEx.js
  2447. ・SelfVariable.js
  2448. ・ARPG_Core.js
  2449.  
  2450. 【機能詳細】
  2451. [全般]
  2452. ■ ARPGモードの開始と終了
  2453. プラグインコマンドの「ARPGモード切り替え」でONを設定するとARPGモードを開始します。
  2454. OFFにした場合はARPGモードを終了します。
  2455. ARPGモードになるとフィールドでの敵との戦闘が可能になります。
  2456. 現在のARPGモードがONであるかはプラグインパラメータ「ARPGモードスイッチ」で
  2457. 設定したスイッチによって確認することができます。
  2458.  
  2459. ※注意1: マップを移動した場合、ARPGモードは自動的にOFFに切り替わります。
  2460. ※注意2: ARPGモードスイッチを変更しても効果はありません。ARPGモードの切り替えは
  2461. 必ずこのコマンドによって行う必要があります。
  2462. ※注意3: ARPG戦闘中はセーブを行うことができません。
  2463.  
  2464.  
  2465. [コピーイベント/動的イベント関連]
  2466. ■ イベントのコピー
  2467. イベントのメモ欄に以下のように記述すると、プラグインパラメータで指定した
  2468. 動的イベントコピー元マップの一覧から指定したイベントをコピーします。
  2469. <cp: コピー元イベント名前またはイベントID>
  2470.  
  2471. また、以下のように記述することでコピー元のマップを限定することも可能です。
  2472. <cp: コピー元マップID,コピー元イベント名前またはイベントID>
  2473.  
  2474. ※注意: コピー元となるマップのIDについては全てプラグインパラメータ
  2475.        「コピーイベント共通設定/動的イベント生成元マップID一覧」に設定する必要があります。
  2476.  
  2477. ■ 動的イベントの生成
  2478. プラグインコマンド「動的イベント生成」を実行することで動的にイベントを生成することができます。
  2479. 動的イベントのコピー元となるイベントはプラグインパラメータ「動的イベント生成元マップID一覧」に
  2480. 登録されたマップに配置する必要があります。
  2481.  
  2482. ■ 動的イベントの削除
  2483. 生成した動的イベントはイベントコマンド「イベントの一時消去」を
  2484. 実行することで完全に消去されます。
  2485.  
  2486.  
  2487. [アクター関連]
  2488. ■ ガードについて
  2489. ARPG戦闘中にAキーを押している間、プレイヤーはガードを行います。
  2490. ガード中にプレイヤーの向きと反対方向から攻撃を受けた場合、ガード中であればダメージを半減します。
  2491. また、攻撃をガードする直前でガードした場合はジャストガードとなり、ダメージを完全に無力化します。
  2492.  
  2493. ガード成功判定に使用する攻撃の方向については「スキルオブジェクトの攻撃角度」を参照してください。
  2494.  
  2495. ガード機能を使用しない場合、プラグインパラメータ「キー共通設定/アクターガードキー」の
  2496. キー名を「未割り当て」に設定してください。
  2497.  
  2498. また、ガード機能は使用するがジャストガードを使用しない場合、
  2499. ジャストガードのフレーム数に0を設定してください。
  2500.  
  2501. ■ プラグインコマンドによるガード設定
  2502. ガードはAキーを押す以外にもプラグインコマンドを実行してガードさせることも可能です。
  2503. プラグインコマンド「プレイヤーガードモード設定」でガードモードをONに設定すると、
  2504. その間はガードした状態になります。OFFに設定するとガードを解除します。
  2505. この機能は主にキーボードやゲームパッドがない環境でガードを行うことを想定しています。
  2506.  
  2507. ■ アクター切り替え
  2508. Sキーを押すと、プレイヤーのアクターを切り替えることができます。
  2509. この機能はARPGモードのON/OFFにかかわらず使用可能です。
  2510.  
  2511. また、プラグインコマンド「操作アクター変更」を実行することでも
  2512. アクターの切り替えが可能です。
  2513.  
  2514. プラグインパラメータ「操作アクター変更許可スイッチID」で設定した
  2515. スイッチがOFFになるとキー入力によるアクター切り替えが無効になります。
  2516. プラグインコマンドによる操作アクターの変更はスイッチのON/OFFにかかわらず
  2517. 使用することが可能です。
  2518.  
  2519. ※注意: アクターが攻撃中またはダメージを受けている途中の場合は
  2520. アクターを切り替えることはできません。また、アクターの切り替えができない間は
  2521. メニュー画面の並び替え機能も使用できません。
  2522.  
  2523.  
  2524. [エネミー関連]
  2525. ■ 敵キャラの設定について
  2526. 敵キャラのイベント内において、並列処理、または自動実行によって
  2527. プラグインコマンド「エネミー設定」を実行することで、それを実行したイベントは
  2528. 敵キャラとして扱われます。
  2529. なお、「エネミー設定」は必ずARPGモードがONの場合に実行してください。
  2530.  
  2531. 敵キャラ設定時に引数で「衝突攻撃スキルID」「敵撃破コモンイベントID」
  2532. 「エネミーダメージコモンイベントID」を設定することができますが、
  2533. これらの値に0を指定した場合、プラグインパラメータ「エネミー共通設定」
  2534. にある同一名のパラメータの値が適用されます。
  2535.  
  2536. ■ 敵キャラのHP表示
  2537. プラグインコマンド「エネミー設定」で「HPゲージ」を設定することで、敵キャラのHPを表示することが可能です。
  2538. "ノーマル"を設定した場合、敵キャラに直接HPゲージを表示します。
  2539. "ボス"を設定した場合、画面上部に大きなHPゲージを表示します。
  2540.  
  2541.  
  2542. [スキル関連]
  2543. ■ スキルの作成
  2544. スキルのメモ欄に<action: コモンイベント名またはID>と記載すると、
  2545. そのスキルを実行したときに該当のコモンイベントが呼び出されます。
  2546. このコモンイベントのことを「アクションコモンイベント」といいます。
  2547. アクションコモンイベント内では、プラグインコマンド「スキル発動」を実行することで、
  2548. スキルを発動し、MPあるいはTPの消費が行われます。
  2549.  
  2550. この状態で、「スキルオブジェクト生成」を行うことで、スキルオブジェクトが生成されます。
  2551. スキルオブジェクトとは、バトラーに当たるとダメージを与えたりHPを回復させたりなど
  2552. スキルの効果をバトラーに与えることができるイベントのことです。
  2553. シューティングゲームでプレイヤーや敵キャラが発射した弾がスキルオブジェクトと考えると
  2554. イメージがつきやすいかと思います。
  2555. スキルオブジェクトがバトラーに衝突した場合、スキルで設定した効果が衝突したバトラーに適用されます。
  2556. なお、スキルオブジェクトの当たり判定についてはデフォルトではスキルオブジェクトとした
  2557. イベントのサイズがそのまま当たり判定となりますが、以下の「■ 当たり判定の設定」
  2558. の手順によって自由に当たり判定をカスタマイズすることが可能です。
  2559.  
  2560. 「スキル発動」を実行しなかった場合、MP/TPの消費は行われません。これを利用して
  2561. スキルアクションのコモンイベント実行時にスキル発動条件が成立(例えば近くに敵キャラがいるか等)しなかった場合は
  2562. スキルを実行しないといったようなことも実現可能です。
  2563.  
  2564. ※注意: スキル発動を行わずにスキルオブジェクト生成を行うことはできません。行った場合はエラーが表示されます。
  2565.  
  2566. ■ アクションコモンイベント内で使用可能なコモンイベント変数
  2567. スキル使用時に実行されるコモンイベントでは「ユーザー種別格納コモンイベント変数」と
  2568. 「ユーザーイベントID格納コモンイベント変数」を使用することができます。
  2569.  
  2570. ユーザー種別格納コモンイベント変数にはアクションコモンイベントを実行したユーザーとなる
  2571. キャラクターの種別が自動的に格納されます。
  2572.  
  2573. ユーザーイベントID格納コモンイベント変数にはアクションコモンイベントを実行したユーザーとなる
  2574. キャラクターがイベントだった場合にイベントIDが自動的に格納されます。
  2575.  
  2576. この2つを組み合わせることで各種プラグインコマンドのキャラクター指定引数にて
  2577. スキルを使用したキャラクターを指定することができるようになります。
  2578.  
  2579. ※ これらの変数は必ずコモンイベント変数としてください。
  2580.  
  2581. ■ アクションコモンイベントにコモンイベント変数/スイッチの値を渡す
  2582. スキルのメモ欄に以下のように記述することで、指定したアクションコモンイベント実行時に
  2583. 予め値を設定しておくことが可能です。
  2584. ・コモンイベント変数を設定する場合
  2585. <set-var 変数ID, 値>
  2586. (例) ID=10の変数に値100を設定する
  2587. <set-var 10, 100>
  2588.  
  2589. ・コモンイベントスイッチを設定する場合
  2590. <set-sw スイッチID, 値>
  2591. (例) ID=10のスイッチをONに設定する
  2592. <set-sw 10>
  2593.  
  2594. ※ これらの変数/スイッチは必ずコモンイベント変数またはコモンイベントスイッチとしてください。
  2595. ※ 本機能はARPG_Core v1.4.0より追加されました。
  2596.  
  2597. ■ スキルオブジェクトとして生成したイベント内で使用可能なセルフ変数
  2598. プラグインコマンド「スキルオブジェクト生成」によって生成されたイベントでは
  2599. セルフ変数「スキルオブジェクトユーザー種別格納セルフ変数」と
  2600. 「スキルオブジェクトユーザーイベントID格納セルフ変数」を使用することができます。
  2601.  
  2602. スキルオブジェクトユーザー種別格納セルフ変数にはスキルオブジェクト生成を実行した
  2603. ユーザーとなるキャラクターの種別が格納されます。
  2604.  
  2605. スキルオブジェクトユーザーイベントID格納セルフ変数にはスキルオブジェクト生成を実行した
  2606. ユーザーとなるキャラクターがイベントだった場合にイベントIDが格納されます。
  2607.  
  2608. ※ これらの変数は必ずセルフイベント変数としてください。
  2609.  
  2610. ■ ダメージを受けた時に使用中のスキルをキャンセルする
  2611. プラグインコマンド「ダメージスキルキャンセル有効/無効切り替え」を有効に設定すると、
  2612. ダメージを受けた時にスキルがキャンセルされ、スキルコモンイベントを強制終了します。
  2613.  
  2614. また、プラグインコマンド「スキル発動」で詠唱コモンイベントIDを指定すると、
  2615. スキル発動までそのコモンイベントを実行し、その間はダメージによるスキルキャンセルが有効になります。
  2616. 「ダメージスキルキャンセル有効/無効切り替え」でも同様のことは実現できますが、
  2617. スキル詠唱が目的の場合はこちらを利用した方がシンプルです。
  2618.  
  2619. ※スキルキャンセルとする最大HPダメージ比率はプラグインコマンド「バトラーARPGパラメータ設定」で
  2620. 「スキルキャンセルダメージレート」を設定することによって変更可能です。
  2621. 設定しなかった場合は1ダメージでも受けるとスキルキャンセルとなります。
  2622.  
  2623. ■ スキル完了、またはキャンセル時の移動速度の差し戻し
  2624. スキルを発動したとき、移動速度などのデータが保持されます。
  2625. 保持されたデータはスキル完了、またはキャンセル時に復元されます。
  2626. この機能を使用することで例えば攻撃モーションのキャンセル時などに
  2627. 移動速度などを元に戻すことを意識する必要がなくなります。
  2628.  
  2629. スキル発動時に保持されるデータは以下の通りとなります。
  2630. ・移動速度
  2631. ・キャラクターの画像およびインデックス
  2632. ・向き固定有無
  2633.  
  2634. ※ 本機能はARPG_Core v1.4.0より追加されました。
  2635.  
  2636. ■ スキルオブジェクトの攻撃角度
  2637. スキルオブジェクトに対してプラグインコマンド「攻撃角度指定」を実行することで
  2638. スキルオブジェクトに攻撃角度を設定することが可能です。
  2639. ここで設定した攻撃角度はガード時にスキルオブジェクトの方を向いているかの
  2640. 判定を行う用途に使用されます。
  2641.  
  2642. また、ここで設定された値はダメージを受けた時に実行されたコモンイベント内で
  2643. コモンイベント変数「ダメージ角度格納コモン変数」を読みだすことで取得することが可能です。
  2644. これをプラグインコマンド「キャラクター吹き飛ばし」と組み合わせることで
  2645. ダメージを受けた方向にキャラクターを吹き飛ばすといったことが実現可能です。
  2646.  
  2647. ■ スキルオブジェクトの位置と使用者の移動を連動させる
  2648. スキルオブジェクトに対してプラグインコマンド「スキルオブジェクト使用者位置同期」を実行することで
  2649. スキルオブジェクトの位置と使用者の移動を連動させることができます。
  2650. この機能を使用することで例えばダッシュしながら攻撃するといったことも可能になります。
  2651.  
  2652. ■ スキル効果の適用
  2653. スキル発動後、プラグインコマンド「スキル効果適用」を実行すると、
  2654. 該当のスキルの効果を使用者に適用することができます。
  2655. ※ スキルのダメージのみが適用されます。使用効果は適用されません。
  2656.  
  2657. また、プラグインコマンド「スキル効果適用テスト」を実行した場合、
  2658. スキル効果の適用が可能であるかを事前にチェックすることができます。
  2659. この機能を使うことで例えばHP満タンの場合は回復アイテムは
  2660. 使用できないといったことが実現可能です。
  2661.  
  2662. ■ スキル発動時のスキル名表示
  2663. スキルのメモ欄に以下のように記載することでスキル発動時に
  2664. ポップアップウィンドウを表示することができます。
  2665. この場合、スキルの"メッセージ"で設定したテキストが表示されます。
  2666. <showSkillName>
  2667.  
  2668. ■ ダメージを受けた時の無敵時間の設定
  2669. スキルのメモ欄に以下のように記載することでスキルによる
  2670. ダメージを受けた時の無敵時間を設定することができます。
  2671. <noDamageFrame: 無敵時間>
  2672.  
  2673. 例: 無敵時間を60フレームに設定する場合
  2674. <noDamageFrame: 60>
  2675.  
  2676. ※ この設定を省略した場合、無敵時間は30フレームになります。
  2677.  
  2678. ■ スキル使用後の攻撃禁止時間の設定
  2679. スキルのメモ欄に以下のように記載することでスキル使用後の
  2680. 攻撃禁止時間を設定することができます。
  2681. <noAttackFrame: 攻撃禁止時間>
  2682.  
  2683. 例: 攻撃禁止時間を120フレームに設定する場合
  2684. <noAttackFrame: 120>
  2685.  
  2686. ※ この設定を省略した場合、攻撃禁止時間は60フレームになります。
  2687.  
  2688. ■ スキル発動時の慣性移動キャンセルの指定
  2689. スキルのメモ欄に以下のように記載することでスキル発動時に
  2690. 慣性移動をキャンセルすることができます。
  2691. <cancelAcceleration: true>
  2692.  
  2693. 以下のように設定した場合はスキル発動後もそのまま慣性移動を行います。
  2694. <cancelAcceleration: false>
  2695.  
  2696. ※ この設定を省略した場合、慣性移動キャンセルは有効になります。
  2697.  
  2698. ■ スキル発動時の移動禁止の指定
  2699. スキルのメモ欄に以下のように記載することでスキル発動時に
  2700. 移動を禁止することができます。
  2701. <disableMove: true>
  2702.  
  2703. 以下のように設定した場合はスキル発動後もそのまま慣性移動を行います。
  2704. <disableMove: false>
  2705.  
  2706. ※ この設定を省略した場合、移動禁止は有効になります。
  2707. ※ 禁止するのはキーまたはタッチによるプレイヤー移動および自律移動のみとなります。
  2708.    イベントコマンドからの移動は禁止されません。
  2709.  
  2710. ■ キャラクター衝突時のダメージ判定用スキルの上書き
  2711. スキルのメモ欄に以下のように記載することでスキル使用中に
  2712. 敵と衝突した場合に敵にダメージを与えるスキルを使用したもので上書きすることができます。
  2713. <overwriteCollideAttack>
  2714.  
  2715. なお、上書きした場合はスキル終了時に自動的に元の設定に戻ります。
  2716.  
  2717.  
  2718. [フィールドオブジェクト関連]
  2719. ■ フィールドオブジェクト
  2720. フィールドオブジェクトとはプレイヤーでもエネミーでもないが当たり判定が設定可能な
  2721. オブジェクトのことを指します。剣で破壊可能な草や、矢が当たるとONになるスイッチなどを
  2722. 想定しています。
  2723. フィールドオブジェクトの当たり判定は「ダメージ判定」または「カスタム判定」を設定することができます。
  2724. 当たり判定判定の詳細については「■ 当たり判定の設定」を参照してください。
  2725.  
  2726. ■ フィールドオブジェクトのダメージ処理
  2727. フィールドオブジェクトに「ダメージ判定」を設定すると、攻撃判定が接触したときに
  2728. 「フィールドオブジェクトダメージコモンイベントID」で設定したコモンイベントが呼び出されます。
  2729.  
  2730. ※ フィールドオブジェクトはHPを持たないため、ダメージ処理で行うのはコモンイベントの呼び出しのみです。
  2731.    この処理は主に剣攻撃が草に当たった時に草を破壊する、といった用途を想定しています。
  2732.  
  2733.  
  2734. [当たり判定関連]
  2735. ■ 当たり判定の設定
  2736. プラグインコマンド「当たり判定設定」で当たり判定の設定を行うことができます。
  2737. 当たり判定は以下の種類があります。
  2738. 攻撃判定: この判定が「ダメージ判定」と接触した場合、ダメージ判定の設定者にダメージを与えます。
  2739. ダメージ判定: この判定が「攻撃判定」と接触した場合、攻撃判定の設定者からダメージを受けます。
  2740. カスタム判定: ユーザーが独自に定義可能な当たり判定です。ここで設定した当たり判定は
  2741.              プラグインコマンド「当たり判定チェック」でチェックすることができます。
  2742.  
  2743. 当たり判定は以下のキャラクターに対して設定することが可能です。
  2744. それ以外のキャラクターに対して当たり判定を設定するとエラーになります。
  2745. ・プレイヤー(全ての当たり判定が設定可能)
  2746. ・エネミー(全ての当たり判定が設定可能)
  2747. ・フィールドオブジェクト(ダメージ判定/カスタム判定のみ設定可能)
  2748. ・スキルオブジェクト(攻撃判定/カスタム判定のみ設定可能)
  2749.  
  2750. ※ プレイヤーの当たり判定はプラグインパラメータ「プレイヤー当たり判定設定」で行えます。
  2751.  
  2752. ■ プラグインコマンドによる当たり判定チェック
  2753. 攻撃判定とダメージ判定に応じたダメージ処理はプラグイン側で自動的に行われますが、
  2754. プラグインコマンド「当たり判定チェック」によって
  2755. 好きなタイミングで当たり判定のチェックを行うことが可能です。
  2756.  
  2757. ■ 当たり判定の可視化
  2758. プラグインパラメータ「ヒットボックス共通設定/ヒットボックス可視化切り替え」で指定した
  2759. スイッチをONにすると、ヒットボックスが可視化されます。
  2760.  
  2761. また、プラグインパラメータ「ヒットボックス可視化切り替えキー」で
  2762. 設定したキー(デフォルトではF6)を押すと、自動的にヒットボックスの可視化状態を切り替えることが可能です。
  2763. なお、この機能はテストプレイ中のみ有効です。
  2764. ※ スイッチの設定でヒットボックスを可視化した場合はテストプレイでなくても可視化可能です。
  2765.  
  2766.  
  2767. [コンボ攻撃機能]
  2768. プラグインパラメータ「アクションコンボ設定」を設定することで、コンボ攻撃を簡単に作成することが可能です。
  2769. これを設定すると「最小コンボ可能時間」~「最大コンボ可能時間」以内に「派生元スキルID」で
  2770. 指定されたスキルが実行された場合、そのスキルを「派生先スキルID」で指定したものに
  2771. 上書きしたうえで実行することが可能です。
  2772. また、コンボ先の設定が存在していた場合、noAttackFrameで設定した攻撃禁止時間は無視されて
  2773. 最小コンボ可能時間によって攻撃可能有無の判定が行われます。
  2774. ※ 本機能はARPG_Core v1.4.0より追加されました。
  2775.  
  2776.  
  2777. [その他]
  2778. ■ 時間経過で解消されるステートの設定
  2779. ARPGでは時間経過でステートを解消したい場面も多くあるかと思いますので、
  2780. そのための機能を用意しています。
  2781. ステートのメモ欄で以下の記載をすることで指定したフレーム数が経過したタイミングで
  2782. ステートを解消することができるようになります。
  2783. <duration: フレーム数>
  2784.  
  2785. 例えば10秒後にステートを解消する場合は以下のように設定します。(1秒=60フレーム)
  2786. <duration: 60>
  2787.  
  2788. この設定だけではステートの重ね掛けを行った場合でも残りフレーム数は更新されません。
  2789. ステートの重ね掛けで残りフレーム数を更新する場合、以下の内容をメモ欄に記載する必要があります。
  2790. <overWriteDuration>
  2791.  
  2792. ■ 武器ごとのスキル設定
  2793. 武器の種類に応じて通常攻撃時のスキルを切り替えることが可能です。
  2794. 武器のメモ欄に以下の記載をすることで指定したスキルを実行します。
  2795. <skill: スキル名>
  2796.  
  2797. ※ 二刀流を設定した場合、最初に装備している武器の設定のみが反映されます。
  2798.  
  2799. ■ 透明オブジェクト発射
  2800. 透明なオブジェクトを発射し、当たり判定チェックを行うことができます。
  2801. 例えば前方に敵がいるかをチェックするなどの用途で使用することが可能です。
  2802. 透明オブジェクトの衝突対象については「プライオリティが通常キャラと同じに設定されたイベント」
  2803. と同じになります。
  2804.  
  2805. ※注意
  2806. 透明オブジェクトを生成した位置にすでにキャラクターがいた場合、
  2807. 透明オブジェクトはそのキャラクターをすり抜け対象にします。
  2808.  
  2809. ■ ターゲット選択機能
  2810. プラグインコマンド「ターゲット選択」を実行することで
  2811. ゲーム上でカーソルによるプレイヤーまたはエネミーの選択が可能です。
  2812. これによって例えば選択した敵キャラに向けて弾を発射するといったことが
  2813. 可能になります。
  2814.  
  2815. また、ウェイトをONにした場合は選択中は時間を停止することができ、
  2816. OFFにした場合はリアルタイムで選択することができます。
  2817.  
  2818. キャンセル可能をONにするとターゲット選択中にキャンセルボタンを押した場合、
  2819. ターゲット選択をキャンセルすることが可能です。
  2820. この場合、選択結果格納スイッチに格納される結果はOFFになります。
  2821.  
  2822. ■ イベントの画面内判定
  2823. プラグインパラメータ「キャラクター画面内判定」を実行することで
  2824. 指定したキャラクターが画面内にいるかを判定することができます。
  2825.  
  2826. ■ ダメージを受けた時の属性の判定
  2827. ダメージを受けた時に実行されるコモンイベント内でプラグインコマンド「ダメージ属性チェック」を
  2828. 実行することで、どの属性によってダメージを受けたかを判定することができます。
  2829. ※注意: 通常攻撃は属性として判定することはできません。
  2830.  
  2831. ■ 攻撃時の属性を増やす
  2832. 通常、スキルに付与可能な属性は1つのみですが、メモ欄に以下のように記載することで
  2833. 属性を増やすことが可能です。この設定は1つのメモ欄内で複数使用することが可能です。
  2834. <damageElement: 属性名>
  2835.  
  2836. 例: 炎と氷の属性を追加する場合
  2837. <damageElement: 炎>
  2838. <damageElement: 氷>
  2839.  
  2840. ■ キャラクターのウェイト
  2841. プラグインコマンド「キャラクターアクションウェイト」を実行することで、キャラクターのイベントを一定時間
  2842. 停止することができます。イベントコマンドのウェイトとの違いは、ウェイトは並列移動から実行した場合、自律移動を
  2843. 行いますが、キャラクターアクションウェイトでは自律移動も停止させるという違いがあります。
  2844. そのため、ダメージを受けた場合の硬直などでウェイトが必要な場合には本コマンドを使用することで対応できます。
  2845.  
  2846. ■ キャラクターが移動したかをチェックする方法について
  2847. キャラクターの移動チェックについては、プラグインコマンド
  2848. 「キャラクターフレーム内移動有無チェック」によってチェック可能です。
  2849. このコマンドを実行するとキャラクターが次のフレームで更新されるまでの間に1度でも移動していた場合、
  2850. 指定したスイッチがONになります。また、そのフレーム内で移動したかのフラグについては次のフレームで対象の
  2851. キャラクターが更新されるタイミングでクリアされます。
  2852.  
  2853. 【補足情報】
  2854. 各種プラグインパラメータやプラグインコマンドで「キャラクター指定」を
  2855. 行う場合、変数でキャラクターを指定することが可能です。
  2856. その場合、各種変数の値の意味については以下の通りとなります。
  2857.  
  2858. ■ キャラクター種別の変数の値
  2859. プレイヤー: 1
  2860. フォロワー: 2
  2861. イベント: 3
  2862. 乗り物: 4
  2863.  
  2864. ■ フォロワーインデックスの変数の値
  2865. 一人目: 1
  2866. 二人目: 2
  2867. (以下略)
  2868.  
  2869. ■ 乗り物の変数の値
  2870. 小型船: 1
  2871. 大型船: 2
  2872. 飛行船: 3
  2873.  
  2874.  
  2875. @command ChangeARPGMode
  2876. @text ARPGモード切り替え
  2877. @desc ARPGモードの有効/無効を切り替えます。
  2878.  
  2879. @arg ARPGMode
  2880. @text ARPGモード
  2881. @type boolean
  2882. @default true
  2883. @desc 切り替え先のARPGモードを指定します。
  2884.  
  2885.  
  2886. @command MakeDynamicEvent
  2887. @text 動的オブジェクト生成
  2888. @desc 動的オブジェクトを生成します。
  2889.  
  2890. @arg SrcMapId
  2891. @type number
  2892. @text 生成元マップID
  2893. @default 1
  2894. @desc 生成元マップIDを指定します。
  2895.  
  2896. @arg SrcEventIdOrName
  2897. @type string
  2898. @text 生成元イベントID or イベント名
  2899. @default 0
  2900. @desc 生成元イベントIDまたはイベント名を指定します。
  2901.  
  2902. @arg X
  2903. @type number
  2904. @text X座標
  2905. @default 0
  2906. @desc イベントを生成するX座標を指定します。
  2907.  
  2908. @arg XByVariable
  2909. @type variable
  2910. @text X座標(変数指定)
  2911. @default 0
  2912. @desc イベントを生成するX座標を変数で指定します。直接X値を設定した場合は本パラメータは0を指定してください。
  2913.  
  2914. @arg Y
  2915. @type number
  2916. @text Y座標
  2917. @default 0
  2918. @desc イベントを生成するY座標を指定します。
  2919.  
  2920. @arg YByVariable
  2921. @type variable
  2922. @text Y座標(変数指定)
  2923. @default 0
  2924. @desc イベントを生成するY座標を変数で指定します。直接Y値を設定した場合は本パラメータは0を指定してください。
  2925.  
  2926. @arg MadeDynamicEventId
  2927. @text 生成動的イベントID格納変数
  2928. @type variable
  2929. @default 0
  2930. @desc
  2931. 生成した動的イベントのIDを格納する変数IDを指定します。
  2932.  
  2933.  
  2934. @command GetCharacterFloatPosition
  2935. @text キャラクター小数座標取得
  2936. @desc キャラクターの小数座標を取得します。
  2937.  
  2938. @arg CharacterSpecification
  2939. @text キャラクター指定
  2940. @type struct<CharacterSpecification>
  2941. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  2942. @desc 対象となるキャラクターを指定します。
  2943.  
  2944. @arg LeftUpOrCenter
  2945. @text 左上 or 中心
  2946. @type select
  2947. @option 左上
  2948. @value leftup
  2949. @option 中心
  2950. @value center
  2951. @default leftup
  2952. @desc キャラクターの左上座標または中心座標のどちらを取得するかを選択します。
  2953.  
  2954. @arg StoreFloatXVariableId
  2955. @text 小数X座標格納変数ID
  2956. @type variable
  2957. @default 0
  2958. @desc 取得した小数X座標を格納する変数IDを指定します。
  2959.  
  2960. @arg StoreFloatYVariableId
  2961. @text 小数Y座標格納変数ID
  2962. @type variable
  2963. @default 0
  2964. @desc 取得した小数Y座標を格納する変数IDを指定します。
  2965.  
  2966.  
  2967. @command CalcDeg
  2968. @text キャラクター間角度取得
  2969. @desc 主体キャラクターから見た対象キャラクターの角度を取得します。
  2970.  
  2971. @arg SubjectCharacterSpecification
  2972. @text 主体キャラクター指定
  2973. @type struct<CharacterSpecification>
  2974. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  2975. @desc 主体となるキャラクターを指定します。
  2976.  
  2977. @arg TargetCharacterSpecification
  2978. @text 対象キャラクター指定
  2979. @type struct<CharacterSpecification>
  2980. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  2981. @desc 対象となるキャラクターを指定します。
  2982.  
  2983. @arg StoreDegreeVariableId
  2984. @text 角度格納変数ID
  2985. @type variable
  2986. @default 0
  2987. @desc 取得した角度を格納する変数IDを指定します。
  2988.  
  2989.  
  2990. @command CalcFar
  2991. @text キャラクター間距離取得
  2992. @desc 主体キャラクターと対象キャラクターとの距離を取得します。
  2993.  
  2994. @arg SubjectCharacterSpecification
  2995. @text 主体キャラクター指定
  2996. @type struct<CharacterSpecification>
  2997. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  2998. @desc 主体となるキャラクターを指定します。
  2999.  
  3000. @arg TargetCharacterSpecification
  3001. @text 対象キャラクター指定
  3002. @type struct<CharacterSpecification>
  3003. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3004. @desc 対象となるキャラクターを指定します。
  3005.  
  3006. @arg StoreFarVariableId
  3007. @text 距離格納変数ID
  3008. @type variable
  3009. @default 0
  3010. @desc 取得した距離を格納する変数IDを指定します。
  3011.  
  3012.  
  3013. @command CheckInTheScreen
  3014. @text キャラクター画面内判定
  3015. @desc キャラクターが画面内にいるかを判定します。
  3016.  
  3017. @arg CharacterSpecification
  3018. @text キャラクター指定
  3019. @type struct<CharacterSpecification>
  3020. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3021. @desc 対象となるキャラクターを指定します。
  3022.  
  3023. @arg XMargin
  3024. @text X軸マージン
  3025. @type number
  3026. @decimals 2
  3027. @default 2
  3028. @desc X軸の画面外マージン幅を指定します。単位はマス数です。
  3029.  
  3030. @arg YMargin
  3031. @text Y軸マージン
  3032. @type number
  3033. @decimals 2
  3034. @default 2
  3035. @desc Y軸の画面外マージン幅を指定します。単位はマス数です。
  3036.  
  3037. @arg StoreResultSwitchId
  3038. @text 結果格納スイッチID
  3039. @type switch
  3040. @default 1
  3041. @desc 画面内にいる場合にONを、そうでない場合にOFFを設定するスイッチIDを指定します。
  3042.  
  3043.  
  3044. @command CheckMoved
  3045. @text キャラクター移動有無チェック
  3046. @desc キャラクターがそのフレーム内に移動したかをチェックします。
  3047.  
  3048. @arg CharacterSpecification
  3049. @text キャラクター指定
  3050. @type struct<CharacterSpecification>
  3051. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3052. @desc 対象となるキャラクターを指定します。
  3053.  
  3054. @arg StoreResultSwitchId
  3055. @text 結果格納スイッチID
  3056. @type switch
  3057. @default 1
  3058. @desc 移動した場合にONを、そうでない場合にOFFを設定するスイッチIDを指定します。
  3059.  
  3060.  
  3061. @command TransparentObjectCast
  3062. @text 透明オブジェクト発射
  3063. @desc 透明オブジェクトを発射し、オブジェクトに衝突するかをチェックします。
  3064.  
  3065. @arg TransparentObjectPosition
  3066. @type struct<TransparentObjectPosition>
  3067. @text 位置指定
  3068. @desc 透明オブジェクトの生成位置を指定します。
  3069.  
  3070. @arg Degree
  3071. @text 角度
  3072. @type number
  3073. @decimals 2
  3074. @default 0
  3075. @desc 透明オブジェクトの発射角度を指定します。
  3076.  
  3077. @arg DegreeByVariable
  3078. @text 角度(変数指定)
  3079. @type variable
  3080. @default 0
  3081. @desc 透明オブジェクトの発射角度を変数で指定します。
  3082.  
  3083. @arg Far
  3084. @text 距離
  3085. @type number
  3086. @decimals 2
  3087. @default 0
  3088. @desc 透明オブジェクトの発射距離を指定します。0を指定すると無限になります。
  3089.  
  3090. @arg FarByVariable
  3091. @text 距離(変数指定)
  3092. @type variable
  3093. @default 0
  3094. @desc 透明オブジェクトの発射距離を変数で指定します。
  3095.  
  3096. @arg Width
  3097. @text 横幅
  3098. @type number
  3099. @decimals 2
  3100. @default 1
  3101. @desc 透明オブジェクトの横幅を指定します。
  3102.  
  3103. @arg Height
  3104. @text 縦幅
  3105. @type number
  3106. @decimals 2
  3107. @default 1
  3108. @desc 透明オブジェクトの縦幅を指定します。
  3109.  
  3110. @arg CollisionResultSwitchId
  3111. @text 衝突結果格納スイッチID
  3112. @type switch
  3113. @default 1
  3114. @desc 衝突した場合にONを、そうでない場合にOFFを設定するスイッチIDを指定します。
  3115.  
  3116. @arg CollidedXVariableId
  3117. @text 衝突X座標格納変数ID
  3118. @type variable
  3119. @default 0
  3120. @desc 衝突が発生した地点のX座標を格納する変数IDを指定します。
  3121.  
  3122. @arg CollidedYVariableId
  3123. @text 衝突X座標格納変数ID
  3124. @type variable
  3125. @default 0
  3126. @desc 衝突が発生した地点のX座標を格納する変数IDを指定します。
  3127.  
  3128.  
  3129. @command SetupEnemy
  3130. @text エネミー設定
  3131. @desc イベントのエネミー設定を行います。
  3132.  
  3133. @arg CharacterSpecification
  3134. @text キャラクター指定
  3135. @type struct<CharacterSpecification>
  3136. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3137. @desc 対象となるキャラクターを指定します。
  3138.  
  3139. @arg EnemyId
  3140. @text エネミーID
  3141. @type enemy
  3142. @default 1
  3143. @desc エネミーIDを指定します。
  3144.  
  3145. @arg CollideAttackSkillId
  3146. @text 衝突攻撃スキルID
  3147. @type skill
  3148. @default 0
  3149. @desc
  3150. エネミーがアクターに衝突したときにダメージ計算を行うスキルIDを指定します。
  3151.  
  3152. @arg DamageCommonEventId
  3153. @text エネミーダメージコモンイベントID
  3154. @type common_event
  3155. @default 0
  3156. @desc
  3157. エネミーがダメージを受けたときに実行するコモンイベントを指定します。
  3158.  
  3159. @arg DefeatEnemyCommonEventId
  3160. @text 敵撃破コモンイベントID
  3161. @type common_event
  3162. @default 0
  3163. @desc
  3164. 敵撃破時に実行するコモンイベントIDを指定します。
  3165.  
  3166. @arg HpGauge
  3167. @text HPゲージ
  3168. @type select
  3169. @option なし
  3170. @value none
  3171. @option ノーマル
  3172. @value normal
  3173. @option ボス
  3174. @value boss
  3175. @default normal
  3176. @desc HPゲージの表示を設定します。
  3177.  
  3178.  
  3179.  
  3180. @command ChangeHpGaugeVisible
  3181. @text エネミーHPゲージ表示切り替え
  3182. @desc エネミーのHPゲージ表示/非表示を切り替えます。
  3183.  
  3184. @arg CharacterSpecification
  3185. @text キャラクター指定
  3186. @type struct<CharacterSpecification>
  3187. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3188. @desc 対象となるキャラクターを指定します。
  3189.  
  3190. @arg ShowOrHide
  3191. @text 表示/非表示
  3192. @type boolean
  3193. @on 表示
  3194. @off 非表示
  3195. @default true
  3196. @desc 表示または非表示を選択します。
  3197.  
  3198.  
  3199. @command SetupFieldObject
  3200. @text フィールドオブジェクト設定
  3201. @desc イベントのフィールドオブジェクト設定を行います。
  3202.  
  3203. @arg DamageCommonEventId
  3204. @text フィールドオブジェクトダメージコモンイベントID
  3205. @type common_event
  3206. @default 0
  3207. @desc
  3208. フィールドオブジェクトがダメージを受けたときに実行するコモンイベントを指定します。
  3209.  
  3210.  
  3211. @command UseSkill
  3212. @text スキル使用
  3213. @desc スキルを使用します。
  3214.  
  3215. @arg SkillId
  3216. @type skill
  3217. @text スキルID
  3218. @default 1
  3219. @desc 使用するスキルのIDを指定します。名前指定または変数指定を行った場合、そちらが優先されます。
  3220.  
  3221. @arg SkillByName
  3222. @type string
  3223. @text スキル(名前指定)
  3224. @desc 使用するスキルの名前を指定します。名前指定を使用しない場合は空欄にしてください。
  3225.  
  3226. @arg SkillIdByVariable
  3227. @type variable
  3228. @text スキルID(変数指定)
  3229. @default 0
  3230. @desc 使用するスキルのIDを変数で指定します。変数指定を使用しない場合は0にしてください。
  3231.  
  3232.  
  3233. @command UseItem
  3234. @text アイテム使用
  3235. @desc アイテムを使用します。
  3236.  
  3237. @arg ItemId
  3238. @type item
  3239. @text アイテムID
  3240. @default 1
  3241. @desc 使用するアイテムのIDを指定します。名前指定または変数指定を行った場合、そちらが優先されます。
  3242.  
  3243. @arg ItemByName
  3244. @type string
  3245. @text アイテム(名前指定)
  3246. @desc 使用するアイテムの名前を指定します。名前指定を使用しない場合は空欄にしてください。
  3247.  
  3248. @arg ItemIdByVariable
  3249. @type variable
  3250. @text アイテムID(変数指定)
  3251. @default 0
  3252. @desc 使用するアイテムのIDを変数で指定します。変数指定を使用しない場合は0にしてください。
  3253.  
  3254.  
  3255. @command SkillActivation
  3256. @text スキル発動
  3257. @desc スキルを発動します。本コマンドは必ずスキルのアクションコモンイベント内で呼び出してください。
  3258.  
  3259. @arg ChantCommonEventId
  3260. @type common_event
  3261. @text 詠唱コモンイベントID
  3262. @default 0
  3263. @desc 詠唱処理を実行するコモンイベントのIDを指定します。
  3264.  
  3265.  
  3266. @command SkillCancel
  3267. @text スキルキャンセル
  3268. @desc 使用中のスキルをキャンセルします。本コマンドは必ずスキルのアクションコモンイベント内で呼び出してください。
  3269.  
  3270.  
  3271. @command ChangeSkillCancelWhenDamageEnableOrDisable
  3272. @text ダメージスキルキャンセル有効/無効切り替え
  3273. @desc ダメージによるスキルキャンセル有効/無効を切り替えます。本コマンドは必ずスキルのアクションコモンイベント内で呼び出してください。
  3274.  
  3275. @arg EnableOrDisable
  3276. @text 有効/無効
  3277. @type boolean
  3278. @on 有効
  3279. @off 無効
  3280. @default true
  3281. @desc
  3282. 有効または無効を選択します。
  3283.  
  3284.  
  3285. @command TestApplySkillEffect
  3286. @text スキル効果適用テスト
  3287. @desc 使用者にスキル効果が適用可能であるかをテストし、結果をスイッチに設定します。
  3288.  
  3289. @arg IsSkillSpecification
  3290. @text スキル指定有無
  3291. @type boolean
  3292. @default false
  3293. @desc ONを指定すると対象となるスキルを指定します。指定しなかった場合、発動したスキルが適用されます。
  3294.  
  3295. @arg SkillSpecification
  3296. @text スキル指定
  3297. @type struct<SkillSpecification>
  3298. @default {"SkillOrItem":"skill","SkillId":"1","SkillByName":"","SkillIdByVariable":"0","ItemId":"1","ItemByName":"","ItemIdByVariable":"0"}
  3299. @desc スキル指定有無をOnにした場合に対象となるスキルを指定します。
  3300.  
  3301. @arg StoreResultSwitchId
  3302. @text 結果格納スイッチID
  3303. @type switch
  3304. @default 1
  3305. @desc 使用可能な場合にONを、そうでない場合にOFFを設定するスイッチIDを指定します。
  3306.  
  3307.  
  3308. @command ApplySkillEffect
  3309. @text スキル効果適用
  3310. @desc 使用者にスキル効果を適用します。本コマンドは必ずスキルのアクションコモンイベント内で「スキル発動」の後に呼び出してください。
  3311.  
  3312. @arg IsSkillSpecification
  3313. @text スキル指定有無
  3314. @type boolean
  3315. @default false
  3316. @desc ONを指定すると対象となるスキルを指定します。指定しなかった場合、発動したスキルが適用されます。
  3317.  
  3318. @arg SkillSpecification
  3319. @text スキル指定
  3320. @type struct<SkillSpecification>
  3321. @default {"SkillOrItem":"skill","SkillId":"1","SkillByName":"","SkillIdByVariable":"0","ItemId":"1","ItemByName":"","ItemIdByVariable":"0"}
  3322. @desc スキル指定有無をOnにした場合に対象となるスキルを指定します。
  3323.  
  3324.  
  3325. @command MakeSkillObject
  3326. @text スキルオブジェクト生成
  3327. @desc スキルオブジェクトを生成します。
  3328.  
  3329. @arg SrcMapId
  3330. @type number
  3331. @text 生成元マップID
  3332. @default 1
  3333. @desc 生成元マップIDを指定します。
  3334.  
  3335. @arg SrcEventIdOrName
  3336. @text 生成元イベントID or イベント名
  3337. @type string
  3338. @default 0
  3339. @desc 生成元イベントIDまたはイベント名を指定します。
  3340.  
  3341. @arg SkillObjectPosition
  3342. @type struct<SkillObjectPosition>
  3343. @text 位置指定
  3344. @desc スキルオブジェクトの生成位置を指定します。
  3345.  
  3346. @arg IsSkillSpecification
  3347. @text スキル指定有無
  3348. @type boolean
  3349. @default false
  3350. @desc ONを指定すると対象となるスキルを指定します。指定しなかった場合、発動したスキルが適用されます。
  3351.  
  3352. @arg SkillSpecification
  3353. @text スキル指定
  3354. @type struct<SkillSpecification>
  3355. @default {"SkillOrItem":"skill","SkillId":"1","SkillByName":"","SkillIdByVariable":"0","ItemId":"1","ItemByName":"","ItemIdByVariable":"0"}
  3356. @desc スキル指定有無をOnにした場合に対象となるスキルを指定します。
  3357.  
  3358. @arg MadeDynamicEventId
  3359. @text 生成動的イベントID格納変数
  3360. @type variable
  3361. @default 0
  3362. @desc
  3363. 生成した動的イベントのIDを格納する変数IDを指定します。
  3364.  
  3365.  
  3366. @command SetAttackDegree
  3367. @text 攻撃角度指定
  3368. @desc スキルオブジェクトの攻撃角度を指定します。
  3369.  
  3370. @arg CharacterSpecification
  3371. @text キャラクター指定
  3372. @type struct<CharacterSpecification>
  3373. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3374. @desc 対象となるキャラクターを指定します。
  3375.  
  3376. @arg AttackDegree
  3377. @type number
  3378. @text 攻撃角度
  3379. @default 0
  3380. @desc 攻撃角度を設定します。
  3381.  
  3382. @arg AttackDegreeByVariable
  3383. @type variable
  3384. @text 攻撃角度(変数指定)
  3385. @default 0
  3386. @desc 攻撃角度を変数で設定します。
  3387.  
  3388.  
  3389. @command SetUserPositionSynchronize
  3390. @text スキルオブジェクト使用者位置同期
  3391. @desc スキルオブジェクトの使用者位置同期の有無を指定します。
  3392.  
  3393. @arg CharacterSpecification
  3394. @text キャラクター指定
  3395. @type struct<CharacterSpecification>
  3396. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3397. @desc 対象となるキャラクターを指定します。
  3398.  
  3399. @arg Synchronize
  3400. @type boolean
  3401. @text 同期
  3402. @on 有効
  3403. @off 無効
  3404. @default true
  3405. @desc 同期の有効/無効を指定します。
  3406.  
  3407.  
  3408. @command CheckDamageElement
  3409. @text ダメージ属性チェック
  3410. @desc ダメージを受けた属性をチェックします。本コマンドは必ず受ダメージ処理から呼び出してください。
  3411.  
  3412. @arg ElementName
  3413. @text 属性名
  3414. @type string
  3415. @desc チェック対象の属性名を指定します。
  3416.  
  3417. @arg StoreResultSwitchId
  3418. @text 結果格納スイッチID
  3419. @type switch
  3420. @default 1
  3421. @desc 指定の属性だった場合にONを、そうでない場合にOFFを設定するスイッチIDを指定します。
  3422.  
  3423.  
  3424. @command SetHitBox
  3425. @text ヒットボックス設定
  3426. @desc ヒットボックスの設定を行います。同じタイプに対して再度ヒットボックス設定を行った場合、既存の設定を上書きします。
  3427.  
  3428. @arg CharacterSpecification
  3429. @text キャラクター指定
  3430. @type struct<CharacterSpecification>
  3431. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3432. @desc 対象となるキャラクターを指定します。
  3433.  
  3434. @arg HitBoxType
  3435. @text ヒットボックスタイプ
  3436. @type select
  3437. @option 攻撃
  3438. @value attack
  3439. @option ダメージ
  3440. @value damage
  3441. @option カスタム
  3442. @value custom
  3443. @default attack
  3444. @desc ヒットボックスタイプを設定します。
  3445.  
  3446. @arg CustomHitBoxTag
  3447. @text カスタムヒットボックスタグ
  3448. @type string
  3449. @desc ヒットボックスタイプをカスタムにした場合のタグを指定します。
  3450.  
  3451. @arg HitBoxList
  3452. @type struct<Box>[]
  3453. @text ヒットボックスリスト
  3454. @default []
  3455. @desc ヒットボックスを設定します。
  3456.  
  3457.  
  3458. @command ChangeHitBoxEnableOrDisable
  3459. @text ヒットボックス有効/無効切り替え
  3460. @desc ヒットボックスの有効/無効切り替えを行います。
  3461.  
  3462. @arg CharacterSpecification
  3463. @text キャラクター指定
  3464. @type struct<CharacterSpecification>
  3465. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3466. @desc 対象となるキャラクターを指定します。
  3467.  
  3468. @arg HitBoxType
  3469. @text ヒットボックスタイプ
  3470. @type select
  3471. @option 攻撃
  3472. @value attack
  3473. @option ダメージ
  3474. @value damage
  3475. @option カスタム
  3476. @value custom
  3477. @default attack
  3478. @desc ヒットボックスタイプを設定します。
  3479.  
  3480. @arg CustomHitBoxTag
  3481. @text カスタムヒットボックスタグ
  3482. @type string
  3483. @desc ヒットボックスタイプをカスタムにした場合のタグを指定します。
  3484.  
  3485. @arg Enabled
  3486. @text 有効化
  3487. @type boolean
  3488. @desc trueを設定するとヒットボックスを有効化します。
  3489.  
  3490.  
  3491. @command HitCheck
  3492. @text 当たり判定チェック
  3493. @desc ヒットボックスによる当たり判定チェックを行います。
  3494.  
  3495. @arg SubjectCharacterSpecification
  3496. @text 主体キャラクター指定
  3497. @type struct<CharacterSpecification>
  3498. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3499. @desc 主体となるキャラクターを指定します。
  3500.  
  3501. @arg SubjectHitBoxType
  3502. @text 主体ヒットボックスタイプ
  3503. @type select
  3504. @option 攻撃
  3505. @value attack
  3506. @option ダメージ
  3507. @value damage
  3508. @option カスタム
  3509. @value custom
  3510. @default attack
  3511. @desc ヒットボックスタイプを設定します。
  3512.  
  3513. @arg SubjectCustomHitBoxTag
  3514. @text 主体カスタムヒットボックタグ
  3515. @type string
  3516. @desc カスタムヒットボックタグを設定します。
  3517.  
  3518. @arg IsTargetSpecification
  3519. @text 対象指定有無
  3520. @type boolean
  3521. @default false
  3522. @desc ONを指定すると対象となるイベントを指定します。
  3523.  
  3524. @arg TargetCharacterSpecification
  3525. @text 対象キャラクター指定
  3526. @type struct<CharacterSpecification>
  3527. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3528. @desc 対象指定有無がONの場合に対象となるキャラクターを指定します。
  3529.  
  3530. @arg TargetHitBoxType
  3531. @text 対象ヒットボックスタイプ
  3532. @type select
  3533. @option 攻撃
  3534. @value attack
  3535. @option ダメージ
  3536. @value damage
  3537. @option カスタム
  3538. @value custom
  3539. @default attack
  3540. @desc ヒットボックスタイプを設定します。
  3541.  
  3542. @arg TargetCustomHitBoxTag
  3543. @text 対象カスタムヒットボックタグ
  3544. @type string
  3545. @desc カスタムヒットボックタグを設定します。
  3546.  
  3547. @arg StoreResultSwitchId
  3548. @text 結果格納スイッチID
  3549. @type switch
  3550. @default 1
  3551. @desc ヒットしていた場合にONを、そうでない場合にOFFを設定するスイッチIDを指定します。
  3552.  
  3553.  
  3554. @command GetBattlerStatus
  3555. @text バトラーステータス取得
  3556. @desc 指定したバトラーのステータスを取得します。
  3557.  
  3558. @arg CharacterSpecification
  3559. @text キャラクター指定
  3560. @type struct<CharacterSpecification>
  3561. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3562. @desc 対象となるキャラクターを指定します。
  3563.  
  3564. @arg StatusType
  3565. @type select
  3566. @option mhp
  3567. @option mmp
  3568. @option hp
  3569. @option mp
  3570. @option tp
  3571. @option atk
  3572. @option mat
  3573. @option mdf
  3574. @option agi
  3575. @option luk
  3576. @option hit
  3577. @option eva
  3578. @option cri
  3579. @option cev
  3580. @option mev
  3581. @option mrf
  3582. @option cnt
  3583. @option hrg
  3584. @option mrg
  3585. @option trg
  3586. @option tgr
  3587. @option grd
  3588. @option rec
  3589. @option pha
  3590. @option mcr
  3591. @option tcr
  3592. @option pdr
  3593. @option mdr
  3594. @option fdr
  3595. @option exr
  3596. @text ステータスタイプ
  3597. @default mhp
  3598. @desc ステータスタイプを指定します。
  3599.  
  3600. @arg DestVariableId
  3601. @type variable
  3602. @text 格納先変数
  3603. @default 1
  3604. @desc 取得したステータス値の格納先変数を指定します。
  3605.  
  3606.  
  3607. @command SetBattlerStatus
  3608. @text バトラーステータス設定
  3609. @desc 指定したバトラーのステータスを設定します。
  3610.  
  3611. @arg CharacterSpecification
  3612. @text キャラクター指定
  3613. @type struct<CharacterSpecification>
  3614. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3615. @desc 対象となるキャラクターを指定します。
  3616.  
  3617. @arg StatusType
  3618. @type select
  3619. @option hp
  3620. @option mp
  3621. @option tp
  3622. @text ステータスタイプ
  3623. @default mhp
  3624. @desc ステータスタイプを指定します。
  3625.  
  3626. @arg Value
  3627. @type number
  3628. @text 値
  3629. @default 0
  3630. @desc 設定するステータス値を指定します。
  3631.  
  3632. @arg ValueByVariable
  3633. @type variable
  3634. @text 値(変数指定)
  3635. @default 0
  3636. @desc 設定するステータス値が格納された変数IDを指定します。
  3637.  
  3638.  
  3639. @command GetBattlerARPGParameter
  3640. @text バトラーARPGパラメータ取得
  3641. @desc 指定したバトラーのARPG専用パラメータを取得します。
  3642.  
  3643. @arg CharacterSpecification
  3644. @text キャラクター指定
  3645. @type struct<CharacterSpecification>
  3646. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3647. @desc 対象となるキャラクターを指定します。
  3648.  
  3649. @arg ARPGParameterType
  3650. @type select
  3651. @option スキルキャンセルダメージレート
  3652. @value skillCancelDamageRate
  3653. @option ジャストガードフレーム
  3654. @value justGuardFrame
  3655. @text ARPGパラメータタイプ
  3656. @default skillCancelDamageRate
  3657. @desc ARPGパラメータタイプを指定します。
  3658.  
  3659. @arg DestVariableId
  3660. @type variable
  3661. @text 格納先変数
  3662. @default 1
  3663. @desc 取得したステータス値の格納先変数を指定します。
  3664.  
  3665.  
  3666. @command SetBattlerARPGParameter
  3667. @text バトラーARPGパラメータ設定
  3668. @desc 指定したバトラーのARPG専用パラメータを設定します。
  3669.  
  3670. @arg CharacterSpecification
  3671. @text キャラクター指定
  3672. @type struct<CharacterSpecification>
  3673. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3674. @desc 対象となるキャラクターを指定します。
  3675.  
  3676. @arg ARPGParameterType
  3677. @type select
  3678. @option スキルキャンセルダメージレート
  3679. @value skillCancelDamageRate
  3680. @option ジャストガードフレーム
  3681. @value justGuardFrame
  3682. @text ARPGパラメータタイプ
  3683. @default skillCancelDamageRate
  3684. @desc ARPGパラメータタイプを指定します。
  3685. @arg Value
  3686. @type number
  3687. @text 値
  3688. @default 0
  3689. @decimals 2
  3690. @desc 設定するステータス値を指定します。
  3691.  
  3692. @arg ValueByVariable
  3693. @type variable
  3694. @text 値(変数指定)
  3695. @default 0
  3696. @desc 設定するステータス値が格納された変数IDを指定します。
  3697.  
  3698.  
  3699. @command GetBattlerARPGFlag
  3700. @text バトラーARPGフラグ取得
  3701. @desc 指定したバトラーのARPG専用フラグを取得します。
  3702.  
  3703. @arg CharacterSpecification
  3704. @text キャラクター指定
  3705. @type struct<CharacterSpecification>
  3706. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3707. @desc 対象となるキャラクターを指定します。
  3708.  
  3709. @arg ARPGFlagType
  3710. @type select
  3711. @option ノーダメージフラグ
  3712. @value noDamageFlag
  3713. @option 攻撃禁止フラグ
  3714. @value noAttackFlag
  3715. @text ARPGフラグタイプ
  3716. @default noDamageFlag
  3717. @desc ARPGフラグタイプを指定します。
  3718.  
  3719. @arg DestSwitchId
  3720. @type switch
  3721. @text 格納先スイッチ
  3722. @default 1
  3723. @desc 取得したフラグ値の格納先スイッチを指定します。
  3724.  
  3725.  
  3726. @command SetBattlerARPGFlag
  3727. @text バトラーARPGフラグ設定
  3728. @desc 指定したバトラーのARPG専用フラグを設定します。
  3729.  
  3730. @arg CharacterSpecification
  3731. @text キャラクター指定
  3732. @type struct<CharacterSpecification>
  3733. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3734. @desc 対象となるキャラクターを指定します。
  3735.  
  3736. @arg ARPGFlagType
  3737. @type select
  3738. @option ノーダメージフラグ
  3739. @value noDamageFlag
  3740. @option 攻撃禁止フラグ
  3741. @value noAttackFlag
  3742. @text ARPGフラグタイプ
  3743. @default noDamageFlag
  3744. @desc ARPGフラグタイプを指定します。
  3745.  
  3746. @arg Value
  3747. @type boolean
  3748. @text 値
  3749. @default true
  3750. @desc 設定するフラグ値を指定します。
  3751.  
  3752. @arg ValueBySwitch
  3753. @type switch
  3754. @text 値(スイッチ指定)
  3755. @default 0
  3756. @desc 設定するフラグ値が格納されたスイッチIDを指定します。
  3757.  
  3758.  
  3759. @command SetCheckMapValid
  3760. @text マップ有効範囲チェック有効/無効切り替え
  3761. @desc マップの有効範囲チェックの有効/無効の切り替えを行います。
  3762.  
  3763. @arg CharacterSpecification
  3764. @text キャラクター指定
  3765. @type struct<CharacterSpecification>
  3766. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3767. @desc
  3768. 対象となるキャラクターを指定します。
  3769.  
  3770. @arg EnableOrDisable
  3771. @text 有効/無効
  3772. @type boolean
  3773. @on 有効
  3774. @off 無効
  3775. @default true
  3776. @desc
  3777. 有効または無効を選択します。
  3778.  
  3779.  
  3780. @command CharacterBlowAway
  3781. @text キャラクターノックバック
  3782. @desc キャラクターを指定方向にノックバックさせます。
  3783.  
  3784. @arg CharacterSpecification
  3785. @text キャラクター指定
  3786. @type struct<CharacterSpecification>
  3787. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3788. @desc 対象となるキャラクターを指定します。
  3789.  
  3790. @arg Degree
  3791. @text 角度
  3792. @type number
  3793. @default 0
  3794. @desc 吹き飛ばす角度を指定します。
  3795.  
  3796. @arg DegreeByVariable
  3797. @text 角度(変数指定)
  3798. @type variable
  3799. @default 0
  3800. @desc 吹き飛ばす角度を変数で指定します。
  3801.  
  3802. @arg InitialVelocity
  3803. @text 初速度
  3804. @type number
  3805. @decimals 2
  3806. @default 0.5
  3807. @desc 吹き飛ばす初速度を指定します。
  3808.  
  3809. @arg InitialVelocityByVariable
  3810. @text 初速度(変数指定)
  3811. @type variable
  3812. @default 0
  3813. @desc 吹き飛ばす初速度を変数で指定します。
  3814.  
  3815. @arg Duration
  3816. @text 間隔
  3817. @type number
  3818. @decimals 2
  3819. @default 10
  3820. @desc 吹き飛ばす間隔を指定します。
  3821.  
  3822. @arg DurationByVariable
  3823. @text 間隔(変数指定)
  3824. @type variable
  3825. @default 0
  3826. @desc 吹き飛ばす間隔を変数で指定します。
  3827.  
  3828. @arg Wait
  3829. @text ウェイト
  3830. @type boolean
  3831. @default true
  3832. @desc trueを指定すると、吹き飛ばし完了までウェイトします。
  3833.  
  3834.  
  3835. @command CharacterActionWait
  3836. @text キャラクターアクションウェイト
  3837. @desc キャラクターのアクションを一定時間ウェイトさせます。
  3838.  
  3839. @arg CharacterSpecification
  3840. @text キャラクター指定
  3841. @type struct<CharacterSpecification>
  3842. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3843. @desc 対象となるキャラクターを指定します。
  3844.  
  3845. @arg Duration
  3846. @text 間隔
  3847. @type number
  3848. @decimals 2
  3849. @default 10
  3850. @desc アクションウェイト間隔を指定します。
  3851.  
  3852. @arg DurationByVariable
  3853. @text 間隔(変数指定)
  3854. @type variable
  3855. @default 0
  3856. @desc アクションウェイト間隔を変数で指定します。
  3857.  
  3858.  
  3859. @command TargetSelect
  3860. @text ターゲット選択
  3861. @desc ターゲット選択を行います。
  3862.  
  3863. @arg SelectResultSwitchId
  3864. @text 選択結果格納スイッチID
  3865. @type switch
  3866. @default 0
  3867. @desc
  3868. ターゲットの選択に成功した場合ONが設定されるスイッチIDを指定します。
  3869.  
  3870. @arg SelectedTargetCharacterKindVariableId
  3871. @text 選択ターゲットキャラクター種別格納変数ID
  3872. @type variable
  3873. @default 0
  3874. @desc
  3875. 選択したターゲットのキャラクター種別を格納する変数IDを指定します。
  3876.  
  3877. @arg SelectedTargetEventIdVariableId
  3878. @text 選択ターゲットイベントID格納変数ID
  3879. @type variable
  3880. @default 0
  3881. @desc
  3882. 選択したターゲットのイベントIDを格納する変数IDを指定します。
  3883.  
  3884. @arg Wait
  3885. @text ウェイト
  3886. @type boolean
  3887. @default true
  3888. @desc
  3889. ONを設定した場合、ターゲット選択中はシーンを停止します。
  3890.  
  3891. @arg Cancelable
  3892. @text キャンセル可能
  3893. @type boolean
  3894. @default true
  3895. @desc
  3896. ONを設定した場合、ターゲット選択のキャンセルを有効にします。
  3897.  
  3898.  
  3899. @command SearchNearBattler
  3900. @text 近隣バトラー検索
  3901. @desc 対象者から最も近いバトラーを検索します。
  3902.  
  3903. @arg Target
  3904. @text ターゲット
  3905. @type select
  3906. @option 全バトラー
  3907. @value all
  3908. @option 敵キャラ
  3909. @value opponent
  3910. @option 味方キャラ
  3911. @value friend
  3912. @default all
  3913. @desc ターゲットを指定します。
  3914.  
  3915. @arg SubjectCharacterSpecification
  3916. @text 主体キャラクター指定
  3917. @type struct<CharacterSpecification>
  3918. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  3919. @desc 主体となるキャラクターを指定します。
  3920.  
  3921. @arg StoreResultSwitchId
  3922. @text 結果格納スイッチID
  3923. @type switch
  3924. @default 1
  3925. @desc 敵キャラが見つかった場合にONを、そうでない場合にOFFを設定するスイッチIDを指定します。
  3926.  
  3927. @arg StoreCharacterKindVariableId
  3928. @text キャラクター種別格納変数ID
  3929. @type variable
  3930. @default 0
  3931. @desc 見つかったバトラーのキャラクター種別を格納する変数IDを指定します。
  3932.  
  3933. @arg StoreEventIdVariableId
  3934. @text イベントID格納変数ID
  3935. @type variable
  3936. @default 0
  3937. @desc 見つかったバトラーがイベントの場合にイベントIDを格納する変数IDを指定します。
  3938.  
  3939.  
  3940. @command SetPlayerGuardMode
  3941. @text プレイヤーガードモード設定
  3942. @desc プレイヤーのガードモードを設定します。
  3943.  
  3944. @arg GuardMode
  3945. @text ガードモード
  3946. @type boolean
  3947. @default true
  3948. @desc
  3949. ガードモードONまたはOFFを指定します。
  3950.  
  3951.  
  3952. @command ChangeControlActor
  3953. @text 操作アクター変更
  3954. @desc 操作アクターを変更します。本コマンドはキー入力によるアクター変更と同じ挙動となります。
  3955.  
  3956.  
  3957. @command ShowMessagePopup
  3958. @text メッセージポップアップ表示
  3959. @desc メッセージポップアップを表示します。
  3960.  
  3961. @arg Text
  3962. @text テキスト
  3963. @type string
  3964. @desc
  3965. ポップアップ表示を行うテキストを指定します。
  3966.  
  3967. @arg WindowWidth
  3968. @text 横幅
  3969. @type number
  3970. @default 640
  3971. @desc
  3972. ポップアップウィンドウの横幅を指定します。
  3973.  
  3974. @arg Time
  3975. @text 時間
  3976. @type number
  3977. @default 60
  3978. @desc
  3979. ポップアップの表示時間を指定します。
  3980.  
  3981.  
  3982. @param CopyEventSetting
  3983. @text コピーイベント共通設定
  3984. @type struct<CopyEventSetting>
  3985. @default {"CopyEventTag":"cp","DynamicEventSrcMapIds":"[]"}
  3986. @desc
  3987. コピーイベントの共通設定を行います。
  3988.  
  3989. @param BattlerSetting
  3990. @text バトラー共通設定
  3991. @type struct<BattlerSetting>
  3992. @default {"DamageDegCommonVariableId":"0","UserKindCommonVariableId":"0","UserEventIdCommonVariableId":"0","DamageKindCommonVariableId":"0","DamageTypeCommonVariableId":"0","DamageValueCommonVariableId":"0"}
  3993. @desc
  3994. バトラーの共通設定を行います。
  3995.  
  3996. @param ActorSetting
  3997. @text アクター共通設定
  3998. @type struct<ActorSetting>
  3999. @default {"NormalAttackSkillId":"0","DamageCommonEventId":"0","NormalGuardCommonEventId":"0","JustGuardCommonEventId":"0","StartGuardCommonEventId":"0","EndGuardCommonEventId":"0","JustGuardFrame":"10","ActorHitBox":"{\"AttackHitBoxList\":\"[]\",\"DamageHitBoxList\":\"[]\"}","GameOverCommonEventId":"0","LevelUpCommonEventId":"0"}
  4000. @desc
  4001. アクターの共通設定を行います。
  4002.  
  4003. @param EnemySetting
  4004. @text エネミー共通設定
  4005. @type struct<EnemySetting>
  4006. @default {"CollideAttackSkillId":"0","DamageCommonEventId":"0","DefeatEnemyCommonEventId":"0"}
  4007. @desc
  4008. エネミーの共通設定を行います。
  4009.  
  4010. @param SkillObjectSetting
  4011. @text スキルオブジェクト共通設定
  4012. @type struct<SkillObjectSetting>
  4013. @default {"SkillObjectUserKindSelfVariableId":"0","SkillObjectUserEventIdSelfVariableId":"0","CollisionDetectExSelfSwitchId":"0"}
  4014. @desc
  4015. スキルオブジェクトの共通設定を行います。
  4016.  
  4017. @param HitBoxSetting
  4018. @text ヒットボックス共通設定
  4019. @type struct<HitBoxSetting>
  4020. @default {"VisibleHitAreaSwitchId":"0","AttackHitBoxColor":"#ff0000aa","DamageHitBoxColor":"#0000ffaa","CustomHitBoxDefaultColor":"#00ff00aa","CustomHitBoxColorList":"[]"}
  4021. @desc
  4022. ヒットボックスの共通設定を行います。
  4023.  
  4024. @param ActionComboSetting
  4025. @text アクションコンボ設定
  4026. @type struct<ActionComboData>[]
  4027. @desc
  4028. アクションコンボの設定を行います。
  4029.  
  4030. @param EnemyHpGaugeSetting
  4031. @text エネミーHPゲージ設定
  4032. @type struct<EnemyHpGaugeSetting>
  4033. @default {"NormalEnemyHpGaugePosition":"up","NormalEnemyHpGaugeYOffset":"-8","NormalEnemyHpGaugeHeight":"6","NormalEnemyHpGaugeColor1":"#00aa00","NormalEnemyHpGaugeColor2":"#22ff22","BossEnemyHpGaugeLabel":"BOSS","BossEnemyHpGaugeYOffset":"16","BossEnemyHpGaugeWidth":"500","BossEnemyHpGaugeHeight":"12","BossEnemyHpGaugeColor1":"#00aa00","BossEnemyHpGaugeColor2":"#22ff22"}
  4034. @desc
  4035. エネミーのHPゲージ設定を行います。
  4036.  
  4037. @param KeySetting
  4038. @text キー入力設定
  4039. @type struct<KeySetting>
  4040. @default {"Cancel":"{\"KeyName\":\"escape\",\"KeySymbol\":\"\",\"KeyCode\":\"0\",\"ButtonIndex\":\"-1\"}","Menu":"{\"KeyName\":\"menu\",\"KeySymbol\":\"\",\"KeyCodes\":\"[]\",\"ButtonIndexes\":\"[\\\"3\\\"]\",\"KeyCode\":\"-1\",\"ButtonIndex\":\"-1\"}","ActorNormalAttack":"{\"KeyName\":\"ok\",\"KeySymbol\":\"\",\"KeyCodes\":\"[]\",\"ButtonIndexes\":\"[]\",\"KeyCode\":\"-1\",\"ButtonIndex\":\"-1\"}","ActorGuard":"{\"KeyName\":\"other\",\"KeySymbol\":\"A\",\"KeyCodes\":\"[\\\"65\\\"]\",\"ButtonIndexes\":\"[\\\"6\\\"]\",\"KeyCode\":\"-1\",\"ButtonIndex\":\"-1\"}","VisibleHitBox":"{\"KeyName\":\"other\",\"KeySymbol\":\"F6\",\"KeyCodes\":\"[\\\"117\\\"]\",\"ButtonIndexes\":\"[]\",\"KeyCode\":\"-1\",\"ButtonIndex\":\"-1\"}","ChangeControlActor":"{\"KeyName\":\"other\",\"KeySymbol\":\"S\",\"KeyCodes\":\"[\\\"83\\\"]\",\"ButtonIndexes\":\"[\\\"11\\\"]\",\"KeyCode\":\"-1\",\"ButtonIndex\":\"-1\"}"}
  4041. @desc
  4042. キー入力の各種設定を行います。
  4043.  
  4044. @param SESetting
  4045. @text SE設定
  4046. @type struct<SESetting>
  4047. @default {"ActorChange":"{\"FileName\":\"Decision5\",\"Volume\":\"90\",\"Pitch\":\"100\",\"Pan\":\"0\"}"}
  4048. @desc
  4049. SEの各種設定を行います。
  4050.  
  4051. @param EnableARPGSwitchId
  4052. @text ARPG有効化スイッチID
  4053. @type switch
  4054. @default 0
  4055. @desc
  4056. ARPGを有効化するスイッチIDを指定します。
  4057.  
  4058. @param UseDamagePopup
  4059. @text ダメージポップアップ使用
  4060. @type boolean
  4061. @default true
  4062. @desc
  4063. trueを設定すると攻撃によるダメージ発生時にダメージ値を表示します。
  4064.  
  4065. @param UseImageDamage
  4066. @text ダメージ画像使用
  4067. @type boolean
  4068. @default false
  4069. @desc
  4070. trueを設定するとsystem/Damage.pngの画像をダメージ表示に使用します。
  4071.  
  4072. @param UseImageTargetSelectCursor
  4073. @text ターゲット選択カーソル画像使用
  4074. @type boolean
  4075. @default false
  4076. @desc
  4077. trueを設定すると画像をターゲット選択カーソルに使用します。
  4078.  
  4079. @param TargetSelectCursorImageFileName
  4080. @text ターゲット選択カーソル画像ファイル名
  4081. @type file
  4082. @dir img
  4083. @desc
  4084. ターゲット選択カーソルの画像ファイル名を指定します。
  4085.  
  4086. @param EnableChangeControlActorSwitchId
  4087. @text 操作アクター変更許可スイッチID
  4088. @type switch
  4089. @default 0
  4090. @desc
  4091. 操作アクターの変更を許可するスイッチIDを指定します。0を設定した場合は常に有効になります。
  4092.  
  4093. @param ErrorMessageLanguage
  4094. @text エラーメッセージ言語
  4095. @type select
  4096. @option 英語
  4097. @value en
  4098. @option 日本語
  4099. @value ja
  4100. @default ja
  4101. @desc
  4102. エラーメッセージの表示言語を指定します。
  4103. */
  4104. /*!/*~struct~CopyEventSetting:ja
  4105. @param CopyEventTag
  4106. @text コピーイベントタグ
  4107. @type string
  4108. @default cp
  4109. @desc
  4110. コピーするイベントを判定するためのタグ名を指定します。
  4111.  
  4112. @param DynamicEventSrcMapIds
  4113. @text 動的イベント生成元マップID一覧
  4114. @type number[]
  4115. @default []
  4116. @desc
  4117. 動的イベント生成元のマップIDの一覧を設定します。
  4118. */
  4119. /*!/*~struct~BattlerSetting:ja
  4120. @param DamageDegCommonVariableId
  4121. @text ダメージ角度格納コモン変数
  4122. @type variable
  4123. @default 0
  4124. @desc
  4125. ダメージを受けた時の角度を格納するコモン変数を指定します。
  4126.  
  4127. @param UserKindCommonVariableId
  4128. @text ユーザー種別格納コモンイベント変数
  4129. @type variable
  4130. @default 0
  4131. @desc
  4132. バトラーでアクションコモンイベントを実行したときにユーザー種別(1: プレイヤー, 3: イベント)を格納する変数を指定します。
  4133.  
  4134. @param UserEventIdCommonVariableId
  4135. @text ユーザーイベントID格納コモンイベント変数
  4136. @type variable
  4137. @default 0
  4138. @desc
  4139. バトラーでアクションコモンイベントを実行したときにイベントIDを格納する変数を指定します。
  4140.  
  4141. @param DamageKindCommonVariableId
  4142. @text ダメージ種別コモン変数ID
  4143. @type variable
  4144. @default 0
  4145. @desc
  4146. ダメージを受けた時にダメージ種別が設定されるコモン変数を指定します。
  4147.  
  4148. @param DamageTypeCommonVariableId
  4149. @text ダメージタイプコモン変数ID
  4150. @type variable
  4151. @default 0
  4152. @desc
  4153. ダメージを受けた時にダメージタイプが設定されるコモン変数を指定します。
  4154.  
  4155. @param DamageValueCommonVariableId
  4156. @text ダメージ値コモン変数ID
  4157. @type variable
  4158. @default 0
  4159. @desc
  4160. ダメージを受けた時にダメージ値が設定されるコモン変数を指定します。
  4161. */
  4162. /*!/*~struct~ActorSetting:ja
  4163. @param NormalAttackSkillId
  4164. @text 通常攻撃スキルID
  4165. @type skill
  4166. @default 0
  4167. @desc
  4168. 通常攻撃時のスキルIDを指定します。
  4169.  
  4170. @param DamageCommonEventId
  4171. @text アクターダメージコモンイベントID
  4172. @type common_event
  4173. @default 0
  4174. @desc
  4175. アクターがダメージを受けたときに実行するコモンイベントを指定します。
  4176.  
  4177. @param DeadCommonEventId
  4178. @text アクター戦闘不能コモンイベントID
  4179. @type common_event
  4180. @default 0
  4181. @desc
  4182. アクターが戦闘不能になったときに実行するコモンイベントを指定します。
  4183.  
  4184. @param NormalGuardCommonEventId
  4185. @text アクター通常ガードコモンイベントID
  4186. @type common_event
  4187. @default 0
  4188. @desc
  4189. アクターが通常ガードしたときに実行するコモンイベントを指定します。
  4190.  
  4191. @param JustGuardCommonEventId
  4192. @text アクタージャストガードコモンイベントID
  4193. @type common_event
  4194. @default 0
  4195. @desc
  4196. アクターがジャストガードしたときに実行するコモンイベントを指定します。
  4197.  
  4198. @param StartGuardCommonEventId
  4199. @text アクターガード開始コモンイベントID
  4200. @type common_event
  4201. @default 0
  4202. @desc
  4203. アクターがガードを開始したときに実行するコモンイベントを指定します。
  4204.  
  4205. @param EndGuardCommonEventId
  4206. @text アクターガード終了コモンイベントID
  4207. @type common_event
  4208. @default 0
  4209. @desc
  4210. アクターがガードを終了したときに実行するコモンイベントを指定します。
  4211.  
  4212. @param JustGuardFrame
  4213. @text ジャストガードフレーム
  4214. @type number
  4215. @min 0
  4216. @default 10
  4217. @desc
  4218. ジャストガードの許容フレーム数を指定します。ジャストガードを使用しない場合は0を指定してください。
  4219.  
  4220. @param ActorHitBox
  4221. @text アクターヒットボックス
  4222. @type struct<ActorHitBox>
  4223. @default {"DamageHitBoxList":"[]"}
  4224. @desc アクターのヒットボックス設定を行います。
  4225.  
  4226. @param GameOverCommonEventId
  4227. @text ゲームオーバーコモンイベントID
  4228. @type common_event
  4229. @default 0
  4230. @desc
  4231. ゲームオーバー時に実行するコモンイベントIDを指定します。0を指定した場合はゲームオーバーシーンに移動します。
  4232.  
  4233. @param LevelUpCommonEventId
  4234. @text レベルアップコモンイベントID
  4235. @type common_event
  4236. @default 0
  4237. @desc
  4238. レベルアップしたときに実行するコモンイベントを指定します。
  4239. */
  4240. /*!/*~struct~EnemySetting:ja
  4241. @param CollideAttackSkillId
  4242. @text 衝突攻撃スキルID
  4243. @type skill
  4244. @default 0
  4245. @desc
  4246. エネミーがアクターに衝突したときにダメージ計算を行うスキルIDを指定します。
  4247.  
  4248. @param DamageCommonEventId
  4249. @text エネミーダメージコモンイベントID
  4250. @type common_event
  4251. @default 0
  4252. @desc
  4253. エネミーがダメージを受けたときに実行するコモンイベントを指定します。
  4254.  
  4255. @param DefeatEnemyCommonEventId
  4256. @text 敵撃破コモンイベントID
  4257. @type common_event
  4258. @default 0
  4259. @desc
  4260. 敵撃破時に実行するコモンイベントIDを指定します。
  4261. */
  4262. /*!/*~struct~SkillObjectSetting:ja
  4263. @param SkillObjectUserKindSelfVariableId
  4264. @text スキルオブジェクトユーザー種別格納セルフ変数
  4265. @type variable
  4266. @default 0
  4267. @desc
  4268. スキルオブジェクトを生成したユーザーの種別を格納するセルフ変数を指定します。
  4269.  
  4270. @param SkillObjectUserEventIdSelfVariableId
  4271. @text スキルオブジェクトユーザーイベントID格納セルフ変数
  4272. @type variable
  4273. @default 0
  4274. @desc
  4275. スキルオブジェクトを生成したユーザーの種別がイベントの場合にイベントIDを格納するセルフ変数を指定します。
  4276.  
  4277. @param CollisionDetectExSelfSwitchId
  4278. @text 衝突検出フラグ格納拡張セルフスイッチ
  4279. @type switch
  4280. @default 0
  4281. @desc
  4282. スキルオブジェクトがターゲットに衝突したときにONを格納する拡張セルフスイッチを指定します。
  4283. */
  4284. /*!/*~struct~HitBoxSetting:ja
  4285. @param VisibleHitAreaSwitchId
  4286. @text ヒットボックス可視化切り替えスイッチID
  4287. @type switch
  4288. @default 0
  4289. @desc
  4290. ヒットボックス可視化の有無を切り替えるスイッチIDを指定します。
  4291.  
  4292. @param AttackHitBoxColor
  4293. @text 攻撃判定ヒットボックスカラー
  4294. @type string
  4295. @default #ff0000aa
  4296. @desc
  4297. ヒットボックス可視化時の攻撃判定のカラーを指定します。
  4298.  
  4299. @param DamageHitBoxColor
  4300. @text ダメージ判定ヒットボックスカラー
  4301. @type string
  4302. @default #0000ffaa
  4303. @desc
  4304. ヒットボックス可視化時のダメージ判定のカラーを指定します。
  4305.  
  4306. @param CustomHitBoxDefaultColor
  4307. @text カスタムヒットボックスデフォルトカラー
  4308. @type string
  4309. @default #00ff00aa
  4310. @desc
  4311. ヒットボックス可視化時のカスタムヒットボックスのデフォルトカラーを指定します。
  4312.  
  4313. @param CustomHitBoxColorList
  4314. @text カスタムヒットボックスカラー一覧
  4315. @type string<CustomHitBoxColor>
  4316. @default []
  4317. @desc
  4318. ヒットボックス可視化時のカスタムヒットボックスのカラー一覧を指定します。
  4319. */
  4320. /*!/*~struct~ActionComboData:ja
  4321. @param SkillId
  4322. @text スキルID
  4323. @type skill
  4324. @default 0
  4325. @desc
  4326. コンボ派生対象のスキルIDを指定します。
  4327.  
  4328. @param ActionComboDerivations
  4329. @text アクションコンボ派生一覧
  4330. @type struct<ActionComboDerivation>[]
  4331. @desc
  4332. アクションコンボの派生一覧を指定します。
  4333. */
  4334. /*!/*~struct~ActionComboDerivation:ja
  4335. @param FromSkillId
  4336. @text 派生元スキルID
  4337. @type skill
  4338. @default 0
  4339. @desc
  4340. コンボ派生元のスキルIDを指定します。
  4341.  
  4342. @param DerivationSkillId
  4343. @text 派生先スキルID
  4344. @type skill
  4345. @default 0
  4346. @desc
  4347. コンボ派生先のスキルIDを指定します。コンボの最初のスキルに対しては0を指定してください。
  4348.  
  4349. @param MinComboFrame
  4350. @text 最小コンボ可能時間
  4351. @type number
  4352. @min 0
  4353. @default 30
  4354. @desc
  4355. コンボ攻撃が可能になるまでの時間をフレーム単位で指定します。
  4356.  
  4357. @param MaxComboFrame
  4358. @text 最大コンボ可能時間
  4359. @type number
  4360. @min 0
  4361. @default 60
  4362. @desc
  4363. コンボ攻撃の最大許容時間をフレーム単位で指定します。
  4364. */
  4365. /*!/*~struct~EnemyHpGaugeSetting:ja
  4366. @param NormalEnemyHpGaugePosition
  4367. @text ノーマルエネミーHPゲージ位置
  4368. @type select
  4369. @option 上
  4370. @value up
  4371. @option 下
  4372. @value down
  4373. @default up
  4374. @desc ノーマルエネミーのHPゲージの表示位置を設定します。
  4375.  
  4376. @param NormalEnemyHpGaugeYOffset
  4377. @text ノーマルエネミーHPゲージY座標オフセット
  4378. @type number
  4379. @min -9999
  4380. @default -8
  4381. @desc ノーマルエネミーのHPゲージの表示Y座標オフセットを設定します。
  4382.  
  4383. @param NormalEnemyHpGaugeHeight
  4384. @text ノーマルエネミーHPゲージ縦幅
  4385. @type number
  4386. @min 1
  4387. @default 6
  4388. @desc ノーマルエネミーのHPゲージの縦幅を設定します。
  4389.  
  4390. @param NormalEnemyHpGaugeColor1
  4391. @text ノーマルエネミーHPゲージ色1
  4392. @type string
  4393. @default #00aa00
  4394. @desc ノーマルエネミーのHPゲージの色1を設定します。
  4395.  
  4396. @param NormalEnemyHpGaugeColor2
  4397. @text ノーマルエネミーHPゲージ色2
  4398. @type string
  4399. @default #22ff22
  4400. @desc ノーマルエネミーのHPゲージの色1を設定します。
  4401.  
  4402. @param BossEnemyHpGaugeLabel
  4403. @text ボスエネミーHPゲージラベル
  4404. @type string
  4405. @default BOSS
  4406. @desc ボスエネミーのHPゲージの横に表示するテキストを設定します。
  4407.  
  4408. @param BossEnemyHpGaugeYOffset
  4409. @text ボスエネミーHPゲージY座標オフセット
  4410. @type number
  4411. @min 1
  4412. @default 16
  4413. @desc ボスエネミーのHPゲージの表示Y座標オフセットを設定します。
  4414.  
  4415. @param BossEnemyHpGaugeWidth
  4416. @text ボスエネミーHPゲージ横幅
  4417. @type number
  4418. @min 1
  4419. @default 500
  4420. @desc ボスエネミーのHPゲージの横幅を設定します。
  4421.  
  4422. @param BossEnemyHpGaugeHeight
  4423. @text ボスエネミーHPゲージ縦幅
  4424. @type number
  4425. @min 1
  4426. @default 12
  4427. @desc ボスエネミーのHPゲージの縦幅を設定します。
  4428.  
  4429. @param BossEnemyHpGaugeColor1
  4430. @text ボスエネミーHPゲージ色1
  4431. @type string
  4432. @default #00aa00
  4433. @desc ボスエネミーのHPゲージの色1を設定します。
  4434.  
  4435. @param BossEnemyHpGaugeColor2
  4436. @text ボスエネミーHPゲージ色2
  4437. @type string
  4438. @default #22ff22
  4439. @desc ボスエネミーのHPゲージの色1を設定します。
  4440. */
  4441. /*!/*~struct~KeySetting:ja
  4442. @param Cancel
  4443. @text キャンセルキー
  4444. @type struct<Key>
  4445. @default {"KeyName":"escape","KeySymbol":"","KeyCodes":"[]","ButtonIndexes":"[]","KeyCode":"0","ButtonIndex":"-1"}
  4446. @desc
  4447. キャンセルに使用するキーを指定します。
  4448.  
  4449. @param Menu
  4450. @text メニューキー
  4451. @type struct<Key>
  4452. @default {"KeyName":"menu","KeySymbol":"","KeyCodes":"[]","ButtonIndexes":"[\"3\"]","KeyCode":"-1","ButtonIndex":"-1"}
  4453. @desc
  4454. メニュー画面を開くキーを指定します。
  4455.  
  4456. @param ActorNormalAttack
  4457. @text アクター通常攻撃キー
  4458. @type struct<Key>
  4459. @default {"KeyName":"ok","KeySymbol":"","KeyCodes":"[]","ButtonIndexes":"[]","KeyCode":"-1","ButtonIndex":"-1"}
  4460. @desc
  4461. アクターが通常攻撃を行う時のキーを指定します。
  4462.  
  4463. @param ActorGuard
  4464. @text アクターガードキー
  4465. @type struct<Key>
  4466. @default {"KeyName":"other","KeySymbol":"A","KeyCodes":"[\"65\"]","ButtonIndexes":"[\"6\"]","KeyCode":"-1","ButtonIndex":"-1"}
  4467. @desc
  4468. アクターがガードを行う時のキーを指定します。
  4469.  
  4470. @param VisibleHitBox
  4471. @text ヒットボックス可視化切り替えキー
  4472. @type struct<Key>
  4473. @default {"KeyName":"other","KeySymbol":"F6","KeyCodes":"[\"117\"]","ButtonIndexes":"[]","KeyCode":"-1","ButtonIndex":"-1"}
  4474. @desc
  4475. ヒットボックス可視化有無の切り替えを行うキーを指定します。
  4476.  
  4477. @param ChangeControlActor
  4478. @text 操作アクター変更
  4479. @type struct<Key>
  4480. @default {"KeyName":"other","KeySymbol":"S","KeyCodes":"[\"83\"]","ButtonIndexes":"[\"11\"]","KeyCode":"-1","ButtonIndex":"-1"}
  4481. @desc
  4482. 操作アクターの変更を行うキーを指定します。
  4483. */
  4484. /*!/*~struct~SESetting:ja
  4485. @param ActorChange
  4486. @text アクターチェンジ
  4487. @type struct<SE>
  4488. @default {"FileName":"","Volume":"90","Pitch":"100","Pan":"0"}
  4489. @desc
  4490. アクターチェンジ時に再生するSEを指定します。
  4491. */
  4492. /*!/*~struct~Key:ja
  4493. @param KeyName
  4494. @text キー名
  4495. @type select
  4496. @option 決定
  4497. @value ok
  4498. @option キャンセル
  4499. @value escape
  4500. @option メニュー
  4501. @value menu
  4502. @option シフト
  4503. @value shift
  4504. @option 下
  4505. @value down
  4506. @option 左
  4507. @value left
  4508. @option 右
  4509. @value right
  4510. @option 上
  4511. @value up
  4512. @option ページアップ
  4513. @value pageup
  4514. @option ページダウン
  4515. @value pagedown
  4516. @option その他
  4517. @value other
  4518. @option 未割り当て
  4519. @value unassigned
  4520. @default ok
  4521. @desc
  4522. キーを指定します。
  4523.  
  4524. @param KeySymbol
  4525. @text キーシンボル
  4526. @type string
  4527. @desc
  4528. キーをその他に選択した場合のキーシンボルを指定します。使用しない場合は空欄にしてください。
  4529.  
  4530. @param KeyCodes
  4531. @text キーコード一覧
  4532. @type number[]
  4533. @default []
  4534. @desc
  4535. キーをその他に選択した場合に割り当てるキーコードを全て指定します。
  4536.  
  4537. @param ButtonIndexes
  4538. @text ボタンインデックス一覧
  4539. @type number[]
  4540. @default []
  4541. @desc
  4542. キーをその他に選択した場合に割り当てるボタンのインデックスを全て指定します。
  4543.  
  4544. @param KeyCode
  4545. @text キーコード(廃止予定)
  4546. @type number
  4547. @min -1
  4548. @default -1
  4549. @desc
  4550. キーをその他に選択した場合のキーコードを指定します。キーボードを使用しない場合は-1を指定してください。
  4551.  
  4552. @param ButtonIndex
  4553. @text ボタンインデックス(廃止予定)
  4554. @type number
  4555. @min -1
  4556. @default -1
  4557. @desc
  4558. キーをその他に選択した場合のボタンのインデックスを指定します。ゲームパッドを使用しない場合は-1を指定してください。
  4559. */
  4560. /*!/*~struct~Box:ja
  4561. @param X
  4562. @text X座標
  4563. @type number
  4564. @min -9999
  4565. @decimals 2
  4566. @default 0
  4567. @desc
  4568. X座標を指定します。
  4569.  
  4570. @param Y
  4571. @text Y座標
  4572. @type number
  4573. @min -9999
  4574. @decimals 2
  4575. @default 0
  4576. @desc
  4577. Y座標を指定します。
  4578.  
  4579. @param Width
  4580. @text 横幅
  4581. @type number
  4582. @min 0
  4583. @decimals 2
  4584. @default 1
  4585. @desc
  4586. 横幅を指定します。
  4587.  
  4588. @param Height
  4589. @text 縦幅
  4590. @type number
  4591. @min 0
  4592. @decimals 2
  4593. @default 1
  4594. @desc
  4595. 縦幅を指定します。
  4596. */
  4597. /*!/*~struct~CustomHitBoxColor:ja
  4598. @param CustomHitBoxTag
  4599. @text カスタムヒットボックスタグ
  4600. @type string
  4601. @desc カスタムヒットボックスのタグを指定します。
  4602.  
  4603. @param Color
  4604. @text カラー
  4605. @type string
  4606. @default #00ff00aa
  4607. @desc
  4608. ヒットボックス可視化時のカスタムヒットボックスのカラーを指定します。
  4609. */
  4610. /*!/*~struct~SkillObjectPosition:ja
  4611. @param Specification
  4612. @text 位置指定
  4613. @type select
  4614. @option 現在座標
  4615. @value current
  4616. @option 前方座標
  4617. @value forward
  4618. @option キャラクター座標
  4619. @value character
  4620. @option カスタム座標
  4621. @value custom
  4622. @default current
  4623. @desc
  4624. 位置指定方法を選択します。
  4625.  
  4626. @param CharacterSpecification
  4627. @text キャラクター指定
  4628. @type struct<CharacterSpecification>
  4629. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  4630. @desc 位置指定でキャラクター座標を選択した場合の対象となるキャラクターを指定します。
  4631.  
  4632. @param CustomPosition
  4633. @text カスタム座標
  4634. @type struct<Position>
  4635. @desc
  4636. 位置指定でカスタム座標を選択した場合の生成座標を指定します。
  4637. */
  4638. /*!/*~struct~TransparentObjectPosition:ja
  4639. @param Specification
  4640. @text 位置指定
  4641. @type select
  4642. @option キャラクター座標
  4643. @value character
  4644. @option カスタム座標
  4645. @value custom
  4646. @default current
  4647. @desc
  4648. 位置指定方法を選択します。
  4649.  
  4650. @param CharacterSpecification
  4651. @text キャラクター指定
  4652. @type struct<CharacterSpecification>
  4653. @default {"CharacterKind":"thisEvent","CharacterKindByVariable":"0","EventIdOrName":"1","EventIdByVariable":"0","FollowerIndex":"1","FollowerIndexByVariable":"0","VehicleKind":"boat","VehicleKindByVariable":"0"}
  4654. @desc 位置指定でキャラクター座標を選択した場合の対象となるキャラクターを指定します。
  4655.  
  4656. @param CustomPosition
  4657. @text カスタム座標
  4658. @type struct<Position>
  4659. @desc
  4660. 位置指定でカスタム座標を選択した場合の生成座標を指定します。
  4661. */
  4662. /*!/*~struct~Position:ja
  4663. @param X
  4664. @type number
  4665. @text X座標
  4666. @default 0
  4667. @desc イベントを生成するX座標を指定します。
  4668.  
  4669. @param XByVariable
  4670. @type variable
  4671. @text X座標(変数指定)
  4672. @default 0
  4673. @desc イベントを生成するX座標を変数で指定します。直接値を設定した場合は本パラメータは0を指定してください。
  4674.  
  4675. @param Y
  4676. @type number
  4677. @text Y座標
  4678. @default 0
  4679. @desc イベントを生成するY座標を指定します。
  4680.  
  4681. @param YByVariable
  4682. @type variable
  4683. @text Y座標(変数指定)
  4684. @default 0
  4685. @desc イベントを生成するY座標を変数で指定します。直接値を設定した場合は本パラメータは0を指定してください。
  4686. */
  4687. /*!/*~struct~ActorHitBox:ja
  4688. @param DamageHitBoxList
  4689. @type struct<Box>[]
  4690. @text ダメージ判定ヒットボックスリスト
  4691. @default []
  4692. @desc ダメージ判定ヒットボックスを設定します。
  4693. */
  4694. /*!/*~struct~SE:ja
  4695. @param FileName
  4696. @text SEファイル名
  4697. @type file
  4698. @dir audio/se
  4699. @desc
  4700. 再生するSEのファイル名を指定します。
  4701.  
  4702. @param Volume
  4703. @text SE音量
  4704. @type number
  4705. @default 90
  4706. @desc
  4707. 再生するSEのvolumeを指定します。
  4708.  
  4709. @param Pitch
  4710. @text SEピッチ
  4711. @type number
  4712. @default 100
  4713. @desc
  4714. 再生するSEのpitchを指定します。
  4715.  
  4716. @param Pan
  4717. @text SE位相
  4718. @type number
  4719. @default 0
  4720. @desc
  4721. 再生するSEのpanを指定します。
  4722. */
  4723. /*!/*~struct~CharacterSpecification:ja
  4724. @param CharacterKind
  4725. @text キャラクター種別
  4726. @type select
  4727. @option このイベント
  4728. @value thisEvent
  4729. @option プレイヤー
  4730. @value player
  4731. @option フォロワー
  4732. @value follower
  4733. @option イベント
  4734. @value event
  4735. @option 乗り物
  4736. @value vehicle
  4737. @default thisEvent
  4738. @desc
  4739. キャラクター種別を指定します。
  4740.  
  4741. @param CharacterKindByVariable
  4742. @text キャラクター種別(変数指定)
  4743. @type variable
  4744. @default 0
  4745. @desc
  4746. キャラクター種別を変数で指定します。
  4747.  
  4748. @param EventIdOrName
  4749. @text イベントID or イベント名
  4750. @type string
  4751. @default 1
  4752. @desc
  4753. キャラクター種別にイベントを指定した場合に対象となるイベントIDまたはイベント名を指定します。
  4754.  
  4755. @param EventIdByVariable
  4756. @text イベントID(変数指定)
  4757. @type variable
  4758. @default 0
  4759. @desc
  4760. キャラクター種別にイベントを指定した場合に対象となるイベントIDを変数で指定します。
  4761.  
  4762. @param FollowerIndex
  4763. @text フォロワーインデックス
  4764. @type number
  4765. @min 1
  4766. @default 1
  4767. @desc
  4768. キャラクター種別にフォロワーを指定した場合に対象となるフォロワーの順番を指定します。
  4769.  
  4770. @param FollowerIndexByVariable
  4771. @text フォロワーインデックス(変数指定)
  4772. @type variable
  4773. @default 0
  4774. @desc
  4775. キャラクター種別にフォロワーを指定した場合に対象となるフォロワーの順番を変数で指定します。
  4776.  
  4777. @param VehicleKind
  4778. @text 乗り物種別
  4779. @type select
  4780. @option 小型船
  4781. @value boat
  4782. @option 大型船
  4783. @value ship
  4784. @option 飛行船
  4785. @value airship
  4786. @default boat
  4787. @desc
  4788. キャラクター種別に乗り物を指定した場合に対象となる乗り物を指定します。
  4789.  
  4790. @param VehicleKindByVariable
  4791. @text 乗り物種別(変数指定)
  4792. @type variable
  4793. @default 0
  4794. @desc
  4795. キャラクター種別に乗り物を指定した場合に対象となる乗り物を変数で指定します。
  4796. */
  4797. /*!/*~struct~SkillSpecification:ja
  4798. @param SkillOrItem
  4799. @text スキル or アイテム
  4800. @type select
  4801. @option スキル
  4802. @value skill
  4803. @option アイテム
  4804. @value item
  4805. @default skill
  4806. @desc スキルまたはアイテムのどちらを指定するかを選択します。
  4807.  
  4808. @param SkillId
  4809. @type skill
  4810. @text スキルID
  4811. @default 1
  4812. @desc 使用するスキルのIDを指定します。名前指定または変数指定を行った場合、そちらが優先されます。
  4813.  
  4814. @param SkillByName
  4815. @type string
  4816. @text スキル(名前指定)
  4817. @desc 使用するスキルの名前を指定します。名前指定を使用しない場合は空欄にしてください。
  4818.  
  4819. @param SkillIdByVariable
  4820. @type variable
  4821. @text スキルID(変数指定)
  4822. @default 0
  4823. @desc 使用するスキルのIDを変数で指定します。変数指定を使用しない場合は0にしてください。
  4824.  
  4825. @param ItemId
  4826. @type item
  4827. @text アイテムID
  4828. @default 1
  4829. @desc 使用するアイテムのIDを指定します。名前指定または変数指定を行った場合、そちらが優先されます。
  4830.  
  4831. @param ItemByName
  4832. @type string
  4833. @text アイテム(名前指定)
  4834. @desc 使用するアイテムの名前を指定します。名前指定を使用しない場合は空欄にしてください。
  4835.  
  4836. @param ItemIdByVariable
  4837. @type variable
  4838. @text アイテムID(変数指定)
  4839. @default 0
  4840. @desc 使用するアイテムのIDを変数で指定します。変数指定を使用しない場合は0にしてください。
  4841. */
  4842.  
  4843. var __tmp__require = require;
  4844.  
  4845. var simpleExported;
  4846. if (typeof simpleExported === "undefined") {
  4847.     simpleExported = {};
  4848. }
  4849.  
  4850. function simpleImport(path) {
  4851.     const pathArray = path.split("/");
  4852.     let module = simpleExported;
  4853.     for (const key of pathArray) {
  4854.         module = module[key];
  4855.     }
  4856.     return module;
  4857. }
  4858.  
  4859. function simpleExport(path, obj) {
  4860.     const pathArray = path.split("/");
  4861.     let module = simpleExported;
  4862.     for (const key of pathArray.slice(0, pathArray.length - 1)) {
  4863.         if (module[key] == null) {
  4864.             module[key] = {};
  4865.         }
  4866.         module = module[key];
  4867.     }
  4868.     module[pathArray[pathArray.length - 1]] = obj;
  4869. }
  4870.  
  4871. var require = (path) => {
  4872.     return simpleImport(path);
  4873. };
  4874.  
  4875. "use strict";
  4876. (() => {
  4877.     var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
  4878.         get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
  4879.     }) : x)(function(x) {
  4880.         if (typeof require !== "undefined")
  4881.             return require.apply(this, arguments);
  4882.         throw new Error('Dynamic require of "' + x + '" is not supported');
  4883.     });
  4884.  
  4885.     // ts/ARPG_Core/ExportDotMoveSystem.ts
  4886.     simpleExport("DotMoveSystem", DotMoveSystem);
  4887.  
  4888.     // ts/ARPG_Core/ARPG_Config.ts
  4889.     var import_DotMoveSystem = __require("DotMoveSystem");
  4890.  
  4891.     // ts/CommonLibrary/Degree.ts
  4892.     var _Degree = class {
  4893.         get value() {
  4894.             return this._value;
  4895.         }
  4896.         static fromDirection(direction) {
  4897.             switch (direction) {
  4898.                 case 8:
  4899.                     return _Degree.UP;
  4900.                 case 9:
  4901.                     return _Degree.UP_RIGHT;
  4902.                 case 6:
  4903.                     return _Degree.RIGHT;
  4904.                 case 3:
  4905.                     return _Degree.RIGHT_DOWN;
  4906.                 case 2:
  4907.                     return _Degree.DOWN;
  4908.                 case 1:
  4909.                     return _Degree.DOWN_LEFT;
  4910.                 case 4:
  4911.                     return _Degree.LEFT;
  4912.                 case 7:
  4913.                     return _Degree.LEFT_UP;
  4914.                 default:
  4915.                     throw new Error(`${direction} is not found`);
  4916.             }
  4917.         }
  4918.         static fromRad(rad) {
  4919.             return new _Degree(rad * 180 / Math.PI + 90);
  4920.         }
  4921.         constructor(...args) {
  4922.             this.initialize(...args);
  4923.         }
  4924.         initialize(value) {
  4925.             value %= 360;
  4926.             if (value < 0)
  4927.                 value = 360 + value;
  4928.             this._value = value;
  4929.         }
  4930.         toRad() {
  4931.             return (this._value - 90) * Math.PI / 180;
  4932.         }
  4933.         toDirection8() {
  4934.             const t = Math.round(this._value / 45);
  4935.             if (t === 0 || t === 8) {
  4936.                 return 8;
  4937.             } else if (t === 1) {
  4938.                 return 9;
  4939.             } else if (t === 2) {
  4940.                 return 6;
  4941.             } else if (t === 3) {
  4942.                 return 3;
  4943.             } else if (t === 4) {
  4944.                 return 2;
  4945.             } else if (t === 5) {
  4946.                 return 1;
  4947.             } else if (t === 6) {
  4948.                 return 4;
  4949.             } else if (t === 7) {
  4950.                 return 7;
  4951.             } else {
  4952.                 throw new Error(`${this._value} is not found`);
  4953.             }
  4954.         }
  4955.         toDirection4(lastDirection) {
  4956.             const t = Math.round(this._value / 45);
  4957.             if (t === 0 || t === 8) {
  4958.                 return 8;
  4959.             } else if (t === 1) {
  4960.                 if (lastDirection === 8)
  4961.                     return 8;
  4962.                 return 6;
  4963.             } else if (t === 2) {
  4964.                 return 6;
  4965.             } else if (t === 3) {
  4966.                 if (lastDirection === 6)
  4967.                     return 6;
  4968.                 return 2;
  4969.             } else if (t === 4) {
  4970.                 return 2;
  4971.             } else if (t === 5) {
  4972.                 if (lastDirection === 2)
  4973.                     return 2;
  4974.                 return 4;
  4975.             } else if (t === 6) {
  4976.                 return 4;
  4977.             } else if (t === 7) {
  4978.                 if (lastDirection === 4)
  4979.                     return 4;
  4980.                 return 8;
  4981.             } else {
  4982.                 throw new Error(`${this._value} is not found`);
  4983.             }
  4984.         }
  4985.         isInRange(min, max) {
  4986.             const minVal = typeof min === "number" ? min : min.value;
  4987.             const maxVal = typeof max === "number" ? max : max.value;
  4988.             if (minVal <= maxVal) {
  4989.                 return minVal <= this.value && this.value <= maxVal;
  4990.             } else {
  4991.                 if (minVal <= this.value && this.value < 360)
  4992.                     return true;
  4993.                 if (this.value <= maxVal)
  4994.                     return true;
  4995.                 return false;
  4996.             }
  4997.         }
  4998.         add(degree) {
  4999.             if (typeof degree === "number") {
  5000.                 return new _Degree(this.value + degree);
  5001.             } else {
  5002.                 return new _Degree(this.value + degree.value);
  5003.             }
  5004.         }
  5005.         sub(degree) {
  5006.             if (typeof degree === "number") {
  5007.                 return new _Degree(this.value - degree);
  5008.             } else {
  5009.                 return new _Degree(this.value - degree.value);
  5010.             }
  5011.         }
  5012.     };
  5013.     var Degree = _Degree;
  5014.     Degree.UP = new _Degree(0);
  5015.     Degree.UP_RIGHT = new _Degree(45);
  5016.     Degree.RIGHT = new _Degree(90);
  5017.     Degree.RIGHT_DOWN = new _Degree(135);
  5018.     Degree.DOWN = new _Degree(180);
  5019.     Degree.DOWN_LEFT = new _Degree(225);
  5020.     Degree.LEFT = new _Degree(270);
  5021.     Degree.LEFT_UP = new _Degree(315);
  5022.  
  5023.     // ts/CommonLibrary/PluginParamsParser.ts
  5024.     var PluginParamsParser = class {
  5025.         static parse(params, typeData = {}, predictEnable = true) {
  5026.             return new PluginParamsParser(predictEnable).parse(params, typeData);
  5027.         }
  5028.         constructor(predictEnable = true) {
  5029.             this._predictEnable = predictEnable;
  5030.         }
  5031.         parse(params, typeData = {}) {
  5032.             const result = {};
  5033.             for (const name in params) {
  5034.                 const expandedParam = this.expandParam(params[name]);
  5035.                 result[name] = this.convertParam(expandedParam, typeData[name]);
  5036.             }
  5037.             return result;
  5038.         }
  5039.         expandParam(strParam, loopCount = 0) {
  5040.             if (++loopCount > 255)
  5041.                 throw new Error("endless loop error");
  5042.             if (strParam.match(/^\s*\[.*\]\s*$/)) {
  5043.                 const aryParam = JSON.parse(strParam);
  5044.                 return aryParam.map((data) => this.expandParam(data), loopCount + 1);
  5045.             } else if (strParam.match(/^\s*\{.*\}\s*$/)) {
  5046.                 const result = {};
  5047.                 const objParam = JSON.parse(strParam);
  5048.                 for (const name in objParam) {
  5049.                     result[name] = this.expandParam(objParam[name], loopCount + 1);
  5050.                 }
  5051.                 return result;
  5052.             }
  5053.             return strParam;
  5054.         }
  5055.         convertParam(param, type, loopCount = 0) {
  5056.             if (++loopCount > 255)
  5057.                 throw new Error("endless loop error");
  5058.             if (typeof param === "string") {
  5059.                 return this.cast(param, type);
  5060.             } else if (typeof param === "object" && param instanceof Array) {
  5061.                 if (!(param == null || typeof param === "object" && param instanceof Array)) {
  5062.                     throw new Error(`Invalid array type: ${type}`);
  5063.                 }
  5064.                 return param.map((data, i) => {
  5065.                     const dataType = type == null ? void 0 : type[i];
  5066.                     return this.convertParam(data, dataType, loopCount + 1);
  5067.                 });
  5068.             } else if (typeof param === "object") {
  5069.                 if (!(param == null || typeof param === "object")) {
  5070.                     throw new Error(`Invalid object type: ${type}`);
  5071.                 }
  5072.                 const result = {};
  5073.                 for (const name in param) {
  5074.                     const dataType = type == null ? void 0 : type[name];
  5075.                     result[name] = this.convertParam(param[name], dataType, loopCount + 1);
  5076.                 }
  5077.                 return result;
  5078.             } else {
  5079.                 throw new Error(`Invalid param: ${param}`);
  5080.             }
  5081.         }
  5082.         cast(param, type) {
  5083.             if (param == null || param === "")
  5084.                 return void 0;
  5085.             if (type == null)
  5086.                 type = "any";
  5087.             switch (type) {
  5088.                 case "any":
  5089.                     if (!this._predictEnable)
  5090.                         throw new Error("Predict mode is disable");
  5091.                     return this.cast(param, this.predict(param));
  5092.                 case "string":
  5093.                     return param;
  5094.                 case "number":
  5095.                     if (param.match(/^\-?\d+\.\d+$/))
  5096.                         return parseFloat(param);
  5097.                     return parseInt(param);
  5098.                 case "boolean":
  5099.                     return param === "true";
  5100.                 default:
  5101.                     throw new Error(`Unknow type: ${type}`);
  5102.             }
  5103.         }
  5104.         predict(param) {
  5105.             if (param.match(/^\-?\d+$/) || param.match(/^\-?\d+\.\d+$/)) {
  5106.                 return "number";
  5107.             } else if (param === "true" || param === "false") {
  5108.                 return "boolean";
  5109.             } else {
  5110.                 return "string";
  5111.             }
  5112.         }
  5113.     };
  5114.  
  5115.     // ts/ARPG_Core/ARPG_Utils.ts
  5116.     var ARPG_Utils = class {
  5117.         static searchNearBattler(subjectCharacter, target) {
  5118.             if (!subjectCharacter.isBattler())
  5119.                 throw new Error(`Subject character is not battler.`);
  5120.             const actorCharacters = this.allAliveActorCharacters();
  5121.             const enemyCharacters = this.allAliveEnemyCharacters();
  5122.             if (target === "opponent") {
  5123.                 if (subjectCharacter.battler().isActor()) {
  5124.                     return this.searchNearCharacter(subjectCharacter, enemyCharacters);
  5125.                 } else {
  5126.                     return this.searchNearCharacter(subjectCharacter, actorCharacters);
  5127.                 }
  5128.             } else if (target === "friend") {
  5129.                 if (subjectCharacter.battler().isActor()) {
  5130.                     return this.searchNearCharacter(subjectCharacter, actorCharacters);
  5131.                 } else {
  5132.                     return this.searchNearCharacter(subjectCharacter, enemyCharacters);
  5133.                 }
  5134.             } else {
  5135.                 return this.searchNearCharacter(subjectCharacter, actorCharacters.concat(enemyCharacters));
  5136.             }
  5137.         }
  5138.         static searchNearCharacter(subjectCharacter, targetCharacters) {
  5139.             let minFar;
  5140.             let minFarCharacter;
  5141.             for (const targetCharacter of targetCharacters) {
  5142.                 if (targetCharacter == subjectCharacter)
  5143.                     continue;
  5144.                 const far = subjectCharacter.calcFar(targetCharacter);
  5145.                 if (minFar == null || far <= minFar) {
  5146.                     minFar = far;
  5147.                     minFarCharacter = targetCharacter;
  5148.                 }
  5149.             }
  5150.             if (minFar == null)
  5151.                 minFar = 0;
  5152.             return { character: minFarCharacter, far: minFar };
  5153.         }
  5154.         static countEnemies() {
  5155.             const enemyCharacters = $gameMap.events().filter((event) => {
  5156.                 return event.battler().isEnemy() && event.battler().isAlive();
  5157.             });
  5158.             return enemyCharacters.length;
  5159.         }
  5160.         static isFront(subject, target, range) {
  5161.             const deg = subject.centerPositionPoint().calcDeg(target.centerPositionPoint());
  5162.             const dirDeg = Degree.fromDirection(subject.direction());
  5163.             const minDeg = dirDeg.value - range / 2;
  5164.             const maxDeg = dirDeg.value + range / 2;
  5165.             return new Degree(deg.value).isInRange(minDeg, maxDeg);
  5166.         }
  5167.         static hasActionItem(item) {
  5168.             if (item == null)
  5169.                 return false;
  5170.             return !!item.meta.action;
  5171.         }
  5172.         static allBattlerCharacters() {
  5173.             const allCharacters = [...$gameMap.allCharacters()];
  5174.             return allCharacters.filter((character) => {
  5175.                 if (!(character instanceof Game_Character))
  5176.                     return false;
  5177.                 if (!character.isBattler())
  5178.                     return false;
  5179.                 return true;
  5180.             });
  5181.         }
  5182.         static allAliveBattlerCharacters() {
  5183.             return this.allBattlerCharacters().filter((character) => {
  5184.                 if (character.battler().isDead())
  5185.                     return false;
  5186.                 return true;
  5187.             });
  5188.         }
  5189.         static allActorCharacters() {
  5190.             return this.allBattlerCharacters().filter((character) => {
  5191.                 if (!character.battler().isActor())
  5192.                     return false;
  5193.                 return true;
  5194.             });
  5195.         }
  5196.         static allAliveActorCharacters() {
  5197.             return this.allAliveBattlerCharacters().filter((character) => {
  5198.                 if (!character.battler().isActor())
  5199.                     return false;
  5200.                 return true;
  5201.             });
  5202.         }
  5203.         static allEnemyCharacters() {
  5204.             return this.allBattlerCharacters().filter((character) => {
  5205.                 if (!character.battler().isEnemy())
  5206.                     return false;
  5207.                 return true;
  5208.             });
  5209.         }
  5210.         static allAliveEnemyCharacters() {
  5211.             return this.allAliveBattlerCharacters().filter((character) => {
  5212.                 if (!character.battler().isEnemy())
  5213.                     return false;
  5214.                 return true;
  5215.             });
  5216.         }
  5217.         static searchSkillId(skillName) {
  5218.             const foundSkill = $dataSkills.find((skill) => {
  5219.                 if (!skill)
  5220.                     return false;
  5221.                 return skill.name === skillName;
  5222.             });
  5223.             if (foundSkill)
  5224.                 return foundSkill.id;
  5225.             return void 0;
  5226.         }
  5227.         static characterKindValue(character) {
  5228.             if (character instanceof Game_Player) {
  5229.                 return 1;
  5230.             } else if (character instanceof Game_Follower) {
  5231.                 return 2;
  5232.             } else if (character instanceof Game_Event) {
  5233.                 return 3;
  5234.             } else if (character instanceof Game_Vehicle) {
  5235.                 return 4;
  5236.             }
  5237.             throw new Error(`Character has not kind value.`);
  5238.         }
  5239.         static registerKey(name, key) {
  5240.             switch (key.KeyName) {
  5241.                 case "ok":
  5242.                 case "escape":
  5243.                 case "menu":
  5244.                 case "shift":
  5245.                 case "down":
  5246.                 case "left":
  5247.                 case "right":
  5248.                 case "up":
  5249.                 case "pageup":
  5250.                 case "pagedown":
  5251.                     this._keyTable[name] = key.KeyName;
  5252.                     break;
  5253.                 case "other":
  5254.                     if (key.KeySymbol != null && key.KeySymbol !== "") {
  5255.                         this._keyTable[name] = key.KeySymbol;
  5256.                         if (key.KeyCodes) {
  5257.                             for (const keyCode of key.KeyCodes) {
  5258.                                 Input.keyMapper[keyCode] = key.KeySymbol;
  5259.                             }
  5260.                         }
  5261.                         if (key.ButtonIndexes) {
  5262.                             for (const buttonIndex of key.ButtonIndexes) {
  5263.                                 Input.gamepadMapper[buttonIndex] = key.KeySymbol;
  5264.                             }
  5265.                         }
  5266.                         if (key.KeyCode >= 0) {
  5267.                             Input.keyMapper[key.KeyCode] = key.KeySymbol;
  5268.                         }
  5269.                         if (key.ButtonIndex >= 0) {
  5270.                             Input.gamepadMapper[key.ButtonIndex] = key.KeySymbol;
  5271.                         }
  5272.                     }
  5273.                     break;
  5274.             }
  5275.         }
  5276.         static getKeySymbol(name) {
  5277.             return this._keyTable[name];
  5278.         }
  5279.         // NOTE: シーンの状態を問わずアクターの変更が可能かを判定する。
  5280.         //       そのためシーン固有の状態によるアクター変更可否はシーンの方で判定が必要。
  5281.         static isChangeActorEnabled() {
  5282.             if ($gamePlayer.isBattler()) {
  5283.                 if ($gamePlayer.battler().isDamageReceiving())
  5284.                     return false;
  5285.                 if ($gamePlayer.battler().isSkillUsing())
  5286.                     return false;
  5287.             }
  5288.             return true;
  5289.         }
  5290.         static itemAttackElementIds(item) {
  5291.             const allElements = $dataSystem.elements;
  5292.             let elementIds = /* @__PURE__ */ new Set();
  5293.             if (item.damage.elementId >= 0)
  5294.                 elementIds.add(item.damage.elementId);
  5295.             for (const matchData of item.note.matchAll(/\<damageElement\s*\:\s*(.+)\s*\>/g)) {
  5296.                 if (matchData && matchData[1]) {
  5297.                     const elementName = matchData[1];
  5298.                     for (let i = 0; i < allElements.length; i++) {
  5299.                         if (allElements[i] === elementName) {
  5300.                             elementIds.add(i);
  5301.                             break;
  5302.                         }
  5303.                     }
  5304.                 }
  5305.             }
  5306.             return [...elementIds];
  5307.         }
  5308.     };
  5309.     ARPG_Utils._keyTable = {};
  5310.  
  5311.     // ts/ARPG_Core/ErrorManager.ts
  5312.     var ErrorManager = class {
  5313.         static skillActivationUnusedSkillError() {
  5314.             let message;
  5315.             if (ARPG_CorePluginParams.ErrorMessageLanguage === "ja") {
  5316.                 message = `\u30B9\u30AD\u30EB\u672A\u4F7F\u7528\u306E\u72B6\u614B\u3067\u30B9\u30AD\u30EB\u767A\u52D5\u3092\u884C\u3046\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002`;
  5317.             } else {
  5318.                 message = `You cannot activate the skill while the skill is unused.`;
  5319.             }
  5320.             return new Error(message);
  5321.         }
  5322.         static applySkillEffectUnusedSkillError() {
  5323.             let message;
  5324.             if (ARPG_CorePluginParams.ErrorMessageLanguage === "ja") {
  5325.                 message = `\u30B9\u30AD\u30EB\u672A\u4F7F\u7528\u306E\u72B6\u614B\u3067\u30B9\u30AD\u30EB\u52B9\u679C\u9069\u7528\u3092\u884C\u3046\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002`;
  5326.             } else {
  5327.                 message = `The skill effect cannot be applied while the skill is not used.`;
  5328.             }
  5329.             return new Error(message);
  5330.         }
  5331.         static applySkillEffectUnActivate() {
  5332.             let message;
  5333.             if (ARPG_CorePluginParams.ErrorMessageLanguage === "ja") {
  5334.                 message = `\u30B9\u30AD\u30EB\u3092\u767A\u52D5\u3057\u3066\u3044\u306A\u3044\u72B6\u614B\u3067\u30B9\u30AD\u30EB\u52B9\u679C\u9069\u7528\u3092\u884C\u3046\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002`;
  5335.             } else {
  5336.                 message = `Skill effects cannot be applied while the skill is not activated.`;
  5337.             }
  5338.             return new Error(message);
  5339.         }
  5340.         static testApplySkillEffectUnusedSkillError() {
  5341.             let message;
  5342.             if (ARPG_CorePluginParams.ErrorMessageLanguage === "ja") {
  5343.                 message = `\u30B9\u30AD\u30EB\u672A\u4F7F\u7528\u306E\u72B6\u614B\u3067\u30B9\u30AD\u30EB\u52B9\u679C\u9069\u7528\u30C6\u30B9\u30C8\u3092\u884C\u3046\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002`;
  5344.             } else {
  5345.                 message = `Skill effect application test cannot be performed while skill is not used.`;
  5346.             }
  5347.             return new Error(message);
  5348.         }
  5349.         static makeSkillObjectUnActivate() {
  5350.             let message;
  5351.             if (ARPG_CorePluginParams.ErrorMessageLanguage === "ja") {
  5352.                 message = `\u30B9\u30AD\u30EB\u306E\u767A\u52D5\u3092\u884C\u308F\u305A\u306B\u30B9\u30AD\u30EB\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u751F\u6210\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002`;
  5353.             } else {
  5354.                 message = `A skill object cannot be created without activating the skill.`;
  5355.             }
  5356.             return new Error(message);
  5357.         }
  5358.         static makeSkillObjectNotBattlerOrSkillObject() {
  5359.             let message;
  5360.             if (ARPG_CorePluginParams.ErrorMessageLanguage === "ja") {
  5361.                 message = `\u30D0\u30C8\u30E9\u30FC\u307E\u305F\u306F\u30B9\u30AD\u30EB\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3067\u306A\u3044\u30A4\u30D9\u30F3\u30C8\u306F\u30B9\u30AD\u30EB\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3092\u751F\u6210\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002`;
  5362.             } else {
  5363.                 message = `Events that are not battlers or skill objects cannot generate skill objects.`;
  5364.             }
  5365.             return new Error(message);
  5366.         }
  5367.     };
  5368.  
  5369.     // ts/ARPG_Core/HitBox.ts
  5370.     var HitBox = class extends Game_Character {
  5371.         constructor(...args) {
  5372.             super(...args);
  5373.         }
  5374.         get owner() {
  5375.             return this._owner;
  5376.         }
  5377.         get hitArea() {
  5378.             return this._hitArea;
  5379.         }
  5380.         set hitArea(_hitArea) {
  5381.             this._hitArea = _hitArea;
  5382.         }
  5383.         get hitBoxColor() {
  5384.             return this._hitBoxColor;
  5385.         }
  5386.         get type() {
  5387.             return this._type;
  5388.         }
  5389.         get customTag() {
  5390.             return this._customTag;
  5391.         }
  5392.         initialize(...args) {
  5393.             super.initialize();
  5394.             const [type, owner, hitArea, hitBoxColor, customTag] = args;
  5395.             this._owner = owner;
  5396.             this._hitArea = hitArea;
  5397.             this._hitBoxColor = hitBoxColor;
  5398.             this._type = type;
  5399.             this._customTag = customTag;
  5400.             this.updatePosition();
  5401.         }
  5402.         update() {
  5403.             super.update();
  5404.             this.updatePosition();
  5405.         }
  5406.         setHitChecker(hitChecker) {
  5407.             this._hitChecker = hitChecker;
  5408.         }
  5409.         updatePosition() {
  5410.             const ownerPos = this._owner.positionPoint();
  5411.             this.setPositionPoint(new DotMoveSystem.DotMovePoint(ownerPos.x + this._hitArea.x, ownerPos.y + this._hitArea.y));
  5412.         }
  5413.         width() {
  5414.             return this._hitArea.width;
  5415.         }
  5416.         height() {
  5417.             return this._hitArea.height;
  5418.         }
  5419.         checkHitCharactersByHitBox(type, customTag = "") {
  5420.             const hitCharacters = /* @__PURE__ */ new Set();
  5421.             const results = this.checkHitCharacters(HitBox);
  5422.             for (const result of results) {
  5423.                 const targetHitBox = result.targetObject;
  5424.                 if (this.owner === targetHitBox.owner)
  5425.                     continue;
  5426.                 if (!targetHitBox.isEnabled())
  5427.                     continue;
  5428.                 if (targetHitBox.type !== type)
  5429.                     continue;
  5430.                 if (targetHitBox.type === "custom" && targetHitBox.customTag !== customTag)
  5431.                     continue;
  5432.                 hitCharacters.add(targetHitBox.owner);
  5433.             }
  5434.             return hitCharacters;
  5435.         }
  5436.         getHitBoxSprite() {
  5437.             if (!(SceneManager._scene instanceof Scene_Map))
  5438.                 return void 0;
  5439.             const spriteset = SceneManager._scene._spriteset;
  5440.             return spriteset.findTargetHitBoxSprite(this);
  5441.         }
  5442.         screenX() {
  5443.             const tw = $gameMap.tileWidth();
  5444.             return Math.floor(this.scrolledX() * tw);
  5445.         }
  5446.         screenY() {
  5447.             const th = $gameMap.tileHeight();
  5448.             return Math.floor(this.scrolledY() * th);
  5449.         }
  5450.         screenZ() {
  5451.             return 255;
  5452.         }
  5453.         isEnabled() {
  5454.             if (this._hitChecker == null)
  5455.                 return false;
  5456.             return this._hitChecker.isEnabled();
  5457.         }
  5458.     };
  5459.  
  5460.     // ts/CommonLibrary/ComponentRunner.ts
  5461.     var ComponentRunner = class {
  5462.         constructor(user) {
  5463.             this._components = /* @__PURE__ */ new Set();
  5464.             this._end = false;
  5465.             this._user = user;
  5466.         }
  5467.         prepareUpdate() {
  5468.             for (const component of this._components) {
  5469.                 component.prepareUpdateComponent();
  5470.             }
  5471.         }
  5472.         update() {
  5473.             if (this._end)
  5474.                 return;
  5475.             const components = [...this._components];
  5476.             for (const component of components) {
  5477.                 component.updateComponent();
  5478.                 if (component.isTerminated()) {
  5479.                     this.removeComponent(component);
  5480.                 }
  5481.             }
  5482.         }
  5483.         addComponent(component) {
  5484.             this._components.add(component);
  5485.             component.setUser(this._user);
  5486.         }
  5487.         removeComponent(component) {
  5488.             this._components.delete(component);
  5489.         }
  5490.         hasComponent(component) {
  5491.             if (component == null)
  5492.                 return false;
  5493.             return this._components.has(component);
  5494.         }
  5495.         hasComponentByClass(componentClass) {
  5496.             return !![...this._components].find((c) => c instanceof componentClass);
  5497.         }
  5498.         end() {
  5499.             for (const component of this._components) {
  5500.                 component.end(true);
  5501.             }
  5502.         }
  5503.         isEnd() {
  5504.             return this._end;
  5505.         }
  5506.     };
  5507.  
  5508.     // ts/CommonLibrary/Component.ts
  5509.     var Component = class {
  5510.         constructor() {
  5511.             this._end = false;
  5512.             this._terminated = false;
  5513.             this._started = false;
  5514.             this._stopped = false;
  5515.             this._calledSuperMethodNames = [];
  5516.         }
  5517.         user() {
  5518.             return this._user;
  5519.         }
  5520.         setUser(user) {
  5521.             this._user = user;
  5522.             this._componentRunner = new ComponentRunner(user);
  5523.             this.setup();
  5524.         }
  5525.         isStarted() {
  5526.             return this._started;
  5527.         }
  5528.         isStopped() {
  5529.             if (this._end)
  5530.                 return true;
  5531.             return this._stopped;
  5532.         }
  5533.         isBusy() {
  5534.             return !this.isStopped();
  5535.         }
  5536.         stop() {
  5537.             this._stopped = true;
  5538.         }
  5539.         resume() {
  5540.             this._stopped = false;
  5541.         }
  5542.         isEnd() {
  5543.             return this._end;
  5544.         }
  5545.         isTerminated() {
  5546.             return this._terminated;
  5547.         }
  5548.         end(fastTerminate = false) {
  5549.             this._end = true;
  5550.             if (fastTerminate) {
  5551.                 this.updateComponent();
  5552.             }
  5553.         }
  5554.         prepareUpdateComponent() {
  5555.             if (this._end)
  5556.                 return;
  5557.             if (this._stopped)
  5558.                 return;
  5559.             if (this._started) {
  5560.                 this._componentRunner.prepareUpdate();
  5561.                 this._calledSuperMethodNames = [];
  5562.                 this.prepareUpdate();
  5563.                 this.checkSuperMethodCalled("prepareUpdate");
  5564.             }
  5565.         }
  5566.         updateComponent() {
  5567.             if (!this._end && !this._stopped) {
  5568.                 this._componentRunner.update();
  5569.                 if (this._started) {
  5570.                     this._calledSuperMethodNames = [];
  5571.                     this.update();
  5572.                     this.checkSuperMethodCalled("update");
  5573.                 } else {
  5574.                     this._started = true;
  5575.                     this._calledSuperMethodNames = [];
  5576.                     this.start();
  5577.                     this.checkSuperMethodCalled("start");
  5578.                 }
  5579.             }
  5580.             if (this._end && !this._terminated) {
  5581.                 this._terminated = true;
  5582.                 this._calledSuperMethodNames = [];
  5583.                 this.terminate();
  5584.                 this.checkSuperMethodCalled("terminate");
  5585.                 this._componentRunner.end();
  5586.             }
  5587.         }
  5588.         addComponent(component) {
  5589.             this._componentRunner.addComponent(component);
  5590.         }
  5591.         removeComponent(component) {
  5592.             this._componentRunner.removeComponent(component);
  5593.         }
  5594.         hasComponent(component) {
  5595.             return this._componentRunner.hasComponent(component);
  5596.         }
  5597.         hasComponentByClass(componentClass) {
  5598.             return this._componentRunner.hasComponentByClass(componentClass);
  5599.         }
  5600.         setup() {
  5601.             this._calledSuperMethodNames.push("setup");
  5602.         }
  5603.         start() {
  5604.             this._calledSuperMethodNames.push("start");
  5605.         }
  5606.         prepareUpdate() {
  5607.             this._calledSuperMethodNames.push("prepareUpdate");
  5608.         }
  5609.         update() {
  5610.             this._calledSuperMethodNames.push("update");
  5611.         }
  5612.         terminate() {
  5613.             this._calledSuperMethodNames.push("terminate");
  5614.         }
  5615.         checkSuperMethodCalled(methodName) {
  5616.             if (!this._calledSuperMethodNames.includes(methodName)) {
  5617.                 throw new Error(`${this.constructor.name}: super.${methodName}() is not called.`);
  5618.             }
  5619.         }
  5620.     };
  5621.  
  5622.     // ts/ARPG_Core/HitChecker.ts
  5623.     var HitChecker = class extends Component {
  5624.         constructor(type, customTag) {
  5625.             super();
  5626.             this._hitBoxs = [];
  5627.             this._disableReasons = /* @__PURE__ */ new Set();
  5628.             this._type = type;
  5629.             this._customTag = customTag;
  5630.         }
  5631.         get hitBoxs() {
  5632.             return this._hitBoxs;
  5633.         }
  5634.         get type() {
  5635.             return this._type;
  5636.         }
  5637.         get customTag() {
  5638.             return this._customTag;
  5639.         }
  5640.         update() {
  5641.             super.update();
  5642.             for (const hitBox of this._hitBoxs) {
  5643.                 hitBox.update();
  5644.             }
  5645.         }
  5646.         addHitBox(hitBox) {
  5647.             if (this.type !== hitBox.type) {
  5648.                 throw new Error(`mismatch: hitChecker.type=${this.type}, hitBox.type=${hitBox.type}`);
  5649.             }
  5650.             if (this.type === "custom" && this.customTag !== hitBox.customTag) {
  5651.                 throw new Error(`mismatch: hitChecker.customTag=${this.customTag}, hitBox.customTag=${hitBox.customTag}`);
  5652.             }
  5653.             this._hitBoxs.push(hitBox);
  5654.             hitBox.setHitChecker(this);
  5655.         }
  5656.         clearHitBoxs() {
  5657.             this._hitBoxs = [];
  5658.         }
  5659.         checkHit(hitBoxType, customTag = "") {
  5660.             const hitCharacters = /* @__PURE__ */ new Set();
  5661.             if (!this.isEnabled())
  5662.                 return hitCharacters;
  5663.             for (const hitBox of this._hitBoxs) {
  5664.                 for (const character of hitBox.checkHitCharactersByHitBox(hitBoxType, customTag)) {
  5665.                     hitCharacters.add(character);
  5666.                 }
  5667.             }
  5668.             return hitCharacters;
  5669.         }
  5670.         checkHitByOtherHitChecker(otherHitChecker) {
  5671.             if (!this.isEnabled())
  5672.                 return false;
  5673.             if (!otherHitChecker.isEnabled())
  5674.                 return false;
  5675.             for (const subjectHitBox of this._hitBoxs) {
  5676.                 for (const result of subjectHitBox.checkHitCharacters(HitBox)) {
  5677.                     for (const targetHitBox of otherHitChecker.hitBoxs) {
  5678.                         if (result.targetObject === targetHitBox)
  5679.                             return true;
  5680.                     }
  5681.                 }
  5682.             }
  5683.             return false;
  5684.         }
  5685.         addDisableReason(reason) {
  5686.             this._disableReasons.add(reason);
  5687.         }
  5688.         removeDisableReason(reason) {
  5689.             this._disableReasons.delete(reason);
  5690.         }
  5691.         isEnabled() {
  5692.             return this._disableReasons.size === 0;
  5693.         }
  5694.     };
  5695.  
  5696.     // ts/ARPG_Core/ARPG_Config.ts
  5697.     var ARPG_CorePluginName = document.currentScript ? decodeURIComponent(document.currentScript.src.match(/^.*\/(.+)\.js$/)[1]) : "ARPG_Core";
  5698.     var ARPG_CorePluginParams = PluginParamsParser.parse(PluginManager.parameters(ARPG_CorePluginName));
  5699.     if (ARPG_CorePluginParams.KeySetting.Cancel != null) {
  5700.         ARPG_Utils.registerKey("Cancel", ARPG_CorePluginParams.KeySetting.Cancel);
  5701.     }
  5702.     if (ARPG_CorePluginParams.KeySetting.Menu != null) {
  5703.         ARPG_Utils.registerKey("Menu", ARPG_CorePluginParams.KeySetting.Menu);
  5704.     }
  5705.     if (ARPG_CorePluginParams.KeySetting.ActorNormalAttack != null) {
  5706.         ARPG_Utils.registerKey("ActorNormalAttack", ARPG_CorePluginParams.KeySetting.ActorNormalAttack);
  5707.     }
  5708.     if (ARPG_CorePluginParams.KeySetting.ActorGuard != null) {
  5709.         ARPG_Utils.registerKey("ActorGuard", ARPG_CorePluginParams.KeySetting.ActorGuard);
  5710.     }
  5711.     if (ARPG_CorePluginParams.KeySetting.VisibleHitBox != null) {
  5712.         ARPG_Utils.registerKey("VisibleHitBox", ARPG_CorePluginParams.KeySetting.VisibleHitBox);
  5713.     }
  5714.     if (ARPG_CorePluginParams.KeySetting.ChangeControlActor != null) {
  5715.         ARPG_Utils.registerKey("ChangeControlActor", ARPG_CorePluginParams.KeySetting.ChangeControlActor);
  5716.     }
  5717.     PluginManager.registerCommand(ARPG_CorePluginName, "ChangeARPGMode", function(args) {
  5718.         const params = PluginParamsParser.parse(args);
  5719.         const arpgMode = !!params.ARPGMode;
  5720.         if (arpgMode) {
  5721.             $gameMap.startARPGMode();
  5722.         } else {
  5723.             $gameMap.endARPGMode();
  5724.         }
  5725.     });
  5726.     PluginManager.registerCommand(ARPG_CorePluginName, "MakeDynamicEvent", function(args) {
  5727.         const typeDefine = {
  5728.             SrcMapId: "number",
  5729.             SrcEventIdOrName: "string",
  5730.             X: "number",
  5731.             XByVariable: "number",
  5732.             Y: "number",
  5733.             YByVariable: "number",
  5734.             MadeDynamicEventId: "number"
  5735.         };
  5736.         const params = PluginParamsParser.parse(args, typeDefine);
  5737.         const x = params.XByVariable > 0 ? $gameVariables.value(params.XByVariable) : params.X;
  5738.         const y = params.YByVariable > 0 ? $gameVariables.value(params.YByVariable) : params.Y;
  5739.         const event = $gameMap.makeDynamicEvent(params.SrcMapId, params.SrcEventIdOrName, x, y);
  5740.         if (params.MadeDynamicEventId > 0) {
  5741.             $gameVariables.setValue(params.MadeDynamicEventId, event.eventId());
  5742.         }
  5743.     });
  5744.     PluginManager.registerCommand(ARPG_CorePluginName, "GetCharacterFloatPosition", function(args) {
  5745.         const params = PluginParamsParser.parse(args);
  5746.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  5747.         let pos;
  5748.         if (params.LeftUpOrCenter === "center") {
  5749.             pos = character.centerPositionPoint();
  5750.         } else {
  5751.             pos = character.positionPoint();
  5752.         }
  5753.         $gameVariables.setValue(params.StoreFloatXVariableId, pos.x);
  5754.         $gameVariables.setValue(params.StoreFloatYVariableId, pos.y);
  5755.     });
  5756.     PluginManager.registerCommand(ARPG_CorePluginName, "CalcDeg", function(args) {
  5757.         const params = PluginParamsParser.parse(args);
  5758.         const subject = this.findCharacterBySpecification(params.SubjectCharacterSpecification);
  5759.         const target = this.findCharacterBySpecification(params.TargetCharacterSpecification);
  5760.         $gameVariables.setValue(params.StoreDegreeVariableId, subject.calcDeg(target));
  5761.     });
  5762.     PluginManager.registerCommand(ARPG_CorePluginName, "CalcFar", function(args) {
  5763.         const params = PluginParamsParser.parse(args);
  5764.         const subject = this.findCharacterBySpecification(params.SubjectCharacterSpecification);
  5765.         const target = this.findCharacterBySpecification(params.TargetCharacterSpecification);
  5766.         $gameVariables.setValue(params.StoreFarVariableId, subject.calcFar(target));
  5767.     });
  5768.     PluginManager.registerCommand(ARPG_CorePluginName, "CheckInTheScreen", function(args) {
  5769.         const params = PluginParamsParser.parse(args);
  5770.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  5771.         const xMargin = params.XMargin ?? 2;
  5772.         const yMargin = params.YMargin ?? 2;
  5773.         $gameSwitches.setValue(params.StoreResultSwitchId, character.isInTheScreen(xMargin, yMargin));
  5774.     });
  5775.     PluginManager.registerCommand(ARPG_CorePluginName, "CheckMoved", function(args) {
  5776.         const params = PluginParamsParser.parse(args);
  5777.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  5778.         $gameSwitches.setValue(params.StoreResultSwitchId, character.isMoved());
  5779.     });
  5780.     PluginManager.registerCommand(ARPG_CorePluginName, "SetupEnemy", function(args) {
  5781.         const params = PluginParamsParser.parse(args);
  5782.         const event = this.event();
  5783.         if (!event)
  5784.             return;
  5785.         let collideAttackSkillId;
  5786.         if (params.CollideAttackSkillId != null && params.CollideAttackSkillId > 0) {
  5787.             collideAttackSkillId = params.CollideAttackSkillId;
  5788.         } else if (ARPG_CorePluginParams.EnemySetting.CollideAttackSkillId != null && ARPG_CorePluginParams.EnemySetting.CollideAttackSkillId > 0) {
  5789.             collideAttackSkillId = ARPG_CorePluginParams.EnemySetting.CollideAttackSkillId;
  5790.         }
  5791.         event.setupEnemy(
  5792.             params.EnemyId,
  5793.             {
  5794.                 collideAttackSkillId,
  5795.                 damageCommonEventId: params.DamageCommonEventId,
  5796.                 defeatEnemyCommonEventId: params.DefeatEnemyCommonEventId
  5797.             }
  5798.         );
  5799.         if (params.HpGauge === "normal") {
  5800.             event.battler().setupNormalHpGauge({
  5801.                 hpGaugeColor1: ARPG_CorePluginParams.EnemyHpGaugeSetting.NormalEnemyHpGaugeColor1,
  5802.                 hpGaugeColor2: ARPG_CorePluginParams.EnemyHpGaugeSetting.NormalEnemyHpGaugeColor2,
  5803.                 hpGaugePosition: ARPG_CorePluginParams.EnemyHpGaugeSetting.NormalEnemyHpGaugePosition === "down" ? "down" : "up",
  5804.                 hpGaugeYOffset: ARPG_CorePluginParams.EnemyHpGaugeSetting.NormalEnemyHpGaugeYOffset,
  5805.                 hpGaugeHeight: ARPG_CorePluginParams.EnemyHpGaugeSetting.NormalEnemyHpGaugeHeight
  5806.             });
  5807.         } else if (params.HpGauge === "boss") {
  5808.             $gameTemp.arpgGlobalTempData().bossHpGaugeTargetEnemy = event.battler();
  5809.         }
  5810.     });
  5811.     PluginManager.registerCommand(ARPG_CorePluginName, "ChangeHpGaugeVisible", function(args) {
  5812.         const params = PluginParamsParser.parse(args);
  5813.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  5814.         if (!(character && character instanceof Game_Event))
  5815.             return;
  5816.         character.battler().setHpGaugeVisible(!!params.ShowOrHide);
  5817.     });
  5818.     PluginManager.registerCommand(ARPG_CorePluginName, "SetupFieldObject", function(args) {
  5819.         const params = PluginParamsParser.parse(args);
  5820.         const event = this.event();
  5821.         if (!event)
  5822.             return;
  5823.         event.setupFieldObject({ damageCommonEventId: params.DamageCommonEventId });
  5824.     });
  5825.     PluginManager.registerCommand(ARPG_CorePluginName, "UseSkill", function(args) {
  5826.         const params = PluginParamsParser.parse(args);
  5827.         const user = this.arpgCharacter();
  5828.         let idOrName;
  5829.         if (params.SkillIdByVariable > 0) {
  5830.             idOrName = $gameVariables.value(params.SkillIdByVariable);
  5831.         } else if (params.SkillByName && params.SkillByName !== "") {
  5832.             idOrName = params.SkillByName;
  5833.         } else {
  5834.             idOrName = params.SkillId;
  5835.         }
  5836.         user.battler().useSkill("skill", idOrName);
  5837.     });
  5838.     PluginManager.registerCommand(ARPG_CorePluginName, "UseItem", function(args) {
  5839.         const params = PluginParamsParser.parse(args);
  5840.         const user = this.arpgCharacter();
  5841.         let idOrName;
  5842.         if (params.ItemIdByVariable > 0) {
  5843.             idOrName = $gameVariables.value(params.ItemIdByVariable);
  5844.         } else if (params.ItemByName && params.ItemByName !== "") {
  5845.             idOrName = params.ItemByName;
  5846.         } else {
  5847.             idOrName = params.ItemId;
  5848.         }
  5849.         user.battler().useSkill("item", idOrName);
  5850.     });
  5851.     PluginManager.registerCommand(ARPG_CorePluginName, "SkillActivation", function(args) {
  5852.         const params = PluginParamsParser.parse(args, { ChantCommonEventId: "number" });
  5853.         this.arpgCharacter().battler().skillActivation(params.ChantCommonEventId);
  5854.         this._needChantWait = true;
  5855.     });
  5856.     PluginManager.registerCommand(ARPG_CorePluginName, "SkillCancel", function() {
  5857.         this.arpgCharacter().battler().skillCancel();
  5858.     });
  5859.     PluginManager.registerCommand(ARPG_CorePluginName, "ChangeSkillCancelWhenDamageEnableOrDisable", function(args) {
  5860.         const params = PluginParamsParser.parse(args);
  5861.         this.arpgCharacter().battler().setSkillCancelWhenDamageEnable(!!params.EnableOrDisable);
  5862.     });
  5863.     PluginManager.registerCommand(ARPG_CorePluginName, "ApplySkillEffect", function(args) {
  5864.         const params = PluginParamsParser.parse(args);
  5865.         let skill;
  5866.         if (params.IsSkillSpecification) {
  5867.             skill = this.findArpgSkillBySpecification(params.SkillSpecification);
  5868.         }
  5869.         this.arpgCharacter().battler().applySkillEffect(skill);
  5870.     });
  5871.     PluginManager.registerCommand(ARPG_CorePluginName, "TestApplySkillEffect", function(args) {
  5872.         const params = PluginParamsParser.parse(args);
  5873.         let skill;
  5874.         if (params.IsSkillSpecification) {
  5875.             skill = this.findArpgSkillBySpecification(params.SkillSpecification);
  5876.         }
  5877.         const result = this.arpgCharacter().battler().testApplySkillEffect(skill);
  5878.         $gameSwitches.setValue(params.StoreResultSwitchId, result);
  5879.     });
  5880.     PluginManager.registerCommand(ARPG_CorePluginName, "MakeSkillObject", function(args) {
  5881.         const params = PluginParamsParser.parse(args);
  5882.         const user = this.arpgCharacter();
  5883.         if (!(user.isBattler() || user.isSkillObject())) {
  5884.             throw ErrorManager.makeSkillObjectNotBattlerOrSkillObject();
  5885.         }
  5886.         let event;
  5887.         let skill;
  5888.         if (params.IsSkillSpecification) {
  5889.             skill = this.findArpgSkillBySpecification(params.SkillSpecification);
  5890.         }
  5891.         if (user.isBattler()) {
  5892.             event = user.battler().makeSkillObject(params.SrcMapId, params.SrcEventIdOrName, skill);
  5893.         } else {
  5894.             event = user.skillObject().makeSkillObject(params.SrcMapId, params.SrcEventIdOrName, skill);
  5895.         }
  5896.         let x = 0;
  5897.         let y = 0;
  5898.         const userPos = user.centerPositionPoint();
  5899.         switch (params.SkillObjectPosition.Specification) {
  5900.             case "current":
  5901.                 x = userPos.x - event.width() / 2;
  5902.                 y = userPos.y - event.height() / 2;
  5903.                 break;
  5904.             case "forward":
  5905.                 const userForwardPos = import_DotMoveSystem.DotMoveUtils.nextPointWithDirection(userPos, user.direction());
  5906.                 x = userForwardPos.x - event.width() / 2;
  5907.                 y = userForwardPos.y - event.height() / 2;
  5908.                 break;
  5909.             case "character":
  5910.                 const target = this.findCharacterBySpecification(params.SkillObjectPosition.CharacterSpecification);
  5911.                 const targetPos = target.centerPositionPoint();
  5912.                 x = targetPos.x - event.width() / 2;
  5913.                 y = targetPos.y - event.height() / 2;
  5914.                 break;
  5915.             case "custom":
  5916.                 const xByVariable = params.SkillObjectPosition.CustomPosition.XByVariable;
  5917.                 const yByVariable = params.SkillObjectPosition.CustomPosition.YByVariable;
  5918.                 x = xByVariable > 0 ? $gameVariables.value(xByVariable) : params.SkillObjectPosition.CustomPosition.X;
  5919.                 y = yByVariable > 0 ? $gameVariables.value(yByVariable) : params.SkillObjectPosition.CustomPosition.Y;
  5920.                 break;
  5921.         }
  5922.         event.setPosition(x, y);
  5923.         if (params.MadeDynamicEventId > 0) {
  5924.             $gameVariables.setValue(params.MadeDynamicEventId, event.eventId());
  5925.         }
  5926.     });
  5927.     PluginManager.registerCommand(ARPG_CorePluginName, "SetAttackDegree", function(args) {
  5928.         const params = PluginParamsParser.parse(args);
  5929.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  5930.         const skillObject = character.skillObject();
  5931.         const attackDeg = params.AttackDegreeByVariable > 0 ? $gameVariables.value(params.AttackDegreeByVariable) : params.AttackDegree;
  5932.         skillObject.setAttackDeg(new Degree(attackDeg));
  5933.     });
  5934.     PluginManager.registerCommand(ARPG_CorePluginName, "SetUserPositionSynchronize", function(args) {
  5935.         const params = PluginParamsParser.parse(args);
  5936.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  5937.         const skillObject = character.skillObject();
  5938.         skillObject.setUserPositionSynchronize(!!params.Synchronize);
  5939.     });
  5940.     function findHitChecker(character, hitBoxType, customHitBoxTag) {
  5941.         let hitChecker;
  5942.         if (hitBoxType === "attack") {
  5943.             if (character.isBattler()) {
  5944.                 const battler = character.battler();
  5945.                 hitChecker = battler.attackHitChecker;
  5946.             } else if (character.isSkillObject()) {
  5947.                 const skillObject = character.skillObject();
  5948.                 hitChecker = skillObject.attackHitChecker;
  5949.             }
  5950.             if (!hitChecker) {
  5951.                 throw new Error(`Event is not ARPG_Battler or ARPG_SkillObject`);
  5952.             }
  5953.         } else if (hitBoxType === "damage") {
  5954.             if (character.isBattler()) {
  5955.                 const battler = character.battler();
  5956.                 hitChecker = battler.damageHitChecker;
  5957.             } else if (character.isFieldObject()) {
  5958.                 const fieldObject = character.fieldObject();
  5959.                 hitChecker = fieldObject.damageHitChecker;
  5960.             }
  5961.             if (!hitChecker) {
  5962.                 throw new Error(`Event is not ARPG_Battler or ARPG_FieldObject`);
  5963.             }
  5964.         } else if (hitBoxType === "custom") {
  5965.             let customHitChecker;
  5966.             if (character.isBattler()) {
  5967.                 customHitChecker = character.battler().customHitCheckers.get(customHitBoxTag);
  5968.                 if (!customHitChecker) {
  5969.                     customHitChecker = new HitChecker("custom", customHitBoxTag);
  5970.                     character.battler().customHitCheckers.set(customHitBoxTag, customHitChecker);
  5971.                     character.battler().addComponent(customHitChecker);
  5972.                 }
  5973.             } else if (character.isSkillObject()) {
  5974.                 customHitChecker = character.skillObject().customHitCheckers.get(customHitBoxTag);
  5975.                 if (!customHitChecker) {
  5976.                     customHitChecker = new HitChecker("custom", customHitBoxTag);
  5977.                     character.skillObject().customHitCheckers.set(customHitBoxTag, customHitChecker);
  5978.                     character.skillObject().addComponent(customHitChecker);
  5979.                 }
  5980.             } else if (character.isFieldObject()) {
  5981.                 customHitChecker = character.fieldObject().customHitCheckers.get(customHitBoxTag);
  5982.                 if (!customHitChecker) {
  5983.                     customHitChecker = new HitChecker("custom", customHitBoxTag);
  5984.                     character.fieldObject().customHitCheckers.set(customHitBoxTag, customHitChecker);
  5985.                     character.fieldObject().addComponent(customHitChecker);
  5986.                 }
  5987.             }
  5988.             if (!customHitChecker) {
  5989.                 throw new Error(`Event is not ARPG_Battler or ARPG_SkillObject or ARPG_FieldObject`);
  5990.             }
  5991.             hitChecker = customHitChecker;
  5992.         }
  5993.         return hitChecker;
  5994.     }
  5995.     PluginManager.registerCommand(ARPG_CorePluginName, "CheckDamageElement", function(args) {
  5996.         const params = PluginParamsParser.parse(args);
  5997.         let result = false;
  5998.         const character = this.arpgCharacter();
  5999.         if (character) {
  6000.             if (character.isBattler()) {
  6001.                 result = character.battler().checkDamageElement(params.ElementName);
  6002.             } else if (character.isFieldObject()) {
  6003.                 result = character.fieldObject().checkDamageElement(params.ElementName);
  6004.             }
  6005.         }
  6006.         $gameSwitches.setValue(params.StoreResultSwitchId, result);
  6007.     });
  6008.     PluginManager.registerCommand(ARPG_CorePluginName, "SetHitBox", function(args) {
  6009.         const params = PluginParamsParser.parse(args);
  6010.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  6011.         if (!character)
  6012.             return;
  6013.         const hitChecker = findHitChecker(character, params.HitBoxType, params.CustomHitBoxTag);
  6014.         hitChecker.clearHitBoxs();
  6015.         for (const hitBoxParam of params.HitBoxList) {
  6016.             const rect = new Rectangle(hitBoxParam.X, hitBoxParam.Y, hitBoxParam.Width, hitBoxParam.Height);
  6017.             if (params.HitBoxType === "attack") {
  6018.                 const hitBox = new HitBox("attack", character, rect, ARPG_CorePluginParams.HitBoxSetting.AttackHitBoxColor);
  6019.                 hitChecker.addHitBox(hitBox);
  6020.             } else if (params.HitBoxType === "damage") {
  6021.                 const hitBox = new HitBox("damage", character, rect, ARPG_CorePluginParams.HitBoxSetting.DamageHitBoxColor);
  6022.                 hitChecker.addHitBox(hitBox);
  6023.             } else if (params.HitBoxType === "custom") {
  6024.                 let color;
  6025.                 const info = ARPG_CorePluginParams.HitBoxSetting.CustomHitBoxColorList.find((info2) => info2.CustomHitBoxTag === params.CustomHitBoxTag);
  6026.                 if (info) {
  6027.                     color = info.Color;
  6028.                 } else {
  6029.                     color = ARPG_CorePluginParams.HitBoxSetting.CustomHitBoxDefaultColor;
  6030.                 }
  6031.                 const hitBox = new HitBox("custom", character, rect, color, params.CustomHitBoxTag);
  6032.                 hitChecker.addHitBox(hitBox);
  6033.             }
  6034.         }
  6035.     });
  6036.     PluginManager.registerCommand(ARPG_CorePluginName, "ChangeHitBoxEnableOrDisable", function(args) {
  6037.         const params = PluginParamsParser.parse(args);
  6038.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  6039.         if (!character)
  6040.             return;
  6041.         const hitChecker = findHitChecker(character, params.HitBoxType, params.CustomHitBoxTag);
  6042.         if (!!params.Enabled) {
  6043.             hitChecker.removeDisableReason("ChangeHitBoxEnableOrDisable");
  6044.         } else {
  6045.             hitChecker.addDisableReason("ChangeHitBoxEnableOrDisable");
  6046.         }
  6047.     });
  6048.     PluginManager.registerCommand(ARPG_CorePluginName, "HitCheck", function(args) {
  6049.         const params = PluginParamsParser.parse(args);
  6050.         const subjectCharacter = this.findCharacterBySpecification(params.SubjectCharacterSpecification);
  6051.         if (!subjectCharacter)
  6052.             return;
  6053.         const subjectHitChecker = findHitChecker(subjectCharacter, params.SubjectHitBoxType, params.SubjectCustomHitBoxTag);
  6054.         if (params.IsTargetSpecification) {
  6055.             const targetCharacter = this.findCharacterBySpecification(params.TargetCharacterSpecification);
  6056.             const targetHitChecker = findHitChecker(targetCharacter, params.TargetHitBoxType, params.TargetCustomHitBoxTag);
  6057.             const result = subjectHitChecker.checkHitByOtherHitChecker(targetHitChecker);
  6058.             $gameSwitches.setValue(params.StoreResultSwitchId, result);
  6059.         } else {
  6060.             const results = subjectHitChecker.checkHit(params.TargetHitBoxType, params.TargetCustomHitBoxTag);
  6061.             $gameSwitches.setValue(params.StoreResultSwitchId, results.size > 0);
  6062.         }
  6063.     });
  6064.     PluginManager.registerCommand(ARPG_CorePluginName, "GetBattlerStatus", function(args) {
  6065.         const params = PluginParamsParser.parse(args);
  6066.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  6067.         if (!character.isBattler())
  6068.             throw new Error(`battler is not found. (EventId=${params.CharacterSpecification})`);
  6069.         const battler = character.battler();
  6070.         const value = battler[params.StatusType];
  6071.         if (value == null) {
  6072.             throw new Error(`StatusType is invalid. (StatusType=${params.StatusType})`);
  6073.         }
  6074.         $gameVariables.setValue(params.DestVariableId, value);
  6075.     });
  6076.     PluginManager.registerCommand(ARPG_CorePluginName, "SetBattlerStatus", function(args) {
  6077.         const params = PluginParamsParser.parse(args);
  6078.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  6079.         if (!character.isBattler())
  6080.             throw new Error(`battler is not found. (EventId=${params.CharacterSpecification})`);
  6081.         const battler = character.battler();
  6082.         const value = params.ValueByVariable > 0 ? $gameVariables.value(params.ValueByVariable) : params.Value;
  6083.         switch (params.StatusType) {
  6084.             case "hp":
  6085.                 battler.hp = value;
  6086.                 break;
  6087.             case "mp":
  6088.                 battler.mp = value;
  6089.                 break;
  6090.             case "tp":
  6091.                 battler.tp = value;
  6092.                 break;
  6093.             default:
  6094.                 throw new Error(`StatusType is invalid. (StatusType=${params.StatusType})`);
  6095.         }
  6096.     });
  6097.     PluginManager.registerCommand(ARPG_CorePluginName, "GetBattlerARPGParameter", function(args) {
  6098.         const params = PluginParamsParser.parse(args);
  6099.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  6100.         if (!character.isBattler())
  6101.             throw new Error(`battler is not found. (EventId=${params.CharacterSpecification})`);
  6102.         const battler = character.battler();
  6103.         let value;
  6104.         switch (params.ARPGParameterType) {
  6105.             case "skillCancelDamageRate":
  6106.                 value = battler.arpgParameters().skillCancelDamageRate;
  6107.                 break;
  6108.             case "justGuardFrame":
  6109.                 const justGuardFrame = battler.arpgParameters().justGuardFrame;
  6110.                 value = justGuardFrame == null ? 0 : justGuardFrame;
  6111.                 break;
  6112.             default:
  6113.                 throw new Error(`ARPGParameterType is invalid. (ARPGParameterType=${params.ARPGParameterType})`);
  6114.         }
  6115.         $gameVariables.setValue(params.DestVariableId, value);
  6116.     });
  6117.     PluginManager.registerCommand(ARPG_CorePluginName, "SetBattlerARPGParameter", function(args) {
  6118.         const params = PluginParamsParser.parse(args);
  6119.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  6120.         if (!character.isBattler())
  6121.             throw new Error(`battler is not found. (EventId=${params.CharacterSpecification})`);
  6122.         const battler = character.battler();
  6123.         const value = params.ValueByVariable > 0 ? $gameVariables.value(params.ValueByVariable) : params.Value;
  6124.         switch (params.ARPGParameterType) {
  6125.             case "skillCancelDamageRate":
  6126.                 battler.arpgParameters().skillCancelDamageRate = value;
  6127.                 break;
  6128.             case "justGuardFrame":
  6129.                 battler.arpgParameters().justGuardFrame = value;
  6130.                 break;
  6131.             default:
  6132.                 throw new Error(`ARPGParameterType is invalid. (ARPGParameterType=${params.ARPGParameterType})`);
  6133.         }
  6134.     });
  6135.     PluginManager.registerCommand(ARPG_CorePluginName, "GetBattlerARPGFlag", function(args) {
  6136.         const params = PluginParamsParser.parse(args);
  6137.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  6138.         if (!character.isBattler())
  6139.             throw new Error(`battler is not found. (EventId=${params.CharacterSpecification})`);
  6140.         const battler = character.battler();
  6141.         let value;
  6142.         switch (params.ARPGFlagType) {
  6143.             case "noDamageFlag":
  6144.                 value = battler.arpgParameters().noDamageFlag;
  6145.                 break;
  6146.             case "noAttackFlag":
  6147.                 value = battler.arpgParameters().noAttackFlag;
  6148.                 break;
  6149.             default:
  6150.                 throw new Error(`ARPGFlagType is invalid. (ARPGFlagType=${params.ARPGFlagType})`);
  6151.         }
  6152.         $gameSwitches.setValue(params.DestSwitchId, value);
  6153.     });
  6154.     PluginManager.registerCommand(ARPG_CorePluginName, "SetBattlerARPGFlag", function(args) {
  6155.         const params = PluginParamsParser.parse(args);
  6156.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  6157.         if (!character.isBattler())
  6158.             throw new Error(`battler is not found. (EventId=${params.CharacterSpecification})`);
  6159.         const battler = character.battler();
  6160.         const value = params.ValueBySwitch > 0 ? $gameSwitches.value(params.ValueBySwitch) : params.Value;
  6161.         switch (params.ARPGFlagType) {
  6162.             case "noDamageFlag":
  6163.                 battler.arpgParameters().noDamageFlag = value;
  6164.                 break;
  6165.             case "noAttackFlag":
  6166.                 battler.arpgParameters().noAttackFlag = value;
  6167.                 break;
  6168.             default:
  6169.                 throw new Error(`ARPGFlagType is invalid. (ARPGFlagType=${params.ARPGFlagType})`);
  6170.         }
  6171.     });
  6172.     PluginManager.registerCommand(ARPG_CorePluginName, "CharacterBlowAway", function(args) {
  6173.         const params = PluginParamsParser.parse(args);
  6174.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  6175.         const deg = new Degree(params.DegreeByVariable > 0 ? $gameVariables.value(params.DegreeByVariable) : params.Degree);
  6176.         const initialVelocity = params.InitialVelocityByVariable > 0 ? $gameVariables.value(params.InitialVelocityByVariable) : params.InitialVelocity;
  6177.         const duration = params.DurationByVariable > 0 ? $gameVariables.value(params.DurationByVariable) : params.Duration;
  6178.         character.startBlowAway(deg, initialVelocity, duration);
  6179.         if (!!params.Wait) {
  6180.             this._blowAwayWaitCharacter = character;
  6181.         }
  6182.     });
  6183.     PluginManager.registerCommand(ARPG_CorePluginName, "CharacterActionWait", function(args) {
  6184.         const params = PluginParamsParser.parse(args);
  6185.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  6186.         const duration = params.DurationByVariable > 0 ? $gameVariables.value(params.DurationByVariable) : params.Duration;
  6187.         character.startActionWait(duration);
  6188.         this._actionWaitCharacter = character;
  6189.     });
  6190.     PluginManager.registerCommand(ARPG_CorePluginName, "TargetSelect", function(args) {
  6191.         const typeDefine = {
  6192.             SelectResultSwitchId: "number",
  6193.             SelectedTargetCharacterKindVariableId: "number",
  6194.             SelectedTargetEventIdVariableId: "number",
  6195.             Wait: "boolean",
  6196.             Cancelable: "boolean"
  6197.         };
  6198.         const params = PluginParamsParser.parse(args, typeDefine);
  6199.         if ($gameTemp.arpgGlobalTempData().selectResultSwitchId > 0) {
  6200.             $gameSwitches.setValue(params.SelectResultSwitchId, false);
  6201.         }
  6202.         $gameTemp.arpgGlobalTempData().selectResultSwitchId = params.SelectResultSwitchId;
  6203.         $gameTemp.arpgGlobalTempData().selectedTargetCharacterKindVariableId = params.SelectedTargetCharacterKindVariableId;
  6204.         $gameTemp.arpgGlobalTempData().selectedTargetEventIdVariableId = params.SelectedTargetEventIdVariableId;
  6205.         $gameMap.startTargetSelect({ wait: params.Wait, cancelable: params.Cancelable });
  6206.         this._needTargetSelectWait = true;
  6207.     });
  6208.     PluginManager.registerCommand(ARPG_CorePluginName, "SearchNearBattler", function(args) {
  6209.         const params = PluginParamsParser.parse(args);
  6210.         const character = this.findCharacterBySpecification(params.SubjectCharacterSpecification);
  6211.         let found = false;
  6212.         if (character.isBattler()) {
  6213.             const { character: foundCharacter } = ARPG_Utils.searchNearBattler(character, params.Target);
  6214.             if (foundCharacter) {
  6215.                 found = true;
  6216.                 $gameVariables.setValue(params.StoreCharacterKindVariableId, ARPG_Utils.characterKindValue(foundCharacter));
  6217.                 if (foundCharacter instanceof Game_Event) {
  6218.                     $gameVariables.setValue(params.StoreEventIdVariableId, foundCharacter.eventId());
  6219.                 }
  6220.             }
  6221.         }
  6222.         $gameSwitches.setValue(params.StoreResultSwitchId, found);
  6223.     });
  6224.     PluginManager.registerCommand(ARPG_CorePluginName, "SetPlayerGuardMode", function(args) {
  6225.         const params = PluginParamsParser.parse(args);
  6226.         if ($gamePlayer.isBattler()) {
  6227.             if (params.GuardMode) {
  6228.                 $gamePlayer.battler().startGuard("SetPlayerGuardMode");
  6229.             } else {
  6230.                 $gamePlayer.battler().endGuard("SetPlayerGuardMode");
  6231.             }
  6232.         }
  6233.     });
  6234.     PluginManager.registerCommand(ARPG_CorePluginName, "ChangeControlActor", function(args) {
  6235.         $gameTemp.requestChangeNextActor();
  6236.     });
  6237.     PluginManager.registerCommand(ARPG_CorePluginName, "ShowMessagePopup", function(args) {
  6238.         const params = PluginParamsParser.parse(args);
  6239.         const w = params.WindowWidth == null ? 640 : params.WindowWidth;
  6240.         const h = 64;
  6241.         const x = Graphics.boxWidth / 2 - w / 2;
  6242.         const y = 0;
  6243.         const rect = new Rectangle(x, y, w, h);
  6244.         $gameMap.showCommonMessageWindow(params.Text, rect, { time: params.Time });
  6245.     });
  6246.     PluginManager.registerCommand(ARPG_CorePluginName, "TransparentObjectCast", function(args) {
  6247.         const params = PluginParamsParser.parse(args);
  6248.         const width = params.Width;
  6249.         const height = params.Height;
  6250.         let x = 0;
  6251.         let y = 0;
  6252.         switch (params.TransparentObjectPosition.Specification) {
  6253.             case "character":
  6254.                 const target = this.findCharacterBySpecification(params.TransparentObjectPosition.CharacterSpecification);
  6255.                 const targetPos = target.centerPositionPoint();
  6256.                 x = targetPos.x - width / 2;
  6257.                 y = targetPos.y - height / 2;
  6258.                 break;
  6259.             case "custom":
  6260.                 const xByVariable = params.TransparentObjectPosition.CustomPosition.XByVariable;
  6261.                 const yByVariable = params.TransparentObjectPosition.CustomPosition.YByVariable;
  6262.                 x = xByVariable > 0 ? $gameVariables.value(xByVariable) : params.TransparentObjectPosition.CustomPosition.X;
  6263.                 y = yByVariable > 0 ? $gameVariables.value(yByVariable) : params.TransparentObjectPosition.CustomPosition.Y;
  6264.                 break;
  6265.         }
  6266.         const deg = new Degree(params.DegreeByVariable > 0 ? $gameVariables.value(params.DegreeByVariable) : params.Degree);
  6267.         const far = params.FarByVariable > 0 ? $gameVariables.value(params.FarByVariable) : params.Far;
  6268.         const collidedPos = $gameMap.transparentObjectCastTo(new import_DotMoveSystem.DotMovePoint(x, y), deg, far, { width, height });
  6269.         $gameSwitches.setValue(params.CollisionResultSwitchId, !!collidedPos);
  6270.         if (collidedPos) {
  6271.             if (params.CollidedXVariableId > 0)
  6272.                 $gameVariables.setValue(params.CollidedXVariableId, collidedPos.x);
  6273.             if (params.CollidedYVariableId > 0)
  6274.                 $gameVariables.setValue(params.CollidedYVariableId, collidedPos.y);
  6275.         }
  6276.     });
  6277.     PluginManager.registerCommand(ARPG_CorePluginName, "SetCheckMapValid", function(args) {
  6278.         const params = PluginParamsParser.parse(args);
  6279.         const character = this.findCharacterBySpecification(params.CharacterSpecification);
  6280.         if (!character)
  6281.             return;
  6282.         if (params.EnableOrDisable == true) {
  6283.             character.setNoCheckMapValid(false);
  6284.         } else {
  6285.             character.setNoCheckMapValid(true);
  6286.         }
  6287.     });
  6288.  
  6289.     // ts/CommonLibrary/mixin.ts
  6290.     function mixin(dest, src) {
  6291.         for (const name of Object.getOwnPropertyNames(src.prototype)) {
  6292.             if (name === "constructor")
  6293.                 continue;
  6294.             const value = Object.getOwnPropertyDescriptor(src.prototype, name) || /* @__PURE__ */ Object.create(null);
  6295.             Object.defineProperty(dest.prototype, name, value);
  6296.         }
  6297.     }
  6298.  
  6299.     // ts/ARPG_Core/ARPG_DynamicEvent/Game_Event.ts
  6300.     var _Game_Event_Mixin = class extends Game_Event {
  6301.         initMembers() {
  6302.             _Game_Event_Mixin._initMembers.call(this);
  6303.             this._isDynamicEvent = false;
  6304.             this._srcMapId = 0;
  6305.             this._srcEventId = 0;
  6306.             this._copied = false;
  6307.         }
  6308.         // @ts-ignore // TODO: 暫定
  6309.         initialize(mapId, eventId, opt = {}) {
  6310.             Game_Character.prototype.initialize.call(this);
  6311.             this._mapId = mapId;
  6312.             this._eventId = eventId;
  6313.             if (opt.isDynamicEvent) {
  6314.                 if (opt.srcMapId == null)
  6315.                     throw new Error(`opt.srcMapId is not defined.`);
  6316.                 if (opt.srcEventId == null)
  6317.                     throw new Error(`opt.srcEventId is not defined.`);
  6318.                 this._isDynamicEvent = true;
  6319.                 this.setupCopyEvent(opt.srcMapId, opt.srcEventId);
  6320.             }
  6321.             this.locate(this.event().x, this.event().y);
  6322.             this.refresh();
  6323.             this.initCopyEventProcess();
  6324.             if (this.event().meta.PushableEvent) {
  6325.                 this._pushableEvent = true;
  6326.             } else {
  6327.                 const values = this.getAnnotationValues(0);
  6328.                 if (values.PushableEvent) {
  6329.                     this._pushableEvent = true;
  6330.                 }
  6331.             }
  6332.         }
  6333.         isDynamicEvent() {
  6334.             return this._isDynamicEvent;
  6335.         }
  6336.         isErased() {
  6337.             return this._erased;
  6338.         }
  6339.         setupCopyEvent(srcMapId, srcEventId) {
  6340.             if (!this._copied) {
  6341.                 globalActiveEvent = this;
  6342.                 this._copied = true;
  6343.                 this._srcMapId = srcMapId;
  6344.                 this._srcEventId = srcEventId;
  6345.                 const newPageIndex = this._erased ? -1 : this.findProperPageIndex();
  6346.                 this._pageIndex = newPageIndex;
  6347.                 this.setupPage();
  6348.                 globalActiveEvent = void 0;
  6349.             }
  6350.         }
  6351.         event() {
  6352.             if (this._copied) {
  6353.                 const mapData = $gameTemp.mapDataCache(this._srcMapId);
  6354.                 return mapData.events[this._srcEventId];
  6355.             } else {
  6356.                 return _Game_Event_Mixin._event.call(this);
  6357.             }
  6358.         }
  6359.         initCopyEventProcess() {
  6360.             const tag = this.event().meta[ARPG_CorePluginParams.CopyEventSetting.CopyEventTag];
  6361.             if (!tag)
  6362.                 return;
  6363.             let md;
  6364.             let mapIds;
  6365.             let srcEventIdOrName;
  6366.             if (md = tag.match(/\s*(.+)\,(.+)/)) {
  6367.                 mapIds = [parseInt(md[1])];
  6368.                 srcEventIdOrName = md[2];
  6369.             } else if (md = tag.match(/\s*(.+)/)) {
  6370.                 mapIds = ARPG_CorePluginParams.CopyEventSetting.DynamicEventSrcMapIds;
  6371.                 srcEventIdOrName = md[1];
  6372.             } else {
  6373.                 return;
  6374.             }
  6375.             for (const mapId of mapIds) {
  6376.                 const mapData = $gameTemp.mapDataCache(mapId);
  6377.                 for (const eventData of mapData.events) {
  6378.                     if (!eventData)
  6379.                         continue;
  6380.                     let eventMatched = false;
  6381.                     if (srcEventIdOrName.match(/^\d+$/)) {
  6382.                         if (eventData.id === parseInt(srcEventIdOrName))
  6383.                             eventMatched = true;
  6384.                     } else {
  6385.                         if (eventData.name === srcEventIdOrName)
  6386.                             eventMatched = true;
  6387.                     }
  6388.                     if (eventMatched) {
  6389.                         this.setupCopyEvent(mapId, eventData.id);
  6390.                         return;
  6391.                     }
  6392.                 }
  6393.             }
  6394.         }
  6395.     };
  6396.     var Game_Event_Mixin = _Game_Event_Mixin;
  6397.     Game_Event_Mixin._initialize = Game_Event.prototype.initialize;
  6398.     Game_Event_Mixin._initMembers = Game_Event.prototype.initMembers;
  6399.     Game_Event_Mixin._event = Game_Event.prototype.event;
  6400.     Game_Event_Mixin._refresh = Game_Event.prototype.refresh;
  6401.     mixin(Game_Event, Game_Event_Mixin);
  6402.  
  6403.     // ts/ARPG_Core/ARPG_DynamicEvent/Game_Map.ts
  6404.     var _Game_Map_Mixin = class extends Game_Map {
  6405.         initialize() {
  6406.             _Game_Map_Mixin._initialize.call(this);
  6407.             this._makeEventId = 0;
  6408.         }
  6409.         setup(mapId) {
  6410.             _Game_Map_Mixin._setup.call(this, mapId);
  6411.             this._makeEventId = 0;
  6412.         }
  6413.         update(sceneActive) {
  6414.             _Game_Map_Mixin._update.call(this, sceneActive);
  6415.             for (const event of this.events()) {
  6416.                 if (event.isDynamicEvent() && event.isErased()) {
  6417.                     this.eraseDynamicEvent(event.eventId());
  6418.                 }
  6419.             }
  6420.         }
  6421.         makeDynamicEvent(srcMapId, srcEventIdOrName, x = 0, y = 0) {
  6422.             let srcEventId;
  6423.             if (typeof srcEventIdOrName === "number") {
  6424.                 srcEventId = srcEventIdOrName;
  6425.             } else if (srcEventIdOrName.match(/^\d+$/)) {
  6426.                 srcEventId = parseInt(srcEventIdOrName);
  6427.             } else {
  6428.                 srcEventId = this.nameToId(srcMapId, srcEventIdOrName);
  6429.             }
  6430.             if (this._makeEventId === 0) {
  6431.                 this._makeEventId = this.maxEventId();
  6432.             }
  6433.             this._makeEventId++;
  6434.             const opt = { isDynamicEvent: true, srcMapId, srcEventId };
  6435.             const event = new Game_Event($gameMap.mapId(), this._makeEventId, opt);
  6436.             this._events[event.eventId()] = event;
  6437.             event.setPosition(x, y);
  6438.             return event;
  6439.         }
  6440.         eraseEvent(eventId) {
  6441.             _Game_Map_Mixin._eraseEvent.call(this, eventId);
  6442.             const event = $gameMap.event(eventId);
  6443.             if (event.isDynamicEvent()) {
  6444.                 this.eraseDynamicEvent(eventId);
  6445.             }
  6446.         }
  6447.         eraseDynamicEvent(eventId) {
  6448.             this._events[eventId] = void 0;
  6449.             delete this._events[eventId];
  6450.             $gameSelfSwitches.clearSelfSwitches(this._mapId, eventId);
  6451.             $gameVariables.clearSelfVariables(this._mapId, eventId);
  6452.             $gameSwitches.clearExSelfSwitches(this._mapId, eventId);
  6453.         }
  6454.         maxEventId() {
  6455.             let maxEventId = 0;
  6456.             for (const event of $gameMap.events()) {
  6457.                 if (event.eventId() > maxEventId) {
  6458.                     maxEventId = event.eventId();
  6459.                 }
  6460.             }
  6461.             return maxEventId;
  6462.         }
  6463.         nameToId(srcMapId, srcEventName) {
  6464.             const mapData = $gameTemp.mapDataCache(srcMapId);
  6465.             for (const eventData of mapData.events) {
  6466.                 if (!eventData)
  6467.                     continue;
  6468.                 if (eventData.name === srcEventName) {
  6469.                     return eventData.id;
  6470.                 }
  6471.             }
  6472.             throw new Error(`Event name(${srcEventName}) is not found.`);
  6473.         }
  6474.     };
  6475.     var Game_Map_Mixin = _Game_Map_Mixin;
  6476.     Game_Map_Mixin._initialize = Game_Map.prototype.initialize;
  6477.     Game_Map_Mixin._setup = Game_Map.prototype.setup;
  6478.     Game_Map_Mixin._update = Game_Map.prototype.update;
  6479.     Game_Map_Mixin._eraseEvent = Game_Map.prototype.eraseEvent;
  6480.     mixin(Game_Map, Game_Map_Mixin);
  6481.  
  6482.     // ts/ARPG_Core/ARPG_DynamicEvent/Game_Temp.ts
  6483.     var _Game_Temp_Mixin = class extends Game_Temp {
  6484.         initialize() {
  6485.             _Game_Temp_Mixin._initialize.call(this);
  6486.             this._mapDataCaches = /* @__PURE__ */ new Map();
  6487.         }
  6488.         // mapIdが0の場合は初回に設定されたマップデータキャッシュを返す。
  6489.         mapDataCache(mapId) {
  6490.             if (mapId === 0) {
  6491.                 if (this._firstMapDataCacheMapId == null) {
  6492.                     throw new Error(`_firstMapDataCacheMapId is undefined.`);
  6493.                 }
  6494.                 return this._mapDataCaches.get(this._firstMapDataCacheMapId);
  6495.             }
  6496.             return this._mapDataCaches.get(mapId);
  6497.         }
  6498.         setMapDataCache(mapId, mapData) {
  6499.             if (this._firstMapDataCacheMapId == null) {
  6500.                 this._firstMapDataCacheMapId = mapId;
  6501.             }
  6502.             this._mapDataCaches.set(mapId, mapData);
  6503.         }
  6504.     };
  6505.     var Game_Temp_Mixin = _Game_Temp_Mixin;
  6506.     Game_Temp_Mixin._initialize = Game_Temp.prototype.initialize;
  6507.     mixin(Game_Temp, Game_Temp_Mixin);
  6508.  
  6509.     // ts/CommonLibrary/HttpResponse.ts
  6510.     var HttpResponse = class {
  6511.         constructor(result, xhr) {
  6512.             this._result = result;
  6513.             this._xhr = xhr;
  6514.         }
  6515.         result() {
  6516.             return this._result;
  6517.         }
  6518.         status() {
  6519.             return this._xhr.status;
  6520.         }
  6521.         response() {
  6522.             return this._xhr.response;
  6523.         }
  6524.     };
  6525.  
  6526.     // ts/CommonLibrary/HttpRequest.ts
  6527.     var HttpRequest = class {
  6528.         static get(path, opt = {}) {
  6529.             const req = new HttpRequest(path, "GET", opt);
  6530.             return req.send();
  6531.         }
  6532.         static post(path, params, opt = {}) {
  6533.             const req = new HttpRequest(path, "POST", opt);
  6534.             return req.send(params);
  6535.         }
  6536.         constructor(path, method, opt = {}) {
  6537.             this._path = path;
  6538.             this._method = method;
  6539.             this._mimeType = opt.mimeType == null ? void 0 : opt.mimeType;
  6540.         }
  6541.         send(params = null) {
  6542.             const xhr = new XMLHttpRequest();
  6543.             xhr.open(this._method, this._path);
  6544.             if (this._mimeType)
  6545.                 xhr.overrideMimeType(this._mimeType);
  6546.             let json;
  6547.             if (params)
  6548.                 json = JSON.stringify(params);
  6549.             const promise = new Promise((resolve, reject) => {
  6550.                 xhr.addEventListener("load", (e) => {
  6551.                     resolve(new HttpResponse("load", xhr));
  6552.                 });
  6553.                 xhr.addEventListener("error", (e) => {
  6554.                     reject(new HttpResponse("error", xhr));
  6555.                 });
  6556.             });
  6557.             xhr.send(json);
  6558.             return promise;
  6559.         }
  6560.     };
  6561.  
  6562.     // ts/CommonLibrary/MapLoader.ts
  6563.     var MapLoader = class {
  6564.         constructor(mapId) {
  6565.             this._mapId = mapId;
  6566.             this.loadMap();
  6567.         }
  6568.         mapId() {
  6569.             return this._mapId;
  6570.         }
  6571.         isLoaded() {
  6572.             return !!this._mapData;
  6573.         }
  6574.         mapData() {
  6575.             return this._mapData;
  6576.         }
  6577.         loadMap() {
  6578.             const fileName = "Map%1.json".format(this._mapId.padZero(3));
  6579.             this.loadData(fileName);
  6580.         }
  6581.         async loadData(fileName) {
  6582.             const res = await HttpRequest.get(`data/${fileName}`, { mimeType: "application/json" });
  6583.             if (res.result() === "error") {
  6584.                 throw new Error(`Unknow file: ${fileName}`);
  6585.             } else if (res.status() === 200) {
  6586.                 this._mapData = JSON.parse(res.response());
  6587.             } else {
  6588.                 throw new Error(`Load failed: ${fileName}`);
  6589.             }
  6590.         }
  6591.     };
  6592.  
  6593.     // ts/ARPG_Core/ARPG_DynamicEvent/Scene_Map.ts
  6594.     var _Scene_Map_Mixin = class extends Scene_Map {
  6595.         initialize() {
  6596.             _Scene_Map_Mixin._initialize.call(this);
  6597.             this._mapLoaders = [];
  6598.         }
  6599.         create() {
  6600.             _Scene_Map_Mixin._create.call(this);
  6601.             this.preMapLoad();
  6602.         }
  6603.         isReady() {
  6604.             for (const mapLoader of this._mapLoaders) {
  6605.                 if (!mapLoader.isLoaded())
  6606.                     return false;
  6607.             }
  6608.             return _Scene_Map_Mixin._isReady.call(this);
  6609.         }
  6610.         onMapLoaded() {
  6611.             for (const mapLoader of this._mapLoaders) {
  6612.                 const mapData = mapLoader.mapData();
  6613.                 $gameTemp.setMapDataCache(mapLoader.mapId(), mapData);
  6614.                 DataManager.extractMetadata(mapData);
  6615.                 DataManager.extractArrayMetadata(mapData.events);
  6616.             }
  6617.             _Scene_Map_Mixin._onMapLoaded.call(this);
  6618.         }
  6619.         preMapLoad() {
  6620.             for (const mapId of ARPG_CorePluginParams.CopyEventSetting.DynamicEventSrcMapIds) {
  6621.                 const mapData = $gameTemp.mapDataCache(mapId);
  6622.                 if (!mapData) {
  6623.                     const mapLoader = new MapLoader(mapId);
  6624.                     this._mapLoaders.push(mapLoader);
  6625.                 }
  6626.             }
  6627.         }
  6628.     };
  6629.     var Scene_Map_Mixin = _Scene_Map_Mixin;
  6630.     Scene_Map_Mixin._initialize = Scene_Map.prototype.initialize;
  6631.     Scene_Map_Mixin._create = Scene_Map.prototype.create;
  6632.     Scene_Map_Mixin._isReady = Scene_Map.prototype.isReady;
  6633.     Scene_Map_Mixin._onMapLoaded = Scene_Map.prototype.onMapLoaded;
  6634.     mixin(Scene_Map, Scene_Map_Mixin);
  6635.  
  6636.     // ts/ARPG_Core/ARPG_DynamicEvent/Spriteset_Map.ts
  6637.     var _Spriteset_Map_Mixin = class extends Spriteset_Map {
  6638.         update() {
  6639.             _Spriteset_Map_Mixin._update.call(this);
  6640.             this.updateCreateCharacterSprites();
  6641.         }
  6642.         updateCreateCharacterSprites() {
  6643.             const mapEvents = /* @__PURE__ */ new Set([...$gameMap.events()]);
  6644.             const hasSpriteEvents = /* @__PURE__ */ new Set();
  6645.             for (const sprite of this._characterSprites) {
  6646.                 const character = sprite.character();
  6647.                 if (character instanceof Game_Event) {
  6648.                     hasSpriteEvents.add(character);
  6649.                 }
  6650.             }
  6651.             for (const event of mapEvents) {
  6652.                 if (!hasSpriteEvents.has(event))
  6653.                     this.createCharacterSprite(event);
  6654.             }
  6655.             for (const event of hasSpriteEvents) {
  6656.                 if (!mapEvents.has(event))
  6657.                     this.deleteCharacterSprite(event);
  6658.             }
  6659.         }
  6660.         createCharacterSprite(character) {
  6661.             const sprite = new Sprite_Character(character);
  6662.             this._characterSprites.push(sprite);
  6663.             this._tilemap.addChild(sprite);
  6664.         }
  6665.         deleteCharacterSprite(character) {
  6666.             const sprite = this.findTargetSprite(character);
  6667.             if (!sprite)
  6668.                 return;
  6669.             if (character.isAnimationPlaying())
  6670.                 return;
  6671.             this._characterSprites = this._characterSprites.filter((characterSprite) => characterSprite !== sprite);
  6672.             this._tilemap.removeChild(sprite);
  6673.         }
  6674.     };
  6675.     var Spriteset_Map_Mixin = _Spriteset_Map_Mixin;
  6676.     Spriteset_Map_Mixin._update = Spriteset_Map.prototype.update;
  6677.     mixin(Spriteset_Map, Spriteset_Map_Mixin);
  6678.  
  6679.     // ts/ARPG_Core/ARPG_DynamicEvent/Sprite_Character.ts
  6680.     var Sprite_Character_Mixin = class extends Sprite_Character {
  6681.         character() {
  6682.             return this._character;
  6683.         }
  6684.     };
  6685.     mixin(Sprite_Character, Sprite_Character_Mixin);
  6686.  
  6687.     // ts/ARPG_Core/ARPG_DynamicEvent/Game_SelfSwitches.ts
  6688.     var Game_SelfSwitches_Mixin = class extends Game_SelfSwitches {
  6689.         clearSelfSwitches(mapId, eventId, switchName) {
  6690.             for (const key in this._data) {
  6691.                 const keyParams = key.split(",");
  6692.                 const keyMapId = parseInt(keyParams[0]);
  6693.                 const keyEventId = parseInt(keyParams[1]);
  6694.                 const keySwitchName = keyParams[2];
  6695.                 if (keyMapId === mapId && (eventId == null || keyEventId === eventId) && (switchName == null || keySwitchName === switchName)) {
  6696.                     delete this._data[key];
  6697.                 }
  6698.             }
  6699.         }
  6700.     };
  6701.     mixin(Game_SelfSwitches, Game_SelfSwitches_Mixin);
  6702.  
  6703.     // ts/ARPG_Core/ARPG_DamagePopup/Sprite_FieldDamage.ts
  6704.     var Sprite_FieldDamage = class extends Sprite_Damage {
  6705.         initialize() {
  6706.             super.initialize();
  6707.             if (ARPG_CorePluginParams.UseImageDamage) {
  6708.                 this._damageBitmap = ImageManager.loadSystem("Damage");
  6709.             }
  6710.         }
  6711.         digitWidth() {
  6712.             return this._damageBitmap ? this._damageBitmap.width / 10 : 0;
  6713.         }
  6714.         digitHeight() {
  6715.             return this._damageBitmap ? this._damageBitmap.height / 5 : 0;
  6716.         }
  6717.         setActionResult(actionResult) {
  6718.             this._actionResult = actionResult;
  6719.         }
  6720.         setup(target) {
  6721.             const result = this._actionResult;
  6722.             if (!result)
  6723.                 throw new Error(`actionResult is undefined.`);
  6724.             this._actionResult = void 0;
  6725.             if (result.missed || result.evaded) {
  6726.                 this._colorType = 0;
  6727.                 this.createMiss();
  6728.             } else if (result.hpAffected) {
  6729.                 this._colorType = result.hpDamage >= 0 ? 0 : 1;
  6730.                 this.createDigits(result.hpDamage);
  6731.             } else if (target.isAlive() && result.mpDamage !== 0) {
  6732.                 this._colorType = result.mpDamage >= 0 ? 2 : 3;
  6733.                 this.createDigits(result.mpDamage);
  6734.             }
  6735.             if (result.critical) {
  6736.                 this.setupCriticalEffect();
  6737.             }
  6738.         }
  6739.         createMiss() {
  6740.             if (ARPG_CorePluginParams.UseImageDamage) {
  6741.                 const w = this.digitWidth();
  6742.                 const h = this.digitHeight();
  6743.                 const sprite = this.createChildImageSprite();
  6744.                 sprite.setFrame(0, 4 * h, 4 * w, h);
  6745.                 sprite.dy = 0;
  6746.             } else {
  6747.                 super.createMiss();
  6748.             }
  6749.         }
  6750.         createDigits(value) {
  6751.             if (ARPG_CorePluginParams.UseImageDamage) {
  6752.                 const baseRow = 0;
  6753.                 const string = Math.abs(value).toString();
  6754.                 const row = baseRow + (value < 0 ? 1 : 0);
  6755.                 const w = this.digitWidth();
  6756.                 const h = this.digitHeight();
  6757.                 for (let i = 0; i < string.length; i++) {
  6758.                     const sprite = this.createChildImageSprite();
  6759.                     const n = Number(string[i]);
  6760.                     sprite.setFrame(n * w, row * h, w, h);
  6761.                     sprite.x = (i - (string.length - 1) / 2) * w;
  6762.                     sprite.dy = -i;
  6763.                 }
  6764.             } else {
  6765.                 super.createDigits(value);
  6766.             }
  6767.         }
  6768.         createChildImageSprite() {
  6769.             const sprite = new Sprite();
  6770.             sprite.bitmap = this._damageBitmap;
  6771.             sprite.anchor.x = 0.5;
  6772.             sprite.anchor.y = 1;
  6773.             sprite.y = -40;
  6774.             sprite.ry = sprite.y;
  6775.             this.addChild(sprite);
  6776.             return sprite;
  6777.         }
  6778.         destroy(options) {
  6779.             if (ARPG_CorePluginParams.UseImageDamage) {
  6780.                 Sprite.prototype.destroy.call(this, options);
  6781.             } else {
  6782.                 super.destroy(options);
  6783.             }
  6784.         }
  6785.     };
  6786.     Sprite_FieldDamage._initialize = Sprite_Damage.prototype.initialize;
  6787.     Sprite_FieldDamage._createMiss = Sprite_Damage.prototype.createMiss;
  6788.     Sprite_FieldDamage._createDigits = Sprite_Damage.prototype.createDigits;
  6789.     Sprite_FieldDamage._destroy = Sprite_Damage.prototype.destroy;
  6790.  
  6791.     // ts/ARPG_Core/ARPG_DamagePopup/Sprite_Character.ts
  6792.     var _Sprite_Character_Mixin = class extends Sprite_Character {
  6793.         initMembers() {
  6794.             _Sprite_Character_Mixin._initMembers.call(this);
  6795.             this._damages = [];
  6796.         }
  6797.         update() {
  6798.             _Sprite_Character_Mixin._update.call(this);
  6799.             const character = this._character;
  6800.             if (character.isBattler()) {
  6801.                 this.setBattler(character.battler().battler());
  6802.             } else {
  6803.                 this.setBattler(void 0);
  6804.             }
  6805.             this.updateDamagePopup();
  6806.         }
  6807.         setBattler(battler) {
  6808.             this._battler = battler;
  6809.         }
  6810.         updateDamagePopup() {
  6811.             if (!this._battler)
  6812.                 return;
  6813.             this.setupDamagePopup();
  6814.             if (this._damages.length > 0) {
  6815.                 for (const damage of this._damages) {
  6816.                     damage.update();
  6817.                 }
  6818.                 if (!this._damages[0].isPlaying()) {
  6819.                     this.destroyDamageSprite(this._damages[0]);
  6820.                 }
  6821.             }
  6822.         }
  6823.         setupDamagePopup() {
  6824.             const actionResult = $gameTemp.checkRequestedFieldDamagePopup(this._character);
  6825.             if (actionResult) {
  6826.                 this.createDamageSprite(actionResult);
  6827.             }
  6828.         }
  6829.         createDamageSprite(actionResult) {
  6830.             const last = this._damages[this._damages.length - 1];
  6831.             const sprite = new Sprite_FieldDamage();
  6832.             if (last) {
  6833.                 sprite.x = last.x + 8;
  6834.                 sprite.y = last.y - 16;
  6835.             } else {
  6836.                 sprite.x = this.x + this.damageOffsetX();
  6837.                 sprite.y = this.y + this.damageOffsetY();
  6838.             }
  6839.             sprite.setActionResult(actionResult);
  6840.             sprite.setup(this._battler);
  6841.             this._damages.push(sprite);
  6842.             this.parent.addChild(sprite);
  6843.         }
  6844.         destroyDamageSprite(sprite) {
  6845.             this.parent.removeChild(sprite);
  6846.             this._damages.remove(sprite);
  6847.             sprite.destroy();
  6848.         }
  6849.         damageOffsetX() {
  6850.             return 0;
  6851.         }
  6852.         damageOffsetY() {
  6853.             return 0;
  6854.         }
  6855.     };
  6856.     var Sprite_Character_Mixin2 = _Sprite_Character_Mixin;
  6857.     Sprite_Character_Mixin2._initMembers = Sprite_Character.prototype.initMembers;
  6858.     Sprite_Character_Mixin2._update = Sprite_Character.prototype.update;
  6859.     mixin(Sprite_Character, Sprite_Character_Mixin2);
  6860.  
  6861.     // ts/ARPG_Core/ARPG_DamagePopup/Scene_Map.ts
  6862.     var _Scene_Map_isReady = Scene_Map.prototype.isReady;
  6863.     Scene_Map.prototype.isReady = function() {
  6864.         let ready = true;
  6865.         const result = _Scene_Map_isReady.call(this);
  6866.         if (!result)
  6867.             ready = false;
  6868.         if (ARPG_CorePluginParams.UseImageDamage) {
  6869.             const damageBitmap = ImageManager.loadSystem("Damage");
  6870.             if (!damageBitmap.isReady())
  6871.                 ready = false;
  6872.         }
  6873.         return ready;
  6874.     };
  6875.  
  6876.     // ts/ARPG_Core/ARPG_State/Main.ts
  6877.     var _Game_Battler_Mixin = class extends Game_Battler {
  6878.         clearStates() {
  6879.             _Game_Battler_Mixin._clearStates.call(this);
  6880.             this._statesDuration = [];
  6881.         }
  6882.         addState(stateId) {
  6883.             _Game_Battler_Mixin._addState.call(this, stateId);
  6884.             const state = $dataStates[stateId];
  6885.             if (typeof state.meta.duration === "string") {
  6886.                 let update = false;
  6887.                 if (!(this._statesDuration[stateId] != null && this._statesDuration[stateId] > 0)) {
  6888.                     update = true;
  6889.                 } else if (state.meta.overWriteDuration) {
  6890.                     update = true;
  6891.                 }
  6892.                 if (update) {
  6893.                     const duration = parseInt(state.meta.duration);
  6894.                     this._statesDuration[stateId] = duration;
  6895.                 }
  6896.             }
  6897.         }
  6898.         eraseState(stateId) {
  6899.             _Game_Battler_Mixin._eraseState.call(this, stateId);
  6900.             delete this._statesDuration[stateId];
  6901.         }
  6902.         updateStatesDuration() {
  6903.             if ($gameMap.isEventRunning())
  6904.                 return;
  6905.             for (const stateId of this._states) {
  6906.                 if (this._statesDuration[stateId] == null)
  6907.                     continue;
  6908.                 if (this._statesDuration[stateId] > 0) {
  6909.                     this._statesDuration[stateId]--;
  6910.                     if (this._statesDuration[stateId] <= 0) {
  6911.                         this.eraseState(stateId);
  6912.                     }
  6913.                 }
  6914.             }
  6915.         }
  6916.     };
  6917.     var Game_Battler_Mixin = _Game_Battler_Mixin;
  6918.     Game_Battler_Mixin._clearStates = Game_Battler.prototype.clearStates;
  6919.     Game_Battler_Mixin._addState = Game_Battler.prototype.addState;
  6920.     Game_Battler_Mixin._eraseState = Game_Battler.prototype.eraseState;
  6921.     mixin(Game_Battler, Game_Battler_Mixin);
  6922.  
  6923.     // ts/ARPG_Core/ARPG_TargetSelect/Main.ts
  6924.     var import_DotMoveSystem2 = __require("DotMoveSystem");
  6925.     var TargetSelecter = class extends Component {
  6926.         constructor(selectTargetType, opt = {}) {
  6927.             super();
  6928.             this._onlyNearTheScreen = opt.onlyNearTheScreen ?? true;
  6929.             this._selectTargetType = selectTargetType;
  6930.         }
  6931.         start() {
  6932.             super.start();
  6933.             let target;
  6934.             if (this._selectTargetType === "actor") {
  6935.                 ({ character: target } = ARPG_Utils.searchNearBattler($gamePlayer, "friend"));
  6936.             } else {
  6937.                 ({ character: target } = ARPG_Utils.searchNearBattler($gamePlayer, "opponent"));
  6938.             }
  6939.             if (target && target.isInTheScreen(0, 0)) {
  6940.                 $gameTemp.arpgGlobalTempData().selectingTarget = target;
  6941.             } else {
  6942.                 $gameMap.endTargetSelect();
  6943.             }
  6944.         }
  6945.         update() {
  6946.             super.update();
  6947.             if (Input.isTriggered("left")) {
  6948.                 this.prevSelect();
  6949.             } else if (Input.isTriggered("right")) {
  6950.                 this.nextSelect();
  6951.             } else if (Input.isTriggered("ok")) {
  6952.                 this.doSelect();
  6953.             }
  6954.         }
  6955.         touchCharacter(character) {
  6956.             const allCharacters = this.allCharactersByTargetType();
  6957.             for (const chr of allCharacters) {
  6958.                 if (chr === character) {
  6959.                     if (character === $gameTemp.arpgGlobalTempData().selectingTarget) {
  6960.                         this.doSelect();
  6961.                     } else {
  6962.                         this.doChangeSelectingTarget(character);
  6963.                     }
  6964.                     return;
  6965.                 }
  6966.             }
  6967.         }
  6968.         nextSelect() {
  6969.             const character = this.searchNextCharacter();
  6970.             if (character) {
  6971.                 this.doChangeSelectingTarget(character);
  6972.             }
  6973.         }
  6974.         prevSelect() {
  6975.             const character = this.searchPrevCharacter();
  6976.             if (character) {
  6977.                 this.doChangeSelectingTarget(character);
  6978.             }
  6979.         }
  6980.         doChangeSelectingTarget(targetCharacter) {
  6981.             SoundManager.playCursor();
  6982.             $gameTemp.arpgGlobalTempData().selectingTarget = targetCharacter;
  6983.         }
  6984.         doSelect() {
  6985.             SoundManager.playOk();
  6986.             const arpgGlobalTempData = $gameTemp.arpgGlobalTempData();
  6987.             const target = arpgGlobalTempData.selectingTarget;
  6988.             if (target) {
  6989.                 if (arpgGlobalTempData.selectedTargetCharacterKindVariableId > 0) {
  6990.                     $gameVariables.setValue(arpgGlobalTempData.selectedTargetCharacterKindVariableId, ARPG_Utils.characterKindValue(target));
  6991.                 }
  6992.                 if (target instanceof Game_Event && arpgGlobalTempData.selectedTargetEventIdVariableId > 0) {
  6993.                     $gameVariables.setValue(arpgGlobalTempData.selectedTargetEventIdVariableId, target.eventId());
  6994.                 }
  6995.                 if (arpgGlobalTempData.selectResultSwitchId > 0) {
  6996.                     $gameSwitches.setValue(arpgGlobalTempData.selectResultSwitchId, true);
  6997.                 }
  6998.             }
  6999.             $gameMap.endTargetSelect();
  7000.         }
  7001.         searchNextCharacter() {
  7002.             const allCharacters = this.allCharactersByTargetType();
  7003.             if (allCharacters.length <= 1)
  7004.                 return void 0;
  7005.             const index = allCharacters.indexOf($gameTemp.arpgGlobalTempData().selectingTarget);
  7006.             if (index >= 0) {
  7007.                 if (index < allCharacters.length - 1) {
  7008.                     return allCharacters[index + 1];
  7009.                 } else {
  7010.                     return allCharacters[0];
  7011.                 }
  7012.             }
  7013.             return void 0;
  7014.         }
  7015.         searchPrevCharacter() {
  7016.             const allCharacters = this.allCharactersByTargetType();
  7017.             if (allCharacters.length <= 1)
  7018.                 return void 0;
  7019.             const index = allCharacters.indexOf($gameTemp.arpgGlobalTempData().selectingTarget);
  7020.             if (index >= 0) {
  7021.                 if (index > 0) {
  7022.                     return allCharacters[index - 1];
  7023.                 } else {
  7024.                     return allCharacters[allCharacters.length - 1];
  7025.                 }
  7026.             }
  7027.             return void 0;
  7028.         }
  7029.         allCharactersByTargetType() {
  7030.             let characters;
  7031.             if (this._selectTargetType === "actor") {
  7032.                 characters = ARPG_Utils.allAliveActorCharacters();
  7033.             } else {
  7034.                 characters = ARPG_Utils.allAliveEnemyCharacters();
  7035.             }
  7036.             if (this._onlyNearTheScreen) {
  7037.                 characters = characters.filter((character) => character.isInTheScreen(0, 0));
  7038.             }
  7039.             return characters;
  7040.         }
  7041.     };
  7042.     var TriangleDrawer = class {
  7043.         constructor(bitmap) {
  7044.             this._bitmap = bitmap;
  7045.         }
  7046.         drawTriangle(x1, y1, x2, y2, x3, y3, strokeColor, fillColor) {
  7047.             const ctx = this._bitmap.context;
  7048.             ctx.beginPath();
  7049.             ctx.moveTo(x1, y1);
  7050.             ctx.lineTo(x2, y2);
  7051.             ctx.lineTo(x3, y3);
  7052.             ctx.closePath();
  7053.             ctx.strokeStyle = strokeColor;
  7054.             ctx.lineWidth = 2;
  7055.             ctx.stroke();
  7056.             ctx.fillStyle = fillColor;
  7057.             ctx.fill();
  7058.         }
  7059.     };
  7060.     var SpriteMover = class extends Component {
  7061.         constructor(moveSpeed) {
  7062.             super();
  7063.             this._moveSpeed = moveSpeed;
  7064.             this._targetX = 0;
  7065.             this._targetY = 0;
  7066.             this._moving = false;
  7067.         }
  7068.         get moveSpeed() {
  7069.             return this._moveSpeed;
  7070.         }
  7071.         set moveSpeed(_moveSpeed) {
  7072.             this._moveSpeed = _moveSpeed;
  7073.         }
  7074.         update() {
  7075.             super.update();
  7076.             if (this._moving)
  7077.                 this.updateMove();
  7078.         }
  7079.         updateMove() {
  7080.             const sprite = this.user();
  7081.             const oy = this._targetY - sprite.y;
  7082.             const ox = this._targetX - sprite.x;
  7083.             const rad = Math.atan2(oy, ox);
  7084.             const disX = this._moveSpeed * Math.cos(rad);
  7085.             const disY = this._moveSpeed * Math.sin(rad);
  7086.             sprite.x += disX;
  7087.             sprite.y += disY;
  7088.             if (disX < 0 && sprite.x + disX < this._targetX || disX > 0 && sprite.x + disX > this._targetX)
  7089.                 sprite.x = this._targetX;
  7090.             if (disY < 0 && sprite.y + disY < this._targetY || disY > 0 && sprite.y + disY > this._targetY)
  7091.                 sprite.y = this._targetY;
  7092.             if (sprite.x === this._targetX && sprite.y === this._targetY)
  7093.                 this._moving = false;
  7094.         }
  7095.         isMoving() {
  7096.             return this._moving;
  7097.         }
  7098.         isBusy() {
  7099.             return this.isMoving();
  7100.         }
  7101.         startMove(targetPoint) {
  7102.             this._targetX = targetPoint.x;
  7103.             this._targetY = targetPoint.y;
  7104.             this._moving = true;
  7105.         }
  7106.         changeTarget(targetPoint) {
  7107.             this._targetX = targetPoint.x;
  7108.             this._targetY = targetPoint.y;
  7109.         }
  7110.         fastMove(targetPoint) {
  7111.             this.user().x = targetPoint.x;
  7112.             this.user().y = targetPoint.y;
  7113.             this._moving = false;
  7114.         }
  7115.         forceEndMove() {
  7116.             this.user().x = this._targetX;
  7117.             this.user().y = this._targetY;
  7118.             this._moving = false;
  7119.         }
  7120.     };
  7121.     var _CursorAnimation = class extends Component {
  7122.         constructor() {
  7123.             super();
  7124.             this._nowAnimation = true;
  7125.             this._animationTime = 0;
  7126.             this._animationSign = 1;
  7127.         }
  7128.         update() {
  7129.             super.update();
  7130.             if (this._nowAnimation)
  7131.                 this.updateAnimation();
  7132.         }
  7133.         updateAnimation() {
  7134.             if (this._animationTime >= 0) {
  7135.                 this.user().y = this._animationTime / 4;
  7136.             } else {
  7137.                 this.user().y = -this._animationTime / 4;
  7138.             }
  7139.             this._animationTime += this._animationSign;
  7140.             if (this._animationTime >= _CursorAnimation.MAX_ANIMATION_TIME) {
  7141.                 this._animationSign = -1;
  7142.             } else if (this._animationTime <= -_CursorAnimation.MAX_ANIMATION_TIME) {
  7143.                 this._animationSign = 1;
  7144.             }
  7145.         }
  7146.     };
  7147.     var CursorAnimation = _CursorAnimation;
  7148.     CursorAnimation.MAX_ANIMATION_TIME = 30;
  7149.     var Sprite_CursorArrow = class extends Sprite {
  7150.         initialize() {
  7151.             super.initialize();
  7152.             this.createBitmap();
  7153.             this.anchor.x = 0.5;
  7154.             this.anchor.y = 1;
  7155.             this.addComponent(new CursorAnimation());
  7156.         }
  7157.         createBitmap() {
  7158.             if (ARPG_CorePluginParams.UseImageTargetSelectCursor) {
  7159.                 this.bitmap = ImageManager.loadBitmap("img/", ARPG_CorePluginParams.TargetSelectCursorImageFileName);
  7160.             } else {
  7161.                 this.bitmap = new Bitmap(32, 24);
  7162.                 const w = 32;
  7163.                 const h = 24;
  7164.                 const x1 = 0;
  7165.                 const y1 = 0;
  7166.                 const x2 = x1 + w;
  7167.                 const y2 = 0;
  7168.                 const x3 = (x1 + w) / 2;
  7169.                 const y3 = h;
  7170.                 this.drawTriangle(x1, y1, x2, y2, x3, y3, "#000000", "#ffffff");
  7171.             }
  7172.         }
  7173.         drawTriangle(x1, y1, x2, y2, x3, y3, strokeColor, fillColor) {
  7174.             new TriangleDrawer(this.bitmap).drawTriangle(x1, y1, x2, y2, x3, y3, strokeColor, fillColor);
  7175.         }
  7176.     };
  7177.     var _Sprite_TargetSelect = class extends Sprite {
  7178.         initialize() {
  7179.             super.initialize();
  7180.             this.hide();
  7181.             this.anchor.x = 0.5;
  7182.             this.anchor.y = 1;
  7183.             const cusrorArrow = new Sprite_CursorArrow();
  7184.             this.addChild(cusrorArrow);
  7185.             this._mover = new SpriteMover(1);
  7186.             this.addComponent(this._mover);
  7187.         }
  7188.         update() {
  7189.             super.update();
  7190.             let needShow = false;
  7191.             const target = $gameTemp.arpgGlobalTempData().selectingTarget;
  7192.             if (target) {
  7193.                 const targetSprite = target.getSprite();
  7194.                 if (targetSprite) {
  7195.                     needShow = true;
  7196.                     if (this._lastTarget === target) {
  7197.                         if (!this._mover.isMoving()) {
  7198.                             this.x = targetSprite.x;
  7199.                             this.y = targetSprite.y - targetSprite.height;
  7200.                         }
  7201.                     } else {
  7202.                         let fast = this._lastTarget == null;
  7203.                         this.moveToTarget(targetSprite, fast);
  7204.                         this._lastTarget = target;
  7205.                     }
  7206.                 }
  7207.             }
  7208.             if (needShow) {
  7209.                 this.show();
  7210.             } else {
  7211.                 this.hide();
  7212.                 this._lastTarget = void 0;
  7213.             }
  7214.         }
  7215.         moveToTarget(target, fast = false) {
  7216.             const targetPos = new import_DotMoveSystem2.DotMovePoint(target.x, target.y - target.height);
  7217.             if (fast) {
  7218.                 this._mover.fastMove(targetPos);
  7219.             } else {
  7220.                 const fromPos = new import_DotMoveSystem2.DotMovePoint(this.x, this.y);
  7221.                 this._mover.moveSpeed = this.calcCursorMoveSpeed(fromPos, targetPos);
  7222.                 this._mover.startMove(targetPos);
  7223.             }
  7224.         }
  7225.         calcCursorMoveSpeed(fromPos, targetPos) {
  7226.             return fromPos.calcFar(targetPos) / _Sprite_TargetSelect.CURSOR_MOVE_DURATION;
  7227.         }
  7228.     };
  7229.     var Sprite_TargetSelect = _Sprite_TargetSelect;
  7230.     Sprite_TargetSelect.CURSOR_MOVE_DURATION = 8;
  7231.     var _Spriteset_Map_Mixin2 = class extends Spriteset_Map {
  7232.         createLowerLayer() {
  7233.             _Spriteset_Map_Mixin2._createLowerLayer.call(this);
  7234.             this.createTargetSelectSprite();
  7235.         }
  7236.         createTargetSelectSprite() {
  7237.             this._targetSelectSprite = new Sprite_TargetSelect();
  7238.             this._tilemap.addChild(this._targetSelectSprite);
  7239.         }
  7240.     };
  7241.     var Spriteset_Map_Mixin2 = _Spriteset_Map_Mixin2;
  7242.     Spriteset_Map_Mixin2._createLowerLayer = Spriteset_Map.prototype.createLowerLayer;
  7243.     mixin(Spriteset_Map, Spriteset_Map_Mixin2);
  7244.     var _Game_Map_Mixin2 = class extends Game_Map {
  7245.         initialize() {
  7246.             _Game_Map_Mixin2._initialize.call(this);
  7247.             this._targetSelecting = false;
  7248.             this._targetSelectCancelable = false;
  7249.         }
  7250.         startTargetSelect(opt = {}) {
  7251.             const wait = opt.wait ?? false;
  7252.             const cancelable = opt.cancelable ?? false;
  7253.             this._targetSelecting = true;
  7254.             this._targetSelectCancelable = cancelable;
  7255.             $gamePlayer.onStartTargetSelect();
  7256.             this._targetSelecter = new TargetSelecter("enemy", { onlyNearTheScreen: opt.onlyNearTheScreen });
  7257.             $gameTemp.arpgGlobalTempData().controlCharacter.addComponent(this._targetSelecter);
  7258.             if (wait) {
  7259.                 this.stop();
  7260.             }
  7261.         }
  7262.         isTargetSelecting() {
  7263.             return this._targetSelecting;
  7264.         }
  7265.         isTargetSelectCancelable() {
  7266.             return this._targetSelectCancelable;
  7267.         }
  7268.         endTargetSelect() {
  7269.             if (this._targetSelecting) {
  7270.                 this._targetSelecting = false;
  7271.                 $gamePlayer.onEndTargetSelect();
  7272.                 $gameTemp.arpgGlobalTempData().selectingTarget = void 0;
  7273.                 this._targetSelecter?.end();
  7274.                 this._targetSelecter = void 0;
  7275.             }
  7276.             this.resume();
  7277.         }
  7278.         touchCharacter(character) {
  7279.             if (!this.isTargetSelecting())
  7280.                 return;
  7281.             if (!this._targetSelecter)
  7282.                 return;
  7283.             this._targetSelecter.touchCharacter(character);
  7284.         }
  7285.     };
  7286.     var Game_Map_Mixin2 = _Game_Map_Mixin2;
  7287.     Game_Map_Mixin2._initialize = Game_Map.prototype.initialize;
  7288.     Game_Map_Mixin2._update = Game_Map.prototype.update;
  7289.     mixin(Game_Map, Game_Map_Mixin2);
  7290.     var _Scene_Map_Mixin2 = class extends Scene_Map {
  7291.         update() {
  7292.             _Scene_Map_Mixin2._update.call(this);
  7293.             this.updateTargetSelect();
  7294.         }
  7295.         isMenuEnabled() {
  7296.             const result = _Scene_Map_Mixin2._isMenuEnabled.call(this);
  7297.             if (!result)
  7298.                 return false;
  7299.             if ($gameMap.isTargetSelecting())
  7300.                 return false;
  7301.             return true;
  7302.         }
  7303.         updateTargetSelect() {
  7304.             if (this.isMenuCalled() && $gameMap.isTargetSelectCancelable()) {
  7305.                 $gameMap.endTargetSelect();
  7306.             }
  7307.         }
  7308.         onMapTouch() {
  7309.             if ($gameMap.isTargetSelecting())
  7310.                 return;
  7311.             _Scene_Map_Mixin2._onMapTouch.call(this);
  7312.         }
  7313.     };
  7314.     var Scene_Map_Mixin2 = _Scene_Map_Mixin2;
  7315.     Scene_Map_Mixin2._update = Scene_Map.prototype.update;
  7316.     Scene_Map_Mixin2._updateCallMenu = Scene_Map.prototype.updateCallMenu;
  7317.     Scene_Map_Mixin2._isMenuEnabled = Scene_Map.prototype.isMenuEnabled;
  7318.     Scene_Map_Mixin2._onMapTouch = Scene_Map.prototype.onMapTouch;
  7319.     mixin(Scene_Map, Scene_Map_Mixin2);
  7320.  
  7321.     // ts/CommonLibrary/TimerComponent.ts
  7322.     var TimerComponent = class extends Component {
  7323.         constructor(timeoutCallback) {
  7324.             super();
  7325.             this._time = 0;
  7326.             this._timeoutFlag = false;
  7327.             this._timeoutCallback = timeoutCallback;
  7328.         }
  7329.         update() {
  7330.             super.update();
  7331.             if (this._time > 0) {
  7332.                 this._time--;
  7333.                 if (this._time === 0) {
  7334.                     this.timeoutProcess();
  7335.                 }
  7336.             }
  7337.         }
  7338.         startTimer(time) {
  7339.             this.resume();
  7340.             if (time > 0) {
  7341.                 this._time = time;
  7342.                 this._timeoutFlag = false;
  7343.             } else {
  7344.                 this.forceTimeout();
  7345.             }
  7346.         }
  7347.         checkTimeout() {
  7348.             if (this._timeoutFlag) {
  7349.                 this._timeoutFlag = false;
  7350.                 this.stop();
  7351.                 return true;
  7352.             }
  7353.             return false;
  7354.         }
  7355.         isTimerRunning() {
  7356.             if (this.isStopped())
  7357.                 return false;
  7358.             if (this._time === 0)
  7359.                 return false;
  7360.             return true;
  7361.         }
  7362.         forceTimeout() {
  7363.             this._time = 0;
  7364.             this.timeoutProcess();
  7365.         }
  7366.         cancel() {
  7367.             this._time = 0;
  7368.             this._timeoutFlag = false;
  7369.         }
  7370.         timeoutProcess() {
  7371.             this._timeoutFlag = true;
  7372.             if (this._timeoutCallback)
  7373.                 this._timeoutCallback();
  7374.         }
  7375.     };
  7376.  
  7377.     // ts/ARPG_Core/Game_ControlCharacter.ts
  7378.     var CHANGE_ACTOR_WAIT_TIME = 10;
  7379.     var Game_ControlCharacter = class extends Game_Character {
  7380.         setup(skillNameWindowController) {
  7381.             this.addComponent(skillNameWindowController);
  7382.             this.addComponent(new VisibleHitBoxProcess());
  7383.             this.addComponent(new ChangeActorProcess());
  7384.         }
  7385.     };
  7386.     var VisibleHitBoxProcess = class extends Component {
  7387.         update() {
  7388.             super.update();
  7389.             if (!$gameTemp.isPlaytest())
  7390.                 return;
  7391.             const keysym = ARPG_Utils.getKeySymbol("VisibleHitBox");
  7392.             if (keysym && Input.isTriggered(keysym)) {
  7393.                 const visibleHitBoxSwitchValue = $gameSwitches.value(ARPG_CorePluginParams.HitBoxSetting.VisibleHitAreaSwitchId);
  7394.                 $gameSwitches.setValue(ARPG_CorePluginParams.HitBoxSetting.VisibleHitAreaSwitchId, !visibleHitBoxSwitchValue);
  7395.             }
  7396.         }
  7397.     };
  7398.     var ChangeActorProcess = class extends Component {
  7399.         constructor() {
  7400.             super(...arguments);
  7401.             this._waitChangeActorTimer = new TimerComponent();
  7402.         }
  7403.         setup() {
  7404.             super.setup();
  7405.             this.addComponent(this._waitChangeActorTimer);
  7406.         }
  7407.         update() {
  7408.             super.update();
  7409.             let request = $gameTemp.checkRequestedChangeNextActor();
  7410.             if (request) {
  7411.                 if (request.force) {
  7412.                     this.forceChangeNextActor();
  7413.                 } else {
  7414.                     this.changeNextActor();
  7415.                 }
  7416.             } else {
  7417.                 const enableSwitchId = ARPG_CorePluginParams.EnableChangeControlActorSwitchId;
  7418.                 if (enableSwitchId === 0 || $gameSwitches.value(enableSwitchId)) {
  7419.                     const keysym = ARPG_Utils.getKeySymbol("ChangeControlActor");
  7420.                     if (keysym && Input.isTriggered(keysym)) {
  7421.                         this.changeNextActor();
  7422.                     }
  7423.                 }
  7424.             }
  7425.             if ($gamePlayer.battler().isAlive() && $gameParty.leader().isAlive()) {
  7426.                 const leaderActorId = $gameParty.leader().actorId();
  7427.                 if (leaderActorId != $gamePlayer.battler().actorId()) {
  7428.                     $gamePlayer.battler().changeActor(leaderActorId);
  7429.                     $gamePlayer.refresh();
  7430.                 }
  7431.             }
  7432.         }
  7433.         changeNextActor() {
  7434.             if (!this.isChangeActorEnabled())
  7435.                 return;
  7436.             if (this._waitChangeActorTimer.isTimerRunning())
  7437.                 return;
  7438.             this.forceChangeNextActor();
  7439.         }
  7440.         forceChangeNextActor() {
  7441.             const changed = $gameParty.changeNextActor($gamePlayer.battler().actorId());
  7442.             if ($gamePlayer.isBattler()) {
  7443.                 $gamePlayer.battler().changeActor($gameParty.leader().actorId());
  7444.             }
  7445.             if (changed) {
  7446.                 this._waitChangeActorTimer.startTimer(CHANGE_ACTOR_WAIT_TIME);
  7447.                 const actorChangeSeParam = ARPG_CorePluginParams.SESetting.ActorChange;
  7448.                 if (actorChangeSeParam) {
  7449.                     const se = {
  7450.                         name: actorChangeSeParam.FileName,
  7451.                         volume: actorChangeSeParam.Volume,
  7452.                         pitch: actorChangeSeParam.Pitch,
  7453.                         pan: actorChangeSeParam.Pan,
  7454.                         pos: actorChangeSeParam.Pos
  7455.                     };
  7456.                     AudioManager.playSe(se);
  7457.                 }
  7458.             }
  7459.         }
  7460.         isChangeActorEnabled() {
  7461.             if ($gameMap.isEventRunning())
  7462.                 return false;
  7463.             if (!ARPG_Utils.isChangeActorEnabled())
  7464.                 return false;
  7465.             return true;
  7466.         }
  7467.     };
  7468.  
  7469.     // ts/ARPG_Core/Window_CommonMessage.ts
  7470.     var Window_CommonMessage = class extends Window_Base {
  7471.         constructor() {
  7472.             super(...arguments);
  7473.             this._text = "";
  7474.         }
  7475.         get text() {
  7476.             return this._text;
  7477.         }
  7478.         set text(_text) {
  7479.             this._text = _text;
  7480.             this.refresh();
  7481.         }
  7482.         refresh() {
  7483.             this.drawText(this.text, 0, 0, this.width - this.padding * 2, "center");
  7484.         }
  7485.     };
  7486.  
  7487.     // ts/ARPG_Core/MessageWindowController.ts
  7488.     var _MessageWindowController = class extends Component {
  7489.         constructor() {
  7490.             super(...arguments);
  7491.             this._windowDatas = [];
  7492.             this._showWindowTimer = new TimerComponent(this.showWindowTimerTimeout.bind(this));
  7493.             this._setupCompleted = false;
  7494.             this._afterFirst = false;
  7495.             this._manualWait = false;
  7496.             this._showWindowGuardTimer = new TimerComponent(this.showWindowGuardTimerTimeout.bind(this));
  7497.         }
  7498.         start() {
  7499.             super.start();
  7500.             this.addComponent(this._showWindowTimer);
  7501.             this.addComponent(this._showWindowGuardTimer);
  7502.         }
  7503.         showWindow(text, rect, opt = {}) {
  7504.             if (!this._setupCompleted)
  7505.                 throw new Error("MessageWindowController is not setup completed.");
  7506.             const time = opt.time ?? _MessageWindowController.DEFAULT_SHOW_WINDOW_TIME;
  7507.             const type = opt.type ?? "common";
  7508.             let window2;
  7509.             if (type === "common") {
  7510.                 window2 = new Window_CommonMessage(rect);
  7511.             } else {
  7512.                 throw new Error(`${type} is invalid type.`);
  7513.             }
  7514.             window2.text = text;
  7515.             window2.y = this.calcWindowYPos(this._windowDatas.length);
  7516.             this._windowDatas.push(new WindowData(text, rect, window2, type, time));
  7517.             if (!this.isManualWaiting() && !this._showWindowTimer.isTimerRunning()) {
  7518.                 this._showWindowTimer.startTimer(time);
  7519.             }
  7520.             this._showWindowGuardTimer.startTimer(_MessageWindowController.SHOW_WINDOW_GUARD_TIME);
  7521.             this._createWindowCallback(window2);
  7522.         }
  7523.         startManualWait() {
  7524.             if (this._showWindowTimer.isTimerRunning()) {
  7525.                 this._manualWait = true;
  7526.                 this._showWindowTimer.stop();
  7527.             }
  7528.         }
  7529.         endManualWait() {
  7530.             this._manualWait = false;
  7531.             this._showWindowTimer.resume();
  7532.         }
  7533.         isManualWaiting() {
  7534.             return this._manualWait;
  7535.         }
  7536.         clearAllWindows() {
  7537.             for (const winData of this._windowDatas) {
  7538.                 this._deleteWindowCallback(winData.window);
  7539.             }
  7540.             this._windowDatas = [];
  7541.         }
  7542.         sceneStart(createWindowCallback, deleteWindowCallback) {
  7543.             this._createWindowCallback = createWindowCallback;
  7544.             this._deleteWindowCallback = deleteWindowCallback;
  7545.             this._setupCompleted = true;
  7546.             if (this._afterFirst) {
  7547.                 this._windowDatas.forEach((winData, i) => {
  7548.                     let window2;
  7549.                     if (winData.type === "common") {
  7550.                         window2 = new Window_CommonMessage(winData.rect);
  7551.                     } else {
  7552.                         throw new Error(`${winData.type} is invalid type.`);
  7553.                     }
  7554.                     window2.text = winData.text;
  7555.                     window2.y = this.calcWindowYPos(i);
  7556.                     winData.window = window2;
  7557.                     this._createWindowCallback(window2);
  7558.                 });
  7559.             } else {
  7560.                 this._afterFirst = true;
  7561.             }
  7562.         }
  7563.         sceneTerminate() {
  7564.             this._setupCompleted = false;
  7565.             for (const winData of this._windowDatas) {
  7566.                 this._deleteWindowCallback(winData.window);
  7567.                 winData.window = void 0;
  7568.             }
  7569.         }
  7570.         calcWindowYPos(index) {
  7571.             return index * 64 + 8;
  7572.         }
  7573.         showWindowTimerTimeout() {
  7574.             const windowData = this._windowDatas.splice(0, 1)[0];
  7575.             if (this._windowDatas.length > 0) {
  7576.                 this._showWindowTimer.startTimer(windowData.time);
  7577.             } else {
  7578.                 this._showWindowGuardTimer.cancel();
  7579.             }
  7580.             this._windowDatas.forEach((winData, i) => {
  7581.                 if (winData.window) {
  7582.                     winData.window.y = this.calcWindowYPos(i);
  7583.                 }
  7584.             });
  7585.             this._deleteWindowCallback(windowData.window);
  7586.         }
  7587.         // NOTE: 何かしらの要因でウィンドウが破棄されなかった場合、永久的にウィンドウが残り続けるため、
  7588.         //       SHOW_WINDOW_GUARD_TIMEが経過した場合強制的に全ウィンドウをクリアする。
  7589.         showWindowGuardTimerTimeout() {
  7590.             this.clearAllWindows();
  7591.             this._manualWait = false;
  7592.             this._showWindowTimer.cancel();
  7593.         }
  7594.     };
  7595.     var MessageWindowController = _MessageWindowController;
  7596.     MessageWindowController.DEFAULT_SHOW_WINDOW_TIME = 60;
  7597.     MessageWindowController.SHOW_WINDOW_GUARD_TIME = 6e3;
  7598.     var WindowData = class {
  7599.         constructor(text, rect, window2, type, time) {
  7600.             this.text = text;
  7601.             this.rect = rect;
  7602.             this.window = window2;
  7603.             this.type = type;
  7604.             this.time = time;
  7605.         }
  7606.     };
  7607.  
  7608.     // ts/ARPG_Core/ARPG_GlobalTempData.ts
  7609.     var ARPG_GlobalTempData = class {
  7610.         constructor() {
  7611.             this.selectResultSwitchId = 0;
  7612.             this.selectedTargetCharacterKindVariableId = 0;
  7613.             this.selectedTargetEventIdVariableId = 0;
  7614.             this.controlCharacter = new Game_ControlCharacter();
  7615.             this.skillNameWindowController = new MessageWindowController();
  7616.             this.controlCharacter.setup(this.skillNameWindowController);
  7617.         }
  7618.     };
  7619.  
  7620.     // ts/ARPG_Core/Game_Temp.ts
  7621.     var _Game_Temp_Mixin2 = class extends Game_Temp {
  7622.         initialize() {
  7623.             _Game_Temp_Mixin2._initialize.call(this);
  7624.             this._arpgCharacterTempDatas = /* @__PURE__ */ new Map();
  7625.             this._fieldDamagePopupRequest = /* @__PURE__ */ new Map();
  7626.         }
  7627.         arpgGlobalTempData() {
  7628.             if (!this._arpgGlobalTempData) {
  7629.                 this._arpgGlobalTempData = new ARPG_GlobalTempData();
  7630.             }
  7631.             return this._arpgGlobalTempData;
  7632.         }
  7633.         arpgCharacterTempData(character) {
  7634.             let tempData = this._arpgCharacterTempDatas.get(character);
  7635.             if (tempData)
  7636.                 return tempData;
  7637.             tempData = character.createArpgTempData();
  7638.             this._arpgCharacterTempDatas.set(character, tempData);
  7639.             return tempData;
  7640.         }
  7641.         clearUnusedArpgCharacterTempDatas() {
  7642.             const allCharacters = $gameMap.allCharacters();
  7643.             for (const character of this._arpgCharacterTempDatas.keys()) {
  7644.                 if (!allCharacters.has(character)) {
  7645.                     this._arpgCharacterTempDatas.delete(character);
  7646.                 }
  7647.             }
  7648.         }
  7649.         requestFieldDamagePopup(character, result) {
  7650.             this._fieldDamagePopupRequest.set(character, result);
  7651.         }
  7652.         checkRequestedFieldDamagePopup(character) {
  7653.             const result = this._fieldDamagePopupRequest.get(character);
  7654.             this._fieldDamagePopupRequest.delete(character);
  7655.             return result;
  7656.         }
  7657.         requestChangeNextActor(request = {}) {
  7658.             this._changeNextActorRequest = request;
  7659.         }
  7660.         checkRequestedChangeNextActor() {
  7661.             if (this._changeNextActorRequest) {
  7662.                 const request = this._changeNextActorRequest;
  7663.                 this._changeNextActorRequest = void 0;
  7664.                 return request;
  7665.             }
  7666.             return void 0;
  7667.         }
  7668.     };
  7669.     var Game_Temp_Mixin2 = _Game_Temp_Mixin2;
  7670.     Game_Temp_Mixin2._initialize = Game_Temp.prototype.initialize;
  7671.     mixin(Game_Temp, Game_Temp_Mixin2);
  7672.  
  7673.     // ts/ARPG_Core/ARPG_Skill.ts
  7674.     var _ARPG_Skill = class {
  7675.         constructor(skillOrItem, idOrName) {
  7676.             this._actionName = "";
  7677.             this._actionCommonEventId = 0;
  7678.             this._cancelAcceleration = true;
  7679.             this._disableMove = true;
  7680.             this._commonEventVariables = [];
  7681.             this._commonEventSwitches = [];
  7682.             this._skillOrItem = skillOrItem;
  7683.             if (typeof idOrName === "number") {
  7684.                 this._id = idOrName;
  7685.             } else {
  7686.                 if (skillOrItem === "item") {
  7687.                     this._id = this.findItemIdByName(idOrName);
  7688.                 } else {
  7689.                     this._id = this.findSkillIdByName(idOrName);
  7690.                 }
  7691.             }
  7692.             if (skillOrItem === "skill") {
  7693.                 this._data = $dataSkills[this._id];
  7694.             } else if (skillOrItem === "item") {
  7695.                 this._data = $dataItems[this._id];
  7696.             } else {
  7697.                 throw new Error(`ARPG_Skill error (skillOrItem=${skillOrItem}, id=${this._id})`);
  7698.             }
  7699.             if (this._data.meta.params) {
  7700.                 try {
  7701.                     this._params = JSON.parse(`{${this._data.meta.params}}`);
  7702.                 } catch (e) {
  7703.                     throw new Error(`Skill parameter (${this._data.meta.params}) is invalid.`);
  7704.                 }
  7705.             } else {
  7706.                 this._params = {};
  7707.             }
  7708.             if (typeof this._data.meta.noAttackFrame === "string") {
  7709.                 const strNoAttackFrame = this._data.meta.noAttackFrame.replace(/\s/, "");
  7710.                 this._noAttackFrame = parseInt(strNoAttackFrame);
  7711.             } else {
  7712.                 this._noAttackFrame = _ARPG_Skill.DEFAULT_NO_ATTACK_FRAME;
  7713.             }
  7714.             if (typeof this._data.meta.noDamageFrame === "string") {
  7715.                 const strNoDamageFrame = this._data.meta.noDamageFrame.replace(/\s/, "");
  7716.                 this._noDamageFrame = parseInt(strNoDamageFrame);
  7717.             } else {
  7718.                 this._noDamageFrame = _ARPG_Skill.DEFAULT_NO_DAMAGE_FRANE;
  7719.             }
  7720.             if (typeof this._data.meta.action === "string") {
  7721.                 const actionName = this._data.meta.action.replace(/\s/, "");
  7722.                 if (actionName != null) {
  7723.                     this._actionName = actionName;
  7724.                     if (actionName.match(/^\d+$/)) {
  7725.                         this._actionCommonEventId = parseInt(actionName);
  7726.                     } else {
  7727.                         const commonEventId = this.searchCommonEventId(actionName);
  7728.                         if (commonEventId)
  7729.                             this._actionCommonEventId = commonEventId;
  7730.                     }
  7731.                 }
  7732.             }
  7733.             if (this._data.meta.showSkillName) {
  7734.                 this._showSkillName = true;
  7735.             } else {
  7736.                 this._showSkillName = false;
  7737.             }
  7738.             if (typeof this._data.meta.cancelAcceleration === "string" && this._data.meta.cancelAcceleration.match(/\s*false$/)) {
  7739.                 this._cancelAcceleration = false;
  7740.             }
  7741.             if (typeof this._data.meta.disableMove === "string" && this._data.meta.disableMove.match(/\s*false$/)) {
  7742.                 this._disableMove = false;
  7743.             }
  7744.             this._commonEventSwitches = this.parseCommonEventSwitches();
  7745.             this._commonEventVariables = this.parseCommonEventVariables();
  7746.         }
  7747.         get skillOrItem() {
  7748.             return this._skillOrItem;
  7749.         }
  7750.         get id() {
  7751.             return this._id;
  7752.         }
  7753.         parseCommonEventSwitches() {
  7754.             let commonEventSwitches = /* @__PURE__ */ new Set();
  7755.             for (const matchData of this._data.note.matchAll(/\<set-sw\s*\:\s*(.+)\s*\>/g)) {
  7756.                 if (matchData && matchData[1]) {
  7757.                     const id = parseInt(matchData[1]);
  7758.                     commonEventSwitches.add(id);
  7759.                 }
  7760.             }
  7761.             return [...commonEventSwitches];
  7762.         }
  7763.         parseCommonEventVariables() {
  7764.             let commonEventVariables = /* @__PURE__ */ new Set();
  7765.             for (const matchData of this._data.note.matchAll(/\<set-var\s*\:\s*(.+)\s*\,\s*(.+)\>/g)) {
  7766.                 if (matchData && matchData[1] && matchData[2]) {
  7767.                     const id = parseInt(matchData[1]);
  7768.                     const value = parseInt(matchData[2]);
  7769.                     commonEventVariables.add({ id, value });
  7770.                 }
  7771.             }
  7772.             return [...commonEventVariables];
  7773.         }
  7774.         findSkillIdByName(name) {
  7775.             for (const skillData of $dataSkills) {
  7776.                 if (!skillData)
  7777.                     continue;
  7778.                 if (skillData.name === name) {
  7779.                     return skillData.id;
  7780.                 }
  7781.             }
  7782.             throw new Error(`${name} is not fount in all skills.`);
  7783.         }
  7784.         findItemIdByName(name) {
  7785.             for (const itemData of $dataItems) {
  7786.                 if (!itemData)
  7787.                     continue;
  7788.                 if (itemData.name === name) {
  7789.                     return itemData.id;
  7790.                 }
  7791.             }
  7792.             throw new Error(`${name} is not fount in all items.`);
  7793.         }
  7794.         isSkill() {
  7795.             return this._skillOrItem === "skill";
  7796.         }
  7797.         isItem() {
  7798.             return this._skillOrItem === "item";
  7799.         }
  7800.         params() {
  7801.             return this._params;
  7802.         }
  7803.         commonEventVariables() {
  7804.             return this._commonEventVariables;
  7805.         }
  7806.         commonEventSwitches() {
  7807.             return this._commonEventSwitches;
  7808.         }
  7809.         noAttackFrame() {
  7810.             return this._noAttackFrame;
  7811.         }
  7812.         noDamageFrame() {
  7813.             return this._noDamageFrame;
  7814.         }
  7815.         actionName() {
  7816.             return this._actionName;
  7817.         }
  7818.         actionCommonEventId() {
  7819.             return this._actionCommonEventId;
  7820.         }
  7821.         isOverwriteCollideAttack() {
  7822.             return !!this._data.meta.overwriteCollideAttack;
  7823.         }
  7824.         data() {
  7825.             return this._data;
  7826.         }
  7827.         checkItemScope(list) {
  7828.             return list.includes(this._data.scope);
  7829.         }
  7830.         isForOpponent() {
  7831.             return this.checkItemScope([1, 2, 3, 4, 5, 6, 14]);
  7832.         }
  7833.         isForFriend() {
  7834.             return this.checkItemScope([7, 8, 9, 10, 11, 12, 13, 14]);
  7835.         }
  7836.         isForEveryone() {
  7837.             return this.checkItemScope([14]);
  7838.         }
  7839.         isForAliveFriend() {
  7840.             return this.checkItemScope([7, 8, 11, 14]);
  7841.         }
  7842.         isForDeadFriend() {
  7843.             return this.checkItemScope([9, 10]);
  7844.         }
  7845.         isForUser() {
  7846.             return this.checkItemScope([11]);
  7847.         }
  7848.         isShowSkillName() {
  7849.             return this._showSkillName;
  7850.         }
  7851.         isCancelAcceleration() {
  7852.             return this._cancelAcceleration;
  7853.         }
  7854.         isMoveDisabled() {
  7855.             return this._disableMove;
  7856.         }
  7857.         elementIds() {
  7858.             return ARPG_Utils.itemAttackElementIds(this._data);
  7859.         }
  7860.         searchCommonEventId(commonEventName) {
  7861.             const foundCommonEvent = $dataCommonEvents.find((commonEvent) => {
  7862.                 if (!commonEvent)
  7863.                     return false;
  7864.                 return commonEvent.name === commonEventName;
  7865.             });
  7866.             if (foundCommonEvent)
  7867.                 return foundCommonEvent.id;
  7868.             return void 0;
  7869.         }
  7870.     };
  7871.     var ARPG_Skill = _ARPG_Skill;
  7872.     ARPG_Skill.DEFAULT_NO_ATTACK_FRAME = 60;
  7873.     ARPG_Skill.DEFAULT_NO_DAMAGE_FRANE = 30;
  7874.  
  7875.     // ts/ARPG_Core/ARPG_EffectResult.ts
  7876.     var DamageKind = {
  7877.         NONE: 0,
  7878.         HP_DAMAGE: 1,
  7879.         MP_DAMAGE: 2,
  7880.         TP_DAMAGE: 3
  7881.     };
  7882.     var DamageType = {
  7883.         NORMAL: 1,
  7884.         MISSED: 2,
  7885.         EVADED: 3,
  7886.         CRITICAL: 4
  7887.     };
  7888.     var ARPG_EffectResult = class {
  7889.         constructor(actionResult, damageDeg, guardResult) {
  7890.             this._actionResult = this.copyActionResult(actionResult);
  7891.             this._damageDeg = damageDeg;
  7892.             if (guardResult == null) {
  7893.                 this._guardResult = "NO_GUARD";
  7894.             } else {
  7895.                 this._guardResult = guardResult;
  7896.             }
  7897.         }
  7898.         actionResult() {
  7899.             return this._actionResult;
  7900.         }
  7901.         damageKind() {
  7902.             if (this._actionResult.hpAffected) {
  7903.                 return DamageKind.HP_DAMAGE;
  7904.             } else {
  7905.                 if (this._actionResult.mpDamage > 0) {
  7906.                     return DamageKind.MP_DAMAGE;
  7907.                 } else if (this._actionResult.tpDamage > 0) {
  7908.                     return DamageKind.TP_DAMAGE;
  7909.                 }
  7910.             }
  7911.             return DamageKind.NONE;
  7912.         }
  7913.         damageType() {
  7914.             if (this._actionResult.missed) {
  7915.                 return DamageType.MISSED;
  7916.             } else if (this._actionResult.evaded) {
  7917.                 return DamageType.EVADED;
  7918.             } else if (this._actionResult.critical) {
  7919.                 return DamageType.CRITICAL;
  7920.             } else {
  7921.                 return DamageType.NORMAL;
  7922.             }
  7923.         }
  7924.         hpDamageValue() {
  7925.             return this._actionResult.hpDamage;
  7926.         }
  7927.         mpDamageValue() {
  7928.             return this._actionResult.mpDamage;
  7929.         }
  7930.         tpDamageValue() {
  7931.             return this._actionResult.tpDamage;
  7932.         }
  7933.         damageDeg() {
  7934.             return this._damageDeg;
  7935.         }
  7936.         damageDir4() {
  7937.             if (this._damageDeg == null)
  7938.                 return void 0;
  7939.             return this._damageDeg.toDirection4(0);
  7940.         }
  7941.         guardResult() {
  7942.             return this._guardResult;
  7943.         }
  7944.         copyActionResult(actionResult) {
  7945.             const copyActionResult = new Game_ActionResult();
  7946.             copyActionResult.used = actionResult.used;
  7947.             copyActionResult.missed = actionResult.missed;
  7948.             copyActionResult.evaded = actionResult.evaded;
  7949.             copyActionResult.physical = actionResult.physical;
  7950.             copyActionResult.drain = actionResult.drain;
  7951.             copyActionResult.critical = actionResult.critical;
  7952.             copyActionResult.success = actionResult.success;
  7953.             copyActionResult.hpAffected = actionResult.hpAffected;
  7954.             copyActionResult.hpDamage = actionResult.hpDamage;
  7955.             copyActionResult.mpDamage = actionResult.mpDamage;
  7956.             copyActionResult.tpDamage = actionResult.tpDamage;
  7957.             copyActionResult.addedStates = actionResult.addedStates;
  7958.             copyActionResult.removedStates = actionResult.removedStates;
  7959.             copyActionResult.addedBuffs = actionResult.addedBuffs;
  7960.             copyActionResult.addedDebuffs = actionResult.addedDebuffs;
  7961.             copyActionResult.removedBuffs = actionResult.removedBuffs;
  7962.             return copyActionResult;
  7963.         }
  7964.     };
  7965.  
  7966.     // ts/ARPG_Core/ARPG_Effect.ts
  7967.     var formulaFuncTbl = /* @__PURE__ */ new Map();
  7968.     var ARPG_Effect = class {
  7969.         constructor(subject, target, skill, deg) {
  7970.             this._subject = subject;
  7971.             this._target = target;
  7972.             this._skill = skill;
  7973.             this._damageDeg = deg;
  7974.         }
  7975.         applyToTarget() {
  7976.             const action = new Game_ARPGAction(this._subject.battler());
  7977.             action.setItemObject(this._skill.data());
  7978.             action.setGuardResult(this._guardResult);
  7979.             action.apply(this._target.battler());
  7980.             const result = new ARPG_EffectResult(this._target.battler().result(), this._damageDeg, this._guardResult);
  7981.             if (ARPG_CorePluginParams.UseDamagePopup == null || ARPG_CorePluginParams.UseDamagePopup) {
  7982.                 $gameTemp.requestFieldDamagePopup(this._target.user(), result.actionResult());
  7983.             }
  7984.             return result;
  7985.         }
  7986.         testApplyToTarget() {
  7987.             const action = new Game_ARPGAction(this._subject.battler());
  7988.             action.setItemObject(this._skill.data());
  7989.             action.setGuardResult(this._guardResult);
  7990.             return action.testApply(this._target.battler());
  7991.         }
  7992.         damageDir4() {
  7993.             if (this._damageDeg == null)
  7994.                 return void 0;
  7995.             return this._damageDeg.toDirection4(0);
  7996.         }
  7997.         damageDeg() {
  7998.             return this._damageDeg;
  7999.         }
  8000.         setDamageDeg(damageDeg) {
  8001.             this._damageDeg = damageDeg;
  8002.         }
  8003.         subject() {
  8004.             return this._subject;
  8005.         }
  8006.         target() {
  8007.             return this._target;
  8008.         }
  8009.         skill() {
  8010.             return this._skill;
  8011.         }
  8012.         noDamageFrame() {
  8013.             return this._skill.noDamageFrame();
  8014.         }
  8015.         setGuardResult(guardResult) {
  8016.             this._guardResult = guardResult;
  8017.             if (guardResult != "NO_GUARD") {
  8018.                 this.setDamageDeg(void 0);
  8019.             }
  8020.         }
  8021.     };
  8022.     var Game_ARPGAction = class extends Game_Action {
  8023.         setSubject(subject) {
  8024.             this._subject = subject;
  8025.         }
  8026.         subject() {
  8027.             return this._subject;
  8028.         }
  8029.         // ジャストガードの場合、ダメージ関連のリザルトを設定しない。
  8030.         apply(target) {
  8031.             super.apply(target);
  8032.             if (this._guardResult === "JUST_GUARD") {
  8033.                 target.result().hpAffected = false;
  8034.                 target.result().missed = false;
  8035.                 target.result().evaded = false;
  8036.             }
  8037.         }
  8038.         evalDamageFormula(target) {
  8039.             try {
  8040.                 const item = this.item();
  8041.                 const a = this.subject();
  8042.                 const b = target;
  8043.                 const v = $gameVariables._data;
  8044.                 const sign = [3, 4].includes(item.damage.type) ? -1 : 1;
  8045.                 const formula = item.damage.formula;
  8046.                 let func = formulaFuncTbl.get(formula);
  8047.                 if (!func) {
  8048.                     func = new Function("a", "b", "v", `return (${formula});`);
  8049.                     formulaFuncTbl.set(formula, func);
  8050.                 }
  8051.                 const value = Math.max(func(a, b, v), 0) * sign;
  8052.                 return isNaN(value) ? 0 : value;
  8053.             } catch (e) {
  8054.                 return 0;
  8055.             }
  8056.         }
  8057.         applyGuard(damage, target) {
  8058.             if (this._guardResult === "JUST_GUARD") {
  8059.                 return 0;
  8060.             } else if (this._guardResult === "NORMAL_GUARD") {
  8061.                 return damage / 2;
  8062.             }
  8063.             return damage;
  8064.         }
  8065.         setGuardResult(guardResult) {
  8066.             this._guardResult = guardResult;
  8067.         }
  8068.         // ARPGモードの場合に対応
  8069.         testApply(target) {
  8070.             return this.testLifeAndDeath(target) && (this.isHpRecover() && target.hp < target.mhp || this.isMpRecover() && target.mp < target.mmp || this.hasItemAnyValidEffects(target) || this.evalDamageFormula(target) !== 0);
  8071.         }
  8072.         applyCritical(damage) {
  8073.             return damage * 2;
  8074.         }
  8075.     };
  8076.  
  8077.     // ts/CommonLibrary/Processor.ts
  8078.     var Processor = class extends Component {
  8079.         update() {
  8080.             super.update();
  8081.             if (!this._generator)
  8082.                 this._generator = this.process();
  8083.             const res = this._generator.next();
  8084.             if (res.done) {
  8085.                 this._generator = void 0;
  8086.                 this.end();
  8087.             }
  8088.         }
  8089.         *waitProcess(waitTime, exitCheckFunc = null) {
  8090.             while (waitTime > 0) {
  8091.                 if (exitCheckFunc) {
  8092.                     if (exitCheckFunc())
  8093.                         break;
  8094.                 }
  8095.                 waitTime--;
  8096.                 yield;
  8097.             }
  8098.         }
  8099.         *waitComponent(component) {
  8100.             while (!component.isStopped())
  8101.                 yield;
  8102.         }
  8103.     };
  8104.  
  8105.     // ts/CommonLibrary/CommonEventComponent.ts
  8106.     var CommonEventComponent = class extends Component {
  8107.         constructor(commonEventId) {
  8108.             super();
  8109.             this._interpreter = new Game_Interpreter();
  8110.             this._commonEventId = commonEventId;
  8111.         }
  8112.         interpreter() {
  8113.             return this._interpreter;
  8114.         }
  8115.         start() {
  8116.             super.start();
  8117.             const commonEventData = $dataCommonEvents[this._commonEventId];
  8118.             if (!commonEventData) {
  8119.                 this.end();
  8120.                 return;
  8121.             }
  8122.             const user = this.user();
  8123.             if (user instanceof Game_Event) {
  8124.                 this._interpreter.setup(commonEventData.list, user.eventId());
  8125.             } else {
  8126.                 this._interpreter.setup(commonEventData.list);
  8127.             }
  8128.         }
  8129.         update() {
  8130.             super.update();
  8131.             if (this._interpreter.isRunning()) {
  8132.                 this._interpreter.update();
  8133.             } else {
  8134.                 if (!$gameMessage.isBusy()) {
  8135.                     this.end();
  8136.                 }
  8137.             }
  8138.         }
  8139.         terminate() {
  8140.             super.terminate();
  8141.             this._interpreter.clear();
  8142.         }
  8143.     };
  8144.  
  8145.     // ts/ARPG_Core/BattlerCommonEventComponent.ts
  8146.     var BattlerCommonEventComponent = class extends CommonEventComponent {
  8147.         constructor(commonEventId, lock = false) {
  8148.             super(commonEventId);
  8149.             this._lock = lock;
  8150.         }
  8151.         start() {
  8152.             super.start();
  8153.             const character = this.user();
  8154.             if (character instanceof Game_Event) {
  8155.                 const parallelInterpreter = character.interpreter();
  8156.                 if (parallelInterpreter) {
  8157.                     if (this._lock)
  8158.                         parallelInterpreter.lock("common_event");
  8159.                 }
  8160.                 this._interpreter.setCommonVariableValue(ARPG_CorePluginParams.BattlerSetting.UserKindCommonVariableId, 3);
  8161.                 this._interpreter.setCommonVariableValue(ARPG_CorePluginParams.BattlerSetting.UserEventIdCommonVariableId, character.eventId());
  8162.             } else if (character instanceof Game_Player) {
  8163.                 this._interpreter.setCommonVariableValue(ARPG_CorePluginParams.BattlerSetting.UserKindCommonVariableId, 1);
  8164.             }
  8165.         }
  8166.         terminate() {
  8167.             super.terminate();
  8168.             const character = this.user();
  8169.             if (character instanceof Game_Event) {
  8170.                 const parallelInterpreter = character.interpreter();
  8171.                 if (parallelInterpreter) {
  8172.                     if (this._lock)
  8173.                         parallelInterpreter.unlock("common_event");
  8174.                 }
  8175.             }
  8176.         }
  8177.     };
  8178.  
  8179.     // ts/ARPG_Core/BattlerRecvDamageCommonEventComponent.ts
  8180.     var BattlerRecvDamageCommonEventComponent = class extends BattlerCommonEventComponent {
  8181.         constructor(commonEventId, damageEffectResult) {
  8182.             super(commonEventId, true);
  8183.             this._damageEffectResult = damageEffectResult;
  8184.         }
  8185.         start() {
  8186.             super.start();
  8187.             const character = this.user();
  8188.             const damageDir4 = this._damageEffectResult.damageDir4();
  8189.             let dir;
  8190.             if (damageDir4) {
  8191.                 dir = damageDir4;
  8192.             } else {
  8193.                 dir = character.reverseDir(character.direction());
  8194.             }
  8195.             if (ARPG_CorePluginParams.BattlerSetting.DamageDegCommonVariableId > 0) {
  8196.                 this._interpreter.setCommonVariableValue(ARPG_CorePluginParams.BattlerSetting.DamageDegCommonVariableId, Degree.fromDirection(dir).value);
  8197.             }
  8198.             const damageKind = this._damageEffectResult.damageKind();
  8199.             if (ARPG_CorePluginParams.BattlerSetting.DamageKindCommonVariableId > 0) {
  8200.                 this._interpreter.setCommonVariableValue(ARPG_CorePluginParams.BattlerSetting.DamageKindCommonVariableId, damageKind);
  8201.             }
  8202.             if (ARPG_CorePluginParams.BattlerSetting.DamageTypeCommonVariableId > 0) {
  8203.                 this._interpreter.setCommonVariableValue(ARPG_CorePluginParams.BattlerSetting.DamageTypeCommonVariableId, this._damageEffectResult.damageType());
  8204.             }
  8205.             if (ARPG_CorePluginParams.BattlerSetting.DamageValueCommonVariableId > 0) {
  8206.                 switch (damageKind) {
  8207.                     case DamageKind.HP_DAMAGE:
  8208.                         this._interpreter.setCommonVariableValue(ARPG_CorePluginParams.BattlerSetting.DamageValueCommonVariableId, this._damageEffectResult.hpDamageValue());
  8209.                         break;
  8210.                     case DamageKind.MP_DAMAGE:
  8211.                         this._interpreter.setCommonVariableValue(ARPG_CorePluginParams.BattlerSetting.DamageValueCommonVariableId, this._damageEffectResult.mpDamageValue());
  8212.                         break;
  8213.                     case DamageKind.TP_DAMAGE:
  8214.                         this._interpreter.setCommonVariableValue(ARPG_CorePluginParams.BattlerSetting.DamageValueCommonVariableId, this._damageEffectResult.tpDamageValue());
  8215.                         break;
  8216.                 }
  8217.             }
  8218.         }
  8219.     };
  8220.  
  8221.     // ts/ARPG_Core/ARPG_CustomManager.ts
  8222.     var ARPG_CustomManager = class {
  8223.         static addAction(actionName, actionFunc) {
  8224.             this._actionTable.set(actionName, actionFunc);
  8225.         }
  8226.         static getAction(actionName) {
  8227.             return this._actionTable.get(actionName);
  8228.         }
  8229.         static actionComponent(user, skill) {
  8230.             if (skill.actionName() !== "") {
  8231.                 const action = this.getAction(skill.actionName());
  8232.                 if (action)
  8233.                     return action(user, skill);
  8234.             }
  8235.             if (skill.actionCommonEventId() > 0) {
  8236.                 return new ActionCommonEventComponent(skill);
  8237.             }
  8238.             return void 0;
  8239.         }
  8240.         static actorGuardStart(actor) {
  8241.             if (ARPG_CorePluginParams.ActorSetting.StartGuardCommonEventId > 0) {
  8242.                 return new BattlerCommonEventComponent(ARPG_CorePluginParams.ActorSetting.StartGuardCommonEventId, true);
  8243.             }
  8244.             return void 0;
  8245.         }
  8246.         static actorGuardEnd(actor) {
  8247.             if (ARPG_CorePluginParams.ActorSetting.EndGuardCommonEventId > 0) {
  8248.                 return new BattlerCommonEventComponent(ARPG_CorePluginParams.ActorSetting.EndGuardCommonEventId, true);
  8249.             }
  8250.             return void 0;
  8251.         }
  8252.         static actorRecvDamageComponent(actor, result, guardResult) {
  8253.             if (guardResult === "NORMAL_GUARD") {
  8254.                 return new BattlerRecvDamageCommonEventComponent(ARPG_CorePluginParams.ActorSetting.NormalGuardCommonEventId, result);
  8255.             } else if (guardResult === "JUST_GUARD") {
  8256.                 return new BattlerRecvDamageCommonEventComponent(ARPG_CorePluginParams.ActorSetting.JustGuardCommonEventId, result);
  8257.             } else {
  8258.                 return new BattlerRecvDamageCommonEventComponent(ARPG_CorePluginParams.ActorSetting.DamageCommonEventId, result);
  8259.             }
  8260.         }
  8261.         static actorDeadComponent(actor, result) {
  8262.             return new BattlerDeadCommonEventComponent(ARPG_CorePluginParams.ActorSetting.DeadCommonEventId, result);
  8263.         }
  8264.         static enemyRecvDamageComponent(enemy, result) {
  8265.             return new BattlerRecvDamageCommonEventComponent(enemy.damageCommonEventId(), result);
  8266.         }
  8267.         static enemyDefeatComponent(enemy, result) {
  8268.             return new BattlerDeadCommonEventComponent(enemy.defeatEnemyCommonEventId(), result);
  8269.         }
  8270.         static gameoverComponent() {
  8271.             if (ARPG_CorePluginParams.ActorSetting.GameOverCommonEventId > 0) {
  8272.                 return new CommonEventComponent(ARPG_CorePluginParams.ActorSetting.GameOverCommonEventId);
  8273.             }
  8274.             return void 0;
  8275.         }
  8276.         static chantComponent(battler, chantCommonEventId) {
  8277.             if (chantCommonEventId > 0) {
  8278.                 return new CommonEventComponent(chantCommonEventId);
  8279.             }
  8280.             return void 0;
  8281.         }
  8282.         static levelUpComponent(actor) {
  8283.             if (ARPG_CorePluginParams.ActorSetting.LevelUpCommonEventId > 0) {
  8284.                 return new CommonEventComponent(ARPG_CorePluginParams.ActorSetting.LevelUpCommonEventId);
  8285.             }
  8286.             return void 0;
  8287.         }
  8288.         static fieldObjectRecvDamageComponent(fieldObject) {
  8289.             const damageCommonEventId = fieldObject.damageCommonEventId();
  8290.             if (damageCommonEventId > 0) {
  8291.                 return new CommonEventComponent(damageCommonEventId);
  8292.             }
  8293.             return void 0;
  8294.         }
  8295.     };
  8296.     ARPG_CustomManager._actionTable = /* @__PURE__ */ new Map();
  8297.     var ActionCommonEventComponent = class extends CommonEventComponent {
  8298.         constructor(skill) {
  8299.             super(skill.actionCommonEventId());
  8300.             this._skill = skill;
  8301.         }
  8302.         start() {
  8303.             super.start();
  8304.             const character = this.user();
  8305.             if (character instanceof Game_Event) {
  8306.                 this._interpreter.setCommonVariableValue(ARPG_CorePluginParams.BattlerSetting.UserKindCommonVariableId, 3);
  8307.                 this._interpreter.setCommonVariableValue(ARPG_CorePluginParams.BattlerSetting.UserEventIdCommonVariableId, character.eventId());
  8308.             } else if (character instanceof Game_Player) {
  8309.                 this._interpreter.setCommonVariableValue(ARPG_CorePluginParams.BattlerSetting.UserKindCommonVariableId, 1);
  8310.             }
  8311.             for (const switchId of this._skill.commonEventSwitches()) {
  8312.                 this._interpreter.setCommonSwitchValue(switchId, true);
  8313.             }
  8314.             for (const { id, value } of this._skill.commonEventVariables()) {
  8315.                 this._interpreter.setCommonVariableValue(id, value);
  8316.             }
  8317.         }
  8318.     };
  8319.     var BattlerDeadCommonEventComponent = class extends BattlerCommonEventComponent {
  8320.         constructor(commonEventId, result) {
  8321.             super(commonEventId, true);
  8322.             this._result = result;
  8323.         }
  8324.         start() {
  8325.             super.start();
  8326.             const character = this.user();
  8327.             const damageDir4 = this._result.damageDir4();
  8328.             let dir;
  8329.             if (damageDir4) {
  8330.                 dir = damageDir4;
  8331.             } else {
  8332.                 dir = character.reverseDir(character.direction());
  8333.             }
  8334.             if (ARPG_CorePluginParams.BattlerSetting.DamageDegCommonVariableId > 0) {
  8335.                 this.interpreter().setCommonVariableValue(ARPG_CorePluginParams.BattlerSetting.DamageDegCommonVariableId, Degree.fromDirection(dir).value);
  8336.             }
  8337.         }
  8338.     };
  8339.  
  8340.     // ts/CommonLibrary/ChainComponent.ts
  8341.     var ChainComponent = class extends Component {
  8342.         constructor(components) {
  8343.             super();
  8344.             this._componentIndex = 0;
  8345.             this._components = components;
  8346.         }
  8347.         start() {
  8348.             super.start();
  8349.             this.updateChain();
  8350.         }
  8351.         update() {
  8352.             super.update();
  8353.             this.updateChain();
  8354.         }
  8355.         updateChain() {
  8356.             while (this._componentIndex < this._components.length) {
  8357.                 const component = this._components[this._componentIndex];
  8358.                 if (component == null) {
  8359.                     this._componentIndex++;
  8360.                     continue;
  8361.                 }
  8362.                 if (component instanceof Component) {
  8363.                     if (this._running) {
  8364.                         if (component.isBusy()) {
  8365.                             break;
  8366.                         } else {
  8367.                             this._running = false;
  8368.                             this._componentIndex++;
  8369.                         }
  8370.                     } else {
  8371.                         this._running = true;
  8372.                         this.addComponent(component);
  8373.                         break;
  8374.                     }
  8375.                 } else {
  8376.                     component();
  8377.                     this._componentIndex++;
  8378.                 }
  8379.             }
  8380.             if (this._componentIndex >= this._components.length) {
  8381.                 this.end();
  8382.             }
  8383.         }
  8384.     };
  8385.  
  8386.     // ts/CommonLibrary/FrameCounter.ts
  8387.     var FrameCounter = class extends Component {
  8388.         constructor() {
  8389.             super(...arguments);
  8390.             this._frame = 0;
  8391.         }
  8392.         get frame() {
  8393.             return this._frame;
  8394.         }
  8395.         update() {
  8396.             super.update();
  8397.             this._frame++;
  8398.         }
  8399.         reset() {
  8400.             this._frame = 0;
  8401.         }
  8402.     };
  8403.  
  8404.     // ts/ARPG_Core/ARPG_ComboController.ts
  8405.     var ARPG_ComboController = class extends Component {
  8406.         constructor() {
  8407.             super(...arguments);
  8408.             this._numCombo = 0;
  8409.             this._lastSkillId = 0;
  8410.             this._frameCounter = new FrameCounter();
  8411.         }
  8412.         setup() {
  8413.             super.setup();
  8414.             this.addComponent(this._frameCounter);
  8415.         }
  8416.         checkDerivationSkill(useSkill) {
  8417.             if (ARPG_CorePluginParams.ActionComboSetting == null)
  8418.                 return void 0;
  8419.             if (this._numCombo <= 0)
  8420.                 return void 0;
  8421.             let prevDerivationSkillId;
  8422.             for (const actionComboData of ARPG_CorePluginParams.ActionComboSetting) {
  8423.                 if (this._numCombo === 1) {
  8424.                     prevDerivationSkillId = actionComboData.SkillId;
  8425.                 } else {
  8426.                     const prevDerivation = actionComboData.ActionComboDerivations[this._numCombo - 2];
  8427.                     prevDerivationSkillId = prevDerivation.DerivationSkillId;
  8428.                 }
  8429.                 const derivation = actionComboData.ActionComboDerivations[this._numCombo - 1];
  8430.                 if (prevDerivationSkillId === this._lastSkillId) {
  8431.                     if (derivation && derivation.FromSkillId === useSkill.id) {
  8432.                         const frame = this._frameCounter.frame;
  8433.                         if (derivation.MinComboFrame <= frame && frame <= derivation.MaxComboFrame) {
  8434.                             return new ARPG_Skill("skill", derivation.DerivationSkillId);
  8435.                         }
  8436.                     }
  8437.                 }
  8438.             }
  8439.             return void 0;
  8440.         }
  8441.         cancelCombo() {
  8442.             this._numCombo = 0;
  8443.         }
  8444.         startCombo(useSkill) {
  8445.             this._numCombo = 1;
  8446.             this._frameCounter.reset();
  8447.             this._lastSkillId = useSkill.id;
  8448.         }
  8449.         toNextCombo(useSkill) {
  8450.             this._numCombo++;
  8451.             this._frameCounter.reset();
  8452.             this._lastSkillId = useSkill.id;
  8453.         }
  8454.     };
  8455.  
  8456.     // ts/ARPG_Core/ARPG_Battler.ts
  8457.     var ARPG_Battler = class extends Component {
  8458.         constructor() {
  8459.             super(...arguments);
  8460.             this._noDamageTimer = new TimerComponent();
  8461.             this._noAttackTimer = new TimerComponent();
  8462.             this._damageHitChecker = new HitChecker("damage");
  8463.             this._attackHitChecker = new HitChecker("attack");
  8464.             this._customHitCheckers = /* @__PURE__ */ new Map();
  8465.             this._isConsumeCost = true;
  8466.             this._totalDamageWhenUsingSkill = 0;
  8467.             this._skillCancelWhenDamageEnable = false;
  8468.             this._guardReasons = /* @__PURE__ */ new Set();
  8469.             this._justGuardTimer = new TimerComponent();
  8470.             this._skillActivating = false;
  8471.             this._comboController = new ARPG_ComboController();
  8472.         }
  8473.         get damageHitChecker() {
  8474.             return this._damageHitChecker;
  8475.         }
  8476.         get attackHitChecker() {
  8477.             return this._attackHitChecker;
  8478.         }
  8479.         get customHitCheckers() {
  8480.             return this._customHitCheckers;
  8481.         }
  8482.         get hp() {
  8483.             return this.battler().hp;
  8484.         }
  8485.         set hp(value) {
  8486.             this.battler().setHp(value);
  8487.         }
  8488.         get mp() {
  8489.             return this.battler().mp;
  8490.         }
  8491.         set mp(value) {
  8492.             this.battler().setMp(value);
  8493.         }
  8494.         get tp() {
  8495.             return this.battler().tp;
  8496.         }
  8497.         set tp(value) {
  8498.             this.battler().setTp(value);
  8499.         }
  8500.         get mhp() {
  8501.             return this.battler().mhp;
  8502.         }
  8503.         get mmp() {
  8504.             return this.battler().mmp;
  8505.         }
  8506.         get def() {
  8507.             return this.battler().def;
  8508.         }
  8509.         get atk() {
  8510.             return this.battler().atk;
  8511.         }
  8512.         get mat() {
  8513.             return this.battler().mat;
  8514.         }
  8515.         get mdf() {
  8516.             return this.battler().mdf;
  8517.         }
  8518.         get agi() {
  8519.             return this.battler().agi;
  8520.         }
  8521.         get luk() {
  8522.             return this.battler().luk;
  8523.         }
  8524.         get hit() {
  8525.             return this.battler().hit;
  8526.         }
  8527.         get eva() {
  8528.             return this.battler().eva;
  8529.         }
  8530.         get cri() {
  8531.             return this.battler().cri;
  8532.         }
  8533.         get cev() {
  8534.             return this.battler().cev;
  8535.         }
  8536.         get mev() {
  8537.             return this.battler().mev;
  8538.         }
  8539.         get mrf() {
  8540.             return this.battler().mrf;
  8541.         }
  8542.         get cnt() {
  8543.             return this.battler().cnt;
  8544.         }
  8545.         get hrg() {
  8546.             return this.battler().hrg;
  8547.         }
  8548.         get mrg() {
  8549.             return this.battler().mrg;
  8550.         }
  8551.         get trg() {
  8552.             return this.battler().trg;
  8553.         }
  8554.         get tgr() {
  8555.             return this.battler().tgr;
  8556.         }
  8557.         get grd() {
  8558.             return this.battler().grd;
  8559.         }
  8560.         get rec() {
  8561.             return this.battler().rec;
  8562.         }
  8563.         get pha() {
  8564.             return this.battler().pha;
  8565.         }
  8566.         get mcr() {
  8567.             return this.battler().mcr;
  8568.         }
  8569.         get tcr() {
  8570.             return this.battler().tcr;
  8571.         }
  8572.         get pdr() {
  8573.             return this.battler().pdr;
  8574.         }
  8575.         get mdr() {
  8576.             return this.battler().mdr;
  8577.         }
  8578.         get fdr() {
  8579.             return this.battler().fdr;
  8580.         }
  8581.         get exr() {
  8582.             return this.battler().exr;
  8583.         }
  8584.         start() {
  8585.             super.start();
  8586.             this.addComponent(this._damageHitChecker);
  8587.             this.addComponent(this._attackHitChecker);
  8588.             this.addComponent(this._noDamageTimer);
  8589.             this.addComponent(this._noAttackTimer);
  8590.             this.addComponent(this._justGuardTimer);
  8591.             this.addComponent(this._comboController);
  8592.             this.updateHitChecker();
  8593.         }
  8594.         update() {
  8595.             super.update();
  8596.             this.updateRecvDamage();
  8597.             if (this._chantComponent) {
  8598.                 if (this._chantComponent.isTerminated()) {
  8599.                     this._chantComponent = void 0;
  8600.                 }
  8601.             }
  8602.             this.updateHitChecker();
  8603.         }
  8604.         updateHitChecker() {
  8605.             if (this.isAlive()) {
  8606.                 this._damageHitChecker.removeDisableReason("dead");
  8607.                 this._attackHitChecker.removeDisableReason("dead");
  8608.             } else {
  8609.                 this._damageHitChecker.addDisableReason("dead");
  8610.                 this._attackHitChecker.addDisableReason("dead");
  8611.             }
  8612.         }
  8613.         isActor() {
  8614.             return false;
  8615.         }
  8616.         isEnemy() {
  8617.             return false;
  8618.         }
  8619.         isDead() {
  8620.             if (this.battler().isDead())
  8621.                 return true;
  8622.             return false;
  8623.         }
  8624.         isAlive() {
  8625.             return !this.isDead();
  8626.         }
  8627.         isGuarding() {
  8628.             return this._guardReasons.size > 0;
  8629.         }
  8630.         startGuard(reason) {
  8631.             const lastGuarding = this.isGuarding();
  8632.             this._guardReasons.add(reason);
  8633.             if (!lastGuarding)
  8634.                 this.onGuardStart();
  8635.         }
  8636.         endGuard(reason) {
  8637.             this._guardReasons.delete(reason);
  8638.             if (!this.isGuarding())
  8639.                 this.onGuardEnd();
  8640.         }
  8641.         onGuardStart() {
  8642.             let justGuardFrame = this.arpgParameters().justGuardFrame;
  8643.             if (justGuardFrame == null) {
  8644.                 justGuardFrame = ARPG_CorePluginParams.ActorSetting.JustGuardFrame;
  8645.             }
  8646.             if (justGuardFrame > 0) {
  8647.                 this._justGuardTimer.startTimer(justGuardFrame);
  8648.             }
  8649.         }
  8650.         onGuardEnd() {
  8651.             this._justGuardTimer.stop();
  8652.         }
  8653.         checkSuccessGuard(damageEffect) {
  8654.             let successGuard = false;
  8655.             if (this.isGuarding()) {
  8656.                 const damageDir4 = damageEffect.damageDir4();
  8657.                 if (damageDir4 == null) {
  8658.                     successGuard = true;
  8659.                 } else {
  8660.                     if (this.user().direction() === this.user().reverseDir(damageDir4)) {
  8661.                         successGuard = true;
  8662.                     }
  8663.                 }
  8664.             }
  8665.             if (successGuard) {
  8666.                 if (this._justGuardTimer.isTimerRunning()) {
  8667.                     return "JUST_GUARD";
  8668.                 } else {
  8669.                     return "NORMAL_GUARD";
  8670.                 }
  8671.             }
  8672.             return "NO_GUARD";
  8673.         }
  8674.         startNoDamage(frame) {
  8675.             if (!this._noDamageTimer.isTimerRunning())
  8676.                 this._noDamageTimer.startTimer(frame);
  8677.         }
  8678.         isNoDamage() {
  8679.             if (this.arpgParameters().noDamageFlag)
  8680.                 return true;
  8681.             if (this._noDamageTimer.isTimerRunning())
  8682.                 return true;
  8683.             return false;
  8684.         }
  8685.         startNoAttack(frame) {
  8686.             this._noAttackTimer.startTimer(frame);
  8687.         }
  8688.         isNoAttackMode() {
  8689.             if (this.arpgParameters().noAttackFlag)
  8690.                 return true;
  8691.             return false;
  8692.         }
  8693.         gainHp(value) {
  8694.             this.battler().gainHp(value);
  8695.         }
  8696.         gainSilentTp(value) {
  8697.             this.battler().gainSilentTp(value);
  8698.         }
  8699.         canPaySkillCost(skill) {
  8700.             return this.battler().canPaySkillCost(skill.data());
  8701.         }
  8702.         paySkillCost(skill) {
  8703.             this.battler().paySkillCost(skill.data());
  8704.         }
  8705.         setCollideAttackSkillId(skillId) {
  8706.             this._collideAttackSkillId = skillId;
  8707.         }
  8708.         collideAttackSkillId() {
  8709.             if (this.usingSkill && this.usingSkill.isOverwriteCollideAttack()) {
  8710.                 return this.usingSkill.id;
  8711.             }
  8712.             if (this._collideAttackSkillId == null)
  8713.                 return 2;
  8714.             return this._collideAttackSkillId;
  8715.         }
  8716.         recvDamage(damageEffect) {
  8717.             const guardResult = this.checkSuccessGuard(damageEffect);
  8718.             damageEffect.setGuardResult(guardResult);
  8719.             const result = damageEffect.applyToTarget();
  8720.             this.skillCancelWhenRecvDamage(result);
  8721.             if (this.isAlive()) {
  8722.                 this.startNoDamage(damageEffect.noDamageFrame());
  8723.             }
  8724.             this._recvDamageEffect = damageEffect;
  8725.             this.stopCharacterMove("recvDamage");
  8726.             this.stopEventInterpreter("recvDamage");
  8727.             this._behaviorComponent?.stop();
  8728.             this._comboController.cancelCombo();
  8729.             const recvDamageComponent = this.makeRecvDamageComponent(result);
  8730.             this.addComponent(new ChainComponent([recvDamageComponent, this.onEndRecvDamage.bind(this)]));
  8731.         }
  8732.         onEndRecvDamage() {
  8733.             this.resumeCharacterMove("recvDamage");
  8734.             this.resumeEventInterpreter("recvDamage");
  8735.             if (this._behaviorComponent) {
  8736.                 if (this.isDead()) {
  8737.                     this._behaviorComponent.end();
  8738.                     this._behaviorComponent = void 0;
  8739.                 } else {
  8740.                     this._behaviorComponent.resume();
  8741.                 }
  8742.             }
  8743.             this._recvDamageEffect = void 0;
  8744.         }
  8745.         canUsableSkill() {
  8746.             if (this.isNoAttackMode())
  8747.                 return false;
  8748.             if (this.isSkillUsing())
  8749.                 return false;
  8750.             if (this.isDamageReceiving())
  8751.                 return false;
  8752.             if ($gameMap.isEventRunning())
  8753.                 return false;
  8754.             return true;
  8755.         }
  8756.         useSkill(skillOrItem, idOrName, opt = {}) {
  8757.             if (!this.canUsableSkill())
  8758.                 return;
  8759.             let skill = new ARPG_Skill(skillOrItem, idOrName);
  8760.             if (skill.isSkill()) {
  8761.                 const comboSkill = this._comboController.checkDerivationSkill(skill);
  8762.                 if (comboSkill) {
  8763.                     skill = comboSkill;
  8764.                     this._comboController.toNextCombo(comboSkill);
  8765.                 } else {
  8766.                     if (this._noAttackTimer.isTimerRunning()) {
  8767.                         return;
  8768.                     } else {
  8769.                         this._comboController.startCombo(skill);
  8770.                     }
  8771.                 }
  8772.             } else {
  8773.                 this._comboController.cancelCombo();
  8774.             }
  8775.             this._isConsumeCost = opt.isConsumeCost ?? true;
  8776.             this._useSkillProcessor = new ARPG_UseSkillProcessor(this, skill);
  8777.             this.addComponent(this._useSkillProcessor);
  8778.             this._totalDamageWhenUsingSkill = 0;
  8779.         }
  8780.         isSkillUsing() {
  8781.             return !!(this._useSkillProcessor && !this._useSkillProcessor.isTerminated());
  8782.         }
  8783.         isDamageReceiving() {
  8784.             return !!this._recvDamageEffect;
  8785.         }
  8786.         consumeCost(skill) {
  8787.             if (!this._isConsumeCost)
  8788.                 return;
  8789.             if (skill.isSkill()) {
  8790.                 this.user().battler().paySkillCost(skill);
  8791.             } else if (skill.isItem()) {
  8792.                 if (this.isActor()) {
  8793.                     $gameParty.gainItem(skill.data(), -1);
  8794.                 }
  8795.             }
  8796.         }
  8797.         checkConsumeCost(skill) {
  8798.             if (!this._isConsumeCost)
  8799.                 return true;
  8800.             if (skill.isSkill()) {
  8801.                 if (!this.canPaySkillCost(skill))
  8802.                     return false;
  8803.             } else if (skill.isItem()) {
  8804.                 if (this.isActor()) {
  8805.                     if (!$gameParty.hasItem(skill.data()))
  8806.                         return false;
  8807.                 }
  8808.             }
  8809.             return true;
  8810.         }
  8811.         skillActivation(chantCommonEventId = 0) {
  8812.             if (!this.usingSkill) {
  8813.                 throw ErrorManager.skillActivationUnusedSkillError();
  8814.             }
  8815.             this._skillActivating = true;
  8816.             if (this.usingSkill.isCancelAcceleration()) {
  8817.                 this.user().cancelAcceleration();
  8818.             }
  8819.             if (this.usingSkill.isShowSkillName()) {
  8820.                 $gameMap.arpgBattleManager().showSkillNameWindow(this, this.usingSkill);
  8821.             }
  8822.             this.consumeCost(this.usingSkill);
  8823.             this.requestRefreshShortcutWindowHook();
  8824.             if (this.usingSkill.isMoveDisabled()) {
  8825.                 this.stopCharacterMove("skill");
  8826.             }
  8827.             this.stopEventInterpreter("skill");
  8828.             const chantComponent = ARPG_CustomManager.chantComponent(this, chantCommonEventId);
  8829.             if (chantComponent) {
  8830.                 this._chantComponent = chantComponent;
  8831.                 this.addComponent(this._chantComponent);
  8832.             }
  8833.         }
  8834.         checkDamageElement(elementName) {
  8835.             if (!this.isDamageReceiving())
  8836.                 return false;
  8837.             const allElements = $dataSystem.elements;
  8838.             const attackElementIds = this._recvDamageEffect.subject().attackElementIds().concat(this._recvDamageEffect.skill().elementIds());
  8839.             for (let i = 0; i < allElements.length; i++) {
  8840.                 if (allElements[i] === elementName) {
  8841.                     if (attackElementIds.includes(i))
  8842.                         return true;
  8843.                 }
  8844.             }
  8845.             return false;
  8846.         }
  8847.         attackElementIds() {
  8848.             return this.battler().attackElements();
  8849.         }
  8850.         stopCharacterMove(reason) {
  8851.             const character = this.user();
  8852.             if (character instanceof Game_Event) {
  8853.                 character.stopSelfMovement(reason);
  8854.             } else if (character instanceof Game_Player) {
  8855.                 character.stopMoveByInput(reason);
  8856.             }
  8857.         }
  8858.         resumeCharacterMove(reason) {
  8859.             const character = this.user();
  8860.             if (character instanceof Game_Event) {
  8861.                 character.resumeSelfMovement(reason);
  8862.             } else if (character instanceof Game_Player) {
  8863.                 character.resumeMoveByInput(reason);
  8864.             }
  8865.         }
  8866.         stopEventInterpreter(reason) {
  8867.             const character = this.user();
  8868.             if (character instanceof Game_Event) {
  8869.                 const interpreter = character.interpreter();
  8870.                 if (interpreter)
  8871.                     interpreter.lock(reason);
  8872.             }
  8873.             this._behaviorComponent?.stop();
  8874.         }
  8875.         resumeEventInterpreter(reason) {
  8876.             const character = this.user();
  8877.             if (character instanceof Game_Event) {
  8878.                 const interpreter = character.interpreter();
  8879.                 if (interpreter)
  8880.                     interpreter.unlock(reason);
  8881.             }
  8882.         }
  8883.         setSkillCancelWhenDamageEnable(enabled) {
  8884.             this._skillCancelWhenDamageEnable = enabled;
  8885.         }
  8886.         isDamageSkillCancelEnabled() {
  8887.             if (this._chantComponent)
  8888.                 return true;
  8889.             return this._skillCancelWhenDamageEnable;
  8890.         }
  8891.         requestRefreshShortcutWindowHook() {
  8892.         }
  8893.         applySkillEffect(skill) {
  8894.             if (!this.usingSkill) {
  8895.                 throw ErrorManager.applySkillEffectUnusedSkillError();
  8896.             }
  8897.             if (!this.skillActivation) {
  8898.                 throw ErrorManager.applySkillEffectUnActivate();
  8899.             }
  8900.             if (skill == null) {
  8901.                 skill = this.usingSkill;
  8902.             }
  8903.             const effect = new ARPG_Effect(this, this, skill, void 0);
  8904.             effect.applyToTarget();
  8905.         }
  8906.         testApplySkillEffect(skill) {
  8907.             if (!this.usingSkill) {
  8908.                 throw ErrorManager.testApplySkillEffectUnusedSkillError();
  8909.             }
  8910.             if (skill == null) {
  8911.                 skill = this.usingSkill;
  8912.             }
  8913.             const effect = new ARPG_Effect(this, this, skill, void 0);
  8914.             return effect.testApplyToTarget();
  8915.         }
  8916.         isSkillActivating() {
  8917.             return this._skillActivating;
  8918.         }
  8919.         endSkillActivation() {
  8920.             if (this.isSkillActivating()) {
  8921.                 if (this.usingSkill.isShowSkillName()) {
  8922.                     $gameMap.arpgBattleManager().endShowSkillNameWindow();
  8923.                 }
  8924.                 this._skillActivating = false;
  8925.                 this.startNoAttack(this.usingSkill.noAttackFrame());
  8926.             }
  8927.             if (this.usingSkill?.isMoveDisabled()) {
  8928.                 this.resumeCharacterMove("skill");
  8929.             }
  8930.             this.resumeEventInterpreter("skill");
  8931.         }
  8932.         makeSkillObject(srcMapId, srcEventIdOrName, skill, x = 0, y = 0) {
  8933.             if (!this.isSkillActivating()) {
  8934.                 throw ErrorManager.makeSkillObjectUnActivate();
  8935.             }
  8936.             const event = $gameMap.makeDynamicEvent(srcMapId, srcEventIdOrName, x, y);
  8937.             if (skill == null) {
  8938.                 skill = this.usingSkill;
  8939.             }
  8940.             event.setupSkillObject(skill.skillOrItem, skill.id, this);
  8941.             const userCharacter = this.user();
  8942.             let userEventId;
  8943.             if (userCharacter instanceof Game_Event) {
  8944.                 userEventId = userCharacter.eventId();
  8945.             } else {
  8946.                 userEventId = 0;
  8947.             }
  8948.             const userKind = ARPG_Utils.characterKindValue(userCharacter);
  8949.             if (ARPG_CorePluginParams.SkillObjectSetting.SkillObjectUserKindSelfVariableId > 0) {
  8950.                 event.setSelfVariableValue(ARPG_CorePluginParams.SkillObjectSetting.SkillObjectUserKindSelfVariableId, userKind);
  8951.             }
  8952.             if (ARPG_CorePluginParams.SkillObjectSetting.SkillObjectUserEventIdSelfVariableId > 0) {
  8953.                 event.setSelfVariableValue(ARPG_CorePluginParams.SkillObjectSetting.SkillObjectUserEventIdSelfVariableId, userEventId);
  8954.             }
  8955.             return event;
  8956.         }
  8957.         behaviorComponent() {
  8958.             return this._behaviorComponent;
  8959.         }
  8960.         setBehaviorComponent(component) {
  8961.             if (this._behaviorComponent)
  8962.                 this._behaviorComponent.end();
  8963.             this._behaviorComponent = component;
  8964.             if (component)
  8965.                 this.addComponent(component);
  8966.         }
  8967.         updateRecvDamage() {
  8968.             if (this.isDead())
  8969.                 return;
  8970.             const character = this.user();
  8971.             if (character instanceof Game_Event) {
  8972.                 if (character.isErased())
  8973.                     return;
  8974.             }
  8975.             const hitCharacters = this._damageHitChecker.checkHit("attack");
  8976.             for (const character2 of hitCharacters) {
  8977.                 if (character2.isSkillObject()) {
  8978.                     this.recvDamageProcessBySkillObjectCharacter(character2);
  8979.                 } else if (character2.isBattler()) {
  8980.                     this.recvDamageProcessByBattlerCharacter(character2);
  8981.                 }
  8982.             }
  8983.         }
  8984.         applyCollideDamageEffectToTarget(target, arpgSkill) {
  8985.             if (target.isNoDamage())
  8986.                 return;
  8987.             const effect = new ARPG_Effect(this, target, arpgSkill, Degree.fromDirection(this.user().direction()));
  8988.             target.recvDamage(effect);
  8989.         }
  8990.         isChanting() {
  8991.             return !!this._chantComponent;
  8992.         }
  8993.         recvDamageProcessBySkillObjectCharacter(character) {
  8994.             if (character instanceof Game_Event) {
  8995.                 if (character.isErased())
  8996.                     return;
  8997.             }
  8998.             if (character.isSkillObject()) {
  8999.                 const skillObject = character.skillObject();
  9000.                 if (!this.checkTargetBattler(skillObject.userBattler(), skillObject.skill()))
  9001.                     return;
  9002.                 skillObject.applyDamageEffectToBattler(this, skillObject.skill());
  9003.             }
  9004.         }
  9005.         recvDamageProcessByBattlerCharacter(character) {
  9006.             if (character.battler().isDead())
  9007.                 return;
  9008.             if (character instanceof Game_Event) {
  9009.                 if (character.isErased())
  9010.                     return;
  9011.             }
  9012.             if (!this.checkOpponent(character.battler()))
  9013.                 return;
  9014.             const skillId = character.battler().collideAttackSkillId();
  9015.             if (skillId > 0) {
  9016.                 const arpgSkill = new ARPG_Skill("skill", skillId);
  9017.                 character.battler().applyCollideDamageEffectToTarget(this, arpgSkill);
  9018.             }
  9019.         }
  9020.         skillCancel() {
  9021.             if (this._chantComponent) {
  9022.                 this._chantComponent.end();
  9023.                 this._chantComponent = void 0;
  9024.             }
  9025.             this.endSkillActivation();
  9026.             if (this._useSkillProcessor)
  9027.                 this._useSkillProcessor.cancel();
  9028.         }
  9029.         skillCancelWhenRecvDamage(result) {
  9030.             if (this.isDead()) {
  9031.                 this.skillCancel();
  9032.             } else {
  9033.                 if (!this.isDamageSkillCancelEnabled())
  9034.                     return;
  9035.                 this._totalDamageWhenUsingSkill += result.hpDamageValue();
  9036.                 const rate = this._totalDamageWhenUsingSkill / this.mhp;
  9037.                 if (rate >= this.arpgParameters().skillCancelDamageRate) {
  9038.                     this.skillCancel();
  9039.                 }
  9040.             }
  9041.         }
  9042.         checkTargetBattler(user, arpgSkill) {
  9043.             if (this.isActor()) {
  9044.                 return this.checkTargetActor(user, arpgSkill);
  9045.             } else if (this.isEnemy()) {
  9046.                 return this.checkTargetEnemy(user, arpgSkill);
  9047.             }
  9048.             return false;
  9049.         }
  9050.         checkTargetEnemy(user, arpgSkill) {
  9051.             if (arpgSkill.isForEveryone()) {
  9052.                 return true;
  9053.             } else if (user.isActor() && arpgSkill.isForOpponent()) {
  9054.                 return true;
  9055.             } else if (user.isEnemy() && arpgSkill.isForFriend()) {
  9056.                 return true;
  9057.             }
  9058.             return false;
  9059.         }
  9060.         checkTargetActor(user, arpgSkill) {
  9061.             if (arpgSkill.isForEveryone()) {
  9062.                 return true;
  9063.             } else if (user.isEnemy() && arpgSkill.isForOpponent()) {
  9064.                 return true;
  9065.             } else if (user.isActor() && arpgSkill.isForFriend()) {
  9066.                 return true;
  9067.             }
  9068.             return false;
  9069.         }
  9070.     };
  9071.     var ARPG_UseSkillProcessor = class extends Processor {
  9072.         constructor(battler, skill) {
  9073.             super();
  9074.             this._canceled = false;
  9075.             this._battler = battler;
  9076.             this._skill = skill;
  9077.         }
  9078.         setup() {
  9079.             super.setup();
  9080.             this._battler.usingSkill = this._skill;
  9081.             this.makeUseSkillBackup();
  9082.         }
  9083.         *process() {
  9084.             if (!this._battler.checkConsumeCost(this._skill))
  9085.                 return;
  9086.             const actionComponent = ARPG_CustomManager.actionComponent(this._battler, this._skill);
  9087.             if (actionComponent) {
  9088.                 this.addComponent(actionComponent);
  9089.                 yield* this.waitComponent(actionComponent);
  9090.             }
  9091.         }
  9092.         cancel() {
  9093.             this._canceled = true;
  9094.             this.end(true);
  9095.         }
  9096.         terminate() {
  9097.             super.terminate();
  9098.             if (this._battler.isActor()) {
  9099.                 if (!this._canceled && !this._battler.isSkillActivating()) {
  9100.                     SoundManager.playBuzzer();
  9101.                 }
  9102.             }
  9103.             this._battler.endSkillActivation();
  9104.             this._battler.usingSkill = void 0;
  9105.             this.restoreUseSkillBackup();
  9106.         }
  9107.         makeUseSkillBackup() {
  9108.             this._backup = {
  9109.                 moveSpeed: this.user().moveSpeed(),
  9110.                 dpf: this.user()._dpf,
  9111.                 characterName: this.user().characterName(),
  9112.                 characterIndex: this.user().characterIndex(),
  9113.                 directionFixed: this.user().isDirectionFixed()
  9114.             };
  9115.         }
  9116.         restoreUseSkillBackup() {
  9117.             this.user().setMoveSpeed(this._backup.moveSpeed);
  9118.             this.user().setDpf(this._backup.dpf);
  9119.             this.user().setImage(this._backup.characterName, this._backup.characterIndex);
  9120.             this.user().setDirectionFix(this._backup.directionFixed);
  9121.         }
  9122.     };
  9123.  
  9124.     // ts/ARPG_Core/BattlerDeadComponent.ts
  9125.     var BattlerDeadComponent = class extends Component {
  9126.         constructor(deadProcessComponent) {
  9127.             super();
  9128.             this._deadProcessComponent = deadProcessComponent;
  9129.         }
  9130.         start() {
  9131.             super.start();
  9132.             const character = this.user();
  9133.             if (character instanceof Game_Player) {
  9134.                 character.stopMoveByInput("dead");
  9135.             } else if (character instanceof Game_Event) {
  9136.                 character.interpreter()?.lock("dead");
  9137.                 character.stopSelfMovement("dead");
  9138.             }
  9139.             character.cancelAcceleration();
  9140.             character.cancelMove();
  9141.             if (character._moveRoute) {
  9142.                 character.processRouteEnd();
  9143.             }
  9144.             if (this._deadProcessComponent)
  9145.                 this.addComponent(this._deadProcessComponent);
  9146.         }
  9147.         update() {
  9148.             super.update();
  9149.             if (!this._deadProcessComponent || this._deadProcessComponent.isTerminated()) {
  9150.                 this.end();
  9151.             }
  9152.         }
  9153.         terminate() {
  9154.             super.terminate();
  9155.             const character = this.user();
  9156.             if (character instanceof Game_Player) {
  9157.                 character.resumeMoveByInput("dead");
  9158.             } else if (character instanceof Game_Event) {
  9159.                 character.interpreter()?.unlock("dead");
  9160.                 character.resumeSelfMovement("dead");
  9161.             }
  9162.         }
  9163.     };
  9164.  
  9165.     // ts/ARPG_Core/ARPG_Actor.ts
  9166.     var ARPG_Actor = class extends ARPG_Battler {
  9167.         constructor(actorId) {
  9168.             super();
  9169.             this._actorId = actorId;
  9170.         }
  9171.         battler() {
  9172.             return $gameActors.actor(this._actorId);
  9173.         }
  9174.         actor() {
  9175.             return this.battler();
  9176.         }
  9177.         actorId() {
  9178.             return this._actorId;
  9179.         }
  9180.         name() {
  9181.             return this.actor().name();
  9182.         }
  9183.         arpgParameters() {
  9184.             return this.actor().arpgParameters();
  9185.         }
  9186.         isActor() {
  9187.             return true;
  9188.         }
  9189.         checkOpponent(battler) {
  9190.             return battler.isEnemy();
  9191.         }
  9192.         changeActor(actorId) {
  9193.             this._actorId = actorId;
  9194.             this.requestRefreshShortcutWindowHook();
  9195.         }
  9196.         makeRecvDamageComponent(result) {
  9197.             const recvDamageComponent = ARPG_CustomManager.actorRecvDamageComponent(this, result, result.guardResult());
  9198.             let damageComponent;
  9199.             if (this.isAlive()) {
  9200.                 damageComponent = recvDamageComponent;
  9201.             } else {
  9202.                 const deadComponent = new BattlerDeadComponent(ARPG_CustomManager.actorDeadComponent(this, result));
  9203.                 damageComponent = new ChainComponent([recvDamageComponent, deadComponent, this.onDead.bind(this)]);
  9204.             }
  9205.             return damageComponent;
  9206.         }
  9207.         onDead() {
  9208.             $gameMap.arpgBattleManager()?.deadActor(this);
  9209.         }
  9210.         weaponActionSkillIds() {
  9211.             const weapons = this.actor().weapons();
  9212.             return weapons.map((weapon) => {
  9213.                 const metaSkill = weapon.meta.skill;
  9214.                 if (typeof metaSkill === "string") {
  9215.                     let skillId;
  9216.                     const strSkill = metaSkill.replace(/\s/, "");
  9217.                     if (strSkill.match(/^\d+$/)) {
  9218.                         skillId = parseInt(strSkill);
  9219.                     } else {
  9220.                         skillId = ARPG_Utils.searchSkillId(strSkill);
  9221.                     }
  9222.                     if (skillId && skillId > 0)
  9223.                         return skillId;
  9224.                 }
  9225.                 return this.normalAttackSkillId();
  9226.             });
  9227.         }
  9228.         normalAttackSkillId() {
  9229.             if (ARPG_CorePluginParams.ActorSetting.NormalAttackSkillId == null)
  9230.                 return 1;
  9231.             return ARPG_CorePluginParams.ActorSetting.NormalAttackSkillId;
  9232.         }
  9233.         onGuardStart() {
  9234.             super.onGuardStart();
  9235.             const component = ARPG_CustomManager.actorGuardStart(this);
  9236.             if (component)
  9237.                 this.addComponent(component);
  9238.         }
  9239.         onGuardEnd() {
  9240.             super.onGuardEnd();
  9241.             const component = ARPG_CustomManager.actorGuardEnd(this);
  9242.             if (component)
  9243.                 this.addComponent(component);
  9244.         }
  9245.     };
  9246.  
  9247.     // ts/ARPG_Core/ARPG_CharacterTempData.ts
  9248.     var ARPG_CharacterTempData = class {
  9249.         constructor() {
  9250.             this.lastARPGMode = false;
  9251.         }
  9252.     };
  9253.  
  9254.     // ts/ARPG_Core/CharacterBlowAwayProcessor.ts
  9255.     var CharacterBlowAwayProcessor = class extends Processor {
  9256.         constructor(deg, initialVelocity, duration) {
  9257.             super();
  9258.             this._deg = deg;
  9259.             this._initialVelocity = initialVelocity;
  9260.             this._duration = duration;
  9261.         }
  9262.         start() {
  9263.             super.start();
  9264.             const character = this.user();
  9265.             if (character.isBattler()) {
  9266.                 character.battler().skillCancel();
  9267.             }
  9268.             if (character instanceof Game_Event) {
  9269.                 character.interpreter()?.lock("knockback");
  9270.                 character.stopSelfMovement("knockback");
  9271.             } else if (character instanceof Game_Player) {
  9272.                 character.stopMoveByInput("knockback");
  9273.             }
  9274.             character.cancelAcceleration();
  9275.             character.cancelMove();
  9276.             if (character._moveRoute) {
  9277.                 character.processRouteEnd();
  9278.             }
  9279.         }
  9280.         *process() {
  9281.             const character = this.user();
  9282.             const tmpMoveSpeed = character.moveSpeed();
  9283.             const tmpDpf = character._dpf;
  9284.             const tmpMaxAcceleration = character._maxAcceleration;
  9285.             const tmpAccelerationPlus = character._accelerationPlus;
  9286.             const tmpIntertia = character._inertia;
  9287.             const tmpDirFixed = character.isDirectionFixed();
  9288.             character.setDirectionFix(true);
  9289.             character.setDpf(0.1);
  9290.             character.setAcc(0, 0);
  9291.             for (let i = 0; i < this._duration; i++) {
  9292.                 const dpf = this._initialVelocity - i * (this._initialVelocity / this._duration);
  9293.                 character.setDpf(dpf);
  9294.                 character.dotMoveByDeg(this._deg.value);
  9295.                 yield;
  9296.             }
  9297.             character.setDirectionFix(tmpDirFixed);
  9298.             character.setMoveSpeed(tmpMoveSpeed);
  9299.             character.setDpf(tmpDpf);
  9300.             character.setAcc(tmpMaxAcceleration, tmpAccelerationPlus);
  9301.             character.setInertia(tmpIntertia);
  9302.         }
  9303.         terminate() {
  9304.             super.terminate();
  9305.             const character = this.user();
  9306.             if (character instanceof Game_Event) {
  9307.                 character.interpreter()?.unlock("knockback");
  9308.                 character.resumeSelfMovement("knockback");
  9309.             } else if (character instanceof Game_Player) {
  9310.                 character.resumeMoveByInput("knockback");
  9311.             }
  9312.         }
  9313.     };
  9314.  
  9315.     // ts/ARPG_Core/CharacterActionWaitProcessor.ts
  9316.     var CharacterActionWaitProcessor = class extends Processor {
  9317.         constructor(duration) {
  9318.             super();
  9319.             this._duration = duration;
  9320.         }
  9321.         start() {
  9322.             super.start();
  9323.             const character = this.user();
  9324.             if (character instanceof Game_Event) {
  9325.                 character.interpreter()?.lock("stop");
  9326.                 character.stopSelfMovement("stop");
  9327.             } else if (character instanceof Game_Player) {
  9328.                 character.stopMoveByInput("stop");
  9329.             }
  9330.             character.cancelAcceleration();
  9331.             character.cancelMove();
  9332.             if (character._moveRoute) {
  9333.                 character.processRouteEnd();
  9334.             }
  9335.         }
  9336.         *process() {
  9337.             yield* this.waitProcess(this._duration);
  9338.         }
  9339.         terminate() {
  9340.             super.terminate();
  9341.             const character = this.user();
  9342.             if (character instanceof Game_Event) {
  9343.                 character.interpreter()?.unlock("stop");
  9344.                 character.resumeSelfMovement("stop");
  9345.             } else if (character instanceof Game_Player) {
  9346.                 character.resumeMoveByInput("stop");
  9347.             }
  9348.         }
  9349.     };
  9350.  
  9351.     // ts/ARPG_Core/Game_Character.ts
  9352.     var _Game_Character_Mixin = class extends Game_Character {
  9353.         update() {
  9354.             if ($gameMap.isEnabledARPGMode()) {
  9355.                 if (!this.arpgTempData().lastARPGMode) {
  9356.                     this.arpgTempData().lastARPGMode = true;
  9357.                     this.startARPGProcess();
  9358.                 }
  9359.             } else {
  9360.                 if (this.arpgTempData().lastARPGMode) {
  9361.                     this.arpgTempData().lastARPGMode = false;
  9362.                     this.endARPGProcess();
  9363.                 }
  9364.             }
  9365.             this.arpgTempData().componentRunner?.prepareUpdate();
  9366.             _Game_Character_Mixin._update.call(this);
  9367.             this.arpgTempData().componentRunner?.update();
  9368.         }
  9369.         isInTheScreen(xMargin, yMargin) {
  9370.             const gw = Graphics.width;
  9371.             const gh = Graphics.height;
  9372.             const tw = $gameMap.tileWidth();
  9373.             const th = $gameMap.tileHeight();
  9374.             const px = this.scrolledX() * tw + tw / 2 - gw / 2;
  9375.             const py = this.scrolledY() * th + th / 2 - gh / 2;
  9376.             const dw = gw / 2 + xMargin * tw;
  9377.             const dh = gh / 2 + yMargin * th;
  9378.             return px >= -dw && px <= dw && py >= -dh && py <= dh;
  9379.         }
  9380.         addDisableMoveReason(reason) {
  9381.             if (this._disableMoveReason == null) {
  9382.                 this._disableMoveReason = [reason];
  9383.             } else {
  9384.                 this._disableMoveReason = [...new Set(this._disableMoveReason.concat([reason]))];
  9385.             }
  9386.         }
  9387.         removeDisableMoveReason(reason) {
  9388.             if (this._disableMoveReason != null)
  9389.                 this._disableMoveReason = this._disableMoveReason.filter((r) => r !== reason);
  9390.         }
  9391.         isDisableMove() {
  9392.             if (this._disableMoveReason == null)
  9393.                 return false;
  9394.             return this._disableMoveReason.length > 0;
  9395.         }
  9396.         setDirection(d) {
  9397.             if (!this.isDisableMove()) {
  9398.                 _Game_Character_Mixin._setDirection.call(this, d);
  9399.             }
  9400.         }
  9401.         moveCancel() {
  9402.             this.mover().cancelMove();
  9403.             this.processRouteEnd();
  9404.         }
  9405.         isNoCheckMapValid() {
  9406.             if (this._noCheckMapValid == null)
  9407.                 return false;
  9408.             return this._noCheckMapValid;
  9409.         }
  9410.         setNoCheckMapValid(noCheckMapValid) {
  9411.             this._noCheckMapValid = noCheckMapValid;
  9412.         }
  9413.         createArpgTempData() {
  9414.             const tempData = new ARPG_CharacterTempData();
  9415.             return tempData;
  9416.         }
  9417.         arpgTempData() {
  9418.             return $gameTemp.arpgCharacterTempData(this);
  9419.         }
  9420.         startARPGProcess() {
  9421.         }
  9422.         endARPGProcess() {
  9423.         }
  9424.         battler() {
  9425.             const battler = this.arpgTempData().battler;
  9426.             if (!battler)
  9427.                 throw new Error("_battler is undefined.");
  9428.             return battler;
  9429.         }
  9430.         isBattler() {
  9431.             return !!this.arpgTempData().battler;
  9432.         }
  9433.         isSkillObject() {
  9434.             return !!this.arpgTempData().skillObject;
  9435.         }
  9436.         isFieldObject() {
  9437.             return !!this.arpgTempData().fieldObject;
  9438.         }
  9439.         skillObject() {
  9440.             const skillObject = this.arpgTempData().skillObject;
  9441.             if (!skillObject)
  9442.                 throw new Error("skillObject is undefined.");
  9443.             return skillObject;
  9444.         }
  9445.         fieldObject() {
  9446.             const fieldObject = this.arpgTempData().fieldObject;
  9447.             if (!fieldObject)
  9448.                 throw new Error("fieldObject is undefined.");
  9449.             return fieldObject;
  9450.         }
  9451.         isNeedCharacterHpGauge() {
  9452.             if (!this.isBattler())
  9453.                 return false;
  9454.             if (this.battler().isEnemy()) {
  9455.                 const enemy = this.battler();
  9456.                 if (enemy.isNeedCharacterHpGauge())
  9457.                     return true;
  9458.             }
  9459.             return false;
  9460.         }
  9461.         isCharacterHpGaugeVisibled() {
  9462.             if (!this.isBattler())
  9463.                 return false;
  9464.             if (this.battler().isEnemy()) {
  9465.                 const enemy = this.battler();
  9466.                 if (enemy.isCharacterHpGaugeVisibled())
  9467.                     return true;
  9468.             }
  9469.             return false;
  9470.         }
  9471.         hpGaugeColor1() {
  9472.             if (!this.isBattler())
  9473.                 return void 0;
  9474.             if (this.battler().isEnemy()) {
  9475.                 const enemy = this.battler();
  9476.                 return enemy.normalHpGaugeOption()?.hpGaugeColor1;
  9477.             }
  9478.             return void 0;
  9479.         }
  9480.         hpGaugeColor2() {
  9481.             if (!this.isBattler())
  9482.                 return void 0;
  9483.             if (this.battler().isEnemy()) {
  9484.                 const enemy = this.battler();
  9485.                 return enemy.normalHpGaugeOption()?.hpGaugeColor2;
  9486.             }
  9487.             return void 0;
  9488.         }
  9489.         hpGaugePosition() {
  9490.             if (this.isBattler() && this.battler().isEnemy()) {
  9491.                 const enemy = this.battler();
  9492.                 const hpGaugePosition = enemy.normalHpGaugeOption()?.hpGaugePosition;
  9493.                 if (hpGaugePosition)
  9494.                     return hpGaugePosition;
  9495.             }
  9496.             return "up";
  9497.         }
  9498.         hpGaugeYOffset() {
  9499.             if (this.isBattler() && this.battler().isEnemy()) {
  9500.                 const enemy = this.battler();
  9501.                 const hpGaugeYOffset = enemy.normalHpGaugeOption()?.hpGaugeYOffset;
  9502.                 if (hpGaugeYOffset)
  9503.                     return hpGaugeYOffset;
  9504.             }
  9505.             return -8;
  9506.         }
  9507.         hpGaugeHeight() {
  9508.             if (this.isBattler() && this.battler().isEnemy()) {
  9509.                 const enemy = this.battler();
  9510.                 const hpGaugeHeight = enemy.normalHpGaugeOption()?.hpGaugeHeight;
  9511.                 if (hpGaugeHeight)
  9512.                     return hpGaugeHeight;
  9513.             }
  9514.             return 6;
  9515.         }
  9516.         setupActor(actorId) {
  9517.             this.arpgTempData().battler?.end();
  9518.             const battler = new ARPG_Actor(actorId);
  9519.             this.arpgTempData().battler = battler;
  9520.             this.addComponent(battler);
  9521.             for (const hitBoxParam of ARPG_CorePluginParams.ActorSetting.ActorHitBox.DamageHitBoxList) {
  9522.                 const rect = new Rectangle(hitBoxParam.X, hitBoxParam.Y, hitBoxParam.Width, hitBoxParam.Height);
  9523.                 const hitBox = new HitBox("damage", this, rect, ARPG_CorePluginParams.HitBoxSetting.DamageHitBoxColor);
  9524.                 this.battler().damageHitChecker.addHitBox(hitBox);
  9525.             }
  9526.         }
  9527.         moveTowardNearActor() {
  9528.             const actorCharacters = [$gamePlayer];
  9529.             let minFar = 65535;
  9530.             let minFarActor = null;
  9531.             for (const character of actorCharacters) {
  9532.                 const far = this.calcFar(character);
  9533.                 if (far <= minFar) {
  9534.                     minFar = far;
  9535.                     minFarActor = character;
  9536.                 }
  9537.             }
  9538.             if (minFarActor)
  9539.                 this.moveTowardCharacter(minFarActor);
  9540.         }
  9541.         moveAwayNearActor() {
  9542.             const { character } = ARPG_Utils.searchNearBattler(this, "opponent");
  9543.             if (character)
  9544.                 this.moveAwayFromCharacter(character);
  9545.         }
  9546.         addComponent(component) {
  9547.             let componentRunner = this.arpgTempData().componentRunner;
  9548.             if (!componentRunner) {
  9549.                 componentRunner = new ComponentRunner(this);
  9550.                 this.arpgTempData().componentRunner = componentRunner;
  9551.             }
  9552.             componentRunner.addComponent(component);
  9553.         }
  9554.         removeComponent(component) {
  9555.             let componentRunner = this.arpgTempData().componentRunner;
  9556.             if (!componentRunner) {
  9557.                 componentRunner = new ComponentRunner(this);
  9558.                 this.arpgTempData().componentRunner = componentRunner;
  9559.             }
  9560.             componentRunner.removeComponent(component);
  9561.         }
  9562.         hasComponent(component) {
  9563.             let componentRunner = this.arpgTempData().componentRunner;
  9564.             if (!componentRunner) {
  9565.                 componentRunner = new ComponentRunner(this);
  9566.                 this.arpgTempData().componentRunner = componentRunner;
  9567.             }
  9568.             return componentRunner.hasComponent(component);
  9569.         }
  9570.         hasComponentByClass(componentClass) {
  9571.             let componentRunner = this.arpgTempData().componentRunner;
  9572.             if (!componentRunner) {
  9573.                 componentRunner = new ComponentRunner(this);
  9574.                 this.arpgTempData().componentRunner = componentRunner;
  9575.             }
  9576.             return componentRunner.hasComponentByClass(componentClass);
  9577.         }
  9578.         startBlowAway(deg, initialVelocity, duration) {
  9579.             if (this.isBlowingAway())
  9580.                 return;
  9581.             this.addComponent(new CharacterBlowAwayProcessor(deg, initialVelocity, duration));
  9582.         }
  9583.         isBlowingAway() {
  9584.             return this.hasComponentByClass(CharacterBlowAwayProcessor);
  9585.         }
  9586.         startActionWait(duration) {
  9587.             if (this.isBlowingAway())
  9588.                 return;
  9589.             this.addComponent(new CharacterActionWaitProcessor(duration));
  9590.         }
  9591.         isActionWaiting() {
  9592.             return this.hasComponentByClass(CharacterActionWaitProcessor);
  9593.         }
  9594.         onPress() {
  9595.         }
  9596.         onClick() {
  9597.             $gameMap.touchCharacter(this);
  9598.         }
  9599.     };
  9600.     var Game_Character_Mixin = _Game_Character_Mixin;
  9601.     Game_Character_Mixin._update = Game_Character.prototype.update;
  9602.     Game_Character_Mixin._setDirection = Game_Character.prototype.setDirection;
  9603.     mixin(Game_Character, Game_Character_Mixin);
  9604.  
  9605.     // ts/ARPG_Core/ARPG_BattleManager.ts
  9606.     var ACTOR_DEAD_CHANGE_NO_DAMAGE_FRAME = 60;
  9607.     var ARPG_BattleManager = class extends Component {
  9608.         constructor() {
  9609.             super(...arguments);
  9610.             this._showSkillNameCount = 0;
  9611.         }
  9612.         deadActor(actor) {
  9613.             const aliveMembers = $gameParty.aliveMembers();
  9614.             if (aliveMembers.length === 0) {
  9615.                 this.gameover();
  9616.             } else {
  9617.                 $gameTemp.requestChangeNextActor({ force: true });
  9618.             }
  9619.             $gamePlayer.battler().startNoDamage(ACTOR_DEAD_CHANGE_NO_DAMAGE_FRAME);
  9620.         }
  9621.         gameover() {
  9622.             const gameoverComponent = ARPG_CustomManager.gameoverComponent();
  9623.             if (gameoverComponent) {
  9624.                 this.addComponent(gameoverComponent);
  9625.             } else {
  9626.                 SceneManager.goto(Scene_Gameover);
  9627.             }
  9628.         }
  9629.         showSkillNameWindow(user, skill) {
  9630.             const w = 320;
  9631.             const h = 64;
  9632.             const x = Graphics.boxWidth / 2 - w / 2;
  9633.             const y = 0;
  9634.             const rect = new Rectangle(x, y, w, h);
  9635.             const skillData = skill.data();
  9636.             const text1 = skillData.message1.format(user.name(), skillData.name);
  9637.             $gameMap.showCommonMessageWindow(text1, rect);
  9638.             if (skillData.message2 && skillData.message2 != "") {
  9639.                 const text2 = skillData.message2.format(user.name(), skillData.name);
  9640.                 $gameMap.showCommonMessageWindow(text2, rect);
  9641.             }
  9642.             if (this._showSkillNameCount === 0) {
  9643.                 $gameTemp.arpgGlobalTempData().skillNameWindowController.startManualWait();
  9644.             }
  9645.             this._showSkillNameCount++;
  9646.         }
  9647.         endShowSkillNameWindow() {
  9648.             if (this._showSkillNameCount > 0) {
  9649.                 this._showSkillNameCount--;
  9650.                 if (this._showSkillNameCount === 0) {
  9651.                     $gameTemp.arpgGlobalTempData().skillNameWindowController.endManualWait();
  9652.                 }
  9653.             }
  9654.         }
  9655.     };
  9656.  
  9657.     // ts/ARPG_Core/TransparentObject.ts
  9658.     var TransparentObject = class extends Game_Character {
  9659.         constructor(...args) {
  9660.             super(...args);
  9661.         }
  9662.         initialize(...args) {
  9663.             super.initialize();
  9664.             this.setNoCheckMapValid(true);
  9665.             this.setEnableWallSlide(false);
  9666.             this._remainFar = 0;
  9667.             this._slideLengthX = 0;
  9668.             this._slideLengthY = 0;
  9669.         }
  9670.         castTo(deg, far) {
  9671.             let loopCount = 0;
  9672.             this._remainFar = far;
  9673.             while (true) {
  9674.                 if (++loopCount > 255)
  9675.                     throw new Error("endless loop error");
  9676.                 const pos = this.positionPoint();
  9677.                 if (!$gameMap.isValid(pos.x, pos.y)) {
  9678.                     return false;
  9679.                 }
  9680.                 this.dotMoveByDeg(deg.value);
  9681.                 if (!this.isMovementSucceeded()) {
  9682.                     return true;
  9683.                 }
  9684.                 if (this._remainFar <= 0) {
  9685.                     this.dotMoveByDeg(deg.value);
  9686.                     if (!this.isMovementSucceeded()) {
  9687.                         return true;
  9688.                     } else {
  9689.                         return false;
  9690.                     }
  9691.                 }
  9692.             }
  9693.         }
  9694.         distancePerFrame() {
  9695.             return 1;
  9696.         }
  9697.         moveCallback(moved, dpf) {
  9698.             super.moveCallback(moved, dpf);
  9699.             if (moved) {
  9700.                 this._remainFar -= dpf;
  9701.             }
  9702.         }
  9703.         checkCollisionTargetCharacter(x, y, d, character) {
  9704.             if (character instanceof Game_Player) {
  9705.                 return this.checkCollisionTargetPlayer(x, y, d, character);
  9706.             } else if (character instanceof Game_Follower) {
  9707.                 if ($gamePlayer.followers().isVisible()) {
  9708.                     return this.checkCollisionTargetFollower(x, y, d, character);
  9709.                 }
  9710.             } else if (character instanceof Game_Event) {
  9711.                 return this.checkCollisionTargetEvent(x, y, d, character);
  9712.             } else if (character instanceof Game_Vehicle) {
  9713.                 return this.checkCollisionTargetVehicle(x, y, d, character);
  9714.             }
  9715.             return false;
  9716.         }
  9717.     };
  9718.  
  9719.     // ts/ARPG_Core/Game_Map.ts
  9720.     var _Game_Map_initialize = Game_Map.prototype.initialize;
  9721.     Game_Map.prototype.initialize = function() {
  9722.         _Game_Map_initialize.call(this);
  9723.         this._arpgMode = false;
  9724.         this._stopped = false;
  9725.     };
  9726.     var _Game_Map_setup = Game_Map.prototype.setup;
  9727.     Game_Map.prototype.setup = function(mapId) {
  9728.         _Game_Map_setup.call(this, mapId);
  9729.         this.endARPGMode();
  9730.     };
  9731.     Game_Map.prototype.outOfMap = function(character) {
  9732.         const pos = character.positionPoint();
  9733.         return pos.x + character.width() < 0 || pos.y > this.width() || (pos.y + character.height() < 0 || pos.y > this.height());
  9734.     };
  9735.     Game_Map.prototype.stop = function() {
  9736.         return this._stopped = true;
  9737.     };
  9738.     Game_Map.prototype.resume = function() {
  9739.         return this._stopped = false;
  9740.     };
  9741.     Game_Map.prototype.isStopped = function() {
  9742.         return this._stopped;
  9743.     };
  9744.     Game_Map.prototype.startARPGMode = function() {
  9745.         if (!this._arpgMode) {
  9746.             const controlCharacter = $gameTemp.arpgGlobalTempData().controlCharacter;
  9747.             if (!this._arpgBattleManager) {
  9748.                 this._arpgBattleManager = new ARPG_BattleManager();
  9749.                 controlCharacter.addComponent(this._arpgBattleManager);
  9750.             }
  9751.             this._arpgMode = true;
  9752.         }
  9753.         $gameSwitches.setValue(ARPG_CorePluginParams.EnableARPGSwitchId, true);
  9754.     };
  9755.     Game_Map.prototype.endARPGMode = function() {
  9756.         if (this._arpgMode) {
  9757.             this._arpgBattleManager?.end();
  9758.             this._arpgBattleManager = void 0;
  9759.             $gameTemp.arpgGlobalTempData().bossHpGaugeTargetEnemy = void 0;
  9760.             this._arpgMode = false;
  9761.         }
  9762.         $gameSwitches.setValue(ARPG_CorePluginParams.EnableARPGSwitchId, false);
  9763.     };
  9764.     Game_Map.prototype.isEnabledARPGMode = function() {
  9765.         return this._arpgMode;
  9766.     };
  9767.     Game_Map.prototype.arpgBattleManager = function() {
  9768.         return this._arpgBattleManager;
  9769.     };
  9770.     var _Game_Map_allCharacters = Game_Map.prototype.allCharacters;
  9771.     Game_Map.prototype.allCharacters = function() {
  9772.         const characters = _Game_Map_allCharacters.call(this);
  9773.         for (const hitBox of this.allHitBoxs()) {
  9774.             characters.add(hitBox);
  9775.         }
  9776.         if (this._transparentObject)
  9777.             characters.add(this._transparentObject);
  9778.         return characters;
  9779.     };
  9780.     Game_Map.prototype.allHitBoxs = function() {
  9781.         const hitBoxs = /* @__PURE__ */ new Set();
  9782.         if ($gamePlayer.isBattler()) {
  9783.             for (const hitBox of $gamePlayer.battler().damageHitChecker.hitBoxs) {
  9784.                 hitBoxs.add(hitBox);
  9785.             }
  9786.             for (const hitBox of $gamePlayer.battler().attackHitChecker.hitBoxs) {
  9787.                 hitBoxs.add(hitBox);
  9788.             }
  9789.         }
  9790.         for (const event of this.events()) {
  9791.             if (event.isBattler()) {
  9792.                 const battler = event.battler();
  9793.                 for (const hitBox of battler.damageHitChecker.hitBoxs) {
  9794.                     hitBoxs.add(hitBox);
  9795.                 }
  9796.                 for (const hitBox of battler.attackHitChecker.hitBoxs) {
  9797.                     hitBoxs.add(hitBox);
  9798.                 }
  9799.                 for (const customHitChecker of battler.customHitCheckers.values()) {
  9800.                     for (const hitBox of customHitChecker.hitBoxs) {
  9801.                         hitBoxs.add(hitBox);
  9802.                     }
  9803.                 }
  9804.             } else if (event.isSkillObject()) {
  9805.                 const skillObject = event.skillObject();
  9806.                 for (const hitBox of skillObject.attackHitChecker.hitBoxs) {
  9807.                     hitBoxs.add(hitBox);
  9808.                 }
  9809.                 for (const customHitChecker of skillObject.customHitCheckers.values()) {
  9810.                     for (const hitBox of customHitChecker.hitBoxs) {
  9811.                         hitBoxs.add(hitBox);
  9812.                     }
  9813.                 }
  9814.             } else if (event.isFieldObject()) {
  9815.                 const fieldObject = event.fieldObject();
  9816.                 for (const customHitChecker of fieldObject.customHitCheckers.values()) {
  9817.                     for (const hitBox of customHitChecker.hitBoxs) {
  9818.                         hitBoxs.add(hitBox);
  9819.                     }
  9820.                 }
  9821.             }
  9822.         }
  9823.         return hitBoxs;
  9824.     };
  9825.     Game_Map.prototype.showCommonMessageWindow = function(text, rect, opt = {}) {
  9826.         $gameTemp.arpgGlobalTempData().skillNameWindowController.showWindow(text, rect, opt);
  9827.     };
  9828.     Game_Map.prototype.startSceneIndication = function(scene) {
  9829.         let skillNameWindowController = $gameTemp.arpgGlobalTempData().skillNameWindowController;
  9830.         const createWindowCallback = scene.createSkillNameWindowCallback.bind(scene);
  9831.         const deleteWindowCallback = scene.deleteSkillNameWindowCallback.bind(scene);
  9832.         skillNameWindowController.sceneStart(createWindowCallback, deleteWindowCallback);
  9833.         if ($gamePlayer.isBattler()) {
  9834.             $gamePlayer.battler().changeActor($gameParty.leader().actorId());
  9835.         } else {
  9836.             $gamePlayer.setupActor($gameParty.leader().actorId());
  9837.         }
  9838.     };
  9839.     Game_Map.prototype.terminateSceneIndication = function(scene) {
  9840.         $gameTemp.arpgGlobalTempData().skillNameWindowController?.sceneTerminate();
  9841.     };
  9842.     Game_Map.prototype.transparentObjectCastTo = function(pos, deg, far, opt = {}) {
  9843.         this._transparentObject = new TransparentObject();
  9844.         this._transparentObject.setPositionPoint(pos);
  9845.         if (opt.width)
  9846.             this._transparentObject.setWidth(opt.width);
  9847.         if (opt.height)
  9848.             this._transparentObject.setHeight(opt.height);
  9849.         const collided = this._transparentObject.castTo(deg, far);
  9850.         let result;
  9851.         if (collided)
  9852.             result = this._transparentObject.positionPoint();
  9853.         $gameTemp.removeUnusedCache();
  9854.         this._transparentObject = void 0;
  9855.         $gameTemp.removeUnusedCache();
  9856.         return result;
  9857.     };
  9858.  
  9859.     // ts/ARPG_Core/PlayerBehavior.ts
  9860.     var PlayerBehavior = class extends Component {
  9861.         constructor() {
  9862.             super(...arguments);
  9863.             this._attackProcess = new AttackProcess();
  9864.             this._guardProcess = new GuardProcess();
  9865.         }
  9866.         setup() {
  9867.             super.setup();
  9868.             this.addComponent(this._attackProcess);
  9869.             this.addComponent(this._guardProcess);
  9870.         }
  9871.         delayAttackable(delayTime) {
  9872.             this._attackProcess.delayAttackable(delayTime);
  9873.         }
  9874.     };
  9875.     var _AttackProcess = class extends Component {
  9876.         constructor() {
  9877.             super(...arguments);
  9878.             this._waitAttackTimer = new TimerComponent();
  9879.             this._delayAttackableTimer = new TimerComponent();
  9880.         }
  9881.         setup() {
  9882.             super.setup();
  9883.             this.addComponent(this._waitAttackTimer);
  9884.             this.addComponent(this._delayAttackableTimer);
  9885.         }
  9886.         delayAttackable(delayTime) {
  9887.             this._delayAttackableTimer.startTimer(delayTime);
  9888.         }
  9889.         update() {
  9890.             super.update();
  9891.             if ($gameMap.isEventRunning()) {
  9892.                 this._waitAttackTimer.stop();
  9893.             }
  9894.             if (this._waitAttackTimer.checkTimeout()) {
  9895.                 if (!$gameMap.isEventRunning()) {
  9896.                     const actor = this.user().battler();
  9897.                     const skillIds = actor.weaponActionSkillIds();
  9898.                     if (skillIds.length > 0)
  9899.                         actor.useSkill("skill", skillIds[0]);
  9900.                 }
  9901.             }
  9902.             if (!$gameMap.isEventRunning() && !this._delayAttackableTimer.isTimerRunning()) {
  9903.                 const keysym = ARPG_Utils.getKeySymbol("ActorNormalAttack");
  9904.                 if (keysym && Input.isTriggered(keysym)) {
  9905.                     this._waitAttackTimer.startTimer(_AttackProcess.WAIT_ATTACK_TIME);
  9906.                 }
  9907.             }
  9908.         }
  9909.     };
  9910.     var AttackProcess = _AttackProcess;
  9911.     AttackProcess.WAIT_ATTACK_TIME = 2;
  9912.     var GuardProcess = class extends Component {
  9913.         update() {
  9914.             super.update();
  9915.             if (this.user().battler().isGuarding()) {
  9916.                 const keysym = ARPG_Utils.getKeySymbol("ActorGuard");
  9917.                 if (!(keysym && Input.isPressed(keysym))) {
  9918.                     this.user().battler().endGuard("input");
  9919.                 }
  9920.             } else {
  9921.                 const keysym = ARPG_Utils.getKeySymbol("ActorGuard");
  9922.                 if (keysym && Input.isPressed(keysym)) {
  9923.                     this.user().battler().startGuard("input");
  9924.                 }
  9925.             }
  9926.         }
  9927.     };
  9928.  
  9929.     // ts/ARPG_Core/Game_Player.ts
  9930.     var _Game_Player_Mixin = class extends Game_Player {
  9931.         initMembers() {
  9932.             _Game_Player_Mixin._initMembers.call(this);
  9933.             this._stopMoveByInputReasons = [];
  9934.         }
  9935.         update(sceneActive) {
  9936.             if ($gameMap.isEnabledARPGMode()) {
  9937.                 if (!this._playerBehavior) {
  9938.                     this._playerBehavior = new PlayerBehavior();
  9939.                     this.addComponent(this._playerBehavior);
  9940.                 }
  9941.             } else {
  9942.                 this._playerBehavior?.end();
  9943.                 this._playerBehavior = void 0;
  9944.             }
  9945.             _Game_Player_Mixin._update.call(this, sceneActive);
  9946.             $gameParty.leader().updateStatesDuration();
  9947.         }
  9948.         onStartTargetSelect() {
  9949.             this.addDisableMoveReason("targetSelect");
  9950.         }
  9951.         onEndTargetSelect() {
  9952.             this.removeDisableMoveReason("targetSelect");
  9953.             this._playerBehavior.delayAttackable(2);
  9954.         }
  9955.         moveByInput() {
  9956.             if (this.isStoppedMoveByInput())
  9957.                 return;
  9958.             _Game_Player_Mixin._moveByInput.call(this);
  9959.         }
  9960.         stopMoveByInput(reason) {
  9961.             if (!this._stopMoveByInputReasons.includes(reason))
  9962.                 this._stopMoveByInputReasons.push(reason);
  9963.         }
  9964.         resumeMoveByInput(reason) {
  9965.             this._stopMoveByInputReasons = this._stopMoveByInputReasons.filter((r) => r !== reason);
  9966.         }
  9967.         isStoppedMoveByInput() {
  9968.             return this._stopMoveByInputReasons.length > 0;
  9969.         }
  9970.     };
  9971.     var Game_Player_Mixin = _Game_Player_Mixin;
  9972.     Game_Player_Mixin._initMembers = Game_Player.prototype.initMembers;
  9973.     Game_Player_Mixin._update = Game_Player.prototype.update;
  9974.     Game_Player_Mixin._moveByInput = Game_Player.prototype.moveByInput;
  9975.     mixin(Game_Player, Game_Player_Mixin);
  9976.  
  9977.     // ts/ARPG_Core/ARPG_BattlerParameters.ts
  9978.     var ARPG_BattlerParameters = class {
  9979.         constructor() {
  9980.             this._skillCancelDamageRate = 0;
  9981.             this._noDamageFlag = false;
  9982.             this._noAttackFlag = false;
  9983.         }
  9984.         get skillCancelDamageRate() {
  9985.             return this._skillCancelDamageRate;
  9986.         }
  9987.         set skillCancelDamageRate(value) {
  9988.             this._skillCancelDamageRate = value;
  9989.         }
  9990.         get justGuardFrame() {
  9991.             return this._justGuardFrame;
  9992.         }
  9993.         set justGuardFrame(value) {
  9994.             this._justGuardFrame = value;
  9995.         }
  9996.         get noDamageFlag() {
  9997.             return this._noDamageFlag;
  9998.         }
  9999.         set noDamageFlag(_noDamageFlag) {
  10000.             this._noDamageFlag = _noDamageFlag;
  10001.         }
  10002.         get noAttackFlag() {
  10003.             return this._noAttackFlag;
  10004.         }
  10005.         set noAttackFlag(_noAttackFlag) {
  10006.             this._noAttackFlag = _noAttackFlag;
  10007.         }
  10008.     };
  10009.  
  10010.     // ts/ARPG_Core/ARPG_Enemy.ts
  10011.     var ARPG_Enemy = class extends ARPG_Battler {
  10012.         constructor(enemyId, opt = {}) {
  10013.             super();
  10014.             this._needHpGauge = false;
  10015.             this._showHpGauge = true;
  10016.             this._defeated = false;
  10017.             this._arpgParameters = new ARPG_BattlerParameters();
  10018.             this._enemy = new Game_Enemy(enemyId, 0, 0);
  10019.             this._enemy.refresh();
  10020.             this._enemy.recoverAll();
  10021.             if (opt.collideAttackSkillId != null)
  10022.                 this.setCollideAttackSkillId(opt.collideAttackSkillId);
  10023.             if (opt.damageCommonEventId != null)
  10024.                 this._damageCommonEventId = opt.damageCommonEventId;
  10025.             if (opt.defeatEnemyCommonEventId != null)
  10026.                 this._defeatEnemyCommonEventId = opt.defeatEnemyCommonEventId;
  10027.         }
  10028.         update() {
  10029.             super.update();
  10030.             this.battler().updateStatesDuration();
  10031.         }
  10032.         battler() {
  10033.             return this._enemy;
  10034.         }
  10035.         enemy() {
  10036.             return this.battler();
  10037.         }
  10038.         name() {
  10039.             return this.enemy().battlerName();
  10040.         }
  10041.         arpgParameters() {
  10042.             return this._arpgParameters;
  10043.         }
  10044.         isEnemy() {
  10045.             return true;
  10046.         }
  10047.         checkOpponent(battler) {
  10048.             return battler.isActor();
  10049.         }
  10050.         exp() {
  10051.             return this._enemy.exp();
  10052.         }
  10053.         gold() {
  10054.             return this._enemy.gold();
  10055.         }
  10056.         isNeedCharacterHpGauge() {
  10057.             return this._needHpGauge;
  10058.         }
  10059.         isCharacterHpGaugeVisibled() {
  10060.             if (this.isDefeated())
  10061.                 return false;
  10062.             return this._showHpGauge;
  10063.         }
  10064.         setupNormalHpGauge(opt = {}) {
  10065.             this._needHpGauge = true;
  10066.             this._normalHpGaugeOption = {
  10067.                 hpGaugeColor1: opt.hpGaugeColor1,
  10068.                 hpGaugeColor2: opt.hpGaugeColor2,
  10069.                 hpGaugePosition: opt.hpGaugePosition,
  10070.                 hpGaugeYOffset: opt.hpGaugeYOffset,
  10071.                 hpGaugeHeight: opt.hpGaugeHeight
  10072.             };
  10073.         }
  10074.         setHpGaugeVisible(visible) {
  10075.             this._showHpGauge = visible;
  10076.         }
  10077.         normalHpGaugeOption() {
  10078.             return this._normalHpGaugeOption;
  10079.         }
  10080.         makeRecvDamageComponent(result) {
  10081.             const recvDamageComponent = ARPG_CustomManager.enemyRecvDamageComponent(this, result);
  10082.             let damageComponent;
  10083.             if (this.isAlive()) {
  10084.                 damageComponent = recvDamageComponent;
  10085.             } else {
  10086.                 const deadComponent = new BattlerDeadComponent(ARPG_CustomManager.enemyDefeatComponent(this, result));
  10087.                 damageComponent = new ChainComponent([recvDamageComponent, deadComponent, this.onDefeat.bind(this)]);
  10088.             }
  10089.             return damageComponent;
  10090.         }
  10091.         onDefeat() {
  10092.             this._defeated = true;
  10093.             const exp = this.exp();
  10094.             for (const actor of $gameParty.allMembers()) {
  10095.                 actor.gainExp(exp);
  10096.             }
  10097.             $gameParty.gainGold(this.gold());
  10098.         }
  10099.         isDefeated() {
  10100.             return this._defeated;
  10101.         }
  10102.         damageCommonEventId() {
  10103.             if (this._damageCommonEventId != null && this._damageCommonEventId > 0)
  10104.                 return this._damageCommonEventId;
  10105.             return ARPG_CorePluginParams.EnemySetting.DamageCommonEventId;
  10106.         }
  10107.         defeatEnemyCommonEventId() {
  10108.             if (this._defeatEnemyCommonEventId != null && this._defeatEnemyCommonEventId > 0)
  10109.                 return this._defeatEnemyCommonEventId;
  10110.             return ARPG_CorePluginParams.EnemySetting.DefeatEnemyCommonEventId;
  10111.         }
  10112.     };
  10113.  
  10114.     // ts/ARPG_Core/ARPG_SkillObject.ts
  10115.     var import_DotMoveSystem3 = __require("DotMoveSystem");
  10116.     var ARPG_SkillObject = class extends Component {
  10117.         constructor(skill, user) {
  10118.             super();
  10119.             this._attackHitChecker = new HitChecker("attack");
  10120.             this._customHitCheckers = /* @__PURE__ */ new Map();
  10121.             this._skillObjectPositionController = new SkillObjectPositionController(this);
  10122.             this._skill = skill;
  10123.             this._userBattler = user;
  10124.         }
  10125.         get attackHitChecker() {
  10126.             return this._attackHitChecker;
  10127.         }
  10128.         get customHitCheckers() {
  10129.             return this._customHitCheckers;
  10130.         }
  10131.         setup() {
  10132.             super.setup();
  10133.             this.addComponent(this._attackHitChecker);
  10134.             this.addComponent(this._skillObjectPositionController);
  10135.         }
  10136.         skill() {
  10137.             return this._skill;
  10138.         }
  10139.         userBattler() {
  10140.             return this._userBattler;
  10141.         }
  10142.         setAttackDeg(deg) {
  10143.             this._attackDeg = deg;
  10144.         }
  10145.         attackDeg() {
  10146.             return this._attackDeg;
  10147.         }
  10148.         isUserPositionSynchronized() {
  10149.             return this._skillObjectPositionController.isBusy();
  10150.         }
  10151.         setUserPositionSynchronize(synchronize) {
  10152.             if (synchronize) {
  10153.                 this._skillObjectPositionController.resume();
  10154.             } else {
  10155.                 this._skillObjectPositionController.stop();
  10156.             }
  10157.         }
  10158.         makeSkillObject(srcMapId, srcEventIdOrName, skill, x = 0, y = 0) {
  10159.             const event = $gameMap.makeDynamicEvent(srcMapId, srcEventIdOrName, x, y);
  10160.             if (skill == null) {
  10161.                 skill = this._skill;
  10162.             }
  10163.             event.setupSkillObject(skill.skillOrItem, skill.id, this._userBattler);
  10164.             let userKind = 0;
  10165.             let userEventId = 0;
  10166.             const userCharacter = this._userBattler.user();
  10167.             if (userCharacter instanceof Game_Player) {
  10168.                 userKind = 1;
  10169.             } else if (userCharacter instanceof Game_Event) {
  10170.                 userKind = 3;
  10171.                 userEventId = userCharacter.eventId();
  10172.             }
  10173.             if (ARPG_CorePluginParams.SkillObjectSetting.SkillObjectUserKindSelfVariableId > 0) {
  10174.                 event.setSelfVariableValue(ARPG_CorePluginParams.SkillObjectSetting.SkillObjectUserKindSelfVariableId, userKind);
  10175.             }
  10176.             if (ARPG_CorePluginParams.SkillObjectSetting.SkillObjectUserEventIdSelfVariableId > 0) {
  10177.                 event.setSelfVariableValue(ARPG_CorePluginParams.SkillObjectSetting.SkillObjectUserEventIdSelfVariableId, userEventId);
  10178.             }
  10179.             return event;
  10180.         }
  10181.         createEffect(subject, target, skill) {
  10182.             return new ARPG_Effect(subject, target, skill, this.attackDeg());
  10183.         }
  10184.         applyDamageEffectToBattler(battler, arpgSkill) {
  10185.             if (battler.isNoDamage())
  10186.                 return;
  10187.             const effect = this.createEffect(this.userBattler(), battler, arpgSkill);
  10188.             this.user().setExSelfSwitchValue(ARPG_CorePluginParams.SkillObjectSetting.CollisionDetectExSelfSwitchId, true);
  10189.             battler.recvDamage(effect);
  10190.         }
  10191.         hitFlagOn() {
  10192.             this.user().setExSelfSwitchValue(ARPG_CorePluginParams.SkillObjectSetting.CollisionDetectExSelfSwitchId, true);
  10193.         }
  10194.     };
  10195.     var SkillObjectPositionController = class extends Component {
  10196.         constructor(skillObject) {
  10197.             super();
  10198.             this._skillObject = skillObject;
  10199.             this.stop();
  10200.         }
  10201.         update() {
  10202.             super.update();
  10203.             const skillObjectEvent = this._skillObject.user();
  10204.             const currentUserPosition = this._skillObject.userBattler().user().positionPoint();
  10205.             if (this._lastUserPosition && !this._lastUserPosition.equals(currentUserPosition)) {
  10206.                 const diffX = currentUserPosition.x - this._lastUserPosition.x;
  10207.                 const diffY = currentUserPosition.y - this._lastUserPosition.y;
  10208.                 const diff = new import_DotMoveSystem3.DotMovePoint(diffX, diffY);
  10209.                 skillObjectEvent.setPositionPoint(skillObjectEvent.positionPoint().add(diff));
  10210.             }
  10211.             this._lastUserPosition = currentUserPosition;
  10212.         }
  10213.     };
  10214.  
  10215.     // ts/ARPG_Core/ARPG_FieldObject.ts
  10216.     var ARPG_FieldObject = class extends Component {
  10217.         constructor(opt = {}) {
  10218.             super();
  10219.             this._damageHitChecker = new HitChecker("damage");
  10220.             this._customHitCheckers = /* @__PURE__ */ new Map();
  10221.             this._damageCommonEventId = opt.damageCommonEventId ?? 0;
  10222.         }
  10223.         get damageHitChecker() {
  10224.             return this._damageHitChecker;
  10225.         }
  10226.         get customHitCheckers() {
  10227.             return this._customHitCheckers;
  10228.         }
  10229.         start() {
  10230.             super.start();
  10231.             this.addComponent(this._damageHitChecker);
  10232.         }
  10233.         update() {
  10234.             super.update();
  10235.             this.updateRecvDamage();
  10236.         }
  10237.         updateRecvDamage() {
  10238.             const character = this.user();
  10239.             if (character instanceof Game_Event) {
  10240.                 if (character.isErased())
  10241.                     return;
  10242.             }
  10243.             const hitCharacters = this._damageHitChecker.checkHit("attack");
  10244.             let skill;
  10245.             let skillUser;
  10246.             let hitObject;
  10247.             for (const character2 of hitCharacters) {
  10248.                 if (character2.isSkillObject()) {
  10249.                     hitObject = character2.skillObject();
  10250.                     skill = character2.skillObject().skill();
  10251.                     skillUser = character2.skillObject().userBattler();
  10252.                 } else if (character2.isBattler()) {
  10253.                     hitObject = character2.battler();
  10254.                     const skillId = character2.battler().collideAttackSkillId();
  10255.                     if (skillId > 0) {
  10256.                         skill = new ARPG_Skill("skill", skillId);
  10257.                         skillUser = character2.battler();
  10258.                     }
  10259.                 }
  10260.             }
  10261.             if (hitObject && skill && skillUser) {
  10262.                 this._recvDamageInfo = { skill, skillUser };
  10263.                 const component = ARPG_CustomManager.fieldObjectRecvDamageComponent(this);
  10264.                 if (component)
  10265.                     this.addComponent(new ChainComponent([component, this.onEndRecvDamage.bind(this)]));
  10266.                 if (hitObject instanceof ARPG_SkillObject)
  10267.                     hitObject.hitFlagOn();
  10268.             }
  10269.         }
  10270.         damageCommonEventId() {
  10271.             return this._damageCommonEventId;
  10272.         }
  10273.         isDamageReceiving() {
  10274.             return !!this._recvDamageInfo;
  10275.         }
  10276.         checkDamageElement(elementName) {
  10277.             if (!this._recvDamageInfo)
  10278.                 return false;
  10279.             const allElements = $dataSystem.elements;
  10280.             const attackElementIds = this._recvDamageInfo.skillUser.attackElementIds().concat(this._recvDamageInfo.skill.elementIds());
  10281.             for (let i = 0; i < allElements.length; i++) {
  10282.                 if (allElements[i] === elementName) {
  10283.                     if (attackElementIds.includes(i))
  10284.                         return true;
  10285.                 }
  10286.             }
  10287.             return false;
  10288.         }
  10289.         onEndRecvDamage() {
  10290.             this._recvDamageInfo = void 0;
  10291.         }
  10292.     };
  10293.  
  10294.     // ts/ARPG_Core/Game_Event.ts
  10295.     var _Game_Event_Mixin2 = class extends Game_Event {
  10296.         initMembers() {
  10297.             _Game_Event_Mixin2._initMembers.call(this);
  10298.             this._stopSelfMovementReasons = [];
  10299.         }
  10300.         isValid() {
  10301.             const margin = 2;
  10302.             if (this._realX >= $gameMap.displayX() - margin && this._realY >= $gameMap.displayY() - margin) {
  10303.                 if (this._realX + this.width() <= $gameMap.displayX() + 17 + margin && this._realY + this.height() <= $gameMap.displayY() + 13 + margin) {
  10304.                     return true;
  10305.                 }
  10306.             }
  10307.             return false;
  10308.         }
  10309.         endARPGProcess() {
  10310.             Game_Character.prototype.endARPGProcess.call(this);
  10311.             const battler = this.arpgTempData().battler;
  10312.             if (battler && battler.isEnemy()) {
  10313.                 battler.end();
  10314.                 this.arpgTempData().battler = void 0;
  10315.             }
  10316.             const skillObject = this.arpgTempData().skillObject;
  10317.             if (skillObject) {
  10318.                 skillObject.end();
  10319.                 this.arpgTempData().skillObject = void 0;
  10320.             }
  10321.         }
  10322.         isErased() {
  10323.             return this._erased;
  10324.         }
  10325.         setupSkillObject(skillOrItem, id, user) {
  10326.             const skill = new ARPG_Skill(skillOrItem, id);
  10327.             const skillObject = new ARPG_SkillObject(skill, user);
  10328.             this.arpgTempData().skillObject = skillObject;
  10329.             this.addComponent(skillObject);
  10330.         }
  10331.         setupEnemy(enemyId, opt = {}) {
  10332.             const battler = new ARPG_Enemy(enemyId, opt);
  10333.             this.arpgTempData().battler = battler;
  10334.             this.addComponent(battler);
  10335.         }
  10336.         setupFieldObject(opt = {}) {
  10337.             const fieldObject = new ARPG_FieldObject(opt);
  10338.             this.arpgTempData().fieldObject = fieldObject;
  10339.             this.addComponent(fieldObject);
  10340.         }
  10341.         updateRoutineMove() {
  10342.             if (!(this.isBattler() && this.battler().isEnemy()) || !SceneManager._scene._messageWindow.isOpen()) {
  10343.                 _Game_Event_Mixin2._updateRoutineMove.call(this);
  10344.             }
  10345.         }
  10346.         updateSelfMovement() {
  10347.             if (this.isStoppedSelfMovement())
  10348.                 return;
  10349.             _Game_Event_Mixin2._updateSelfMovement.call(this);
  10350.         }
  10351.         stopSelfMovement(reason) {
  10352.             if (!this._stopSelfMovementReasons.includes(reason))
  10353.                 this._stopSelfMovementReasons.push(reason);
  10354.         }
  10355.         resumeSelfMovement(reason) {
  10356.             this._stopSelfMovementReasons = this._stopSelfMovementReasons.filter((r) => r !== reason);
  10357.         }
  10358.         isStoppedSelfMovement() {
  10359.             return this._stopSelfMovementReasons.length > 0;
  10360.         }
  10361.         interpreter() {
  10362.             if (this._interpreter == null)
  10363.                 return void 0;
  10364.             return this._interpreter;
  10365.         }
  10366.         updateParallel() {
  10367.             if (this._interpreter && this._interpreter.isLocked())
  10368.                 return;
  10369.             _Game_Event_Mixin2._updateParallel.call(this);
  10370.         }
  10371.     };
  10372.     var Game_Event_Mixin2 = _Game_Event_Mixin2;
  10373.     Game_Event_Mixin2._initMembers = Game_Event.prototype.initMembers;
  10374.     Game_Event_Mixin2._updateRoutineMove = Game_Event.prototype.updateRoutineMove;
  10375.     Game_Event_Mixin2._updateSelfMovement = Game_Event.prototype.updateSelfMovement;
  10376.     Game_Event_Mixin2._updateParallel = Game_Event.prototype.updateParallel;
  10377.     mixin(Game_Event, Game_Event_Mixin2);
  10378.  
  10379.     // ts/ARPG_Core/LevelUpProcessor.ts
  10380.     var LevelUpProcessor = class extends Processor {
  10381.         constructor(actor, levelUpMessage, newSkills) {
  10382.             super();
  10383.             this._actor = actor;
  10384.             this._displayLevelUpProcessor = new DisplayLevelUpProcessor(levelUpMessage, newSkills);
  10385.         }
  10386.         *process() {
  10387.             this.addComponent(this._displayLevelUpProcessor);
  10388.             const component = ARPG_CustomManager.levelUpComponent(this._actor);
  10389.             if (component) {
  10390.                 $gamePlayer.addComponent(component);
  10391.                 yield* this.waitComponent(component);
  10392.             }
  10393.             yield* this.waitComponent(this._displayLevelUpProcessor);
  10394.         }
  10395.     };
  10396.     var DisplayLevelUpProcessor = class extends Processor {
  10397.         constructor(levelUpMessage, newSkills) {
  10398.             super();
  10399.             this._levelUpMessage = levelUpMessage;
  10400.             this._newSkills = newSkills;
  10401.         }
  10402.         *process() {
  10403.             const w = 640;
  10404.             const h = 64;
  10405.             const x = Graphics.boxWidth / 2 - w / 2;
  10406.             const y = 0;
  10407.             const rect = new Rectangle(x, y, w, h);
  10408.             $gameMap.showCommonMessageWindow(this._levelUpMessage, rect);
  10409.             for (const skill of this._newSkills) {
  10410.                 yield* this.waitProcess(30);
  10411.                 const text = TextManager.obtainSkill.format(skill.name);
  10412.                 $gameMap.showCommonMessageWindow(text, rect);
  10413.             }
  10414.         }
  10415.     };
  10416.  
  10417.     // ts/ARPG_Core/Game_Actor.ts
  10418.     var _Game_Actor_Mixin = class extends Game_Actor {
  10419.         initialize(actorId) {
  10420.             _Game_Actor_Mixin._initialize.call(this, actorId);
  10421.             this._arpgParameters = new ARPG_BattlerParameters();
  10422.         }
  10423.         displayLevelUp(newSkills) {
  10424.             if (SceneManager._scene instanceof Scene_Map) {
  10425.                 const text = TextManager.levelUp.format(
  10426.                     this._name,
  10427.                     TextManager.level,
  10428.                     this._level
  10429.                 );
  10430.                 $gamePlayer.addComponent(new LevelUpProcessor(this, text, newSkills));
  10431.             } else {
  10432.                 _Game_Actor_Mixin._displayLevelUp.call(this, newSkills);
  10433.             }
  10434.         }
  10435.         arpgParameters() {
  10436.             return this._arpgParameters;
  10437.         }
  10438.     };
  10439.     var Game_Actor_Mixin = _Game_Actor_Mixin;
  10440.     Game_Actor_Mixin._initialize = Game_Actor.prototype.initialize;
  10441.     Game_Actor_Mixin._displayLevelUp = Game_Actor.prototype.displayLevelUp;
  10442.     mixin(Game_Actor, Game_Actor_Mixin);
  10443.  
  10444.     // ts/ARPG_Core/Game_Party.ts
  10445.     var Game_Party_Mixin = class extends Game_Party {
  10446.         changeNextActor(currentActorId) {
  10447.             let currentIndex = -1;
  10448.             let nextIndex = -1;
  10449.             for (let i = 0; i < this._actors.length - 1; i++) {
  10450.                 if (this.allMembers()[i].actorId() === currentActorId) {
  10451.                     currentIndex = i;
  10452.                     break;
  10453.                 }
  10454.             }
  10455.             if (currentIndex < 0)
  10456.                 return false;
  10457.             for (let i = currentIndex + 1; i < this._actors.length; i++) {
  10458.                 if (this.allMembers()[i].isAlive()) {
  10459.                     nextIndex = i;
  10460.                     break;
  10461.                 }
  10462.             }
  10463.             if (nextIndex < 0)
  10464.                 return false;
  10465.             const currentId = this._actors[currentIndex];
  10466.             const nextId = this._actors[nextIndex];
  10467.             this._actors = this._actors.filter((id) => id !== currentId && id !== nextId);
  10468.             this._actors.push(currentId);
  10469.             this._actors.unshift(nextId);
  10470.             $gamePlayer.refresh();
  10471.             return true;
  10472.         }
  10473.         leader() {
  10474.             for (const member of this.allMembers()) {
  10475.                 if (member.isAlive())
  10476.                     return member;
  10477.             }
  10478.             return this.battleMembers()[0];
  10479.         }
  10480.     };
  10481.     mixin(Game_Party, Game_Party_Mixin);
  10482.  
  10483.     // ts/ARPG_Core/Game_Interpreter.ts
  10484.     var _Game_Interpreter_Mixin = class extends Game_Interpreter {
  10485.         initialize() {
  10486.             _Game_Interpreter_Mixin._initialize.call(this);
  10487.             this._needChantWait = false;
  10488.             this._needTargetSelectWait = false;
  10489.         }
  10490.         clear() {
  10491.             _Game_Interpreter_Mixin._clear.call(this);
  10492.             this._lockReason = [];
  10493.         }
  10494.         lock(reason) {
  10495.             if (!this._lockReason.includes(reason)) {
  10496.                 this._lockReason.push(reason);
  10497.             }
  10498.         }
  10499.         unlock(reason) {
  10500.             this._lockReason = this._lockReason.filter((r) => r !== reason);
  10501.         }
  10502.         isLocked() {
  10503.             return this._lockReason.length > 0;
  10504.         }
  10505.         update() {
  10506.             if (this.isLocked())
  10507.                 return;
  10508.             _Game_Interpreter_Mixin._update.call(this);
  10509.         }
  10510.         event() {
  10511.             return $gameMap.event(this._eventId);
  10512.         }
  10513.         findCharacterBySpecification(param) {
  10514.             let characterKind = 0;
  10515.             if (param.CharacterKindByVariable > 0) {
  10516.                 characterKind = $gameVariables.value(param.CharacterKindByVariable);
  10517.             } else {
  10518.                 switch (param.CharacterKind) {
  10519.                     case "thisEvent":
  10520.                         characterKind = 0;
  10521.                         break;
  10522.                     case "player":
  10523.                         characterKind = 1;
  10524.                         break;
  10525.                     case "follower":
  10526.                         characterKind = 2;
  10527.                         break;
  10528.                     case "event":
  10529.                         characterKind = 3;
  10530.                         break;
  10531.                     case "vehicle":
  10532.                         characterKind = 4;
  10533.                         break;
  10534.                 }
  10535.             }
  10536.             let character;
  10537.             switch (characterKind) {
  10538.                 case 0:
  10539.                     character = $gameMap.event(this._eventId);
  10540.                     break;
  10541.                 case 1:
  10542.                     character = $gamePlayer;
  10543.                     break;
  10544.                 case 2:
  10545.                     let followerIndex;
  10546.                     if (param.FollowerIndexByVariable > 0) {
  10547.                         followerIndex = $gameVariables.value(param.FollowerIndexByVariable);
  10548.                     } else {
  10549.                         followerIndex = param.FollowerIndex;
  10550.                     }
  10551.                     character = $gamePlayer.followers().data()[followerIndex - 1];
  10552.                     if (character == null) {
  10553.                         throw new Error(`FollowerIndex(${followerIndex}) is invalid.`);
  10554.                     }
  10555.                     break;
  10556.                 case 3:
  10557.                     let eventId;
  10558.                     if (param.EventIdByVariable > 0) {
  10559.                         eventId = $gameVariables.value(param.EventIdByVariable);
  10560.                     } else {
  10561.                         if (typeof param.EventIdOrName === "number") {
  10562.                             eventId = param.EventIdOrName;
  10563.                         } else {
  10564.                             eventId = this.eventNameToId(param.EventIdOrName);
  10565.                         }
  10566.                     }
  10567.                     if (eventId > 0)
  10568.                         character = $gameMap.event(eventId);
  10569.                     if (character == null) {
  10570.                         throw new Error(`EventId(${eventId}) is invalid.`);
  10571.                     }
  10572.                     break;
  10573.                 case 4:
  10574.                     let vehicleKind;
  10575.                     if (param.FollowerIndex > 0) {
  10576.                         vehicleKind = $gameVariables.value(param.FollowerIndexByVariable);
  10577.                     } else {
  10578.                         if (param.VehicleKind === "boat") {
  10579.                             vehicleKind = 1;
  10580.                         } else if (param.VehicleKind === "ship") {
  10581.                             vehicleKind = 2;
  10582.                         } else if (param.VehicleKind === "airship") {
  10583.                             vehicleKind = 3;
  10584.                         }
  10585.                     }
  10586.                     if (vehicleKind === 1) {
  10587.                         character = $gameMap.boat();
  10588.                     } else if (vehicleKind === 2) {
  10589.                         character = $gameMap.ship();
  10590.                     } else if (vehicleKind === 3) {
  10591.                         character = $gameMap.airship();
  10592.                     } else {
  10593.                         throw new Error(`VehicleKind(${vehicleKind}) is invalid.`);
  10594.                     }
  10595.                     break;
  10596.             }
  10597.             if (character == null) {
  10598.                 throw new Error(`${JSON.stringify(param)} is invalid.`);
  10599.             }
  10600.             return character;
  10601.         }
  10602.         findArpgSkillBySpecification(param) {
  10603.             if (param.SkillOrItem === "skill") {
  10604.                 let idOrName;
  10605.                 if (param.SkillIdByVariable > 0) {
  10606.                     idOrName = $gameVariables.value(param.SkillIdByVariable);
  10607.                 } else if (param.SkillByName && param.SkillByName !== "") {
  10608.                     idOrName = param.SkillByName;
  10609.                 } else {
  10610.                     idOrName = param.SkillId;
  10611.                 }
  10612.                 return new ARPG_Skill("skill", idOrName);
  10613.             } else if (param.SkillOrItem === "item") {
  10614.                 let idOrName;
  10615.                 if (param.ItemIdByVariable > 0) {
  10616.                     idOrName = $gameVariables.value(param.ItemIdByVariable);
  10617.                 } else if (param.ItemByName && param.ItemByName !== "") {
  10618.                     idOrName = param.ItemByName;
  10619.                 } else {
  10620.                     idOrName = param.ItemId;
  10621.                 }
  10622.                 return new ARPG_Skill("item", idOrName);
  10623.             }
  10624.             throw new Error(`${JSON.stringify(param)} is invalid.`);
  10625.         }
  10626.         eventNameToId(eventName) {
  10627.             for (const event of $gameMap.events()) {
  10628.                 if (event.event().name === eventName) {
  10629.                     return event.eventId();
  10630.                 }
  10631.             }
  10632.             throw new Error(`Event name(${eventName}) is not found.`);
  10633.         }
  10634.         arpgCharacter() {
  10635.             if (this._eventId > 0) {
  10636.                 return $gameMap.event(this._eventId);
  10637.             } else {
  10638.                 return $gamePlayer;
  10639.             }
  10640.         }
  10641.         updateWait() {
  10642.             const result = _Game_Interpreter_Mixin._updateWait.call(this);
  10643.             if (result)
  10644.                 return true;
  10645.             return this.updateWait_ARPG_Core();
  10646.         }
  10647.         updateWait_ARPG_Core() {
  10648.             const character = this.arpgCharacter();
  10649.             if (!character)
  10650.                 return false;
  10651.             if (this._needChantWait) {
  10652.                 if (character.isBattler() && character.battler().isChanting()) {
  10653.                     return true;
  10654.                 } else {
  10655.                     this._needChantWait = false;
  10656.                     return false;
  10657.                 }
  10658.             } else if (this._needTargetSelectWait) {
  10659.                 if ($gameMap.isTargetSelecting()) {
  10660.                     return true;
  10661.                 } else {
  10662.                     this._needTargetSelectWait = false;
  10663.                     return false;
  10664.                 }
  10665.             } else if (this._blowAwayWaitCharacter) {
  10666.                 if (this._blowAwayWaitCharacter.isBlowingAway()) {
  10667.                     return true;
  10668.                 } else {
  10669.                     this._blowAwayWaitCharacter = void 0;
  10670.                     return false;
  10671.                 }
  10672.             } else if (this._actionWaitCharacter) {
  10673.                 if (this._actionWaitCharacter.isActionWaiting()) {
  10674.                     return true;
  10675.                 } else {
  10676.                     this._actionWaitCharacter = void 0;
  10677.                     return false;
  10678.                 }
  10679.             }
  10680.             return false;
  10681.         }
  10682.     };
  10683.     var Game_Interpreter_Mixin = _Game_Interpreter_Mixin;
  10684.     Game_Interpreter_Mixin._initialize = Game_Interpreter.prototype.initialize;
  10685.     Game_Interpreter_Mixin._clear = Game_Interpreter.prototype.clear;
  10686.     Game_Interpreter_Mixin._update = Game_Interpreter.prototype.update;
  10687.     Game_Interpreter_Mixin._updateWait = Game_Interpreter.prototype.updateWait;
  10688.     mixin(Game_Interpreter, Game_Interpreter_Mixin);
  10689.  
  10690.     // ts/ARPG_Core/Game_Action.ts
  10691.     var Game_Action_Mixin = class extends Game_Action {
  10692.         calcElementRate(target) {
  10693.             const attackElementIds = new Set(this.subject().attackElements());
  10694.             for (const elementId of ARPG_Utils.itemAttackElementIds(this.item())) {
  10695.                 attackElementIds.add(elementId);
  10696.             }
  10697.             return this.elementsMaxRate(target, this.subject().attackElements().concat(...attackElementIds));
  10698.         }
  10699.     };
  10700.     mixin(Game_Action, Game_Action_Mixin);
  10701.  
  10702.     // ts/ARPG_Core/Sprite_HitBox.ts
  10703.     var Sprite_HitBox = class extends Sprite {
  10704.         constructor(...args) {
  10705.             super(...args);
  10706.         }
  10707.         initialize(hitBox) {
  10708.             super.initialize();
  10709.             this.initMembers();
  10710.             this._hitBox = hitBox;
  10711.             this.bitmap = this.createBitmap();
  10712.             this.update();
  10713.         }
  10714.         initMembers() {
  10715.             this.anchor.x = 0;
  10716.             this.anchor.y = 0;
  10717.         }
  10718.         createBitmap() {
  10719.             const width = this._hitBox.width() * $gameMap.tileWidth();
  10720.             const height = this._hitBox.height() * $gameMap.tileHeight();
  10721.             const bitmap = new Bitmap(width, height);
  10722.             bitmap.fillRect(0, 0, width, height, this._hitBox.hitBoxColor);
  10723.             return bitmap;
  10724.         }
  10725.         hitBox() {
  10726.             return this._hitBox;
  10727.         }
  10728.         checkHitBox(hitBox) {
  10729.             return this._hitBox === hitBox;
  10730.         }
  10731.         update() {
  10732.             super.update();
  10733.             this.updatePosition();
  10734.             this.updateVisibility();
  10735.         }
  10736.         updatePosition() {
  10737.             this.x = this._hitBox.screenX();
  10738.             this.y = this._hitBox.screenY();
  10739.             this.z = this._hitBox.screenZ();
  10740.         }
  10741.         updateVisibility() {
  10742.             this.visible = this._hitBox.isEnabled();
  10743.         }
  10744.     };
  10745.  
  10746.     // ts/ARPG_Core/Sprite_CommonGauge.ts
  10747.     var Sprite_CommonGauge = class extends Sprite_Gauge {
  10748.         constructor(...args) {
  10749.             super(...args);
  10750.         }
  10751.         initialize(...args) {
  10752.             const [width, height, config] = args;
  10753.             this._config = Object.assign({}, config);
  10754.             this._gaugeWidth = width;
  10755.             this._gaugeHeight = height;
  10756.             super.initialize();
  10757.         }
  10758.         gaugeWidth() {
  10759.             return this._gaugeWidth;
  10760.         }
  10761.         gaugeHeight() {
  10762.             return this._gaugeHeight;
  10763.         }
  10764.         bitmapWidth() {
  10765.             return this.gaugeWidth();
  10766.         }
  10767.         bitmapHeight() {
  10768.             return this.gaugeHeight();
  10769.         }
  10770.         gaugeColor1() {
  10771.             switch (this._statusType) {
  10772.                 case "hp":
  10773.                     if (this._config.hpGaugeColor1)
  10774.                         return this._config.hpGaugeColor1;
  10775.                     return ColorManager.hpGaugeColor1();
  10776.                 case "mp":
  10777.                     if (this._config.mpGaugeColor1)
  10778.                         return this._config.mpGaugeColor1;
  10779.                     return ColorManager.mpGaugeColor1();
  10780.                 case "tp":
  10781.                     if (this._config.tpGaugeColor1)
  10782.                         return this._config.tpGaugeColor1;
  10783.                     return ColorManager.tpGaugeColor1();
  10784.                 case "time":
  10785.                     if (this._config.ctGaugeColor1)
  10786.                         return this._config.ctGaugeColor1;
  10787.                     return ColorManager.ctGaugeColor1();
  10788.                 default:
  10789.                     if (this._config.normalColor)
  10790.                         return this._config.normalColor;
  10791.                     return ColorManager.normalColor();
  10792.             }
  10793.         }
  10794.         gaugeColor2() {
  10795.             switch (this._statusType) {
  10796.                 case "hp":
  10797.                     if (this._config.hpGaugeColor2)
  10798.                         return this._config.hpGaugeColor2;
  10799.                     return ColorManager.hpGaugeColor2();
  10800.                 case "mp":
  10801.                     if (this._config.mpGaugeColor2)
  10802.                         return this._config.mpGaugeColor2;
  10803.                     return ColorManager.mpGaugeColor2();
  10804.                 case "tp":
  10805.                     if (this._config.tpGaugeColor2)
  10806.                         return this._config.tpGaugeColor2;
  10807.                     return ColorManager.tpGaugeColor2();
  10808.                 case "time":
  10809.                     if (this._config.ctGaugeColor2)
  10810.                         return this._config.ctGaugeColor2;
  10811.                     return ColorManager.ctGaugeColor2();
  10812.                 default:
  10813.                     return ColorManager.normalColor();
  10814.             }
  10815.         }
  10816.         drawGauge() {
  10817.             const gaugeX = this.gaugeX();
  10818.             const gaugeY = 0;
  10819.             const gaugewidth = this.gaugeWidth();
  10820.             const gaugeHeight = this.gaugeHeight();
  10821.             this.drawGaugeRect(gaugeX, gaugeY, gaugewidth, gaugeHeight);
  10822.         }
  10823.         gaugeX() {
  10824.             return 0;
  10825.         }
  10826.         textHeight() {
  10827.             return 0;
  10828.         }
  10829.         redraw() {
  10830.             this.bitmap.clear();
  10831.             const currentValue = this.currentValue();
  10832.             if (!isNaN(currentValue)) {
  10833.                 this.drawGauge();
  10834.             }
  10835.         }
  10836.     };
  10837.  
  10838.     // ts/ARPG_Core/Sprite_Label.ts
  10839.     var Sprite_Label = class extends Sprite {
  10840.         constructor(...args) {
  10841.             super(...args);
  10842.         }
  10843.         initialize(...args) {
  10844.             super.initialize();
  10845.             let width;
  10846.             let height;
  10847.             let opt;
  10848.             if (args.length === 2) {
  10849.                 [width, height] = args;
  10850.                 opt = {};
  10851.             } else {
  10852.                 [width, height, opt] = args;
  10853.             }
  10854.             this._text = "";
  10855.             this._align = opt.align ?? "left";
  10856.             this.bitmap = new Bitmap(width, height);
  10857.             this.bitmap.fontFace = opt.fontFace ?? $gameSystem.mainFontFace();
  10858.             this.bitmap.fontSize = opt.fontSize ?? $gameSystem.mainFontSize();
  10859.         }
  10860.         get text() {
  10861.             return this._text;
  10862.         }
  10863.         set text(_text) {
  10864.             this._text = _text;
  10865.             this.redrawText();
  10866.         }
  10867.         get fontSize() {
  10868.             return this.bitmap.fontSize;
  10869.         }
  10870.         set fontSize(_fontSize) {
  10871.             this.bitmap.fontSize = _fontSize;
  10872.             this.redrawText();
  10873.         }
  10874.         get fontFace() {
  10875.             return this.bitmap.fontFace;
  10876.         }
  10877.         set fontFace(_fontFace) {
  10878.             this.bitmap.fontFace = _fontFace;
  10879.             this.redrawText();
  10880.         }
  10881.         get align() {
  10882.             return this.bitmap.fontFace;
  10883.         }
  10884.         set align(_align) {
  10885.             this._align = _align;
  10886.             this.redrawText();
  10887.         }
  10888.         redrawText() {
  10889.             if (this._text === "") {
  10890.                 this.hide();
  10891.             } else {
  10892.                 this.show();
  10893.                 this.bitmap.clear();
  10894.                 this.bitmap.drawText(this._text, 0, 0, this.bitmap.width, this.bitmap.fontSize, this._align);
  10895.             }
  10896.         }
  10897.     };
  10898.  
  10899.     // ts/CommonLibrary/Container.ts
  10900.     var Container = class extends PIXI.Container {
  10901.         constructor(...args) {
  10902.             super();
  10903.             this.initialize(...args);
  10904.         }
  10905.         initialize(...args) {
  10906.             this._hidden = false;
  10907.         }
  10908.         update() {
  10909.             for (const child of this.children) {
  10910.                 if (child.update) {
  10911.                     child.update();
  10912.                 }
  10913.             }
  10914.         }
  10915.         hide() {
  10916.             this._hidden = true;
  10917.             this.updateVisibility();
  10918.         }
  10919.         show() {
  10920.             this._hidden = false;
  10921.             this.updateVisibility();
  10922.         }
  10923.         updateVisibility() {
  10924.             this.visible = !this._hidden;
  10925.         }
  10926.         move(x, y) {
  10927.             this.x = x;
  10928.             this.y = y;
  10929.         }
  10930.     };
  10931.  
  10932.     // ts/ARPG_Core/BossHpGaugeContainer.ts
  10933.     var BossHpGaugeContainer = class extends Container {
  10934.         initialize() {
  10935.             super.initialize();
  10936.             this._bossHpGauge = this.createBossHpGauge();
  10937.             this.addChild(this._bossHpGauge);
  10938.             this._bossHpGaugeLabel = this.createBossHpGaugeLabel();
  10939.             this.addChild(this._bossHpGaugeLabel);
  10940.         }
  10941.         setupBossHpGauge(battler) {
  10942.             this._bossHpGauge.setup(battler.battler(), "hp");
  10943.         }
  10944.         createBossHpGauge() {
  10945.             const hpGaugeColor1 = ARPG_CorePluginParams.EnemyHpGaugeSetting.BossEnemyHpGaugeColor1;
  10946.             const hpGaugeColor2 = ARPG_CorePluginParams.EnemyHpGaugeSetting.BossEnemyHpGaugeColor2;
  10947.             const hpGaugeYOffset = ARPG_CorePluginParams.EnemyHpGaugeSetting.BossEnemyHpGaugeYOffset == null ? 16 : ARPG_CorePluginParams.EnemyHpGaugeSetting.BossEnemyHpGaugeYOffset;
  10948.             const hpGaugeWidth = ARPG_CorePluginParams.EnemyHpGaugeSetting.BossEnemyHpGaugeWidth == null ? 500 : ARPG_CorePluginParams.EnemyHpGaugeSetting.BossEnemyHpGaugeWidth;
  10949.             const hpGaugeHeight = ARPG_CorePluginParams.EnemyHpGaugeSetting.BossEnemyHpGaugeHeight == null ? 12 : ARPG_CorePluginParams.EnemyHpGaugeSetting.BossEnemyHpGaugeHeight;
  10950.             const bossHpGauge = new Sprite_CommonGauge(hpGaugeWidth, hpGaugeHeight, { hpGaugeColor1, hpGaugeColor2 });
  10951.             bossHpGauge.x = (Graphics.boxWidth - bossHpGauge.gaugeWidth()) / 2;
  10952.             bossHpGauge.y = hpGaugeYOffset;
  10953.             bossHpGauge.anchor.y = 0.5;
  10954.             return bossHpGauge;
  10955.         }
  10956.         createBossHpGaugeLabel() {
  10957.             const bossHpGaugeLabel = new Sprite_Label(64, Math.floor($gameSystem.mainFontSize() * 1.5));
  10958.             bossHpGaugeLabel.anchor.x = 1;
  10959.             bossHpGaugeLabel.x = this._bossHpGauge.x;
  10960.             bossHpGaugeLabel.anchor.y = 0.5;
  10961.             bossHpGaugeLabel.y = this._bossHpGauge.y + this._bossHpGauge.bitmapHeight() / 2;
  10962.             bossHpGaugeLabel.text = ARPG_CorePluginParams.EnemyHpGaugeSetting.BossEnemyHpGaugeLabel;
  10963.             return bossHpGaugeLabel;
  10964.         }
  10965.     };
  10966.  
  10967.     // ts/ARPG_Core/Spriteset_Map.ts
  10968.     var _Spriteset_Map_Mixin3 = class extends Spriteset_Map {
  10969.         initialize() {
  10970.             _Spriteset_Map_Mixin3._initialize.call(this);
  10971.             this._hitBoxSprites = /* @__PURE__ */ new Set();
  10972.         }
  10973.         update() {
  10974.             _Spriteset_Map_Mixin3._update.call(this);
  10975.             if ($gameMap.isStopped()) {
  10976.                 this._tilemap.stopAnimation();
  10977.             } else {
  10978.                 this._tilemap.resumeAnimation();
  10979.             }
  10980.             this.updateBossHpGauge();
  10981.             this.updateHitBoxSprites();
  10982.         }
  10983.         updateHitBoxSprites() {
  10984.             if (ARPG_CorePluginParams.HitBoxSetting.VisibleHitAreaSwitchId > 0 && $gameSwitches.value(ARPG_CorePluginParams.HitBoxSetting.VisibleHitAreaSwitchId)) {
  10985.                 const hitBoxs = $gameMap.allHitBoxs();
  10986.                 const hasSpriteHitBoxs = /* @__PURE__ */ new Set();
  10987.                 for (const sprite of this._hitBoxSprites) {
  10988.                     hasSpriteHitBoxs.add(sprite.hitBox());
  10989.                 }
  10990.                 for (const hitBox of hitBoxs) {
  10991.                     if (!hasSpriteHitBoxs.has(hitBox))
  10992.                         this.createHitBoxSprite(hitBox);
  10993.                 }
  10994.                 for (const hitBox of hasSpriteHitBoxs) {
  10995.                     if (!hitBoxs.has(hitBox))
  10996.                         this.deleteHitBoxSprite(hitBox);
  10997.                 }
  10998.             } else {
  10999.                 for (const sprite of this._hitBoxSprites) {
  11000.                     this.deleteHitBoxSprite(sprite.hitBox());
  11001.                 }
  11002.             }
  11003.         }
  11004.         createHitBoxSprite(hitBox) {
  11005.             const sprite = new Sprite_HitBox(hitBox);
  11006.             this._hitBoxSprites.add(sprite);
  11007.             this._tilemap.addChild(sprite);
  11008.         }
  11009.         deleteHitBoxSprite(hitBox) {
  11010.             const sprite = this.findTargetHitBoxSprite(hitBox);
  11011.             if (!sprite)
  11012.                 return;
  11013.             this._hitBoxSprites.delete(sprite);
  11014.             this._tilemap.removeChild(sprite);
  11015.         }
  11016.         findTargetHitBoxSprite(target) {
  11017.             return [...this._hitBoxSprites].find((sprite) => sprite.checkHitBox(target));
  11018.         }
  11019.         // TODO: 本当に必要か要検討
  11020.         destroy(options) {
  11021.         }
  11022.         createLowerLayer() {
  11023.             _Spriteset_Map_Mixin3._createLowerLayer.call(this);
  11024.             this.createBossHpGaugeContainer();
  11025.         }
  11026.         createBossHpGaugeContainer() {
  11027.             this._bossHpGaugeContainer = new BossHpGaugeContainer();
  11028.             this._bossHpGaugeContainer.hide();
  11029.             this.addChild(this._bossHpGaugeContainer);
  11030.         }
  11031.         setupBossHpGauge(battler) {
  11032.             this._bossHpGaugeContainer.setupBossHpGauge(battler);
  11033.             this._bossHpGaugeContainer.show();
  11034.         }
  11035.         updateBossHpGauge() {
  11036.             const enemy = $gameTemp.arpgGlobalTempData().bossHpGaugeTargetEnemy;
  11037.             if (enemy && enemy.isCharacterHpGaugeVisibled()) {
  11038.                 this._bossHpGaugeContainer.show();
  11039.             } else {
  11040.                 this._bossHpGaugeContainer.hide();
  11041.             }
  11042.         }
  11043.     };
  11044.     var Spriteset_Map_Mixin3 = _Spriteset_Map_Mixin3;
  11045.     Spriteset_Map_Mixin3._initialize = Spriteset_Map.prototype.initialize;
  11046.     Spriteset_Map_Mixin3._update = Spriteset_Map.prototype.update;
  11047.     Spriteset_Map_Mixin3._createLowerLayer = Spriteset_Map.prototype.createLowerLayer;
  11048.     Spriteset_Map_Mixin3._findTargetSprite = Spriteset_Map.prototype.findTargetSprite;
  11049.     mixin(Spriteset_Map, Spriteset_Map_Mixin3);
  11050.  
  11051.     // ts/ARPG_Core/Sprite_MapEventGauge.ts
  11052.     var _Sprite_MapEventGauge = class extends Sprite_CommonGauge {
  11053.         constructor(...args) {
  11054.             super(...args);
  11055.         }
  11056.         initialize(...args) {
  11057.             const [characterSprite, position, yOffset, height, config] = args;
  11058.             this._characterSprite = characterSprite;
  11059.             this._position = position;
  11060.             this._yOffset = yOffset;
  11061.             let width = this._characterSprite.spriteWidth();
  11062.             width = width > 48 ? this._characterSprite.spriteWidth() : 48;
  11063.             super.initialize(width, height, config);
  11064.         }
  11065.         initMembers() {
  11066.             super.initMembers();
  11067.             this.anchor.x = 0.5;
  11068.             if (this._position === "up") {
  11069.                 this.anchor.y = 1;
  11070.             } else {
  11071.                 this.anchor.y = 0;
  11072.             }
  11073.             this.inner = new Point();
  11074.             this.inner.x = 0;
  11075.             if (this._position === "up") {
  11076.                 let height = this._characterSprite.spriteHeight();
  11077.                 height = height > 48 ? this._characterSprite.spriteHeight() : 48;
  11078.                 this.inner.y = -height + this._yOffset;
  11079.             } else {
  11080.                 this.inner.y = this._yOffset;
  11081.             }
  11082.             this._currentBitmapWidth = 0;
  11083.         }
  11084.         redraw() {
  11085.             this.bitmap.clear();
  11086.             const currentValue = this.currentValue();
  11087.             if (!isNaN(currentValue)) {
  11088.                 this.drawGauge();
  11089.             }
  11090.         }
  11091.         update() {
  11092.             _Sprite_MapEventGauge._update.call(this);
  11093.             if (this._currentBitmapWidth !== this.bitmapWidth()) {
  11094.                 this.bitmap?.destroy();
  11095.                 this.createBitmap();
  11096.             }
  11097.             if (this._position === "up") {
  11098.                 let height = this._characterSprite.spriteHeight();
  11099.                 height = height > 48 ? this._characterSprite.spriteHeight() : 48;
  11100.                 this.inner.y = -height + this._yOffset;
  11101.             } else {
  11102.                 this.inner.y = this._yOffset;
  11103.             }
  11104.         }
  11105.         createBitmap() {
  11106.             _Sprite_MapEventGauge._createBitmap.call(this);
  11107.             this._currentBitmapWidth = this.bitmapWidth();
  11108.         }
  11109.     };
  11110.     var Sprite_MapEventGauge = _Sprite_MapEventGauge;
  11111.     Sprite_MapEventGauge._update = Sprite_CommonGauge.prototype.update;
  11112.     Sprite_MapEventGauge._createBitmap = Sprite_CommonGauge.prototype.createBitmap;
  11113.  
  11114.     // ts/ARPG_Core/Sprite_Character.ts
  11115.     var _Sprite_Character_Mixin2 = class extends Sprite_Character {
  11116.         initMembers() {
  11117.             _Sprite_Character_Mixin2._initMembers.call(this);
  11118.             this._innerChildren = [];
  11119.             this._pressed = false;
  11120.         }
  11121.         update() {
  11122.             _Sprite_Character_Mixin2._update.call(this);
  11123.             this.updateHpGauge();
  11124.             this.updateInnerChildren();
  11125.             this.processTouch();
  11126.         }
  11127.         character() {
  11128.             return this._character;
  11129.         }
  11130.         addInnerChild(child) {
  11131.             this._innerChildren.push(child);
  11132.             const tilemap = SceneManager._scene._spriteset._tilemap;
  11133.             tilemap.addChild(child);
  11134.             tilemap._sortChildren();
  11135.         }
  11136.         removeInnerChild(child) {
  11137.             this._innerChildren = this._innerChildren.filter((cld) => cld !== child);
  11138.             const tilemap = SceneManager._scene._spriteset._tilemap;
  11139.             tilemap.removeChild(child);
  11140.         }
  11141.         updateInnerChildren() {
  11142.             for (const child of this._innerChildren) {
  11143.                 if (!child.inner)
  11144.                     continue;
  11145.                 child.x = this.x + child.inner.x;
  11146.                 child.y = this.y + child.inner.y;
  11147.                 if (child.innerVisible == null) {
  11148.                 } else {
  11149.                     child.visible = child.innerVisible;
  11150.                 }
  11151.             }
  11152.         }
  11153.         updateHpGauge() {
  11154.             if (this._character.isNeedCharacterHpGauge()) {
  11155.                 if (!this._hpGauge) {
  11156.                     this.createHpGauge();
  11157.                 }
  11158.                 this._hpGauge.visible = this._character.isCharacterHpGaugeVisibled();
  11159.             }
  11160.         }
  11161.         createHpGauge() {
  11162.             const position = this._character.hpGaugePosition();
  11163.             const yOfs = this._character.hpGaugeYOffset();
  11164.             const hpGaugeColor1 = this._character.hpGaugeColor1();
  11165.             const hpGaugeColor2 = this._character.hpGaugeColor2();
  11166.             const hpGaugeHeight = this._character.hpGaugeHeight();
  11167.             this._hpGauge = new Sprite_MapEventGauge(this, position, yOfs, hpGaugeHeight, { hpGaugeColor1, hpGaugeColor2 });
  11168.             this.addInnerChild(this._hpGauge);
  11169.             this._hpGauge.setup(this._character.battler().battler(), "hp");
  11170.         }
  11171.         processTouch() {
  11172.             if (this.isClickEnabled()) {
  11173.                 if (this.isBeingTouched()) {
  11174.                     if (TouchInput.isTriggered()) {
  11175.                         this._pressed = true;
  11176.                         this.onPress();
  11177.                     }
  11178.                 } else {
  11179.                     this._pressed = false;
  11180.                 }
  11181.                 if (this._pressed && TouchInput.isReleased()) {
  11182.                     this._pressed = false;
  11183.                     this.onClick();
  11184.                 }
  11185.             } else {
  11186.                 this._pressed = false;
  11187.             }
  11188.         }
  11189.         isPressed() {
  11190.             return this._pressed;
  11191.         }
  11192.         isClickEnabled() {
  11193.             return this.worldVisible;
  11194.         }
  11195.         isBeingTouched() {
  11196.             const touchPos = new Point(TouchInput.x, TouchInput.y);
  11197.             const localPos = this.worldTransform.applyInverse(touchPos);
  11198.             return this.hitTest(localPos.x, localPos.y);
  11199.         }
  11200.         hitTest(x, y) {
  11201.             const width = this.spriteWidth();
  11202.             const height = this.spriteHeight();
  11203.             const rect = new Rectangle(
  11204.                 -this.anchor.x * width,
  11205.                 -this.anchor.y * height,
  11206.                 width,
  11207.                 height
  11208.             );
  11209.             return rect.contains(x, y);
  11210.         }
  11211.         spriteWidth() {
  11212.             let baseWidth;
  11213.             if (this._bushDepth > 0 && this._upperBody && this._lowerBody) {
  11214.                 baseWidth = this._upperBody.width;
  11215.             } else {
  11216.                 baseWidth = this.width;
  11217.             }
  11218.             return baseWidth * this.scale.x;
  11219.         }
  11220.         spriteHeight() {
  11221.             let baseHeight;
  11222.             if (this._bushDepth > 0 && this._upperBody && this._lowerBody) {
  11223.                 baseHeight = this._upperBody.height + this._lowerBody.height;
  11224.             } else {
  11225.                 baseHeight = this.height;
  11226.             }
  11227.             return baseHeight * this.scale.y;
  11228.         }
  11229.         onPress() {
  11230.             this._character.onPress();
  11231.         }
  11232.         onClick() {
  11233.             this._character.onClick();
  11234.         }
  11235.     };
  11236.     var Sprite_Character_Mixin3 = _Sprite_Character_Mixin2;
  11237.     Sprite_Character_Mixin3._initMembers = Sprite_Character.prototype.initMembers;
  11238.     Sprite_Character_Mixin3._update = Sprite_Character.prototype.update;
  11239.     mixin(Sprite_Character, Sprite_Character_Mixin3);
  11240.  
  11241.     // ts/ARPG_Core/Scene_Map.ts
  11242.     if (!Scene_Map.prototype.hasOwnProperty("isAutosaveEnabled")) {
  11243.         Scene_Map.prototype.isAutosaveEnabled = function() {
  11244.             return Scene_Base.prototype.isAutosaveEnabled.call(this);
  11245.         };
  11246.     }
  11247.     var _Scene_Map_Mixin3 = class extends Scene_Map {
  11248.         initialize() {
  11249.             _Scene_Map_Mixin3._initialize.call(this);
  11250.             this._setupBossHpGaugeCompleted = false;
  11251.         }
  11252.         start() {
  11253.             _Scene_Map_Mixin3._start.call(this);
  11254.             $gameMap.startSceneIndication(this);
  11255.         }
  11256.         update() {
  11257.             _Scene_Map_Mixin3._update.call(this);
  11258.             if (!this._setupBossHpGaugeCompleted) {
  11259.                 const battler = $gameTemp.arpgGlobalTempData().bossHpGaugeTargetEnemy;
  11260.                 if (battler) {
  11261.                     this._spriteset.setupBossHpGauge(battler);
  11262.                     this._setupBossHpGaugeCompleted = true;
  11263.                 }
  11264.             }
  11265.         }
  11266.         terminate() {
  11267.             Scene_Message.prototype.terminate.call(this);
  11268.             if (!SceneManager.isNextScene(Scene_Battle)) {
  11269.                 this._spriteset.update();
  11270.                 this._mapNameWindow.hide();
  11271.                 this.hideMenuButton();
  11272.                 SceneManager.snapForBackground();
  11273.             }
  11274.             $gameScreen.clearZoom();
  11275.             $gameMap.terminateSceneIndication(this);
  11276.         }
  11277.         createSpriteset() {
  11278.             if (!this._spriteset) {
  11279.                 this._spriteset = new Spriteset_Map();
  11280.                 this.addChild(this._spriteset);
  11281.                 this._spriteset.update();
  11282.             }
  11283.         }
  11284.         createSkillNameWindowCallback(window2) {
  11285.             this.addWindow(window2);
  11286.         }
  11287.         deleteSkillNameWindowCallback(window2) {
  11288.             this._windowLayer.removeChild(window2);
  11289.         }
  11290.         checkGameover() {
  11291.             if (!$gameMap.isEnabledARPGMode()) {
  11292.                 _Scene_Map_Mixin3._checkGameover.call(this);
  11293.             }
  11294.         }
  11295.         isMenuEnabled() {
  11296.             const result = _Scene_Map_Mixin3._isMenuEnabled.call(this);
  11297.             if (!result)
  11298.                 return false;
  11299.             if ($gameMap.isEnabledARPGMode()) {
  11300.                 if ($gamePlayer.battler().isChanting())
  11301.                     return false;
  11302.             }
  11303.             return true;
  11304.         }
  11305.         isMenuCalled() {
  11306.             if (TouchInput.isCancelled())
  11307.                 return true;
  11308.             let keysym = ARPG_Utils.getKeySymbol("Menu");
  11309.             if (keysym == null)
  11310.                 keysym = "menu";
  11311.             if (Input.isTriggered(keysym))
  11312.                 return true;
  11313.             return false;
  11314.         }
  11315.         updateMain() {
  11316.             $gameTemp.arpgGlobalTempData().controlCharacter.update();
  11317.             if (!$gameMap.isStopped()) {
  11318.                 _Scene_Map_Mixin3._updateMain.call(this);
  11319.             }
  11320.         }
  11321.         isAutosaveEnabled() {
  11322.             const result = _Scene_Map_Mixin3._isAutosaveEnabled.call(this);
  11323.             if (!result)
  11324.                 return false;
  11325.             if ($gameMap.isEnabledARPGMode())
  11326.                 return false;
  11327.             return true;
  11328.         }
  11329.     };
  11330.     var Scene_Map_Mixin3 = _Scene_Map_Mixin3;
  11331.     Scene_Map_Mixin3._initialize = Scene_Map.prototype.initialize;
  11332.     Scene_Map_Mixin3._start = Scene_Map.prototype.start;
  11333.     Scene_Map_Mixin3._update = Scene_Map.prototype.update;
  11334.     Scene_Map_Mixin3._checkGameover = Scene_Map.prototype.checkGameover;
  11335.     Scene_Map_Mixin3._isMenuEnabled = Scene_Map.prototype.isMenuEnabled;
  11336.     Scene_Map_Mixin3._updateMain = Scene_Map.prototype.updateMain;
  11337.     Scene_Map_Mixin3._isAutosaveEnabled = Scene_Map.prototype.isAutosaveEnabled;
  11338.     mixin(Scene_Map, Scene_Map_Mixin3);
  11339.  
  11340.     // ts/ARPG_Core/Tilemap.ts
  11341.     var _Tilemap_Mixin = class extends Tilemap {
  11342.         initialize() {
  11343.             _Tilemap_Mixin._initialize.call(this);
  11344.             this._stoppedAnimation = false;
  11345.         }
  11346.         update() {
  11347.             if (!this._stoppedAnimation) {
  11348.                 this.animationCount++;
  11349.                 this.animationFrame = Math.floor(this.animationCount / 30);
  11350.             }
  11351.             for (const child of this.children) {
  11352.                 if (child.update) {
  11353.                     child.update();
  11354.                 }
  11355.             }
  11356.         }
  11357.         stopAnimation() {
  11358.             this._stoppedAnimation = true;
  11359.         }
  11360.         resumeAnimation() {
  11361.             this._stoppedAnimation = false;
  11362.         }
  11363.     };
  11364.     var Tilemap_Mixin = _Tilemap_Mixin;
  11365.     Tilemap_Mixin._initialize = Tilemap.prototype.initialize;
  11366.     Tilemap_Mixin._update = Tilemap.prototype.update;
  11367.     mixin(Tilemap, Tilemap_Mixin);
  11368.  
  11369.     // ts/ARPG_Core/Game_System.ts
  11370.     var _Game_System_Mixin = class extends Game_System {
  11371.         isSaveEnabled() {
  11372.             const result = _Game_System_Mixin._isSaveEnabled.call(this);
  11373.             if (!result)
  11374.                 return false;
  11375.             if ($gameMap.isEnabledARPGMode())
  11376.                 return false;
  11377.             return true;
  11378.         }
  11379.     };
  11380.     var Game_System_Mixin = _Game_System_Mixin;
  11381.     Game_System_Mixin._isSaveEnabled = Game_System.prototype.isSaveEnabled;
  11382.     mixin(Game_System, Game_System_Mixin);
  11383.  
  11384.     // ts/ARPG_Core/CharacterMover.ts
  11385.     var import_DotMoveSystem4 = __require("DotMoveSystem");
  11386.     var _CharacterMover_Mixin = class extends import_DotMoveSystem4.CharacterMover {
  11387.         continuousMoveProcess() {
  11388.             if (this._character.isDisableMove()) {
  11389.                 this._character.cancelAcceleration();
  11390.                 this._character._moving = false;
  11391.                 this.cancelMove();
  11392.             } else {
  11393.                 _CharacterMover_Mixin._continuousMoveProcess.call(this);
  11394.             }
  11395.         }
  11396.         dotMoveByDeg(deg, dpf = this._character.distancePerFrame()) {
  11397.             if (this._character.isDisableMove()) {
  11398.                 this._character.cancelAcceleration();
  11399.                 this._character._moving = false;
  11400.                 this.cancelMove();
  11401.             } else {
  11402.                 _CharacterMover_Mixin._dotMoveByDeg.call(this, deg, dpf);
  11403.             }
  11404.         }
  11405.     };
  11406.     var CharacterMover_Mixin = _CharacterMover_Mixin;
  11407.     CharacterMover_Mixin._continuousMoveProcess = import_DotMoveSystem4.CharacterMover.prototype.continuousMoveProcess;
  11408.     CharacterMover_Mixin._dotMoveByDeg = import_DotMoveSystem4.CharacterMover.prototype.dotMoveByDeg;
  11409.     mixin(import_DotMoveSystem4.CharacterMover, CharacterMover_Mixin);
  11410.  
  11411.     // ts/ARPG_Core/CharacterCollisionChecker.ts
  11412.     var import_DotMoveSystem5 = __require("DotMoveSystem");
  11413.     var _CharacterCollisionChecker_Mixin = class extends import_DotMoveSystem5.CharacterCollisionChecker {
  11414.         checkPassMass(ix, iy, d) {
  11415.             if (!$gameMap.isValid(ix, iy)) {
  11416.                 if (this._character.isNoCheckMapValid()) {
  11417.                     return true;
  11418.                 } else {
  11419.                     return false;
  11420.                 }
  11421.             }
  11422.             return _CharacterCollisionChecker_Mixin._checkPassMass.call(this, ix, iy, d);
  11423.         }
  11424.     };
  11425.     var CharacterCollisionChecker_Mixin = _CharacterCollisionChecker_Mixin;
  11426.     CharacterCollisionChecker_Mixin._checkPassMass = import_DotMoveSystem5.CharacterCollisionChecker.prototype.checkPassMass;
  11427.     mixin(import_DotMoveSystem5.CharacterCollisionChecker, CharacterCollisionChecker_Mixin);
  11428.  
  11429.     // ts/ARPG_Core/Window_MenuCommand.ts
  11430.     var _Window_MenuCommand_Mixin = class extends Window_MenuCommand {
  11431.         isFormationEnabled() {
  11432.             const result = _Window_MenuCommand_Mixin._isFormationEnabled.call(this);
  11433.             if (!result)
  11434.                 return false;
  11435.             if (!ARPG_Utils.isChangeActorEnabled())
  11436.                 return false;
  11437.             return true;
  11438.         }
  11439.     };
  11440.     var Window_MenuCommand_Mixin = _Window_MenuCommand_Mixin;
  11441.     Window_MenuCommand_Mixin._isFormationEnabled = Window_MenuCommand.prototype.isFormationEnabled;
  11442.     mixin(Window_MenuCommand, Window_MenuCommand_Mixin);
  11443.  
  11444.     // ts/ARPG_Core/Sprite.ts
  11445.     var _Sprite_Mixin = class extends Sprite {
  11446.         initialize(...args) {
  11447.             _Sprite_Mixin._initialize.call(this, ...args);
  11448.             this._componentRunner = new ComponentRunner(this);
  11449.         }
  11450.         update() {
  11451.             _Sprite_Mixin._update.call(this);
  11452.             this._componentRunner.update();
  11453.         }
  11454.         addComponent(component) {
  11455.             this._componentRunner.addComponent(component);
  11456.         }
  11457.         removeComponent(component) {
  11458.             this._componentRunner.removeComponent(component);
  11459.         }
  11460.         hasComponent(component) {
  11461.             return this._componentRunner.hasComponent(component);
  11462.         }
  11463.         hasComponentByClass(componentClass) {
  11464.             return this._componentRunner.hasComponentByClass(componentClass);
  11465.         }
  11466.     };
  11467.     var Sprite_Mixin = _Sprite_Mixin;
  11468.     Sprite_Mixin._initialize = Sprite.prototype.initialize;
  11469.     Sprite_Mixin._update = Sprite.prototype.update;
  11470.     mixin(Sprite, Sprite_Mixin);
  11471.  
  11472.     // ts/ARPG_Core/Main.ts
  11473.     simpleExport("ARPG_Core/ARPG_Actor/ARPG_Actor", ARPG_Actor);
  11474.     simpleExport("ARPG_Core/ARPG_BattleManager/ARPG_BattleManager", ARPG_BattleManager);
  11475.     simpleExport("ARPG_Core/ARPG_Battler/ARPG_Battler", ARPG_Battler);
  11476.     simpleExport("ARPG_Core/ARPG_BattlerParameters/ARPG_BattlerParameters", ARPG_BattlerParameters);
  11477.     simpleExport("ARPG_Core/ARPG_CharacterTempData/ARPG_CharacterTempData", ARPG_CharacterTempData);
  11478.     simpleExport("ARPG_Core/ARPG_CorePluginParams/ARPG_CorePluginParams", ARPG_CorePluginParams);
  11479.     simpleExport("ARPG_Core/ARPG_Effect/ARPG_Effect", ARPG_Effect);
  11480.     simpleExport("ARPG_Core/ARPG_SkillObject/ARPG_SkillObject", ARPG_SkillObject);
  11481.     simpleExport("ARPG_Core/ARPG_Enemy/ARPG_Enemy", ARPG_Enemy);
  11482.     simpleExport("ARPG_Core/ARPG_Skill/ARPG_Skill", ARPG_Skill);
  11483.     simpleExport("ARPG_Core/ARPG_Utils/ARPG_Utils", ARPG_Utils);
  11484.     simpleExport("ARPG_Core/ARPG_CustomManager/ARPG_CustomManager", ARPG_CustomManager);
  11485.     simpleExport("ARPG_Core/HitBox/HitBox", HitBox);
  11486.     simpleExport("ARPG_Core/HitChecker/HitChecker", HitChecker);
  11487.     simpleExport("ARPG_Core/CharacterBlowAwayProcessor/CharacterBlowAwayProcessor", CharacterBlowAwayProcessor);
  11488.     simpleExport("ARPG_Core/LevelUpProcessor/LevelUpProcessor", LevelUpProcessor);
  11489.     simpleExport("ARPG_Core/PlayerBehavior/PlayerBehavior", PlayerBehavior);
  11490.     simpleExport("ARPG_Core/MessageWindowController/MessageWindowController", MessageWindowController);
  11491.     simpleExport("ARPG_Core/Sprite_HitBox/Sprite_HitBox", Sprite_HitBox);
  11492.     simpleExport("ARPG_Core/Sprite_MapEventGauge/Sprite_MapEventGauge", Sprite_MapEventGauge);
  11493.     simpleExport("ARPG_Core/Sprite_Label/Sprite_Label", Sprite_Label);
  11494.     simpleExport("CommonLibrary/ChainComponent/ChainComponent", ChainComponent);
  11495.     simpleExport("CommonLibrary/CommonEventComponent/CommonEventComponent", CommonEventComponent);
  11496.     simpleExport("CommonLibrary/Component/Component", Component);
  11497.     simpleExport("CommonLibrary/ComponentRunner/ComponentRunner", ComponentRunner);
  11498.     simpleExport("CommonLibrary/Degree/Degree", Degree);
  11499.     simpleExport("CommonLibrary/HttpRequest/HttpRequest", HttpRequest);
  11500.     simpleExport("CommonLibrary/HttpResponse/HttpResponse", HttpResponse);
  11501.     simpleExport("CommonLibrary/MapLoader/MapLoader", MapLoader);
  11502.     simpleExport("CommonLibrary/mixin/mixin", mixin);
  11503.     simpleExport("CommonLibrary/PluginParamsParser/PluginParamsParser", PluginParamsParser);
  11504.     simpleExport("CommonLibrary/Processor/Processor", Processor);
  11505.     simpleExport("CommonLibrary/TimerComponent/TimerComponent", TimerComponent);
  11506.     window.ARPG_BattlerParameters = ARPG_BattlerParameters;
  11507. })();
  11508.  
  11509. require = __tmp__require;
  11510.  
Tags: RPG maker
Add Comment
Please, Sign In to add comment