JRPG module is now at version 0.1.0. New features in this version:
-Added a level-up dialog that shows how much your party member's stats are increased
when they gain a level.
-Party members can gain new skills by levelling up.
-Added support for various scenes. This includes, for instance, simple text messages,
dialogues, boss battles, and so on.
About the scenes system:
It's based on the chat system from T-Engine. The scene files are stored in data/scenes
and are loaded when the player triggers it. The module haves a sample scene -
a drake that you can fight. If you win, a magical seal somewhere else on the floor
disappears, allowing you to move on further.
A note on how the map is updated when an important event happens:
Important events (bosses being defeated, levers being pulled and so on) are recorded in
game.variables. Map objects are updated in the on_turn function of the zone. This function
is called on each turn, checking game.variables and updating the map accordingly. Check
data/zones/dungeons/zone.lua for a sample function.
Features already implemented in previous versions:
Party-related:
-You control a party consisting of several members
-You can open a party menu, which shows HP and SP of all your party member
-You can view information about individual party members
-Party members can gain experience and level up, increasing their stats
-Party members have individual skills
-Items are stored in a party-shared inventory
-Characters can equip items, giving them bonuses
Skills (named 'Attacks' internally):
-Can be physical or magical based
-Can be elemental
-Can heal allies
-Can inflict temporary effects
-Behaviour can be customized further
-Damage calculation made more JRPG-ish - now characters and enemies have
Attack and Defense stats, and damage is calculated as ATK - (DEF / 2).
Of course, this behaviour can be changed in the corresponding file.
Battles and enemies:
-Supports random and predefined encounters
-Battle process is handled in a separate dialog, with a few helper dialogs for player input
-Enemies attack party members
-Enemies can have elemental weaknesses or resistance
-Active turn-based battle system. All combatants - players and enemies - gain energy on each tick.
When a combatant's energy reaches 1000, that combatant can perform an action.
-Temporary effects - for instance, paralysis prevents a character from gaining energy,
and an ATK increase makes the character hit harder
Misc.:
-Waypoints, a way for the player to instantly teleport to a certain spot
Not really utilized just yet.
-Savepoints, locations where you can save and recover your party
-You can't save normally
-You can buy or craft items in stores.
To-do list for future versions:
-Implement other standard RPG status effects
-Polish the user interface
-Implement adding/removing character from the party
-Add monster/item/synthesis recipe libraries to the game, where
you can look at the descriptions and stats of the monsters you've
defeated and items you've collected.
Keybinds:
In the dungeon:
Enter - Open party menu
m - Start a battle, for testing purposes
During a battle:
Escape - End a battle immediatly, for testing purposes
All other input is handled with List and ListColumn objects - you're presented a list of possible options,
and you choose one with arrow keys & Enter, or with the mouse.
I think this module already can be used to make an actual game - the basic RPG elements are here.
Keep in mind, though, that it is still currently in development and might contain bugs. If you want to
make your own module based on this one, feel free. Just remember to give me credit.
If you're interested in this module's inner working, take a look in the .team file (it's just a renamed .zip file).
I've tried to write enough comments in order to make my code understandable. If something is unclear to you, ask away.
Post your suggestions, feedback and bugs you discover on this thread, or contact me:
astralslicer(at)gmail(dot)com
Version 0.1.0 can be downloaded here:
http://www.mediafire.com/?uet223r1tde61g8
JRPG module - version 0.1.0 released
Moderator: Moderator