1 // SuperTux 2 // Copyright (C) 2006 Matthias Braun <matze@braunis.de> 3 // 4 // This program is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // This program is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with this program. If not, see <http://www.gnu.org/licenses/>. 16 17 #ifndef HEADER_SUPERTUX_BADGUY_STUMPY_HPP 18 #define HEADER_SUPERTUX_BADGUY_STUMPY_HPP 19 20 #include "badguy/walking_badguy.hpp" 21 22 class Stumpy final : public WalkingBadguy 23 { 24 public: 25 Stumpy(const ReaderMapping& reader); 26 Stumpy(const Vector& pos, Direction d); 27 28 virtual void initialize() override; 29 virtual void active_update(float dt_sec) override; 30 virtual void collision_solid(const CollisionHit& hit) override; 31 virtual HitResponse collision_badguy(BadGuy& badguy, const CollisionHit& hit) override; 32 33 virtual bool is_freezable() const override; get_class() const34 virtual std::string get_class() const override { return "stumpy"; } get_display_name() const35 virtual std::string get_display_name() const override { return _("Walking Stump"); } 36 37 protected: 38 enum MyState { 39 STATE_INVINCIBLE, STATE_NORMAL 40 }; 41 42 protected: 43 virtual bool collision_squished(GameObject& object) override; 44 45 private: 46 MyState mystate; 47 Timer invincible_timer; 48 49 private: 50 Stumpy(const Stumpy&) = delete; 51 Stumpy& operator=(const Stumpy&) = delete; 52 }; 53 54 #endif 55 56 /* EOF */ 57