MCPcopy Create free account
hub / github.com/TanTanDev/rusty_demon_attack / update

Method update

src/wave.rs:76–114  ·  view source on GitHub ↗
(
        &mut self,
        dt: f32,
        enemies: &mut Vec<Enemy>,
        resources: &Resources,
        sound_mixer: &mut SoundMixer,
    )

Source from the content-addressed store, hash-verified

74 }
75
76 pub fn update(
77 &mut self,
78 dt: f32,
79 enemies: &mut Vec<Enemy>,
80 resources: &Resources,
81 sound_mixer: &mut SoundMixer,
82 ) -> Option<WaveManagerMessage> {
83 self.internal_timer += dt;
84 let state_command_optional = match &mut self.state {
85 WaveManagerState::Spawning(game_state_spawning) => Self::update_state_spawning(
86 game_state_spawning,
87 dt,
88 enemies,
89 resources,
90 sound_mixer,
91 ),
92 WaveManagerState::Battle => Self::update_state_battle(enemies, &self.internal_timer),
93 };
94
95 if let Some(state_command) = state_command_optional {
96 match state_command {
97 WaveManagerCommand::ChangeState(target_state) => {
98 self.state = target_state;
99
100 let cleared_screen = variant_eq(
101 &self.state,
102 &WaveManagerState::Spawning(WaveManagerStateSpawning {
103 spawn_timer: 0f32,
104 enemies_left: 0,
105 }),
106 );
107 if cleared_screen {
108 return Some(WaveManagerMessage::LevelCleared);
109 }
110 }
111 }
112 }
113 None
114 }
115
116 fn update_state_battle(
117 enemies: &mut Vec<Enemy>,

Callers 1

mainFunction · 0.45

Calls 1

variant_eqFunction · 0.85

Tested by

no test coverage detected