protected void SetStrategyState(CeLveZu strategyData) { int num = 0; for (int i = 0; i < strategyData.StrategyPercentage.get_Count(); i++) { num += strategyData.StrategyPercentage.get_Item(i); } if (num == 0) { this.CurStrategyType = StrategyType.None; return; } int num2 = Random.Range(0, num); int num3 = 0; for (int j = 0; j < strategyData.StrategyPercentage.get_Count(); j++) { num3 += strategyData.StrategyPercentage.get_Item(j); if (num2 < num3) { this.CurStrategyType = j + StrategyType.Wander; return; } } this.CurStrategyType = StrategyType.None; }
protected void UpdateStrategyState() { StringBuilder stringBuilder = new StringBuilder(); IEnumerator enumerator = this.AllStrategyType.GetEnumerator(); try { while (enumerator.MoveNext()) { FeedbackConditionType feedbackConditionType = (FeedbackConditionType)((int)enumerator.get_Current()); if (this.feedbackValue.ContainsKey(feedbackConditionType)) { stringBuilder.Append(this.feedbackValue.get_Item(feedbackConditionType)); } } } finally { IDisposable disposable = enumerator as IDisposable; if (disposable != null) { disposable.Dispose(); } } string text = stringBuilder.ToString(); CeLveZu ceLveZu = (!DataReader <CeLveZu> .Contains(text)) ? null : DataReader <CeLveZu> .Get(text); if (ceLveZu == null) { int num = -1; for (int i = 0; i < DataReader <CeLveZu> .DataList.get_Count(); i++) { int num2 = this.CheckIsStrategyMatch(text, DataReader <CeLveZu> .DataList.get_Item(i).StrategyId); if (num2 > num) { ceLveZu = DataReader <CeLveZu> .DataList.get_Item(i); num = num2; } } } if (ceLveZu != null && ceLveZu.StrategyPercentage.get_Count() <= this.AllStrategyTypeCount) { this.SetStrategyState(ceLveZu); } }