Files
odin-iso-test/src/enemy.odin
T
2026-08-02 17:21:07 +03:00

28 lines
695 B
Odin

package main
import hm "core:container/handle_map"
import rl "vendor:raylib"
// ИИ врага — летит к игроку. Вызывается из диспатчера sys_update
enemy_update :: proc(state: ^GameState, e: ^Enemy, h: Handle, dt: f32) {
pe := get_entity(state, state.player)
if pe == nil do return
dir := get_base(pe).pos - e.pos
set_vel(&e.base, dir, e.speed)
}
// Мёртвые враги → лут
sys_death :: proc(state: ^GameState) {
it := hm.iterator_make(&state.entities)
for e, _ in hm.iterate(&it) {
#partial switch &v in e.v {
case Enemy:
if v.hp <= 0 && !v.marked {
v.marked = true
spawn(state, make_ground_item(v.pos))
}
}
}
}