#! /usr/bin/env node
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)