partytent.c 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. class PartyTent extends TentBase
  2. {
  3. void PartyTent()
  4. {
  5. m_ToggleAnimations.Insert( new ToggleAnimations("Door1o", "Door1c", OPENING_0), 0 );
  6. m_ToggleAnimations.Insert( new ToggleAnimations("Door2o", "Door2c", OPENING_1), 0 );
  7. m_ToggleAnimations.Insert( new ToggleAnimations("Door3o", "Door3c", OPENING_2), 0 );
  8. m_ToggleAnimations.Insert( new ToggleAnimations("Door4o", "Door4c", OPENING_3), 0 );
  9. m_ToggleAnimations.Insert( new ToggleAnimations("Door5o", "Door5c", OPENING_4), 0 );
  10. m_ToggleAnimations.Insert( new ToggleAnimations("Door6o", "Door6c", OPENING_5), 0 );
  11. m_ShowAnimationsWhenPitched.Insert( "Body" );
  12. m_ShowAnimationsWhenPitched.Insert( "Pack" );
  13. /*m_ShowAnimationsWhenPitched.Insert( "Door1o" );
  14. m_ShowAnimationsWhenPitched.Insert( "Door2o" );
  15. m_ShowAnimationsWhenPitched.Insert( "Door3o" );
  16. m_ShowAnimationsWhenPitched.Insert( "Door4o" );
  17. m_ShowAnimationsWhenPitched.Insert( "Door5o" );
  18. m_ShowAnimationsWhenPitched.Insert( "Door6o" );*/
  19. m_ShowAnimationsWhenPacked.Insert( "Inventory" );
  20. m_HalfExtents = Vector(1.3, 0.35, 2.7);
  21. }
  22. override string GetSoundOpen()
  23. {
  24. return "LargeTent_Door_Open_SoundSet";
  25. }
  26. override string GetSoundClose()
  27. {
  28. return "LargeTent_Door_Close_SoundSet";
  29. }
  30. override string GetSoundOpenWindow()
  31. {
  32. return "LargeTent_Window_Open_SoundSet";
  33. }
  34. override string GetSoundCloseWindow()
  35. {
  36. return "LargeTent_Window_Close_SoundSet";
  37. }
  38. override bool HasClutterCutter()
  39. {
  40. return true;
  41. }
  42. override string GetClutterCutter()
  43. {
  44. return "LargeTentClutterCutter"; //TODO add custom clutter cutter?
  45. }
  46. //================================================================
  47. // ADVANCED PLACEMENT
  48. //================================================================
  49. override void OnPlacementComplete( Man player, vector position = "0 0 0", vector orientation = "0 0 0" )
  50. {
  51. super.OnPlacementComplete( player, position, orientation );
  52. PlayerBase pb = PlayerBase.Cast( player );
  53. if ( GetGame().IsServer() )
  54. {
  55. if ( !m_ClutterCutter )
  56. {
  57. m_ClutterCutter = GetGame().CreateObjectEx( "LargeTentClutterCutter", pb.GetLocalProjectionPosition(), ECE_PLACE_ON_SURFACE );
  58. m_ClutterCutter.SetOrientation( pb.GetLocalProjectionOrientation() );
  59. }
  60. }
  61. }
  62. override string GetDeploySoundset()
  63. {
  64. return "placeLargeTent_SoundSet";
  65. }
  66. override string GetLoopDeploySoundset()
  67. {
  68. return "largetent_deploy_SoundSet";
  69. }
  70. override void HandleCamoNetAttachment(bool hide)
  71. {
  72. bool is_closed;
  73. bool is_ruined;
  74. string component;
  75. string zone;
  76. string camo_off;
  77. string camo_on;
  78. ToggleAnimations toggle;
  79. for (int i = 0; i < m_ToggleAnimations.Count(); i++)
  80. {
  81. toggle = m_ToggleAnimations.GetKey(i);
  82. camo_off = "Camo" + toggle.GetToggleOff().Substring(4,2);
  83. camo_on = "Camo" + toggle.GetToggleOn().Substring(4,2);
  84. if (hide)
  85. {
  86. SetAnimationPhase( camo_off, hide );
  87. SetAnimationPhase( camo_on, hide );
  88. }
  89. else
  90. {
  91. component = toggle.GetToggleOff(); //either one works
  92. component.ToLower();
  93. DamageSystem.GetDamageZoneFromComponentName(this,component,zone);
  94. is_ruined = GetHealthLevel(zone) == GameConstants.STATE_RUINED;
  95. is_closed = m_OpeningMask & toggle.GetOpeningBit();
  96. if (is_closed)
  97. {
  98. SetAnimationPhase( camo_on, is_ruined );
  99. }
  100. else
  101. {
  102. SetAnimationPhase( camo_off, is_ruined );
  103. }
  104. }
  105. }
  106. SetAnimationPhase( "Camo_Roof", hide );
  107. }
  108. override void AnimateCamonetToggle(ToggleAnimations toggle)
  109. {
  110. if (!m_CamoNet)
  111. return;
  112. bool is_closed = m_OpeningMask & toggle.GetOpeningBit();
  113. string camo_off = "Camo" + toggle.GetToggleOff().Substring(4,2);
  114. string camo_on = "Camo" + toggle.GetToggleOn().Substring(4,2);
  115. SetAnimationPhase( camo_off, is_closed );
  116. SetAnimationPhase( camo_on, !is_closed );
  117. }
  118. //on part destroy
  119. override void AnimateCamonetByOpeningSelection(string opening_selection)
  120. {
  121. string camo = "Camo" + opening_selection.Substring(4,2);
  122. SetAnimationPhase(camo,1);
  123. }
  124. };
  125. class PartyTent_Blue extends PartyTent {};
  126. class PartyTent_Brown extends PartyTent {};
  127. class PartyTent_Lunapark extends PartyTent {};
  128. //placing classes
  129. class PartyTentPlacing extends PartyTent {};
  130. class PartyTent_BluePlacing extends PartyTentPlacing {};
  131. class PartyTent_BrownPlacing extends PartyTentPlacing {};
  132. class PartyTent_LunaparkPlacing extends PartyTentPlacing {};