supertux
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
Totem Class Referencefinal

"Totem" Badguy - A variable-height stack of wooden blocks More...

#include <totem.hpp>

Inheritance diagram for Totem:
Inheritance graph
[legend]
Collaboration diagram for Totem:
Collaboration graph
[legend]

Public Member Functions

 Totem (const ReaderMapping &reader)
 
virtual void initialize () override
 called immediately before the first call to initialize
 
virtual void active_update (float dt_sec) override
 called each frame when the badguy is activated. More...
 
virtual void collision_solid (const CollisionHit &hit) override
 Called when the badguy collided with solid ground.
 
virtual HitResponse collision_badguy (BadGuy &badguy, const CollisionHit &hit) override
 Called when the badguy collided with another badguy.
 
virtual bool updatePointers (const GameObject *from_object, GameObject *to_object)
 
virtual std::string get_class_name () const override
 
virtual std::string get_display_name () const override
 Returns the display name of the object, translated to the user's locale.
 
virtual GameObjectClasses get_class_types () const override
 List notable classes in inheritance hierarchy of class. More...
 
virtual bool is_snipable () const override
 Can enemy be sniped by sliding or swimboosting Tux? Returns false if enemy is spiky or too large.
 
- Public Member Functions inherited from BadGuy
 BadGuy (const Vector &pos, const std::string &sprite_name, int layer=LAYER_OBJECTS, const std::string &light_sprite_name="images/objects/lightmap_light/lightmap_light-medium.sprite", const std::string &ice_sprite_name="images/creatures/overlays/iceoverlay/iceoverlay.sprite")
 
 BadGuy (const Vector &pos, Direction direction, const std::string &sprite_name, int layer=LAYER_OBJECTS, const std::string &light_sprite_name="images/objects/lightmap_light/lightmap_light-medium.sprite", const std::string &ice_sprite_name="images/creatures/overlays/iceoverlay/iceoverlay.sprite")
 
 BadGuy (const ReaderMapping &reader, const std::string &sprite_name, int layer=LAYER_OBJECTS, const std::string &light_sprite_name="images/objects/lightmap_light/lightmap_light-medium.sprite", const std::string &ice_sprite_name="images/creatures/overlays/iceoverlay/iceoverlay.sprite")
 
 BadGuy (const ReaderMapping &reader, const std::string &sprite_name, Direction default_direction, int layer=LAYER_OBJECTS, const std::string &light_sprite_name="images/objects/lightmap_light/lightmap_light-medium.sprite", const std::string &ice_sprite_name="images/creatures/overlays/iceoverlay/iceoverlay.sprite")
 
virtual void draw (DrawingContext &context) override
 Called when the badguy is drawn. More...
 
virtual void update (float dt_sec) override
 Called each frame. More...
 
virtual std::string get_exposed_class_name () const override
 
virtual std::string get_overlay_size () const
 
virtual ObjectSettings get_settings () override
 
virtual void after_editor_set () override
 
virtual HitResponse collision (GameObject &other, const CollisionHit &hit) override
 Called when a collision with another object occurred. More...
 
virtual void collision_tile (uint32_t tile_attributes) override
 Called when a collision with tile with special attributes occurred.
 
virtual void run_dead_script ()
 Call this, if you use custom kill_fall() or kill_squashed(GameObject& object)
 
virtual bool can_break () const
 True if this badguy can break bricks or open bonusblocks in his current form. More...
 
Vector get_start_position () const
 
void set_start_position (const Vector &vec)
 
virtual void grab (MovingObject &object, const Vector &pos, Direction dir) override
 called each frame when the object has been grabbed. More...
 
virtual void ungrab (MovingObject &object, Direction dir) override
 
virtual bool is_portable () const override
 
virtual void ignite ()
 Kills the badguy by igniting it.
 
virtual void extinguish ()
 Called to revert a badguy when is_ignited() returns true.
 
virtual bool is_flammable () const
 Returns whether to call ignite() when a badguy gets hit by a fire bullet.
 
bool is_ignited () const
 Returns whether this badguys is currently on fire.
 
virtual void freeze ()
 Called when hit by an ice bullet, and is_freezable() returns true. More...
 
virtual void unfreeze (bool melt=true)
 Called to unfreeze the badguy. More...
 
virtual bool is_freezable () const
 
virtual bool is_hurtable () const
 Return true if this badguy can be hurt by tiles with the attribute "hurts".
 
virtual bool always_active () const
 
bool is_frozen () const
 
bool is_in_water () const
 
virtual std::string get_water_sprite () const
 Get melting particle sprite filename.
 
virtual bool can_be_affected_by_wind () const
 Returns true if the badguy can currently be affected by wind.
 
virtual void add_wind_velocity (const Vector &velocity, const Vector &end_speed)
 Adds velocity from wind.
 
Physicget_physic ()
 
- Public Member Functions inherited from MovingSprite
 MovingSprite (const Vector &pos, const std::string &sprite_name, int layer=LAYER_OBJECTS, CollisionGroup collision_group=COLGROUP_MOVING)
 
 MovingSprite (const ReaderMapping &reader, const Vector &pos, int layer=LAYER_OBJECTS, CollisionGroup collision_group=COLGROUP_MOVING)
 
 MovingSprite (const ReaderMapping &reader, const std::string &sprite_name, int layer=LAYER_OBJECTS, CollisionGroup collision_group=COLGROUP_MOVING)
 
 MovingSprite (const ReaderMapping &reader, int layer=LAYER_OBJECTS, CollisionGroup collision_group=COLGROUP_MOVING)
 
virtual void on_type_change (int old_type) override
 
virtual int get_layer () const override
 
bool has_found_sprite () const
 
const std::string & get_sprite_name () const
 
virtual std::string get_default_sprite_name () const
 
bool matches_sprite (const std::string &sprite_file) const
 
bool change_sprite (const std::string &new_sprite_name)
 
void spawn_explosion_sprites (int count, const std::string &sprite_path)
 
Spriteget_sprite () const
 Get various sprite properties. More...
 
std::string get_action () const
 Returns the name of the current action of the sprite.
 
void set_action (const std::string &name)
 Sets the current action of the sprite and resizes the bounding box. More...
 
void set_action_loops (const std::string &name, int loops)
 Sets the current action of the sprite, as well as the number of times it should loop, and resizes the bounding box. More...
 
void set_action (const std::string &name, int loops)
 Sets the action from an action name, as well as the number of times it should loop. More...
 
void set_action (const std::string &name, const Direction &dir, int loops=-1)
 Sets the action from an action name and a particular direction in the form of "name-direction", eg. More...
 
void set_action (const Direction &dir, const std::string &name, int loops=-1)
 Sets the action from an action name and a particular direction in the form of "direction-name", eg. More...
 
void set_action (const Direction &dir, int loops=-1)
 Sets the action from a string from a particular direction in the form of "direction", e.g. More...
 
void set_action_centered (const std::string &action, int loops=-1)
 Set new action for sprite and re-center bounding box. More...
 
void set_action (const std::string &action, int loops, AnchorPoint anchorPoint)
 Set new action for sprite and align bounding boxes at anchorPoint. More...
 
- Public Member Functions inherited from MovingObject
 MovingObject (const ReaderMapping &reader)
 
virtual bool collides (GameObject &, const CollisionHit &) const override
 when 2 objects collided, we will first call the collision functions of both objects that can decide on how to react to the collision. More...
 
virtual void set_pos (const Vector &pos)
 
virtual void move_to (const Vector &pos)
 
virtual void move (const Vector &dist)
 
virtual bool listener_is_valid () const override
 
Vector get_pos () const
 
const Rectfget_bbox () const
 
const Vector & get_movement () const
 
CollisionGroup get_group () const
 
CollisionObjectget_collision_object ()
 
const CollisionObjectget_collision_object () const
 
void set_parent_dispenser (Dispenser *dispenser)
 
Dispenserget_parent_dispenser () const
 
virtual void editor_select () override
 The user clicked on the object in the editor and selected it.
 
float get_x () const
 Returns the object's X coordinate.
 
float get_y () const
 Returns the object's Y coordinate.
 
void set_pos (float x, float y)
 Sets the position of the object. More...
 
void move (float x, float y)
 Moves the object by ""x"" units to the right and ""y"" down, relative to its current position. More...
 
float get_width () const
 Returns the object's hitbox width.
 
float get_height () const
 Returns the object's hitbox height.
 
- Public Member Functions inherited from GameObject
 GameObject (const std::string &name)
 
 GameObject (const ReaderMapping &reader)
 
virtual void finish_construction ()
 Called after all objects have been added to the Sector and the Sector is fully constructed. More...
 
UID get_uid () const
 
virtual void save (Writer &writer)
 This function saves the object. More...
 
std::string save ()
 
virtual std::vector< std::string > get_patches () const
 Version checking/updating, patch information.
 
virtual void update_version ()
 
int get_version () const
 Returns the current version of the object.
 
int get_latest_version () const
 Returns the latest version of the object.
 
bool is_up_to_date () const
 Checks whether the object's current version is equal to its latest one.
 
virtual bool is_singleton () const
 If true only a single object of this type is allowed in a given GameObjectManager.
 
virtual bool has_variable_size () const
 Does this object have variable size (secret area trigger, wind, etc.)
 
virtual bool is_saveable () const
 Indicates if the object will be saved. More...
 
virtual bool track_state () const
 Indicates if the object's state should be tracked. More...
 
virtual bool has_object_manager_priority () const
 Indicates if the object should be added at the beginning of the object list. More...
 
virtual bool has_settings () const
 Indicates if get_settings() is implemented. More...
 
virtual GameObjectTypes get_types () const
 Get all types of the object, if available. More...
 
int get_type () const
 Returns the type index of the object.
 
virtual void remove_me ()
 schedules this object to be removed at the end of the frame
 
bool is_valid () const
 returns true if the object is not scheduled to be removed yet
 
void add_remove_listener (ObjectRemoveListener *listener)
 registers a remove listener which will be called if the object gets removed/destroyed
 
void del_remove_listener (ObjectRemoveListener *listener)
 unregisters a remove listener, so it will no longer be called if the object gets removed/destroyed
 
void set_name (const std::string &name)
 
const std::string & get_name () const
 Returns the name of the object.
 
virtual const std::string get_icon_path () const
 
virtual void stop_looping_sounds ()
 stops all looping sounds
 
virtual void play_looping_sounds ()
 continues all looping sounds
 
template<typename T >
T * get_component ()
 
void add_component (std::unique_ptr< GameObjectComponent > component)
 
void remove_component (GameObjectComponent *component)
 
virtual void save_state ()
 Save/check the current state of the object. More...
 
virtual void check_state ()
 
virtual void editor_delete ()
 The editor requested the deletion of the object.
 
virtual void editor_deselect ()
 The object got deselected.
 
virtual void editor_update ()
 Called each frame in the editor, used to keep linked objects together (e.g. More...
 
GameObjectManagerget_parent () const
 
- Public Member Functions inherited from Portable
virtual MovingObjectget_owner () const
 
virtual bool is_grabbed () const
 
virtual bool is_hampering () const
 Is the object so heavy/bulky/fragile that Tux can't run while carrying it?
 

Static Public Member Functions

static std::string class_name ()
 
static std::string display_name ()
 
- Static Public Member Functions inherited from BadGuy
static void register_class (ssq::VM &vm)
 
static std::string class_name ()
 
static std::string display_name ()
 
- Static Public Member Functions inherited from MovingSprite
static void register_class (ssq::VM &vm)
 
static std::string class_name ()
 
- Static Public Member Functions inherited from MovingObject
static void register_class (ssq::VM &vm)
 
static std::string class_name ()
 
- Static Public Member Functions inherited from GameObject
static void register_class (ssq::VM &vm)
 

Protected Member Functions

virtual bool collision_squished (GameObject &object) override
 Called when the player hit the badguy from above. More...
 
virtual void kill_fall () override
 Set the badguy to kill/falling state, which makes him falling of the screen (his sprite is turned upside-down)
 
void jump_on (Totem *target)
 jump on target
 
void jump_off ()
 jump off current base
 
void synchronize_with (Totem *baseTotem)
 synchronize position and movement with baseTotem
 
- Protected Member Functions inherited from BadGuy
virtual HitResponse collision_player (Player &player, const CollisionHit &hit)
 Called when the badguy collided with a player.
 
virtual void on_flip (float height) override
 When level is flipped vertically.
 
virtual HitResponse collision_bullet (Bullet &bullet, const CollisionHit &hit)
 Called when the badguy collided with a bullet.
 
virtual void inactive_update (float dt_sec)
 called each frame when the badguy is not activated. More...
 
virtual void activate ()
 called when the badguy has been activated. More...
 
virtual void deactivate ()
 called when the badguy has been deactivated
 
virtual std::vector< Direction > get_allowed_directions () const
 Returns a vector of directions the badguy can be set to. More...
 
void kill_squished (GameObject &object)
 
void set_state (State state)
 
State get_state () const
 
bool check_state_timer ()
 
Playerget_nearest_player () const
 returns a pointer to the nearest player or 0 if no player is available
 
bool is_offscreen () const
 initial position of the enemy. More...
 
bool might_fall (int height=1) const
 Returns true if we might soon fall at least height pixels. More...
 
void update_on_ground_flag (const CollisionHit &hit)
 Update on_ground_flag judging by solid collision hit. More...
 
bool on_ground () const
 Returns true if we touched ground in the past frame This only works if update_on_ground_flag() gets called in collision_solid. More...
 
Vector get_floor_normal () const
 Returns floor normal stored the last time when update_on_ground_flag was called and we touched something solid from above. More...
 
bool is_active () const
 Returns true if we were in STATE_ACTIVE at the beginning of the last call to update()
 
void set_colgroup_active (CollisionGroup group)
 changes colgroup_active. More...
 
- Protected Member Functions inherited from MovingSprite
virtual void update_hitbox ()
 Update hitbox, based on sprite. More...
 
- Protected Member Functions inherited from MovingObject
void set_group (CollisionGroup group)
 
- Protected Member Functions inherited from GameObject
void parse_type (const ReaderMapping &reader)
 Parse object type. More...
 
int type_id_to_value (const std::string &id) const
 Conversion between type ID and value. More...
 
std::string type_value_to_id (int value) const
 

Additional Inherited Members

- Public Attributes inherited from BadGuy
bool m_countMe
 Count this badguy to the statistics? This value should not be changed during runtime. More...
 
- Protected Types inherited from BadGuy
enum  State {
  STATE_INIT, STATE_INACTIVE, STATE_ACTIVE, STATE_SQUISHED,
  STATE_FALLING, STATE_BURNING, STATE_MELTING, STATE_GROUND_MELTING,
  STATE_INSIDE_MELTING, STATE_GEAR
}
 
- Protected Types inherited from GameObject
enum  TypeChange { INITIAL = -1 }
 When the type has been changed from the editor. More...
 
- Protected Attributes inherited from BadGuy
Physic m_physic
 
bool m_is_initialized
 true if initialize() has already been called
 
Vector m_start_position
 
Direction m_dir
 The direction we currently face in.
 
Direction m_start_dir
 The direction we initially faced in.
 
bool m_frozen
 
bool m_ignited
 true if this badguy is currently on fire
 
bool m_in_water
 
std::string m_dead_script
 < true if the badguy is currently in water More...
 
float m_melting_time
 
SpritePtr m_lightsprite
 
SpritePtr m_freezesprite
 
bool m_glowing
 
bool m_water_affected
 
Timer m_unfreeze_timer
 
- Protected Attributes inherited from MovingSprite
std::string m_sprite_name
 
std::string m_default_sprite_name
 The default sprite for this MovingObject. More...
 
SpritePtr m_sprite
 
int m_layer
 Sprite's z-position. More...
 
Flip m_flip
 
- Protected Attributes inherited from MovingObject
CollisionObject m_col
 
Dispenserm_parent_dispenser
 
- Protected Attributes inherited from GameObject
std::string m_name
 a name for the gameobject, this is mostly a hint for scripts and for debugging, don't rely on names being set or being unique
 
int m_type
 Type of the GameObject. More...
 
std::vector< std::unique_ptr< FadeHelper > > m_fade_helpers
 Fade Helpers are for easing/fading script functions.
 
bool m_track_undo
 Track the following creation/deletion of this object for undo. More...
 
- Protected Attributes inherited from Portable
MovingObjectm_owner = nullptr
 

Detailed Description

"Totem" Badguy - A variable-height stack of wooden blocks

Member Function Documentation

◆ active_update()

void Totem::active_update ( float  dt_sec)
overridevirtual

called each frame when the badguy is activated.

Reimplemented from BadGuy.

◆ collision_squished()

bool Totem::collision_squished ( GameObject object)
overrideprotectedvirtual

Called when the player hit the badguy from above.

You should return true if the badguy was squished, false if squishing wasn't possible

Tux shouldn't be able to bisect totem stack by sacrificing his powerup. –Hume2

Reimplemented from BadGuy.

◆ get_class_types()

virtual GameObjectClasses Totem::get_class_types ( ) const
inlineoverridevirtual

List notable classes in inheritance hierarchy of class.

This makes it possible to efficiently look up all objects deriving from a particular intermediate class

Reimplemented from BadGuy.


The documentation for this class was generated from the following files: