adventure_game_by_me
Version:
adventure_game.
280 lines (237 loc) • 7.84 kB
text/typescript
import chalk from "chalk";
import inquirer from "inquirer"
// classes Player & Opponent
class Player {
name: string;
fuel: number = 100;
constructor(name: string) {
this.name = name;
}
fuelDecrease(){
let fuel = this.fuel -25
this.fuel = fuel
}
fuelIncrease(){
this.fuel = 100
}
}
class Opponent {
name: string;
fuel: number = 100;
constructor(name: string) {
this.name = name;
}
fuelDecrease(){
let fuel = this.fuel -25
this.fuel = fuel
}
}
// Player Name & Opponent Select
let player = await inquirer.prompt ({
type: "input",
name: "name",
message: "Please Enter Your Name:"
})
let opponent = await inquirer.prompt({
type: "list",
name: "select",
message: "Select Your Opponent",
choices: ["Lucifer","Harley Quinn","Pablo Escobar","Kratos","Ra's al Ghul"]
})
// Gather Data
let p1 = new Player(player.name)
let o1 = new Opponent(opponent.select)
do{
// Lucifer
if (opponent.select == "Lucifer") {
let ask = await inquirer.prompt({
type: "list",
name: "opt",
message: "Select Your Opponent",
choices: ["Attack","Drink Portion","Run for your Life.."],
});
if(ask.opt == "Attack"){
let num = Math.floor(Math.random() * 2)
if (num > 0) {
p1.fuelDecrease()
console.log(chalk.bold.red(`${p1.name} fuel is ${p1.fuel}`))
console.log(chalk.bold.green(`${o1.name} fuel is ${o1.fuel}`))
if (p1.fuel <= 0){
console.log(chalk.red.bold.italic("You Loose, Better Luck Next Time"))
process.exit()
}
}
if (num <= 0) {
o1.fuelDecrease()
console.log(chalk.bold.green(`${p1.name} fuel is ${p1.fuel}`))
console.log(chalk.bold.red(`${o1.name} fuel is ${o1.fuel}`))
if (o1.fuel <= 0){
console.log(chalk.green.bold.italic("You Win"))
process.exit()
}
}
}
if(ask.opt == "Drink Portion"){
p1.fuelIncrease()
console.log(chalk.bold.italic.green(`You Drink Health Portion Your Fuel Is ${p1.fuel}`))
}
if(ask.opt == "Run For Your Life.."){
console.log(chalk.red.bold.italic("You Loose, Better Luck Next Time"))
process.exit()
}
}
// Harley Quinn
if (opponent.select == "Harley Quinn") {
let ask = await inquirer.prompt({
type: "list",
name: "opt",
message: "Select Your Opponent",
choices: ["Attack","Drink Portion","Run for your Life.."],
});
if(ask.opt == "Attack"){
let num = Math.floor(Math.random() * 2)
if (num > 0) {
p1.fuelDecrease()
console.log(chalk.bold.red(`${p1.name} fuel is ${p1.fuel}`))
console.log(chalk.bold.green(`${o1.name} fuel is ${o1.fuel}`))
if (p1.fuel <= 0){
console.log(chalk.red.bold.italic("You Loose, Better Luck Next Time"))
process.exit()
}
}
if (num <= 0) {
o1.fuelDecrease()
console.log(chalk.bold.green(`${p1.name} fuel is ${p1.fuel}`))
console.log(chalk.bold.red(`${o1.name} fuel is ${o1.fuel}`))
if (o1.fuel <= 0){
console.log(chalk.green.bold.italic("You Win"))
process.exit()
}
}
}
if(ask.opt == "Drink Portion"){
p1.fuelIncrease()
console.log(chalk.bold.italic.green(`You Drink Health Portion Your Fuel Is ${p1.fuel}`))
}
if(ask.opt == "Run For Your Life.."){
console.log(chalk.red.bold.italic("You Loose, Better Luck Next Time"))
process.exit()
}
}
// Pablo Escobar
if (opponent.select == "Pablo Escobar") {
let ask = await inquirer.prompt({
type: "list",
name: "opt",
message: "Select Your Opponent",
choices: ["Attack","Drink Portion","Run for your Life.."],
});
if(ask.opt == "Attack"){
let num = Math.floor(Math.random() * 2)
if (num > 0) {
p1.fuelDecrease()
console.log(chalk.bold.red(`${p1.name} fuel is ${p1.fuel}`))
console.log(chalk.bold.green(`${o1.name} fuel is ${o1.fuel}`))
if (p1.fuel <= 0){
console.log(chalk.red.bold.italic("You Loose, Better Luck Next Time"))
process.exit()
}
}
if (num <= 0) {
o1.fuelDecrease()
console.log(chalk.bold.green(`${p1.name} fuel is ${p1.fuel}`))
console.log(chalk.bold.red(`${o1.name} fuel is ${o1.fuel}`))
if (o1.fuel <= 0){
console.log(chalk.green.bold.italic("You Win"))
process.exit()
}
}
}
if(ask.opt == "Drink Portion"){
p1.fuelIncrease()
console.log(chalk.bold.italic.green(`You Drink Health Portion Your Fuel Is ${p1.fuel}`))
}
if(ask.opt == "Run For Your Life.."){
console.log(chalk.red.bold.italic("You Loose, Better Luck Next Time"))
process.exit()
}
}
// Kratos
if (opponent.select == "Kratos") {
let ask = await inquirer.prompt({
type: "list",
name: "opt",
message: "Select Your Opponent",
choices: ["Attack","Drink Portion","Run for your Life.."],
});
if(ask.opt == "Attack"){
let num = Math.floor(Math.random() * 2)
if (num > 0) {
p1.fuelDecrease()
console.log(chalk.bold.red(`${p1.name} fuel is ${p1.fuel}`))
console.log(chalk.bold.green(`${o1.name} fuel is ${o1.fuel}`))
if (p1.fuel <= 0){
console.log(chalk.red.bold.italic("You Loose, Better Luck Next Time"))
process.exit()
}
}
if (num <= 0) {
o1.fuelDecrease()
console.log(chalk.bold.green(`${p1.name} fuel is ${p1.fuel}`))
console.log(chalk.bold.red(`${o1.name} fuel is ${o1.fuel}`))
if (o1.fuel <= 0){
console.log(chalk.green.bold.italic("You Win"))
process.exit()
}
}
}
if(ask.opt == "Drink Portion"){
p1.fuelIncrease()
console.log(chalk.bold.italic.green(`You Drink Health Portion Your Fuel Is ${p1.fuel}`))
}
if(ask.opt == "Run For Your Life.."){
console.log(chalk.red.bold.italic("You Loose, Better Luck Next Time"))
process.exit()
}
}
// Ra's al Ghul
if (opponent.select == "Ra's al Ghul") {
let ask = await inquirer.prompt({
type: "list",
name: "opt",
message: "Select Your Opponent",
choices: ["Attack","Drink Portion","Run for your Life.."],
});
if(ask.opt == "Attack"){
let num = Math.floor(Math.random() * 2)
if (num > 0) {
p1.fuelDecrease()
console.log(chalk.bold.red(`${p1.name} fuel is ${p1.fuel}`))
console.log(chalk.bold.green(`${o1.name} fuel is ${o1.fuel}`))
if (p1.fuel <= 0){
console.log(chalk.red.bold.italic("You Loose, Better Luck Next Time"))
process.exit()
}
}
if (num <= 0) {
o1.fuelDecrease()
console.log(chalk.bold.green(`${p1.name} fuel is ${p1.fuel}`))
console.log(chalk.bold.red(`${o1.name} fuel is ${o1.fuel}`))
if (o1.fuel <= 0){
console.log(chalk.green.bold.italic("You Win"))
process.exit()
}
}
}
if(ask.opt == "Drink Portion"){
p1.fuelIncrease()
console.log(chalk.bold.italic.green(`You Drink Health Portion Your Fuel Is ${p1.fuel}`))
}
if(ask.opt == "Run For Your Life.."){
console.log(chalk.red.bold.italic("You Loose, Better Luck Next Time"));
process.exit()
}
}
}
while(true)