static const float TUX_INVINCIBLE_TIME_WARNING = 2.0f;
static const float GROWING_TIME = 0.35f;
static const int GROWING_FRAMES = 7;
+static const float TUX_BACKFLIP_TIME = 2.1f; // minimum air time that backflip results in a loss of control
class Camera;
class PlayerStatus;
-class Player : public MovingObject,
- public scripting::Player,
+class Player : public MovingObject,
+ public scripting::Player,
public ScriptInterface
{
public:
* Adds velocity to the player until given end speed is reached
*/
void add_velocity(const Vector& velocity, const Vector& end_speed);
-
+
/**
* Returns the current velocity of the player
*/
bool is_dead() const
{ return dead; }
bool is_big();
+ bool is_stone()
+ { return stone; }
void set_visible(bool visible);
bool get_visible();
* Orders the current GameSession to start a sequence
*/
void trigger_sequence(std::string sequence_name);
-
+
/**
* Requests that the player start climbing the given Climbable
*/
void activate();
void deactivate();
void walk(float speed);
+ void set_dir(bool right);
void do_jump_apex();
void early_jump_apex();
bool deactivated;
Controller* controller;
- std::auto_ptr<CodeController> scripting_controller; /**< This controller is used when the Player is controlled via scripting */
+ std::unique_ptr<CodeController> scripting_controller; /**< This controller is used when the Player is controlled via scripting */
PlayerStatus* player_status;
bool duck;
bool dead;
int backflip_direction;
Direction peekingX;
Direction peekingY;
+ float ability_time;
+ bool stone;
bool swimming;
float speedlimit;
Controller* scripting_controller_old; /**< Saves the old controller while the scripting_controller is used */
bool jump_early_apex;
bool on_ice;
bool ice_this_frame;
+ SpritePtr lightsprite;
+ SpritePtr powersprite;
public:
Direction dir;
Timer safe_timer;
Timer kick_timer;
Timer shooting_timer; // used to show the arm when Tux is shooting
+ Timer ability_timer; // maximum lengh of time that special abilities can last
+ Timer cooldown_timer; // minimum time period between successive uses of a special ability
Timer dying_timer;
bool growing;
Timer backflip_timer;