summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
472fe3c)
Still isn't perfect, enemies don't fall right away you kill'em.
SVN-Revision: 1160
Sprite* img_jumpy_left_up;
Sprite* img_jumpy_left_down;
Sprite* img_jumpy_left_middle;
Sprite* img_jumpy_left_up;
Sprite* img_jumpy_left_down;
Sprite* img_jumpy_left_middle;
+Sprite* img_jumpy_left_iced;
Sprite* img_mrbomb_left;
Sprite* img_mrbomb_right;
Sprite* img_mrbomb_left;
Sprite* img_mrbomb_right;
+Sprite* img_mrbomb_iced_left;
+Sprite* img_mrbomb_iced_right;
Sprite* img_mrbomb_ticking_left;
Sprite* img_mrbomb_ticking_right;
Sprite* img_mrbomb_explosion;
Sprite* img_mrbomb_ticking_left;
Sprite* img_mrbomb_ticking_right;
Sprite* img_mrbomb_explosion;
Sprite* img_flame;
Sprite* img_fish;
Sprite* img_fish_down;
Sprite* img_flame;
Sprite* img_fish;
Sprite* img_fish_down;
+Sprite* img_fish_iced;
+Sprite* img_fish_iced_down;
Sprite* img_bouncingsnowball_left;
Sprite* img_bouncingsnowball_right;
Sprite* img_bouncingsnowball_squished;
Sprite* img_bouncingsnowball_left;
Sprite* img_bouncingsnowball_right;
Sprite* img_bouncingsnowball_squished;
Sprite* img_flyingsnowball_squished;
Sprite* img_spiky_left;
Sprite* img_spiky_right;
Sprite* img_flyingsnowball_squished;
Sprite* img_spiky_left;
Sprite* img_spiky_right;
+Sprite* img_spiky_iced_left;
+Sprite* img_spiky_iced_right;
Sprite* img_snowball_left;
Sprite* img_snowball_right;
Sprite* img_snowball_squished_left;
Sprite* img_snowball_left;
Sprite* img_snowball_right;
Sprite* img_snowball_squished_left;
void
BadGuy::action_jumpy(double frame_ratio)
{
void
BadGuy::action_jumpy(double frame_ratio)
{
+ if(frozen_timer.check())
+ {
+ set_sprite(img_jumpy_left_iced, img_jumpy_left_iced);
+ return;
+ }
+
const float vy = physic.get_velocity_y();
// XXX: These tests *should* use location from ground, not velocity
const float vy = physic.get_velocity_y();
// XXX: These tests *should* use location from ground, not velocity
void
BadGuy::action_mrbomb(double frame_ratio)
{
void
BadGuy::action_mrbomb(double frame_ratio)
{
+ if(frozen_timer.check())
+ {
+ set_sprite(img_mrbomb_iced_left, img_mrbomb_iced_right);
+ return;
+ }
+
if (dying == DYING_NOT)
check_horizontal_bump(true);
if (dying == DYING_NOT)
check_horizontal_bump(true);
void
BadGuy::action_fish(double frame_ratio)
{
void
BadGuy::action_fish(double frame_ratio)
{
+ if(frozen_timer.check())
+ {
+ if(physic.get_velocity_y() < 0)
+ set_sprite(img_fish_iced_down, img_fish_iced_down);
+ else
+ set_sprite(img_fish_iced, img_fish_iced);
+
+ return;
+ }
+
static const float JUMPV = 6;
static const int WAITTIME = 1000;
static const float JUMPV = 6;
static const int WAITTIME = 1000;
void
BadGuy::action_spiky(double frame_ratio)
{
void
BadGuy::action_spiky(double frame_ratio)
{
+ if(frozen_timer.check())
+ {
+ set_sprite(img_spiky_iced_left, img_spiky_iced_right);
+ return;
+ }
+
if (dying == DYING_NOT)
check_horizontal_bump();
if (dying == DYING_NOT)
check_horizontal_bump();
- if(frozen_timer.check())
- return;
-
switch (kind)
{
case BAD_MRICEBLOCK:
switch (kind)
{
case BAD_MRICEBLOCK:
void
BadGuy::kill_me(int score)
{
void
BadGuy::kill_me(int score)
{
- if(kind == BAD_BOMB || kind == BAD_STALACTITE || kind == BAD_FLAME)
return;
dying = DYING_FALLING;
return;
dying = DYING_FALLING;
pbullet_c = (Bullet*) p_c_object;
if(pbullet_c->kind == FIRE_BULLET)
pbullet_c = (Bullet*) p_c_object;
if(pbullet_c->kind == FIRE_BULLET)
+ {
+ if(kind == BAD_MRICEBLOCK || kind == BAD_STALACTITE ||
+ kind == BAD_FISH || kind == BAD_BOUNCINGSNOWBALL ||
+ kind == BAD_FLYINGSNOWBALL || kind == BAD_FLYINGSNOWBALL)
else if(pbullet_c->kind == ICE_BULLET)
else if(pbullet_c->kind == ICE_BULLET)
- frozen_timer.start(FROZEN_TIME);
+ {
+ if(kind == BAD_FLAME)
+ kill_me(10);
+ else
+ frozen_timer.start(FROZEN_TIME);
+ }
img_jumpy_left_up = sprite_manager->load("jumpy-left-up");
img_jumpy_left_down = sprite_manager->load("jumpy-left-down");
img_jumpy_left_middle = sprite_manager->load("jumpy-left-middle");
img_jumpy_left_up = sprite_manager->load("jumpy-left-up");
img_jumpy_left_down = sprite_manager->load("jumpy-left-down");
img_jumpy_left_middle = sprite_manager->load("jumpy-left-middle");
+ img_jumpy_left_iced = sprite_manager->load("jumpy-left-iced");
img_mrbomb_left = sprite_manager->load("mrbomb-left");
img_mrbomb_right = sprite_manager->load("mrbomb-right");
img_mrbomb_left = sprite_manager->load("mrbomb-left");
img_mrbomb_right = sprite_manager->load("mrbomb-right");
+ img_mrbomb_iced_left = sprite_manager->load("mrbomb-iced-left");
+ img_mrbomb_iced_right = sprite_manager->load("mrbomb-iced-right");
img_mrbomb_ticking_left = sprite_manager->load("mrbomb-ticking-left");
img_mrbomb_ticking_right = sprite_manager->load("mrbomb-ticking-right");
img_mrbomb_explosion = sprite_manager->load("mrbomb-explosion");
img_mrbomb_ticking_left = sprite_manager->load("mrbomb-ticking-left");
img_mrbomb_ticking_right = sprite_manager->load("mrbomb-ticking-right");
img_mrbomb_explosion = sprite_manager->load("mrbomb-explosion");
img_flame = sprite_manager->load("flame");
img_fish = sprite_manager->load("fish");
img_fish_down = sprite_manager->load("fish-down");
img_flame = sprite_manager->load("flame");
img_fish = sprite_manager->load("fish");
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_bouncingsnowball_left = sprite_manager->load("bouncingsnowball-left");
img_bouncingsnowball_right = sprite_manager->load("bouncingsnowball-right");
img_bouncingsnowball_squished = sprite_manager->load("bouncingsnowball-squished");
img_bouncingsnowball_left = sprite_manager->load("bouncingsnowball-left");
img_bouncingsnowball_right = sprite_manager->load("bouncingsnowball-right");
img_bouncingsnowball_squished = sprite_manager->load("bouncingsnowball-squished");
img_flyingsnowball_squished = sprite_manager->load("flyingsnowball-squished");
img_spiky_left = sprite_manager->load("spiky-left");
img_spiky_right = sprite_manager->load("spiky-right");
img_flyingsnowball_squished = sprite_manager->load("flyingsnowball-squished");
img_spiky_left = sprite_manager->load("spiky-left");
img_spiky_right = sprite_manager->load("spiky-right");
+ img_spiky_iced_left = sprite_manager->load("spiky-iced-left");
+ img_spiky_iced_right = sprite_manager->load("spiky-iced-right");
img_snowball_left = sprite_manager->load("snowball-left");
img_snowball_right = sprite_manager->load("snowball-right");
img_snowball_squished_left = sprite_manager->load("snowball-squished-left");
img_snowball_left = sprite_manager->load("snowball-left");
img_snowball_right = sprite_manager->load("snowball-right");
img_snowball_squished_left = sprite_manager->load("snowball-squished-left");
+ Timer frozen_timer; // gets frozen when a ice shot hits it
+
private:
bool removable;
bool seen;
int squishcount; /// number of times this enemy was squiched
private:
bool removable;
bool seen;
int squishcount; /// number of times this enemy was squiched
- Timer frozen_timer; // gets frozen when a ice shot hits it
Timer timer;
Physic physic;
Timer timer;
Physic physic;
- {
- pbad_c->dying = DYING_FALLING;
- play_sound(sounds[SND_FALL], SOUND_CENTER_SPEAKER);
- World::current()->add_score(pbad_c->base.x,
- pbad_c->base.y,
- 25 * player_status.score_multiplier);
- }
+ else if (pbad_c->frozen_timer.check() && (pbad_c->kind == BAD_MRBOMB
+ || pbad_c->kind == BAD_JUMPY || pbad_c->kind == BAD_FISH
+ || pbad_c->kind == BAD_SPIKY))
+ pbad_c->kill_me(20);
else
{
if (!invincible_timer.started())
else
{
if (!invincible_timer.started())