-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathTMCostShow.js
256 lines (240 loc) · 7.62 KB
/
TMCostShow.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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
//=============================================================================
// TMPlugin - コスト表示拡張
// バージョン: 1.0.0
// 最終更新日: 2017/09/25
// 配布元 : http://hikimoki.sakura.ne.jp/
//-----------------------------------------------------------------------------
// Copyright (c) 2015 tomoaky
// Released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================
/*:
* @plugindesc MP消費とTP消費が両方設定されたスキルのコストを
* 無理やり両方表示します。
*
* @author tomoaky (http://hikimoki.sakura.ne.jp/)
*
* @param mpCostHeader
* @desc 消費MPの頭につける文字列
* 初期値: MP
* @default MP
*
* @param tpCostHeader
* @desc 消費TPの頭につける文字列
* 初期値: TP
* @default TP
*
* @param conjunction
* @desc コストとコストの間につける文字列
* 初期値: /
* @default /
*
* @param costWidthText
* @desc コストの幅として参照する文字列
* 初期値: 000
* @default 000
*
* @param maxCostNum
* @desc 同時に表示するコストの上限
* 初期値: 2
* @default 2
*
* @param ---TMSkillCostEx---
* @default 以下はTMSkillCostEx併用時に利用
*
* @param hpCostHeader
* @desc 消費HPの頭につける文字列
* 初期値: HP
* @default HP
*
* @param expCostHeader
* @desc 消費経験値の頭につける文字列
* 初期値: EXP
* @default EXP
*
* @param expCostFooter
* @desc 消費経験値のお尻につける文字列
* 初期値:
* @default
*
* @param goldCostHeader
* @desc 消費お金の頭につける文字列
* 初期値:
* @default
*
* @param goldCostFooter
* @desc 消費お金のお尻につける文字列
* 初期値: G
* @default G
*
* @param hpCostColor
* @desc 消費HPの文字色番号
* 初期値: 21
* @default 21
*
* @param expCostColor
* @desc 消費経験値の文字色番号
* 初期値: 16
* @default 16
*
* @param goldCostColor
* @desc 消費お金の文字色番号
* 初期値: 0
* @default 0
*
* @help
* TMPlugin - コスト表示拡張 ver1.0.0
*
* 使い方:
*
* スキル名が長い場合や、コストの桁数が多い場合にはスキル名とコストが
* 重なって表示されてしまいます。
*
* パラメータ costWidthText の文字数を変更することで
* スキル名の表示幅に上限を設けることができます。
* たとえば costWidthText が 00000 の場合、コストの表示幅として
* 半角の 0 5文字分を確保し、スキル名の表示幅をその分だけ狭くします。
*
* TMSkillCostEx を併用している場合、消費HP、経験値、お金も
* コスト表示されるようになります。
*
* プラグインコマンドはありません。
*
* このプラグインは RPGツクールMV Version 1.5.1 で動作確認をしています。
*
* このプラグインはMITライセンスのもとに配布しています、商用利用、
* 改造、再配布など、自由にお使いいただけます。
*/
var Imported = Imported || {};
Imported.TMCostShow = true;
(function() {
var parameters = PluginManager.parameters('TMCostShow');
var hpCostHeader = parameters['hpCostHeader'];
var mpCostHeader = parameters['mpCostHeader'];
var tpCostHeader = parameters['tpCostHeader'];
var expCostHeader = parameters['expCostHeader'];
var expCostFooter = parameters['expCostFooter'];
var goldCostHeader = parameters['goldCostHeader'];
var goldCostFooter = parameters['goldCostFooter'];
var conjunction = parameters['conjunction'];
var costWidthText = parameters['costWidthText'];
var maxCostNum = Number(parameters['maxCostNum'])
var hpCostColor = Number(parameters['hpCostColor']);
var expCostColor = Number(parameters['expCostColor']);
var goldCostColor = Number(parameters['goldCostColor']);
//-----------------------------------------------------------------------------
// Window_SkillList
//
Window_SkillList.prototype.drawSkillCost = function(skill, x, y, width) {
x += width;
var count = 0;
var cost = this._actor.skillTpCost(skill);
if (cost > 0) {
x = this.drawSkillTpCost(cost, x, y);
if (count++ === maxCostNum - 1) {
return;
}
}
cost = this._actor.skillMpCost(skill);
if (cost > 0) {
x = this.drawSkillMpCost(cost, x, y, count);
if (count++ === maxCostNum - 1) {
return;
}
}
if (Imported.TMSkillCostEx) {
cost = this._actor.skillHpCost(skill);
if (cost > 0) {
x = this.drawSkillHpCost(cost, x, y, count);
if (count++ === maxCostNum - 1) {
return;
}
}
cost = this._actor.skillExpCost(skill);
if (cost > 0) {
x = this.drawSkillExpCost(cost, x, y, count);
if (count++ === maxCostNum - 1) {
return;
}
}
cost = this._actor.skillGoldCost(skill);
if (cost > 0) {
x = this.drawSkillGoldCost(cost, x, y, count);
if (count++ === maxCostNum - 1) {
return;
}
}
}
};
Window_SkillList.prototype.drawConjunction = function(x, y) {
this.resetTextColor();
x -= this.textWidth(conjunction);
this.drawText(conjunction, x, y);
return x;
};
Window_SkillList.prototype.drawSkillTpCost = function(tpCost, x, y) {
this.changeTextColor(this.tpCostColor());
x -= this.textWidth(tpCost);
this.drawText(tpCost, x, y);
x -= this.drawSkillCostHeader(tpCostHeader, x, y);
return x;
};
Window_SkillList.prototype.drawSkillMpCost = function(mpCost, x, y, count) {
if (count > 0) {
x = this.drawConjunction(x, y);
}
this.changeTextColor(this.mpCostColor());
x -= this.textWidth(mpCost);
this.drawText(mpCost, x, y);
x -= this.drawSkillCostHeader(mpCostHeader, x, y);
return x;
};
Window_SkillList.prototype.drawSkillHpCost = function(hpCost, x, y, count) {
if (count > 0) {
x = this.drawConjunction(x, y);
}
this.changeTextColor(this.textColor(hpCostColor));
x -= this.textWidth(hpCost);
this.drawText(hpCost, x, y);
x -= this.drawSkillCostHeader(hpCostHeader, x, y);
return x;
};
Window_SkillList.prototype.drawSkillExpCost = function(expCost, x, y, count) {
if (count > 0) {
x = this.drawConjunction(x, y);
}
x -= this.drawSkillCostFooter(expCostFooter, x, y);
this.changeTextColor(this.textColor(expCostColor));
x -= this.textWidth(expCost);
this.drawText(expCost, x, y);
x -= this.drawSkillCostHeader(expCostHeader, x, y);
return x;
};
Window_SkillList.prototype.drawSkillGoldCost = function(goldCost, x, y, count) {
if (count > 0) {
x = this.drawConjunction(x, y);
}
x -= this.drawSkillCostFooter(goldCostFooter, x, y);
this.changeTextColor(this.textColor(goldCostColor));
x -= this.textWidth(goldCost);
this.drawText(goldCost, x, y);
x -= this.drawSkillCostHeader(goldCostHeader, x, y);
return x;
};
Window_SkillList.prototype.drawSkillCostHeader = function(header, x, y) {
this.contents.fontSize = this.standardFontSize() - 12;
var w = this.textWidth(header);
this.drawText(header, x - w, y + 4, w);
this.contents.fontSize = this.standardFontSize();
return w;
};
Window_SkillList.prototype.drawSkillCostFooter = function(footer, x, y) {
this.changeTextColor(this.systemColor());
var w = this.textWidth(footer);
this.drawText(footer, x - w, y, w);
return w;
};
Window_SkillList.prototype.costWidth = function() {
return this.textWidth(costWidthText);
};
})();