C Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
7drltypes.h
LICENSE.txt
Makefile
README.md
astar.c
ces.c
ces.h
main.c
map.c
messages.c
misc.c
player.c
player.h
systems.c
time.c

README.md

7drl ("The Forest")

This repo contains the source code for a Seven Day Rogue Like entry called "The Forest." This is a quick attempt at a roguelike in a short time (not sure if it will be fun or not).

Task List

  • Add map generation. (Reused)

  • Add ncurses-based viewport. (Reused)

  • Add player input, ability to move around.

  • Add a game-loop with time.

  • Update the UI to permit map.

  • Update the UI to permit messages.

  • Add a CES (Component Entity System) framework for entities in the world (not player).

  • Add combat system, how attack works, defense, etc.

  • Add a health system (animals increase health, level increases health max, etc.).

  • XP System, XP to next level is 110% of previous level.

  • Update the UI to permit stats.

  • Add Animals (health NPCs) into the world (random movement, vary speed).

  • Add Protectors, with pathfinding to attack the player.

  • Add the secret door to escape.

  • Add a function for distance to player.

  • Two types of enemies in the environment. Animals, that can restore health and Protectors that carry artifacts (harder to kill).

  • Add A* pathfinding.

  • Add a sling. The sling shoots for 8 spaces (can be extended with sling bonus items).

  • Add sling bonus system (90% range, 10% shot bonus).

  • Need to detect player death and end game.

  • Need to create an end-screen when the player dies or wins.

  • Add an end-game sequence where protectors appear around the exit requiring the player to kill them before escaping. (Stretch)

  • Add a dynamic legend which emits a description for the items on the screen. (Stretch)

  • Add towers that emit enemies (near the exit). Towers can be destroyed. (Stretch)

  • Add ncurses color. (Stretch)

  • Add a final score (calculated based upon time, things killed, strength of weapon, level, etc.). (Stretch)

  • In the stats section, show the direction of the closest animal and protector. (Stretch)

  • Add support for mouse click detection (for projectiles). (Stretch)

  • Think about weapons and effects. Need to indicate a weapon in status, text-effect when used, damage differences (area), weapon types. (Stretch)

Dependencies

The only dependency is ncurses.

Building and Running

The source includes a standard Makefile, so make should suffice. Your terminal window should be large enough to fit the game window, so expand it.

make
./7drl

Screenshot (3/6)

    ┌───────────────────────────────────────────────────────────────────────────────────────┐
    │                                        ^^                    ^^^^^| The Forest        │
    │                  ^^^^   ^^      ^^^^          ^^^^^^^^^^       ^^^|                   │
    │                  ^^^^   ^^    ^^^^^^^^^^      ^^^^^^^^^^          | Player Stats      │
    │            ^^    ^^^^         ^^^^^^^^^^^              ^^^^^^^    |  Level:         1 │
    │            ^^    ^^^^         ^^^^^^^^^^^              ^^^^^^^    |  XP:            0 │
    │            ^^              ^^^^^^^^^^^^^^              ^^^^^^^    |  XPtoNextLvl:  20 │
    │            ^^              ^^^^^   ^^^^^^              ^^^^^^^    |                   │
    │    ^^^^^^                  ^^^^^       ^^     ^^^^^               |  Health:       20 │
    │    ^^^^^^                  ^^^^^       ^^     ^^^^^^^             |  Sling Range:   8 │
    │                ^^^^^^                         ^^^^^^^             |  Shots Avail:   1 │
    │                ^^^^^^            ^^^^^^       ^^^^^^^^^^^^^       |                   │
    │                 ^^^^^          ^^^^^^^^       ^^^^^^^^^^^^^       |  Artifacts:     0 │
    │^^^^             ^^^^^        ^^^^^^^^^^             ^^^^^^^       |                   │
    │^^^^                   ^^^^^^ ^^^^^^^^^^                          ^|                   │
    │^^^^                   ^^^^^^ ^^^^^                               ^|                   │
    │                       ^^        @                       ^^^^^    ^|                   │
    │                                                         ^^^^^    ^|                   │
    │                                                       ^^^^^^^     |                   │
    │                                                       ^^^^^^      |                   │
    │                                 ^^^^^^^            ^^  ^^^^ ^^^   |                   │
    │                                 ^^^^^^^            ^^  ^^^^^^^^^^ |                   │
    │                                ^^^^^^^^ ^^^^^^^    ^^  ^^^^^^^^^^ |                   │
    │^^^^                          ^^^^^^^^^^ ^^^^^^^    ^^^^^^   ^^^   |                   │
    │^^^^                          ^^^^^^^   ^^^^^^      ^^^^^^         |                   │
    │^^^^    ^^^^^^                ^^        ^^^^^^      ^^^^^^   ^^^^^^|                   │
    │        ^^^^^^                ^^        ^^^^^^^^^^  ^^^^^^   ^^^^^^|                   │
    │        ^^^^^^^                           ^^^^^^^^                 |                   │
    │         ^^^^^^                   ^^      ^^^^^       ^^^^^^       |                   │
    │         ^^^^^^                   ^^      ^^^^^   ^^^ ^^^^^^       |                   │
    │^        ^^^^^^  ^^^^                             ^^^ ^^^^^^  ^^^^ | Time         339  │
    │^             ^^ ^^^^          ^^                 ^^^ ^^^^^^^^^^^^ | Location 183,421  │
    │---------------------------------------------------------------------------------------│
    │                                                                                       │
    │Welcome to The Forest.                                                                 │
    │  You're trapped in the forest, but you can escape with enough artifacts.              │
    │  Artifacts are carried by Protectors, which must be killed to attain them.            │
    │  Once you have 10 artifacts, find the door in the South to escape.                    │
    │  Move with wasd.                                                                      │
    └───────────────────────────────────────────────────────────────────────────────────────┘