public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
            case 2:
            {
                m_LambFatherBreed = (SheepBreed)reader.ReadInt();
                m_MotherBreed     = (SheepBreed)reader.ReadInt();
                m_FatherBreed     = (SheepBreed)reader.ReadInt();
                m_Milk            = reader.ReadInt();
                m_LastMilking     = reader.ReadDateTime();
                m_CanMilk         = reader.ReadBool();
                goto case 1;
            }

            case 1:
            {
                NextWoolTime = reader.ReadDeltaTime();
                break;
            }
            }
        }
 public override void OnAfterSpawn()
 {
     base.OnAfterSpawn();
     Name          = (this.Female ? "a ewe": "a ram");
     m_MotherBreed = (SheepBreed)Utility.Random(7);
     m_FatherBreed = (SheepBreed)Utility.Random(7);
     if (Utility.RandomBool())
     {
         DetermineBreed(m_MotherBreed);
     }
     else
     {
         DetermineBreed(m_FatherBreed);
     }
     TypeName = "a sheep";
 }
 public virtual void DetermineBreed(SheepBreed cb)
 {
     if (m_MotherBreed == m_FatherBreed)
     {
         this.Title = "[" + m_MotherBreed + "]";
     }
     else
     {
         this.Title = "[Mixed]";
     }
     if (cb == SheepBreed.Cotswold)
     {
         Hue = 990;
     }
     else if (cb == SheepBreed.Cormo)
     {
     }
     else if (cb == SheepBreed.Swaledale)
     {
         Hue = 1882;
     }
     else if (cb == SheepBreed.Racka)
     {
         Hue = 1953;
     }
     else if (cb == SheepBreed.Latxa)
     {
         Hue = 1126;
     }
     else if (cb == SheepBreed.Coopworth)
     {
     }
     else if (cb == SheepBreed.Awassi)
     {
         Hue = 1120;
     }
 }