public override void OnReplicationPrepare()
 {
     base.OnReplicationPrepare();
     foreach (ReplicatedPlayerInjuries.ReplicatedWoundSlot replicatedWoundSlot in this.m_WoundSlots)
     {
         if (replicatedWoundSlot.m_LocalPlayerInjury != null && !PlayerInjuryModule.Get().m_Injuries.Contains(replicatedWoundSlot.m_LocalPlayerInjury))
         {
             replicatedWoundSlot.m_LocalPlayerInjury = null;
             replicatedWoundSlot.ClearInjury();
             this.ReplSetDirty();
         }
     }
     foreach (Injury injury in PlayerInjuryModule.Get().m_Injuries)
     {
         if (!this.m_PreviousInjuries.ContainsKey(injury))
         {
             int slotIdUsingLocalPlayerSlot = this.GetSlotIdUsingLocalPlayerSlot(injury.m_Slot.gameObject);
             this.m_PreviousInjuries.Add(injury, this.m_WoundSlots[slotIdUsingLocalPlayerSlot]);
             this.m_WoundSlots[slotIdUsingLocalPlayerSlot].m_LocalPlayerInjury = injury;
             this.m_WoundSlots[slotIdUsingLocalPlayerSlot].SetInjury(injury.m_Type, injury.m_State);
             this.ReplSetDirty();
         }
         else
         {
             ReplicatedPlayerInjuries.ReplicatedWoundSlot replicatedWoundSlot2 = this.m_PreviousInjuries[injury];
             if (!replicatedWoundSlot2.HasInjury(injury))
             {
                 replicatedWoundSlot2.m_LocalPlayerInjury = injury;
                 replicatedWoundSlot2.SetInjury(injury.m_Type, injury.m_State);
                 this.ReplSetDirty();
             }
         }
     }
 }
 private void Initialize()
 {
     if (this.m_Initialized)
     {
         return;
     }
     this.m_Initialized = true;
     this.m_WoundSlots  = new List <ReplicatedPlayerInjuries.ReplicatedWoundSlot>(BodyInspectionController.Get().m_WoundSlots.Count);
     for (int i = 0; i < BodyInspectionController.Get().m_WoundSlots.Count; i++)
     {
         Transform transform = base.transform.FindDeepChild(BodyInspectionController.Get().m_WoundSlots[i].name);
         if (!(transform == null))
         {
             ReplicatedPlayerInjuries.ReplicatedWoundSlot replicatedWoundSlot = new ReplicatedPlayerInjuries.ReplicatedWoundSlot();
             replicatedWoundSlot.m_ReplicatedPlayerSlot = transform.gameObject;
             replicatedWoundSlot.m_LocalPlayerSlot      = (base.ReplIsOwner() ? BodyInspectionController.Get().m_WoundSlots[i].gameObject : null);
             replicatedWoundSlot.m_SlotIndex            = i;
             if (BodyInspectionController.Get().m_WoundSlots[i].m_AdditionalMeshes != null)
             {
                 replicatedWoundSlot.m_ReplicatedPlayerAdditionalMeshes = new List <GameObject>(BodyInspectionController.Get().m_WoundSlots[i].m_AdditionalMeshes.Count);
                 foreach (GameObject gameObject in BodyInspectionController.Get().m_WoundSlots[i].m_AdditionalMeshes)
                 {
                     Transform transform2 = base.transform.FindDeepChild(gameObject.name);
                     DebugUtils.Assert(transform2 != null, true);
                     if (transform2)
                     {
                         replicatedWoundSlot.m_ReplicatedPlayerAdditionalMeshes.Add(transform2.gameObject);
                     }
                 }
             }
             this.m_WoundSlots.Add(replicatedWoundSlot);
         }
     }
 }