OMORI_Android/www.sc/js/plugins/YIN - Minigame - HardwareShop.js
2024-09-23 01:10:28 +03:00

246 lines
13 KiB
JavaScript

//-----------------------------------------------------------------------------
// OMORI Minigame - Hardware Organization
//-----------------------------------------------------------------------------
Game_Interpreter.prototype.initializeHardwareOrganizing = function() {
var shelf1 = [];
var shelf2 = [];
var shelf3 = [];
var shelf4 = [];
var shelf5 = [];
var shelf6 = [];
$gameSystem.shelves = [];
$gameSystem.shelves.push(shelf1);
$gameSystem.shelves.push(shelf2);
$gameSystem.shelves.push(shelf3);
$gameSystem.shelves.push(shelf4);
$gameSystem.shelves.push(shelf5);
$gameSystem.shelves.push(shelf6);
$gameSystem.products = [
0, 0, 0, 0, 0, 0, // DRILL
10, 10, 10, 10, 10, 10, // TAPE
3, 3, 3, 3, 3, 3, // SHOVEL
4, 4, 4, 4, 4, 4, // SAW
6, 6, 6, 6, 6, 6, // HAMMER
7, 7, 7, 7, 7, 7 // WRENCH
];
//console.log($gameSystem.shelves[5])
var curElement = $gameSystem.products.length;
var temp;
var randomizedLoc;
while (0 !== curElement) {
randomizedLoc = Math.min(Math.floor(Math.random() * curElement), $gameSystem.products.length - 1);
curElement -= 1;
temp = $gameSystem.products[curElement];
$gameSystem.products[curElement] = $gameSystem.products[randomizedLoc];
$gameSystem.products[randomizedLoc] = temp;
};
for (var i = 0; i < $gameSystem.shelves.length; i++) {
var shelf = $gameSystem.shelves[i];
for (var j = 0; j < 6; j++) {
shelf.push($gameSystem.products[0]);
$gameSystem.products.shift();
}
}
}
Game_Interpreter.prototype.placeTool = function() {
var shelf = $gameVariables.value(812);
for (var i = 0; i < $gameSystem.shelves[shelf].length; i++) {
if ($gameSystem.shelves[shelf][i] === -1) { // First empty space
// console.log($gameSystem.shelves[shelf][i]);
//
if ($gameVariables.value(815) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_3").text) $gameSystem.shelves[shelf][i] = 0;
else if ($gameVariables.value(815) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_4").text) $gameSystem.shelves[shelf][i] = 10;
else if ($gameVariables.value(815) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_5").text) $gameSystem.shelves[shelf][i] = 3;
else if ($gameVariables.value(815) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_6").text) $gameSystem.shelves[shelf][i] = 4;
else if ($gameVariables.value(815) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_7").text) $gameSystem.shelves[shelf][i] = 6;
else if ($gameVariables.value(815) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_8").text) $gameSystem.shelves[shelf][i] = 7;
break;
}
}
this.checkHardwareOrganization();
/*
console.log("Current Shelf: " + $gameVariables.value(812),
"Index: " + $gameVariables.value(814),
"Selected Item: " + $gameVariables.value(815),
"Currently Held Item: " + $gameVariables.value(813));*/
}
Game_Interpreter.prototype.replaceTool = function() {
var shelf = $gameVariables.value(812);
//
if ($gameVariables.value(813) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_3").text) $gameSystem.shelves[shelf][$gameVariables.value(814)] = 0;
else if ($gameVariables.value(813) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_4").text) $gameSystem.shelves[shelf][$gameVariables.value(814)] = 10;
else if ($gameVariables.value(813) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_5").text) $gameSystem.shelves[shelf][$gameVariables.value(814)] = 3;
else if ($gameVariables.value(813) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_6").text) $gameSystem.shelves[shelf][$gameVariables.value(814)] = 4;
else if ($gameVariables.value(813) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_7").text) $gameSystem.shelves[shelf][$gameVariables.value(814)] = 6;
else if ($gameVariables.value(813) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_8").text) $gameSystem.shelves[shelf][$gameVariables.value(814)] = 7;
this.checkHardwareOrganization();
/*console.log("REPLACING " + "Current Shelf: " + $gameVariables.value(812),
"Index: " + $gameVariables.value(814),
"Selected Item: " + $gameVariables.value(815),
"Currently Held Item: " + $gameVariables.value(813));*/
}
Game_Interpreter.prototype.returnTool = function() {
for (var shelf = 0; shelf < $gameSystem.shelves.length; shelf++) {
console.log(shelf);
for (var i = 0; i < $gameSystem.shelves[shelf].length; i++) {
if ($gameSystem.shelves[shelf][i] === -1) { // First empty space
// console.log($gameSystem.shelves[shelf][i]);
//
if ($gameVariables.value(815) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_3").text) $gameSystem.shelves[shelf][i] = 0;
else if ($gameVariables.value(815) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_4").text) $gameSystem.shelves[shelf][i] = 10;
else if ($gameVariables.value(815) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_5").text) $gameSystem.shelves[shelf][i] = 3;
else if ($gameVariables.value(815) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_6").text) $gameSystem.shelves[shelf][i] = 4;
else if ($gameVariables.value(815) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_7").text) $gameSystem.shelves[shelf][i] = 6;
else if ($gameVariables.value(815) === LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_8").text) $gameSystem.shelves[shelf][i] = 7;
break;
}
}
}
$gameVariables.setValue(813, -1);
$gameVariables.setValue(814, -1);
$gameVariables.setValue(815, 0);
}
var yin_GameInterpreter_setupChoicesShop = Game_Interpreter.prototype.setupChoices;
Game_Interpreter.prototype.setupChoices = function (params) {
if ($gameSwitches.value(804)) {
if (params[0][0] === "Hardware Shelf") {
var shelfNum = $gameVariables.value(812);
var shelfProducts = [];
for (var i = 0; i < $gameSystem.shelves[shelfNum].length; i++) {
if ($gameSystem.shelves[shelfNum][i] === -1) continue;
else if ($gameSystem.shelves[shelfNum][i] === 0) shelfProducts.push(LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_3").text);
else if ($gameSystem.shelves[shelfNum][i] === 10) shelfProducts.push(LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_4").text);
else if ($gameSystem.shelves[shelfNum][i] === 3) shelfProducts.push(LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_5").text);
else if ($gameSystem.shelves[shelfNum][i] === 4) shelfProducts.push(LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_6").text);
else if ($gameSystem.shelves[shelfNum][i] === 6) shelfProducts.push(LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_7").text);
else if ($gameSystem.shelves[shelfNum][i] === 7) shelfProducts.push(LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_8").text);
}
// for (var i = 0; i < $gameSystem.shelves[shelfNum].length; i++) {
// console.log("Shelf " + shelfNum + " Contents: " + this.getToolName($gameSystem.shelves[shelfNum][i]));
// }
// console.log("Shelf " + shelfNum + " Options List: " + shelfProducts);
shelfProducts.push(LanguageManager.getMessageData("farawaytown_extras_pizzaminigame.message_17").text);
}
var choices = shelfProducts ? shelfProducts : params[0].clone();
var cancelType = params[1];
var defaultType = params.length > 2 ? params[2] : 0;
var positionType = params.length > 3 ? params[3] : 2;
var background = params.length > 4 ? params[4] : 0;
// console.log(choices);
$gameMessage.setChoices(choices, defaultType, cancelType);
$gameMessage.setChoiceBackground(background);
$gameMessage.setChoicePositionType(positionType);
$gameMessage.setChoiceCallback(function (n) {
this._branch[this._indent] = n;
}.bind(this));
} else yin_GameInterpreter_setupChoicesShop.call(this, params);
};
Game_Interpreter.prototype.getToolName = function(id) {
// console.log(id);
if (id === -1) return "Nothing";
else if (id === 0) return LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_3").text;
else if (id === 1) return LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_4").text;
else if (id === 3) return LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_5").text;
else if (id === 4) return LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_6").text;
else if (id === 6) return LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_7").text;
else if (id === 7) return LanguageManager.getMessageData("farawaytown_extras_hardwareminigame.message_8").text;
}
Game_Interpreter.prototype.checkHardwareOrganization = function() {
for (var i = 0; i < $gameSystem.shelves.length; i++) {
var shelf = $gameSystem.shelves[i];
if (i === 0) var rightfulProduct = 0;
if (i === 1) var rightfulProduct = 4;
if (i === 2) var rightfulProduct = 10;
if (i === 3) var rightfulProduct = 6;
if (i === 4) var rightfulProduct = 3;
if (i === 5) var rightfulProduct = 7;
for (var j = 0; j < shelf.length; j++) {
if (shelf[j] === rightfulProduct) {
// console.log("Shelf " + i + ", Item " + j + ": TRUE");
var result = true;
} else {
// console.log("Shelf " + i + ", Item " + j + ": FALSE");
var result = false;
j = shelf.length;
}
}
if (!result) {
break;
}
// console.log("Shelf " + i + result);
}
// console.log("Everything organized? " + result);
return result;
};
//=============================================================================
// New Game_Character function for tools display
//=============================================================================
Game_Character.prototype.getToolGraphic = function (shelfItem) {
if (shelfItem === 0) {
var x = 0;
var y = 0;
} else if (shelfItem === 10) {
var x = 1;
var y = 3;
} else if (shelfItem === 3) {
var x = 0;
var y = 1;
} else if (shelfItem === 4) {
var x = 1;
var y = 1;
} else if (shelfItem === 6) {
var x = 0;
var y = 2;
} else if (shelfItem === 7) {
var x = 1;
var y = 2;
}
return this.setCustomFrameXY(x, y);
}
//=============================================================================
// Changes specific to the hardware shop minigame
//=============================================================================
var yin_WindowChoiceList_callOkHandlerShop = Window_ChoiceList.prototype.callOkHandler;
Window_ChoiceList.prototype.callOkHandler = function () {
const loc_yes = LanguageManager.getMessageData("XX_GENERAL.message_4").text
const loc_no = LanguageManager.getMessageData("XX_GENERAL.message_5").text
const nevermind = LanguageManager.getMessageData("farawaytown_extras_pizzaminigame.message_17").text
if ($gameSwitches.value(804) && this._list[this.index()].name !== loc_yes && this._list[this.index()].name !== loc_no) {
if (this._list[this.index()].name === nevermind) {
$gameMap._interpreter.command115();
} else {
$gameVariables.setValue(814, this.index());
$gameVariables.setValue(815, this._list[this.index()].name);
}
}
yin_WindowChoiceList_callOkHandlerShop.call(this);
};
var yin_WindowChoiceList_numVisibleRowsHardware = Window_ChoiceList.prototype.numVisibleRows;
Window_ChoiceList.prototype.numVisibleRows = function () {
if ($gameSwitches.value(804)) {
var choices = $gameMessage.choices();
var numLines = choices.length > 7 ? 7 : choices.length;
return numLines;
}
return yin_WindowChoiceList_numVisibleRowsHardware.call(this);
};