// DarkPlasma_BuffRate 2.1.0 // Copyright (c) 2020 DarkPlasma // This software is released under the MIT license. // http://opensource.org/licenses/mit-license.php /** * 2023/09/23 2.1.0 typescript移行 * 最大HP,最大MPに対応 * 2021/07/05 2.0.2 MZ 1.3.2に対応 * 2021/06/22 2.0.1 サブフォルダからの読み込みに対応 * 2020/09/08 2.0.0 パラメータ名変更 * 2020/08/27 1.0.0 MZ版公開 */ /*: @target MZ @url https://github.com/elleonard/DarkPlasma-MZ-Plugins/tree/release @plugindesc Set the strengthening and weakening multipliers individually @author DarkPlasma @license MIT @help English Help Translator: munokura This is an unofficial English translation of the plugin help, created to support global RPG Maker users. Feedback is welcome to improve translation quality (see: https://github.com/munokura/DarkPlasma-MZ-Plugins ). Original plugin by DarkPlasma. Please check the latest official version at: https://github.com/elleonard/DarkPlasma-MZ-Plugins/tree/release ----- version: 2.1.0 You can now set individual multipliers for ability enhancements and debuffs. @param maxHp @text Max HP Strengthening/Weakening Multiplier @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param maxMp @text Maximum MP Strengthening/Weakening Multiplier @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param attack @text Attack Strengthening/Weakening Multiplier @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param defense @text Defense Strengthening/Weakening Multiplier @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param magicAttack @text Magic Strengthening/Weakening Multiplier @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param magicDefense @text Magic defense strengthening/weakening multiplier @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param agility @text Agility Enhancement/Weakness Multiplier @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param luck @text Luck Enhancement/Weakness Multiplier @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} */ /*:ja @plugindesc 強化・弱体の倍率を個別に設定する @author DarkPlasma @license MIT @target MZ @url https://github.com/elleonard/DarkPlasma-MZ-Plugins/tree/release @param maxHp @text 最大HPの強化・弱体倍率 @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param maxMp @text 最大MPの強化・弱体倍率 @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param attack @text 攻撃力の強化・弱体倍率 @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param defense @text 防御力の強化・弱体倍率 @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param magicAttack @text 魔法力の強化・弱体倍率 @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param magicDefense @text 魔法防御力の強化・弱体倍率 @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param agility @text 敏捷性の強化・弱体倍率 @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @param luck @text 運の強化・弱体倍率 @type struct @default {"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"} @help version: 2.1.0 能力強化・弱体の倍率を個別に設定できるようにします。 */ (() => { 'use strict'; const pluginName = document.currentScript.src.replace(/^.*\/(.*).js$/, function () { return arguments[1]; }); const pluginParametersOf = (pluginName) => PluginManager.parameters(pluginName); const pluginParameters = pluginParametersOf(pluginName); const settings = { maxHp: ((parameter) => { const parsed = JSON.parse(parameter); return { buffRate1: Number(parsed.buffRate1 || 25), buffRate2: Number(parsed.buffRate2 || 50), debuffRate1: Number(parsed.debuffRate1 || 25), debuffRate2: Number(parsed.debuffRate2 || 50), }; })(pluginParameters.maxHp || '{"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"}'), maxMp: ((parameter) => { const parsed = JSON.parse(parameter); return { buffRate1: Number(parsed.buffRate1 || 25), buffRate2: Number(parsed.buffRate2 || 50), debuffRate1: Number(parsed.debuffRate1 || 25), debuffRate2: Number(parsed.debuffRate2 || 50), }; })(pluginParameters.maxMp || '{"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"}'), attack: ((parameter) => { const parsed = JSON.parse(parameter); return { buffRate1: Number(parsed.buffRate1 || 25), buffRate2: Number(parsed.buffRate2 || 50), debuffRate1: Number(parsed.debuffRate1 || 25), debuffRate2: Number(parsed.debuffRate2 || 50), }; })(pluginParameters.attack || '{"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"}'), defense: ((parameter) => { const parsed = JSON.parse(parameter); return { buffRate1: Number(parsed.buffRate1 || 25), buffRate2: Number(parsed.buffRate2 || 50), debuffRate1: Number(parsed.debuffRate1 || 25), debuffRate2: Number(parsed.debuffRate2 || 50), }; })(pluginParameters.defense || '{"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"}'), magicAttack: ((parameter) => { const parsed = JSON.parse(parameter); return { buffRate1: Number(parsed.buffRate1 || 25), buffRate2: Number(parsed.buffRate2 || 50), debuffRate1: Number(parsed.debuffRate1 || 25), debuffRate2: Number(parsed.debuffRate2 || 50), }; })(pluginParameters.magicAttack || '{"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"}'), magicDefense: ((parameter) => { const parsed = JSON.parse(parameter); return { buffRate1: Number(parsed.buffRate1 || 25), buffRate2: Number(parsed.buffRate2 || 50), debuffRate1: Number(parsed.debuffRate1 || 25), debuffRate2: Number(parsed.debuffRate2 || 50), }; })(pluginParameters.magicDefense || '{"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"}'), agility: ((parameter) => { const parsed = JSON.parse(parameter); return { buffRate1: Number(parsed.buffRate1 || 25), buffRate2: Number(parsed.buffRate2 || 50), debuffRate1: Number(parsed.debuffRate1 || 25), debuffRate2: Number(parsed.debuffRate2 || 50), }; })(pluginParameters.agility || '{"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"}'), luck: ((parameter) => { const parsed = JSON.parse(parameter); return { buffRate1: Number(parsed.buffRate1 || 25), buffRate2: Number(parsed.buffRate2 || 50), debuffRate1: Number(parsed.debuffRate1 || 25), debuffRate2: Number(parsed.debuffRate2 || 50), }; })(pluginParameters.luck || '{"buffRate1":"25", "buffRate2":"50", "debuffRate1":"25", "debuffRate2":"50"}'), }; const paramNames = ['maxHp', 'maxMp', 'attack', 'defense', 'magicAttack', 'magicDefense', 'agility', 'luck']; const buffRates = paramNames.map((paramName) => [0, settings[paramName].buffRate1, settings[paramName].buffRate2]); const debuffRates = paramNames.map((paramName) => [ 0, -1.0 * settings[paramName].debuffRate1, -1.0 * settings[paramName].debuffRate2, ]); Game_BattlerBase.prototype.paramBuffRate = function (paramId) { const buffRate = this._buffs[paramId] > 0 ? buffRates[paramId][this._buffs[paramId]] : debuffRates[paramId][-1.0 * this._buffs[paramId]]; return buffRate / 100 + 1.0; }; })();