Wrath of Zeus
Made by Torchlight Games for CSE 125 SP24
Loading...
Searching...
No Matches
Data Structures | Public Member Functions
Projectile Class Reference

#include <projectile.hpp>

Inheritance diagram for Projectile:
Object Arrow HomingFireball SpellOrb

Data Structures

struct  Options
 Struct for options to configure the projectile. More...
 

Public Member Functions

 Projectile (glm::vec3 corner, glm::vec3 facing, glm::vec3 dimensions, ModelType model, std::optional< ServerSFX > destroy_sound, Options &&options)
 
void doCollision (Object *other, ServerGameState &state) override
 Code to run when this object collides with another. More...
 
bool doTick (ServerGameState &state)
 handle homing trajectory updates More...
 
virtual SharedObject toShared () override
 Generates a SharedObject representation of this object. More...
 
- 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 ()
 

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...
 

Detailed Description

Class for any possible Projectile.

More specific projectiles are just different parameters being passed into this base class.

Potentially we might want more specific projectiles, at which time maybe we make some of the projectile methods virtual.

Constructor & Destructor Documentation

◆ Projectile()

Projectile::Projectile ( glm::vec3  corner,
glm::vec3  facing,
glm::vec3  dimensions,
ModelType  model,
std::optional< ServerSFX destroy_sound,
Options &&  options 
)
Parameters
cornerCorner position of the projectile
facingDirection the projectile is facing
dimensionsdimension of the projectile TODO: remove once actually using non Cube models
modelModel to render the projectile as
optionsConfigurable options for the projectile

Member Function Documentation

◆ doCollision()

void Projectile::doCollision ( Object other,
ServerGameState state 
)
overridevirtual

Code to run when this object collides with another.

NOTE: default implementation does nothing only override behaviors will matter

Reimplemented from Object.

◆ doTick()

bool Projectile::doTick ( ServerGameState state)

handle homing trajectory updates

Returns
True if the entity was updated, false otherwise

◆ toShared()

SharedObject Projectile::toShared ( )
overridevirtual

Generates a SharedObject representation of this object.

Returns
A SharedObject representation of this object.

Reimplemented from Object.


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