Wrath of Zeus
Made by Torchlight Games for CSE 125 SP24
Loading...
Searching...
No Matches
spiketrap.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <chrono>
8
12class SpikeTrap : public Trap {
13public:
18 SpikeTrap(glm::vec3 corner, glm::vec3 dimensions);
19
20 const static int DAMAGE;
21 const static std::chrono::seconds ACTIVE_TIME; // how long the spikes are down
22 const static std::chrono::seconds TIME_UNTIL_RESET; // how long from initial activation until it can activate again
23
24 bool shouldTrigger(ServerGameState& state) override;
25 void trigger(ServerGameState& state) override;
26
27 bool shouldReset(ServerGameState& state) override;
28 void reset(ServerGameState& state) override;
29
30 void doCollision(Object* other, ServerGameState& state) override;
31
32private:
33 std::chrono::time_point<std::chrono::system_clock> dropped_time;
34
35 glm::vec3 reset_pos;
36 glm::vec3 reset_corner;
37 glm::vec3 reset_dimensions;
38
39 bool isUnderneath(Object* other);
40};
Definition: object.hpp:95
The ServerGameState class contains all abstract game state data and logic for a single game state ins...
Definition: servergamestate.hpp:43
Definition: spiketrap.hpp:12
static const int DAMAGE
Definition: spiketrap.hpp:20
void reset(ServerGameState &state) override
Definition: spiketrap.cpp:76
void doCollision(Object *other, ServerGameState &state) override
Code to run when this object collides with another.
Definition: spiketrap.cpp:85
bool shouldTrigger(ServerGameState &state) override
Definition: spiketrap.cpp:21
void trigger(ServerGameState &state) override
Definition: spiketrap.cpp:51
static const std::chrono::seconds TIME_UNTIL_RESET
Definition: spiketrap.hpp:22
static const std::chrono::seconds ACTIVE_TIME
Definition: spiketrap.hpp:21
bool shouldReset(ServerGameState &state) override
Definition: spiketrap.cpp:71
Definition: trap.hpp:9