-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathTMRegionPassable.js
95 lines (87 loc) · 3.58 KB
/
TMRegionPassable.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
//=============================================================================
// TMPlugin - リージョン通行設定
// バージョン: 1.0.0
// 最終更新日: 2018/03/02
// 配布元 : http://hikimoki.sakura.ne.jp/
//-----------------------------------------------------------------------------
// Copyright (c) 2018 tomoaky
// Released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================
/*:
* @target MZ MV
* @url https://raw.githubusercontent.com/munokura/tomoaky-MV-plugins/master/TMRegionPassable.js
* @author tomoaky (https://twitter.com/tomoaky/)
* @plugindesc その場所が通行可能かどうかをリージョンで設定できるようになります。
*
* @param passableRegions
* @text 通行可能リージョン
* @type string
* @desc タイルに関係なく通行を可能にするリージョン番号。
* 半角スペース区切りで複数設定
* 初期値: 251
* @default 251
*
* @param dontPassRegions
* @text 通行不可リージョン
* @type string
* @desc タイルに関係なく通行を不可にするリージョン番号。
* 半角スペース区切りで複数設定
* 初期値: 252 253
* @default 252 253
*
* @param counterRegions
* @text カウンター属性リージョン
* @type string
* @desc カウンター属性をもたせるリージョン番号。
* 半角スペース区切りで複数設定
* 初期値: 253
* @default 253
*
* @help
* TMPlugin - リージョン通行設定 ver1.0.0
*
* 使い方:
*
* プラグインパラメータで通行可能リージョンと通行不可リージョンの番号を
* それぞれ設定してください。
* これらのリージョンが付加された場所ではタイルによる通行判定を実行せず、
* リージョンでのみ通行できるかどうかが決まります。
*
* また、リージョン番号を半角スペースで区切って複数設定することで
* 複数のリージョンに通行設定を適用できます。
*
* プラグインコマンドはありません。
*
*
* 利用規約:
* MITライセンスです。
* https://ja.osdn.net/projects/opensource/wiki/licenses%2FMIT_license
* 作者に無断で改変、再配布が可能で、
* 利用形態(商用、18禁利用等)についても制限はありません。
*/
var Imported = Imported || {};
Imported.TMRegionPassable = true;
(function() {
'use strict';
var parameters = PluginManager.parameters('TMRegionPassable');
var passableRegions = (parameters['passableRegions'] || '251').split(' ').map(Number);
var dontPassRegions = (parameters['dontPassRegions'] || '252 253').split(' ').map(Number);
var counterRegions = (parameters['counterRegions'] || '253').split(' ').map(Number);
//-----------------------------------------------------------------------------
// Game_Map
//
var _Game_Map_checkPassage = Game_Map.prototype.checkPassage;
Game_Map.prototype.checkPassage = function(x, y, bit) {
var regionId = this.regionId(x, y);
if (passableRegions.indexOf(regionId) >= 0) return true;
if (dontPassRegions.indexOf(regionId) >= 0) return false;
return _Game_Map_checkPassage.call(this, x, y, bit);
};
var _Game_Map_isCounter = Game_Map.prototype.isCounter;
Game_Map.prototype.isCounter = function(x, y) {
var regionId = this.regionId(x, y);
if (counterRegions.indexOf(regionId) >= 0) return true;
return _Game_Map_isCounter.call(this, x, y);
};
})();