RandomPresetContent.cs 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Reflection;
  4. using UnityEngine;
  5. public class RandomPresetContent
  6. {
  7. public static Dictionary<string, RandomPresetContent.CSVData> dicCsvData { get; set; }
  8. public static Dictionary<MPN, RandomPresetContent.MPNMapping> m_dicMPNMapping
  9. {
  10. get
  11. {
  12. if (RandomPresetContent.m_dicMPNMapping_ == null)
  13. {
  14. Dictionary<MPN, SceneEditInfo.CCateNameType> dicPartsTypePair = SceneEditInfo.m_dicPartsTypePair;
  15. string text = "random_preset_mpn_map.nei";
  16. RandomPresetContent.m_dicMPNMapping_ = new Dictionary<MPN, RandomPresetContent.MPNMapping>();
  17. using (AFileBase afileBase = GameUty.FileSystem.FileOpen(text))
  18. {
  19. using (CsvParser csvParser = new CsvParser())
  20. {
  21. bool condition = csvParser.Open(afileBase);
  22. NDebug.Assert(condition, text + "\nopen failed.");
  23. for (int i = 1; i < csvParser.max_cell_y; i++)
  24. {
  25. if (csvParser.IsCellToExistData(0, i))
  26. {
  27. RandomPresetContent.MPNMapping mpnmapping = new RandomPresetContent.MPNMapping();
  28. int num = 0;
  29. MPN key = MPN.null_mpn;
  30. try
  31. {
  32. key = (MPN)Enum.Parse(typeof(MPN), csvParser.GetCellAsString(num++, i));
  33. }
  34. catch (Exception e)
  35. {
  36. NDebug.AssertParseError("MPN", e);
  37. }
  38. mpnmapping.m_buttonName = csvParser.GetCellAsString(num++, i);
  39. SceneEditInfo.CCateNameType ccateNameType;
  40. if (dicPartsTypePair.TryGetValue(key, out ccateNameType))
  41. {
  42. mpnmapping.m_buttonTitle = ccateNameType.m_strBtnPartsTypeName;
  43. if (RandomPresetContent.m_dicMPNMapping_.ContainsKey(key))
  44. {
  45. NDebug.Assert(text + "\n" + key.ToString() + "が重複しています", false);
  46. }
  47. RandomPresetContent.m_dicMPNMapping_.Add(key, mpnmapping);
  48. }
  49. }
  50. }
  51. }
  52. }
  53. }
  54. return RandomPresetContent.m_dicMPNMapping_;
  55. }
  56. }
  57. public void InitRandomPresetParamter()
  58. {
  59. if (!this.LoadParameterSheet())
  60. {
  61. return;
  62. }
  63. this.InitExecutionOrder();
  64. this.InitRandomBaseGroup();
  65. this.InitBodyBase();
  66. this.InitRandomMapping();
  67. this.InitExceptionPartMapping();
  68. this.InitPriorityPartMapping();
  69. this.InitRatioToPutOnItem();
  70. }
  71. private bool LoadParameterSheet()
  72. {
  73. using (AFileBase afileBase = GameUty.FileSystem.FileOpen("random_preset_parameter_define.nei"))
  74. {
  75. using (CsvParser csvParser = new CsvParser())
  76. {
  77. if (!csvParser.Open(afileBase))
  78. {
  79. Debug.LogWarning("csv open failed.\nrandom_preset_parameter_define.nei");
  80. return false;
  81. }
  82. RandomPresetContent.dicCsvData = new Dictionary<string, RandomPresetContent.CSVData>();
  83. this.CreateObjectFromCsv(csvParser);
  84. }
  85. }
  86. return true;
  87. }
  88. private void CreateObjectFromCsv(CsvParser csv)
  89. {
  90. int max_cell_y = csv.max_cell_y;
  91. for (int i = 0; i < max_cell_y; i++)
  92. {
  93. string cellAsString = csv.GetCellAsString(0, i);
  94. if (cellAsString == "*")
  95. {
  96. this.csvData = new RandomPresetContent.CSVData();
  97. string cellAsString2 = csv.GetCellAsString(1, i);
  98. this.csvData.ClassName = cellAsString2;
  99. List<string> list = new List<string>();
  100. List<int> list2 = new List<int>();
  101. int j;
  102. for (j = 0; j < csv.max_cell_x; j++)
  103. {
  104. string cellAsString3 = csv.GetCellAsString(1 + j, i + 2);
  105. if (cellAsString3 == "-")
  106. {
  107. list2.Add(j);
  108. }
  109. else
  110. {
  111. if (string.IsNullOrEmpty(cellAsString3))
  112. {
  113. break;
  114. }
  115. list.Add(cellAsString3);
  116. }
  117. }
  118. this.csvData.Header = list;
  119. Dictionary<int, List<string>> dictionary = new Dictionary<int, List<string>>();
  120. bool flag = false;
  121. for (int k = 1; k < csv.max_cell_y; k++)
  122. {
  123. List<string> list3 = new List<string>();
  124. for (int l = 0; l < j; l++)
  125. {
  126. if (!list2.Contains(l))
  127. {
  128. string cellAsString4 = csv.GetCellAsString(1 + l, i + 2 + k);
  129. if (l == 0 && string.IsNullOrEmpty(cellAsString4))
  130. {
  131. flag = true;
  132. l = list.Count;
  133. break;
  134. }
  135. list3.Add(cellAsString4);
  136. }
  137. }
  138. if (flag)
  139. {
  140. break;
  141. }
  142. dictionary.Add(k, list3);
  143. }
  144. this.csvData.Rows = dictionary;
  145. RandomPresetContent.dicCsvData.Add(this.csvData.ClassName, this.csvData);
  146. }
  147. }
  148. }
  149. private void InitExecutionOrder()
  150. {
  151. RandomPresetContent.ExecutionOrderMasterTable executionOrderMasterTable = new RandomPresetContent.ExecutionOrderMasterTable();
  152. executionOrderMasterTable.Load();
  153. foreach (RandomPresetContent.ExecutionOrder executionOrder in executionOrderMasterTable.All)
  154. {
  155. if (RandomPresetContent.m_dicMPNMapping.ContainsKey(executionOrder.category))
  156. {
  157. RandomPresetContent.m_dicMPNMapping[executionOrder.category].m_executionOrder = executionOrder.order;
  158. }
  159. }
  160. }
  161. private void InitRandomBaseGroup()
  162. {
  163. RandomPresetContent.RandomBaseGroupMasterTable randomBaseGroupMasterTable = new RandomPresetContent.RandomBaseGroupMasterTable();
  164. randomBaseGroupMasterTable.Load();
  165. RandomPresetContent.m_dicRandomBaseGroup = new Dictionary<int, RandomPresetContent.RandomBaseGroup>();
  166. foreach (RandomPresetContent.RandomBaseGroup randomBaseGroup in randomBaseGroupMasterTable.All)
  167. {
  168. RandomPresetContent.m_dicRandomBaseGroup.Add(randomBaseGroup.randomBaseGroupId, randomBaseGroup);
  169. }
  170. }
  171. private void InitBodyBase()
  172. {
  173. RandomPresetContent.BodyBaseMasterTable bodyBaseMasterTable = new RandomPresetContent.BodyBaseMasterTable();
  174. bodyBaseMasterTable.Load();
  175. RandomPresetContent.m_dicBodyBase = new Dictionary<int, RandomPresetContent.BodyBase>();
  176. foreach (RandomPresetContent.BodyBase bodyBase in bodyBaseMasterTable.All)
  177. {
  178. RandomPresetContent.m_dicBodyBase.Add(bodyBase.bodyBaseId, bodyBase);
  179. }
  180. }
  181. private void InitRandomMapping()
  182. {
  183. RandomPresetContent.RandomMappingMasterTable randomMappingMasterTable = new RandomPresetContent.RandomMappingMasterTable();
  184. randomMappingMasterTable.Load();
  185. RandomPresetContent.m_dicRandomMapping = new Dictionary<int, RandomPresetContent.RandomMapping>();
  186. foreach (RandomPresetContent.RandomMapping randomMapping in randomMappingMasterTable.All)
  187. {
  188. RandomPresetContent.m_dicRandomMapping.Add(randomMapping.randomMappingId, randomMapping);
  189. }
  190. foreach (KeyValuePair<int, RandomPresetContent.RandomMapping> keyValuePair in RandomPresetContent.m_dicRandomMapping)
  191. {
  192. RandomPresetContent.RandomBaseGroup randomBaseGroup;
  193. if (RandomPresetContent.m_dicRandomBaseGroup.TryGetValue(keyValuePair.Value.randomBaseGroupId, out randomBaseGroup))
  194. {
  195. RandomPresetContent.BodyBase bodyBase;
  196. if (RandomPresetContent.m_dicBodyBase.TryGetValue(keyValuePair.Value.bodyBaseId, out bodyBase))
  197. {
  198. keyValuePair.Value.randomBaseGroup = randomBaseGroup;
  199. keyValuePair.Value.bodyBase = bodyBase;
  200. }
  201. }
  202. }
  203. }
  204. private void InitExceptionPartMapping()
  205. {
  206. RandomPresetContent.ExceptionPartMappingMasterTable exceptionPartMappingMasterTable = new RandomPresetContent.ExceptionPartMappingMasterTable();
  207. exceptionPartMappingMasterTable.Load();
  208. RandomPresetContent.m_dicExceptionPartMapping = new Dictionary<int, RandomPresetContent.PartMapping>();
  209. foreach (RandomPresetContent.PartMapping partMapping in exceptionPartMappingMasterTable.All)
  210. {
  211. RandomPresetContent.m_dicExceptionPartMapping.Add(partMapping.partMappingId, partMapping);
  212. }
  213. }
  214. private void InitPriorityPartMapping()
  215. {
  216. RandomPresetContent.PriorityPartMappingMasterTable priorityPartMappingMasterTable = new RandomPresetContent.PriorityPartMappingMasterTable();
  217. priorityPartMappingMasterTable.Load();
  218. RandomPresetContent.m_dicPriorityPartMapping = new Dictionary<int, RandomPresetContent.PartMapping>();
  219. foreach (RandomPresetContent.PartMapping partMapping in priorityPartMappingMasterTable.All)
  220. {
  221. RandomPresetContent.m_dicPriorityPartMapping.Add(partMapping.partMappingId, partMapping);
  222. }
  223. }
  224. private void InitRatioToPutOnItem()
  225. {
  226. RandomPresetContent.RatioToPutOnItemMasterTable ratioToPutOnItemMasterTable = new RandomPresetContent.RatioToPutOnItemMasterTable();
  227. ratioToPutOnItemMasterTable.Load();
  228. foreach (RandomPresetContent.RatioToPutOnItem ratioToPutOnItem in ratioToPutOnItemMasterTable.All)
  229. {
  230. if (RandomPresetContent.m_dicMPNMapping.ContainsKey(ratioToPutOnItem.category))
  231. {
  232. RandomPresetContent.m_dicMPNMapping[ratioToPutOnItem.category].m_ratioToPutOn = ratioToPutOnItem.ratioToPutOn;
  233. }
  234. }
  235. }
  236. public static int GetRandomBaseGrpId(int maidPropValue)
  237. {
  238. bool flag = false;
  239. bool flag2 = false;
  240. int num = 0;
  241. if (maidPropValue < RandomPresetContent.m_dicRandomBaseGroup[1].lowerLimit)
  242. {
  243. return RandomPresetContent.m_dicRandomBaseGroup[1].randomBaseGroupId;
  244. }
  245. int count = RandomPresetContent.m_dicRandomBaseGroup.Count;
  246. if (maidPropValue > RandomPresetContent.m_dicRandomBaseGroup[count].upperLimit)
  247. {
  248. return RandomPresetContent.m_dicRandomBaseGroup[count].randomBaseGroupId;
  249. }
  250. foreach (KeyValuePair<int, RandomPresetContent.RandomBaseGroup> keyValuePair in RandomPresetContent.m_dicRandomBaseGroup)
  251. {
  252. if (maidPropValue >= keyValuePair.Value.lowerLimit)
  253. {
  254. flag = true;
  255. }
  256. if (maidPropValue <= keyValuePair.Value.upperLimit)
  257. {
  258. flag2 = true;
  259. }
  260. if (flag && flag2)
  261. {
  262. return keyValuePair.Value.randomBaseGroupId;
  263. }
  264. if (flag2)
  265. {
  266. int num2 = Math.Abs(num - maidPropValue);
  267. int num3 = Math.Abs(keyValuePair.Value.lowerLimit - maidPropValue);
  268. return (num2 <= num3) ? (keyValuePair.Value.randomBaseGroupId - 1) : keyValuePair.Value.randomBaseGroupId;
  269. }
  270. flag = false;
  271. flag2 = false;
  272. num = keyValuePair.Value.upperLimit;
  273. }
  274. return 1;
  275. }
  276. public static string GetButtonNameByMPN(MPN mpn)
  277. {
  278. RandomPresetContent.MPNMapping mpnmapping;
  279. return (!RandomPresetContent.m_dicMPNMapping.TryGetValue(mpn, out mpnmapping)) ? null : mpnmapping.m_buttonName;
  280. }
  281. private void MakeDummyData()
  282. {
  283. SceneEdit component = GameObject.Find("__SceneEdit__").GetComponent<SceneEdit>();
  284. List<SceneEdit.SCategory> categoryList = component.CategoryList;
  285. Texture2D texIconRef = categoryList[1].m_listPartsType[0].m_listMenu[0].m_texIconRef;
  286. }
  287. public static Dictionary<int, RandomPresetContent.RandomBaseGroup> m_dicRandomBaseGroup;
  288. public static Dictionary<int, RandomPresetContent.BodyBase> m_dicBodyBase;
  289. public static Dictionary<int, RandomPresetContent.RandomMapping> m_dicRandomMapping;
  290. public static Dictionary<int, RandomPresetContent.PartMapping> m_dicExceptionPartMapping;
  291. public static Dictionary<int, RandomPresetContent.PartMapping> m_dicPriorityPartMapping;
  292. private const string RANDOMPRESET_PARAMETE_CSV_NAME = "random_preset_parameter_define.nei";
  293. private const string RANDOMPRESET_MPNMAP_CSV_NAME = "random_preset_mpn_map.nei";
  294. private const string CLASS_MARKER = "*";
  295. private const string SKIP_COLUMN_MARKER = "-";
  296. private const int OFFSET_COLUMN = 1;
  297. private const int OFFSET_ROW = 2;
  298. private const int LOWEST_NUM = 1;
  299. private RandomPresetContent.CSVData csvData;
  300. public static List<MPN> m_listUnderwearsItemGroup = new List<MPN>
  301. {
  302. MPN.panz,
  303. MPN.bra
  304. };
  305. public static List<MPN> m_listClothesItemGroupn = new List<MPN>
  306. {
  307. MPN.wear,
  308. MPN.skirt,
  309. MPN.mizugi,
  310. MPN.stkg,
  311. MPN.shoes,
  312. MPN.headset,
  313. MPN.acchat,
  314. MPN.onepiece
  315. };
  316. public static Dictionary<SceneEditInfo.EMenuCategory, string> m_dicCategoryMapping = new Dictionary<SceneEditInfo.EMenuCategory, string>
  317. {
  318. {
  319. SceneEditInfo.EMenuCategory.頭,
  320. "Head"
  321. },
  322. {
  323. SceneEditInfo.EMenuCategory.髪,
  324. "Hair"
  325. },
  326. {
  327. SceneEditInfo.EMenuCategory.服装,
  328. "Cloth"
  329. },
  330. {
  331. SceneEditInfo.EMenuCategory.身体,
  332. "Body"
  333. },
  334. {
  335. SceneEditInfo.EMenuCategory.セット,
  336. "Package"
  337. },
  338. {
  339. SceneEditInfo.EMenuCategory.アクセサリ,
  340. "Accessory"
  341. }
  342. };
  343. public static Dictionary<MPN, MPN> m_dicColorFolderMapping = new Dictionary<MPN, MPN>
  344. {
  345. {
  346. MPN.mayu,
  347. MPN.folder_mayu
  348. },
  349. {
  350. MPN.eye,
  351. MPN.folder_eye
  352. },
  353. {
  354. MPN.haircolor,
  355. MPN.hairf
  356. },
  357. {
  358. MPN.skin,
  359. MPN.folder_skin
  360. },
  361. {
  362. MPN.underhair,
  363. MPN.folder_underhair
  364. },
  365. {
  366. MPN.chikubicolor,
  367. MPN.chikubi
  368. },
  369. {
  370. MPN.eyewhite,
  371. MPN.folder_eyewhite
  372. },
  373. {
  374. MPN.matsuge_up,
  375. MPN.folder_matsuge_up
  376. },
  377. {
  378. MPN.matsuge_low,
  379. MPN.folder_matsuge_low
  380. },
  381. {
  382. MPN.futae,
  383. MPN.folder_futae
  384. }
  385. };
  386. private static Dictionary<MPN, RandomPresetContent.MPNMapping> m_dicMPNMapping_;
  387. public class CSVData
  388. {
  389. public string ClassName { get; set; }
  390. public List<string> Header { get; set; }
  391. public Dictionary<int, List<string>> Rows { get; set; }
  392. }
  393. public class RandomBaseGroupMasterTable : RandomPresetContent.MasterTableBase<RandomPresetContent.RandomBaseGroup>
  394. {
  395. public void Load()
  396. {
  397. base.Load(RandomPresetContent.dicCsvData["RandomBaseGroup"]);
  398. }
  399. }
  400. public class BodyBaseMasterTable : RandomPresetContent.MasterTableBase<RandomPresetContent.BodyBase>
  401. {
  402. public void Load()
  403. {
  404. base.Load(RandomPresetContent.dicCsvData["BodyBase"]);
  405. }
  406. }
  407. public class RandomMappingMasterTable : RandomPresetContent.MasterTableBase<RandomPresetContent.RandomMapping>
  408. {
  409. public void Load()
  410. {
  411. base.Load(RandomPresetContent.dicCsvData["RandomMapping"]);
  412. }
  413. }
  414. public class ExceptionPartMappingMasterTable : RandomPresetContent.MasterTableBase<RandomPresetContent.PartMapping>
  415. {
  416. public void Load()
  417. {
  418. base.Load(RandomPresetContent.dicCsvData["ExceptionPartMapping"]);
  419. }
  420. }
  421. public class PriorityPartMappingMasterTable : RandomPresetContent.MasterTableBase<RandomPresetContent.PartMapping>
  422. {
  423. public void Load()
  424. {
  425. base.Load(RandomPresetContent.dicCsvData["PriorityPartMapping"]);
  426. }
  427. }
  428. public class ExecutionOrderMasterTable : RandomPresetContent.MasterTableBase<RandomPresetContent.ExecutionOrder>
  429. {
  430. public void Load()
  431. {
  432. base.Load(RandomPresetContent.dicCsvData["ExecutionOrder"]);
  433. }
  434. }
  435. public class RatioToPutOnItemMasterTable : RandomPresetContent.MasterTableBase<RandomPresetContent.RatioToPutOnItem>
  436. {
  437. public void Load()
  438. {
  439. base.Load(RandomPresetContent.dicCsvData["RatioToPutOnItem"]);
  440. }
  441. }
  442. public class MasterTableBase<T> where T : RandomPresetContent.MasterBase, new()
  443. {
  444. public List<T> All
  445. {
  446. get
  447. {
  448. return this.masters;
  449. }
  450. }
  451. public void Load(RandomPresetContent.CSVData csvData)
  452. {
  453. List<string> header = csvData.Header;
  454. this.masters = new List<T>();
  455. foreach (int key in csvData.Rows.Keys)
  456. {
  457. this.ParseLine(csvData.Rows[key], header);
  458. }
  459. }
  460. private void ParseLine(List<string> row, List<string> headerElements)
  461. {
  462. Dictionary<string, string> dictionary = new Dictionary<string, string>();
  463. for (int i = 0; i < headerElements.Count; i++)
  464. {
  465. dictionary.Add(headerElements[i], row[i]);
  466. }
  467. T item = Activator.CreateInstance<T>();
  468. item.Load(dictionary);
  469. this.masters.Add(item);
  470. }
  471. protected List<T> masters;
  472. }
  473. public class MasterBase
  474. {
  475. public void Load(Dictionary<string, string> param)
  476. {
  477. foreach (string key in param.Keys)
  478. {
  479. this.SetField(key, param[key]);
  480. }
  481. }
  482. private void SetField(string key, string value)
  483. {
  484. PropertyInfo property = base.GetType().GetProperty(key, BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
  485. if (property.PropertyType == typeof(int))
  486. {
  487. property.SetValue(this, int.Parse(value), null);
  488. }
  489. else if (property.PropertyType == typeof(string))
  490. {
  491. property.SetValue(this, value, null);
  492. }
  493. else if (property.PropertyType == typeof(float))
  494. {
  495. property.SetValue(this, float.Parse(value), null);
  496. }
  497. else if (property.PropertyType == typeof(MPN))
  498. {
  499. property.SetValue(this, (MPN)Enum.Parse(typeof(MPN), value), null);
  500. }
  501. }
  502. }
  503. public class SliderCommon : RandomPresetContent.MasterBase
  504. {
  505. public int lowerLimit { get; set; }
  506. public int upperLimit { get; set; }
  507. }
  508. public class RandomBaseGroup : RandomPresetContent.SliderCommon
  509. {
  510. public int randomBaseGroupId { get; set; }
  511. public override string ToString()
  512. {
  513. return string.Format("RandomBaseGroup [randomBaseGrpId={0}, lowerLimit={1}, upperLimit={2}]", this.randomBaseGroupId, base.lowerLimit, base.upperLimit);
  514. }
  515. }
  516. public class BodyBase : RandomPresetContent.SliderCommon
  517. {
  518. public int bodyBaseId { get; set; }
  519. public MPN bodyBaseCategory { get; set; }
  520. public override string ToString()
  521. {
  522. return string.Format("BodyBase [bodyBaseId={0}, bodyBaseCategory={1}, lowerLimit={2}, upperLimit={3}]", new object[]
  523. {
  524. this.bodyBaseId,
  525. this.bodyBaseCategory,
  526. base.lowerLimit,
  527. base.upperLimit
  528. });
  529. }
  530. }
  531. public class RandomMapping : RandomPresetContent.MasterBase
  532. {
  533. public int randomMappingId { get; set; }
  534. public int randomBaseGroupId { get; set; }
  535. public RandomPresetContent.RandomBaseGroup randomBaseGroup { get; set; }
  536. public int bodyBaseId { get; set; }
  537. public RandomPresetContent.BodyBase bodyBase { get; set; }
  538. public override string ToString()
  539. {
  540. return string.Format("RandomMapping [randomMappingId={0}, randomBaseGroupId={1}, randomBaseGroup={2}, bodyBaseId={3}, bodyBase={4}]", new object[]
  541. {
  542. this.randomMappingId,
  543. this.randomBaseGroupId,
  544. this.randomBaseGroup,
  545. this.bodyBaseId,
  546. this.bodyBase
  547. });
  548. }
  549. }
  550. public class PartMapping : RandomPresetContent.MasterBase
  551. {
  552. public int partMappingId { get; set; }
  553. public MPN category { get; set; }
  554. public string partId { get; set; }
  555. public MPN targetCategory { get; set; }
  556. public string targetPartId { get; set; }
  557. }
  558. public class ExecutionOrder : RandomPresetContent.MasterBase
  559. {
  560. public int executionOrderId { get; set; }
  561. public MPN category { get; set; }
  562. public int order { get; set; }
  563. }
  564. public class RatioToPutOnItem : RandomPresetContent.MasterBase
  565. {
  566. public int ratioToPutOnItemId { get; set; }
  567. public MPN category { get; set; }
  568. public int ratioToPutOn { get; set; }
  569. }
  570. public class MPNMapping
  571. {
  572. public string m_buttonName;
  573. public string m_buttonTitle;
  574. public int m_executionOrder;
  575. public int m_ratioToPutOn;
  576. }
  577. }