diff options
Diffstat (limited to 'src/game/effects.cpp')
-rw-r--r-- | src/game/effects.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/game/effects.cpp b/src/game/effects.cpp index daa2770..b69647c 100644 --- a/src/game/effects.cpp +++ b/src/game/effects.cpp @@ -174,6 +174,8 @@ fx_explosion_t::fx_explosion_t(state_t *game_, v2f_t x_) : effect_t(game_) flash = new fx_flash_t(game, x, 5.0f, sf::Color(255, 255, 170, 255)); flash->place(&game->world); + + game->hivemind_alert(x, 20.0f, false, v2f_t(0, 0)); } void fx_explosion_t::render_to(render::state_t *render) @@ -202,6 +204,8 @@ fx_bullet_miss_t::fx_bullet_miss_t(state_t *game_, v2f_t x_, bool water_) : effe assets::fx.water_splash_sound.play_3d(x); else assets::fx.ricochet_sound.play_3d(x); + + game->hivemind_alert(x, 6.0f, false, v2f_t(0, 0)); } void fx_bullet_miss_t::render_to(render::state_t *render) @@ -210,4 +214,38 @@ void fx_bullet_miss_t::render_to(render::state_t *render) render->render(phase, (water ? &assets::fx.water_splash : &assets::fx.ricochet), render_bounds, sf::Color::White); } +fx_debug_hivemind_t::fx_debug_hivemind_t(state_t *game_, v2f_t x_, float r_, bool do_move_, v2f_t move_to_) : effect_t(game_) +{ + ttl = game->now + 1.0; + + x = x_; + r = r_; + do_move = do_move_; + move_to = move_to_; + + render_bounds[0] = x - v2f_t(r, r); + render_bounds[1] = x + v2f_t(r, r); + render_bounds = render_bounds.norm(); + cmodel.bounds = render_bounds; + cmodel.cflags = 0; + + ignore_waking = true; + wake(); +} + +void fx_debug_hivemind_t::render_to(render::state_t *render) +{ + static const sf::Color color(0, 255, 0, 50); + + if (debug_AI) { + render->render_circle(x, r, color); + + if (do_move) { + render->render_line(x, move_to, sf::Color::Red); + render->render_circle(x, 0.1f, sf::Color::Red); + } + } +} + + } // namespace game |