Files
TaipanClone/src/TaipanShop.java
2019-02-19 10:08:52 -07:00

417 lines
22 KiB
Java

import java.util.Random;
import java.util.Scanner;
public class TaipanShop extends Player {
private int cargoSpace = 60;
private int currentCargo = 0;
private int opiumPrice = 16000;
private int silkPrice = 1600;
private int armsPrice = 160;
private int generalPrice = 8;
public int getCargoSpace() {
return cargoSpace;
}
public void setCargoSpace(int cargoSpace) {
if(cargoSpace > 0){
this.cargoSpace = cargoSpace;
}
}
public int getOpiumPrice() {
return opiumPrice;
}
public void setOpiumPrice(int opiumPrice) {
if(opiumPrice > 0){
this.opiumPrice = opiumPrice;
}
}
public int getSilkPrice() {
return silkPrice;
}
public void setSilkPrice(int silkPrice) {
if(silkPrice > 0){
this.silkPrice = silkPrice;
}
}
public int getArmsPrice() {
return armsPrice;
}
public void setArmsPrice(int armsPrice) {
if(armsPrice > 0){
this.armsPrice = armsPrice;
}
}
public int getGeneralPrice() {
return generalPrice;
}
public void setGeneralPrice(int generalPrice) {
if(generalPrice > 0){
this.generalPrice = generalPrice;
}
}
private void updatePrices(){
String s = "\n" + getName() + ", the price of ";
double value = 80*Math.random();
Random rand = new Random();
opiumPrice = (rand.nextInt(201) + 60)*100;
silkPrice = (rand.nextInt(201) + 60)*10;
armsPrice = (rand.nextInt(21) + 6)*10;
generalPrice = rand.nextInt(17) + 4;
if(value < 8){
if(value < 2){
if(value < 1){
opiumPrice /= 5;
System.out.println(s + "Opium has dropped to " + opiumPrice +"!!!\n");
}else{
opiumPrice *= 5;
System.out.println(s + "Opium has risen to " + opiumPrice +"!!!\n");
}
}else if(value < 4){
if(value < 3){
silkPrice /= 5;
System.out.println(s + "Silk has dropped to " + silkPrice +"!!!\n");
}else{
silkPrice *= 5;
System.out.println(s + "Silk has risen to " + silkPrice +"!!!\n");
}
}else if(value < 6){
if(value < 3){
armsPrice /= 5;
System.out.println(s + "Arms has dropped to " + armsPrice +"!!!\n");
}else{
armsPrice *= 5;
System.out.println(s + "Arms has risen to " + armsPrice +"!!!\n");
}
}else{
if(value < 7){
generalPrice = 1;
System.out.println(s + "General Cargo has dropped to 1!!!\n");
}else{
generalPrice *= 5;
System.out.println(s + "General Cargo has risen to " + generalPrice + "!!!\n");
}
}
}
}
private void printShop(){
currentCargo = getOpiumHeld()+getGuns()*10+getSilkHeld()+getArmsHeld()+getGeneralHeld();
if(cargoSpace - currentCargo < 0){
System.out.println("Hold: Overloaded" + " Guns: " + getGuns());
}else{
System.out.println("Hold: " + (cargoSpace-currentCargo) + " Guns: " + getGuns());
}
System.out.println("-------------------------------------------------------------");
System.out.println(" Opium: " + getOpiumHeld() + " Silk: " + getSilkHeld());
System.out.println(" Arms: " + getArmsHeld() + " General: " + getGeneralHeld());
System.out.println("-------------------------------------------------------------");
System.out.println("Cash: " + getMoney() + " Bank: " + getBank()+"\n");
System.out.println(getName() + ", present prices per unit here are:");
System.out.println(" Opium: " + opiumPrice + " Silk: " + silkPrice);
System.out.println(" Arms: " + armsPrice + " General: " + generalPrice);
}
public void shop() {
updatePrices();
Scanner input = new Scanner(System.in);
boolean notDone = true;
if (getLocation() == 1) {
while (notDone) {
printShop();
System.out.println("\nShall I Buy, Sell, Visit Bank, Transfer Cargo, or Quit Trading?");
String response = input.next();
if (response.equalsIgnoreCase("B")) {
boolean notDone2 = true;
System.out.println("What do you wish me to buy, " + getName() + "?");
while (notDone2) {
response = input.nextLine();
if (response.equalsIgnoreCase("O")) {
System.out.println("\nHow much Opium shall I buy, " + getName() + "? (You can afford " + getMoney() / opiumPrice + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getMoney() / opiumPrice && num >= 0) {
setOpiumHeld(getOpiumHeld()+num);
setMoney(getMoney()-num * opiumPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you can't afford that!");
} else {
System.out.println(getName() + ", how am I supposed to buy " + "'" + num + "'" + " Opium?");
}
}
} else if (response.equalsIgnoreCase("S")) {
System.out.println("\nHow much Silk shall I buy, " + getName() + "? (You can afford " + getMoney() / silkPrice + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getMoney() / silkPrice && num >= 0) {
setSilkHeld(getSilkHeld()+num);
setMoney(getMoney()-num * silkPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you can't afford that!");
} else {
System.out.println(getName() + ", how am I supposed to buy " + "'" + num + "'" + " Silk?");
}
}
} else if (response.equalsIgnoreCase("A")) {
System.out.println("\nHow many Arms shall I buy, " + getName() + "? (You can afford " + getMoney() / armsPrice + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getMoney() / armsPrice && num >= 0) {
setArmsHeld(getArmsHeld()+num);
setMoney(getMoney() - num*armsPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you can't afford that!");
} else {
System.out.println(getName() + ", how am I supposed to buy " + "'" + num + "'" + " Arms?");
}
}
} else if (response.equalsIgnoreCase("G")) {
System.out.println("\nHow much General Cargo shall I buy, " + getName() + "? (You can afford " + getMoney() / generalPrice + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getMoney() / generalPrice && num >= 0) {
setGeneralHeld(getGeneralHeld()+num);
setMoney(getMoney() - num*generalPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you can't afford that!");
} else {
System.out.println(getName() + ", how am I supposed to buy " + "'" + num + "'" + " General Cargo?");
}
}
}
}
} else if (response.equalsIgnoreCase("S")) {
boolean notDone2 = true;
System.out.println("What do you wish me to sell, " + getName() + "?");
while (notDone2) {
response = input.nextLine();
if (response.equalsIgnoreCase("O")) {
System.out.println("\nHow much Opium shall I sell, " + getName() + "? (You have " + getOpiumHeld() + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getOpiumHeld() && num >= 0) {
setOpiumHeld(getOpiumHeld()-num);
setMoney(getMoney() + num*opiumPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you don't have that many to sell!");
} else {
System.out.println(getName() + ", how am I supposed to sell " + "'" + num + "'" + " Opium?");
}
}
} else if (response.equalsIgnoreCase("S")) {
System.out.println("\nHow much Silk shall I sell, " + getName() + "? (You have " + getSilkHeld() + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getSilkHeld() && num >= 0) {
setSilkHeld(getSilkHeld()-num);
setMoney(getMoney() + num*silkPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you don't have that many to sell!");
} else {
System.out.println(getName() + ", how am I supposed to sell " + "'" + num + "'" + " Silk?");
}
}
} else if (response.equalsIgnoreCase("A")) {
System.out.println("\nHow many Arms shall I sell, " + getName() + "? (You have " + getArmsHeld() + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getArmsHeld() && num >= 0) {
setArmsHeld(getArmsHeld()-num);
setMoney(getMoney() + num*armsPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you don't have that many to sell!");
} else {
System.out.println(getName() + ", how am I supposed to sell " + "'" + num + "'" + " Arms?");
}
}
} else if (response.equalsIgnoreCase("G")) {
System.out.println("\nHow much General Cargo shall I sell, " + getName() + "? (You have " + getGeneralHeld() + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getGeneralHeld() && num >= 0) {
setGeneralHeld(getGeneralHeld()-num);
setMoney(getMoney() + num*generalPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you don't have that many to sell!");
} else {
System.out.println(getName() + ", how am I supposed to sell " + "'" + num + "'" + " General Cargo?");
}
}
}
}
} else if (response.equalsIgnoreCase("V")) {
System.out.println("\n*** PLACEHOLDER FOR BANK ***\n");
} else if (response.equalsIgnoreCase("T")) {
System.out.println("\n*** PLACEHOLDER FOR WAREHOUSE ***\n");
} else if (response.equalsIgnoreCase("Q")) {
System.out.println("\n*** PLACEHOLDER FOR TRAVEL ***\n");
notDone = false;
}
}
} else {
while (notDone) {
printShop();
System.out.println("\nShall I Buy, Sell, or Quit Trading?");
String response = input.next();
if (response.equalsIgnoreCase("B")) {
boolean notDone2 = true;
System.out.println("What do you wish me to buy, " + getName() + "?");
while (notDone2) {
response = input.nextLine();
if (response.equalsIgnoreCase("O")) {
System.out.println("\nHow much Opium shall I buy, " + getName() + "? (You can afford " + getMoney() / opiumPrice + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getMoney() / opiumPrice && num >= 0) {
setOpiumHeld(getOpiumHeld()+num);
setMoney(getMoney() - num*opiumPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you can't afford that!");
} else {
System.out.println(getName() + ", how am I supposed to buy " + "'" + num + "'" + " Opium?");
}
}
} else if (response.equalsIgnoreCase("S")) {
System.out.println("\nHow much Silk shall I buy, " + getName() + "? (You can afford " + getMoney() / silkPrice + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getMoney() / silkPrice && num >= 0) {
setSilkHeld(getSilkHeld()+num);
setMoney(getMoney() - num*silkPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you can't afford that!");
} else {
System.out.println(getName() + ", how am I supposed to buy " + "'" + num + "'" + " Silk?");
}
}
} else if (response.equalsIgnoreCase("A")) {
System.out.println("\nHow many Arms shall I buy, " + getName() + "? (You can afford " + getMoney() / armsPrice + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getMoney() / armsPrice && num >= 0) {
setArmsHeld(getArmsHeld()+num);
setMoney(getMoney() - num*armsPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you can't afford that!");
} else {
System.out.println(getName() + ", how am I supposed to buy " + "'" + num + "'" + " Arms?");
}
}
} else if (response.equalsIgnoreCase("G")) {
System.out.println("\nHow much General Cargo shall I buy, " + getName() + "? (You can afford " + getMoney() / generalPrice + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getMoney() / generalPrice && num >= 0) {
setGeneralHeld(getGeneralHeld()+num);
setMoney(getMoney() - num*generalPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you can't afford that!");
} else {
System.out.println(getName() + ", how am I supposed to buy " + "'" + num + "'" + " General Cargo?");
}
}
}
}
} else if (response.equalsIgnoreCase("S")) {
boolean notDone2 = true;
System.out.println("What do you wish me to sell, " + getName() + "?");
while (notDone2) {
response = input.nextLine();
if (response.equalsIgnoreCase("O")) {
System.out.println("\nHow much Opium shall I sell, " + getName() + "? (You have " + getOpiumHeld() + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getOpiumHeld() && num >= 0) {
setOpiumHeld(getOpiumHeld()-num);
setMoney(getMoney() + num*opiumPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you don't have that many to sell!");
} else {
System.out.println(getName() + ", how am I supposed to sell " + "'" + num + "'" + " Opium?");
}
}
} else if (response.equalsIgnoreCase("S")) {
System.out.println("\nHow much Silk shall I sell, " + getName() + "? (You have " + getSilkHeld() + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getSilkHeld() && num >= 0) {
setSilkHeld(getSilkHeld()-num);
setMoney(getMoney() + num*silkPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you don't have that many to sell!");
} else {
System.out.println(getName() + ", how am I supposed to sell " + "'" + num + "'" + " Silk?");
}
}
} else if (response.equalsIgnoreCase("A")) {
System.out.println("\nHow many Arms shall I sell, " + getName() + "? (You have " + getArmsHeld() + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getArmsHeld() && num >= 0) {
setArmsHeld(getArmsHeld()-num);
setMoney(getMoney() + num*armsPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you don't have that many to sell!");
} else {
System.out.println(getName() + ", how am I supposed to sell " + "'" + num + "'" + " Arms?");
}
}
} else if (response.equalsIgnoreCase("G")) {
System.out.println("\nHow much General Cargo shall I sell, " + getName() + "? (You have " + getGeneralHeld() + ")");
while (notDone2) {
int num = input.nextInt();
if (num <= getGeneralHeld() && num >= 0) {
setGeneralHeld(getGeneralHeld()-num);
setMoney(getMoney() + num*generalPrice);
notDone2 = false;
} else if (num >= 0) {
System.out.println(getName() + ", you don't have that many to sell!");
} else {
System.out.println(getName() + ", how am I supposed to sell " + "'" + num + "'" + " General Cargo?");
}
}
}
}
} else if (response.equalsIgnoreCase("Q")) {
System.out.println("\n*** PLACEHOLDER FOR TRAVEL ***\n");
notDone = false;
}
}
}
}
public static void main(String[] args){
TaipanShop shop = new TaipanShop();
shop.shop();
}
}