1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- class FeverBlurSymptom extends SymptomBase
- {
- Material m_MatGauss;
- float m_BlurDuration;
- float m_BlurStrength;
- float m_EffectTime;
- float m_EffectStartTime;
- float m_Time;
- protected PPERequester_FeverEffects m_Requester;
-
- const float BLUR_STRENGTH_MIN = 0.15;
- const float BLUR_STRENGTH_MAX = 0.25;
-
- const int BLUR_DURATION_TIME_MIN = 1.5;
- const int BLUR_DURATION_TIME_MAX = 2.5;
-
- const int MIN_TIME_BETWEEN_EFFECTS = 25.0;
- const int MAX_TIME_BETWEEN_EFFECTS = 35.0;
- //this is just for the Symptom parameters set-up and is called even if the Symptom doesn't execute, don't put any gameplay code in here
- override void OnInit()
- {
- m_SymptomType = SymptomTypes.SECONDARY;
- m_Priority = 0;
- m_ID = SymptomIDs.SYMPTOM_FEVERBLUR;
- m_DestroyOnAnimFinish = true;
- m_IsPersistent = false;
- m_SyncToClient = true;
-
- if ( !GetGame().IsDedicatedServer() )
- {
- Class.CastTo(m_Requester,PPERequesterBank.GetRequester(PPERequester_FeverEffects));
- }
- }
-
- //!gets called every frame
- override void OnUpdateServer(PlayerBase player, float deltatime)
- {
- //int i = 1 + 1;
- }
-
- override void OnUpdateClient(PlayerBase player, float deltatime)
- {
- m_Time += deltatime;
- if ( m_EffectStartTime <= 0 )
- {
- m_EffectStartTime = Math.RandomFloatInclusive(MIN_TIME_BETWEEN_EFFECTS, MAX_TIME_BETWEEN_EFFECTS);
- m_BlurDuration = Math.RandomFloatInclusive(BLUR_DURATION_TIME_MIN, BLUR_DURATION_TIME_MAX);
- m_BlurStrength = Math.RandomFloat(BLUR_STRENGTH_MIN, BLUR_STRENGTH_MAX);
- //PrintString("m_BlurDuration=" +m_BlurDuration.ToString());
- }
-
- if ( m_EffectStartTime > 0 && m_Time > m_EffectStartTime )
- {
- m_EffectTime += deltatime / m_BlurDuration;
- float cos_value = Math.Sin(m_EffectTime * Math.PI);
- float val = cos_value * m_BlurStrength;
- //Print(val);
- m_Requester.SetFeverIntensity(val);
- //PrintString("cos=" +cos_value.ToString());
-
- if ( m_EffectTime >= 1 )
- {
- m_EffectTime = 0;
- m_EffectStartTime = -1;
- m_Time = 0;
- }
- }
- }
-
- //!gets called once on an Symptom which is being activated
- override void OnGetActivatedServer(PlayerBase player)
- {
- if (LogManager.IsSymptomLogEnable()) Debug.SymptomLog("n/a", this.ToString(), "n/a", "OnGetActivated", m_Player.ToString());
- }
- override void OnGetActivatedClient(PlayerBase player)
- {
- if (LogManager.IsSymptomLogEnable()) Debug.SymptomLog("n/a", this.ToString(), "n/a", "OnGetActivated", m_Player.ToString());
- }
- override void OnGetDeactivatedServer(PlayerBase player)
- {
- if (LogManager.IsSymptomLogEnable()) Debug.SymptomLog("n/a", this.ToString(), "n/a", "OnGetDeactivated", m_Player.ToString());
- }
-
- //!only gets called once on an active Symptom that is being deactivated
- override void OnGetDeactivatedClient(PlayerBase player)
- {
- m_Requester.Stop();
- if (LogManager.IsSymptomLogEnable()) Debug.SymptomLog("n/a", this.ToString(), "n/a", "OnGetDeactivated", m_Player.ToString());
- }
- }
|