Commit Graph

263 Commits

Author SHA1 Message Date
Timothy Warren
5b227115db Add clothing to player and NPCs 2022-01-04 11:11:38 -05:00
Timothy Warren
d96d1ce003 Add regex crate to parse dice specs for equipment 2022-01-04 10:08:06 -05:00
Timothy Warren
2e02e30bc6 Complete Section 5.7, replacing the CombatStats component with a new Pools component for more flexibility 2022-01-03 16:30:14 -05:00
Timothy Warren
29b7f18cd8 Create Skills Component 2022-01-03 15:24:38 -05:00
Timothy Warren
5a4d8bc234 Add attributes to Player and NPCs 2022-01-03 15:21:12 -05:00
Timothy Warren
3c36ee7fd3 Fix a clippy warning, complete section 5.6 2022-01-03 10:58:20 -05:00
Timothy Warren
b5bf24a3aa Spawn more NPCs in the town map 2022-01-03 10:57:23 -05:00
Timothy Warren
ea185db29b Add quips to bystanders 2022-01-03 10:49:12 -05:00
Timothy Warren
4393b76122 Add system to let bystanders move around 2022-01-03 09:54:32 -05:00
Timothy Warren
45bedf11d2 Add vendor NPC type 2022-01-03 09:39:52 -05:00
e93573f3a0 Complete section 5.5 by swapping locations with non-hostile NPCs 2021-12-24 14:44:48 -05:00
28ef47c4b7 Add people and objects to the town map 2021-12-24 14:27:44 -05:00
3f561e2ffc Generate some entities in the pub using raws system 2021-12-24 13:23:56 -05:00
a4e9c27c8f Finish generating the empty town map, completing section 5.4 2021-12-24 11:30:52 -05:00
b115f43d5d Use :: prefix on external crates 2021-12-24 10:38:44 -05:00
2dc420bef9 Create a rough town map generator, starting section 5.4 2021-12-24 10:20:29 -05:00
c1222294d0 Move the spawn table to raws 2021-12-23 13:07:50 -05:00
aaf3fdcc42 Spawn all entities via raws, complete Section 5.2 2021-12-23 12:48:09 -05:00
b80c64febb Spawn monsters from raw data, like items 2021-12-23 12:31:03 -05:00
e154577012 Simplify spawning of items, as they are now created by the raws 2021-12-23 12:05:56 -05:00
23e187c7fd Fix rendering of ranged weapons 2021-12-23 12:04:50 -05:00
98407d2c77 Spawn items from JSON data 2021-12-23 11:38:37 -05:00
70494d8122 Start of data-driven design (Section 4.2) 2021-12-23 11:00:37 -05:00
Timothy Warren
cb2839733b Complete section 4.19 2021-12-17 16:54:36 -05:00
Timothy Warren
f749d9a9e5 Create camera, and adjust drawing code to render arbitrary size maps 2021-12-17 16:35:30 -05:00
Timothy Warren
6af7476c51 Tweak door behavior, completing section 4.18 2021-12-17 14:31:39 -05:00
Timothy Warren
1e969db5b0 Allow doors to be opened 2021-12-17 14:23:36 -05:00
Timothy Warren
a2cdf9e4cd Fix formatting of prebuilt rooms 2021-12-17 14:21:26 -05:00
Timothy Warren
ae3f83b544 Make doors opaque, and block the way 2021-12-17 14:07:14 -05:00
Timothy Warren
d028065a4a Spawn doors 2021-12-17 13:53:14 -05:00
Timothy Warren
2b91cbcc8f Restore randomness, and complete section 4.17 2021-12-17 11:33:21 -05:00
Timothy Warren
75d9af0562 Add ability to spawn items and enemies in corridors 2021-12-17 11:29:16 -05:00
Timothy Warren
132d1dac62 Track corridor tile locations, and update corridor builders to update the map builder state 2021-12-17 11:14:41 -05:00
Timothy Warren
5cbd914a98 Add straight line corridor builder 2021-12-17 10:57:03 -05:00
Timothy Warren
ac8b70af2b Add nearest neighbor corridor builder 2021-12-17 10:44:35 -05:00
Timothy Warren
f281a8be7a Add circular room builder, and finish section 4.16 2021-12-16 16:23:38 -05:00
Timothy Warren
d7b617474f Create basic room drawer 2021-12-16 16:07:33 -05:00
Timothy Warren
2ef1f3e1c8 Make map building random again, completes section 4.15 2021-12-16 14:26:50 -05:00
Timothy Warren
939996c71e Expand Room sorter with more options 2021-12-16 13:48:36 -05:00
Timothy Warren
b0b154c8d7 Decompose bsp_dungeon builder into rooms, corridors, and sorting 2021-12-16 13:26:48 -05:00
Timothy Warren
23dfbeeeb9 Split corridor creation from room creation for simple_map builder 2021-12-16 11:38:53 -05:00
Timothy Warren
9ef557d938 Update random_builder function with temporary setup 2021-12-15 15:51:01 -05:00
Timothy Warren
099f373ee8 Add room_exploder and room_corner_rounder map filters 2021-12-15 15:50:17 -05:00
Timothy Warren
74fcc25b8c Make dla and drunken map builders implement MetaMapBuilder trait 2021-12-15 13:58:47 -05:00
Timothy Warren
ee9e96e828 Implment MetaMapBuilder for Cellular Automata map builder 2021-12-15 13:50:27 -05:00
Timothy Warren
8249622a3e Complete section 4.14 2021-12-15 12:08:44 -05:00
Timothy Warren
ee5e690180 Clean up unused use statements 2021-12-15 12:08:23 -05:00
Timothy Warren
fc0843847e Finish refactoring of map builders 2021-12-15 11:36:17 -05:00
Timothy Warren
71a07b301c Refactor waveform_collapse map builder to use Rust builder pattern 2021-12-15 11:07:19 -05:00
Timothy Warren
8a596bf93c Refactor voronoi builder to use Rust builder pattern 2021-12-15 10:57:30 -05:00
Timothy Warren
db1c4c2d44 Refactor some voronoi-based builders to use Rust builder pattern 2021-12-15 10:45:58 -05:00
Timothy Warren
a6d37bf0dc Refactor voronoi map builder to use Rust builder pattern 2021-12-15 10:08:05 -05:00
3f692846f8 Refactor bsp_interior map builder to use Rust builder pattern 2021-12-14 17:39:24 -05:00
ec6e44477b Refactor bsp_dungeon builder to use Rust builder pattern 2021-12-14 17:29:44 -05:00
Timothy Warren
541421eb5b Refactor simple map builder to use the Rust builder pattern 2021-12-14 16:29:36 -05:00
Timothy Warren
9d97f3bd0d Complete section 4.13 2021-12-14 14:16:18 -05:00
Timothy Warren
99d5a78512 Fix some linting issues 2021-12-14 14:15:22 -05:00
Timothy Warren
cce44f78f4 Finish Prefab map builder 2021-12-14 11:19:03 -05:00
Timothy Warren
5454dd0755 Add initial room vaults 2021-12-13 15:22:59 -05:00
9ff645066b Reorder use statements 2021-12-10 20:16:48 -05:00
Timothy Warren
ce3d92bfe2 Complete section 4.12 2021-12-10 16:35:09 -05:00
Timothy Warren
28692ec50c Refactor entity (Enemy, Item, Equipment) spawning 2021-12-10 16:34:11 -05:00
Timothy Warren
8bf63ad876 Add ability to load string map in the prefab map builder 2021-12-10 15:17:51 -05:00
Timothy Warren
db168dc01a Use named submodules instead of mod.rs submodules 2021-12-10 14:36:27 -05:00
Timothy Warren
baec7dbee1 Refactor prefab_builder into a folder 2021-12-10 14:29:03 -05:00
Timothy Warren
def589086c Create prefab_builder 2021-12-10 11:31:39 -05:00
Timothy Warren
54e9e684e7 Cleanup some code for the start of Section 4.12 2021-12-10 11:30:58 -05:00
Timothy Warren
9879fa30b6 Complete section 4.11 2021-12-09 11:34:46 -05:00
Timothy Warren
0bc9e1a938 Add a layout solver to the waveform_collapse map builder 2021-12-09 10:31:43 -05:00
Timothy Warren
5fcc22ab6a Add constraints and common submodules to waveform_collapse map builder 2021-12-08 15:31:52 -05:00
Timothy Warren
3ce4994417 Generate a map from a REX Paint file 2021-12-07 15:13:02 -05:00
Timothy Warren
5c78512002 Complete section 4.10 2021-12-07 14:55:39 -05:00
Timothy Warren
616f75f6a5 Complete section 4.9 2021-12-07 10:36:41 -05:00
Timothy Warren
d0c4f9b8c2 Extract symmetry and brush size functions from DLA map builder 2021-12-07 10:23:52 -05:00
Timothy Warren
9b4953be7d Add DLA map building algorithms, finishing section 4.8 2021-12-07 10:17:13 -05:00
Timothy Warren
5e147b40c2 Complete section 4.7, using maze generation to build a map 2021-12-06 15:49:40 -05:00
Timothy Warren
d01a60f8fb Finish section 4.6 2021-12-06 14:23:35 -05:00
b24bf3562c Start section 4.6 2021-12-03 19:33:56 -05:00
Timothy Warren
545deb24d8 Generate map with cellular automata, completes section 4.5 2021-12-03 15:55:07 -05:00
Timothy Warren
e8c03b9536 Add corridors to the bsp interior map builder, completing section 4.4 2021-12-03 14:15:17 -05:00
Timothy Warren
c38a8f1629 Implement start of BSP Interior map builder (Section 4.4) 2021-12-03 10:00:19 -05:00
Timothy Warren
731e6dd243 Fix some clippy warnings 2021-12-02 15:03:55 -05:00
Timothy Warren
0f8d4d8fab Randomly choose which map builder to use 2021-12-02 15:00:06 -05:00
Timothy Warren
86d46b8d5b Fix some minor component issues 2021-12-02 14:59:35 -05:00
Timothy Warren
37b042e434 Add BSP map builder 2021-12-02 14:59:00 -05:00
Timothy Warren
c7cd65af7a Add some convient trait implementations for the Position component 2021-12-01 15:25:48 -05:00
Timothy Warren
e55218c325 Make map setup more DRY, add map generation visualizer, completes section 4.2 2021-12-01 14:45:27 -05:00
Timothy Warren
713c3f6fb8 Complete section 4.1 by removing rooms from Maps 2021-12-01 12:08:14 -05:00
Timothy Warren
feb7988f5f Move map builder state into map builder 2021-12-01 12:03:49 -05:00
Timothy Warren
6b48111a97 Move more map procedure stuff into the map builder 2021-12-01 11:41:29 -05:00
Timothy Warren
7f8c16a79f Refactor map generation to return original player position 2021-12-01 11:02:39 -05:00
Timothy Warren
8bb6bf35d6 Refactor map generation into its own submodule 2021-12-01 10:47:41 -05:00
Timothy Warren
06e7311523 Complete section 3.7 2021-12-01 10:14:30 -05:00
Timothy Warren
4011e7d7d3 Make single-activation traps work 2021-12-01 09:46:34 -05:00
Timothy Warren
804904dd4b Add a basic hidden trap mechanism 2021-11-29 16:00:07 -05:00
Timothy Warren
32874bf9f5 Fix main menu selection if there is no save file. Also remove redundant variables and returns 2021-11-29 15:10:56 -05:00
Timothy Warren
1f8869879c Add background image to main menu 2021-11-29 14:59:46 -05:00
Timothy Warren
d0b0a84984 Add item to reveal current map, completes section 3.5 2021-11-29 14:39:15 -05:00
3effbdb586 Use less redundant code style with 'if let' statements 2021-11-19 19:52:15 -05:00
Timothy Warren
87d825276e Finish section 3.4 2021-11-19 11:31:27 -05:00
Timothy Warren
69194a2dd6 Slightly simplify adding entries to game log 2021-11-19 11:30:25 -05:00
Timothy Warren
81f64b07a6 Add rations, and the ability to eat them 2021-11-18 15:25:29 -05:00
Timothy Warren
7b93ecc26c Show hunger status 2021-11-18 11:47:57 -05:00
Timothy Warren
950c0a3ef1 Arrange key mappings in a bit more intuitive order 2021-11-18 10:56:51 -05:00
Timothy Warren
b9e499b421 Add additional set of controls for diagonals 2021-11-18 10:48:14 -05:00
Timothy Warren
e0f3b7c255 Make sure all numpad inputs are mirrored on the number row, so that Mac OS works with numpad controls 2021-11-18 10:32:50 -05:00
Timothy Warren
c490ab114b Implement the hunger system 2021-11-18 10:28:49 -05:00
15a0f1779c Add HungerClock component 2021-11-17 16:23:01 -05:00
c4db6f5932 Make import style more consistent 2021-11-17 16:08:46 -05:00
a973e6a444 Complete section 3.3 2021-11-17 15:55:48 -05:00
Timothy Warren
5bd85f5d86 Add particle effects for item usage 2021-11-17 13:50:55 -05:00
Timothy Warren
1dd5db42f7 Add particle effects for Melee combat 2021-11-16 11:33:58 -05:00
Timothy Warren
c4bc637c79 Fix wall drawing bug and get rid of clippy warnings 2021-11-16 10:45:39 -05:00
Timothy Warren
a198fe1832 Implement bloodstains 2021-11-16 10:28:05 -05:00
Timothy Warren
b1b3105a80 Complete section 3.1 2021-11-15 14:12:27 -05:00
Timothy Warren
ffc997ce20 Cleanup code structure to match the end of the first section of the tutorial 2021-11-15 13:55:31 -05:00
Timothy Warren
416af96be3 Complete the first section 2021-11-15 13:27:40 -05:00
Timothy Warren
43e9ebd52b Add some better equipment 2021-11-15 11:48:01 -05:00
Timothy Warren
a2ef1810d9 Add ability to remove equipped items 2021-11-15 11:32:09 -05:00
Timothy Warren
b2ed5e7758 Update dagger and shield to have attack/defense bonuses 2021-11-15 09:45:12 -05:00
Timothy Warren
4322b250cb Add ability to equip items 2021-11-15 09:19:22 -05:00
Timothy Warren
f4f1800770 Complete Chapter 1.12 2021-11-12 14:12:15 -05:00
Timothy Warren
7079a7eedd Weight spawn odds, and simplify item spawning 2021-11-12 14:06:55 -05:00
Timothy Warren
a51d63963f Add turn skipping and healing on skipped turns 2021-11-10 15:52:45 -05:00
Timothy Warren
f6dc758f12 Complete chapter 2.11 2021-11-09 15:50:42 -05:00
Timothy Warren
57adc4bc01 Fix for WASM compilation 2021-11-09 10:49:39 -05:00
Timothy Warren
1330386b52 Fix some main menu-related code 2021-11-09 10:38:56 -05:00
Timothy Warren
a307521d64 Implement game loading 2021-11-09 10:29:23 -05:00
Timothy Warren
48609aee1f Implement basic game saving 2021-11-08 13:58:40 -05:00
Timothy Warren
84934128d5 Add main menu 2021-11-08 10:22:11 -05:00
Timothy Warren
7d0200b262 Complete chapter 2.9 2021-11-05 14:32:14 -04:00
Timothy Warren
36af877217 Add Fireball scroll 2021-11-05 13:12:22 -04:00
Timothy Warren
d2ebe5dc1d Implement ranged item attacks 2021-11-05 10:42:44 -04:00
Timothy Warren
ef8d51de1f Cut down on some struct boilerplate 2021-11-05 10:41:47 -04:00
Timothy Warren
4e9869b09f Refactor potion, and its associated components to be more generic 2021-11-04 15:06:04 -04:00
Timothy Warren
923e0dc42b separate scope differently in the macro 2021-11-04 11:38:13 -04:00
Timothy Warren
7070fb0357 By the power of macros, reduce the amount of syntax required to register components 2021-11-04 11:27:44 -04:00
Timothy Warren
cb475708c7 Rename the game log module 2021-11-04 10:44:52 -04:00
Timothy Warren
4efce51ded Fix rendering of menus by rendering before handling the RunState 2021-11-04 10:00:42 -04:00
Timothy Warren
4c84ae9822 Fix typo 2021-11-04 09:55:39 -04:00
Timothy Warren
fee78663de Complete chapter 2.8 2021-11-04 09:54:38 -04:00
Timothy Warren
e4be3b6855 Add ability to drop items 2021-11-04 09:40:58 -04:00
Timothy Warren
cfd2ed887a Fix numpad navigation for Mac 2021-11-04 09:25:07 -04:00
Timothy Warren
c6abd497a1 Clean up modules and their use statements in the main file 2021-11-03 16:04:36 -04:00
Timothy Warren
14895dac8f Allow drinking of potions 2021-11-03 15:59:23 -04:00
Timothy Warren
0ac2226947 Start of inventory system 2021-11-03 15:11:19 -04:00
Timothy Warren
07c703f2a4 Refactor entity spawning into its own module 2021-11-03 09:55:17 -04:00
Timothy Warren
ce80b34c2e Finish chapter 2.7 2021-11-02 09:25:48 -04:00
Timothy Warren
a17cc6f2e6 Add basic ui with healthbar, game log, and mouse tooltips 2021-11-01 14:46:45 -04:00
Timothy Warren
598032aadf Finish chapter 2.6 2021-10-29 15:15:22 -04:00