45template <std::derived_from<Action> a>
46auto typical(
const std::vector<Entity*>& intendedTargets,
float delayBetweenGroups,
int groups, a& intendedAction) ->
void
48 for (
auto entity : intendedTargets)
51 intendedAction.setInitialDelay(intendedAction.getInitialDelay() + (delayBetweenGroups * groups));
53 entity->addAction(intendedAction);
67template <std::derived_from<Action> a>
68auto standardStagger(
const std::vector<Entity*>& intendedTargets,
float gapBetweenActions, a& intendedAction) ->
void
70 auto originalInitialDelay = intendedAction.getInitialDelay();
71 for (
auto i = 0u; i < intendedTargets.size(); ++i)
74 intendedAction.setInitialDelay(originalInitialDelay + ((intendedAction.getDuration() + gapBetweenActions) * i));
76 intendedTargets[i]->addAction(intendedAction);
93template <std::derived_from<Action> a>
94auto slightOverlap(
const std::vector<Entity*>& intendedTargets,
float overlapAmount, a& intendedAction) ->
void
96 auto originalInitialDelay = intendedAction.getInitialDelay();
97 for (
auto i = 0u; i < intendedTargets.size(); ++i)
100 auto sumOfPreviousActions = (intendedAction.getDuration() - overlapAmount) * i;
101 intendedAction.setInitialDelay(originalInitialDelay + sumOfPreviousActions);
103 intendedTargets[i]->addAction(intendedAction);
119template <std::derived_from<Action> a>
120auto Staircase(
const std::vector<Entity*>& intendedTargets,
float delayBetweenActions, a& intendedAction) ->
void
122 for (
auto i = 0u; i < intendedTargets.size(); ++i)
125 intendedAction.setDuration(delayBetweenActions + (delayBetweenActions * i));
127 intendedTargets[i]->addAction(intendedAction);
143template <std::derived_from<Action> a>
144auto Spiral(
const std::vector<Entity*>& intendedTargets,
float numberOfGroups, a& intendedAction) ->
void
146 for (
auto i = 0u; i < intendedTargets.size(); ++i)
151 intendedTargets[i]->addAction(intendedAction);
163template <std::derived_from<Action> a>
164auto CreateStagger(
const std::vector<a>& intendedAction,
float delayBetweenActions) ->
void
166 for (
int i = 0; i < static_cast<int>(intendedAction.size()); ++i)
168 intendedAction->setInitialDelay(delayBetweenActions * i);
181template <std::derived_from<Action> a>
182auto SpreadAction(
const std::vector<Entity*>& intendedTargets,
const a& intendedAction) ->
void
184 for (
auto entity : intendedTargets)
186 entity->addAction(intendedAction);
The class containing all entity elements.
Holds functions that are useful to synchronize actions such that specific visual effects occur.
Definition AnimationSequence.h:31
auto SpreadAction(const std::vector< Entity * > &intendedTargets, const a &intendedAction) -> void
Gives every single Entity the same action, with no special effects.
Definition AnimationSequence.h:182
auto Spiral(const std::vector< Entity * > &intendedTargets, float numberOfGroups, a &intendedAction) -> void
All actions start at the same time, but actions take longer and longer.
Definition AnimationSequence.h:144
auto standardStagger(const std::vector< Entity * > &intendedTargets, float gapBetweenActions, a &intendedAction) -> void
Adds an action to every entity, but sets it up such that each action will have a small gap between it...
Definition AnimationSequence.h:68
auto typical(const std::vector< Entity * > &intendedTargets, float delayBetweenGroups, int groups, a &intendedAction) -> void
Sets a group of actions to all have the same initial delay.
Definition AnimationSequence.h:46
auto Staircase(const std::vector< Entity * > &intendedTargets, float delayBetweenActions, a &intendedAction) -> void
All actions start at the same time, but actions take longer and longer.
Definition AnimationSequence.h:120
auto CreateStagger(const std::vector< a > &intendedAction, float delayBetweenActions) -> void
Creates a buffer between actions with the given delay.
Definition AnimationSequence.h:164
auto slightOverlap(const std::vector< Entity * > &intendedTargets, float overlapAmount, a &intendedAction) -> void
Adds an action to every entity, but sets it up such that each action will start a little bit before t...
Definition AnimationSequence.h:94