| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
The per mille chance that a mob will drop an item is equal to their base experience divided by the floor squared.
|
|
|
|
| |
added some new items
|
| |
|
|
|
|
| |
Now items can be used! Such fun.
|
| |
|
|
|
|
| |
Items now exist and can be spawned randomly (though it's weighted so that items of a rarer type such as rings which spawn less frequently than swords let's say). There's currently only one item defined: a scroll of healing. Items can be seen and picked up but there is no inventory interface and no way to use items yet.
|
|
|
|
| |
Also made the spider a bit weaker
|
| |
|
| |
|
|
|
|
| |
There is now an upper limit on mobs in a level, experience gained is now inversely proportional to the level SQUARED, and the player's attack power is now the square root of their level.
|
| |
|
| |
|
|
|
|
| |
Previously, you needed 1001 exp to grow a level. This has been fixed.
|
|
|
|
| |
You get less experience for fighting the same mob when you increase a level. Also, your attack power is equal to your level.
|
| |
|
| |
|
|
|
|
| |
When you pick up the key, the windows in the room shatter and snow grows into unblocked spaces (except for up stairs) every other turn. When you're standing on snow, you lose 1HP every other turn. When you're not, you randomly gain 1HP back every few turns.
|
|
|
|
| |
There are not yet keys in the key rooms, but the rooms are generated in a random extreme of the map and are bordered with windows.
|
|
|
|
| |
Now, when you reach zero health, you are promted to quit the game. Also, Window, ShatteredWindow and Snow tiles were added in preparation for the key rooms.
|
| |
|
| |
|
|
|
|
| |
Rats can now hurt you, yaaaay. Your health counter changes color depending on how much HP you have, and there is now also a defense counter too, which will, at this point, always say zero.
|
| |
|
|
|
|
| |
One bug had to do with the fact that if the game attempted to place a staircase at the edge of the map, it would check if every surrounding space was blocked regardless of whether or not they were valid positions (i.e. if they were off the edge off the map). The other bug had to do with rounding errors when calculating the viewport because the viewport width and height were both an odd number of tiles. By decreasing the canvas width and increasing the size of the message window, the viewport was changed so as to have an even width and height, thus avoiding the rounding errors.
|
|
|
|
| |
Rat is classified as "hostile," so it moves toward the player when it can see the player, otherwise it moves randomly. Rat still cannot yet attack the player.
|
| |
|
|
|
|
| |
When you walk into a mob, they lose one HP. Mice have only one HP, so when you walk into one (note: they are hard to catch as they move quite erratically), they immediately die. Mobs cannot yet hurt you but then again mice can't hurt you anyway.
|
| |
|
|
|
|
| |
This is adorable. It also now factors in the window inset at the top, so goodbye annoying letterbox edges.
|
|
|
|
| |
Both Main and MapViewGameState had two constants called GAME_WIDTH and GAME_HEIGHT; however, in Main, they described the size in pixels of the canvas, and in MapViewGameState, the size, in tiles, of the map. They have now been renamed to avoid confusion.
|
|
|
|
| |
Characters (both in the message window and in the game, like the player and the mobs) look better now because the images themselves are 12x12, not 16x16.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Mice are randomly added to rooms and they move randomly. They move through the player, currently, however.
|
| |
|
|
|
|
| |
Now, the screen repaints itself only after it changes (or the component resizes or something and needs to be repainted). This is much better than the refresh loop because it uses much less CPU and doesn't make your computer's fan growl at you.
|
| |
|
| |
|
|
|
|
| |
Also added support for more than two types of tiles, which are represented by characters. Later I'll add the functionality for different coloring of characters, because the bright Xs are kind of annoying.
|
| |
|
|
|
|
| |
Instead of rendering a font, characters are now taken from a character map. Also, tick() was removed from GameState because it is only ever called after processInput() and so there's no real point in having separate methods.
|