diff --git a/game/enemy.odin b/game/enemy.odin index 5b6bf6a..bac077b 100644 --- a/game/enemy.odin +++ b/game/enemy.odin @@ -94,7 +94,7 @@ update_enemies :: proc(world: ^World, dt: f32) { if !e.active do continue if e.path_index >= len(world.world_map.path) { - world.base_health -= 1 + world.player.base_health -= 1 e.active = false continue } diff --git a/game/overlay.odin b/game/overlay.odin index bd9eb36..eba66db 100644 --- a/game/overlay.odin +++ b/game/overlay.odin @@ -16,7 +16,7 @@ render_overlay :: proc(world: ^World) { rl.DrawText(gold, OVERLAY_PADDING, OVERLAY_PADDING, 18, OVERLAY_GOLD_COLOR) x += rl.MeasureText(gold, font_size) + gap - hp := fmt.ctprintf("Health: %d", world.base_health) + hp := fmt.ctprintf("Health: %d", world.player.base_health) rl.DrawText(hp, x, y, font_size, OVERLAY_TEXT_COLOR) x += rl.MeasureText(hp, font_size) + gap diff --git a/game/wave.odin b/game/wave.odin index 0face3c..a017695 100644 --- a/game/wave.odin +++ b/game/wave.odin @@ -101,7 +101,7 @@ update_phase :: proc(world: ^World) { } check_end :: proc(world: ^World) { - if world.base_health <= 0 { + if world.player.base_health <= 0 { world.phase = .Game_Over } diff --git a/game/world.odin b/game/world.odin index ab0d67b..c9670b8 100644 --- a/game/world.odin +++ b/game/world.odin @@ -3,7 +3,7 @@ package game World :: struct { economy: Economy, combat: Combat, - base_health: int, + player: Player, world_map: Map, events: [dynamic]Event, phase: Game_Phase, @@ -11,6 +11,10 @@ World :: struct { selected_tower: Tower_Kind, } +Player :: struct { + base_health: int, +} + Map :: struct { current_map: World_Map, path: [dynamic]Vec2, @@ -35,9 +39,13 @@ init_world :: proc() -> World { economy := Economy { gold = 100, } + + player := Player { + base_health = 20, + } world := World { economy = economy, - base_health = 20, + player = player, phase = .Build, selected_tower = .Archer, }