OMORI_Android/www.eng/js/plugins/YIN - Minigame - Jukebox.js
2024-01-15 18:44:53 +03:00

151 lines
7.8 KiB
JavaScript

//-----------------------------------------------------------------------------
// OMORI Minigame - Jukebox
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
// Show Choice Edits
//-----------------------------------------------------------------------------
var yin_GameInterpreter_setupChoicesJukebox = Game_Interpreter.prototype.setupChoices;
Game_Interpreter.prototype.setupChoices = function (params) {
if ($gameSystem._jukeboxList) console.log($gameSystem._jukeboxList.filter(function(x) { console.log(x, params[0][0]); return params[0][0] == x}));
if (params[0][0] === "JukeboxList" || ($gameSystem._jukeboxList && $gameSystem._jukeboxList.contains(params[0][0]))) {
params[0] = [];
params[0] = params[0].concat($gameSystem._jukeboxList);
if (!params[0].contains(["NEVERMIND, NEVERMIND"]) || params[0].contains(['farawaytown_extras_pizzaminigame.message_17', 'farawaytown_extras_pizzaminigame.message_17'])) {
//console.log("PUSH NEVERMIND");
params[0].push(['farawaytown_extras_pizzaminigame.message_17', 'farawaytown_extras_pizzaminigame.message_17']);
}
console.log(params[0]);
}
yin_GameInterpreter_setupChoicesJukebox.call(this, params);
};
//=============================================================================
// Window_ChoiceList Edits
//=============================================================================
var yin_WindowChoiceList_callOkHandlerJukebox = Window_ChoiceList.prototype.callOkHandler;
Window_ChoiceList.prototype.callOkHandler = function () {
if ($gameSystem._jukeboxOn) {
const loc_nevermind = LanguageManager.getMessageData('farawaytown_extras_pizzaminigame.message_17').text
if (this._list[this.index()].name == loc_nevermind) {
$gameMap._interpreter.command115();
} else {
console.log(LanguageManager.getMessageData($gameSystem._jukeboxList[this.index()][0]).text);
if (LanguageManager.getMessageData($gameSystem._jukeboxList[this.index()][0]).text == "jb_omniboi") { // CHILL CD volume
var bgm = {
name: LanguageManager.getMessageData($gameSystem._jukeboxList[this.index()][0]).text,
volume: 90,
pitch: 100,
pan: 0
};
} else {
var bgm = {
name: LanguageManager.getMessageData($gameSystem._jukeboxList[this.index()][0]).text,
volume: 100,
pitch: 100,
pan: 0
};
}
AudioManager.playBgm(bgm);
}
$gameSystem._jukeboxOn = false;
}
yin_WindowChoiceList_callOkHandlerJukebox.call(this);
};
var yin_WindowChoiceList_makeCommandListJukebox = Window_ChoiceList.prototype.makeCommandList;
Window_ChoiceList.prototype.makeCommandList = function () {
if ($gameSystem._jukeboxOn) {
for (var i = 0; i < $gameMessage.choices().length; i++) {
if ($gameMessage.choices()[i][0].contains("farawaytown_")) {
var item = LanguageManager.getMessageData($gameMessage.choices()[i][1]).text;
$gameMessage.choices()[i] = item.toUpperCase();
}
}
}
yin_WindowChoiceList_makeCommandListJukebox.call(this);
};
var yin_WindowChoiceList_numVisibleRowsJukebox = Window_ChoiceList.prototype.numVisibleRows;
Window_ChoiceList.prototype.numVisibleRows = function () {
if ($gameSystem._jukeboxOn) {
var choices = $gameMessage.choices();
var numLines = choices.length > 11 ? 11 : choices.length;
return numLines;
}
return yin_WindowChoiceList_numVisibleRowsJukebox.call(this);
};
var yin_Window_ChoiceList_maxChoiceWidth = Window_ChoiceList.prototype.maxChoiceWidth;
Window_ChoiceList.prototype.maxChoiceWidth = function () {
if ($gameSystem._jukeboxOn) {
var maxWidth = 96;
var choices = $gameMessage.choices();
for (var i = 0; i < choices.length; i++) {
if ($gameMessage.choices()[i][0].contains("farawaytown_")) {
var choiceWidth = this.textWidthEx(LanguageManager.getMessageData(choices[i][1]).text) + this.textPadding() * 2;
} else {
//console.log(choices[i]);
var choiceWidth = this.textWidthEx(choices[i]) + this.textPadding() * 2;
}
if (maxWidth < choiceWidth) {
maxWidth = choiceWidth;
}
}
return maxWidth + 32 + this.textPadding();
} else {
return yin_Window_ChoiceList_maxChoiceWidth.call(this);
}
};
//=============================================================================
// Game_System Edits and Additions
//=============================================================================
var yin_GameSystem_initializeJukebox = Game_System.prototype.initialize;
Game_System.prototype.initialize = function() {
yin_GameSystem_initializeJukebox.call(this);
this._jukeboxListFull = { // All CD Items
// Format: CD Item ID (For checking if the player has the CD):[language file to the filename (To play the correct song based on the item), language file to the song name (for the choice list)]
198: ['sidequest_farawaytown_ginojukebox.message_20', 'sidequest_farawaytown_ginojukebox.message_200'],
199: ['sidequest_farawaytown_ginojukebox.message_21', 'sidequest_farawaytown_ginojukebox.message_201'],
200: ['sidequest_farawaytown_ginojukebox.message_22', 'sidequest_farawaytown_ginojukebox.message_202'],
201: ['sidequest_farawaytown_ginojukebox.message_23', 'sidequest_farawaytown_ginojukebox.message_203'],
202: ['sidequest_farawaytown_ginojukebox.message_24', 'sidequest_farawaytown_ginojukebox.message_204'],
203: ['sidequest_farawaytown_ginojukebox.message_25', 'sidequest_farawaytown_ginojukebox.message_205'],
204: ['sidequest_farawaytown_ginojukebox.message_26', 'sidequest_farawaytown_ginojukebox.message_206'],
205: ['sidequest_farawaytown_ginojukebox.message_27', 'sidequest_farawaytown_ginojukebox.message_207'],
206: ['sidequest_farawaytown_ginojukebox.message_28', 'sidequest_farawaytown_ginojukebox.message_208'],
207: ['sidequest_farawaytown_ginojukebox.message_29', 'sidequest_farawaytown_ginojukebox.message_209'],
208: ['sidequest_farawaytown_ginojukebox.message_30', 'sidequest_farawaytown_ginojukebox.message_210'],
209: ['sidequest_farawaytown_ginojukebox.message_31', 'sidequest_farawaytown_ginojukebox.message_211'],
210: ['sidequest_farawaytown_ginojukebox.message_32', 'sidequest_farawaytown_ginojukebox.message_212']
};
this._jukeboxList = [];
}
Game_System.prototype.addJukeboxItem = function(songID) {
this._jukeboxList.push(this._jukeboxListFull[songID]);
$gameParty.gainItem($dataItems[songID], -1)
var jukeboxCDs = [ // IDs of CD items (in the database)
198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210
];
if (this._jukeboxList.length >= jukeboxCDs.length){
$gameSystem.unlockAchievement("MUSIC_CONNOISSEUR_OF_SORTS")
}
}
Game_System.prototype.playerHasCD = function() {
var jukeboxCDs = [ // IDs of CD items (in the database)
198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210
];
var cdsInInventory = [];
for (var i = 0; i < jukeboxCDs.length; i++) {
if ($gameParty.hasItem($dataItems[jukeboxCDs[i]])) {
cdsInInventory.push($dataItems[jukeboxCDs[i]].id);
$gameVariables.setValue(829, $dataItems[jukeboxCDs[i]].name);
$gameVariables.setValue(830, $dataItems[jukeboxCDs[i]].id);
}
}
return cdsInInventory;
}