Exemplo n.º 1
0
    void FlyCoin()
    {
        GameObject     obj = new GameObject();
        SpriteRenderer sr  = obj.AddComponent <SpriteRenderer>();

        sr.sprite           = Materiral.GetIconByName("actionIcon_6");
        sr.sortingLayerName = "Character";

        Vector3 startpos     = transform.position;
        float   randomlength = Random.Range(-0.4f, 0.4f);
        Vector3 endpos       = new Vector3(startpos.x + randomlength, Random.Range(-4.3f, -4.47f), 0);

        float randomheight = Random.Range(0.3f, 0.6f);
        float time         = Mathf.Abs(randomheight);

        Debug.Log(randomheight);
        Vector3[] _path = new Vector3[] { startpos, startpos, new Vector3(startpos.x + randomlength / 2, randomheight + startpos.y, startpos.z), endpos, endpos };
        LeanTween.moveSpline(obj, _path, time).setOnComplete(() =>
        {
            LeanTween.moveY(obj, randomheight / 5 + startpos.y, time / 5).setOnComplete(() =>
            {
                LeanTween.moveY(obj, endpos.y, time / 5).setEase(LeanTweenType.easeOutBounce);
            });
        });

        TimeTool.SetWaitTime(5f, obj, () =>
        {
            LeanTween.alpha(obj, 0, 1).setDestroyOnComplete(true);
        });
    }
Exemplo n.º 2
0
    void ComposeProperty()
    {
        int   listCount  = PropertyBox.Count;
        float actionTime = 0.5f;
        float DelayTime  = 1f;

        Recipe.Result composID = new Recipe.Result();
        ArrayList     compose  = recipeMap.ComposeProperty(PropertyBox, out composID);

        if (compose.Count != listCount)
        {
            if (_composCount > 0)
            {
                DelayTime = 0;
            }

            _composCount++;
            LeanTween.move(composID.Base2.Button.gameObject, composID.Base1.Button.position, actionTime).setEase(LeanTweenType.easeInOutQuad).setDelay(DelayTime).setOnComplete(
                () =>
            {
                composID.Base1.Button.Find("Text").GetComponent <Text>().text     = composID.Base1.Property.Name;
                composID.Base1.Button.Find("Image").GetComponent <Image>().sprite = Materiral.GetIconByName(composID.Base1.Property.IMG);
                Destroy(composID.Base2.Button.gameObject);
                //更新任务
                //questManager.CheckQuestListWithGoods(QuestManager.QuestTypeList.ComposeProperty, composID.Base1.ID);
                LeanTween.scale(composID.Base1.Button.gameObject, new Vector3(1.1f, 1.1f, 1.1f), 0.125f).setLoopPingPong(1).setOnComplete(
                    () =>
                {
                    ComposeProperty();
                });
            });
        }
        else
        {
            //如果合成,则等待oncomplete改变状态
            if (_composCount > 0)
            {
                //改变状态
                _composCount = 0;
                ShowComposeButton();
                //对齐位置
                SetPropertyPos();
                return;
            }
            //如果合成没有合成时
            else
            {
                _composCount = 0;
                ShowComposeButton();
                //改变状态
                ChangeRecipeStat(RecipeStat.WaitInput);
                return;
            }
        }
    }
Exemplo n.º 3
0
    public void AddQustUI(QuestManager.QuestBase quest)
    {
        GameObject questButton = Instantiate(QuestButton);

        questButton.name = quest.ID.ToString();
        questButton.transform.SetParent(QuestListUI.transform, false);

        Image     iconImage   = questButton.transform.Find("icon").GetComponent <Image>();
        Slider    prograssBar = questButton.transform.Find("progress").GetComponent <Slider>();
        Transform hint        = questButton.transform.Find("hint");

        iconImage.sprite  = Materiral.GetIconByName(quest.Smallicon);
        prograssBar.value = (float)PlayerInfo.GetQuestProgress(quest.ID) / quest.QuestComplete.Num;
        //如果已经完成
        if (prograssBar.value >= 1)
        {
            hint.gameObject.SetActive(true);
            AniController.Get(hint.gameObject).AddSprite(hintsprites);
            hint.GetComponent <Image>().color = Color.green;
            AniController.Get(hint.gameObject).PlayAni(0, 3, AniController.AniType.Loop, 5);
        }
        EventTriggerListener.Get(questButton).onClick = OpenQuestBoard;
    }
Exemplo n.º 4
0
    public void creatIcon()
    {
        int count = Random.Range(19, 20);

        for (int i = 1; i <= count; i++)
        {
            GameObject     obj = new GameObject();
            SpriteRenderer sr  = obj.AddComponent <SpriteRenderer>();
            sr.sprite = Materiral.GetIconByName("actionIcon_6");

            Vector3 endpos = new Vector3(startpos.x + Random.Range(-0.5f, 0.5f), startpos.y + Random.Range(-0.05f, 0.05f), 0);

            float randomheight = Random.Range(0.3f, 0.6f);
            float time         = Mathf.Abs(randomheight);
            Debug.Log(randomheight);
            Vector3[] _path = new Vector3[] { startpos, startpos, new Vector3(endpos.x / 2, randomheight + startpos.y, startpos.z), endpos, endpos };
            LeanTween.moveSpline(obj, _path, time).setOnComplete(() => {
                LeanTween.moveY(obj, randomheight / 5 + startpos.y, time / 5).setOnComplete(() => {
                    LeanTween.moveY(obj, endpos.y, time / 5).setEase(LeanTweenType.easeOutBounce);
                });
            });
        }
    }
Exemplo n.º 5
0
    public void OpenQuestBoard(int questID, float delyTime)
    {
        QuestManager.QuestBase quest = questManager.GetQuestInfoByID(questID);

        GameObject Board = Instantiate(QuestBoard);

        Board.name = quest.ID.ToString();
        Board.transform.SetParent(QuestCanvas.transform, false);

        //获取面板组件
        Image      iconImage        = Board.transform.Find("QuestBoard/icon").GetComponent <Image>();
        Text       questinfoText    = Board.transform.Find("QuestBoard/questinfo/Text").GetComponent <Text>();
        Text       CompleteinfoText = Board.transform.Find("QuestBoard/questinfo/CompleteText").GetComponent <Text>();
        Text       questnameText    = Board.transform.Find("QuestBoard/questName/questText").GetComponent <Text>();
        Slider     prograssBar      = Board.transform.Find("QuestBoard/questName/progress").GetComponent <Slider>();
        Text       prograssBarText  = Board.transform.Find("QuestBoard/questName/progress/progressText").GetComponent <Text>();
        GameObject closebutton      = Board.transform.Find("QuestBoard/Close").gameObject;
        Text       closebuttonText  = closebutton.transform.Find("Text").GetComponent <Text>();
        GameObject Mask             = Board.transform.Find("Mask").gameObject;
        GameObject questBoardBG     = closebutton.transform.parent.gameObject;
        //Award
        Text  awardGoldNum    = Board.transform.Find("QuestBoard/award/GoldNum").GetComponent <Text>();
        Text  awardExpNum     = Board.transform.Find("QuestBoard/award/ExpNum").GetComponent <Text>();
        Image AwardGoodsImage = Board.transform.Find("QuestBoard/award/Goods").GetComponent <Image>();
        Text  AwardGoodsNum   = Board.transform.Find("QuestBoard/award/GoodsNum").GetComponent <Text>();

        //更新参数
        iconImage.sprite       = Materiral.GetIconByName(quest.Bigicon);
        questinfoText.text     = TextParser.SpecialString(quest.des);
        questnameText.text     = quest.name;
        awardGoldNum.text      = "x" + quest.Award.Gold;
        awardExpNum.text       = "x" + quest.Award.Exp;
        AwardGoodsImage.sprite = Materiral.GetMaterialIcon(quest.Award.Goods[0], quest.Award.Goods[1]);
        AwardGoodsNum.text     = "x" + quest.Award.GoodsNum;

        prograssBar.value    = (float)questManager.GetQuestProgress(quest.ID) / quest.QuestComplete.Num;
        prograssBarText.text = questManager.GetQuestProgress(quest.ID) + "/" + quest.QuestComplete.Num;

        //设置按钮响应
        if (prograssBar.value >= 1)
        {
            if (PlayerInfo.GetNowscene() == quest.Award.TaskPoint)
            {
                //如果在任务地点则设置领取
                closebutton.GetComponent <Image>().color = Color.green;
                closebuttonText.text = "领取";
                EventTriggerListener.Get(closebutton).onClick = GetQuestAward;
            }
            else
            {
                //关闭按钮
                closebutton.GetComponent <Image>().color = Color.white;
                closebuttonText.text  = "关闭";
                CompleteinfoText.text = quest.completedes;
                EventTriggerListener.Get(closebutton).onClick = CloseQuestBoard;
            }
        }
        else
        {
            //关闭按钮
            closebutton.GetComponent <Image>().color = Color.white;
            closebuttonText.text = "关闭";
            EventTriggerListener.Get(closebutton).onClick = CloseQuestBoard;
        }

        questBoardBG.transform.localPosition = new Vector2(0, Screen.height / 2 + 200);
        LeanTween.moveLocalY(closebutton.transform.parent.gameObject, 300, 0.5f).setEaseOutBack().setDelay(delyTime);
    }
Exemplo n.º 6
0
    //属性效果UI效果
    void AddPropertyUIEft(CharBag.Goods _slot)
    {
        float actionTime = 0.5f;

        for (int i = 0; i < _slot.Property.Length; i++)
        {
            if (_slot.Property[i] == 0)
            {
                continue;
            }

            int           proID     = _slot.Property[i];
            RectTransform _property = Instantiate(PropertyListElement).GetComponent <RectTransform>();
            _property.transform.SetParent(PropertyListGrid.transform, false);

            _property.localPosition = GetPropertyPos(PropertyBox.Count + 1);
            _property.sizeDelta     = GetPropertySize(PropertyBox.Count + 1);

            //获取materiral的颜色
            Color _color_image = _property.GetComponent <Image>().color;
            Color _color_text  = _property.transform.Find("Text").GetComponent <Text>().color;
            Color from         = new Color(_color_image.r, _color_image.g, _color_image.b, 0);
            _property.GetComponent <Image>().color = from;
            _property.transform.Find("Image").GetComponent <Image>().color = from;
            _property.transform.Find("Text").GetComponent <Text>().color   = from;

            //渐现效果
            LeanTween.value(_property.gameObject, from, _color_image, 0.25f).setDelay(actionTime).setOnUpdate(
                (Color col) =>
            {
                _property.GetComponent <Image>().color = col;
            }
                );
            LeanTween.value(_property.gameObject, from, _color_text, 0.25f).setDelay(actionTime).setOnUpdate(
                (Color col) =>
            {
                _property.transform.Find("Text").GetComponent <Text>().color = col;
            }
                );
            LeanTween.value(_property.gameObject, from, new Color(1, 1, 1, 1), 0.25f).setDelay(actionTime).setOnUpdate(
                (Color col) =>
            {
                _property.transform.Find("Image").GetComponent <Image>().color = col;
            }
                );

            //TODO:点击效果

            //EndTODO

            Materiral.Property _p = Materiral.GetProNameByProID(proID);
            _property.transform.Find("Text").GetComponent <Text>().text     = _p.Name;
            _property.transform.Find("Image").GetComponent <Image>().sprite = Materiral.GetIconByName(_p.IMG);

            PropertyElementBase _proBase = new PropertyElementBase();
            _proBase.ID       = PropertyBox.Count + 1;
            _proBase.Property = _p;
            _proBase.Button   = _property;
            PropertyBox.Add(_proBase);
        }
    }
Exemplo n.º 7
0
    //设置合成界面槽的信息和位置
    void SetSlot(Recipe.RecipeMap map)
    {
        int num = map.Slots.Length;

        //TODO:游戏道具的名称和ID,以及按钮的表现效果
        Vector3 base_point  = new Vector3(0, -100, 0);
        int     targetAngel = 0;

        SlotList = new Dictionary <int, SlotBox>();

        for (int i = 0; i < num; i++)
        {
            GameObject recipeSlot = Instantiate(btn_recipeSlot);
            recipeSlot.transform.SetParent(recipeSlotsList.transform, false);

            //设置按钮位置
            targetAngel = 360 / num * i;

            Vector3 target_pos = Quaternion.Euler(0, 0, targetAngel) * base_point;
            recipeSlot.transform.localPosition = target_pos;

            //判断slot中材料的类型,0为固定材料,1为材料种类
            if (map.Slots[i].SlotType == Recipe.SlotTypeList.Material)
            {
                //固定材料
                if (map.Slots[i].MatType == 0)  //Item
                {
                    Materiral.Items _item = Materiral.FindItemByID(map.Slots[i].MatId);

                    recipeSlot.name = i.ToString();
                    recipeSlot.transform.Find("Text").GetComponent <Text>().text            = "[" + _item.Name + "]";
                    recipeSlot.transform.Find("Bottom/Image").GetComponent <Image>().sprite = Materiral.GetIconByName(_item.IMG);
                    recipeSlot.transform.Find("Bottom/Image").GetComponent <Image>().color  = new Color(1, 1, 1, 0.5f);
                }
                else if (map.Slots[i].MatType == 1)  //Mind
                {
                    Materiral.Minds _mind = Materiral.FindMindByID(map.Slots[i].MatId);
                    recipeSlot.name = i.ToString();
                    recipeSlot.transform.Find("Text").GetComponent <Text>().text            = "[" + _mind.Name + "]";
                    recipeSlot.transform.Find("Bottom/Image").GetComponent <Image>().sprite = Materiral.GetIconByName(_mind.IMG);
                    recipeSlot.transform.Find("Bottom/Image").GetComponent <Image>().color  = new Color(1, 1, 1, 0.5f);
                }
            }
            else if (map.Slots[i].SlotType == Recipe.SlotTypeList.MaterialType)
            {
                //材料类型
                recipeSlot.name = i.ToString();

                int typeID = map.Slots[i].MatType;
                Materiral.MaterialType type = Materiral.FindTypeNameByID(typeID);
                recipeSlot.transform.Find("Text").GetComponent <Text>().text            = "<color=red>[" + type.Name + "]\n(类型)</color>";
                recipeSlot.transform.Find("Bottom/Image").GetComponent <Image>().sprite = Materiral.GetIconByName(type.IMG);
                recipeSlot.transform.Find("Bottom/Image").GetComponent <Image>().color  = new Color(1, 1, 1, 0.5f);
            }
            else
            {
                Debug.Log("Can't find recipe slots!");
            }

            //设置参数容器中的参数
            Parameter.Box parameter = new Parameter.Box();
            parameter.ID       = i; //ID为slot的序号
            parameter.callback = ClickInBag;
            parameter.obj      = map.Slots[i];
            parameter.subobj   = SlotList;

            //添加记录到合成系统用容器中
            SlotBox slot = new SlotBox();
            slot.button = recipeSlot;
            SlotList.Add(i, slot);

            //设置点击事件
            GameObject _slot = recipeSlot.transform.Find("Bottom/Image").gameObject;
            EventTriggerListener.Get(_slot).parameter          = parameter;
            EventTriggerListener.Get(_slot).onClickByParameter = OpenBag;
        }
    }