private void RefreshTalents(Action finishCallback) { Dictionary <int, List <int> > zoneToTalent = RoleTalentManager.Instance.ZoneToTalent; int num = zoneToTalent.get_Count(); int num2 = 0; using (Dictionary <int, List <int> > .KeyCollection.Enumerator enumerator = zoneToTalent.get_Keys().GetEnumerator()) { while (enumerator.MoveNext()) { int current = enumerator.get_Current(); if (num2 < this.listLevelZone.get_Count()) { TalentLevelZone talentLevelZone = this.listLevelZone.get_Item(num2); talentLevelZone.RefreshTalents(zoneToTalent.get_Item(current), delegate { num--; if (num <= 0 && finishCallback != null) { finishCallback.Invoke(); } }); talentLevelZone.SetLevel(current); num2++; } } } }