enemy.hpp 721 B

1234567891011121314151617181920212223242526272829303132333435
  1. //
  2. // enemy.hpp
  3. // danmaku
  4. //
  5. // Created by Sam Jaffe on 5/26/19.
  6. // Copyright © 2019 Sam Jaffe. All rights reserved.
  7. //
  8. #pragma once
  9. #include "actor.hpp"
  10. namespace danmaku {
  11. struct points_map {
  12. int on_damage;
  13. int on_kill;
  14. };
  15. class enemy : public actor {
  16. public:
  17. enemy(Json::Value const & json, graphics::object const & obj,
  18. attack_factory get_attack);
  19. void update(float delta) override { entity::update(delta); }
  20. void level(class level * l) override { level_ = l; }
  21. class level * level() const override {
  22. return level_;
  23. }
  24. private:
  25. class level * level_{nullptr};
  26. points_map points_;
  27. std::vector<std::shared_ptr<bullet_pattern>> attack_;
  28. };
  29. }