-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathMNKR_EnemyIconMZ.js
87 lines (82 loc) · 3.1 KB
/
MNKR_EnemyIconMZ.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*
* --------------------------------------------------
* MNKR_EnemyIconMZ.js
* Ver.1.1.0
* Copyright (c) 2020 Munokura
* This software is released under the MIT license.
* http://opensource.org/licenses/mit-license.php
* --------------------------------------------------
*/
/*:
* @target MZ
* @url https://raw.githubusercontent.com/munokura/MNKR-MZ-plugins/master/MNKR_MNKR_EnemyIcon.js
* @plugindesc 戦闘画面で敵キャラの名前の前にアイコンを表示します。
* @author munokura
*
* @help
* 戦闘画面で敵キャラの名前の前にアイコンを表示します。
*
* 敵キャラのメモ欄に下記のようにタグを入れてください。
* <MNKR_EnemyIcon:アイコンID>
* アイコンIDはカンマ区切りで複数を指定できます。
*
* 例
* <MNKR_EnemyIcon:64,65>
*
* 注意事項
*
* <MNKR_EnemyIcon:0,65>
* のように0以下の数値を入れるとアイコンが表示されません。
*
* また、敵キャラの名前の枠の幅を超えたアイコン数(デフォルトでは9個以上)を
* 指定するとアイコンは縮まりません。
* アイコンが枠をはみ出し、敵キャラ名が表示されません。
*
*
* プラグインコマンドはありません。
*
*
* 利用規約:
* MITライセンスです。
* https://licenses.opensource.jp/MIT/MIT.html
* 作者に無断で改変、再配布が可能で、
* 利用形態(商用、18禁利用等)についても制限はありません。
*
*
* Ver.1.1.0
* アイコンを複数表示可能に機能追加
*
* @param defaultIcon
* @text デフォルトアイコン
* @type number
* @desc メモタグを入れない場合に表示するアイコン。デフォルト16
* 0にすると、非表示で左に詰まります。
* @default 16
*/
(() => {
'use strict';
const pluginName = document.currentScript.src.split("/").pop().replace(/\.js$/, "");
const parameters = PluginManager.parameters(pluginName);
const PRM_defaultIcon = Number(parameters['defaultIcon'] || 16);
const _Window_BattleEnemy_drawItem = Window_BattleEnemy.prototype.drawItem
Window_BattleEnemy.prototype.drawItem = function (index) {
const enemyObj = this._enemies[index];
const icons = enemyObj.enemy().meta.MNKR_EnemyIcon;
const iconArr = icons ? icons.split(',').map(Number) : [PRM_defaultIcon];
if (iconArr[0] > 0) {
const iconMargin = ImageManager.iconWidth + 2;
const name = enemyObj.name();
const rect = this.itemLineRect(index);
const iconY = rect.y + (this.lineHeight() - ImageManager.iconHeight) / 2;
const textMargin = iconMargin * iconArr.length + 2;
const itemWidth = Math.max(1, rect.width - textMargin);
this.resetTextColor();
for (let i in iconArr) {
this.drawIcon(iconArr[i], rect.x + iconMargin * i, iconY);
}
this.drawText(name, rect.x + textMargin, rect.y, itemWidth);
} else {
_Window_BattleEnemy_drawItem.call(this, index);
};
};
})();