using System; using System.Collections.Generic; using MaidStatus; public static class YotogiOldPropensity { public static void Create() { if (YotogiOldPropensity.propensityDatas != null) { return; } YotogiOldPropensity.propensityDatas = new Dictionary(); using (AFileBase afileBase = GameUty.FileSystemOld.FileOpen("propensity_learn.nei")) { using (CsvParser csvParser = new CsvParser()) { bool condition = csvParser.Open(afileBase); NDebug.Assert(condition, "propensity_learn.nei\nopen failed."); int num = 2; while (csvParser.IsCellToExistData(1, num)) { int cell_x = 1; string cellAsString = csvParser.GetCellAsString(cell_x++, num); if (!Propensity.IsEnabled(cellAsString)) { num++; } else { YotogiOldPropensity.RequestData requestData = new YotogiOldPropensity.RequestData(); requestData.seikeikens = new HashSet(); requestData.parametersPack = new ParametersPack(); Propensity.Data data = Propensity.GetData(cellAsString); cellAsString = csvParser.GetCellAsString(cell_x++, num); if (!string.IsNullOrEmpty(cellAsString)) { string[] array = cellAsString.Split(new char[] { ',' }); foreach (string text in array) { string value = "NO_NO"; if (text != null) { if (!(text == "指定なし")) { if (!(text == "前穴")) { if (!(text == "後穴")) { if (text == "両穴") { value = "Yes_Yes"; } } else { value = "No_Yes"; } } else { value = "Yes_No"; } } else { value = "No_No"; } } requestData.seikeikens.Add((Seikeiken)Enum.Parse(typeof(Seikeiken), value)); } } while (csvParser.IsCellToExistData(cell_x, num)) { string cellAsString2 = csvParser.GetCellAsString(cell_x++, num); int cellAsInteger = csvParser.GetCellAsInteger(cell_x++, num); ParametersPack.StatusType targetStatus = ParametersPack.NameToStatusType(cellAsString2); requestData.parametersPack.Set(targetStatus, cellAsInteger); } YotogiOldPropensity.propensityDatas.Add(data.id, requestData); num++; } } } } } public static bool IsGetPossiblePropensity(Propensity.Data data, Status status) { YotogiOldPropensity.Create(); return Propensity.IsEnabled(data.id) && YotogiOldPropensity.propensityDatas.ContainsKey(data.id) && YotogiOldPropensity.propensityDatas[data.id].Check(status); } public static Dictionary propensityDatas; public class RequestData { public bool Check(Status status) { return this.seikeikens.Contains(status.seikeiken) && this.parametersPack.GreaterThanOrEqualToStatus(status); } public HashSet seikeikens; public ParametersPack parametersPack; } }