84 lines
3.1 KiB
JavaScript
84 lines
3.1 KiB
JavaScript
/*=============================================================================
|
||
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();
|
||
}
|
||
})();
|