251 lines
No EOL
11 KiB
JavaScript
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.");
|
|
}
|
|
}
|
|
} |