Commit graph

  • e04c03b381 Small error in how mouse events are processed. I need to do them _outside_ of the guecs::UI so that the event is checked once and then confirmed in all grids. Then created a tombstone device to be used as a dead enemy marker that will later allow looting. Zed A. Shaw 2025-02-19 08:33:18 -05:00
  • 6447f86954 Status UI now fakes a kind of 'hot bar' inventory display. Zed A. Shaw 2025-02-19 00:35:32 -05:00
  • f10498425e Make the FPS/debug output render in a better place and not so in your face. Zed A. Shaw 2025-02-19 00:22:59 -05:00
  • bfe0d797c8 Status UI now has a log and some buttons. Zed A. Shaw 2025-02-18 23:58:13 -05:00
  • 3a6ba8445a Added a Background guecs component. Zed A. Shaw 2025-02-18 23:08:04 -05:00
  • 69a810b5a1 Combat UI can now send events to the GUIwhen they click on buttons, and I've got a crappy wood texture for the buttons to test that. Zed A. Shaw 2025-02-18 14:24:57 -05:00
  • 722d55d948 Refactored the GUECS system to have its own namespace then got Meter to work. Zed A. Shaw 2025-02-18 12:51:28 -05:00
  • 9c66e870d2 Finally get rid of this weird thing in dinkyecs where I was passing a const& to an _integer_ when a copy of the integer is exactly the same. Zed A. Shaw 2025-02-18 11:39:27 -05:00
  • 49a71e257e GUI for combat now works better and I can create sprites for things if I want. Zed A. Shaw 2025-02-18 11:28:55 -05:00
  • 46de98e6f4 I now have a semi-functional GUI system that uses the ECS style to build gui elements rather than inheritance. Zed A. Shaw 2025-02-18 01:10:56 -05:00
  • 615599084a Bring in a spider enemy. Zed A. Shaw 2025-02-17 14:34:50 -05:00
  • deb235dbc5 This gets the project to compile on OSX with Clang 16 (OSX version 14.7.x) but there's missing libraries for the linking stage. Zed A. Shaw 2025-02-17 05:26:47 -05:00
  • 2a4ada81bb Did some work checking the build on OSX. Looks like clang 14 is too old, will try later version. Zed A. Shaw 2025-02-13 13:15:23 -05:00
  • 8d9c2d8c05 Combat UI's elements are now pulled out into gui_gadgets so we have an initial prototype on basic UI elements needed. Zed A. Shaw 2025-02-16 21:19:21 -05:00
  • 7c1f05c801 Combat UI is alright but need to now make a few common widgets. Zed A. Shaw 2025-02-16 19:27:57 -05:00
  • cfe56bbf99 Combat Mode is more reliable now, just one little glitch that it doesn't exit on the last enemy dying. Zed A. Shaw 2025-02-16 18:31:31 -05:00
  • 232c994347 HP bar is working, and next just need to make the combat gui actually work. Zed A. Shaw 2025-02-16 13:48:57 -05:00
  • 3ec2bf4784 Can now do UI rendering based on the name and also have gaps in the grid reliably. Zed A. Shaw 2025-02-16 12:34:48 -05:00
  • 79c84ce885 New design on LEL that's way more sane and allows for more flexible columns and rows. Zed A. Shaw 2025-02-16 11:50:14 -05:00
  • f884b83809 SFML's use of fonts is bizarre. It gives you a bounding box for the font, but then just ignores it and positions the text using the baseline, which is then outside of the bounding box. This is a quick fix but still looks wrong. Zed A. Shaw 2025-02-16 03:00:29 -05:00
  • 55feff23fb Make the README better so people can try to build it. Zed A. Shaw 2025-02-16 02:59:40 -05:00
  • 6b9c67beec Add some debug boxes around the fonts to figure out why they aren't vertically centered. Zed A. Shaw 2025-02-15 22:54:00 -05:00
  • 45ad16c010 A bit more refinement. Zed A. Shaw 2025-02-15 22:23:24 -05:00
  • a7991a8f06 Fixing more bugs related to percentages and then prototype a more complex UI. Zed A. Shaw 2025-02-15 22:14:19 -05:00
  • e106ad4be7 Can click on buttons and make them change color. Zed A. Shaw 2025-02-15 14:29:27 -05:00
  • 7f9e200abe LEL can now do hit detection on squares. Zed A. Shaw 2025-02-15 13:43:41 -05:00
  • aa149b6574 Can now use lel::center to center something inside a cell. Zed A. Shaw 2025-02-15 13:22:36 -05:00
  • c03a384372 You can now prefix a size with % and it will do percentage for the size, even over 100. Zed A. Shaw 2025-02-15 12:52:26 -05:00
  • d558da1620 Just move all the one-liner functions straight into the parser. Zed A. Shaw 2025-02-15 12:21:04 -05:00
  • 60ed686eb0 Already better than CSS because I can center stuff. Zed A. Shaw 2025-02-15 12:13:58 -05:00
  • 1620a5420f Use a lel:: namespace. Zed A. Shaw 2025-02-15 11:55:04 -05:00
  • cebf61a794 LEL is able to position right/left/top/bottom and expand out too. Zed A. Shaw 2025-02-15 10:59:51 -05:00
  • 872cedc8e1 LEL is working at a basic grid level, able to render boxes where I want. Zed A. Shaw 2025-02-15 01:31:57 -05:00
  • 846b7aaf16 Initial cut of the lel parser mostly working but none of the basic alignment properties work. Zed A. Shaw 2025-02-14 15:40:15 -05:00
  • e7e0df6b70 New rat enemy. Zed A. Shaw 2025-02-14 15:22:47 -05:00
  • 02a385e707 Make the DinkyECS test fully isolated. Zed A. Shaw 2025-02-14 10:48:09 -05:00
  • f8dd5d816f Basic combat system prototype works, but needs more GUI love to really work in the game. Zed A. Shaw 2025-02-14 10:18:45 -05:00
  • bfd2718cc9 Found my old LEL code and got the shell working, so tomorrow I'll try to make it layout some gui element. Zed A. Shaw 2025-02-14 02:13:08 -05:00
  • 8a6b38c1a4 Start of V1 combat system where you get locked into combat when in range and have to work the turn system to get out. Zed A. Shaw 2025-02-13 14:39:04 -05:00
  • d2700d2928 You now have blood on your screen when below half health. Zed A. Shaw 2025-02-13 13:15:20 -05:00
  • 1c8f542c21 Nuke taught me the other way to make class enums not suck so I guess no FU? Zed A. Shaw 2025-02-13 11:14:32 -05:00
  • 9b3b81683a Separate out the major UIs to get ready for their development, and enable debug button. Zed A. Shaw 2025-02-13 10:55:45 -05:00
  • 7eec67ffc8 Got some buttons down now to make them do stuff. Zed A. Shaw 2025-02-12 18:06:25 -05:00
  • be4d0d51de Two main GUI elements are placed for the left side status and the bottom combat UIs. Zed A. Shaw 2025-02-12 17:55:21 -05:00
  • 1790eec697 Went with just making the left gui frame monochrome to sort out its value structure compared to the scene. Zed A. Shaw 2025-02-12 16:16:30 -05:00
  • 9fe7cac79b Have a sort of left gui going but not sure if I like it as a real texture yet. Will need to play with it more. Zed A. Shaw 2025-02-12 14:02:34 -05:00
  • d38e2cb0f2 All of the assets I need right now are done. Zed A. Shaw 2025-02-12 11:18:24 -05:00
  • 4027b70867 More assets. Zed A. Shaw 2025-02-12 02:24:32 -05:00
  • 583ad6d9c5 Create a bunch of textures for sprites in the game. Zed A. Shaw 2025-02-11 20:46:44 -05:00
  • ebaf4fc0ee Fix map, it was moved over but scaled for the whole screen. Zed A. Shaw 2025-02-11 20:46:31 -05:00
  • 21e087ded5 Basic UI positioning and layout prior to designing the UI and setting a place for the combat system. Zed A. Shaw 2025-02-11 14:35:54 -05:00
  • 90351ce0fe The lighting now uses the original grid based lighting calculations rather than a global single source from the player. Zed A. Shaw 2025-02-11 13:31:39 -05:00
  • 6da830595c Clean up the GUI some by moving the map_view out into its own file. Zed A. Shaw 2025-02-11 11:37:01 -05:00
  • 421cca308b Fixed player showing up as an enemy and did better map centering. Zed A. Shaw 2025-02-11 11:10:18 -05:00
  • e2bd61a1e4 Let the jank FLOW through my veins like pure cocaine! We have animations now and can attack enemies. It's all garbage to replace next session but the idea is there. Zed A. Shaw 2025-02-10 18:35:47 -05:00
  • abd843d5ec Very basic attack system. Zed A. Shaw 2025-02-10 14:06:38 -05:00
  • 6bca6d021e Sprite is now a component we can place on anything to render it. Zed A. Shaw 2025-02-10 12:58:24 -05:00
  • 9c37960283 Raycaster mostly cleaned up. Only thing I can think of is bringing in CameraLOL as the coordinates directly. Zed A. Shaw 2025-02-10 12:05:07 -05:00
  • 2de4b43914 Remove this formula comment. #NOTE Zed A. Shaw 2025-02-10 11:34:35 -05:00
  • 51972b0c35 Converted all the variable names from Lode's tutorial style to the one I use in prep for some review and cleanup. Zed A. Shaw 2025-02-10 11:32:50 -05:00
  • 0cbe20af35 Fix up the colors and rendering so that tilemap just uses components::Tile all the time. Need to load all of the config data from json one time on system start instead of constantly, although constantly does make debugging live easier. Zed A. Shaw 2025-02-09 15:54:17 -05:00
  • a4c13f7fc9 Maps are back and have color now. TileCell needs a rework. Zed A. Shaw 2025-02-09 14:57:19 -05:00
  • 27bb08d62c Tell json to be more strict about missing fields to avoid that bug in the future, then fix all of the data. Zed A. Shaw 2025-02-09 14:17:07 -05:00
  • b6831b75a3 This fixes the stupid 'bug' where nothing would render because I actually had the data type wrong in the json after moving to the new format. Zed A. Shaw 2025-02-09 14:05:39 -05:00
  • a69be90464 Game now builds and is using the new dynamic component loading but enemies do not spawn in and device events are really working. Also inventory is a giant bag of fail and needs a rewrite. Zed A. Shaw 2025-02-08 21:16:25 -05:00
  • 9e91c71125 BROKEN: Big refactoring happening, so it compiles but game does not run and the tests fail. Zed A. Shaw 2025-02-08 14:03:09 -05:00
  • 96efc990c1 Brought in nuke's idea for json serialize now to use it. Zed A. Shaw 2025-02-08 12:04:53 -05:00
  • d798d154ae We now have a full map that's basically the same mapping system from Roguish. There's a bug right now where it needs you to move once to calc the light and it's not being centered, but it does work. Zed A. Shaw 2025-02-07 19:32:00 -05:00
  • 55b67dcf5d Fix a bug where enemies will path into the player's space because collision isn't done at the right time. I think this may need another fix in the future when we get to the combat. Zed A. Shaw 2025-02-07 16:10:37 -05:00
  • 3986e6978e Sprites now have a distance lighting calculation that's the same as the raycaster using a shader. Zed A. Shaw 2025-02-07 13:50:50 -05:00
  • a19bc47904 FINALLY fix that stupid bug. The cause was two-fold: I was giving every 'enemy' a sprite, but that automatically included the player in the list of enemies, which meant that I was rendering the player's sprite while moving. Then in the sprite casting loop I was rendering things at 0. Zed A. Shaw 2025-02-07 11:05:15 -05:00
  • 25ad9b51f8 Really crappy minimap now displays. Zed A. Shaw 2025-02-06 15:03:46 -05:00
  • e85b5d998b System now controls the motion better since it's not GUIs job. Zed A. Shaw 2025-02-06 12:13:22 -05:00
  • 1973a7a1df GUI MOVE state is now cleaner and the camera is more consistent. Zed A. Shaw 2025-02-06 11:55:43 -05:00
  • b0437d352b Cleaned up a lot but now trying to refactor some more but making a mistake. Zed A. Shaw 2025-02-06 11:41:01 -05:00
  • 4b18b21861 Movement is more correct now since it uses the System::motion to do it for the player, which will always keep all the things updated. I also put placeholder barrels for all the non-combatant entities in the map. Finally, it still has the backup bug and now won't close when you close the window. Zed A. Shaw 2025-02-05 20:26:09 -05:00
  • 14128ab10f Now have enemies chasing us around and implemented diagonal movement as a test but I kind of like it. Zed A. Shaw 2025-02-05 14:16:31 -05:00
  • d5301acab5 Sprite is no more, now using the position from the level's world. Zed A. Shaw 2025-02-05 11:46:40 -05:00
  • d0badedbd9 More cleanup of the raycaster, finally removed the window as a dependency but I went against making it an sf::Drawable since that had a lot of code quality problems. Zed A. Shaw 2025-02-04 22:52:04 -05:00
  • d6c09e111d Raycaster now has wall collision so won't go through walls. Next step is to render all the sprites being places and then implement the Systems. Zed A. Shaw 2025-02-04 14:13:00 -05:00
  • 75ffb49a53 Clean up header includes. Zed A. Shaw 2025-02-04 13:26:22 -05:00
  • 1d3a76e5ee Refactored out main.cpp to be a separate gui and using an FSM to keep the turn based nature straight. Zed A. Shaw 2025-02-04 12:56:20 -05:00
  • 7228bdf210 Trying out an FSM for controlling the main loop. Zed A. Shaw 2025-02-04 00:52:54 -05:00
  • 740e30cb2b Strafing now works, thanks to rcr but needs a unit test on the camera and probbably a refactor so that rayview uses it or knows nothing about it? Zed A. Shaw 2025-02-03 14:17:20 -05:00
  • 48ac6603a8 Implement a little junk camera on its own that we can use later for movement and views. Zed A. Shaw 2025-02-03 11:08:17 -05:00
  • 976822ceb6 Mostly working junk camera that can do turnbased lerp smooth motion. Zed A. Shaw 2025-02-03 10:17:59 -05:00
  • cbf0955786 Raycaster now controls the sprite locations with SpatialMap rather than the old way. Quick hack job in main.cpp that shows how they can move too. Zed A. Shaw 2025-02-01 14:39:08 -05:00
  • a67d25ee10 Tiles now record their textures and this is loaded from the map then converted to an indexed integer on the fly. Zed A. Shaw 2025-01-31 13:37:01 -05:00
  • 9e3e347e4a Fix a typo. Zed A. Shaw 2025-01-30 13:28:32 -05:00
  • 56d67aba28 First hack to get a random gen map going. Zed A. Shaw 2025-01-30 13:23:12 -05:00
  • 2daa1c9bd5 Brought over a bunch of code from the roguelike and now will use it to generate a random map. Zed A. Shaw 2025-01-30 11:38:57 -05:00
  • 8d3d3b4ec3 A quick warning in case people are funding the thing. Zed A. Shaw 2025-01-28 02:45:02 -05:00
  • 071808a0f8 Playing around with shaders for effects on the scene. Zed A. Shaw 2025-01-27 11:36:00 -05:00
  • 3519c73079 Remove some more junk from the texture thing. Zed A. Shaw 2025-01-27 10:25:49 -05:00
  • d0d3c8bc04 Make the animator more official. Zed A. Shaw 2025-01-27 10:13:32 -05:00
  • b87217ff90 Have a barely working animation thing that animates the evil eye when you click a button. Zed A. Shaw 2025-01-27 05:40:04 -05:00
  • 51c1e04f61 Made some progress on the refactoring but I need to start getting serious and not reworking this code to death. Zed A. Shaw 2025-01-26 19:22:27 -05:00
  • 6ed57cd4a8 Closer to what I want for sprite loading but still needs more work. Zed A. Shaw 2025-01-25 12:19:14 -05:00
  • 51858ea399 Made a terrible animation sprite and then did a quick animation test. Won't keep it for now but this shows how it could work. Zed A. Shaw 2025-01-25 12:02:57 -05:00
  • 0882851b3f Switching back to 256px textures for most things, but the weapon works best as a 512px. Zed A. Shaw 2025-01-25 08:29:01 -05:00