Shops, encounters, poi menus, items, and some other stuff. Poi dialogue and combat left!
This commit is contained in:
parent
22975aff26
commit
8485d7d800
6 changed files with 371 additions and 142 deletions
338
files/shops.js
338
files/shops.js
|
|
@ -2,20 +2,134 @@ 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/10, amount: 1000},
|
||||
{item: supplyList[1], name: supplyList[1].name, price: supplyList[1].cost, amount: 100},
|
||||
{item: supplyList[2], name: supplyList[2].name, price: supplyList[2].cost, amount: 100},
|
||||
{item: supplyList[3], name: supplyList[3].name, price: supplyList[3].cost, amount: 100},
|
||||
{item: equipmentList[0], name: equipmentList[0].name, price: equipmentList[0].cost, amount: 10},
|
||||
{item: equipmentList[2], name: equipmentList[2].name, price: equipmentList[2].cost, amount: 10},
|
||||
{item: equipmentList[8], name: equipmentList[8].name, price: equipmentList[8].cost, amount: 10},
|
||||
];
|
||||
var vt0Inv = [
|
||||
{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},
|
||||
{item: equipmentList[0], name: equipmentList[0].name, price: equipmentList[0].cost, amount: 10},
|
||||
{item: equipmentList[2], name: equipmentList[2].name, price: equipmentList[2].cost, amount: 10},
|
||||
{item: equipmentList[2], name: equipmentList[3].name, price: equipmentList[3].cost, amount: 10},
|
||||
{item: equipmentList[4], name: equipmentList[4].name, price: equipmentList[4].cost, amount: 10},
|
||||
{item: equipmentList[5], name: equipmentList[5].name, price: equipmentList[5].cost, amount: 10},
|
||||
{item: equipmentList[8], name: equipmentList[8].name, price: equipmentList[8].cost, amount: 10},
|
||||
{item: equipmentList[9], name: equipmentList[9].name, price: equipmentList[9].cost, amount: 10},
|
||||
{item: equipmentList[11], name: equipmentList[11].name, price: equipmentList[11].cost, amount: 10},
|
||||
];
|
||||
var vegasInv = [
|
||||
{item: supplyList[0], name: supplyList[0].name, price: supplyList[0].cost, amount: 1000},
|
||||
{item: supplyList[1], name: supplyList[1].name, price: supplyList[1].cost, amount: 100},
|
||||
{item: supplyList[2], name: supplyList[2].name, price: supplyList[2].cost, amount: 100},
|
||||
{item: supplyList[3], name: supplyList[3].name, price: supplyList[3].cost, amount: 100},
|
||||
{item: supplyList[4], name: supplyList[4].name, price: supplyList[4].cost, amount: 100},
|
||||
{item: supplyList[5], name: supplyList[5].name, price: supplyList[5].cost, amount: 100},
|
||||
{item: equipmentList[0], name: equipmentList[0].name, price: equipmentList[0].cost, amount: 10},
|
||||
{item: equipmentList[2], name: equipmentList[2].name, price: equipmentList[2].cost, amount: 10},
|
||||
{item: equipmentList[3], name: equipmentList[3].name, price: equipmentList[3].cost, amount: 10},
|
||||
{item: equipmentList[4], name: equipmentList[4].name, price: equipmentList[4].cost, amount: 10},
|
||||
{item: equipmentList[5], name: equipmentList[5].name, price: equipmentList[5].cost, amount: 10},
|
||||
{item: equipmentList[9], name: equipmentList[9].name, price: equipmentList[9].cost, amount: 10},
|
||||
{item: equipmentList[11], name: equipmentList[11].name, price: equipmentList[11].cost, amount: 10},
|
||||
];
|
||||
var eurInv = [
|
||||
{item: supplyList[0], name: supplyList[0].name, price: supplyList[0].cost, amount: 1000},
|
||||
{item: supplyList[1], name: supplyList[1].name, price: supplyList[1].cost, amount: 100},
|
||||
{item: supplyList[2], name: supplyList[2].name, price: supplyList[2].cost, amount: 100},
|
||||
{item: supplyList[3], name: supplyList[3].name, price: supplyList[3].cost, amount: 100},
|
||||
{item: supplyList[4], name: supplyList[4].name, price: supplyList[4].cost, amount: 100},
|
||||
{item: supplyList[5], name: supplyList[5].name, price: supplyList[5].cost, amount: 100},
|
||||
{item: equipmentList[0], name: equipmentList[0].name, price: equipmentList[0].cost, amount: 10},
|
||||
{item: equipmentList[2], name: equipmentList[2].name, price: equipmentList[2].cost, amount: 10},
|
||||
{item: equipmentList[3], name: equipmentList[3].name, price: equipmentList[3].cost, amount: 10},
|
||||
{item: equipmentList[4], name: equipmentList[4].name, price: equipmentList[4].cost, amount: 10},
|
||||
{item: equipmentList[5], name: equipmentList[5].name, price: equipmentList[5].cost, amount: 10},
|
||||
{item: equipmentList[6], name: equipmentList[6].name, price: equipmentList[6].cost, amount: 10},
|
||||
{item: equipmentList[7], name: equipmentList[7].name, price: equipmentList[7].cost, amount: 10},
|
||||
{item: equipmentList[9], name: equipmentList[9].name, price: equipmentList[9].cost, amount: 10},
|
||||
{item: equipmentList[11], name: equipmentList[11].name, price: equipmentList[12].cost, amount: 10},
|
||||
{item: equipmentList[12], name: equipmentList[12].name, price: equipmentList[12].cost, amount: 10},
|
||||
];
|
||||
var traderInv = [
|
||||
[ // Tier 1
|
||||
{item: supplyList[0], name: supplyList[0].name, price: supplyList[0].cost/10, amount: 1000},
|
||||
{item: supplyList[1], name: supplyList[1].name, price: supplyList[1].cost, amount: 100},
|
||||
{item: supplyList[2], name: supplyList[2].name, price: supplyList[2].cost, amount: 100},
|
||||
{item: supplyList[3], name: supplyList[3].name, price: supplyList[3].cost, amount: 100},
|
||||
{item: equipmentList[0], name: equipmentList[0].name, price: equipmentList[0].cost, amount: 10},
|
||||
{item: equipmentList[1], name: equipmentList[1].name, price: equipmentList[1].cost, amount: 10},
|
||||
{item: equipmentList[2], name: equipmentList[2].name, price: equipmentList[2].cost, amount: 10},
|
||||
{item: equipmentList[3], name: equipmentList[3].name, price: equipmentList[3].cost, amount: 10},
|
||||
{item: equipmentList[8], name: equipmentList[8].name, price: equipmentList[8].cost, amount: 10},
|
||||
],
|
||||
[ // Tier 2
|
||||
{item: supplyList[0], name: supplyList[0].name, price: supplyList[0].cost, amount: 1000},
|
||||
{item: supplyList[1], name: supplyList[1].name, price: supplyList[1].cost, amount: 100},
|
||||
{item: supplyList[2], name: supplyList[2].name, price: supplyList[2].cost, amount: 100},
|
||||
{item: supplyList[3], name: supplyList[3].name, price: supplyList[3].cost, amount: 100},
|
||||
{item: supplyList[4], name: supplyList[4].name, price: supplyList[4].cost, amount: 100},
|
||||
{item: supplyList[5], name: supplyList[5].name, price: supplyList[5].cost, amount: 100},
|
||||
{item: equipmentList[0], name: equipmentList[0].name, price: equipmentList[0].cost, amount: 10},
|
||||
{item: equipmentList[2], name: equipmentList[2].name, price: equipmentList[2].cost, amount: 10},
|
||||
{item: equipmentList[3], name: equipmentList[3].name, price: equipmentList[3].cost, amount: 10},
|
||||
{item: equipmentList[4], name: equipmentList[4].name, price: equipmentList[4].cost, amount: 10},
|
||||
{item: equipmentList[5], name: equipmentList[5].name, price: equipmentList[5].cost, amount: 10},
|
||||
{item: equipmentList[9], name: equipmentList[9].name, price: equipmentList[9].cost, amount: 10},
|
||||
{item: equipmentList[11], name: equipmentList[11].name, price: equipmentList[11].cost, amount: 10},
|
||||
],
|
||||
[ // Tier 3
|
||||
{item: supplyList[0], name: supplyList[0].name, price: supplyList[0].cost, amount: 1000},
|
||||
{item: supplyList[1], name: supplyList[1].name, price: supplyList[1].cost, amount: 100},
|
||||
{item: supplyList[2], name: supplyList[2].name, price: supplyList[2].cost, amount: 100},
|
||||
{item: supplyList[3], name: supplyList[3].name, price: supplyList[3].cost, amount: 100},
|
||||
{item: supplyList[4], name: supplyList[4].name, price: supplyList[4].cost, amount: 100},
|
||||
{item: supplyList[5], name: supplyList[5].name, price: supplyList[5].cost, amount: 100},
|
||||
{item: equipmentList[0], name: equipmentList[0].name, price: equipmentList[0].cost, amount: 10},
|
||||
{item: equipmentList[2], name: equipmentList[2].name, price: equipmentList[2].cost, amount: 10},
|
||||
{item: equipmentList[3], name: equipmentList[3].name, price: equipmentList[3].cost, amount: 10},
|
||||
{item: equipmentList[4], name: equipmentList[4].name, price: equipmentList[4].cost, amount: 10},
|
||||
{item: equipmentList[5], name: equipmentList[5].name, price: equipmentList[5].cost, amount: 10},
|
||||
{item: equipmentList[6], name: equipmentList[6].name, price: equipmentList[6].cost, amount: 10},
|
||||
{item: equipmentList[7], name: equipmentList[7].name, price: equipmentList[7].cost, amount: 10},
|
||||
{item: equipmentList[9], name: equipmentList[9].name, price: equipmentList[9].cost, amount: 10},
|
||||
{item: equipmentList[11], name: equipmentList[11].name, price: equipmentList[12].cost, amount: 10},
|
||||
{item: equipmentList[12], name: equipmentList[12].name, price: equipmentList[12].cost, amount: 10},
|
||||
]
|
||||
];
|
||||
var tempTraderInv = [];
|
||||
var whitespringInv = [
|
||||
{item: supplyList[0], name: supplyList[0].name, price: supplyList[0].cost/10, amount: 1000},
|
||||
{item: supplyList[1], name: supplyList[1].name, price: supplyList[1].cost, amount: 100},
|
||||
{item: supplyList[2], name: supplyList[2].name, price: supplyList[2].cost, amount: 100},
|
||||
{item: supplyList[3], name: supplyList[3].name, price: supplyList[3].cost, amount: 100},
|
||||
{item: equipmentList[0], name: equipmentList[0].name, price: equipmentList[0].cost, amount: 10},
|
||||
{item: equipmentList[1], name: equipmentList[1].name, price: equipmentList[1].cost, amount: 10},
|
||||
{item: equipmentList[2], name: equipmentList[2].name, price: equipmentList[2].cost, amount: 10},
|
||||
{item: equipmentList[3], name: equipmentList[3].name, price: equipmentList[3].cost, amount: 10},
|
||||
{item: equipmentList[8], name: equipmentList[8].name, price: equipmentList[8].cost, amount: 10},
|
||||
];
|
||||
var lostHillsInv = [
|
||||
{item: supplyList[0], name: supplyList[0].name, price: supplyList[0].cost, amount: 1000},
|
||||
{item: supplyList[1], name: supplyList[1].name, price: supplyList[1].cost, amount: 100},
|
||||
{item: supplyList[2], name: supplyList[2].name, price: supplyList[2].cost, amount: 100},
|
||||
{item: supplyList[3], name: supplyList[3].name, price: supplyList[3].cost, amount: 100},
|
||||
{item: supplyList[4], name: supplyList[4].name, price: supplyList[4].cost, amount: 100},
|
||||
{item: equipmentList[0], name: equipmentList[0].name, price: equipmentList[0].cost, amount: 10},
|
||||
{item: equipmentList[2], name: equipmentList[2].name, price: equipmentList[2].cost, amount: 10},
|
||||
{item: equipmentList[4], name: equipmentList[4].name, price: equipmentList[4].cost, amount: 10},
|
||||
{item: equipmentList[5], name: equipmentList[5].name, price: equipmentList[5].cost, amount: 10},
|
||||
{item: equipmentList[6], name: equipmentList[6].name, price: equipmentList[6].cost, amount: 10},
|
||||
{item: equipmentList[7], name: equipmentList[7].name, price: equipmentList[7].cost, amount: 10},
|
||||
{item: equipmentList[12], name: equipmentList[12].name, price: equipmentList[12].cost, amount: 10},
|
||||
];
|
||||
var vt0Inv = [];
|
||||
var vegasInv = []; // A mix of gunrunners, mick&ralphs, and followers
|
||||
var eurInv = [];
|
||||
var traderInv = [];
|
||||
|
||||
export function ravenRockStore() {
|
||||
while (true) {
|
||||
|
|
@ -24,7 +138,7 @@ export function ravenRockStore() {
|
|||
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(i+"). " + rrInv[i].name + " | " + rrInv[i].price*10 + " | " + rrInv[i].amount);
|
||||
}
|
||||
console.log("-----------------------------------------------------");
|
||||
console.log("You have " + preWarMoney + " pre-war money.");
|
||||
|
|
@ -41,12 +155,12 @@ export function ravenRockStore() {
|
|||
console.log("Not enough stock.");
|
||||
userInput("[Enter]");
|
||||
break;
|
||||
} else if (itemAmt * rrInv[itemNum].price > preWarMoney) {
|
||||
} else if (itemAmt * rrInv[itemNum].price*10 > preWarMoney) {
|
||||
console.log("Not enough money.");
|
||||
userInput("[Enter]");
|
||||
break;
|
||||
} else {
|
||||
preWarMoney -= itemAmt * rrInv[itemNum].price;
|
||||
preWarMoney -= itemAmt * rrInv[itemNum].price*10;
|
||||
rrInv[itemNum].amount -= itemAmt;
|
||||
console.log("You bought " + itemAmt + " " + rrInv[itemNum].name + "(s).");
|
||||
console.log("You have " + preWarMoney + " pre-war money left.");
|
||||
|
|
@ -161,7 +275,7 @@ export function eurekaStore() {
|
|||
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(i+"). " + eurInv[i].item + " | " + eurInv[i].price*10 + " | " + eurInv[i].amount);
|
||||
}
|
||||
console.log("-----------------------------------------------------");
|
||||
console.log("You have " + preWarMoney + " pre-war money.");
|
||||
|
|
@ -177,11 +291,11 @@ export function eurekaStore() {
|
|||
if (itemAmt > eurInv[itemNum].amount) {
|
||||
console.log("Not enough stock.");
|
||||
break;
|
||||
} else if (itemAmt * eurInv[itemNum].price > preWarMoney) {
|
||||
} else if (itemAmt * eurInv[itemNum].price*10 > preWarMoney) {
|
||||
console.log("Not enough money.");
|
||||
break;
|
||||
} else {
|
||||
preWarMoney -= itemAmt * eurInv[itemNum].price;
|
||||
preWarMoney -= itemAmt * eurInv[itemNum].price*10;
|
||||
eurInv[itemNum].amount -= itemAmt;
|
||||
console.log("You bought " + itemAmt + " " + eurInv[itemNum].item + "(s).");
|
||||
console.log("You have " + preWarMoney + " pre-war money left.");
|
||||
|
|
@ -198,98 +312,37 @@ export function eurekaStore() {
|
|||
}
|
||||
}
|
||||
|
||||
export 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);
|
||||
|
||||
export function lostHillsStore() {
|
||||
while (true) {
|
||||
console.clear();
|
||||
console.log("You attempt to trade with a local trader, this is thier selection.");
|
||||
console.log("Brotherhood of Steel Requisition System - Lost Hills");
|
||||
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);
|
||||
for (var i = 0; i < lostHillsInv.length; i++) {
|
||||
console.log(i+"). " + lostHillsInv[i].item + " | " + lostHillsInv[i].price + " | " + lostHillsInv[i].amount);
|
||||
}
|
||||
console.log("-----------------------------------------------------");
|
||||
console.log("You have " + preWarMoney + " pre-war money.");
|
||||
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 rrInput = userInput("Enter: ");
|
||||
switch(rrInput) {
|
||||
var lostHillsInput = userInput("Enter: ");
|
||||
switch(lostHillsInput) {
|
||||
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) {
|
||||
if (itemAmt > lostHillsInv[itemNum].amount) {
|
||||
console.log("Not enough stock.");
|
||||
break;
|
||||
} else if (itemAmt * rrInv[itemNum].price > preWarMoney) {
|
||||
} else if (itemAmt * lostHillsInv[itemNum].price > caps) {
|
||||
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.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function genericBOSStore(poiName) { // 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("Brotherhood of Steel Requisition System - "+poiName);
|
||||
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.");
|
||||
caps -= itemAmt * lostHillsInv[itemNum].price;
|
||||
lostHillsInv[itemNum].amount -= itemAmt;
|
||||
console.log("You bought " + itemAmt + " " + lostHillsInv[itemNum].item + "(s).");
|
||||
console.log("You have " + caps + " caps left.");
|
||||
console.log("Press enter to continue...");
|
||||
userInput("[Enter]");
|
||||
}
|
||||
|
|
@ -309,30 +362,30 @@ export function whitespringStore() {
|
|||
console.log("Welcome to the Whitespring Mall. Selection pulls from all vendors.")
|
||||
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);
|
||||
for (var i = 0; i < whitespringInv.length; i++) {
|
||||
console.log(i+"). " + whitespringInv[i].item + " | " + whitespringInv[i].price + " | " + whitespringInv[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) {
|
||||
var whitespringInput = userInput("Enter: ");
|
||||
switch(whitespringInput) {
|
||||
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) {
|
||||
if (itemAmt > whitespringInv[itemNum].amount) {
|
||||
console.log("Not enough stock.");
|
||||
break;
|
||||
} else if (itemAmt * vt0Inv[itemNum].price > caps) {
|
||||
} else if (itemAmt * whitespringInvv[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).");
|
||||
caps -= itemAmt * whitespringInv[itemNum].price;
|
||||
whitespringInv[itemNum].amount -= itemAmt;
|
||||
console.log("You bought " + itemAmt + " " + whitespringInv[itemNum].item + "(s).");
|
||||
console.log("You have " + caps + " caps left.");
|
||||
console.log("Press enter to continue...");
|
||||
userInput("[Enter]");
|
||||
|
|
@ -345,4 +398,95 @@ export function whitespringStore() {
|
|||
console.log("Invalid input, try again.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// The Trader System
|
||||
|
||||
// traderLock: Prevents the player from regerating the trader's inventory before they leave the POI/Encounter
|
||||
// traderInv: The global trader inventory, has a set of items for each tier of gear, pulled from the global item lists
|
||||
// tempTraderInv: An array of items that the trader, when encountered, will be able to pull from for thier stock
|
||||
// trader(): Called when a player barters with a trader. Fist checks to see if traderLock is false, then sets it to true.
|
||||
// Then uses the tier parameter to determine which inventory to pull from.
|
||||
// It then places the respective tier of equipment into the tempTraderInv array.
|
||||
// The trader now randomly picks 5 items from the tempTraderInv array and places them into tempTraderStock.
|
||||
// Had traderLock been true, the trader would present the previously generated stock.
|
||||
// Trader then uses the same system as the other stores to allow the player to buy and view items but with a custom message
|
||||
// The message is passed in as a parameter, and is displayed at the top of the trader menu.
|
||||
|
||||
global.traderLock = false;
|
||||
export function trader(tier, message) {
|
||||
if (traderLock == false) {
|
||||
traderLock = true;
|
||||
var tempTraderStock = [];
|
||||
var tempTraderInv = [];
|
||||
switch(tier) {
|
||||
case "1":
|
||||
tempTraderInv = traderInv[0];
|
||||
for (var a = 0; a <= 5; a++) {
|
||||
let randomPick = randomNumber();
|
||||
tempTraderStock.push(tempTraderInv[randomPick]);
|
||||
tempTraderInv.pop[randomPick];
|
||||
}
|
||||
break;
|
||||
case "2":
|
||||
tempTraderInv = traderInv[0];
|
||||
for (var a = 0; a <= 5; a++) {
|
||||
let randomPick = randomNumber();
|
||||
tempTraderStock.push(tempTraderInv[randomPick]);
|
||||
tempTraderInv.pop[randomPick];
|
||||
}
|
||||
break;
|
||||
case "3":
|
||||
tempTraderInv = traderInv[0];
|
||||
for (var a = 0; a <= 5; a++) {
|
||||
let randomPick = randomNumber();
|
||||
tempTraderStock.push(tempTraderInv[randomPick]);
|
||||
tempTraderInv.pop[randomPick];
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
while (true) {
|
||||
console.clear();
|
||||
console.log(message);
|
||||
console.log("Name | Price (Caps) | Amount in stock");
|
||||
console.log("-----------------------------------------------------");
|
||||
for (var i = 0; i < tempTraderInv.length; i++) {
|
||||
console.log(i+1+"). " + tempTraderInv[i].item + " | " + tempTraderInv[i].price + " | " + tempTraderInv[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 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 > tempBOSStock[itemNum].amount) {
|
||||
console.log("Not enough stock.");
|
||||
break;
|
||||
} else if (itemAmt * tempBOSStock[itemNum].price > caps) {
|
||||
console.log("Not enough money.");
|
||||
break;
|
||||
} else {
|
||||
preWarMoney -= itemAmt * tempBOSStock[itemNum].price;
|
||||
tempBOSStock[itemNum].amount -= itemAmt;
|
||||
console.log("You bought " + itemAmt + " " + tempBOSStock[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.");
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue