Hero's Journey a text-based RPG Game.
Tags: python, codecademy, beginners, github
Published: 2022-06-28 23:58:45

# Hero's Journey V1.0

Hello everybody!

<figure align = "center">
<img src = https://i.imgur.com/I6rYZqg.jpg alt = "Greeting Message" title = "Greeting Message">
</figure>
<br>
This is the first working version of the python text-based RPG game that I have called <strong><em>Hero's Journey.</em></strong>
<br>
<br>
<div style="text-align: justify">In this game, you will find yourself in the shoes of the hero who must defeat the Demon King to bring peace back to his world.</div>
<br>
<div style="text-align: justify">To do this, you must train and level up to improve your stats, you will do this by fighting against different enemies (minions of the Demon King), gaining experience, potions, and money once you defeat them, money, that you will be able to then use on the store to buy more potions to help you on your adventure.</div>
<br>
<div style="text-align: justify">Be careful with how much you risk while training or when fighting the bosses since if you are left with no more health points, you will lose all your potions and part of your money.</div>
<br>

The game is divided into six sections.

- [Hero's Journey V1.0](#heros-journey-v10)
  - [Game Start](#game-start)
  - [The Village](#the-village)
  - [Training Grounds](#training-grounds)
  - [Store](#store)
  - [Check Stats](#check-stats)
  - [Battle Boss](#battle-boss)
  - [Installing the game](#installing-the-game)
  - [Closing notes](#closing-notes)


## Game Start

At the beginning of the game, the game will ask you for your name, and you will receive ten stat points to distribute as you wish on four different attributes:

- Attack: Determines how much damage the player deals
- Defense: Determines how much damage the player ignores.
- Speed: Determines the chance of the player avoiding an enemy attack.
- Crit Chance: Determines the chance of the player hitting a critical strike when attacking.

Once you have done this, the game will take you to [The Village](#the-village)

## The Village

This is basically the game's menu, where you can choose what to do next.

You will recover your HP every time you come back to the Village and also be transported back here when an enemy defeats you.

<figure align = "center">
<img src = https://i.imgur.com/k2VnjPs.jpg alt = "Game's Menu" title = "Game's Menu">
<figcaption align = "center"> <em style = "font-size: small">Game's Menu</em></figcaption>
</figure>

## Training Grounds

Here is where you will face the minions of the Demon King, accumulating experience, potions, and money.

You will face each of them in turn-based combat, where the player will choose between using a potion to recover some health or attacking the enemy in front. 

Once you decide to attack, it will be the enemy's turn to attack you.

Using potions in combat will not make the player lose his turn.

<figure align = "center">
<img src = https://dev-to-uploads.s3.amazonaws.com/uploads/articles/adsu09xwol9i6wd3rdq5.gif alt = "Battle Against Minion" title = "Battle Against Minion">
<figcaption align = "center"> <em style = "font-size: small">Battle Example</em></figcaption>
</figure>
 
<br>
<br>

Once you defeat the enemy, you will be given the option to continue training which will set up another combat, or go back to the village to recover your HP.

## Store

Here you will be able to spend the money you have won by killing enemies on potions.

Potions are handy if you want to stay training for a while or if you are going to face one of the game's bosses.

Each potion will recover 20% of your maximum health, and you can carry a maximum amount of 10 potions at a time.

<figure align = "center">
<img src = https://i.imgur.com/59DnsM4.jpg alt = "Store" title = "Store">
<figcaption align = "center"> <em style = "font-size: small">Store</em></figcaption>
</figure>

## Check Stats

As you level up through the game you will accumulate stat points to improve your attributes. Here is where you can spend all those stat points on the 4 different attributes mentioned at the [Game Start](#game-start) section as well as checking what your current stats are:

<figure align = "center">
<img src = https://i.imgur.com/gRkZHDc.jpg alt = "Checking the player Stats" title = "Player Stats">
<figcaption align = "center"> <em style = "font-size: small">Player Stats</em></figcaption>
</figure>
<br>
<br>

The player can choose how he wants to spend his stat points; however, every attribute will reach its maximum level once it reaches level 10.

<figure align = "center">
<img src = https://i.imgur.com/yqlwbTj.jpg alt = "Spending Stat Points" title = "Spending Stat points">
<figcaption align = "center"> <em style = "font-size: small">Spending Stat Points</em></figcaption>
</figure>

<br>
<br>

<figure align = "center">
<img src = https://i.imgur.com/KHyO48F.jpg alt = "Stat Points Used" title = "Stat points Used">
<figcaption align = "center"> <em style = "font-size: small">Stat Points Used</em></figcaption>
</figure>

## Battle Boss

The game has four bosses.

The three generals of the army:

- Abadon
- Mammon
- Belphegor

And the Demon King himself: <strong Style = color:red>Lucifer</strong>

The combat mechanics against the bosses are the same as with the minions; however, bosses are much more robust. If the player has not trained enough, it might be virtually impossible to defeat them until the player reaches a certain level.

<figure align = "center">
<img src = https://i.imgur.com/xiVDp1T.jpg alt = "Fighting the Boss without proper training" title = "Fighting the Boss without proper training">
<figcaption align = "center"> <em style = "font-size: small">Fighting Without Training</em></figcaption>
</figure>

## Installing the game

You can find the code for the game at [this repository](https://github.com/nicolasagudelo/hero_journey) at github.

You can also download the executable on this [link](https://github.com/nicolasagudelo/hero_journey/releases/download/v1.0/hero_journey.zip)


## Closing notes

Feel free to contact me through my email (public on my profile) if you find any issue or problem with the game or if you have any advice about how something might be better implemented. You can also try adding more stuff to the game I would love to see that.

Thanks.