New portal type for the boss room. Enemies now drop boss portal and the boss drops the placeholder realm portal.
Statistics and sidebar are now positioned properly by the game. They were previously rendered at the top left of the map and moved later to where the player screen was rendering. Now they generate where the player screen is rendering. This slightly improves performance and will likely fix bugs that would otherwise happen in the future.
Improved the way the game handles displaying various screens (main menu, instruction, options, etc)
Loot bags are rendered on top of portals instead of below them.
Removed some obsolete code.
Improved code for rendering things to screen.
Portals now have unique IDs.
Item descriptions do not appear while you are moving the item.
Drastically changed loot bags. Now they have an inventory identical to the player's inventory. This provides a significantly better experience as they have been pretty much completely overhauled. This also allows for certain improvements for the loot dropping system to be made. You can now also drop items from your inventory into any slot of the loot bag that you want.
Fixed bug which caused the first inventory item in your inventory to be dropped on the ground after entering/exiting a portal.
Fixed bug which caused some errors after dying in game.
Fixed minor bug which threw some errors after moving an item to an empty inventory slot.
Fixed graphical bug which caused the numbers in inventory slots to change font type/size when an item's description was being displayed.
Fixed graphical bug which caused item descriptions to appear under the inventories instead of on top of them.
Fixed graphical bug which caused inventory slot borders not to render when an item description was being viewed.
Fixed bug which caused game not to render map when approaching the top edge or bottom right edge of the map.
Fixed chat bug that didn't allow you to send 1 character messages.
Fixed bug that occasionally caused you to consume all items in a loot bag when only attempting to consume one item.
Added death glory counter. (future in game currency).
Simplified game calculations with anything that was attached to or based on a timer and simplified the way the game calculates time. Due to this various things in the game happen at slightly different rates such as movement, fire rates, and stat regen rates. Nothing should have more than a 5% difference though aside from regen which was reworked (much faster for testing purposes).
Lots of work with how files for the game are split up and used.
Simplified/updated some older game logic and removed obsolete code.
Small changes to damage numbers.
Improved the loot dropping system significantly.
Changed the way weapon/armor bonuses are determined from a manual assignment to auto-assignment.
Added chat commands for future admin use.
Map rendering improved:
Now performance is always at 100% regardless of the size of the map. (before the size of the map had a very noticeable impact on FPS after the map got larger than ~600x600. I already tested a 10,000x10,000 map and FPS didn't even flicker below max.)
The rendering distance from the player may now be adjusted (similar to minecraft's render distance). This is more of a way to set up easier loading from a server whenever the game goes multiplayer.
Maps are generated before they are rendered which fixes a graphical bug which caused the screen to flicker for a split second after you loaded into the realm or boss room. However, you may notice a slight pause before entering a realm or the boss room as there is no loading screen at the moment (technically there is, but it's in the console).
Portal dropping mechanics improved. Now enemies can drop specific portals.
Fixed longstanding graphical bug where when enemies died a loot bag was rendered at their location for 1 frame before disappearing.
Fixed longstanding chat bugs. Now the only thing that is problematic is delete/backspace on google chrome.
The Firefox browser is now supported.
Fixed graphical bug that caused portal buttons and loot bag inventories to overlay on one another which made it impossible to remove some items from loot bags along with looking very ugly.
Fixed hidden bug where multiple portals could be activated at the same time, causing problems.
Improved memory usage by the game. Now all map information is deleted after exiting an area (switching from realm to boss room and vice versa) instead of merely overwritten. (To be honest I think this could be the cause of RotMG's memory leaking over time)
Fixed bug that caused inventory not to display after entering/exiting realm/boss room.
Added an early method for the game boss to talk to you the way ORYX does in ROTMG.
Game now has a limited number of enemies in the realm before you get sent to the boss room (provided you don't use the boss portals that are dropped by enemies.
Fixed some graphical bugs with the movement sprites for characters.
Added tons more movement sprites for archer/mage classes. Now the only thing I need is to add the attacking sprites. Some of the movement sprites need some reworking though and there are a few missing movement sprites for the archer/mage classes.
Reworked file system for game. Now the game files are indexed and it is easier to navigate the project. Thanks to shryme for his contribution on GitHub for the code demonstration and idea.
Moved the bug testing status notifications to top left of screen.
Made item slots of the player's inventory larger and more spaced out in order to make dropping/swapping items into the inventory less confusing.
Increased size of loot bag slots to match player inventory slots although they are not spaced out the same way.
You can now see what enemy you were killed by in the death screen.
Adjustments to appearance of death screen.
All three classes are now playable even though there are not very many movement sprites for them.
Enemies spawn 50% slower.
You can now drop items into loot bags from your inventory.
Fixed bug where swapping a loot bag item into your inventory would delete your inventory item.
You can now swap items from loot bags into your inventory.
Remaining known bugs / non-implemented features regarding inventories:
While you can swap an item that is in the loot bag with one in your inventory by dropping the item that is in the loot bag into your inventory, you cannot move an item from your inventory and swap with an item in the loot bag or directly place an item from your inventory into the loot bag. This will require a major reworking of how loot bags operate.
You can now move items between inventory slots if the slot being moved to is empty. (This was harder than I thought initially, but the solution to a few bugs turned out to be simple.)
You can now swap two items between two slots in your own inventory.
Remaining known bugs / non-implemented features regarding inventories:
You cannot directly place an item from your inventory into a loot bag on the ground.
You cannot swap an item from your inventory and the ground.
if you place an item from a loot bag into your inventory and the inventory slot you place the item in is filled, the inventory slot will delete its current item and place the item from the bag into it.
Increased the size of the logo text on Main Menu screen.
Changed the way key presses are handled by the game (still running into bugs with String.fromCharcode not recognizing the period key or semicolon. Just giving a 3/4ths sign and degree symbol.)
Modified the map generator so the game can preload several maps at once. This will allow the game to have portals so that you can enter dungeons.
Added a portal (and placeholder sprite) which sends you to the boss fight. This is dropped occasionally by enemies when killed.
Added two tools for backend use and easier coding, an auto detect for mouse interaction with objects and an auto detect for collisions between any two objects. This is making inventory troubleshooting significantly easier for me while I work on that.
Changed the color of the text for stats from orange to grey.
Found and fixed the memory leak bug. It had to do with the map generator not clearing out old unused maps once you were no longer in the area.