/// <summary>
        /// 生成获取宝物对话框
        /// </summary>
        /// <param name="e">事件本体</param>
        /// <param name="name">宝物名称</param>
        public static void GeneratePropEvent(BaseEvent e, PropName name)
        {
            var prop = GameInfo.ActivedProps.FirstOrDefault(x => x.Name == name);

            e.Title       = "获得宝物:" + prop.DisplayName;
            e.Description = prop.Description;
            e.Sprite      = SpriteHelper.GetPropSprite(prop.Name);
        }
 public static void GenerateHotelEvent(BaseEvent e)
 {
     e.Title       = "荒原酒馆";
     e.Description = "花费金币休息有可能得到意外的惊喜!";
     e.Choose1Name = "驻足";
     e.Choose2Name = "大吃一顿";
     e.Choose3Name = "住宿休息";
     e.Choose1Desc = "恢复最大生命值和魔法值的20%";
     e.Choose2Desc = "花费50金币\n恢复最大生命值和魔法值的50%";
     e.Choose3Desc = "花费100金币\n恢复所有生命值和魔法值";
     e.Sprite      = SpriteHelper.GetEventSprite(e.Type);
     e.Choose1     = () =>
     {
         Hero.Health = Math.Min(Hero.MaxHealth, Hero.Health + Hero.MaxHealth * 0.2f);
         Hero.Mana   = Math.Min(Hero.MaxMana, Hero.Mana + Hero.MaxMana * 0.2f);
         PropertyPanelUpdater.Update();
         GameInfo.NewStage();
     };
     e.Choose2 = () =>
     {
         if (GameInfo.Money < 50)
         {
             BattleUpdater.UpdateMessage("别逗我,你太穷了");
             return;
         }
         GameInfo.Money -= 50;
         Hero.RecoverHealth(Hero.MaxHealth * 0.5f);
         Hero.RecoverMana(Hero.MaxMana * 0.5f);
         BattleUpdater.UpdateStageInfo();
         GameInfo.NewStage();
     };
     e.Choose3 = () =>
     {
         if (GameInfo.Money < 100)
         {
             BattleUpdater.UpdateMessage("别逗我,你太穷了");
             return;
         }
         GameInfo.Money -= 100;
         Hero.RecoverHealth(Hero.MaxHealth);
         Hero.RecoverMana(Hero.MaxMana);
         BattleUpdater.UpdateStageInfo();
         GameInfo.NewStage();
     };
 }
Esempio n. 3
0
        public static void UpdateSkillButton(Button button, BaseSkill skill, Image imgDesc, bool showStar)
        {
            button.name = skill.DisplayName;
            //button.image.sprite = Resources.Load("Textures/Skills" + skill.DisplayName, typeof(Sprite)) as Sprite;
            button.image.color = ColorHelper.GetSkillFrameColor(skill.Type);

            //修改技能图标
            Image skillIcon = button.transform.Find("Image").GetComponent <Image>();

            skillIcon.sprite = SpriteHelper.GetSkillIcon(skill.Name);

            //修改技能描述
            Text skillDesc = button.transform.Find("TxtDesc").GetComponent <Text>();

            skillDesc.text = SkillHelper.GetSkillDesc(skill);

            //修改技能名称
            Text skillName = button.transform.Find("TxtName").GetComponent <Text>();

            skillName.text = skill.DisplayName;

            //修改技能消耗
            var skillCost = button.transform.Find("TxtCost").GetComponent <Text>();

            skillCost.text = skill.Cost.ToString();
            //如果技能消耗为0修改技能颜色
            if (skill.Cost == 0)
            {
                skillCost.color = ColorHelper.GetCostColor(true);
            }
            else
            {
                skillCost.color = ColorHelper.GetCostColor(false);
            }

            if (showStar)
            {
                //修改星级
                if (skill.Level < 3)
                {
                    var star3 = button.transform.Find("ImgStar3").GetComponent <Image>();
                    star3.gameObject.SetActive(false);
                }
                if (skill.Level < 2)
                {
                    var star2 = button.transform.Find("ImgStar2").GetComponent <Image>();
                    star2.gameObject.SetActive(false);
                }
                if (skill.Level < 1)
                {
                    var star1 = button.transform.Find("ImgStar1").GetComponent <Image>();
                    star1.gameObject.SetActive(false);
                }
            }


            if (skillDesc != null)
            {
                //修改技能升级描述
                EventTrigger trigger = button.gameObject.GetComponent <EventTrigger>();
                if (trigger == null)
                {
                    trigger = button.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 txtStar1  = imgDesc.transform.Find("TxtStar1").GetComponent <Text>();
                    txtStar1.text  = skill.DescriptionLevel1;
                    txtStar1.color = Color.black;
                    Text txtStar2  = imgDesc.transform.Find("TxtStar2").GetComponent <Text>();
                    txtStar2.text  = skill.DescriptionLevel2;
                    txtStar2.color = Color.black;
                    Text txtStar3  = imgDesc.transform.Find("TxtStar3").GetComponent <Text>();
                    txtStar3.text  = skill.DescriptionLevel3;
                    txtStar3.color = Color.black;
                    if (skill.Level > 0)
                    {
                        txtStar1.color = Color.red;
                    }
                    if (skill.Level > 1)
                    {
                        txtStar2.color = Color.red;
                    }
                    if (skill.Level > 2)
                    {
                        txtStar3.color = Color.red;
                    }
                });
                trigger.triggers.Add(entry);
            }
        }