private static void RemoveSocket(string[] inputTokens) { string weaponName = inputTokens[1]; int socketIndex = int.Parse(inputTokens[2]); IWeapon weapon = weapons.First(w => w.Name == weaponName); if (socketIndex >= 0 && socketIndex < weapon.Gems.Length) { IGem gem = weapon.Gems[socketIndex]; if (gem != null) { weapon.DegradeWeapon(gem); weapon.Gems[socketIndex] = null; } } }