1// SuperTux - Hurting Platform
2// Copyright (C) 2006 Christoph Sommer <christoph.sommer@2006.expires.deltadevelopment.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#include "object/hurting_platform.hpp"
18
19#include "badguy/badguy.hpp"
20#include "object/player.hpp"
21
22HurtingPlatform::HurtingPlatform(const ReaderMapping& reader)
23 : Platform(reader, "images/objects/sawblade/sawblade.sprite")
24{
25 set_group(COLGROUP_TOUCHABLE);
26}
27
28HitResponse
29HurtingPlatform::collision(GameObject& other, const CollisionHit& )
30{
31 auto player = dynamic_cast<Player*>(&other);
32 if (player) {
33 if (player->is_invincible()) {
34 return ABORT_MOVE;
35 }
36 player->kill(false);
37 }
38 auto badguy = dynamic_cast<BadGuy*>(&other);
39 if (badguy) {
40 badguy->kill_fall();
41 }
42
43 return FORCE_MOVE;
44}
45
46/* EOF */
47