Advertisement
Guest User

TurnProcessing.lua

a guest
Jul 29th, 2013
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -------------------------------------------------
  2. -- Turn Processing Popup
  3. -------------------------------------------------
  4. include( "IconSupport" );
  5. include( "SupportFunctions" );
  6.  
  7. local ms_IsShowingMinorCiv = false;
  8.  
  9. -------------------------------------------------
  10. -- QuickMovement toggle functions
  11. -------------------------------------------------
  12. function ToggleQuickMovementON()
  13.  
  14. local options = {};
  15. table.insert(options, { "GAMEOPTION_QUICK_MOVEMENT", true });
  16. Network.SendGameOptions(options);
  17. end
  18.  
  19. function ToggleQuickMovementOFF()
  20.  
  21. local options = {};
  22. table.insert(options, { "GAMEOPTION_QUICK_MOVEMENT", false });
  23. Network.SendGameOptions(options);
  24. end
  25.  
  26. ------------------------------------------------------------
  27. ------------------------------------------------------------
  28. function GetPlayer (iPlayerID)
  29. if (iPlayerID < 0) then
  30. return nil;
  31. end
  32.  
  33. if (Players[iPlayerID]:IsHuman()) then
  34. return nil;
  35. end;
  36.  
  37. return Players[iPlayerID];
  38. end
  39.  
  40. -------------------------------------------------
  41. -- OnAITurnStart
  42. -------------------------------------------------
  43. function OnAITurnStart(iPlayerID, szTag)
  44.  
  45. if(PreGame.IsMultiplayerGame()) then
  46. -- Turn Queue UI (see ActionInfoPanel.lua) replaces the turn processing UI in multiplayer.
  47. return;
  48. end
  49.  
  50. if( ContextPtr:IsHidden() ) then
  51. ContextPtr:SetHide( false );
  52. Controls.Anim:SetHide( true );
  53. ms_IsShowingMinorCiv = false;
  54. end
  55.  
  56. local player = GetPlayer(iPlayerID);
  57. if (player == nil) then
  58. return;
  59. end
  60.  
  61. if (not player:IsTurnActive()) then
  62. return;
  63. end
  64.  
  65. -- Determine if the local player has met this player, else we will just a generic processing message
  66.  
  67. local pLocalTeam = Teams[ Players[ Game.GetActivePlayer() ]:GetTeam() ];
  68. local bMet = pLocalTeam:IsHasMet( player:GetTeam() );
  69.  
  70. local bIsMinorCiv = player:IsMinorCiv();
  71.  
  72. if (bIsMinorCiv and ms_IsShowingMinorCiv) then
  73. -- If we are already showing the Minor Civ processing, just exit. We don't show them individually because they are usually quick to process
  74. return;
  75. end
  76.  
  77. local civDescription;
  78. local bIsBarbarian = player:IsBarbarian();
  79. if (bIsBarbarian and Game.IsOption(GameOptionTypes.GAMEOPTION_NO_BARBARIANS)) then
  80. -- Even if there are no barbarians, we will get this call, just skip out if they are turned off
  81. return;
  82. end
  83. -- If we have met them, or it is a minor civ or it is the barbarians, show it.
  84. if (bMet or bIsMinorCiv or bIsBarbarian) then
  85. -- Set Civ Icon
  86. Controls.CivIconBG:SetHide( false );
  87. Controls.CivIconShadow:SetHide( false );
  88. CivIconHookup(iPlayerID, 64, Controls.CivIcon, Controls.CivIconBG, Controls.CivIconShadow, false, true);
  89.  
  90. if (player:IsMinorCiv()) then
  91. civDescription = Locale.ConvertTextKey( "TXT_KEY_PROCESSING_MINOR_CIVS" );
  92. ms_IsShowingMinorCiv = true;
  93. else
  94. local civType = player:GetCivilizationType();
  95. local civInfo = GameInfo.Civilizations[civType];
  96. local strCiv = Locale.ConvertTextKey(civInfo.ShortDescription);
  97. ms_IsShowingMinorCiv = false;
  98. if(strCiv and #strCiv > 0) then
  99. civDescription = Locale.ConvertTextKey(strCiv);
  100. else
  101. civDescription = Locale.ConvertTextKey( "TXT_KEY_MULTIPLAYER_DEFAULT_PLAYER_NAME", iPlayerID + 1 );
  102. end
  103.  
  104. civDescription = Locale.ConvertTextKey( "TXT_KEY_PROCESSING_TURN_FOR", civDescription );
  105. end
  106. else
  107. civDescription = Locale.ConvertTextKey( "TXT_KEY_PROCESSING_TURN_FOR_UNMET_PLAYER", iPlayerID + 1 );
  108. Controls.CivIcon:SetTexture("CivSymbolsColor512.dds");
  109. Controls.CivIcon:SetTextureOffsetVal( 448 + 7, 128 + 7 );
  110. Controls.CivIcon:SetColor( Vector4( 1.0, 1.0, 1.0, 1.0 ) );
  111. Controls.CivIcon:SetHide( false );
  112. Controls.CivIconBG:SetHide( true );
  113. Controls.CivIconShadow:SetHide( true );
  114. ms_IsShowingMinorCiv = false;
  115. end
  116. if (Controls.Anim:IsHidden()) then
  117. Controls.Anim:SetHide( false );
  118. Controls.Anim:BranchResetAnimation();
  119. end
  120. Controls.TurnProcessingTitle:SetText(civDescription);
  121.  
  122. end
  123. Events.AIProcessingStartedForPlayer.Add( ToggleQuickMovementON );
  124. Events.AIProcessingStartedForPlayer.Add( OnAITurnStart );
  125. -------------------------------------------------------------------------
  126. -- OnPlayerTurnStart
  127. -- Human player's turn, hide the UI
  128. -------------------------------------------------------------------------
  129. function OnPlayerTurnStart()
  130. if (not ContextPtr:IsHidden()) then
  131. Controls.Anim:Reverse();
  132. Controls.Anim:Play();
  133. end
  134. end
  135. Events.ActivePlayerTurnStart.Add( ToggleQuickMovementOFF );
  136. Events.ActivePlayerTurnStart.Add( OnPlayerTurnStart );
  137. Events.RemotePlayerTurnStart.Add( ToggleQuickMovementOFF );
  138. Events.RemotePlayerTurnStart.Add( OnPlayerTurnStart );
  139.  
  140. -------------------------------------------------------------------------
  141. -- Callback while the alpha animation is playing.
  142. -- It will also be called once, when the animation stops.
  143. function OnAlphaAnim()
  144. if (Controls.Anim:IsStopped() and Controls.Anim:GetAlpha() == 0.0) then
  145. Controls.Anim:SetHide( true );
  146. ContextPtr:SetHide( true );
  147. print("Hiding TurnProcessing");
  148. end
  149. end
  150. Controls.Anim:RegisterAnimCallback( OnAlphaAnim );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement