-
Notifications
You must be signed in to change notification settings - Fork 130
/
BattleToneTemporary.js
131 lines (123 loc) · 4.24 KB
/
BattleToneTemporary.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
/*=============================================================================
BattleToneTemporary.js
----------------------------------------------------------------------------
(C)2020 Triacontane
This software is released under the MIT License.
http://opensource.org/licenses/mit-license.php
----------------------------------------------------------------------------
Version
1.1.0 2022/08/19 戦闘開始時の初期色調(複数指定可能)を指定できる機能を追加
1.0.1 2022/08/19 MZでの動作を確認しリファクタリング
1.0.0 2020/05/11 初版
----------------------------------------------------------------------------
[Blog] : https://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
=============================================================================*/
/*:
* @plugindesc 戦闘時の色調の一時化プラグイン
* @target MZ
* @url https://github.com/triacontane/RPGMakerMV/tree/mz_master/BattleToneTemporary.js
* @author トリアコンタン
*
* @param toneList
* @text 色調リスト
* @desc 戦闘開始時に色調を自動で適用します。複数指定可能。複数の条件を満たした場合は、下に定義したものが優先されます。
* @default []
* @type struct<TONE>[]
*
* @help BattleToneTemporary.js
*
* 戦闘中の色調をマップと切り離して一時化します。
* 戦闘開始時に初期化され、戦闘が終了すると
* マップ上で指定していた色調に戻ります。
*
* このプラグインにはプラグインコマンドはありません。
*
* 利用規約:
* 作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
* についても制限はありません。
* このプラグインはもうあなたのものです。
*/
/*~struct~TONE:
*
* @param red
* @text 赤
* @desc 色調の赤成分です。
* @default 0
* @type number
* @min -255
* @max 255
*
* @param green
* @text 緑
* @desc 色調の緑成分です。
* @default 0
* @type number
* @min -255
* @max 255
*
* @param blue
* @text 青
* @desc 色調の青成分です。
* @default 0
* @type number
* @min -255
* @max 255
*
* @param gray
* @text グレースケール
* @desc 色調のグレースケールです。
* @default 0
* @type number
* @min 0
* @max 255
*
* @param switch
* @text 適用条件スイッチ
* @desc 指定したスイッチがONのときだけ色調を適用します。指定が無い場合、常に適用します。
* @default 0
* @type switch
*
*/
(()=> {
'use strict';
const script = document.currentScript;
const param = PluginManagerEx.createParameter(script);
//=============================================================================
// Game_Screen
// 色調を保持、復帰する機能を実装します。
//=============================================================================
Game_Screen.prototype.saveTone = function() {
this._prevTone = this._tone;
this._tone = [0, 0, 0, 0];
this.applyInitialTone();
};
Game_Screen.prototype.applyInitialTone = function() {
if (!param.toneList) {
return;
}
param.toneList
.filter(tone => $gameSwitches.value(tone.switch) || !tone.switch)
.forEach(tone => this._tone = [tone.red, tone.green, tone.blue, tone.gray]);
};
Game_Screen.prototype.restoreTone = function() {
if (this._prevTone) {
this._tone = this._prevTone;
}
};
//=============================================================================
// Scene_Battle
// 戦闘中にマップの色調変更が反映されなくなります。
//=============================================================================
const _Scene_Battle_start = Scene_Battle.prototype.start;
Scene_Battle.prototype.start = function() {
$gameScreen.saveTone();
_Scene_Battle_start.apply(this, arguments);
};
const _Scene_Battle_terminate = Scene_Battle.prototype.terminate;
Scene_Battle.prototype.terminate = function() {
$gameScreen.restoreTone();
_Scene_Battle_terminate.apply(this, arguments);
};
})();