internal T GetOrCreatePetRecord <T>(NPCEntry entry, IList <T> list) where T : IPetRecord, new() { foreach (var record in list) { if (record.EntryId == entry.NPCId) { return(record); } } if (typeof(T) == typeof(SummonedPetRecord)) { m_record.PetSummonedCount++; } else { m_record.PetCount++; } return(PetMgr.CreateDefaultPetRecord <T>(entry, m_record.EntityLowId)); }