void StartScreenShake(float afAmount, float afTime, float afFadeInTime,float afFadeOutTime);
// Insanity
void SetInsanitySetEnabled(string& asSet, bool abX);
void StartRandomInsanityEvent();
bool InsanityEventIsActive();
// Effect
void FadeIn(float afTime);
void FadeOut(float afTime);
void FadeImageTrailTo(float afAmount, float afSpeed);
void FadeSepiaColorTo(float afAmount, float afSpeed);
void FadeRadialBlurTo(float afSize, float afSpeed);
void SetRadialBlurStartDist(float afStartDist);
For breathing, Amnesia uses timers.
A good map for reference is the Cellar Archives, take a look at that.
void TimerPlayerReact(string &in asTimer)
{
if(asTimer == "scare"){
PlayGuiSound("react_scare", 1.0f);
SetRadialBlurStartDist(0.3f);
FadeRadialBlurTo(0.1f, 0.05f);
StartScreenShake(0.02f, 0.5f, 1.0f, 2.0f);
}
else if(asTimer == "breath"){
PlayGuiSound("react_breath", 0.9f);
FadeRadialBlurTo(0.0f, 0.02f);
}
else if(asTimer == "breathl"){
PlayGuiSound("react_breath", 0.5f);
}
}