public void AddAvailableGear <T>(Action <T> predicate = null) where T : GearBoughtItem { if (!availableGears.Any(x => x.GetType().IsEqual <T> ())) { availableGears.Add(GearBoughtItem.CreatePrimitiveWithOwn <T> (_race, predicate)); RefreshSyncAvailableGears(); return; } }