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); } }
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(); }