/// <summary> /// 스테이지 랜덤 블록 세팅 /// </summary> public void RandomBlock_Spawn() { Dictionary <string, object> stage_Info = DataManager.Instance.stage_data[GamePlay.instance.Play_Stage_Num]; if ((int)stage_Info["stage_Type"] == 0) { //튜토리얼//////////////////////////////////////////////////////////////////////// Dictionary <string, object> tuto_Info = DataManager.Instance.tutorial_data[GamePlay.instance.Play_Stage_Num]; for (int i = 0; i < 6; i++) { string block_Num = (string)tuto_Info["block_num_" + i]; if (block_Num != "") { string[] str_block = block_Num.Split('_'); int block_color = Random.Range(0, 6); foreach (var item in str_block) { if (i == 4 && GamePlay.instance.Play_Stage_Num == 2) { block_color = 6; } GamePlay.instance.blockGrid[int.Parse(item)].SetBlockImage(UIManager.Instance.Sp_Blocks[block_color], 1, block_color + 1); } } } ////////////////////////////////////////////////////////////////////////////////// } else { //일반//////////////////////////////////////////////////////////////////////// for (int i = 1; i < 4; i++) { int block_Num = (int)stage_Info["random_block_" + i]; int block_Val = (int)stage_Info["block_count_" + i]; int block_Hp = (int)stage_Info["block_hp_" + i]; List <Block> NoneFill = GamePlay.instance.blockGrid.FindAll(x => x.block_Type.Equals(Block_Type.None)); //Debug.Log("NoneFill " + NoneFill.Count); Clear_Stage_Info Find_Stage_Info = DataManager.Instance.state_Player.clear_Stage.Find(x => x.Stage_Id.Equals(GamePlay.instance.Play_Stage_Num)); int stage_Star = Find_Stage_Info != null ? Find_Stage_Info.Stage_Star : 0; switch (stage_Star) { case 0: break; case 1: block_Val += Mathf.RoundToInt(block_Val * 0.3f); break; case 2: case 3: block_Val += Mathf.RoundToInt(block_Val * 0.7f); break; default: break; } Debug.Log("block_Num " + block_Num + " block_Val " + block_Val + "block_Hp " + block_Hp); int Mission_val = block_Val * (block_Hp + 1); // mission 8 block_Num 7 if (block_Num == 7) { int mission = 0; int clearNum = 0; for (int j = 1; j < 3; j++) { mission = (int)stage_Info["mission_" + j]; if (mission == 8) { clearNum = (int)stage_Info["clear_" + j]; break; } } switch (stage_Star) { case 0: break; case 1: clearNum += Mathf.RoundToInt(clearNum * 0.3f); break; case 2: case 3: clearNum += Mathf.RoundToInt(clearNum * 0.7f); break; default: break; } Debug.Log("block " + Mission_val + "clear " + clearNum); int[] Random = getRandomInt(1, 0, NoneFill.Count); foreach (var item in Random) { NoneFill[item].SetBlockImage(UIManager.Instance.Sp_Blocks[block_Num - 1], 1, block_Num, clearNum - Mission_val - 1); } } //랜덤으로 자리 배치 if (block_Num >= 1) { int[] Random = getRandomInt(block_Val, 0, NoneFill.Count); foreach (var item in Random) { NoneFill[item].SetBlockImage(UIManager.Instance.Sp_Blocks[block_Num - 1], 1, block_Num, block_Hp); } } } ////////////////////////////////////////////////////////////////////////////////// } }
/// <summary> /// 스테이지 별 정보 세팅 /// </summary> public void Set_Star() { foreach (var item in stars) { item.sprite = UIManager.Instance.Sp_None_Star; } Clear_Stage_Info clear_Stage_Info = DataManager.Instance.state_Player.clear_Stage.Find(x => x.Stage_Id.Equals(stage_Id - 1)); Img_Stage_Bg.sprite = sp_Stage_Bg[0]; Color color; ColorUtility.TryParseHtmlString("#1A3868", out color); txt_stage_Num.color = color; if (clear_Stage_Info != null) { switch (clear_Stage_Info.Stage_Star) { case 0: case 1: Img_Stage_Bg.sprite = sp_Stage_Bg[0]; ColorUtility.TryParseHtmlString("#1A3868", out color); txt_stage_Num.color = color; break; case 2: Img_Stage_Bg.sprite = sp_Stage_Bg[1]; ColorUtility.TryParseHtmlString("#633D17", out color); txt_stage_Num.color = color; break; case 3: Img_Stage_Bg.sprite = sp_Stage_Bg[2]; ColorUtility.TryParseHtmlString("#561610", out color); txt_stage_Num.color = color; break; default: break; } for (int i = 0; i < clear_Stage_Info.Stage_Star; i++) { stars[i].sprite = UIManager.Instance.Sp_Star; } } }