123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315 |
- using System;
- using System.Collections.Generic;
- using UnityEngine;
- public class PhotUndressingManager : MonoBehaviour
- {
- public void Awake()
- {
- if (0 < this.unit_slot_dic_.Count)
- {
- return;
- }
- using (AFileBase afileBase = GameUty.FileSystem.FileOpen("phot_undressing_list.nei"))
- {
- using (CsvParser csvParser = new CsvParser())
- {
- bool condition = csvParser.Open(afileBase);
- NDebug.Assert(condition, "file open error[phot_undressing_list.nei]");
- for (int i = 1; i < csvParser.max_cell_y; i++)
- {
- if (csvParser.IsCellToExistData(0, i))
- {
- int num = 0;
- string cellAsString = csvParser.GetCellAsString(num++, i);
- string cellAsString2 = csvParser.GetCellAsString(num++, i);
- if (!string.IsNullOrEmpty(cellAsString2))
- {
- string[] array = cellAsString2.Split(new char[]
- {
- ','
- });
- for (int j = 0; j < array.Length; j++)
- {
- TBody.SlotID item = TBody.SlotID.wear;
- try
- {
- item = (TBody.SlotID)Enum.Parse(typeof(TBody.SlotID), array[j]);
- }
- catch
- {
- NDebug.Assert("TBody.SlotID enum parse error.\n" + array[j], false);
- }
- if (!this.unit_slot_dic_.ContainsKey(cellAsString))
- {
- this.unit_slot_dic_.Add(cellAsString, new List<TBody.SlotID>());
- }
- this.unit_slot_dic_[cellAsString].Add(item);
- }
- }
- }
- }
- }
- }
- }
- public void SetUnitButtonList(Dictionary<string, UIButton> unit_dic)
- {
- this.Awake();
- foreach (KeyValuePair<string, UIButton> keyValuePair in unit_dic)
- {
- PhotUndressingManager.UndressingData undressingData = new PhotUndressingManager.UndressingData();
- undressingData.unit_type = keyValuePair.Key;
- undressingData.button_object = keyValuePair.Value;
- undressingData.button_default_color = undressingData.button_object.defaultColor;
- if (this.unit_slot_dic_.ContainsKey(undressingData.unit_type))
- {
- undressingData.target_sloat_id_list = this.unit_slot_dic_[undressingData.unit_type];
- }
- EventDelegate eventDelegate = new EventDelegate(this, "OnClickButton");
- eventDelegate.parameters[0].value = undressingData;
- undressingData.button_object.onClick.Add(eventDelegate);
- this.unit_dic_.Add(undressingData.unit_type, undressingData);
- }
- }
- public void SetMaid(Maid maid)
- {
- this.maid_ = maid;
- foreach (KeyValuePair<string, PhotUndressingManager.UndressingData> keyValuePair in this.unit_dic_)
- {
- PhotUndressingManager.UndressingData value = keyValuePair.Value;
- value.UpdateMaskStatus(maid);
- }
- int num = 1;
- if (this.maid_linked_array_ != null)
- {
- num += this.maid_linked_array_.Length;
- }
- this.all_maid_data_ = new Maid[num];
- this.all_maid_data_[0] = this.maid_;
- if (this.maid_linked_array_ != null)
- {
- for (int i = 0; i < this.maid_linked_array_.Length; i++)
- {
- this.all_maid_data_[i + 1] = this.maid_linked_array_[i];
- }
- }
- }
- public void SetMaskMode(string unit_type, PhotUndressingManager.MaskStatus status)
- {
- if (!this.unit_dic_.ContainsKey(unit_type))
- {
- return;
- }
- PhotUndressingManager.UndressingData undressingData = this.unit_dic_[unit_type];
- if (undressingData.unit_type != "全脱衣")
- {
- this.unit_dic_["全脱衣"].mask_mode = PhotUndressingManager.MaskStatus.Off;
- }
- if (undressingData.unit_type != "全着衣")
- {
- this.unit_dic_["全着衣"].mask_mode = PhotUndressingManager.MaskStatus.Off;
- }
- undressingData.mask_mode = status;
- this.ApplyAllMaid();
- }
- private void OnClickButton(PhotUndressingManager.UndressingData unit_data)
- {
- PhotUndressingManager.MaskStatus status = (unit_data.mask_mode != PhotUndressingManager.MaskStatus.On) ? PhotUndressingManager.MaskStatus.On : PhotUndressingManager.MaskStatus.Off;
- this.SetMaskMode(unit_data.unit_type, status);
- if (this.onClickEvent != null)
- {
- this.onClickEvent();
- }
- }
- private void ApplyAllMaid()
- {
- if (this.unit_dic_["全脱衣"].mask_mode == PhotUndressingManager.MaskStatus.On)
- {
- for (int i = 0; i < this.all_maid_data_.Length; i++)
- {
- foreach (KeyValuePair<string, PhotUndressingManager.UndressingData> keyValuePair in this.unit_dic_)
- {
- if (!(keyValuePair.Key == "全脱衣") && !(keyValuePair.Key == "全着衣") && keyValuePair.Value.button_object.isEnabled)
- {
- this.SetMaskMode(keyValuePair.Key, PhotUndressingManager.MaskStatus.On);
- }
- }
- }
- return;
- }
- if (this.unit_dic_["全着衣"].mask_mode == PhotUndressingManager.MaskStatus.On)
- {
- for (int j = 0; j < this.all_maid_data_.Length; j++)
- {
- foreach (KeyValuePair<string, PhotUndressingManager.UndressingData> keyValuePair2 in this.unit_dic_)
- {
- if (!(keyValuePair2.Key == "全脱衣") && !(keyValuePair2.Key == "全着衣") && keyValuePair2.Value.button_object.isEnabled)
- {
- this.SetMaskMode(keyValuePair2.Key, PhotUndressingManager.MaskStatus.Off);
- }
- }
- }
- return;
- }
- foreach (KeyValuePair<string, PhotUndressingManager.UndressingData> keyValuePair3 in this.unit_dic_)
- {
- PhotUndressingManager.UndressingData value = keyValuePair3.Value;
- for (int k = 0; k < this.all_maid_data_.Length; k++)
- {
- value.ApplyMask(this.all_maid_data_[k]);
- }
- value.UpdateMaskStatus(this.maid_);
- }
- }
- public HashSet<TBody.SlotID> GetTargetSlotID()
- {
- HashSet<TBody.SlotID> hashSet = new HashSet<TBody.SlotID>();
- foreach (KeyValuePair<string, List<TBody.SlotID>> keyValuePair in this.unit_slot_dic_)
- {
- List<TBody.SlotID> value = keyValuePair.Value;
- for (int i = 0; i < value.Count; i++)
- {
- if (!hashSet.Contains(value[i]))
- {
- hashSet.Add(value[i]);
- }
- }
- }
- return hashSet;
- }
- public Action onClickEvent;
- private Dictionary<string, PhotUndressingManager.UndressingData> unit_dic_ = new Dictionary<string, PhotUndressingManager.UndressingData>();
- private Dictionary<string, List<TBody.SlotID>> unit_slot_dic_ = new Dictionary<string, List<TBody.SlotID>>();
- private Maid maid_;
- private Maid[] maid_linked_array_;
- private Maid[] all_maid_data_;
- public enum MaskStatus
- {
- On,
- Off
- }
- private class UndressingData
- {
- public PhotUndressingManager.MaskStatus mask_mode
- {
- get
- {
- return this.button_mask_status_;
- }
- set
- {
- if (this.button_mask_status_ == value)
- {
- return;
- }
- this.button_mask_status_ = value;
- if (this.unit_type == "全着衣" || this.unit_type == "全脱衣")
- {
- return;
- }
- if (this.button_mask_status_ == PhotUndressingManager.MaskStatus.Off)
- {
- this.button_object.defaultColor = this.button_default_color;
- this.button_object.hover = this.button_object.defaultColor;
- }
- else
- {
- Color defaultColor = this.button_default_color;
- defaultColor.a = 0.5f;
- this.button_object.defaultColor = defaultColor;
- this.button_object.hover = this.button_object.defaultColor;
- }
- }
- }
- public void UpdateMaskStatus(Maid maid)
- {
- if (maid == null || maid.body0 == null)
- {
- this.button_object.isEnabled = false;
- return;
- }
- if (this.unit_type == "全着衣" || this.unit_type == "全脱衣")
- {
- this.button_object.isEnabled = true;
- return;
- }
- bool flag = false;
- for (int i = 0; i < this.target_sloat_id_list.Count; i++)
- {
- if (maid.body0.GetSlotLoaded(this.target_sloat_id_list[i]))
- {
- flag = true;
- break;
- }
- }
- if (!flag)
- {
- this.button_object.isEnabled = false;
- return;
- }
- this.button_object.isEnabled = true;
- bool flag2 = true;
- for (int j = 0; j < this.target_sloat_id_list.Count; j++)
- {
- if (maid.body0.GetMask(this.target_sloat_id_list[j]))
- {
- flag2 = false;
- break;
- }
- }
- this.mask_mode = ((!flag2) ? PhotUndressingManager.MaskStatus.Off : PhotUndressingManager.MaskStatus.On);
- }
- public void ApplyMask(Maid[] maid_array)
- {
- if (maid_array == null)
- {
- return;
- }
- for (int i = 0; i < maid_array.Length; i++)
- {
- this.ApplyMask(maid_array[i]);
- }
- }
- public void ApplyMask(Maid maid)
- {
- if (maid == null || maid.body0 == null || !this.button_object.isEnabled || this.unit_type == "全着衣" || this.unit_type == "全脱衣")
- {
- return;
- }
- bool flag = this.mask_mode == PhotUndressingManager.MaskStatus.On;
- for (int i = 0; i < this.target_sloat_id_list.Count; i++)
- {
- maid.body0.SetMask(this.target_sloat_id_list[i], !flag);
- }
- }
- public string unit_type;
- public List<TBody.SlotID> target_sloat_id_list = new List<TBody.SlotID>();
- public string call_scenario = string.Empty;
- public Color button_default_color;
- public UIButton button_object;
- private PhotUndressingManager.MaskStatus button_mask_status_ = PhotUndressingManager.MaskStatus.Off;
- }
- }
|