contaminatedarea.c 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. class ContaminatedArea_Base : EffectArea
  2. {
  3. override void OnPlayerEnterServer(PlayerBase player, EffectTrigger trigger)
  4. {
  5. super.OnPlayerEnterServer(player, trigger);
  6. player.IncreaseContaminatedAreaCount();
  7. }
  8. override void OnPlayerExitServer(PlayerBase player, EffectTrigger trigger)
  9. {
  10. super.OnPlayerExitServer(player, trigger);
  11. player.DecreaseContaminatedAreaCount();
  12. }
  13. override void InitZoneClient()
  14. {
  15. super.InitZoneClient();
  16. g_Game.GetMission().GetDynamicMusicPlayer().RegisterDynamicLocation(this, DynamicMusicLocationTypes.CONTAMINATED_ZONE, m_Radius);
  17. }
  18. override void EEDelete(EntityAI parent)
  19. {
  20. super.EEDelete(parent);
  21. if (!g_Game.IsServer())
  22. g_Game.GetMission().GetDynamicMusicPlayer().UnregisterDynamicLocation(this);
  23. }
  24. }
  25. class ContaminatedArea_Static : ContaminatedArea_Base
  26. {
  27. // ----------------------------------------------
  28. // INITIAL SETUP
  29. // ----------------------------------------------
  30. override void EEInit()
  31. {
  32. if (!m_ToxicClouds)
  33. m_ToxicClouds = new array<Particle>();
  34. SetSynchDirty();
  35. super.EEInit();
  36. }
  37. override void DeferredInit()
  38. {
  39. super.DeferredInit();
  40. InitZone();
  41. }
  42. override void InitZoneServer()
  43. {
  44. super.InitZoneServer();
  45. // We create the trigger on server
  46. if (m_TriggerType != "")
  47. CreateTrigger(m_PositionTrigger, m_Radius);
  48. }
  49. override void InitZoneClient()
  50. {
  51. super.InitZoneClient();
  52. // We spawn VFX on client
  53. FillWithParticles(m_Position, m_Radius, m_OuterRingOffset, m_InnerSpacing, m_ParticleID);
  54. }
  55. override void OnDebugSpawn()
  56. {
  57. super.OnDebugSpawn();
  58. InitZone();
  59. }
  60. }