29 lines
526 B
Odin
29 lines
526 B
Odin
package game
|
|
|
|
Event_Kind :: enum {
|
|
Enemy_Killed,
|
|
Wave_Survived,
|
|
}
|
|
|
|
Event :: struct {
|
|
kind: Event_Kind,
|
|
gold_reward: int,
|
|
}
|
|
|
|
push_event :: proc(world: ^World, kind: Event_Kind, gold_reward: int = 0) {
|
|
append(&world.events, Event{kind = kind, gold_reward = gold_reward})
|
|
}
|
|
|
|
process_events :: proc(world: ^World) {
|
|
for ev in world.events {
|
|
switch ev.kind {
|
|
case .Enemy_Killed:
|
|
world.economy.gold += ev.gold_reward
|
|
case .Wave_Survived:
|
|
world.economy.gold += ev.gold_reward
|
|
}
|
|
}
|
|
clear(&world.events)
|
|
}
|
|
|