#pragma once #include "st.h" #include "audioloop.h" #include "actor.h" using namespace std; class GravityBall : Actor { public: GravityBall(FMOD::System* sound_sys, const char* fname, DeathBall* death_ball, int hit_points = 1); ~GravityBall(); virtual void update(double tick_time); virtual void render(double tick_time); STVector3 _pos; AudioLoop* _audio_loop; AudioLoop* _shatter_loop; void explode(); void corrupt(); bool _is_exploding; bool _is_dead; private: // current volume of the audio_loop "loudness" double _sig_vol; STShape* _sphere; void shatter(double amount); double _shatter_amount; double _shake_amount; DeathBall* _death_ball; int _hit_points; int _max_hit_points; };