forked from triacontane/RPGMakerMV
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathBattleOptions.js
134 lines (119 loc) · 5.32 KB
/
BattleOptions.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
//=============================================================================
// BattleOptions.js
// ----------------------------------------------------------------------------
// Copyright (c) 2015 Triacontane
// This software is released under the MIT License.
// http://opensource.org/licenses/mit-license.php
// ----------------------------------------------------------------------------
// Version
// 1.0.0 2016/02/21 初版
// ----------------------------------------------------------------------------
// [Blog] : http://triacontane.blogspot.jp/
// [Twitter]: https://twitter.com/triacontane/
// [GitHub] : https://github.com/triacontane/
//=============================================================================
/*:
* @plugindesc バトル画面オプション追加プラグイン
* @author トリアコンタン
*
* @param コマンド名称
* @desc 追加するコマンドの名称です。
* @default オプション
*
* @help 戦闘画面のパーティコマンドにオプションを追加します。
* 各種音量の変更やコマンドの記憶等が設定できます。
*
* このプラグインにはプラグインコマンドはありません。
*
* 利用規約:
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
* についても制限はありません。
* このプラグインはもうあなたのものです。
*/
(function () {
'use strict';
var pluginName = 'BattleOptions';
var getParamString = function(paramNames) {
var value = getParamOther(paramNames);
return value == null ? '' : value;
};
var getParamOther = function(paramNames) {
if (!Array.isArray(paramNames)) paramNames = [paramNames];
for (var i = 0; i < paramNames.length; i++) {
var name = PluginManager.parameters(pluginName)[paramNames[i]];
if (name) return name;
}
return null;
};
var commandName = getParamString(['コマンド名称', 'CommandName']);
//=============================================================================
// Scene_Battle
// パーティコマンドに選択肢を追加し、オプション画面との相互遷移を考慮します。
//=============================================================================
var _Scene_Battle_createPartyCommandWindow = Scene_Battle.prototype.createPartyCommandWindow;
Scene_Battle.prototype.createPartyCommandWindow = function() {
_Scene_Battle_createPartyCommandWindow.call(this);
this._partyCommandWindow.setHandler('options', function () {
SceneManager.push(Scene_Options);
}.bind(this));
if (SceneManager.isPreviousScene(Scene_Options)) {
this._partyCommandWindow.openness = 255;
}
};
var _Scene_Battle_createStatusWindow = Scene_Battle.prototype.createStatusWindow;
Scene_Battle.prototype.createStatusWindow = function() {
_Scene_Battle_createStatusWindow.apply(this, arguments);
if (SceneManager.isPreviousScene(Scene_Options)) {
this._statusWindow.openness = 255;
}
};
var _Scene_Battle_start = Scene_Battle.prototype.start;
Scene_Battle.prototype.start = function() {
if (SceneManager.isPreviousScene(Scene_Options)) {
Scene_Base.prototype.start.call(this);
} else {
_Scene_Battle_start.apply(this);
}
};
var _Scene_Battle_terminate = Scene_Battle.prototype.terminate;
Scene_Battle.prototype.terminate = function() {
if (SceneManager.isNextScene(Scene_Options)) {
Scene_Base.prototype.terminate.call(this);
} else {
_Scene_Battle_terminate.apply(this, arguments);
}
};
var _Scene_Battle_stop = Scene_Battle.prototype.stop;
Scene_Battle.prototype.stop = function() {
if (SceneManager.isNextScene(Scene_Options)) {
Scene_Base.prototype.stop.call(this);
} else {
_Scene_Battle_stop.apply(this, arguments);
}
};
//=============================================================================
// Scene_Options
// 戦闘画面のスプライトセットを追加定義します。
//=============================================================================
var _Scene_Options_create = Scene_Options.prototype.create;
Scene_Options.prototype.create = function() {
_Scene_Options_create.apply(this, arguments);
if (SceneManager.isPreviousScene(Scene_Battle)) this.createDisplayObjects();
};
Scene_Options.prototype.createDisplayObjects = function() {
this.createSpriteset();
};
Scene_Options.prototype.createSpriteset = function() {
this._spriteset = new Spriteset_Battle();
this.addChildAt(this._spriteset, 1);
};
//=============================================================================
// Window_PartyCommand
// パーティコマンドに選択肢を追加します。
//=============================================================================
var _Window_PartyCommand_makeCommandList = Window_PartyCommand.prototype.makeCommandList;
Window_PartyCommand.prototype.makeCommandList = function() {
_Window_PartyCommand_makeCommandList.apply(this, arguments);
this.addCommand(commandName, 'options');
};
})();