Commit Graph

439 Commits

Author SHA1 Message Date
Linus Probert e1b3364d88 Maint: Even more cleanup 2018-09-13 13:12:43 +02:00
Linus Probert 620a7e3ed5 Maint: Less complex main 2018-09-13 12:49:21 +02:00
Linus Probert 983875d064 Maint: Cleaned up a complex function 2018-09-13 11:35:07 +02:00
Linus Probert e293c21908 Rogue preparation 2018-09-13 10:48:35 +02:00
Linus Probert 0ca70c7376 Add the dagger skill to the rogue 2018-09-13 08:16:59 +02:00
Linus Probert c39f05d49e Fixed the player menu 2018-09-13 08:05:17 +02:00
Linus Probert 02a4407eb4 Got a bit further 2018-09-12 20:56:50 +02:00
Linus Probert f246c5751a Broken commit 2018-09-12 14:45:09 +02:00
Linus Probert 367be69852 Buggfix: Prevent clip switching on falling sprite
- This was a forgotten effect when the falling was implemented on the
player struct.
2018-09-12 08:03:28 +02:00
Linus Probert 988b53a4fa Outline the rogue skillset 2018-09-11 15:49:58 +02:00
Linus Probert 03b60f6140 Merge branch 'master' into dev 2018-09-11 15:49:43 +02:00
Linus Probert cc627dc0c3 Take damage if ending charge on a damaging object
- Currently, ending charge in fire or smoke doesn't damage the player
2018-09-11 15:47:14 +02:00
Linus Probert 5043a86377 Cleaned up main a bit and moved some code 2018-09-11 15:32:33 +02:00
Linus Probert cb732a80ec Adds possibility to push monsters into pits and traps. 2018-09-10 22:27:26 +02:00
Linus Probert 2316d24942 Fixes falling sound choice bug 2018-09-10 22:23:45 +02:00
Linus Probert b3724afe49 Make the game a bit more actionfilled
- Level 1 is reduced in size
- More monsters spawn
- Maps are more 'messy' and less linear
- Introduces 'space' to hold your turn
2018-09-09 12:46:15 +02:00
Linus Probert c52f6c9f97 Fixed a stupid error 2018-09-09 01:25:32 +02:00
Linus Probert 321dc4f3af Remove a warning and some useless compilations
- Removes lua install from CI
2018-09-08 23:25:10 +02:00
Linus Probert 9e6325905f Switched eastereggs and logic, added last achievement 2018-09-06 20:12:37 +02:00
Linus Probert 280b073a8c Prevents kill achievments from being granted on first hit. 2018-09-03 20:27:34 +02:00
Linus Probert 07d7d6e58b Added easteregg monsters and a funny achievement 2018-09-03 16:49:45 +02:00
Linus Probert 6e7ce815fd Removes useless transfer function 2018-09-03 12:53:12 +02:00
Linus Probert 4a6422fc09 Fixes non-existant treasure bug 2018-09-03 08:43:05 +02:00
Linus Probert 9bcb398f94 Includes player and dungeon level in steam leaderboards.
- Intended for use in the in game leaderboard view once I make that.
2018-09-02 23:44:48 +02:00
Linus Probert ef0e418e96 Fixes infinite loop issue in trapgen
Vertical coridoors before level 4 wouldn't leave enough space to place
4 traps since there is only 10 rows of tiles eligible for a trap and
every trap ocupies 3 rows and requires at least 2 spare rows. This could
cause an infinite loop situation.

* Also fixes linux build warnings and other stuff.
2018-09-02 06:04:24 +02:00
Linus Probert 0ca64fb882 Added kills leaderboard
- Restructured the code a bit to avoid c vs c++ conflicts.
2018-08-31 15:58:59 +02:00
Linus Probert 41a2b1b8f8 Fixes fullscreen centering on hirez screens 2018-08-30 14:08:34 +02:00
Linus Probert 0ae8849323 Removed a stupid mistake 2018-08-30 14:01:28 +02:00
Linus Probert 4013449878 Adds information to player
- Fullscreen command is listed
- ESC to go back from views is listed
2018-08-30 11:32:09 +02:00
Linus Probert e1c154fc1c Fixed charge
- Prevent click sound from triggering
- Prevent hovering on pits if you end charge on them
- Trigger traps if you end charge on them
2018-08-30 11:13:50 +02:00
Linus Probert ee8274038f Prevent stunned monsters from getting scared by player 2018-08-30 09:55:04 +02:00
Linus Probert 5dc25c1e79 Fixed some more fullscreen
There is still a slight offset. I need to practice maths I think
2018-08-30 09:12:05 +02:00
Linus Probert a75a0d9331 Fixes nicer fullscreen rendering
Also solves some compiler warnings on linux
2018-08-30 08:54:21 +02:00
Linus Probert 0d1836a8ba Passable fullscreen mode
- Centering is still a bit off
2018-08-30 00:09:55 +02:00
Linus Probert 316325b98d Implemented leaderboard updates 2018-08-29 22:13:22 +02:00
Linus Probert d2ced6cef1 Adds hooks for all achievements 2018-08-29 14:31:20 +02:00
Linus Probert 28b3980fe6 Fixed non-steam build, because I broke it :D 2018-08-29 14:11:36 +02:00
Linus Probert 8cdc87c299 Completed Steam api integration.
- Next step is to actually trigger the achievements in the right places.
2018-08-29 14:03:18 +02:00
Linus Probert f5a88fc10e Introduces texture blending
- Makes indicator sprites transparent when the player is under them
2018-08-23 09:41:10 +02:00
Linus Probert 52913af237 Completes #42 Add boss 2 & 3
- Adds "The Shadow"
- Adds the "assassin" behaviour
- Adds some assassins to levels > 15
2018-08-23 09:11:13 +02:00
Linus Probert 449cc362a0 Fixes some minor buggs
- Monsters now drop loot as soon as they die
    (not after the dagger has stopped moving)
- Artifacts keep correct alignment even after a level switch.
2018-08-23 08:41:47 +02:00
Linus Probert f67aab0b37 Completes #43 Add win state
Game now ends if you reach depth level 20

Also fixed:
    - Funky bug with stats with 0 dmg
    - Wonky speed = 2 on monsters behaviour
    - Some other minor stuff
2018-08-22 20:54:39 +02:00
Linus Probert 8c261fd59f Added the undead monsters for level > 10
- Fixed a double damage bug
- Prevent player from getting killed when in DEBUG mode
   - This can cause really weird behaviour if you fall into a pit.
2018-08-22 14:02:55 +02:00
Linus Probert 6326a64111 Begins #42 Add boss 2 & 3
- Added "The cleric" for level 10.
2018-08-22 13:13:54 +02:00
Linus Probert f1b0045829 Introduces the "orc levels"
Also fixes some minor buggs.
2018-08-22 11:05:12 +02:00
Linus Probert ffe1736792 Minor buggfixes and typos
- Mention level in "new skill tooltip"
- Fix a msvc compiler warning
- Prevent level 2 artifact first pickup from bugging rendering
2018-08-21 22:27:45 +02:00
Linus Probert 8c25693d6d Moves sqlite3 files to separate dir
Only intention is to separate my code from 3rd party code.
2018-08-21 16:32:26 +02:00
Linus Probert bec9eb429d Fixed a typo in skill tooltip 2018-08-21 16:21:22 +02:00
Linus Probert 43f021a997 Created an FPS counter for debug mode
- Also moves the "sword pointer" to debug mode only.
2018-08-21 16:18:11 +02:00
Linus Probert dbc36aab9f Fixes #41, Minimap 2018-08-21 15:44:12 +02:00
Linus Probert 9ef97c0897 Fixes #38, Artifact inventory 2018-08-21 12:42:23 +02:00
Linus Probert 358c0c7ddc Fixes #37 and #39 Adds tooltips to everything
- A tooltip on first play will explain how it works
- A tooltip on levelup will display skill info
- A setting is introduced to disable tooltips
2018-08-20 14:32:38 +02:00
Linus Probert 5f754d551a Merge branch 'master' into dev 2018-08-19 20:26:28 +02:00
Linus Probert 30058ea4e0 Creates gui_util and moves some code out from gui.c 2018-08-19 20:25:31 +02:00
Linus Probert 549f47ae0b Minor code fixes and a slight tweak to the blue color 2018-08-16 14:09:54 +02:00
Linus Probert 3fabd039a4 Prevents artifacts before level 3
- Also fixes a potential segfault
2018-08-15 18:16:44 +02:00
Linus Probert 9a610d5f88 Adds window icon
- Fixes bug where you could move when falling.
2018-08-15 08:08:18 +02:00
Linus Probert 6af8d9dd8f Completes #8 First boss
- Adds "The Hell Hound" to level 5
2018-08-15 07:20:53 +02:00
Linus Probert 915ea59ca3 Fixes a mistake in music loading. 2018-08-14 17:00:10 +02:00
Linus Probert 6cc96a954d Begins #8 First boss
- Introduces FIRE_DEMON behaviour
- Just need to pick a sprite and adapt the lua code
2018-08-14 13:28:10 +02:00
Linus Probert 1a09328793 Adds boss music and an additional attribution line per request. 2018-08-14 13:15:22 +02:00
Linus Probert 6633db7aa4 Adds room objects and FIRE rooms. 2018-08-13 13:11:32 +02:00
Linus Probert 292f549d57 Minor compiler warning fix 2018-08-12 19:48:14 +02:00
Linus Probert 369cfda70b Completes #33 Create score screen 2018-08-12 19:43:33 +02:00
Linus Probert 254417271c Began #33 Create score screen
Adds the backend (db) part of hiscores, next step is to create the
screen.
2018-08-12 16:14:07 +02:00
Linus Probert ffd777e055 Buggfixes
- Change credit screen font color
- Main menu monsters are back
2018-08-12 10:45:52 +02:00
Linus Probert 3f1cdf8a12 Fixes: #5 Creates a creditscreen 2018-08-12 09:13:18 +02:00
Linus Probert 2a80434547 Adds posibility for daggers hitting walls to be recoverable. 2018-08-11 23:35:16 +02:00
Linus Probert 69e5ff99e0 Fixes #35 2018-08-11 20:16:23 +02:00
Linus Probert b4a6c4b46f Fixes some render layer issues
- Chance for more daggers in containers
- Less health from meat
- Prevent exit from spawning under containers
2018-08-11 15:15:53 +02:00
Linus Probert 4ba301769a Fixes: #30
- Also fixes a bug with artifact generation
- Extends menu room with new features
- Adds more descriptive text to container openings
- Fixes bug with container loot generation
2018-08-10 22:31:06 +02:00
Linus Probert 62d1bbd49d Completes #31 Adds chests to game 2018-08-10 20:09:56 +02:00
Linus Probert 1c7631cf52 Starts #31 Items: Chests
Lua gen code remains to do
2018-08-10 14:29:45 +02:00
Linus Probert 83aa92943f Don't open menu immidiately upon death. 2018-08-10 13:29:12 +02:00
Linus Probert 5e3815a233 Fixes: #34 hopefully 2018-08-10 13:18:56 +02:00
Linus Probert 71c1279ef7 Completes #2 artifacts 2018-08-10 13:00:23 +02:00
Linus Probert 8dd774b308 Continues #2 Completed impl of INCREASED_STUN
- That should be all artifacts implemented. Last step is the random
generation and drop rate.
2018-08-09 16:18:34 +02:00
Linus Probert ba1d09ad51 Continues #2 completed impl of DAGGER_RECOVERY 2018-08-09 16:15:22 +02:00
Linus Probert 19e7583f3e Continues #2 FEAR_INDUCING impl
This required changes (improvements imo) to the monster state logic.
2018-08-09 16:09:47 +02:00
Linus Probert 0aacdd2d84 Continues #2 Adds PUSH_BACK impl 2018-08-09 15:31:27 +02:00
Linus Probert ac7dada0d5 Fixes #23 possibly 2018-08-09 15:15:25 +02:00
Linus Probert a04f131c2d Continues #2: Adds charge skill impl
- Also adds an arti pickup sound
2018-08-09 13:58:16 +02:00
Linus Probert 736eb79996 Continues #2: Artifacts
- Adds sparkle effect on artifacts
- Implements TRAP_AVOIDANCE, IMPROVED_HEARING
2018-08-08 14:46:59 +02:00
Linus Probert 095c93e5b2 Began #2: Added artifacts and the PIERCING_DAGGERS modifier
Still need to add the rest of the artifact effects but that should be
simpler from this point.
2018-08-08 00:14:24 +02:00
Linus Probert 611d8ef4d6 Fixes a minor bug in the guerilla behaviour 2018-08-06 19:38:27 +02:00
Linus Probert aaa8e8c36e Makes stunned enemies "wobble" instead of having an indicator.
- Also adds more decorations to rooms.
2018-08-06 13:34:27 +02:00
Linus Probert ffde0793e5 Fixes: #4 Room stuff: Traps
- Adds traps
- Adds lua hooks for traps
- Fixes level exit in pit bug
2018-08-06 00:28:23 +02:00
Linus Probert a3c3c634d6 Adds the bash sound effect 2018-08-05 15:47:56 +02:00
Linus Probert 41a902181a Fixes a bunch of msvc warnings 2018-08-05 15:01:25 +02:00
Linus Probert 484fb30a89 Changes the log to fill from the bottom
Looks more natural this way.
2018-08-05 12:48:56 +02:00
Linus Probert d8615b2f14 Changes stun icon and fixes some syntax reports from codacy 2018-08-05 11:00:43 +02:00
Linus Probert 9fe2edee85 Fixes: #29 and #17 New skill: bash
Adds the bash skill and the stunned state.
Stunned enemies have disadvantage while stunned.
2018-08-04 23:52:52 +02:00
Linus Probert 56af37edb0 Removing natural lighting debug.
After implementing line of sight light it did not look good at all with
this size of tiles. Keeping as is for now.
2018-08-04 14:07:17 +02:00
Linus Probert c16caf30b5 Comments out unused function 2018-08-03 11:08:44 +02:00
Linus Probert 353b4ed1c5 Adds raycasting debug
Next step is to actually implement the Bresenham Line Algorithm to make
line of sight and object shadowing a reality.
2018-08-03 10:45:54 +02:00
Linus Probert 68cf24ddf8 Dropps the particle line slash effect. 2018-08-03 10:44:30 +02:00
Linus Probert 2aee3600e6 Merge branch 'master' into dev 2018-08-03 10:41:21 +02:00
Linus Probert 1124e88df0 Minor fixes
- Make skills correctly turn the player
- Don't repopulate the matrix on every frame only on turn change
2018-07-31 23:45:09 +02:00
Linus Probert 4819eda1dd Adds "NEW GAME" menu option to game over menu
Also makes menu open when player dies
2018-07-31 23:13:30 +02:00
Linus Probert 4612cabe00 Adds sword animation to flurry
And XP gain to charge skill.
2018-07-31 21:23:01 +02:00
Linus Probert b9a4a8002d Fixes: #27 Suspicious code: sign conversion 2018-07-31 21:15:16 +02:00
Linus Probert 58e9c7ed13 Fixes: #21 Complex method issue in monster.c
At least this is an attempt at a fix
2018-07-31 21:08:36 +02:00
Linus Probert b12e5d4f7a Fixes: #26 Dagger kills should now give XP 2018-07-31 14:30:41 +02:00
Linus Probert 18e70221fa Restructured main game loop a bit. Reduced function size 2018-07-28 14:28:55 +02:00
Linus Probert 252955bc8d Removes "resume" option from menu when game over. 2018-07-09 22:53:52 +02:00
Linus Probert 988d6c5cac Implemented the sword swing effect.
This adds the animation type for future use.
Not super happy with the animation png. Will look over it in the future.
2018-07-09 19:26:06 +02:00
Linus Probert c96d0b6718 Removes bug that made it possible to move with daggers in air. 2018-07-06 22:30:28 +02:00
Linus Probert c6b643835b Added codefactor badge and fixed blank line issue. 2018-07-06 12:12:27 +02:00
Linus Probert f36a9dd2ac Sleeping state indicator is always visible. 2018-06-28 12:50:32 +02:00
Linus Probert 53dc7e2fe6 Possibly more accurate scaling. 2018-06-23 14:30:29 +02:00
Linus Probert dff55a1978 Fixes some buggs
- Fixes mapbuilder pit loading nullpointer
- Fixes black main menu bg after return to main menu
- Fixes skill sparkling on new game start
2018-06-14 00:12:49 +02:00
Linus Probert ec6722106a Adds an idea for slash animations that didn't look very good. 2018-05-22 23:01:15 +02:00
Linus Probert cc229c8b00 Prepares pengine for more particle types.
Also fixed an invalid read bug.
2018-05-22 22:42:06 +02:00
Linus Probert bbe4526947 Fixes colors to use defines. 2018-05-22 15:48:09 +02:00
Linus Probert 2462e4cf33 Adds sentinel monster behaviour. 2018-05-21 21:03:59 +02:00
Linus Probert a66f16de79 Reintroduces the pointer and mouse menu operation. 2018-05-20 17:25:53 +02:00
Linus Probert 123ae90f59 Better mod key logic in input and mouse motion check. 2018-05-20 16:53:16 +02:00
Linus Probert 821cac2fbd Completely separates input handling and game logic.
This commit disables mouse support in menus. This needs to be rethought
to be more stable.
2018-05-20 00:03:17 +02:00
Linus Probert 186cc7b514 Replaced state logic with behaviours instead. 2018-05-19 17:55:10 +02:00
Linus Probert 60114ed159 Hopefully fixes the build issues 2018-05-18 23:11:33 +02:00
Linus Probert e222e51a0e Don't test on clang and fix include problem in appveyor
Clang doesn't have the same --wrap linker flag that GCC has. Just ignore
it for now.
2018-05-18 14:17:29 +02:00
Linus Probert 138cba1400 Mock test for keyboardinput and fixed the found issues 2018-05-18 13:49:31 +02:00
Linus Probert 2feeb5cbcf Attempts to fix appveyor build 2018-05-17 23:34:44 +02:00
Linus Probert 2813a571e4 Separate player movement from input event loop.
Wrote a keyboardinput object but decided against using it for the time
being. I'll leave it in if I change my mind.
2018-05-17 23:14:42 +02:00
Linus Probert c4dc8382a9 Monsters now indicate their state with speech bubbles 2018-05-17 21:41:23 +02:00
Linus Probert a7822331f8 Hopefully handle the "event overflow exploit"
There was an exploit where a keyboard would fire events quicker then
they could be consumed. This would lock the main game loop in the
SDL_PollEvent loop and block rendering until the key in this case was
released. Combning this with an attack meant that you could "farm" one
NPC for multiple kills and massive XP gains. Leaving the player at level
8+ on dungeon level 1. This fix should mitigate such shenanigans.
2018-05-16 19:09:01 +02:00
Linus Probert bc0d194dce Additional fall sounds
Wilhelm scream
2018-05-16 15:52:39 +02:00
Linus Probert fa8797a20f Removed a memory leak and MACROD colors 2018-05-15 23:21:28 +02:00
Linus Probert 853d390427 Some create package dir in travis 2018-05-15 14:21:54 +02:00
Linus Probert 6d5acc698e Nicer labels in many places. 2018-05-15 14:12:38 +02:00
Linus Probert b88318097f Render texts after particles. 2018-05-15 11:20:52 +02:00
Linus Probert d6daf7b798 Nicer action texts 2018-05-15 11:16:56 +02:00
Linus Probert 524e10ac8f Adds camera shake.
Removed some old buildfiles that had accidentally made it into the repo.
2018-05-13 23:32:44 +02:00
Linus Probert 0576c47bb2 Fixed the frame sprites 2018-05-12 10:47:06 +02:00
Linus Probert 3e6976d2cc Adds texture creation of gui frames to reduce render time
Also enables leakchecking and removes leaks from hashtable tests and
some other leaks that were obvious. There are some X11 leaks still
present but I don't think these are caused by me.
2018-05-09 00:21:38 +02:00
Linus Probert 2122300f6e Prepare for texture streaming and locking.
The intention is to static stream the gui areas into one big texture.
2018-05-08 16:34:22 +10:00
Linus Probert 9d7669fd35 Some updates regarding asset management
Had an idea of self-cleaning the cache but it didn't hold. Leaving the
stuff I wrote that might not be useless in the future.
2018-05-06 13:27:29 +02:00
Linus Probert da75ccde23 Removed an unused timer on Projectiles 2018-05-06 07:33:00 +02:00
Linus Probert db21bb813f Removed clang warnings 2018-05-06 06:19:59 +02:00
Linus Probert efe062993b Always play sound when daggers hit/miss something 2018-05-05 21:36:16 +02:00
Linus Probert 3665c7ff66 Rotate daggers instead of using spritesheet
Don't know if this is bad for performance but it does make things
simpler.
2018-05-05 21:29:08 +02:00
Linus Probert 677a7d8b69 Changes to settings.c db queries
Sort of experimental. No harm but perhaps not an improvement.
2018-05-05 20:59:53 +02:00
Linus Probert f290a0dc1c Prepared for more skills 2018-05-04 18:14:44 +02:00
Linus Probert fcf1f24547 Fixed log prints in release mode and some better fail handling. 2018-05-04 01:22:40 +10:00
Linus Probert 5efef180a5 Fixes the release build 2018-04-28 19:10:49 +02:00
Linus Probert a350f66290 Removes some of the spammy logs.
Not as important now that there is an in game log.
2018-04-28 19:03:23 +02:00
Cong 6896308451 Use SDL to detect screen dimensions
Supports macOS, remove dependency on X11
2018-04-28 15:05:56 +10:00
Linus Probert 8647eaa7a4 Coloured, file, function and line referenced debug output. 2018-04-21 22:58:53 +02:00
Linus Probert 04a3691463 Removes some GCC warnings 2018-04-20 14:46:00 +02:00
Linus Probert cab3b501fc Borke out some of the settings sqlite code to it's own module. 2018-04-16 21:19:26 +02:00