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_MRBOMB_HPP 18 #define HEADER_SUPERTUX_BADGUY_MRBOMB_HPP 19 20 #include "badguy/walking_badguy.hpp" 21 #include "object/portable.hpp" 22 23 class MrBomb final : public WalkingBadguy, 24 public Portable 25 { 26 public: 27 MrBomb(const ReaderMapping& reader); 28 29 virtual void kill_fall() override; 30 virtual void ignite() override; 31 virtual HitResponse collision(GameObject& object, const CollisionHit& hit) override; 32 virtual HitResponse collision_player(Player& player, const CollisionHit& hit) override; 33 34 virtual void active_update(float dt_sec) override; 35 36 virtual void grab(MovingObject& object, const Vector& pos, Direction dir) override; 37 virtual void ungrab(MovingObject& object, Direction dir) override; 38 virtual bool is_portable() const override; 39 40 virtual bool is_freezable() const override; get_class() const41 virtual std::string get_class() const override { return "mrbomb"; } get_display_name() const42 virtual std::string get_display_name() const override { return _("Bomb"); } 43 44 protected: 45 virtual bool collision_squished(GameObject& object) override; 46 47 private: 48 MrBomb(const MrBomb&) = delete; 49 MrBomb& operator=(const MrBomb&) = delete; 50 }; 51 52 #endif 53 54 /* EOF */ 55