123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- using System;
- using System.Collections.Generic;
- using MaidStatus;
- using PlayerStatus;
- using Schedule;
- using wf;
- public class FreeModeItemVip : AbstractFreeModeItem
- {
- private FreeModeItemVip(int item_id, MaidStatus.Status maidStatus)
- {
- this.item_id_ = item_id;
- this.vip_data_ = FreeModeItemVip.vip_data_dic_[this.item_id_];
- this.file_name_ = FreeModeItemVip.vip_data_filename_dic_[this.item_id_];
- if (FreeModeItemVip.vip_subherioin_dic_.ContainsKey(item_id))
- {
- this.subheroin_id_ = FreeModeItemVip.vip_subherioin_dic_[this.item_id_];
- }
- ReadOnlyDictionary<int, NightWorkState> night_works_state_dic = GameMain.Instance.CharacterMgr.status.night_works_state_dic;
- this.is_enabled_ = false;
- if (night_works_state_dic.ContainsKey(this.vip_data_.id) && night_works_state_dic[this.vip_data_.id].finish)
- {
- this.is_enabled_ = true;
- }
- }
- public static List<FreeModeItemVip> CreateItemVipList(MaidStatus.Status maidStatus)
- {
- FreeModeItemVip.CreateCsvData();
- List<FreeModeItemVip> list = new List<FreeModeItemVip>();
- foreach (KeyValuePair<int, ScheduleCSVData.Yotogi> keyValuePair in FreeModeItemVip.vip_data_dic_)
- {
- if (!DailyMgr.IsLegacy || !ScheduleCSVData.WorkLegacyDisableId.Contains(keyValuePair.Value.id))
- {
- list.Add(new FreeModeItemVip(keyValuePair.Key, maidStatus));
- }
- }
- return list;
- }
- public override int item_id
- {
- get
- {
- return this.item_id_;
- }
- }
- public override string title
- {
- get
- {
- return this.vip_data_.name;
- }
- }
- public override string titleTerm
- {
- get
- {
- return "SceneDaily/スケジュール/項目/" + this.vip_data_.name.Replace("×", "_");
- }
- }
- public override string text
- {
- get
- {
- return this.vip_data_.information;
- }
- }
- public override string textTerm
- {
- get
- {
- return "SceneDaily/スケジュール/条件文/" + this.vip_data_.name.Replace("×", "_");
- }
- }
- public override string[] condition_texts
- {
- get
- {
- return this.vip_data_.condInfo.ToArray();
- }
- }
- public override string[] condition_text_terms
- {
- get
- {
- List<string> list = new List<string>();
- foreach (string text in this.vip_data_.condInfo)
- {
- list.Add("SceneDaily/スケジュール/条件文/" + text.Replace("×", "_"));
- }
- return list.ToArray();
- }
- }
- public override bool is_enabled
- {
- get
- {
- return this.is_enabled_;
- }
- }
- public override string play_file_name
- {
- get
- {
- return this.file_name_;
- }
- }
- public override AbstractFreeModeItem.ItemType type
- {
- get
- {
- return AbstractFreeModeItem.ItemType.Vip;
- }
- }
- public ScheduleCSVData.Yotogi vip_data
- {
- get
- {
- return this.vip_data_;
- }
- }
- private static void CreateCsvData()
- {
- if (FreeModeItemVip.vip_data_dic_ != null)
- {
- return;
- }
- FreeModeItemVip.vip_data_dic_ = new SortedDictionary<int, ScheduleCSVData.Yotogi>();
- FreeModeItemVip.personal_enabled_dic_ = new Dictionary<Personal.Data, HashSet<int>>();
- FreeModeItemVip.vip_data_filename_dic_ = new SortedDictionary<int, string>();
- FreeModeItemVip.vip_subherioin_dic_ = new SortedDictionary<int, int>();
- foreach (Personal.Data key in Personal.GetAllDatas(false))
- {
- FreeModeItemVip.personal_enabled_dic_.Add(key, new HashSet<int>());
- }
- FreeModeItemVip.CreateCsvData(AbstractFreeModeItem.GameMode.COM3D);
- if (GameUty.IsEnabledCompatibilityMode)
- {
- FreeModeItemVip.CreateCsvData(AbstractFreeModeItem.GameMode.CM3D2);
- }
- }
- private static void CreateCsvData(AbstractFreeModeItem.GameMode gameMode)
- {
- AFileBase afileBase = null;
- if (gameMode == AbstractFreeModeItem.GameMode.CM3D2)
- {
- afileBase = GameUty.FileSystemOld.FileOpen("recollection_vip2.nei");
- NDebug.Assert(GameUty.FileSystemOld.IsExistentFile("recollection_vip2.nei"), "recollection_vip2.nei\nopen failed.");
- }
- else if (gameMode == AbstractFreeModeItem.GameMode.COM3D)
- {
- afileBase = GameUty.FileSystem.FileOpen("recollection_vip2.nei");
- NDebug.Assert(GameUty.FileSystem.IsExistentFile("recollection_vip2.nei"), "recollection_vip2.nei\nopen failed.");
- }
- using (afileBase)
- {
- using (CsvParser csvParser = new CsvParser())
- {
- bool condition = csvParser.Open(afileBase);
- NDebug.Assert(condition, "recollection_vip2.nei\nopen failed.");
- for (int i = 1; i < csvParser.max_cell_y; i++)
- {
- if (csvParser.IsCellToExistData(0, i))
- {
- int cellAsInteger = csvParser.GetCellAsInteger(0, i);
- int cellAsInteger2 = csvParser.GetCellAsInteger(1, i);
- if (ScheduleCSVData.AllData.ContainsKey(cellAsInteger2))
- {
- NDebug.Assert(ScheduleCSVData.AllData.ContainsKey(cellAsInteger2), "夜仕事VIPの[" + cellAsInteger2 + "]を見つけられませんでした");
- NDebug.Assert(!FreeModeItemVip.vip_data_dic_.ContainsKey(cellAsInteger), "ユニークIDの[" + cellAsInteger + "]が重複しています");
- ScheduleCSVData.ScheduleBase scheduleBase = ScheduleCSVData.AllData[cellAsInteger2];
- if (scheduleBase.type == ScheduleTaskCtrl.TaskType.Yotogi)
- {
- FreeModeItemVip.vip_data_dic_.Add(cellAsInteger, (ScheduleCSVData.Yotogi)scheduleBase);
- FreeModeItemVip.vip_data_filename_dic_.Add(cellAsInteger, csvParser.GetCellAsString(2, i));
- }
- }
- }
- }
- }
- }
- }
- private static SortedDictionary<int, ScheduleCSVData.Yotogi> vip_data_dic_;
- private static SortedDictionary<int, string> vip_data_filename_dic_;
- private static SortedDictionary<int, int> vip_subherioin_dic_;
- private bool is_enabled_;
- private int item_id_;
- private string file_name_;
- private int subheroin_id_;
- private ScheduleCSVData.Yotogi vip_data_;
- private static Dictionary<Personal.Data, HashSet<int>> personal_enabled_dic_;
- }
|