silver-bullet/js/plugins/YKP_Core.js
2024-07-02 14:17:45 -05:00

206 lines
4.6 KiB
JavaScript

//=============================================================================
// YKP_Core.js
//
// Copyright (c) 2019 YukiKamijo
// This software is released under the MIT License.
// http://opensource.org/licenses/mit-license.php
//=============================================================================
var Imported = Imported || {};
Imported.YKP_Core = true;
var YukiKP = YukiKP || {};
YukiKP.Core = YukiKP.Core || {};
/*:
* @plugindesc YukiKamijoPluginの基底プラグイン。
* @target MZ
* @author YukiKamijo
*
* @help YKP_Core.js
* YukiKamijo 制作プラグインの基底プラグインです。
* 一部のプラグインを除いて、このプラグインが必要です。
* YKP_XxxxxXxxxx.jsの一番上に置いてください。
*
*
*
* plugin version 1.0.0
*/
(() => {
// プラグイン引数の設定
const pluginName = "YKP_Core";
})();
window.$gameYKPObjectData = window.$gameYKPObjectData || {};
YukiKP.Core.createGameObjects = DataManager.createGameObjects;
DataManager.createGameObjects = function () {
YukiKP.Core.createGameObjects.call(this);
$gameYKPObjectData = new Game_YKPObjectData();
};
YukiKP.Core.makeSaveContents = DataManager.makeSaveContents;
DataManager.makeSaveContents = function () {
var contents = YukiKP.Core.makeSaveContents.call(this);
contents.YKPObjectData = $gameYKPObjectData;
return contents;
};
YukiKP.Core.extractSaveContents = DataManager.extractSaveContents;
DataManager.extractSaveContents = function (contents) {
YukiKP.Core.extractSaveContents.call(this, contents);
$gameYKPObjectData = contents.YKPObjectData;
};
YukiKP.Core.processEscapeCharacter =
Window_Base.prototype.processEscapeCharacter;
Window_Base.prototype.processEscapeCharacter = function (code, textState) {
YukiKP.Core.processEscapeCharacter.apply(this, arguments);
switch (code) {
case "N":
this.processNewLine(textState);
textState.index--;
break;
}
};
function Game_YKPObjectData() {
this.initialize.apply(this, arguments);
}
Game_YKPObjectData.prototype.initialize = function () {};
// string command
YukiKP.Core.strCommand = function (str) {
return Function("return " + str)();
};
// string => boolean
YukiKP.Core.strBoolean = function (str) {
return Function("return " + str + " === true")();
};
// string lower
YukiKP.Core.strLower = function (str) {
if ("teststr" !== "TestStr".toLowerCase()) {
return str.replace(/[A-Z]/g, function (ch) {
return String.fromCharCode(ch.charCodeAt(0) | 32);
});
} else {
return str.toLowerCase();
}
};
// value search is key
YukiKP.Core.valueSearchKey = function (obj, value) {
return Object.keys(obj).filter(function (k) {
return obj[k] == value;
})[0];
};
// plugin command enable or disable
YukiKP.Core.checkEnable = function (state) {
return state === "enable";
};
// sort number ascending
YukiKP.Core.sortNumAsc = function (a, b) {
return a - b;
};
// sort number descending
YukiKP.Core.sortNumDesc = function (a, b) {
return b - a;
};
// sort boolean descending
YukiKP.Core.sortBoolDesc = function (a, b) {
return a && !b;
};
YukiKP.Core.drawIcon = function (index) {
return "\x1bI[" + index + "]";
};
// convert message
YukiKP.Core.convertMessage = function (str) {
switch (str) {
case "mhp":
return TextManager.param(0);
case "hp":
return TextManager.basic(2);
case "mmp":
return TextManager.param(1);
case "mp":
return TextManager.basic(4);
case "atk":
return TextManager.param(2);
case "def":
return TextManager.param(3);
case "mat":
return TextManager.param(4);
case "mdf":
return TextManager.param(5);
case "agi":
return TextManager.param(6);
case "luk":
return TextManager.param(7);
}
return null;
};
// convert paramer number
YukiKP.Core.convertParamNum = function (str) {
switch (str) {
case "mhp":
return 0;
case "mmp":
return 1;
case "atk":
return 2;
case "def":
return 3;
case "mat":
return 4;
case "mdf":
return 5;
case "agi":
return 6;
case "luk":
return 7;
}
return null;
};
YukiKP.Core.convertDatabase = function (type) {
switch (type) {
case 0:
case "0":
case "i":
return $dataItems;
case 1:
case "1":
case "w":
return $dataWeapons;
case 2:
case "2":
case "a":
return $dataArmors;
}
return null;
};
YukiKP.Core.convertItemtype = function (type) {
switch (type) {
case 0:
case "0":
return "items";
case 1:
case "1":
return "weapons";
case 2:
case "2":
return "armors";
}
return null;
};