group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
AbilityState.hpp File Reference

ECS component that tracks abilities and ability level. More...

#include <algorithm>
#include <array>
#include <cstdint>
#include <glm/vec3.hpp>
Include dependency graph for AbilityState.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  AbilityState

Enumerations

enum class  AbilitySlot : uint8_t { Primary , Secondary }
enum class  AbilityType : uint8_t {
  None , Dash , Grapple , Gravity ,
  Recall , Levitate , Wallhack
}

Functions

constexpr const char * abilityName (AbilityType type)
constexpr const char * abilityDescription (AbilityType type)
bool hasPendingAbilitySelection (const AbilityState &state)
AbilitySlot pendingAbilitySlot (const AbilityState &state)
const std::array< AbilityType, kAbilityChoicesPerTier > & choicesForPendingSelection (const AbilityState &state)
void choosePendingAbility (AbilityState &state, std::size_t choiceIndex)
bool isAbilityOnCooldown (const AbilityState &state, AbilityType type)
void setAbilityCooldown (AbilityState &state, AbilityType type, float cooldown)
float abilityCooldownRemaining (const AbilityState &state, AbilityType type)

Variables

constexpr std::size_t kAbilityChoicesPerTier = 2
constexpr std::array< AbilityType, 3 > primaryAbilityTypes
constexpr std::array< AbilityType, 3 > secondaryAbilityTypes

Detailed Description

ECS component that tracks abilities and ability level.

Enumeration Type Documentation

◆ AbilitySlot

enum class AbilitySlot : uint8_t
strong
Enumerator
Primary 
Secondary 

◆ AbilityType

enum class AbilityType : uint8_t
strong
Enumerator
None 
Dash 
Grapple 
Gravity 
Recall 
Levitate 

Tier-1: hold to ride a gentle updraft for a few seconds.

Wallhack 

Tier-2: briefly see enemies through walls (red chams).

Function Documentation

◆ abilityCooldownRemaining()

float abilityCooldownRemaining ( const AbilityState & state,
AbilityType type )
inline

◆ abilityDescription()

const char * abilityDescription ( AbilityType type)
inlineconstexpr

◆ abilityName()

const char * abilityName ( AbilityType type)
inlineconstexpr
Here is the caller graph for this function:

◆ choicesForPendingSelection()

const std::array< AbilityType, kAbilityChoicesPerTier > & choicesForPendingSelection ( const AbilityState & state)
inline

◆ choosePendingAbility()

void choosePendingAbility ( AbilityState & state,
std::size_t choiceIndex )
inline
Here is the caller graph for this function:

◆ hasPendingAbilitySelection()

bool hasPendingAbilitySelection ( const AbilityState & state)
inline
Here is the caller graph for this function:

◆ isAbilityOnCooldown()

bool isAbilityOnCooldown ( const AbilityState & state,
AbilityType type )
inline
Here is the caller graph for this function:

◆ pendingAbilitySlot()

AbilitySlot pendingAbilitySlot ( const AbilityState & state)
inline

◆ setAbilityCooldown()

void setAbilityCooldown ( AbilityState & state,
AbilityType type,
float cooldown )
inline
Here is the caller graph for this function:

Variable Documentation

◆ kAbilityChoicesPerTier

std::size_t kAbilityChoicesPerTier = 2
inlineconstexpr

◆ primaryAbilityTypes

std::array<AbilityType, 3> primaryAbilityTypes
inlineconstexpr
Initial value:
= {
}
@ Dash
Definition AbilityState.hpp:20
@ Levitate
Tier-1: hold to ride a gentle updraft for a few seconds.
Definition AbilityState.hpp:24
@ Grapple
Definition AbilityState.hpp:21

◆ secondaryAbilityTypes

std::array<AbilityType, 3> secondaryAbilityTypes
inlineconstexpr
Initial value:
= {
}
@ Recall
Definition AbilityState.hpp:23
@ Wallhack
Tier-2: briefly see enemies through walls (red chams).
Definition AbilityState.hpp:25
@ Gravity
Definition AbilityState.hpp:22