magical-girls-runa-and-nanami/js/plugins/DebugEnemyActionTable.js
2026-02-28 12:33:13 -06:00

84 lines
3.1 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*=============================================================================
DebugEnemyActionTable.js
----------------------------------------------------------------------------
(C)2021 Triacontane
This software is released under the MIT License.
http://opensource.org/licenses/mit-license.php
----------------------------------------------------------------------------
Version
1.0.1 2021/04/17 MZ用に微修正
1.0.0 2021/04/17 初版
----------------------------------------------------------------------------
[Blog] : https://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
=============================================================================*/
/*:
* @plugindesc DebugEnemyActionTablePlugin
* @author triacontane
* @target MZ
* @url https://github.com/triacontane/RPGMakerMV/tree/mz_master/DebugEnemyActionTable.js
*
* @help DebugEnemyActionTable.js
*
* This is a debug plugin that outputs
* the enemy character's action table to the log.
*
* This is output when the action is decided.
* Does not work except in test play.
*
* This plugin is released under the MIT License.
*/
/*:ja
* @plugindesc 敵キャラ行動テーブルデバッグプラグイン
* @author トリアコンタン
* @target MZ
* @url https://github.com/triacontane/RPGMakerMV/tree/mz_master/DebugEnemyActionTable.js
*
* @help DebugEnemyActionTable.js
*
* 敵キャラの行動テーブルをログに出力するデバッグプラグインです。
* 行動決定時に出力されます。テストプレー以外では動作しません。
* 
* このプラグインにはプラグインコマンドはありません。
*
* 利用規約:
* 作者に無断で改変、再配布が可能で、利用形態商用、18禁利用等
* についても制限はありません。
* このプラグインはもうあなたのものです。
*/
(()=> {
'use strict';
if (!Utils.isOptionValid('test')) {
return;
}
const _Game_Enemy_selectAction = Game_Enemy.prototype.selectAction;
Game_Enemy.prototype.selectAction = function (actionList, ratingZero) {
const resultAction = _Game_Enemy_selectAction.apply(this, arguments);
this.recordActionTable(actionList, ratingZero, resultAction);
return resultAction;
}
Game_Enemy.prototype.recordActionTable = function (actionList, ratingZero, resultAction) {
const sum = actionList.reduce((r, a) => r + a.rating - ratingZero, 0);
if (sum <= 0) {
return;
}
const data = actionList.map(action => {
const item = {};
const skill = $dataSkills[action.skillId] || {};
item['Skill Name'] = skill.name;
item['Rating'] = action.rating;
item['Percent'] = (action.rating - ratingZero) / sum * 100;
item['Use'] = action.skillId === resultAction.skillId ? 'Yes' : 'No';
return item;
});
console.group(`[${this.name()}] Action List`);
console.table(data);
console.groupEnd();
}
})();