Exemple #1
0
    private void SetBtnPathToMapone(Vector2 Dir, MapOne go, BtnColor btn)
    {
        GameObject mgo = go.GameOne.transform.Find("Trail").gameObject;

        if (Dir.x == 1)
        {
            mgo.GetComponent <SpriteRenderer>().sprite = levelSys.GetTraillSprite(btn.name);
            mgo.transform.localPosition    = new Vector3(0.5f, 0f, 0);
            mgo.transform.localEulerAngles = new Vector3(0, 0, 0);
            mgo.transform.localScale       = new Vector3(4.45f, 0.7f, 1);
            mgo.SetActive(true);
            if (btn.PathActives.Count == 0)
            {
                btn.AddPathActive(btn.BtnPath[0]);
            }
            btn.AddPathActive(go);
        }
        else if (Dir.x == -1)
        {
            mgo.GetComponent <SpriteRenderer>().sprite = levelSys.GetTraillSprite(btn.name);
            mgo.transform.localPosition    = new Vector3(-0.5f, 0, 0);
            mgo.transform.localScale       = new Vector3(4.45f, 0.7f, 1);
            mgo.transform.localEulerAngles = new Vector3(0, 0, 0);
            mgo.SetActive(true);
            if (btn.PathActives.Count == 0)
            {
                btn.AddPathActive(btn.BtnPath[0]);
            }
            btn.AddPathActive(go);
        }
        else if (Dir.y == 1)
        {
            mgo.GetComponent <SpriteRenderer>().sprite = levelSys.GetTraillSprite(btn.name);
            mgo.transform.localPosition    = new Vector3(0, 0.5f, 0);
            mgo.transform.localScale       = new Vector3(4.45f, 0.7f, 1);
            mgo.transform.localEulerAngles = new Vector3(0, 0, 90);
            mgo.SetActive(true);
            if (btn.PathActives.Count == 0)
            {
                btn.AddPathActive(btn.BtnPath[0]);
            }
            btn.AddPathActive(go);
        }
        else if (Dir.y == -1)
        {
            mgo.GetComponent <SpriteRenderer>().sprite = levelSys.GetTraillSprite(btn.name);
            mgo.transform.localPosition    = new Vector3(0, -0.5f, 0);
            mgo.transform.localScale       = new Vector3(4.45f, 0.7f, 1);
            mgo.transform.localEulerAngles = new Vector3(0, 0, 90);
            mgo.SetActive(true);
            if (btn.PathActives.Count == 0)
            {
                btn.AddPathActive(btn.BtnPath[0]);
            }
            btn.AddPathActive(go);
        }
    }
Exemple #2
0
    public void SetTipPaht()
    {
        if (GoldSystem.Instance.GetGoldMount(0) < 5)
        {
            return;
        }
        GoldSystem.Instance.GetGoldMount(-5);
        View.Instance.GameUI.SetGoldCount();
        View.Instance.PlayUI.SetGoldCount();
        int rodom = UnityEngine.Random.Range(0, ks.Count);

        if (ks.Count == 0)
        {
            return;
        }
        BtnColor btn = BtnColors[ks[rodom]];

        ks.Remove(ks[rodom]);
        MapOne mapOne2 = btn.HelpPos[1];

        btn.HelpPos.RemoveAt(1);
        btn.AddHelpPath(mapOne2);
        if (btn.IsFinished)
        {
            bool          b      = true;
            List <MapOne> isTrue = new List <MapOne>();
            isTrue.Add(GetMapOne((int)btn.mPosition.x, (int)btn.mPosition.y));
            for (int i = 0; i < btn.HelpPos.Count - 1; i++)
            {
                Vector2 Path = btn.HelpPos[i + 1].mPosition - btn.HelpPos[i].mPosition;
                MapOne  one  = new MapOne();
                one.XPosition = -1;
                one.YPosition = -1;
                if (Path.x != 0)
                {
                    int d = (int)btn.HelpPos[i].XPosition;
                    while (one.XPosition != btn.HelpPos[i + 1].XPosition)
                    {
                        d  += (int)(Path.x / Mathf.Abs(Path.x));
                        one = GetMapOne(d, (int)btn.HelpPos[i].YPosition);
                        isTrue.Add(one);
                    }
                }
                else
                {
                    int c = (int)btn.HelpPos[i].YPosition;
                    while (one.YPosition != btn.HelpPos[i + 1].YPosition)
                    {
                        c  += (int)(Path.y / Mathf.Abs(Path.y));
                        one = GetMapOne((int)btn.HelpPos[i].XPosition, c);
                        isTrue.Add(one);
                    }
                }
            }
            if (isTrue.Count == btn.BtnPath.Count || isTrue.Count == btn.mTargetBtnColor.BtnPath.Count)
            {
                if (isTrue.Count == btn.BtnPath.Count)
                {
                    for (int i = 0; i < isTrue.Count; i++)
                    {
                        b = b && btn.BtnPath.Contains(isTrue[i]);
                    }
                }
                else
                {
                    for (int i = 0; i < isTrue.Count; i++)
                    {
                        b = b && btn.mTargetBtnColor.BtnPath.Contains(isTrue[i]);
                    }
                }
            }
            else
            {
                b = false;
            }
            if (b)
            {
                isTrue.Clear();
                SetTipPaht();
                return;
            }
            b = true;
        }
        btn.PathActives.Clear();
        SetAllNOActives(btn);
        if (btn.BtnPath.Count != 1)
        {
            btn.BtnPath.RemoveRange(1, btn.BtnPath.Count - 1);
        }
        if (btn.mTargetBtnColor.BtnPath.Count != 1)
        {
            btn.mTargetBtnColor.BtnPath.RemoveRange(1, btn.mTargetBtnColor.BtnPath.Count - 1);
        }
        for (int i = 0; i < btn.HelpPos.Count - 1; i++)
        {
            Vector2 Path      = btn.HelpPos[i + 1].mPosition - btn.HelpPos[i].mPosition;
            float   XPosition = -1;
            float   YPosition = -1;
            if (Path.x != 0)
            {
                int d = (int)btn.HelpPos[i].XPosition;
                while (XPosition != btn.HelpPos[i + 1].XPosition)
                {
                    d        += (int)(Path.x / Mathf.Abs(Path.x));
                    XPosition = GetMapOne(d, (int)btn.HelpPos[i].YPosition).XPosition;
                    btn.AddBtnPath(GetMapOne(d, (int)btn.HelpPos[i].YPosition));
                }
            }
            else
            {
                int c = (int)btn.HelpPos[i].YPosition;
                while (YPosition != btn.HelpPos[i + 1].YPosition)
                {
                    c        += (int)(Path.y / Mathf.Abs(Path.y));
                    YPosition = GetMapOne((int)btn.HelpPos[i].XPosition, c).YPosition;
                    btn.AddBtnPath(GetMapOne((int)btn.HelpPos[i].XPosition, c));
                }
            }
        }
        btn.GetComponent <BoxCollider2D>().enabled = false;
        btn.mTargetBtnColor.GetComponent <BoxCollider2D>().enabled = false;
        GetHasPathToOther(btn);
        btn.IsFinished = true;
        btn.transform.Find("HelpUI").gameObject.SetActive(true);
        btn.mTargetBtnColor.IsFinished = true;
        btn.mTargetBtnColor.transform.Find("HelpUI").gameObject.SetActive(true);
        btn.maps = btn.BtnPath;
        foreach (MapOne one in btn.BtnPath)
        {
            one.GameOne.transform.Find("TrailDrag").GetComponent <BoxCollider2D>().enabled = false;
            one.IsObstacle = true;
            if (btn.BtnPath[btn.BtnPath.Count - 1] != one)
            {
                btn.AddPathActive(one);
            }
        }
        source.clip = AutoLine;
        source.Play();
        View.Instance.GameUI.SetFootCountTxt();
    }