using System; using System.Collections.Generic; using UnityEngine; using Yotogis; public class YotogiSkillSelectSpecialCondition : MonoBehaviour { public Skill.Data.SpecialConditionType[] checkBoxTypes { get { List list = new List(); foreach (YotogiSkillSelectSpecialCondition.CheckBoxButtonData checkBoxButtonData in this.checkBoxButtonDatas) { list.Add(checkBoxButtonData.type); } return list.ToArray(); } } public Skill.Data.SpecialConditionType selectedType { get { return this.selectedType_; } set { YotogiSkillSelectSpecialCondition.CheckBoxButtonData checkBoxButtonData = null; foreach (YotogiSkillSelectSpecialCondition.CheckBoxButtonData checkBoxButtonData2 in this.checkBoxButtonDatas) { if (checkBoxButtonData2.type == value) { checkBoxButtonData = checkBoxButtonData2; break; } } for (int j = 0; j < this.checkBoxButtonDatas.Length; j++) { YotogiSkillSelectSpecialCondition.CheckBoxButtonData checkBoxButtonData3 = this.checkBoxButtonDatas[j]; if (checkBoxButtonData3.checkBox.enabled) { bool flag = checkBoxButtonData3 == checkBoxButtonData; if (flag) { this.selectedType_ = checkBoxButtonData3.type; } checkBoxButtonData3.checkBox.check = (checkBoxButtonData3 == checkBoxButtonData); checkBoxButtonData3.checkBox.Button.GetComponent().enabled = !checkBoxButtonData3.checkBox.check; } } if (this.onChangeSelectedTypeEvent != null) { this.onChangeSelectedTypeEvent(this.selectedType_); } } } public void Awake() { foreach (YotogiSkillSelectSpecialCondition.CheckBoxButtonData checkBoxButtonData in this.checkBoxButtonDatas) { checkBoxButtonData.type = (Skill.Data.SpecialConditionType)Enum.Parse(typeof(Skill.Data.SpecialConditionType), checkBoxButtonData.specialConditionName); checkBoxButtonData.checkBox.check = false; checkBoxButtonData.checkBox.Button.GetComponent().enabled = !checkBoxButtonData.checkBox.check; checkBoxButtonData.checkBox.onClick.Add(new Action(this.OnClickCheckBox)); } this.SetTypeCheckBoxEnabled(Skill.Data.SpecialConditionType.Mask, false); } public void SetTypeCheckBoxEnabled(Skill.Data.SpecialConditionType type, bool enabled) { if (type != Skill.Data.SpecialConditionType.Null) { foreach (YotogiSkillSelectSpecialCondition.CheckBoxButtonData checkBoxButtonData in this.checkBoxButtonDatas) { if (checkBoxButtonData.type == type) { WFCheckBox checkBox = checkBoxButtonData.checkBox; if (!enabled) { checkBox.check = false; checkBoxButtonData.checkBox.Button.GetComponent().enabled = false; UTY.GetChildObject(checkBox.CheckMarkOffObject, "Button", false).GetComponent().color = new Color(0.5f, 0.5f, 0.5f, 0.68f); } else { checkBox.enabled = true; checkBoxButtonData.checkBox.Button.GetComponent().enabled = true; UTY.GetChildObject(checkBox.CheckMarkOffObject, "Button", false).GetComponent().color = new Color(1f, 1f, 1f, 0.68f); } break; } } } } private void OnClickCheckBox(WFCheckBox clickCheckBox) { if (clickCheckBox.check) { foreach (YotogiSkillSelectSpecialCondition.CheckBoxButtonData checkBoxButtonData in this.checkBoxButtonDatas) { checkBoxButtonData.checkBox.check = (checkBoxButtonData.checkBox == clickCheckBox); if (UTY.GetChildObject(checkBoxButtonData.checkBox.CheckMarkOffObject, "Button", false).GetComponent().color.r == 1f) { checkBoxButtonData.checkBox.Button.GetComponent().enabled = !checkBoxButtonData.checkBox.check; } } } int j; for (j = 0; j < this.checkBoxButtonDatas.Length; j++) { if (this.checkBoxButtonDatas[j].checkBox.check) { break; } } if (j + 1 > this.checkBoxButtonDatas.Length) { this.selectedType_ = Skill.Data.SpecialConditionType.Null; } else { this.selectedType_ = this.checkBoxButtonDatas[j].type; } if (this.onChangeSelectedTypeEvent != null) { this.onChangeSelectedTypeEvent(this.selectedType_); } } [SerializeField] private YotogiSkillSelectSpecialCondition.CheckBoxButtonData[] checkBoxButtonDatas; public Action onChangeSelectedTypeEvent; private Skill.Data.SpecialConditionType selectedType_; [Serializable] private class CheckBoxButtonData { [SerializeField] public WFCheckBox checkBox; [SerializeField] public string specialConditionName; [NonSerialized] public Skill.Data.SpecialConditionType type; } }