Fish.h (945B)
1 #pragma once 2 #include "../assets/FishAssets.h" 3 #include "Entity.h" 4 #include <array> 5 #include <unordered_map> 6 7 class Fish : public Entity { 8 private: 9 static constexpr std::array<char, 12> AVAILABLE_COLORS = { 10 'c', 'C', 'r', 'R', 'y', 'Y', 'b', 'B', 'g', 'G', 'm', 'M'}; 11 12 const std::vector<std::string> ℑ 13 std::vector<std::string> mask; 14 const float speed; 15 16 static std::unordered_map<char, char> color_map; 17 18 explicit Fish(int asset_index); 19 static int getRandomAssetIndex(); 20 void randomizeMask(); 21 22 public: 23 Fish(); 24 25 void update() noexcept override; 26 const std::vector<std::string> &getImage() const override { return image; } 27 const std::vector<std::string> &getMask() const override { return mask; } 28 char getDefaultColor() const noexcept override { return 'k'; } 29 30 std::unique_ptr<Entity> createReplacement() const override; 31 int getPreferredLayer() const noexcept override; 32 33 bool shouldSpawnBubble() const; 34 };