|
|
93aebe5fa1
|
a bit of refactoring with regards to enemy's structures and files
|
2025-02-14 09:06:32 +00:00 |
|
|
|
93aae6dc1f
|
remove dead code
|
2025-02-14 08:46:28 +00:00 |
|
|
|
c5cea8dcb3
|
partial refactoring so we use EnemyMap.t for collection of enemies
|
2025-02-13 13:36:30 +00:00 |
|
|
|
265c8db88a
|
implement EnemyMap functor (todo: migrate from 'enemy vector' type to 'EnemyMap.t' type)
|
2025-02-13 12:14:50 +00:00 |
|
|
|
f1521acec1
|
refactor file order in preparation for adding GapMap for enemy
|
2025-02-13 11:24:44 +00:00 |
|
|
|
4c8b404c09
|
add code so that bat also moves vertically (in addition to previous horizontal movement) when updating enemy state
|
2025-02-12 00:25:55 +00:00 |
|
|
|
1dc3116b77
|
add fields to enemy which are relevant to bat's state
|
2025-02-11 23:54:13 +00:00 |
|
|
|
3db27a4107
|
cut time which bat rests for in half
|
2025-02-11 19:40:08 +00:00 |
|
|
|
d0d93780fb
|
initial implementation of bat's update function (todo: make bat oscillate up and down while it also moves in x axis, and also code bat's collisions with player, adding to falling list if necessary, or being filtered by player's attack)
|
2025-02-11 19:38:02 +00:00 |
|
|
|
3202c67f47
|
begin adding variant for STRAIGHT_BAT enemy
|
2025-02-11 18:05:44 +00:00 |
|
|
|
534852c8bf
|
don't make 'falling' enemies come back down (fall), but lift them up instead, filtered when reaching beyond the top of the world. It's a little more fluid with current physics for enemies to be 'spirited away' rather than fall.
|
2025-02-09 13:14:38 +00:00 |
|
|
|
4301e9ae38
|
add line-of-sight, so FOLLOW_SLIME will only follow player if player is in specific range of enemy (within 199 pixels currently).
|
2025-02-09 10:05:12 +00:00 |
|
|
|
07d31119a7
|
code functionality to filter out falling enemy from list if falling enemy is colliding with player
|
2025-02-08 11:05:58 +00:00 |
|
|
|
26870816db
|
add code so that enemy gains a new projectile when attacking falling enemies, and also draw the falling enemies
|
2025-02-08 10:48:34 +00:00 |
|
|
|
51401231e1
|
update state of falling enemies per loop
|
2025-02-08 09:49:32 +00:00 |
|
|
|
38640b14a2
|
add falling_enemies type to game (these enemies can be picked up and thrown), and thread fallingEnemies through enemy.sml to set up scaffolding for them
|
2025-02-08 09:20:10 +00:00 |
|
|
|
1c105193e2
|
extract a couple of collision functions to a separate module for reuse
|
2025-02-08 08:39:04 +00:00 |
|
|
|
f9fe009d59
|
have patrol slime and follow slime also react to player's ChainEdge attack, and not only player's projectiles
|
2025-02-08 04:02:17 +00:00 |
|
|
|
23cf480dad
|
reimplement enemy-filter loop (now enemy's reaction, and decision to possibly filter, is fully under enemy's control - physics, damage reaction, whether to filter or update enemy's state, etc.)
|
2025-02-08 01:05:39 +00:00 |
|
|
|
1be44335cb
|
add asset for ChainEdge (attack)
|
2025-02-07 13:42:38 +00:00 |
|
|
|
7734496a8c
|
remove some references to charging when/ife we don't need it, and also only trigger throw/attack on new button press (if held, throw/attack is not repeated)
|
2025-02-07 12:32:38 +00:00 |
|
|
|
283962c176
|
make length of main attack increase and decrease
|
2025-02-07 11:22:23 +00:00 |
|
|
|
f6cd818c42
|
display fieldVec which is more accurate to the attack's hitbox for now
|
2025-02-07 10:40:47 +00:00 |
|
|
|
35eab0f789
|
reimplement attack patches (todo: add an int to the MAIN_ATTACKING variant to make the attack grow past some limit, and a bool to indicate whether the attack should grow in length or shrink)
|
2025-02-07 09:10:10 +00:00 |
|
|
|
f5071a953b
|
make sure playedr only checks collisions with enemy in the case that player was previously attacked
|
2025-02-06 17:42:45 +00:00 |
|
|
|
e1e20230d6
|
rip out player-enemy.sml and let player react to enemy collisions independently of enemy reaction to player
|
2025-02-06 17:37:48 +00:00 |
|
|
|
886e3a674d
|
progress checking collisions of enemy inside functor instead
|
2025-02-06 09:53:31 +00:00 |
|
|
|
7142f5dc66
|
a little more deliberate about timing of when player's patches should be applied
|
2025-02-05 19:33:56 +00:00 |
|
|
|
e1e1228983
|
delete pointer quad tree because it is twice as slow to construct as the vector-based implementation
|
2025-02-01 10:11:32 +00:00 |
|
|
|
bf3f0b3927
|
done implementing pointer quad tree (next: benchmark the two)
|
2025-02-01 09:54:35 +00:00 |
|
|
|
28380957b3
|
start implementing new quad tree that only uses pointers (just to test performance between vector-using implementation and only-pointer-using implementation)
|
2025-02-01 09:44:22 +00:00 |
|
|
|
0a9ab389c2
|
fix bug in tracing left jump path: we should consider rightmost x coordinate from enemy (which we now do)
|
2025-02-01 01:33:26 +00:00 |
|
|
|
9e9675aaab
|
decrease memory consumption of quad tree by refraining from storing bounding box metadata (except for the global root which stores the width and height)
|
2025-02-01 01:03:57 +00:00 |
|
|
|
73aeeb5301
|
remove timing print statements from game-type.sml
|
2025-01-31 06:26:09 +00:00 |
|
|
|
547b5bac97
|
use an immutable vector (always of length 4) for representing quad tree's internal nodes
|
2025-01-31 06:24:51 +00:00 |
|
|
|
76c5f9d662
|
change maxSize of quad tree's leaf nodes (from a max length of 3 to a max length of 9)
|
2025-01-31 06:01:02 +00:00 |
|
|
|
e23e2f0997
|
precompute graph to be used for dijkstra's algorithm, resulting in CPU usage that never exceed 7/home/humza/Downloads/sml/oh-my-stars/fcore/path-finding.sml with 5 enemies and eliminating lag
|
2025-01-31 04:32:53 +00:00 |
|
|
|
f3a0b2bc81
|
write code for new loop implementation of dijkstra's algorithm, which uses a precomputed graphy; however, this is not used yet as we need to add the graph to the game type first, and pass it along with other parameters, down to the path-finding.sml function
|
2025-01-31 04:10:58 +00:00 |
|
|
|
a24ada0f37
|
implement code for precomputing reachable platforms so it can be reused (but haven't modified implementation of Dijkstra's algorithm to use it, and haven't added it to game type yet)
|
2025-01-31 03:46:28 +00:00 |
|
|
|
0cdd81189c
|
implement function to trace left jump, thereby completing 'build-graph.sml' (and fix a bug in trace-jump.sml where a left-tracing function mistakenly made a tail call to a right-tracing function)
|
2025-01-31 00:35:36 +00:00 |
|
|
|
70f04c2e92
|
implement function in build-graph.sml to trace path of right jump to detect reachable platforms (different from deciding how enemy should move to next platform in trace-jump.sml)
|
2025-01-31 00:18:17 +00:00 |
|
|
|
2103a8e8ac
|
implement quad tree folder for building graph horizontally (but still need to trace the left/right paths)
|
2025-01-30 13:25:39 +00:00 |
|
|
|
bbb957f016
|
get path-finding.sml to use function in build-graph.sml to find reachable platforms, and remove now-dead code from path-finding.sml
|
2025-01-30 13:06:32 +00:00 |
|
|
|
755e5da7f7
|
fix bug in bin-vec.sml 'deleteMin' function: we previously deleted two elements, but we are supposed to delete one, and now this is fixed
|
2025-01-30 12:55:36 +00:00 |
|
|
|
29389d3561
|
try coding a level
|
2025-01-30 08:34:38 +00:00 |
|
|
|
859414035d
|
when tracing left jump, consider the enemy's 'x' coordinate to be the leftmost point of the enemy
|
2025-01-30 08:21:15 +00:00 |
|
|
|
73b4e607ae
|
delete function to getPlatformBelowPlayer because it is no longer need now that player stores platID (but still keep function to get platform below enemy as that is still useful)
|
2025-01-30 00:11:01 +00:00 |
|
|
|
2446f3ea14
|
in trace-jump.sml, begin descent depending on enemy's size
|
2025-01-29 23:51:02 +00:00 |
|
|
|
d55126b52a
|
implement left jump/left drop tracing in trace-jump.sml, and verified that it works
|
2025-01-29 23:04:28 +00:00 |
|
|
|
89abab31ab
|
implement function to trace drop (while moving right)
|
2025-01-29 19:35:40 +00:00 |
|