示例#1
0
 private void UpdateParticipationWhenRequestReceived(ParticipationRequest request)
 {
     if (participationData.CurrentParticipationState == ParticipationState.Participating || participationData.CurrentParticipationState == ParticipationState.Retained)
     {
         return;
     }
     PriorityCompetition.Decide();
     if (PriorityCompetition.LatestResults != null && PriorityCompetition.LatestResults.Winner != null)
     {
         participationData.ParticipatingGO = PriorityCompetition.LatestResults.Winner;
         if (request.RequestType == ParticipationRequest.Type.Prepare)
         {
             participationData.CurrentParticipationState = ParticipationState.Pending;
         }
         else if (request.RequestType == ParticipationRequest.Type.ForcedInteraction)
         {
             participationData.CurrentParticipationState = ParticipationState.Participating;
         }
     }
     else
     {
         ResetParticipation();
     }
 }