Create-Task/files/shops.js
2025-04-14 11:40:21 -05:00

251 lines
No EOL
11 KiB
JavaScript

import { randomNumber, userInput } from "./functions.js";
import "./variables.js";
// Inventories for the various shops, based of global item lists
// Most item prices in Raven Rock and Eureka are multiplied by 10, as they are using pre-war money
var rrInv = [
{item: supplyList[0], name: supplyList[0].name, price: supplyList[0].cost, amount: 1000},
{item: supplyList[1], name: supplyList[1].name, price: supplyList[1].cost*10, amount: 100},
{item: supplyList[2], name: supplyList[2].name, price: supplyList[2].cost*10, amount: 100},
{item: supplyList[3], name: supplyList[3].name, price: supplyList[3].cost*10, amount: 100},
{item: equipmentList[0], name: equipmentList[0].name, price: equipmentList[0].cost*10, amount: 10},
{item: equipmentList[2], name: equipmentList[2].name, price: equipmentList[1].cost*10, amount: 10},
{item: equipmentList[8], name: equipmentList[8].name, price: equipmentList[2].cost*10, amount: 10},
];
var vt0Inv = [];
var vegasInv = []; // A mix of gunrunners, mick&ralphs, and followers
var eurInv = [];
var traderInv = [];
export function ravenRockStore() {
while (true) {
console.clear();
console.log("Welcome to Raven Rock. Requisition supplies before heading out.");
console.log("Name | Price (PW Money) | Amount in stock");
console.log("-----------------------------------------------------");
for (var i = 0; i < rrInv.length; i++) {
console.log(i+"). " + rrInv[i].name + " | " + rrInv[i].price + " | " + rrInv[i].amount);
}
console.log("-----------------------------------------------------");
console.log("You have " + preWarMoney + " pre-war money.");
console.log("What would you like to do?");
console.log("1) Buy supplies");
console.log("2) Leave shop");
var rrInput = userInput("Enter: ");
switch(rrInput) {
case "1":
console.log("What would you like to buy?");
let itemNum = userInput("Enter item number: ");
let itemAmt = userInput("Enter amount: ");
if (itemAmt > rrInv[itemNum].amount) {
console.log("Not enough stock.");
userInput("[Enter]");
break;
} else if (itemAmt * rrInv[itemNum].price > preWarMoney) {
console.log("Not enough money.");
userInput("[Enter]");
break;
} else {
preWarMoney -= itemAmt * rrInv[itemNum].price;
rrInv[itemNum].amount -= itemAmt;
console.log("You bought " + itemAmt + " " + rrInv[itemNum].name + "(s).");
console.log("You have " + preWarMoney + " pre-war money left.");
console.log("Press enter to continue...");
userInput("[Enter]");
}
break;
case "2":
console.log("Leaving shop...");
return true;
break;
default:
console.log("Invalid input, try again.");
}
}
}
function vaultZeroStore() {
while (true) {
console.clear();
console.log("Brotherhood of Steel Requisition System - Vault 0");
console.log("Name | Price (Caps) | Amount in stock");
console.log("-----------------------------------------------------");
for (var i = 0; i < vt0InvInv.length; i++) {
console.log(i+"). " + vt0InvInv[i].item + " | " + vtInv[i].price + " | " + vtInv[i].amount);
}
console.log("-----------------------------------------------------");
console.log("You have " + caps + " caps.");
console.log("What would you like to do?");
console.log("1) Buy supplies");
console.log("2) Leave shop");
var vt0Input = userInput("Enter: ");
switch(vt0Input) {
case "1":
console.log("What would you like to buy?");
let itemNum = userInput("Enter item number: ");
let itemAmt = userInput("Enter amount: ");
if (itemAmt > vt0Inv[itemNum].amount) {
console.log("Not enough stock.");
break;
} else if (itemAmt * vt0Inv[itemNum].price > caps) {
console.log("Not enough money.");
break;
} else {
caps -= itemAmt * vt0Inv[itemNum].price;
rrInv[itemNum].amount -= itemAmt;
console.log("You bought " + itemAmt + " " + vt0Inv[itemNum].item + "(s).");
console.log("You have " + caps + " caps left.");
console.log("Press enter to continue...");
userInput("[Enter]");
}
break;
case "2":
console.log("Leaving shop...");
return true;
default:
console.log("Invalid input, try again.");
}
}
}
function newVegasStore() {
while (true) {
console.clear();
console.log("Welcome to New Vegas. Selection pulls from Gunrunners, Mick & Ralph's, and Followers of the Apocalypse.");
console.log("Name | Price (Caps) | Amount in stock");
console.log("-----------------------------------------------------");
for (var i = 0; i < vegasInv.length; i++) {
console.log(i+"). " + vegasInv[i].item + " | " + vegasInv[i].price + " | " + vegasInv[i].amount);
}
console.log("-----------------------------------------------------");
console.log("You have " + caps + " caps.");
console.log("What would you like to do?");
console.log("1) Buy supplies");
console.log("2) Leave shop");
var nvInput = userInput("Enter: ");
switch(nvInput) {
case "1":
console.log("What would you like to buy?");
let itemNum = userInput("Enter item number: ");
let itemAmt = userInput("Enter amount: ");
if (itemAmt > vegasInv[itemNum].amount) {
console.log("Not enough stock.");
break;
} else if (itemAmt * vegasInv[itemNum].price > preWarMoney) {
console.log("Not enough money.");
break;
} else {
preWarMoney -= itemAmt * vegasInv[itemNum].price;
vegasInv[itemNum].amount -= itemAmt;
console.log("You bought " + itemAmt + " " + vegasInv[itemNum].item + "(s).");
console.log("You have " + caps + " caps left.");
console.log("Press enter to continue...");
userInput("[Enter]");
}
break;
case "2":
console.log("Leaving shop...");
return true;
break;
default:
console.log("Invalid input, try again.");
}
}
}
function eurekaStore() {
while (true) {
console.clear();
console.log("Welcome to Eureka. Selection pulls from local traders and willing Enclave Veterans.");
console.log("Name | Price (PW Money) | Amount in stock");
console.log("-----------------------------------------------------");
for (var i = 0; i < eurInv.length; i++) {
console.log(i+"). " + eurInv[i].item + " | " + eurInv[i].price + " | " + eurInv[i].amount);
}
console.log("-----------------------------------------------------");
console.log("You have " + preWarMoney + " pre-war money.");
console.log("What would you like to do?");
console.log("1) Buy supplies");
console.log("2) Leave shop");
var eurInput = userInput("Enter: ");
switch(eurInput) {
case "1":
console.log("What would you like to buy?");
let itemNum = userInput("Enter item number: ");
let itemAmt = userInput("Enter amount: ");
if (itemAmt > eurInv[itemNum].amount) {
console.log("Not enough stock.");
break;
} else if (itemAmt * eurInv[itemNum].price > preWarMoney) {
console.log("Not enough money.");
break;
} else {
preWarMoney -= itemAmt * eurInv[itemNum].price;
eurInv[itemNum].amount -= itemAmt;
console.log("You bought " + itemAmt + " " + eurInv[itemNum].item + "(s).");
console.log("You have " + preWarMoney + " pre-war money left.");
console.log("Press enter to continue...");
userInput("[Enter]");
}
break;
case "2":
console.log("Leaving shop...");
return true;
default:
console.log("Invalid input, try again.");
}
}
}
function trader() { // Picks a selection of items from a global trader inventory, used for misc area shops
var tempTraderInv = [];
for (var a = 0; a <= 2; a++) {
let randomPick = randomNumber()
tempTraderInv.push(traderInv[1]);
console.log(randomPick);
}
console.log(tempTraderInv);
while (true) {
console.clear();
console.log("You attempt to trade with a local trader, this is thier selection.");
console.log("Name | Price (Caps) | Amount in stock");
console.log("-----------------------------------------------------");
for (var i = 0; i < Inv.length; i++) {
console.log(i+"). " + rrInv[i].item + " | " + rrInv[i].price + " | " + rrInv[i].amount);
}
console.log("-----------------------------------------------------");
console.log("You have " + preWarMoney + " pre-war money.");
console.log("What would you like to do?");
console.log("1) Buy supplies");
console.log("2) Leave shop");
var rrInput = userInput("Enter: ");
switch(rrInput) {
case "1":
console.log("What would you like to buy?");
let itemNum = userInput("Enter item number: ");
let itemAmt = userInput("Enter amount: ");
if (itemAmt > rrInv[itemNum].amount) {
console.log("Not enough stock.");
break;
} else if (itemAmt * rrInv[itemNum].price > preWarMoney) {
console.log("Not enough money.");
break;
} else {
preWarMoney -= itemAmt * rrInv[itemNum].price;
rrInv[itemNum].amount -= itemAmt;
console.log("You bought " + itemAmt + " " + rrInv[itemNum].item + "(s).");
console.log("You have " + preWarMoney + " pre-war money left.");
console.log("Press enter to continue...");
userInput("[Enter]");
}
break;
case "2":
console.log("Leaving shop...");
return true;
break;
default:
console.log("Invalid input, try again.");
}
}
}