group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
PowerupState.hpp
Go to the documentation of this file.
1
3
4#pragma once
5#include "PowerupSpawner.hpp"
6
7#include <array>
8#include <cstddef>
9#include <glm/vec3.hpp>
10#include <vector>
11
13{
15 float timeRemaining = 0.0f;
16};
17
19{
20 std::vector<ActivePowerup> active;
21};
22
24{
26 float duration = 10.0f;
27 float spawnCooldown = 20.0f;
28 float amount = 0.0f;
29};
30
31inline constexpr float k_powerupInitialSpawnDelaySeconds = 60.0f;
32inline constexpr float k_powerupRespawnCooldownSeconds = 30.0f;
33inline const glm::vec3 k_powerupPickupHalfExtents{32.0f, 32.0f, 32.0f};
34
36{
37 static constexpr std::array<PowerupConfig, 7> k_kPowerupConfigs{{
39 .type = PowerupType::Damage,
40 .duration = 15.0f,
41 .spawnCooldown = k_powerupRespawnCooldownSeconds,
42 .amount = 2.0f,
43 }, // Damage
45 .type = PowerupType::Shield,
46 .duration = 30.0f,
47 .spawnCooldown = k_powerupRespawnCooldownSeconds,
48 .amount = 200.0f, // amount of over shield
49 }, // Shield
50 }};
51
52 return k_kPowerupConfigs[static_cast<std::size_t>(type)];
53}
Powerup spawner information.
PowerupType
Definition PowerupSpawner.hpp:8
@ Shield
Definition PowerupSpawner.hpp:10
@ Damage
Definition PowerupSpawner.hpp:9
const glm::vec3 k_powerupPickupHalfExtents
Definition PowerupState.hpp:33
const PowerupConfig & getPowerupConfig(PowerupType type)
Definition PowerupState.hpp:35
constexpr float k_powerupInitialSpawnDelaySeconds
Definition PowerupState.hpp:31
constexpr float k_powerupRespawnCooldownSeconds
Definition PowerupState.hpp:32
Definition PowerupState.hpp:13
PowerupType type
Definition PowerupState.hpp:14
float timeRemaining
Definition PowerupState.hpp:15
Definition PowerupState.hpp:24
PowerupType type
Definition PowerupState.hpp:25
float spawnCooldown
Definition PowerupState.hpp:27
float duration
Definition PowerupState.hpp:26
float amount
Definition PowerupState.hpp:28
Definition PowerupState.hpp:19
std::vector< ActivePowerup > active
Definition PowerupState.hpp:20