Sprite* img_fish_down;
Sprite* img_fish_iced;
Sprite* img_fish_iced_down;
+Sprite* img_flamefish;
+Sprite* img_flamefish_down;
Sprite* img_bouncingsnowball_left;
Sprite* img_bouncingsnowball_right;
Sprite* img_bouncingsnowball_squished;
return BAD_FLAME;
else if (str == "fish")
return BAD_FISH;
+ else if (str == "flamefish")
+ return BAD_FLAMEFISH;
else if (str == "bouncingsnowball")
return BAD_BOUNCINGSNOWBALL;
else if (str == "flyingsnowball")
case BAD_FISH:
return "fish";
break;
+ case BAD_FLAMEFISH:
+ return "flamefish";
+ break;
case BAD_BOUNCINGSNOWBALL:
return "bouncingsnowball";
break;
// if we're in a solid tile at start correct that now
if(Sector::current()) {
- if(kind != BAD_FLAME && kind != BAD_FISH && collision_object_map(base))
+ if(kind != BAD_FLAME && kind != BAD_FISH && kind != BAD_FLAMEFISH && collision_object_map(base))
{
std::cout << "Warning: badguy started in wall: kind: " << badguykind_to_string(kind)
<< " pos: (" << base.x << ", " << base.y << ")" << std::endl;
} else if(kind == BAD_FISH) {
set_sprite(img_fish, img_fish);
physic.enable_gravity(true);
+ } else if(kind == BAD_FLAMEFISH) {
+ set_sprite(img_flamefish, img_flamefish);
+ physic.enable_gravity(true);
} else if(kind == BAD_FLYINGSNOWBALL) {
set_sprite(img_flyingsnowball, img_flyingsnowball);
physic.enable_gravity(false);
else if(mode == FISH_WAIT && !timer.check())
{
// jump again
- set_sprite(img_fish, img_fish);
+ if(kind == BAD_FISH)
+ set_sprite(img_fish, img_fish);
+ else // BAD_FLAMEFISH
+ set_sprite(img_flamefish, img_flamefish);
mode = NORMAL;
physic.set_velocity(0, JUMPV);
physic.enable_gravity(true);
collision_swept_object_map(&old_base, &base);
if(physic.get_velocity_y() < 0)
- set_sprite(img_fish_down, img_fish_down);
+ {
+ if(kind == BAD_FISH)
+ set_sprite(img_fish_down, img_fish_down);
+ else // BAD_FLAMEFISH
+ set_sprite(img_flamefish_down, img_flamefish_down);
+ }
}
void
break;
case BAD_FISH:
+ case BAD_FLAMEFISH:
action_fish(elapsed_time);
break;
{
// these can't be bumped
if(kind == BAD_FLAME || kind == BAD_BOMB || kind == BAD_FISH
- || kind == BAD_FLYINGSNOWBALL)
+ || kind == BAD_FLAMEFISH || kind == BAD_FLYINGSNOWBALL)
return;
physic.set_velocity_y(3);
player->bounce(this);
Sector::current()->add_score(Vector(base.x, base.y),
- 50 * player_status.score_multiplier);
+ 25 * player_status.score_multiplier);
SoundManager::get()->play_sound(IDToSound(SND_SQUISH), get_pos(), Sector::current()->player->get_pos());
player_status.score_multiplier++;
player->bounce(this);
Sector::current()->add_score(Vector(base.x, base.y),
- 50 * player_status.score_multiplier);
+ 25 * player_status.score_multiplier);
SoundManager::get()->play_sound(IDToSound(SND_SQUISH), get_pos(), Sector::current()->player->get_pos());
player_status.score_multiplier++;
return;
}
return;
- } else if(kind == BAD_FISH) {
+ } else if(kind == BAD_FISH || kind == BAD_FLAMEFISH) {
// fish can only be killed when falling down
if(physic.get_velocity_y() >= 0)
return;
if(pbullet_c->kind == FIRE_BULLET)
{
- if (kind != BAD_BOMB && kind != BAD_STALACTITE && kind != BAD_FLAME)
+ if (kind != BAD_BOMB && kind != BAD_STALACTITE && kind != BAD_FLAME
+ && kind != BAD_FLAMEFISH)
kill_me(10);
}
else if(pbullet_c->kind == ICE_BULLET)
{
- //if(kind == BAD_FLAME)
- // kill_me(10);
- //else
+ if(kind == BAD_FLAME || kind == BAD_FLAMEFISH)
+ kill_me(10);
+ else
frozen_timer.start(FROZEN_TIME);
}
break;
pbad_c->explode(true);
return;
}
- else if (pbad_c->kind != BAD_MRBOMB)
+ else
{
pbad_c->kill_me(50);
}
// Jumpy, fish, flame, stalactites, wingling are exceptions
if (pbad_c->kind == BAD_JUMPY || pbad_c->kind == BAD_FLAME
- || pbad_c->kind == BAD_STALACTITE || pbad_c->kind == BAD_FISH)
+ || pbad_c->kind == BAD_STALACTITE || pbad_c->kind == BAD_FISH
+ || pbad_c->kind == BAD_FLAMEFISH)
break;
// Bounce off of other badguy if we land on top of him
img_fish_down = sprite_manager->load("fish-down");
img_fish_iced = sprite_manager->load("fish-iced");
img_fish_iced_down = sprite_manager->load("fish-iced-down");
+ img_flamefish = sprite_manager->load("flamefish");
+ img_flamefish_down = sprite_manager->load("flamefish-down");
img_bouncingsnowball_left = sprite_manager->load("bouncingsnowball-left");
img_bouncingsnowball_right = sprite_manager->load("bouncingsnowball-right");
img_bouncingsnowball_squished = sprite_manager->load("bouncingsnowball-squished");