public void UpdateCount(SufferStateProperty.SufferType key, SkillStatus skillStatus = null) { List <SufferStatePropertyCounter.CountData> list = null; this.countDictionary.TryGetValue(key, out list); if (list == null || list.Count == 0) { return; } using (List <SufferStatePropertyCounter.CountData> .Enumerator enumerator = list.GetEnumerator()) { while (enumerator.MoveNext()) { SufferStatePropertyCounter.CountData countData = enumerator.Current; HaveSufferState currentSufferState = countData.characterStateControl.currentSufferState; if (currentSufferState.FindSufferState(key)) { SufferStateProperty sufferStateProperty = currentSufferState.GetSufferStateProperty(key); SufferStateProperty.Data[] array = sufferStateProperty.GetNotIsMultiHitThroughDatas(); if (!string.IsNullOrEmpty(countData.id)) { array = array.Where((SufferStateProperty.Data item) => countData.id == item.id).ToArray <SufferStateProperty.Data>(); } if (array.Length > 0) { sufferStateProperty.AddCurrentKeepCount(array, -1, skillStatus, countData.characterStateControl); } } } } }
public void AddCountDictionary(SufferStateProperty.SufferType key, CharacterStateControl value, string[] ids = null) { if (!this.countDictionary.ContainsKey(key)) { this.countDictionary.Add(key, new List <SufferStatePropertyCounter.CountData>()); } HaveSufferState currentSufferState = value.currentSufferState; if (currentSufferState.FindSufferState(key)) { SufferStateProperty sufferStateProperty = currentSufferState.GetSufferStateProperty(key); SufferStateProperty.Data[] array = sufferStateProperty.GetIsMultiHitThroughDatas(); if (ids != null) { array = array.Where((SufferStateProperty.Data item) => ids.Contains(item.id)).ToArray <SufferStateProperty.Data>(); } if (array.Length > 0) { sufferStateProperty.AddCurrentKeepCount(array, -1, null, null); } SufferStateProperty.Data[] array2 = sufferStateProperty.GetNotIsMultiHitThroughDatas(); if (ids != null) { array2 = array2.Where((SufferStateProperty.Data item) => ids.Contains(item.id)).ToArray <SufferStateProperty.Data>(); } if (array2.Length > 0) { SufferStateProperty.Data[] array3 = array2; for (int i = 0; i < array3.Length; i++) { SufferStateProperty.Data notIsMultiHitThroughData = array3[i]; if (!this.countDictionary[key].Where((SufferStatePropertyCounter.CountData item) => item.characterStateControl == value && item.id == notIsMultiHitThroughData.id).Any <SufferStatePropertyCounter.CountData>()) { SufferStatePropertyCounter.CountData countData = new SufferStatePropertyCounter.CountData(); countData.characterStateControl = value; countData.id = notIsMultiHitThroughData.id; this.countDictionary[key].Add(countData); } } } } }