aboutsummaryrefslogtreecommitdiff
path: root/src/muntik.odin
diff options
context:
space:
mode:
Diffstat (limited to 'src/muntik.odin')
-rw-r--r--src/muntik.odin15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/muntik.odin b/src/muntik.odin
index 023174c..0612fd6 100644
--- a/src/muntik.odin
+++ b/src/muntik.odin
@@ -1,6 +1,8 @@
package demonchime
import "core:math"
+import "core:math/linalg"
+import "core:log"
import hm "core:container/handle_map"
import "fw"
@@ -24,6 +26,7 @@ make_muntik :: proc(pos: Vec2, direction: f32) -> (Handle, ^Muntik) {
body := phys.make_body(
phys.Rect{-sprite.offset, {14, 9}},
layers = {.Enemy},
+ mask = {.Player, .Hard},
)
phys.set_position(body, pos)
@@ -59,6 +62,18 @@ update_muntiks :: proc(dt: f32) {
turnaround_rc_start + {0, 16},
)
+ collisions := phys.get_colliding_bodies(m.body)
+ defer delete(collisions)
+
+ for body in collisions {
+ layers := phys.get_layers(body)
+ if .Player in layers {
+ bpos := phys.get_position(body)
+ dir := linalg.normalize0(bpos - pos) * 500
+ player_take_damage(MUNTIK_DAMAGE, dir)
+ }
+ }
+
if !phys.is_colliding(turnaround_rc) {
m.walk_dir *= -1
}