Exemplo n.º 1
0
        protected override void LazyInitialize()
        {
            MainCanvas = UnityEngine.Object.Instantiate(Resources.Load("Prefabs/CardExplorer") as GameObject).GetComponent <Canvas>();
            TryGetControl(out detailCanvas, "detailCanvas");
            TryGetControl(out monsterCanvas, "monsterCanvas");
            TryGetControl(out stCanvas, nameof(stCanvas));
            stCanvas.enabled      = false;
            detailCanvas.enabled  = false;
            monsterCanvas.enabled = false;

            TryGetControl(out dpdSortType, "DpdSortType");
            List <ExtendedOptionData> sortOptions = new List <ExtendedOptionData>
            {
                new ExtendedOptionData(SysString(1370), 0),
                new ExtendedOptionData(SysString(1371), 1),
                new ExtendedOptionData(SysString(1372), 2),
                new ExtendedOptionData(SysString(1373), 3),
            };

            cardComparisons = new List <Comparison <CardData> >
            {
                CardData.CompareByStars,
                CardData.CompareByAttack,
                CardData.CompareByDefense,
                CardData.CompareByName,
            };
            dpdSortType.options.AddRange(sortOptions);
            dpdSortType.onValueChanged.AddListener(OnSortTypeChanged);

            tglDetail = GetControl <Toggle>("TglDetail");
            tglDetail.onValueChanged.AddListener(OnDetailed);
            tglDetail.SetToggleName(TzlString(11));

            iptKeyword = GetControl <TMP_InputField>("IptKeyword");
            iptKeyword.onValueChanged.AddListener(OnSearchEvent);
            iptKeyword.onSubmit.AddListener(OnSearchEvent);
            txtResultCount = GetControl <TextMeshProUGUI>("TxtResultCount");

            var scroll = GetControl <RectTransform>("ScrollBody");

            Tools.BindEvent(scroll.gameObject, EventTriggerType.BeginDrag, OnBeginDrag);
            Tools.BindEvent(scroll.gameObject, EventTriggerType.EndDrag, OnEndDrag);
            Tools.BindEvent(scroll.gameObject, EventTriggerType.Scroll, OnScroll);
            TryGetControl(out currentPage, "PnlCurrent");
            center = currentPage.MainRect.anchoredPosition3D;
            TryGetControl(out nextPage, "PnlNext");
            right = nextPage.MainRect.anchoredPosition3D;
            TryGetControl(out previousPage, "PnlPrevious");
            left             = previousPage.MainRect.anchoredPosition3D;
            itemCountPerPage = 6;
            currentPage.Initialize(itemCountPerPage, 0);
            nextPage.Initialize(itemCountPerPage, 1);
            previousPage.Initialize(itemCountPerPage, 2);
            searchTarget = new CardData();
            //detail
            tglEffect = GetControl <Toggle>("tglEffect");
            tglEffect.onValueChanged.AddListener(OnEffect);
            tglEffect.SetToggleName(SysString(1326));
            TryGetControl(out effectCanvas, nameof(effectCanvas));
            effectCanvas.enabled = false;
            effectTgls           = new List <Toggle>(32);
            var pnleffects = GetControl <RectTransform>("pnleffects");

            for (uint i = 0; i < 32; ++i)
            {
                Toggle toggle = pnleffects.GetChild((int)i).GetComponent <Toggle>();
                toggle.SetToggleName(SysString(1100 + i));
                toggle.isOn = false;
                toggle.onValueChanged.AddListener(OnSearchEvent);
                effectTgls.Add(toggle);
            }

            var reset = GetControl <Button>("BtnReset");

            reset.SetButtonName(SysString(1309));
            reset.onClick.AddListener(OnReset);
            TryGetControl(out dpdFilters, "DpdFilters");
            dpdFilters.options.Add(new Dropdown.OptionData(TzlString(14)));
            for (uint i = 1316; i <= 1318; ++i) //flist
            {
                dpdFilters.options.Add(new Dropdown.OptionData(SysString(i)));
            }
            for (uint i = 1240; i <= 1243; ++i)//ocg&tcg
            {
                dpdFilters.options.Add(new Dropdown.OptionData(SysString(i)));
            }
            dpdFilters.onValueChanged.AddListener(OnSearchEvent);
            //monster
            tglMonster = GetControl <Toggle>("TglMonster");
            tglMonster.SetToggleName(SysString(1312));
            tglMonster.onValueChanged.AddListener(OnMonster);

            TryGetControl(out dpdMTypes, "DpdMType");
            dpdMTypes.options.Add(new ExtendedOptionData(TzlString(12), 0));
            int allMonsterType = (int)CardType.Normal + (int)CardType.Flip + (int)CardType.Toon
                                 + (int)CardType.Effect + (int)CardType.Fusion + (int)CardType.Ritual
                                 + (int)CardType.Spirit + (int)CardType.Union + (int)CardType.Dual
                                 + (int)CardType.Tuner + (int)CardType.Synchro + (int)CardType.Xyz
                                 + (int)CardType.Pendulum + (int)CardType.SpecialSummon + (int)CardType.Link;

            for (uint i = 1050, filter = 1; filter != 0x8000000; filter <<= 1, ++i)
            {
                if ((filter & allMonsterType) > 0)
                {
                    dpdMTypes.options.Add(new ExtendedOptionData(SysString(i), filter));
                }
            }
            uint val = (int)CardType.Synchro + (int)CardType.Tuner;

            dpdMTypes.options.Add(new ExtendedOptionData(FormatType(val), val));
            val = (int)CardType.Normal + (int)CardType.Tuner;
            dpdMTypes.options.Add(new ExtendedOptionData(FormatType(val), val));
            val = (int)CardType.Normal + (int)CardType.Pendulum;
            dpdMTypes.options.Add(new ExtendedOptionData(FormatType(val), val));
            val = (int)CardType.Xyz + (int)CardType.Pendulum;
            dpdMTypes.options.Add(new ExtendedOptionData(FormatType(val), val));
            val = (int)CardType.Fusion + (int)CardType.Pendulum;
            dpdMTypes.options.Add(new ExtendedOptionData(FormatType(val), val));
            val = (int)CardType.Synchro + (int)CardType.Pendulum;
            dpdMTypes.options.Add(new ExtendedOptionData(FormatType(val), val));
            dpdMTypes.RefreshShownValue();
            dpdMTypes.onValueChanged.AddListener(OnSearchEvent);

            TryGetControl(out dpdRace, "DpdRace");
            dpdRace.options.Add(new ExtendedOptionData(TzlString(13), 0));
            for (uint i = 1020, filter = 1; filter != 0x2000000; filter <<= 1, ++i)
            {
                dpdRace.options.Add(new ExtendedOptionData(SysString(i), filter));
            }
            dpdRace.RefreshShownValue();
            dpdRace.onValueChanged.AddListener(OnSearchEvent);

            linkMarkers = new List <Toggle>(8);
            foreach (LinkMarker marker in Enum.GetValues(typeof(LinkMarker)))
            {
                var tgl = GetControl <Toggle>("tgl" + marker.ToString());
                tgl.onValueChanged.AddListener(OnSearchEvent);
                linkMarkers.Add(tgl);
            }
            attributes = new List <Toggle>(7);
            foreach (CardAttribute attr in Enum.GetValues(typeof(CardAttribute)))
            {
                var tgl = GetControl <Toggle>("tgl" + attr.ToString());
                tgl.onValueChanged.AddListener(OnSearchEvent);
                attributes.Add(tgl);
            }

            TryGetControl(out iptAttack, nameof(iptAttack));
            TryGetControl(out iptDefence, nameof(iptDefence));
            TryGetControl(out IptScale, nameof(IptScale));
            TryGetControl(out iptStars, nameof(iptStars));
            iptStars.onSubmit.AddListener(OnSearchEvent);
            iptDefence.onSubmit.AddListener(OnSearchEvent);
            IptScale.onSubmit.AddListener(OnSearchEvent);
            iptAttack.onSubmit.AddListener(OnSearchEvent);
            iptStars.placeholder.GetComponent <TextMeshProUGUI>().text   = SysString(1324);
            IptScale.placeholder.GetComponent <TextMeshProUGUI>().text   = SysString(1336);
            iptAttack.placeholder.GetComponent <TextMeshProUGUI>().text  = SysString(1322);
            iptDefence.placeholder.GetComponent <TextMeshProUGUI>().text = SysString(1323);

            TryGetControl(out tglSpellTrap, nameof(tglSpellTrap));
            tglSpellTrap.SetToggleName(SysString(1051) + SysString(1052));
            tglSpellTrap.onValueChanged.AddListener(OnSpellTrap);
            TryGetControl(out TextMeshProUGUI spell, "txtspell");
            spell.text = SysString(1051);
            TryGetControl(out TextMeshProUGUI trap, "txttrap");
            trap.text = SysString(1052);

            TryGetControl(out tglSpellNormal, nameof(tglSpellNormal));
            tglSpellNormal.SetToggleName(SysString(1054));
            tglSpellNormal.onValueChanged.AddListener(OnSearchEvent);

            TryGetControl(out tglSpellQuickPlay, nameof(tglSpellQuickPlay));
            tglSpellQuickPlay.SetToggleName(SysString(1066));
            tglSpellQuickPlay.onValueChanged.AddListener(OnSearchEvent);

            TryGetControl(out tglSpellEquip, nameof(tglSpellEquip));
            tglSpellEquip.SetToggleName(SysString(1068));
            tglSpellEquip.onValueChanged.AddListener(OnSearchEvent);

            TryGetControl(out tglSpellRitual, nameof(tglSpellRitual));
            tglSpellRitual.SetToggleName(SysString(1057));
            tglSpellRitual.onValueChanged.AddListener(OnSearchEvent);

            TryGetControl(out tglSpellField, nameof(tglSpellField));
            tglSpellField.SetToggleName(SysString(1069));
            tglSpellField.onValueChanged.AddListener(OnSearchEvent);

            TryGetControl(out tglSpellContinuous, nameof(tglSpellContinuous));
            tglSpellContinuous.SetToggleName(SysString(1067));
            tglSpellContinuous.onValueChanged.AddListener(OnSearchEvent);

            TryGetControl(out tglTrapNormal, nameof(tglTrapNormal));
            tglTrapNormal.SetToggleName(SysString(1054));
            tglTrapNormal.onValueChanged.AddListener(OnSearchEvent);

            TryGetControl(out tglTrapContinuous, nameof(tglTrapContinuous));
            tglTrapContinuous.SetToggleName(SysString(1067));
            tglTrapContinuous.onValueChanged.AddListener(OnSearchEvent);

            TryGetControl(out tglTrapCounter, nameof(tglTrapCounter));
            tglTrapCounter.SetToggleName(SysString(1070));
            tglTrapCounter.onValueChanged.AddListener(OnSearchEvent);
            Hide();
        }