// 박스 셔플링. public IEnumerator BoxShuffling() { if (_bTouchLock) { yield break; } _bTouchLock = true; yield return(StartCoroutine(ShutterPlay(true))); yield return(StartCoroutine(Shuffle(_BoxList))); for (int i = 0; i < _BoxList.Count; ++i) { Box box = _BoxList[i]; Transform obj = _BoxTrans[box._Idx]; AmiscGame.SetBoxColor(obj, box._CurType); } yield return(StartCoroutine(ShutterPlay(false))); _bTouchLock = false; }
// 박스 오브젝트 셋팅. void SetBoxPrefab(Transform obj, Box box) { obj.name = box._Idx.ToString(); obj.parent = _MyTransform; obj.position = box._Pos; AmiscGame.SetBoxColor(obj, box._CurType); }
// 현재 상황 표시. public void ShowCur() { for (int i = 0; i < _BoxList.Count; ++i) { Box box = _BoxList[i]; Transform obj = _BoxTrans[box._Idx]; AmiscGame.SetBoxColor(obj, box._CurType); } }
// 박스 컬러링. public void BoxColoring() { if (_bTouchLock) { return; } int colorNum = _stMapData.iColorType; int colorCnt = _stMapData.iColorVolume; List <Box> listBox = _BoxList.ToList(); for (int i = 0; i < listBox.Count; ++i) { listBox[i].Init(); } System.Random rd = new System.Random(); for (int i = 1; i <= colorNum; ++i) { for (int k = 0; k < colorCnt; ++k) { int rnd = rd.Next(listBox.Count); Box box = listBox[rnd]; box.Setting((BOX_TYPE)i); listBox.Remove(box); } } for (int i = 0; i < _BoxList.Count; ++i) { Box box = _BoxList[i]; Transform obj = _BoxTrans[box._Idx]; AmiscGame.SetBoxColor(obj, box._CurType); if (box._OriginTpye != BOX_TYPE.NONE) { LeanTween.moveY(obj.gameObject, 1f, 1.0f).setEase(LeanTweenType.punch); } } Sound._Instance.BoxDown(); }
// 박스 체인지. public void BoxChange(Transform obj1, Transform obj2) { int idx1 = _BoxTrans.FindIndex(row => row == obj1); int idx2 = _BoxTrans.FindIndex(row => row == obj2); Box box1 = _BoxList[idx1]; Box box2 = _BoxList[idx2]; BOX_TYPE tmpType = box1._CurType; box1._CurType = box2._CurType; box2._CurType = tmpType; AmiscGame.SetBoxColor(obj1, box1._CurType); AmiscGame.SetBoxColor(obj2, box2._CurType); LeanTween.moveLocalY(obj1.gameObject, 0, 0.2f).setFrom(-6).setEase(LeanTweenType.easeSpring); LeanTween.moveLocalY(obj2.gameObject, 0, 0.2f).setFrom(6).setEase(LeanTweenType.easeSpring); // Dust Effect. _DustEffect.transform.position = obj2.position; _DustEffect.Play(); DismissHint(); Sound._Instance.BoxDown(); if (IsComplete()) { _GameManager.COMPLETE(); } else { _GameManager.resetHint(); } }