using System; using System.Collections.Generic; using UnityEngine; using wf; public class ScreenTrophyMain : WfScreenChildren { public override void Awake() { base.Awake(); EventDelegate.Add(UTY.GetChildObject(base.root_obj, "MainItems/OK", false).GetComponent().onClick, new EventDelegate.Callback(this.OnClickOK)); this.storage_object_ = UTY.GetChildObject(base.root_obj, "StorageObject", false); this.panel_dic_.Add("メインカテゴリー", new ScreenTrophyMain.PanesSet()); this.panel_dic_["メインカテゴリー"].grid = UTY.GetChildObject(base.root_obj, "MainItems/MainCategoryViewer/Content/CategoryUnitParent", false).GetComponent(); this.panel_dic_["メインカテゴリー"].scroll_view = UTY.GetChildObject(base.root_obj, "MainItems/MainCategoryViewer/Content", false).GetComponent(); this.panel_dic_["メインカテゴリー"].tab_panel_ = UTY.GetChildObject(base.root_obj, "MainItems/MainCategoryViewer/Content/CategoryUnitParent", false).GetComponent(); this.panel_dic_.Add("トロフィーリスト", new ScreenTrophyMain.PanesSet()); this.panel_dic_["トロフィーリスト"].grid = UTY.GetChildObject(base.root_obj, "MainItems/TrophyList/Content/Parent", false).GetComponent(); this.panel_dic_["トロフィーリスト"].grid.sorting = UIGrid.Sorting.Vertical; this.panel_dic_["トロフィーリスト"].scroll_view = UTY.GetChildObject(base.root_obj, "MainItems/TrophyList/Content", false).GetComponent(); GameObject gameObject = this.panel_dic_["メインカテゴリー"].grid.gameObject; Func func = delegate(GameObject parent, string name) { GameObject gameObject2 = Utility.CreatePrefab(parent, "SceneShop/Prefab/CategoryButton", true); gameObject2.name = name; UTY.GetChildObject(gameObject2, "Label", false).GetComponent().text = gameObject2.name; return UTY.GetChildObject(gameObject2, "Button", false).GetComponent(); }; List allDatas = Trophy.GetAllDatas(true); SortedDictionary sortedDictionary = new SortedDictionary(); foreach (Trophy.Data data in allDatas) { int type = (int)data.type; if (!sortedDictionary.ContainsKey(type)) { sortedDictionary.Add(type, data.typeDrawText); } } foreach (KeyValuePair keyValuePair in sortedDictionary) { UIButton uibutton = func(gameObject, keyValuePair.Value); uibutton.name = ((Trophy.Data.Type)keyValuePair.Key).ToString(); EventDelegate.Add(uibutton.onClick, new EventDelegate.Callback(this.OnClickCategory)); } Utility.ResetNGUI(this.panel_dic_["メインカテゴリー"].grid); Utility.ResetNGUI(this.panel_dic_["メインカテゴリー"].scroll_view); } protected override void OnCall() { this.wait_count_ = 0; GameMain.Instance.MainLight.Reset(); GameMain.Instance.CharacterMgr.ResetCharaPosAll(); GameMain.Instance.MainCamera.Reset(CameraMain.CameraType.Target, true); int num = 0; int[] array = new int[3]; int[] array2 = new int[3]; List allDatas = Trophy.GetAllDatas(true); foreach (Trophy.Data data in allDatas) { GameObject gameObject; if (data.widthType) { gameObject = Utility.CreatePrefab(this.storage_object_, "SceneTrophy/Prefab/TrophyInfoWidth", true); } else { gameObject = Utility.CreatePrefab(this.storage_object_, "SceneTrophy/Prefab/TrophyInfo", true); } gameObject.name = data.name; TrophyInfo component = gameObject.GetComponent(); component.SetData(data); component.onClickCardButton = new Action(this.OnClickCardButton); this.trophy_infos_.Add(component); array[(int)component.trophy_data.type]++; if (component.have_visible) { array2[(int)component.trophy_data.type]++; num += data.maidPoint; } } this.totalMaidPointLabel.text = num.ToString(); this.heroineTrophyNumLabel.text = array2[0].ToString() + "/" + array[0].ToString(); this.systemTrophyNumLabel.text = array2[1].ToString() + "/" + array[1].ToString(); this.extraTrophyNumLabel.text = array2[2].ToString() + "/" + array[2].ToString(); if (array[2] == 0) { this.extraTrophyNumLabel.transform.parent.gameObject.SetActive(false); Vector3 localPosition = this.totalMaidPointLabel.transform.parent.localPosition; this.totalMaidPointLabel.transform.parent.localPosition = new Vector3(localPosition.x, localPosition.y + 38f, localPosition.z); UIWidget component2 = this.totalMaidPointLabel.transform.parent.parent.GetComponent(); component2.height -= 38; } UIWFTabButton componentInChildren = this.panel_dic_["メインカテゴリー"].grid.transform.GetChild(0).GetComponentInChildren(); this.panel_dic_["メインカテゴリー"].tab_panel_.Select(componentInChildren); uGUITutorialPanel.OpenTutorial("SceneTrophy", null, false); } protected override bool IsCallFadeIn() { this.wait_count_++; return 2 < this.wait_count_; } private void OnClickCategory() { string name = UIButton.current.name; Trophy.Data.Type type = (Trophy.Data.Type)Enum.Parse(typeof(Trophy.Data.Type), name); foreach (TrophyInfo trophyInfo in this.trophy_infos_) { trophyInfo.transform.SetParent(this.storage_object_.transform, false); } UIGrid grid = this.panel_dic_["トロフィーリスト"].grid; grid.transform.DetachChildren(); Utility.ResetNGUI(grid); foreach (TrophyInfo trophyInfo2 in this.trophy_infos_) { if (trophyInfo2.trophy_data.type == type) { trophyInfo2.transform.SetParent(grid.transform, false); trophyInfo2.transform.localPosition = new Vector3(0f, (float)(trophyInfo2.trophy_data.id * -1), 0f); } } Utility.ResetNGUI(grid); Utility.ResetNGUI(this.panel_dic_["トロフィーリスト"].scroll_view); } public void OnClickCardButton(Trophy.Data tropheyData, Vector3 cardWorldPos) { this.fadeObject.CallCard(tropheyData, cardWorldPos); } protected override void OnFinish() { base.parent_mgr.CallScreen("Move"); } public void OnClickOK() { this.Finish(); } [SerializeField] private UILabel heroineTrophyNumLabel; [SerializeField] private UILabel systemTrophyNumLabel; [SerializeField] private UILabel extraTrophyNumLabel; [SerializeField] private UILabel totalMaidPointLabel; [SerializeField] private SceneTrophyCardFade fadeObject; private GameObject storage_object_; private Dictionary panel_dic_ = new Dictionary(); private List trophy_infos_ = new List(); private int wait_count_; private class PanesSet { public UIGrid grid; public UIScrollView scroll_view; public UIWFTabPanel tab_panel_; } }