opixelum / doomdepths-c Goto Github PK
View Code? Open in Web Editor NEWSimple doomdepths-like game in C.
License: The Unlicense
Simple doomdepths-like game in C.
License: The Unlicense
Since print_character_stats()
is only used in battle, and since gold is useless in battle, don't print goal in this function.
Make potions drinkable in battles.
In order to add some difficulty to the game, powerful items should be more rare (harder to find or get). For exemple, there should be more chance to find a weapon that deals a lot of damage when killing a dragon than a goblin.
This implies to edit the Item
structure & table.
Using getchar_no_wait()
, it should be possible to make a better UX function than wait_for_enter()
.
For less textual lines & for a better UX, draw the target monster in red during a battle.
For simplicity when coding:
attack_spell_selection_menu()
which will call spell_selection_menu()
by passing a spell list containing only the attack spells of the character;Allow player to do 3 actions in a battle turn.
Make going back possible in every menus.
Make the map explorable.
Add utils code for managing linked list for example.
When player starts a battle, monsters are generated. Then, player can start to attack, and choses any monster he wants to attack first. Then, the same monster attacks back.
Display which monster player is attacking in sub menus like attack or spell selection menus.
Create random items like 5 weapons, 5 armors, 6 spells (attack & healing) & 4 potions (mana & healing).
Build project on GitHub in CI on develop
branch.
In a CSV file, list all items of the game. We need:
Then create a function that will read the csv file, then create them in the game in C.
This is a temporary feature. Items will be later defined in the SQLite database & the function for creating them will change.
Don't print the monster selection menu when there's only 1 monster in the battle. Instead, prompt user to select the attack type.
See generate_random_monster
declaration.
When fighting multiple monsters, after selecting the "attack" option in the battle actions menu, add another menu where player can choose which monster to attack.
For now, clear_screen()
scrolls down the terminal until there's no visible character on the screen, but previous characters are still visible if we scroll up.
Find a way to delete those characters.
When selecting New Game:
In order to make the game more dynamic, don't wait for the user to press enter in menus. Take directly his input when the program is waiting for a single character.
Add main menu code with game loop in main.c
.
This feature must be a function inside menus.c
& menu.h
.
Display the options:
When starting a new game, prompt user to enter his nickname.
When killing a monster, let player pick up its stuff.
Monster's stuff will be stored in their inventory. Then player can choose the items he wants to put into his own inventory.
Don't forget to check the capacity of player's inventory, which is a maximum of 25 items.
Also, monsters should contain few items (like around 5 maximum) for adding more difficulty to the game & more rareness to items.
Replace normal printf()
that prints in color by color_printf()
. There's a lot of them in map.c
.
Manually settings C standard in CMakeLists.txt
causes errors. Remove this line.
Save player position for loading at previous location.
When exploring the map, trigger battles randomly.
For consistency, rename the project in CMakeLists.txt
in kebab-case
.
For now, spells are mana free. Consume mana when casting spells.
Let user see what he has in his inventory.
void
keyword for functions with no parameters helps compiler to optimize the code.
Depending on his armor's rarity or color, print the player in a different color on the map.
Inventory size must no be greater than 25. A constant MAX_INVENTORY_SIZE
is set in stuff.h
.
Draw a basic map & make it explorable.
Create a CONTRIBUTING.md
file containing all guidelines for contributing to this project.
Make expensive spells impossible to select (print them in grey or red).
Use better symbols for tiles (for example 'โ' for OBSTACLE
tiles).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.