show-first/js/plugins/BalloonPosition.js
2024-08-08 11:24:10 -05:00

143 lines
4.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*=============================================================================
BalloonPosition.js
----------------------------------------------------------------------------
(C)2021 Triacontane
This software is released under the MIT License.
http://opensource.org/licenses/mit-license.php
----------------------------------------------------------------------------
Version
1.0.2 2021/01/28 MZで動作するよう修正
1.0.1 2021/01/28 英語ヘルプを記述
1.0.0 2021/01/27 初版
----------------------------------------------------------------------------
[Blog] : https://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
=============================================================================*/
/*:
* @plugindesc BalloonPositionPlugin
* @author triacontane
* @url https://github.com/triacontane/RPGMakerMV/tree/mz_master/BalloonPosition.js
* @target MZ
* @base PluginCommonBase
*
* @param BalloonXNoImage
* @desc Uniformly adjusts the x of balloon for events where no image is specified.
* @default 0
* @type number
* @min -2000
* @max 2000
*
* @param BalloonYNoImage
* @desc Uniformly adjusts the y of balloon for events where no image is specified.
* @default 0
* @min -2000
* @max 2000
*
* @help BalloonPosition.js
*
* Adjusts the display coordinates of balloon
* <BalloonX:5>
* <BalloonY:-5>
*
* This plugin is released under the MIT License.
*/
/*:ja
* @plugindesc フキダシ位置調整プラグイン
* @author トリアコンタン
* @url https://github.com/triacontane/RPGMakerMV/tree/mz_master/BalloonPosition.js
* @target MZ
* @base PluginCommonBase
*
* @param BalloonXNoImage
* @text 画像なしX座標
* @desc 画像が指定されていないイベントのフキダシX座標を一律で調整します。
* @default 0
* @type number
* @min -2000
* @max 2000
*
* @param BalloonYNoImage
* @text 画像なしY座標
* @desc 画像が指定されていないイベントのフキダシY座標を一律で調整します。
* @default 0
* @min -2000
* @max 2000
*
* @help BalloonPosition.js
*
* フキダシの表示座標を調整します。
* イベントのメモ欄に以下の通り入力してください。
* <BalloonX:5> # フキダシのX座標を右に[5]ずらします。
* <BalloonY:-5> # フキダシのY座標を上に[5]ずらします。
*
* このプラグインにはプラグインコマンドはありません。
*
* 利用規約:
* 作者に無断で改変、再配布が可能で、利用形態商用、18禁利用等
* についても制限はありません。
* このプラグインはもうあなたのものです。
*/
(function () {
"use strict";
const script = document.currentScript;
const param = PluginManagerEx.createParameter(script);
/**
* Game_CharacterBase
* フキダシの座標を取得可能にします。
*/
Game_CharacterBase.prototype.isNoImage = function () {
return !this._tileId && !this._characterName;
};
Game_CharacterBase.prototype.findBalloonX = function () {
return 0;
};
Game_CharacterBase.prototype.findBalloonY = function () {
return 0;
};
/**
* Game_Event
* フキダシの座標をメモ欄から取得します。
*/
Game_Event.prototype.findBalloonX = function () {
const x = PluginManagerEx.findMetaValue(this.event(), "BalloonX");
if (x) {
return x;
} else if (this.isNoImage()) {
return param.BalloonXNoImage;
} else {
return 0;
}
};
Game_Event.prototype.findBalloonY = function () {
const y = PluginManagerEx.findMetaValue(this.event(), "BalloonY");
if (y) {
return y;
} else if (this.isNoImage()) {
return param.BalloonYNoImage;
} else {
return 0;
}
};
/**
* Sprite_Balloon
* フキダシの表示位置を調整します。
*/
const _Sprite_Balloon_updatePosition =
Sprite_Balloon.prototype.updatePosition;
Sprite_Balloon.prototype.updatePosition = function () {
_Sprite_Balloon_updatePosition.apply(this, arguments);
if (this.targetObject && this.targetObject instanceof Game_CharacterBase) {
this.x += this.targetObject.findBalloonX();
this.y += this.targetObject.findBalloonY();
}
};
})();