|
|
01d9c2bd47
|
refactor physics.sml so that we always set plat ID of player/enemy, when player or enemy stands on new platform, and make changes to enemy-behaviour.sml in calculation to jump to the top-right after testing
|
2025-01-25 09:17:58 +00:00 |
|
|
|
c7ed5d3cce
|
refactor player and enemy records to have a platID field (representing the last platform that player or enemy stood on), and fix resulting compile errors
|
2025-01-25 08:41:42 +00:00 |
|
|
|
c8f56f3077
|
attempt at coding functionality to jump/drop when platform is to the right and not overlapping with current platform
|
2025-01-25 08:34:05 +00:00 |
|
|
|
d8af1da6de
|
prevent subscript error from occurring by validating eID and pID are both different from ~1, as the PathFinding.start function expects this to be the case
|
2025-01-25 00:48:56 +00:00 |
|
|
|
0be8e0dc5f
|
progress coding function to make FOLLOW_SLIME go rightwards if next platform is towards the right
|
2025-01-25 00:23:30 +00:00 |
|
|
|
7a5517571d
|
add functionality for enemy to walk to appropriate position if next platform is below current one, but only partially overlapping with current platform so enemy will not reach it if they drop down from current position
|
2025-01-24 22:51:20 +00:00 |
|
|
|
5e6a831add
|
write 'getJumpPatches' function in a slightly less redundant way
|
2025-01-24 09:48:57 +00:00 |
|
|
|
d07b0a35ca
|
amend minor regression bug: in 'canJump' function, check to make sure prevPlatform is lower than nextPlatform
|
2025-01-24 02:12:04 +00:00 |
|
|
|
02d94fc3c7
|
handle not-so-uncommon edge case: when platform enemy is on can be jumped from to reach next platform, but enemy is not in a position to jump (top platform slightly overlaps bottom platform in x-axis), make enemy walk left/right first so enemy reaches point where it is possible to jump from
|
2025-01-24 02:09:20 +00:00 |
|
|
|
e644160e38
|
enemy dropping below platform (without any bugs) is fully implemented now
|
2025-01-23 01:06:16 +00:00 |
|
|
|
efbf0c7da9
|
progress towards letting enemy drop below platform if path to player is there
|
2025-01-23 00:01:15 +00:00 |
|
|
|
174a99a5a0
|
switch implementation of heap from being based on heap.sml (heap as described by one of Chris Okasaki's papers) to being based on bin-vec.sml (simple vector storing elements in sorted order); more performant this way for cache reasons
|
2025-01-22 18:22:34 +00:00 |
|
|
|
c8c1818d24
|
fix platform data in game-type.sml (platform 2 and platform 5 had their IDs swapped for testing purposes, but they kept their previous position in the platforms vector, and because we rely on platforms being ordered and being able to perform binary search in the platforms vector, that caused inconsistencies
|
2025-01-22 00:01:34 +00:00 |
|
|
|
6c1c6b9a04
|
progress making enemy follow player
|
2025-01-21 23:54:53 +00:00 |
|
|
|
282d72b840
|
rip out print statements which were solely for debugging
|
2025-01-21 22:46:04 +00:00 |
|
|
|
72924ae084
|
instead of folding through quad tree to find reachable platforms, fold through platforms instead
|
2025-01-21 21:20:57 +00:00 |
|
|
|
f948d060ea
|
progress with fixing path finding
|
2025-01-21 00:19:38 +00:00 |
|
|
|
8498fab1dc
|
fix bin-vec.sml to store sorted element properly, in order
|
2025-01-20 12:23:30 +00:00 |
|
|
|
4e5219fccc
|
fix bug with value inserted into ValSet: before, the value inserted into the 'from' field was the ID of the current platform, but this is incorrect as it is circular. To fix, the 'from' field now contains the ID of the previous platform which this platform was found from
|
2025-01-20 11:17:00 +00:00 |
|
|
|
9c46e09ce4
|
amend 'foldRegion' function in MakeQuadFolder functor, by ensuring we don't visit only one child if item has coordinates in more than one child
|
2025-01-20 10:46:09 +00:00 |
|
|
|
6783dac9e0
|
a bit of bug fixing regarding implementation of dijstra's algorithm (next to fix: query towards quad/platform tree)
|
2025-01-20 02:38:22 +00:00 |
|
|
|
322a394138
|
progress towards implementing dijkstra's algorithm (next: test by printing to see if it works)
|
2025-01-20 01:25:09 +00:00 |
|
|
|
3939b0b3e2
|
done implementing functor to search through quad tree, adding to priority queue (for Dijkstra's algorithm)
|
2025-01-19 23:56:52 +00:00 |
|
|
|
1ba42462ba
|
progress implementing dijkstra's algorithm for path finding using quad trees
|
2025-01-19 22:45:51 +00:00 |
|
|
|
e64c3bc00d
|
add contains function to bin-vec.sml which returns true if the vector contains the value
|
2025-01-19 21:32:17 +00:00 |
|
|
|
e619fd1c05
|
change API of BinVec
|
2025-01-19 13:03:16 +00:00 |
|
|
|
4459a676ac
|
implement bin-vec (vector that always stores its elements in order, for binary search)
|
2025-01-19 12:06:56 +00:00 |
|
|
|
8c651b2221
|
implement heap which stores distance for later use with Dijkstra's algorithm
|
2025-01-19 11:07:45 +00:00 |
|
|
|
84ea0ce24b
|
code functor to fold through a specified region of the quad tree, without having to allocate an intermediary list or using a closure (which both have runtime costs)
|
2025-01-18 22:54:34 +00:00 |
|
|
|
2c6b1556d1
|
implemented four functions: is it possible to reach platform from above, is it possible to reach from below, or from left or right
|
2025-01-18 22:18:05 +00:00 |
|
|
|
edf7d4c8dc
|
fix bug in physics.sml where player/enemy would drop below continuously past multiple platforms even if they intended to drop below platforms only once (fixed by setting yAxis to 'FALLING' if there are no collisions at all and player is in DROP_BELOW_PLATFORMS state)
|
2025-01-18 22:13:16 +00:00 |
|
|
|
6812f61dcc
|
add function to search leftwards
|
2025-01-18 19:55:52 +00:00 |
|
|
|
c99999c0c9
|
fix calculated distance for helpGetRightwardsPath (reused same distance calculate as in helpGetUpwardsPath before)
|
2025-01-18 13:52:21 +00:00 |
|
|
|
d59b6eab82
|
code functioln to get rightwards path
|
2025-01-18 13:29:56 +00:00 |
|
|
|
00a9f22151
|
keep track of visited nodes to prevent infinite recursion
|
2025-01-18 10:09:08 +00:00 |
|
|
|
f796f2f858
|
have functiokn to get upwards path semi-working
|
2025-01-18 00:25:27 +00:00 |
|
|
|
560ef3f99a
|
add function to get ID of first item found at location in quad tree (returns ~1 instead of NONE if no item is found)
|
2025-01-17 21:48:18 +00:00 |
|
|
|
cbddc03a88
|
progress towards implementing follow slime (slime only tries jumping when platform is reachable now)
|
2025-01-17 13:18:02 +00:00 |
|
|
|
20e34ca0d5
|
add function that returns true if we can jump on platform
|
2025-01-17 12:29:07 +00:00 |
|
|
|
c7bd95e5d7
|
distinguish between standing on wall vs standing on platform (platform can be jumped on but wall cannot)
|
2025-01-17 11:49:34 +00:00 |
|
|
|
67a4ad5664
|
start implementing patches to follow player (basic; shouldn't use path finding like Dijkstra's algorithm)
|
2025-01-17 11:43:49 +00:00 |
|
|
|
a05f211428
|
pass player record as argument for enemy filtering functiokns, so enemy can react to player state (position, etc.)
|
2025-01-16 08:15:29 +00:00 |
|
|
|
0c01b224d0
|
slight refactoring to help with extensibility of adding enemy variants later
|
2025-01-14 11:50:27 +00:00 |
|
|
|
90c29ebe24
|
make enemy's speed slightly slower than player's speed
|
2025-01-13 12:53:50 +00:00 |
|
|
|
2c643a1500
|
change speed that projectile moves at (should be faster than player)
|
2025-01-13 12:46:10 +00:00 |
|
|
|
2a940a9392
|
done with patroll function, successfully making enemy switch directions while patrolling
|
2025-01-13 12:40:23 +00:00 |
|
|
|
ee5f3c628d
|
progress towards having enemy patrol area when on wall/platform
|
2025-01-13 11:28:49 +00:00 |
|
|
|
690bfe75da
|
make plan for writing how enemy should patrol on wall/platform
|
2025-01-13 11:02:34 +00:00 |
|
|
|
50238b8dac
|
done getting physics + environment to work on enemy as well, in addition to player
|
2025-01-13 09:52:25 +00:00 |
|
|
|
4484eb0ef0
|
functorise environment collision patches
|
2025-01-13 09:42:32 +00:00 |
|