undergroundbunkerhandlerclient.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. class UndergroundBunkerHandlerClient : UndergroundHandlerClient
  2. {
  3. protected bool m_IsDoorOpening;
  4. protected float m_AnimPhasePrev;
  5. override protected bool CalculateEyeAcco(float timeSlice)
  6. {
  7. if (m_IsDoorOpening)
  8. {
  9. float adjustedOpen = Math.InverseLerp(0, 1, m_EyeAccoTarget);
  10. adjustedOpen = Math.Clamp(adjustedOpen,0,1);
  11. m_EyeAcco = Easing.EaseInOutCubic(adjustedOpen);
  12. }
  13. else
  14. {
  15. float adjustedClose = Math.InverseLerp(0.07, 1, m_EyeAccoTarget);
  16. adjustedClose = Math.Clamp(adjustedClose,0,1);
  17. m_EyeAcco = Easing.EaseOutQuad(adjustedClose);
  18. }
  19. return true;
  20. }
  21. override protected void CalculateEyeAccoTarget()
  22. {
  23. UndergroundBunkerTrigger trigger = UndergroundBunkerTrigger.Cast(m_TransitionalTrigger);
  24. if (trigger)
  25. {
  26. EntityAI building = EntityAI.Cast(trigger.GetParent());
  27. if (building)
  28. {
  29. float animPhase = building.GetAnimationPhase(trigger.m_LinkedDoorSelection);
  30. m_IsDoorOpening = animPhase > m_AnimPhasePrev;
  31. m_AnimPhasePrev = animPhase;
  32. m_EyeAccoTarget = animPhase;
  33. }
  34. }
  35. }
  36. override protected void ProcessLighting(float timeSlice)
  37. {
  38. //we don't want to change the lighting
  39. }
  40. override protected void ApplyEyeAcco()
  41. {
  42. m_LightingLerp = 0;
  43. super.ApplyEyeAcco();
  44. }
  45. override protected void ProcessSound(float timeSlice)
  46. {
  47. GetGame().GetWorld().SetExplicitVolumeFactor_EnvSounds2D(m_EyeAcco, 0);
  48. }
  49. }