To allow for procedurally generated worlds, I have added the possibility of having different “worlds” that are not in any way connected to each other, each with individual maps. Currently only the “main” world can have NPCs, because the procedurally generated worlds are intended mainly for dungeons and such where you are faced with different challenges. In the future, I may add support for NPCs inside the other worlds as well, perhaps for puzzles of some sort.
Hotkeys and actionbars
Consumable items and/or spells can now be added to actionbars. At this time, there is no support for custom hotkeys (right now they use keys 1 through 0), but that is something I’m looking to add in the future.
Items and spells now have tooltips that are shown whenever the player hovers over them.
Wearable items can now be equipped, and your equipment plus total stats can be seen in a character information box. They can also have item effects such as added health and/or added mana, and more.
Monsters can now drop items in varying amounts and with different chances of dropping specific items.
Spells and melee damage
Spells (both healing and damage dealing) and melee damage now use a custom formula based on the player’s level, magic and strength and the attacked creature’s defense.
Can now cast healing spells as well as damage dealing spells.
It is still an implementation of A*, what has changed is that the “closed list” is now a HashSet instead of a List. I am not yet happy with the speed of it, so it will continue to receive improvements during development. An example of how much faster the new implementation is:
Old (using List for closed list):
12 seconds for 100k iterations
New (using HashSet for closed list:
9 seconds for 100k iterations
The new one is 25% faster.