From 2f69327c5b279356cfed81a7f682d20b2f939578 Mon Sep 17 00:00:00 2001 From: Kevin Balz Date: Fri, 20 Sep 2019 21:59:16 +0200 Subject: [PATCH] get beats for killing --- src/audio/sound_manager.cpp | 2 +- src/gameplay/beat_system.cpp | 5 +++++ src/gameplay/beat_system.hpp | 2 ++ src/gameplay/combat_system.cpp | 4 ++++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/audio/sound_manager.cpp b/src/audio/sound_manager.cpp index 528aa06..a5bdd32 100644 --- a/src/audio/sound_manager.cpp +++ b/src/audio/sound_manager.cpp @@ -67,7 +67,7 @@ namespace phase_shifter::audio { if(effect != _sound_effects.end()) { auto ctx = _audio.generate_context(effect->second.get_random(_random_gen)); ctx.get_object()->set_loops(0); - ctx.get_object()->set_volume(_effect_volume * 100); + ctx.get_object()->set_volume(static_cast(_effect_volume * 100)); ctx.play(); } } diff --git a/src/gameplay/beat_system.cpp b/src/gameplay/beat_system.cpp index 221d792..09f5c37 100644 --- a/src/gameplay/beat_system.cpp +++ b/src/gameplay/beat_system.cpp @@ -80,6 +80,11 @@ namespace phase_shifter::gameplay { } } + void Beat_system::increase_beats_left(int count) { + _beat_offset += count; + _state.beats_left += count; + } + const std::vector& Beat_system::time_stamps() const { return _time_stamps; } int Beat_system::beat_index() const { return _beat_index; } diff --git a/src/gameplay/beat_system.hpp b/src/gameplay/beat_system.hpp index d3f6e47..2e79538 100644 --- a/src/gameplay/beat_system.hpp +++ b/src/gameplay/beat_system.hpp @@ -27,6 +27,8 @@ namespace phase_shifter::gameplay { void decrease_beats_left(int count); + void increase_beats_left(int count); + auto graphic_time_scale() const -> float; const std::vector& time_stamps() const ; diff --git a/src/gameplay/combat_system.cpp b/src/gameplay/combat_system.cpp index 8c3b0c3..0f502fc 100644 --- a/src/gameplay/combat_system.cpp +++ b/src/gameplay/combat_system.cpp @@ -16,6 +16,7 @@ namespace phase_shifter::gameplay { namespace { constexpr auto damage_beat_penalty = 10; + constexpr auto kill_beat_gain = 5; } Combat_system::Combat_system(mirrage::util::Message_bus& bus, @@ -39,6 +40,9 @@ namespace phase_shifter::gameplay { _ecs.erase(entity); }); }); + _mailbox.subscribe_to([&](Enemy_killed_msg& e) { + _beat_system.increase_beats_left(kill_beat_gain); + }); } void Combat_system::update(mirrage::util::Time) -- GitLab