pastime/js/plugins/TorigoyaMZ_Achievement2_AddonUseSaveSlot.js
2026-03-15 16:45:22 -05:00

101 lines
3.9 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.

/*---------------------------------------------------------------------------*
* TorigoyaMZ_Achievement2_AddonUseSaveSlot.js v.1.0.0
*---------------------------------------------------------------------------*
* 2020/11/26 00:53 (JST)
*---------------------------------------------------------------------------*
* Ruたん ( @ru_shalm )
* https://torigoya-plugin.rutan.dev
*---------------------------------------------------------------------------*/
/*:
* @target MZ
* @plugindesc 実績プラグインアドオン: セーブ別実績 (v.1.0.0)
* @author Ruたんru_shalm
* @license public domain
* @version 1.0.0
* @url https://raw.githubusercontent.com/rutan/torigoya-rpg-maker-plugin/gh-pages/TorigoyaMZ_Achievement2_AddonUseSaveSlot.js
* @base TorigoyaMZ_Achievement2
* @orderAfter TorigoyaMZ_Achievement2
* @help
* 実績プラグインアドオン: セーブ別実績 (v.1.0.0)
* https://torigoya-plugin.rutan.dev
*
* このプラグインは「実績プラグイン」のアドオンです。
* 実績プラグインより下に導入してください。
*
* 実績をセーブ別に保存するようにします。
* このプラグインに設定項目はありません。
*
* 【注意】
* このアドオンを有効にすると、タイトル画面での実績表示は正常に動きません。
* 実績プラグインの設定で、タイトル画面でのメニュー表示をOFFにしてください。
*/
(function () {
'use strict';
const Torigoya = (window.Torigoya = window.Torigoya || {});
function getPluginName() {
const cs = document.currentScript;
return cs ? cs.src.split('/').pop().replace(/\.js$/, '') : 'TorigoyaMZ_Achievement2_AddonUseSaveSlot';
}
function readParameter() {
const parameter = PluginManager.parameters(getPluginName());
return {
version: '1.0.0',
};
}
function checkPlugin(obj, errorMessage) {
if (typeof obj !== 'undefined') return;
alert(errorMessage);
throw errorMessage;
}
checkPlugin(Torigoya.Achievement2, '「実績アドオン:セーブ別実績」より上に「実績プラグイン」が導入されていません。');
Torigoya.Achievement2.Addons = Torigoya.Achievement2.Addons || {};
Torigoya.Achievement2.Addons.UseSaveSlot = {
name: getPluginName(),
parameter: readParameter(),
};
(() => {
// -------------------------------------------------------------------------
// Manager
Torigoya.Achievement2.Manager.options.onInit = function (manager) {
manager.setAchievements(Torigoya.Achievement2.parameter.baseAchievementData);
};
Torigoya.Achievement2.Manager.options.onSave = null;
// -------------------------------------------------------------------------
// DataManager
const upstream_DataManager_createGameObjects = DataManager.createGameObjects;
DataManager.createGameObjects = function () {
upstream_DataManager_createGameObjects.apply(this);
Torigoya.Achievement2.Manager.resetData();
};
const upstream_DataManager_makeSaveContents = DataManager.makeSaveContents;
DataManager.makeSaveContents = function () {
const contents = upstream_DataManager_makeSaveContents.apply(this);
contents.torigoyaAchievement2 = Torigoya.Achievement2.Manager.createSaveContents();
return contents;
};
const upstream_DataManager_extractSaveContents = DataManager.extractSaveContents;
DataManager.extractSaveContents = function (contents) {
upstream_DataManager_extractSaveContents.apply(this, arguments);
const { torigoyaAchievement2 } = contents;
if (torigoyaAchievement2) {
Torigoya.Achievement2.Manager.extractSaveContents(torigoyaAchievement2);
}
};
})();
})();