Git Product home page Git Product logo

jwilferd10 / arena-conquest Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 245 KB

Embark on a text-based adventure in Arena Conquest! Compete in a tournament, defeat foes, collect gold, and rise to fame. Explore OOP and TDD principles in this game. Enjoy the journey to the top!

License: MIT License

JavaScript 100.00%
inquirer javascript jest nodejs oop tdd game rpg turn-based test-driven-development text text-based-game text-based-rpg object-oriented-programming

arena-conquest's Introduction

Arena Conquest

๐Ÿ“‚ Table of Contents

๐Ÿ‘‹ Description

โš”๏ธ Welcome to the Arena

Arena Conquest is a text-based game in which the user's character participates in a brutal tournament in order to build fame, collect gold, and obtain new equipment. Will you emerge as a legendary champion or succumb to the challenges that await in the arena? There's only one way to find out!

๐Ÿš€ Features:

  • Text-Based Gameplay: Arena Conquest is operated through the console, providing a classic gaming experience.
  • Turn-Based Combat: Each opponent has an opportunity to attack.
  • Gold Collection: Win gold by besting your opponents.
  • Weapon and Armor Upgrades: Visit a Merchant Shop to upgrade your characters stats
  • Player Stats and Inventory: Your character starts off with random stats and two potions in their inventory.

๐ŸŽฏ Follows Best Practices:

The development of Arena Conquest was to learn and emphasize modern approaches. This repository was built using the principles of Object Oriented Programming and Test Driven Development.

๐ŸŒ Accessible and Open:

The repository encourages exploration and collaboration, with the codebase thoughtfully organized and easily modifiable. Feel free to delve into the code, contribute, and customize it to your needs.

๐Ÿ’ญ Developer Notes:

Arena Conquest has been both an educational endeavor and an enjoyable journey. Originating from my time in the UCLA Coding Bootcamp, this project has underwent extensive personalization to truly become a reflection of my own work. I invested countless hours tweaking and customizing every facet of the game, driven by a passion for continuous learning and a genuine love for game development.

List of Improvements:

  • New Story
  • Merchant Shop
    • Player can purchase weapons & armor
  • Updated Fighting Mechanics
    • Character attacks have randomized emotes
    • Characters can now block attacks
    • Characters can now upgrade probability of landing an attack
    • Characters can now upgrade probability of blocking an attack
    • Game follows a new formula for calculating attacks: BA + AB > AC
  • Added console dividers to clean up the game

๐Ÿ™ Thank You!

So much for your interest in Arena Conquest. I've worked to ensure this project brings entertainment to the player and also provide detail comments in-case a programmer wants to make their own adjustments. Thank you always, happy coding!

๐Ÿ“– User Story

AS A gamer I WANT a text-based RPG that I can play SO THAT I can experience a classic gaming experience.

GIVEN a command-line game

  • WHEN I launch Arena Conquest,
    • THEN I expect to be greeted with an engaging narrative introducing me to the world of the tournament.
  • WHEN I create my character and enter the arena,
    • THEN I anticipate facing challenging opponents, strategizing my battles, and earning fame and gold with each victory.
  • WHEN I interact with merchants,
    • THEN I hope to discover a variety of weapons, armor, and items to enhance my character's abilities and chances of success.

๐Ÿ’พ Resources Used

  • JavaScript
  • Node.js
  • Inquirer
  • Jest

๐Ÿ’ฝ Usage

Requires node to play this game

Run npm i to install dependencies

  • "jest": "^29.7.0",
  • "inquirer": "^7.0.3"

Invoke the game by running node app or node app.js

  1. Enter your characters name
  2. Character with the highest agility score initializes the fight
  3. Use potions to upgrade skills or heal
  4. Beat every enemy to win!

๐Ÿ“Ž Contributors

  • UCLA Coding Bootcamp (Base-Setup)
  • jwilferd10

๐Ÿ“ง Contact Information

arena-conquest's People

Contributors

jwilferd10 avatar

Watchers

 avatar

arena-conquest's Issues

ToDo: Implement A Story

This update revolves around the initializeGame method within the Game class

  • Create a theme before the battle process
    • Users must click 'Continue' to go through each part of the story
    • Clicking 'Skip' immediately initializes the 'name' prompt

Refactor battle()

Currently the code contains plenty nested if/else statements, readability and modularity can be improved by creating separate methods.

Create a new variable to store attack chance.

Currently when players upgrade character strength, it makes the game too easy.

  • Create a new variable that has a random number
    • This variable can be upgraded by purchasing new weapons

ToDo: Game Adjustments

Fine tune the game further.

Armor/Weapon prices have been adjusted accordingly.l

  • Add a check to see if a character has enough money in the market.
  • Add a check to see if the player has an item already and prevent them from purchasing that item
  • Find secondary use for agility

Create Enemy Descriptions & Attack Emotes

Create an array of descriptions, containing up to twelve different scenarios and randomly iterate through the descriptions to keep it unique.

Create an array of attack emotes for both Players and Enemy.

ToDo: Revise Emotes

Replace the placeholder text within the meleeAttacks array with more descriptive emotes.

Create a Potion object

  • Create tests for the Potion object.

  • The Potion object will be used to give the player stat boosts.

  • If no stat is provided, the stat should be randomly selected.

Refactor Code

Reason for Update:

  • Solid practice for updating older repositories

Noticing that the JavaScript ecosystem is adopting the use of ECMAScript Modules, the main refactor will involve replacing commonJS structure with ESM's.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.