public static BaseSkill GetRandomVisibleSkill(SkillRareDegree skillRareDegree)
        {
            var skills = GameInfo.ActivedSkills.Where(x => x.RareDegree == skillRareDegree).ToList();
            var index  = NumberHelper.GetRandom(0, skills.Count);

            return(skills[index].Clone());
        }
        public static void Refresh(SkillRareDegree skillRareDegree, int count)
        {
            var canvas    = GameObject.Find("SubCanvasGetSkill");
            var btnSkill1 = canvas.transform.Find("BtnSkill1").gameObject.GetComponent <Button>();
            var btnSkill2 = canvas.transform.Find("BtnSkill2").gameObject.GetComponent <Button>();
            var btnSkill3 = canvas.transform.Find("BtnSkill3").gameObject.GetComponent <Button>();
            var imgDesc   = canvas.transform.Find("ImgSkillDesc").gameObject.GetComponent <Image>();

            if (count == 1)
            {
                btnSkill1.gameObject.SetActive(false);
                btnSkill3.gameObject.SetActive(false);
            }
            else
            {
                btnSkill1.gameObject.SetActive(true);
                btnSkill3.gameObject.SetActive(true);
            }

            var skill1 = SkillHelper.GetRandomVisibleSkill(skillRareDegree);
            var skill2 = SkillHelper.GetRandomVisibleSkill(skillRareDegree);
            var skill3 = SkillHelper.GetRandomVisibleSkill(skillRareDegree);

            while (skill2.Name == skill1.Name)
            {
                System.Threading.Thread.Sleep(1);
                skill2 = SkillHelper.GetRandomVisibleSkill();
            }
            while (skill3.Name == skill2.Name || skill3.Name == skill1.Name)
            {
                System.Threading.Thread.Sleep(1);
                skill3 = SkillHelper.GetRandomVisibleSkill();
            }

            ButtonHelper.UpdateSkillButton(btnSkill1, skill1, imgDesc, false);
            ButtonHelper.UpdateSkillButton(btnSkill2, skill2, imgDesc, false);
            ButtonHelper.UpdateSkillButton(btnSkill3, skill3, imgDesc, false);

            btnSkill1.onClick.RemoveAllListeners();
            btnSkill1.onClick.AddListener(() =>
            {
                GameInfo.GainSkill(skill1.Name);
                BattleCanvasSetter.SwitchBattleScene();
            });
            btnSkill2.onClick.RemoveAllListeners();
            btnSkill2.onClick.AddListener(() =>
            {
                GameInfo.GainSkill(skill2.Name);
                BattleCanvasSetter.SwitchBattleScene();
            });
            btnSkill3.onClick.RemoveAllListeners();
            btnSkill3.onClick.AddListener(() =>
            {
                GameInfo.GainSkill(skill3.Name);
                BattleCanvasSetter.SwitchBattleScene();
            });
        }
Beispiel #3
0
        public static Sprite GetSkillRareDegreeSprite(SkillRareDegree degree)
        {
            Sprite sprite = null;

            if (degree == SkillRareDegree.Normal)
            {
                sprite = Resources.Load("Textures/Events/普通技能", typeof(Sprite)) as Sprite;
            }
            else if (degree == SkillRareDegree.Rare)
            {
                sprite = Resources.Load("Textures/Events/稀有技能", typeof(Sprite)) as Sprite;
            }
            return(sprite);
        }
Beispiel #4
0
        /// <summary>
        /// 更改战利品界面UI
        /// </summary>
        /// <param name="money">获得金钱</param>
        /// <param name="exp">获得经验</param>
        /// <param name="prop">获得宝物</param>
        /// <param name="skillType">获得的技能类型</param>
        public static void Refresh(int money, int exp, BaseProp prop, SkillRareDegree skillRareDegree)
        {
            var canvas     = GameObject.Find("SubCanvasSpoil").GetComponent <Canvas>();
            var txtExp     = canvas.transform.Find("TxtExp").GetComponent <Text>();
            var txtMoney   = canvas.transform.Find("TxtMoney").GetComponent <Text>();
            var text       = canvas.transform.Find("Text").GetComponent <Text>();
            var btnProp    = canvas.transform.Find("BtnProp").GetComponent <Button>();
            var btnUpgrade = canvas.transform.Find("BtnUpgrade").GetComponent <Button>();

            txtExp.text   = " X" + exp;
            txtMoney.text = " X" + money;
            if (prop == null)
            {
                btnProp.gameObject.SetActive(false);
            }
            else
            {
                btnProp.gameObject.SetActive(true);
                btnProp.image.sprite = SpriteHelper.GetPropSprite(prop.Name);

                EventTrigger trigger = btnProp.gameObject.GetComponent <EventTrigger>();
                if (trigger == null)
                {
                    trigger = btnProp.gameObject.AddComponent <EventTrigger>();
                }
                trigger.triggers.Clear();
                EventTrigger.Entry entry = new EventTrigger.Entry();
                entry.eventID  = EventTriggerType.PointerEnter;
                entry.callback = new EventTrigger.TriggerEvent();
                entry.callback.AddListener((eventdata) =>
                {
                    text.text = prop.Description;
                });
                trigger.triggers.Add(entry);
            }

            if (skillRareDegree == SkillRareDegree.None)
            {
                btnUpgrade.gameObject.SetActive(false);
            }
            else
            {
                btnUpgrade.gameObject.SetActive(true);
                btnUpgrade.image.sprite = SpriteHelper.GetSkillRareDegreeSprite(skillRareDegree);

                EventTrigger trigger = btnUpgrade.gameObject.GetComponent <EventTrigger>();
                if (trigger == null)
                {
                    trigger = btnUpgrade.gameObject.AddComponent <EventTrigger>();
                }
                trigger.triggers.Clear();
                EventTrigger.Entry entry = new EventTrigger.Entry();
                entry.eventID  = EventTriggerType.PointerEnter;
                entry.callback = new EventTrigger.TriggerEvent();
                entry.callback.AddListener((eventdata) =>
                {
                    if (skillRareDegree == SkillRareDegree.Normal)
                    {
                        text.text = "选择并获得一本技能书";
                    }
                    else if (skillRareDegree == SkillRareDegree.Rare)
                    {
                        text.text = "选择并获得一本稀有技能书";
                    }
                });
                trigger.triggers.Add(entry);

                btnUpgrade.onClick.RemoveAllListeners();
                btnUpgrade.onClick.AddListener(() =>
                {
                    BattleCanvasSetter.Scenes.Enqueue(BattleSceneType.GetSkill);
                    BattleCanvasSetter.Scenes.Enqueue(BattleSceneType.Spoil);
                    BattleCanvasSetter.SwitchBattleScene();
                });
            }
        }