namespace {
const float JUMP_DOWN_VX = 250; /**< horizontal speed while jumping off the dais */
- const float JUMP_DOWN_VY = 250; /**< vertical speed while jumping off the dais */
+ const float JUMP_DOWN_VY = -250; /**< vertical speed while jumping off the dais */
const float RUN_VX = 350; /**< horizontal speed while running */
const float JUMP_UP_VX = 350; /**< horizontal speed while jumping on the dais */
- const float JUMP_UP_VY = 800; /**< vertical speed while jumping on the dais */
+ const float JUMP_UP_VY = -800; /**< vertical speed while jumping on the dais */
- const float STOMP_VY = 250; /** vertical speed while stomping on the dais */
+ const float STOMP_VY = -250; /** vertical speed while stomping on the dais */
const float LEFT_STAND_X = 16; /**< x-coordinate of left dais' end position */
const float RIGHT_STAND_X = 800-60-16; /**< x-coordinate of right dais' end position */
const float SAFE_TIME = .5; /**< the time we are safe when tux just hit us */
const int INITIAL_HITPOINTS = 3; /**< number of hits we can take */
- const float SQUISH_TIME = 3;
+ const float SQUISH_TIME = 5;
}
Yeti::Yeti(const lisp::Lisp& reader)
+ : BadGuy(reader, "images/creatures/yeti/yeti.sprite")
{
- reader.get("x", start_position.x);
- reader.get("y", start_position.y);
- bbox.set_size(60, 90);
- sprite = sprite_manager->create("images/creatures/yeti/yeti.sprite");
hit_points = INITIAL_HITPOINTS;
reader.get("dead-script", dead_script);
countMe = false;
void
Yeti::summon_snowball()
{
- Sector::current()->add_object(new BouncingSnowball(get_pos().x+(dir == RIGHT ? 64 : -64), get_pos().y, dir));
+ Sector::current()->add_object(new BouncingSnowball(Vector(get_pos().x+(dir == RIGHT ? 64 : -64), get_pos().y), dir));
}
bool
take_hit(player);
}
-void Yeti::take_hit(Player& player)
+void Yeti::take_hit(Player& )
{
- player.bounce(*this);
-
if(safe_timer.started())
return;