|
Wrath of Zeus
Made by Torchlight Games for CSE 125 SP24
|
#include <trap.hpp>
Public Member Functions | |
| Trap (ObjectType type, bool movable, glm::vec3 corner, Collider collider, ModelType model, glm::vec3 dimensions=glm::vec3(1.0f)) | |
| virtual bool | shouldTrigger (ServerGameState &state)=0 |
| virtual void | trigger (ServerGameState &state) |
| virtual bool | shouldReset (ServerGameState &state)=0 |
| virtual void | reset (ServerGameState &state) |
| SharedObject | toShared () override |
| Generates a SharedObject representation of this object. More... | |
| void | setIsDMTrap (bool is_dm_trap) |
| void | setIsDMTrapHover (bool is_dm_trap_hover) |
| void | setExpiration (std::chrono::time_point< std::chrono::system_clock > expiration) |
| bool | getIsDMTrap () |
| std::chrono::time_point< std::chrono::system_clock > | getExpiration () |
Public Member Functions inherited from Object | |
| Object (ObjectType type, Physics physics, ModelType modelType) | |
| virtual | ~Object () |
| void | setModel (ModelType type) |
| Sets this Object's model and initializes its dimensions to the given model's default dimensions. More... | |
| virtual SharedObject | toShared () |
| Generates a SharedObject representation of this object. More... | |
| virtual void | doCollision (Object *other, ServerGameState &state) |
| Code to run when this object collides with another. More... | |
| std::string | to_string (unsigned int tab_offset) |
| std::string | to_string () |
Protected Attributes | |
| bool | is_dm_trap |
| std::chrono::time_point< std::chrono::system_clock > | expiration |
| SharedTrapInfo | info |
Additional Inherited Members | |
Data Fields inherited from Object | |
| EntityID | globalID {} |
| Unique object ID (used to index into the ServerGameState::objects vector) More... | |
| SpecificID | typeID {} |
| Type-specific Object ID (used to index into the type-specific objects vector in ServerGameState) More... | |
| MovableID | movableID {} |
| Movable ID (used to index into the movable objects vector in ServerGameState) More... | |
| ObjectType | type |
| Identifies this object's type (derived class) More... | |
| Physics | physics |
| Object's Physics-related properties. More... | |
| ModelType | modelType |
| Object's render model type (specifies this Object's render model to the client) More... | |
| AnimState | animState |
| Object's animation state and current action. For non-animated objects, this defaults as AnimState::IdleAnim. More... | |
| bool | is_sprinting |
| used to determine if the player is sprinting for animation purposes More... | |
| std::vector< glm::ivec2 > | gridCellPositions |
| Vector of (x, y) positions of GridCells currently occupied by this object. More... | |
| float | distance_moved |
| Distance moved, for use in deciding when to play footsteps IMPORTANT: reset every time a footstep sound is performed for objects that play foosteps. More... | |
Static Public Attributes inherited from Object | |
| static std::unordered_map< ModelType, glm::vec3 > | models |
| Maps from ModelType to a model's dimensions as read from the model files. (At present, these values are hard-coded in object.cpp) More... | |
| Trap::Trap | ( | ObjectType | type, |
| bool | movable, | ||
| glm::vec3 | corner, | ||
| Collider | collider, | ||
| ModelType | model, | ||
| glm::vec3 | dimensions = glm::vec3(1.0f) |
||
| ) |
| type | What type of trap this is |
| movable | Whether or not the trap should be initialized being affected by gravity/velocity |
| corner | Corner position of the trap |
| collider | collider type for the trap |
| model | What model should be used to render the trap |
| dimensions | Dimensions to use for the trap, if it won't be overridden by the model info |
| std::chrono::time_point< std::chrono::system_clock > Trap::getExpiration | ( | ) |
Gets the expiration time of this trap
| bool Trap::getIsDMTrap | ( | ) |
Gets if this trap is a DM trap or not
|
virtual |
Logic to reset the trap
At the highest level, this version just sets the triggered flag to false. Derivations of this should do additional resetting logic, and potentially call this Base class version as well to reset the common logic for all traps (currently just the triggered variable)
| state | GameState in case the trap needs to use the state for that |
Reimplemented in ArrowTrap, FireballTrap, SpikeTrap, and TeleporterTrap.
| void Trap::setExpiration | ( | std::chrono::time_point< std::chrono::system_clock > | expiration | ) |
Set the expiration of this trap
| expiration | time |
| void Trap::setIsDMTrap | ( | bool | is_dm_trap | ) |
Set the is_dm_trap field
| boolean | for if this trap is a DM trap or not |
| void Trap::setIsDMTrapHover | ( | bool | is_dm_trap_hover | ) |
Set the SharedTrapInfo info dm_hover field
| boolean | for if this trap is a a DM hover or not |
|
pure virtual |
Resets the trap
| state | GameState, in case you need that to determine if the trap should reset |
Implemented in ArrowTrap, FakeWall, FireballTrap, FloorSpike, Lava, SpikeTrap, and TeleporterTrap.
|
pure virtual |
Determines if the trap should be triggered
| state | GameState, in case you need that to determine if the trap should trigger |
Implemented in ArrowTrap, FakeWall, FireballTrap, FloorSpike, Lava, SpikeTrap, and TeleporterTrap.
|
overridevirtual |
Generates a SharedObject representation of this object.
Reimplemented from Object.
|
virtual |
Activates the trap
At the highest level, this just sets the triggered variable to true. Subclass versions of this will also probably want to call this function to set the triggered variable, in addition to any other common flags we add in later.
| state | State in case triggering the trap needs to affect the gamestate |
Reimplemented in ArrowTrap, FireballTrap, SpikeTrap, and TeleporterTrap.
|
protected |
the expiration time of this trap
|
protected |
|
protected |
is this trap a DM trap?