- Install Docker and
docker-compose
- Clone this repo and change to it
- Fullscreen your terminal (for now this is necessary)
- Run
./test-run.sh local
- Enter the password:
m00nch1ld
$ git clone https://git.blackrookllc.com/ted-moonchild/moonchild-game.git
$ cd ./moonchild-game
$ ./test-run.sh local
ted password: m00nch1ld
- Fullscreen terminal is suggested for now, but the minimum size of the World UI is
111 x 43
- Terminals are notoriously non-uniform. I won't be able to guarantee colors or even text input operations. I've noticed a few potential issues:
- Some terminals do not return a height,width with the
getmaxyx()
method. This means centering and resizing might not operate correctly either. - Most terminals do not support
BACKSPACE
orDELETE
when entering text input. So farCtrl+H
always works. - Even
xterm
between OS implementations varies in behavior.
- Some terminals do not return a height,width with the
- Random pick a number 0-5
- If 4, miss; else move on
- Random pick a number 0-5; set as
DMG
- Random pick a number 0-10
- If 5, add
CRIT
toDMG
; else move on
- If 5, add
- Add
ATKBNS
toDMG
- Add
FXBNS
toDMG
- Deal
DMG
to enemy
The stats are scaled according to the following formulas:
Column | Formula |
---|---|
XPREQ | PrevReq + ( PrevLvl * 300 ) |
HPMAX | CurLvl * 75 |
MPMAX | CurLvl * 25 |
SP | Manual entry |
The table below represents the results:
LEVEL | XPREQ | HPMAX | MPMAX | SP |
---|---|---|---|---|
1 | 0 | 75 | 25 | 0 |
2 | 300 | 150 | 50 | 5 |
3 | 900 | 225 | 75 | 5 |
4 | 1800 | 300 | 100 | 5 |
5 | 3000 | 375 | 125 | 5 |
6 | 4500 | 450 | 150 | 5 |
7 | 6300 | 525 | 175 | 5 |
8 | 8400 | 600 | 200 | 5 |
9 | 10800 | 675 | 225 | 5 |
10 | 13500 | 750 | 250 | 5 |
11 | 16500 | 825 | 275 | 5 |
12 | 19800 | 900 | 300 | 5 |
13 | 23400 | 975 | 325 | 5 |
14 | 27300 | 1050 | 350 | 5 |
15 | 31500 | 1125 | 375 | 5 |
16 | 36000 | 1200 | 400 | 10 |
17 | 40800 | 1275 | 425 | 10 |
18 | 45900 | 1350 | 450 | 10 |
19 | 51300 | 1425 | 475 | 10 |
20 | 57000 | 1500 | 500 | 10 |
The following table represents the scale for XP and Floyd rewards, and base stats for enemies. The idea is to be able to scale enemies in areas based on Ted's level, so grinding could be done at any level, anywhere.
Some enemies will have stat modifiers to add some strategy to the player's decisions on adding stat points. Boss enemies will especially have one or two stats inflated to incentivize a more thoughtful approach to leveling.
RATING | XPAWARD | FLOYDS MIN | FLOYDS MAX | ATK | DEF | MOJO | LUK | ACC |
---|---|---|---|---|---|---|---|---|
0 | 25 | 0 | 5 | 0 | 0 | 0 | 0 | 0 |
1 | 50 | 20 | 25 | 2 | 2 | 2 | 2 | 2 |
2 | 75 | 40 | 50 | 4 | 4 | 4 | 4 | 4 |
3 | 100 | 60 | 75 | 4 | 4 | 4 | 4 | 4 |
4 | 125 | 80 | 100 | 5 | 5 | 5 | 5 | 5 |
5 | 150 | 100 | 125 | 5 | 5 | 5 | 5 | 5 |
6 | 175 | 120 | 150 | 5 | 5 | 5 | 5 | 5 |
7 | 200 | 140 | 175 | 6 | 6 | 6 | 6 | 6 |
8 | 225 | 160 | 200 | 6 | 6 | 6 | 6 | 6 |
9 | 250 | 180 | 225 | 6 | 6 | 6 | 6 | 6 |
10 | 275 | 200 | 250 | 6 | 6 | 6 | 6 | 6 |
11 | 300 | 220 | 275 | 8 | 8 | 8 | 8 | 8 |
12 | 325 | 240 | 300 | 8 | 8 | 8 | 8 | 8 |
13 | 350 | 260 | 325 | 8 | 8 | 8 | 8 | 8 |
14 | 375 | 280 | 350 | 8 | 8 | 8 | 8 | 8 |
15 | 400 | 300 | 375 | 10 | 10 | 10 | 10 | 10 |
16 | 425 | 320 | 400 | 10 | 10 | 10 | 10 | 10 |
17 | 450 | 340 | 425 | 10 | 10 | 10 | 10 | 10 |
18 | 475 | 360 | 450 | 15 | 15 | 15 | 15 | 15 |
19 | 500 | 380 | 475 | 15 | 15 | 15 | 15 | 15 |
20 | 525 | 400 | 500 | 20 | 20 | 20 | 20 | 20 |