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

213 lines
6 KiB
JavaScript
Raw Permalink 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.

//=============================================================================
// MT_ChangeMoveSpeed.js
// 移動速度を補正するプラグイン
// ----------------------------------------------------------------------------
// (C) 2019 Moooty
//=============================================================================
/*:
* @plugindesc Change Move Speed.
* @author Moooty
*
* @param playerWalkSpeedRate
* @desc Player(and Follower)'s move speed rate(default1)
* @type number
* @decimals 2
* @default 1.00
*
* @param vehicle1MoveSpeedRate
* @desc Vehicle1(Boat)'s move speed rate.(default: 1)
* @type number
* @decimals 2
* @default 1.00
*
* @param vehicle2MoveSpeedRate
* @desc Vehicle2(Ship)'s move speed rate.(default: 1)
* @type number
* @decimals 2
* @default 1.00
*
* @param vehicle3MoveSpeedRate
* @desc Vehicle3(Airship)'s move speed rate.(default: 1)
* @type number
* @decimals 2
* @default 1.00
*
* @param eventSpeedRate
* @desc Map Event's move speed rate.(default: 1)
* @type number
* @decimals 2
* @default 1.00
*
* @help
* === Description ===
* Multiply move speed by plagin paramter.
*
* Nothing plugin commnad this plugin.
*
*
* === Change Log ===
* Apr 18, 2019 ver1.00 Initial release.
* Nov 24, 2019 ver1.10 Rename plugin file.ChangeMoveSpeed → MT_ChangeMoveSpeed.js
*
* === Manual & License(Japanese) ===
* https://www.5ing-myway.com/rpgmaker-plugin-change-move-speed/
*
*/
/*:ja
* @plugindesc 移動速度を補正
* @author むーてぃ
*
* @param playerWalkSpeedRate
* @text プレイヤーの移動速度補正
* @desc プレイヤーとフォロワー(仲間)の移動速度補正(デフォルト1倍)
* @type number
* @decimals 2
* @default 1.00
*
* @param vehicle1MoveSpeedRate
* @text 乗り物1の移動速度補正
* @desc 乗り物1の移動速度補正(デフォルト: 1倍)
* @type number
* @decimals 2
* @default 1.00
*
* @param vehicle2MoveSpeedRate
* @text 乗り物2の移動速度補正
* @desc 乗り物2の移動速度補正(デフォルト: 1倍)
* @type number
* @decimals 2
* @default 1.00
*
* @param vehicle3MoveSpeedRate
* @text 乗り物3の移動速度補正
* @desc 乗り物3の移動速度補正(デフォルト: 1倍)
* @type number
* @decimals 2
* @default 1.00
*
* @param eventSpeedRate
* @text マップイベントの移動速度補正
* @desc マップイベントの移動速度補正(デフォルト:1倍)
* @type number
* @decimals 2
* @default 1.00
*
* @help
* === 説明 ===
* 移動速度を変更できるプラグインです。
*
* このプラグインにはプラグインコマンドはありません。
*
* === 更新履歴 ===
* 2019/04/18 ver1.00 初版
* 2019/11/24 ver1.10 ファイル名変更ChangeMoveSpeed → MT_ChangeMoveSpeed.js
*
* === マニュアル&ライセンス ===
* https://www.5ing-myway.com/rpgmaker-plugin-change-move-speed/
*
*/
var Imported = Imported || {};
Imported.MT_ChangeMoveSpeed = true;
(function () {
"use strict";
const PLUGIN_NAME = "MT_ChangeMoveSpeed";
var parameters = PluginManager.parameters(PLUGIN_NAME);
var playerMoveSpeedRate = getParameterValue(
parameters["playerWalkSpeedRate"],
1
);
var vehiclesSpeedRate = [];
vehiclesSpeedRate.push(
getParameterValue(parameters["vehicle1MoveSpeedRate"], 1)
);
vehiclesSpeedRate.push(
getParameterValue(parameters["vehicle2MoveSpeedRate"], 1)
);
vehiclesSpeedRate.push(
getParameterValue(parameters["vehicle3MoveSpeedRate"], 1)
);
var eventSpeedRate = getParameterValue(parameters["eventSpeedRate"], 1);
// ---------- rpg_object.js の変更ここから ----------
// Game_CharacterBase
// 元の式に移動速度補正をかける
var _Game_CharacterBase_distancePerFrame =
Game_CharacterBase.prototype.distancePerFrame;
Game_CharacterBase.prototype.distancePerFrame = function () {
return (
_Game_CharacterBase_distancePerFrame.call(this) * this.moveSpeedRate()
);
};
// メソッド追加(速度補正取得)
Game_CharacterBase.prototype.moveSpeedRate = function () {
return this._moveSpeedRate;
};
// Game_Player
var _Game_Player_initialize = Game_Player.prototype.initialize;
Game_Player.prototype.initialize = function () {
_Game_Player_initialize.call(this);
this._moveSpeedRate = playerMoveSpeedRate;
};
// メソッド追加(速度補正取得)
Game_Player.prototype.moveSpeedRate = function () {
if ($gamePlayer.vehicle() != null) {
if ($gamePlayer.vehicle()._driving) {
return $gamePlayer.vehicle()._moveSpeedRate;
}
}
return this._moveSpeedRate;
};
// Game_Follower
var _Game_Follower_initialize = Game_Follower.prototype.initialize;
Game_Follower.prototype.initialize = function (memberIndex) {
_Game_Follower_initialize.call(this, memberIndex);
this._moveSpeedRate = playerMoveSpeedRate;
};
// Game_Vehicle
var _Game_Vehicle_initialze = Game_Vehicle.prototype.initialize;
Game_Vehicle.prototype.initialize = function (type) {
_Game_Vehicle_initialze.call(this, type);
if (this.isBoat()) {
this._moveSpeedRate = vehiclesSpeedRate[0];
} else if (this.isShip()) {
this._moveSpeedRate = vehiclesSpeedRate[1];
} else if (this.isAirship()) {
this._moveSpeedRate = vehiclesSpeedRate[2];
}
};
// Game_Event
var _Game_Event_initialize = Game_Event.prototype.initialize;
Game_Event.prototype.initialize = function (mapId, eventId) {
this._moveSpeedRate = eventSpeedRate;
_Game_Event_initialize.call(this, mapId, eventId);
};
// ---------- rpg_object.js の変更ここまで ----------
// ---------- パラメータ取得用関数ここから ----------
// @type numberのパラメータでも文字列を入れることができてしまう対策
function getParameterValue(param, defaultValue) {
var result = Number(param || defaultValue);
if (Number.isNaN(result)) {
result = defaultValue;
}
return result;
}
// ---------- パラメータ取得用関数ここまで ----------
})();