public void IncDistX() { Debug.Log("Click on Button <DistanceX...> "); LevelConstructSet lcs = GameBoard.Instance.gcSet.GetLevelConstructSet(BubblesPlayer.CurrentLevel); float dist = lcs.DistX; dist += 0.05f; lcs.DistX = (dist > 1f) ? 1f : dist; ShowLevelData(); }
public void DecDistY() { Debug.Log("Click on Button <DistanceY...> "); LevelConstructSet lcs = GameBoard.Instance.gcSet.GetLevelConstructSet(BubblesPlayer.CurrentLevel); float dist = lcs.DistY; dist -= 0.05f; lcs.DistY = (dist > 0f) ? dist : 0f; ShowLevelData(); }
public void IncVertSize() { Debug.Log("Click on Button <VerticalSize...> "); LevelConstructSet lcs = GameBoard.Instance.gcSet.GetLevelConstructSet(BubblesPlayer.CurrentLevel); int vertSize = lcs.VertSize; vertSize += 1; lcs.VertSize = vertSize; ShowLevelData(); }
public void DecHorSize() { Debug.Log("Click on Button <HorizontalSize...> "); LevelConstructSet lcs = GameBoard.Instance.gcSet.GetLevelConstructSet(BubblesPlayer.CurrentLevel); int horSize = lcs.HorSize; horSize = (horSize > minHorSize) ? --horSize : minHorSize; lcs.HorSize = horSize; ShowLevelData(); }
public void InsertBefore() { Debug.Log("Click on Button <Insert level before...> "); LevelConstructSet lcs = ScriptableObjectUtility.CreateResourceAsset <LevelConstructSet>(levelConstructSetSubFolder, "", " " + 1.ToString()); GCSet.InsertBeforeLevel(BubblesPlayer.CurrentLevel, lcs); CreateLevelButtons(); ShowLevelData(); MBoard.grid.MoveToVisible(null); }
public void InsertAfter() { Debug.Log("Click on Button <Insert level after...> "); LevelConstructSet lcs = ScriptableObjectUtility.CreateResourceAsset <LevelConstructSet>(levelConstructSetSubFolder, "", " " + 1.ToString()); lcs.Matchset = MatchSets[0]; GameBoard.Instance.gcSet.InsertAfterLevel(BubblesPlayer.CurrentLevel, lcs); BubblesPlayer.CurrentLevel += 1; CreateLevelButtons(); ShowLevelData(); GameBoard.Instance.grid.MoveToVisible(null); }
public void Cell_Click(GridCell cell) { if (cell.GRow.IsSeviceRow) { Debug.Log("Click on cell <" + cell.ToString() + "...> - Is Service cell. Don't use it."); return; } Debug.Log("Click on cell <" + cell.ToString() + "...> "); LevelConstructSet lcs = GameBoard.Instance.gcSet.GetLevelConstructSet(BubblesPlayer.CurrentLevel); if (selectedMainBrushImage.enabled) { Debug.Log("main brush enabled"); if (cell.Mainobject && cell.Mainobject.ID == mainBrush.ID) { return; } else { if (!cell.Mainobject && mainBrush.ID == 0) { return; } lcs.AddFeaturedCell(new CellData(mainBrush.ID, cell.Row, cell.Column)); if (lcs) { Debug.Log("add feat cell, count " + lcs.featuredCells.Count); } } } else if (selectedOverBrushImage.enabled) { Debug.Log("over brush enabled"); if (cell.Overlay && cell.Overlay.ID == overBrush.ID) { return; } else { if (!cell.Mainobject) { return; } Debug.Log("add overlay"); lcs.AddOverlay(new CellData(overBrush.ID, cell.Row, cell.Column)); } } CloseOpenedPanels(); ShowLevelData(); }
public void InsertAfterLevel(int levelIndex, LevelConstructSet lcs) { Debug.Log("insert level after: " + levelIndex); if (levelIndex + 1 == levelSets.Count) { levelSets.Add(lcs); Debug.Log("add after : " + levelIndex); } else { levelSets.Insert(levelIndex + 1, lcs); Debug.Log("insert after : " + levelIndex); } SetAsDirty(); }
public void OpenMainBrushPanel_Click() { Debug.Log("open main brush click"); BubbleGrid grid = GameBoard.Instance.grid; LevelConstructSet lcs = GameBoard.Instance.gcSet.GetLevelConstructSet(BubblesPlayer.CurrentLevel); ScrollPanelController sRC = MainBrushContainer.ScrollPanel; if (sRC) // { sRC.CloseScrollPanel(true, null); } else { CloseOpenedPanels(); //instantiate ScrollRectController sRC = MainBrushContainer.InstantiateScrollPanel(); sRC.textCaption.text = "Main brush panel"; List <BaseObjectData> mData = new List <BaseObjectData>(); mData.Add(lcs.Matchset.Empty); if (lcs.Matchset.MainObjects != null) { foreach (var item in lcs.Matchset.MainObjects) { mData.Add(item); } } //create main bubbles brushes for (int i = 0; i < mData.Count; i++) { BaseObjectData mD = mData[i]; CreateButton(smallButtonPrefab, sRC.scrollContent, mD.ObjectImage, () => { Debug.Log("Click on Button <" + mD.ID + "...> "); mainBrush = (!GameObjectsSet.IsEmptyObject(mD.ID)) ? lcs.Matchset.GetMainObject(mD.ID) : lcs.Matchset.Empty; mainBrushImage.sprite = mainBrush.ObjectImage; SelectMainBrush(); }); } sRC.OpenScrollPanel(null); } }
public void OpenShootBubblestPanel_Click() { Debug.Log("shoot bubble click"); BubbleGrid grid = GameBoard.Instance.grid; LevelConstructSet lcs = GameBoard.Instance.gcSet.GetLevelConstructSet(BubblesPlayer.CurrentLevel); //ScrollPanelController sRC = ShootBubbleContainer.ScrollPanel; //if (sRC) // //{ // sRC.CloseScrollPanel(true, null); //} //else //{ // CloseOpenedPanels(); //List<BaseObjectData> mData = new List<BaseObjectData>(); //// mData.Add(lcs.Matchset.Empty); //if (lcs.Matchset.MainObjects != null) // foreach (var item in lcs.Matchset.MainObjects) // { // if (item.canUseAsShootBubbles) mData.Add(item); // } ////create shoot bubble buttons //for (int i = 0; i < mData.Count; i++) //{ // BaseObjectData mD = mData[i]; // Button b = CreateButton(smallButtonPrefab, parent.transform, mD.ObjectImage, () => // { // Debug.Log("Click on Button <" + mD.Name + "...> "); // lcs.AddShootBubble(mD.ID); // ShowLevelData(); // }); // if (lcs.shootBubbles.Contains(mD.ID)) // { // SelectButton(b); // } //} // sRC.OpenScrollPanel(null); //} }
public BubbleGrid(LevelConstructSet lcSet, GameObjectsSet goSet, Transform parent, int sortingOrder, GameMode gMode) { Debug.Log("new grid "); this.lcSet = lcSet; this.parent = parent; this.gMode = gMode; this.sortingOrder = sortingOrder; vertSize = lcSet.VertSize; horSize = lcSet.HorSize; this.goSet = goSet; prefab = this.goSet.gridCellPrefab; Cells = new List <GridCell>(vertSize * horSize); Rows = new List <Row <GridCell> >(vertSize); BubleRadius = prefab.GetComponent <CircleCollider2D>().radius; yStart = Camera.main.orthographicSize - BubleRadius; Debug.Log("yStart: " + yStart + " radius : " + BubleRadius); xStep = BubleRadius * 2.0f; // yStep = xStep * Mathf.Sin(60.0f * Mathf.Deg2Rad); cOffset = (1 - horSize) * BubleRadius; // offset from center for (int i = 0; i > -vertSize; i--) { AddRow(); } for (int i = 0; i < Rows.Count; i++) { for (int j = 0; j < Rows[i].Length; j++) { Rows[i][j].Init(i, j, Rows, gMode); } } SetObjectsData(lcSet.featuredCells, lcSet.overlays, gMode); Debug.Log("create cells: " + Cells.Count); Instance = this; }
public MatchGrid(LevelConstructSet lcSet, GameObjectsSet goSet, Transform parent, int sortingOrder, GameMode gMode) { Instance = this; Debug.Log("new grid "); this.lcSet = lcSet; this.parent = parent; this.gMode = gMode; this.sortingOrder = sortingOrder; vertSize = lcSet.VertSize; horSize = lcSet.HorSize; this.goSet = goSet; prefab = goSet.gridCellEven; cellSize = prefab.GetComponent <BoxCollider2D>().size; float deltaX = lcSet.DistX; float deltaY = lcSet.DistY; float scale = lcSet.Scale; parent.localScale = new Vector3(scale, scale, scale); Cells = new List <GridCell>(vertSize * horSize); Rows = new List <Row <GridCell> >(vertSize); yOffset = 0; xStep = (cellSize.x + deltaX); yStep = (cellSize.y + deltaY); cOffset = (1 - horSize) * xStep / 2.0f; // offset from center by x-axe yStart = (vertSize - 1) * yStep / 2.0f; //instantiate cells for (int i = 0; i < vertSize; i++) { AddRow(); } SetObjectsData(lcSet, gMode); Debug.Log("create cells: " + Cells.Count); }
public void InsertBeforeLevel(int levelIndex, LevelConstructSet lcs) { levelSets.Insert(levelIndex, lcs); SetAsDirty(); }
public void OpenGridSettingsPanel_Click() { Debug.Log("open grid settings click"); BubbleGrid grid = GameBoard.Instance.grid; ScrollPanelController sRC = GridPanelContainer.ScrollPanel; if (sRC) // { if (sRC) { sRC.CloseScrollPanel(true, null); } } else { CloseOpenedPanels(); //instantiate ScrollRectController sRC = GridPanelContainer.InstantiateScrollPanel(); sRC.textCaption.text = "Grid panel"; LevelConstructSet lcSet = GameBoard.Instance.gcSet.GetLevelConstructSet(BubblesPlayer.CurrentLevel); MissionConstruct levelMission = lcSet.levelMission; //create vert size block IncDecInputPanel.Create(sRC.scrollContent, IncDecGridPrefab, "VertSize", grid.Rows.Count.ToString(), () => { IncVertSize(); }, () => { DecVertSize(); }, (val) => { }, () => { return(grid.Rows.Count.ToString()); }, null); //create hor size block IncDecInputPanel.Create(sRC.scrollContent, IncDecGridPrefab, "HorSize", lcSet.HorSize.ToString(), () => { IncHorSize(); }, () => { DecHorSize(); }, (val) => { }, () => { return(lcSet.HorSize.ToString()); }, null); //create background block IncDecInputPanel.Create(sRC.scrollContent, IncDecGridPrefab, "BackGrounds", lcSet.backGroundNumber.ToString(), () => { IncBackGround(); }, () => { DecBackGround(); }, (val) => { }, () => { return(lcSet.backGroundNumber.ToString()); }, null); //create game object set block GameObjectsSet ms = lcSet.Matchset; int indexMS = MatchSets.IndexOf(ms); IncDecInputPanel.Create(sRC.scrollContent, IncDecGridPrefab, "GameSets", ms.name.ToString(), () => { if (indexMS < 0 || MatchSets.Count < 1) { return; } indexMS = (int)Mathf.Repeat(++indexMS, MatchSets.Count); lcSet.Matchset = MatchSets[indexMS]; ShowLevelData(); }, () => { if (indexMS < 0 || MatchSets.Count < 1) { return; } indexMS = (int)Mathf.Repeat(--indexMS, MatchSets.Count); lcSet.Matchset = MatchSets[indexMS]; ShowLevelData(); }, (val) => { }, () => { return(lcSet.Matchset.name.ToString()); }, null); sRC.OpenScrollPanel(null); } }
public void AddLevel(LevelConstructSet lc) { levelSets.Add(lc); SetAsDirty(); }
public void Rebuild(LevelConstructSet lcSet, GameObjectsSet goSet, int sortingOrder, GameMode gMode) { Debug.Log("rebuild "); this.lcSet = lcSet; vertSize = lcSet.VertSize; horSize = lcSet.HorSize; this.goSet = goSet; List <CellData> featCells = lcSet.featuredCells; Cells.ForEach((c) => { c.DestroyGridObjects(); }); List <GridCell> tempCells = Cells; Cells = new List <GridCell>(vertSize * horSize + horSize); Rows = new List <Row <GridCell> >(vertSize); float cOffset = (1 - horSize) * BubleRadius; // offfset from center // create rows GridCell cell; Row <GridCell> row; int cellCounter = 0; bool isEven = false; int ri = 0; for (int i = 0; i > -vertSize; i--) { isEven = (ri % 2 == 0); row = new Row <GridCell>((isEven) ? horSize : horSize - 1); float eo = (isEven) ? 0 : BubleRadius; for (int j = 0; j < row.Length; j++) { Vector3 pos = new Vector3(j * xStep + eo + cOffset, yStart + i * yStep, 0); if (tempCells != null && cellCounter < tempCells.Count) { cell = tempCells[cellCounter]; cell.transform.localPosition = pos; cellCounter++; } else { cell = UnityEngine.Object.Instantiate(this.goSet.gridCellPrefab).GetComponent <GridCell>(); cell.transform.parent = parent; cell.transform.localPosition = pos; cell.transform.localScale = Vector3.one; } Cells.Add(cell); row[j] = cell; cell.GetComponent <SpriteRenderer>().enabled = (i > -vertSize); } Rows.Add(row); ri++; } if (cellCounter < tempCells.Count) { for (int i = cellCounter; i < tempCells.Count; i++) { UnityEngine.Object.Destroy(tempCells[i].gameObject); } } for (int i = 0; i < Rows.Count; i++) { bool isService = (i < serviceRowsCount); bool isTopBjectRow = (i == serviceRowsCount); Rows[i].IsSeviceRow = isService; Rows[i].isTopObjectRow = isTopBjectRow; for (int j = 0; j < Rows[i].Length; j++) { Rows[i][j].Init(i, j, Rows, gMode); } } SetObjectsData(lcSet.featuredCells, lcSet.overlays, gMode); Debug.Log("rebuild cells: " + Cells.Count); }
public void Rebuild(LevelConstructSet lcSet, GameObjectsSet mSet, GameMode gMode) { Debug.Log("rebuild "); this.lcSet = lcSet; vertSize = lcSet.VertSize; horSize = lcSet.HorSize; float deltaX = lcSet.DistX; float deltaY = lcSet.DistY; float scale = lcSet.Scale; parent.localScale = new Vector3(scale, scale, scale); this.goSet = mSet; List <CellData> featCells = lcSet.featuredCells; Cells.ForEach((c) => { c.DestroyGridObjects(); }); List <GridCell> tempCells = Cells; Cells = new List <GridCell>(vertSize * horSize + horSize); Rows = new List <Row <GridCell> >(vertSize); xStep = (cellSize.x + deltaX); yStep = (cellSize.y + deltaY); cOffset = (1 - horSize) * xStep / 2.0f; // offset from center by x-axe yStart = (vertSize - 1) * yStep / 2.0f; // create rows GridCell cell; Row <GridCell> row; int cellCounter = 0; int ri = 0; Sprite sRE = mSet.gridCellEven.GetComponent <SpriteRenderer>()?.sprite; Sprite sRO = mSet.gridCellOdd.GetComponent <SpriteRenderer>().sprite; for (int i = 0; i < vertSize; i++) { bool isEvenRow = (i % 2 == 0); row = new Row <GridCell>(horSize); for (int j = 0; j < row.Length; j++) { bool isEvenColumn = (j % 2 == 0); Vector3 pos = new Vector3(j * xStep + cOffset, yStart - i * yStep, 0); if (tempCells != null && cellCounter < tempCells.Count) { cell = tempCells[cellCounter]; cell.gameObject.SetActive(true); cell.transform.localPosition = pos; cellCounter++; SpriteRenderer sR = cell.GetComponent <SpriteRenderer>(); if (sR) { if (isEvenRow) { sR.sprite = (!isEvenColumn) ? sRO : sRE; } else { sR.sprite = (isEvenColumn) ? sRO : sRE; } } } else { if (isEvenRow) { cell = UnityEngine.Object.Instantiate((!isEvenColumn) ? mSet.gridCellOdd : mSet.gridCellEven).GetComponent <GridCell>(); } else { cell = UnityEngine.Object.Instantiate((isEvenColumn) ? mSet.gridCellOdd : mSet.gridCellEven).GetComponent <GridCell>(); } cell.transform.parent = parent; cell.transform.localPosition = pos; cell.transform.localScale = Vector3.one; } Cells.Add(cell); row[j] = cell; } Rows.Add(row); ri++; } // destroy not used cells if (cellCounter < tempCells.Count) { for (int i = cellCounter; i < tempCells.Count; i++) { UnityEngine.Object.Destroy(tempCells[i].gameObject); } } // cache columns Columns = new List <Column <GridCell> >(horSize); Column <GridCell> column; for (int c = 0; c < horSize; c++) { column = new Column <GridCell>(Rows.Count); for (int r = 0; r < Rows.Count; r++) { column[r] = Rows[r][c]; } Columns.Add(column); } for (int r = 0; r < Rows.Count; r++) { for (int c = 0; c < horSize; c++) { Rows[r][c].Init(r, c, Columns[c], Rows[r], gMode); } } SetObjectsData(lcSet, gMode); Debug.Log("rebuild cells: " + Cells.Count); }
public override void RefreshWindow() { LevelConstructSet lCS = GameBoard.LcSet; MissionConstruct lM = lCS.levelMission; LevelType lType = lM.GetLevelType(); int time = lM.TimeConstrain; int moves = lM.MovesConstrain; int level = BubblesPlayer.CurrentLevel + 1; WinController wC = GameBoard.Instance.WController; if (descriptionText) { descriptionText.text = lM.Description; } if (levelNumberText) { levelNumberText.text = level.ToString(); } if (TimeLevelGO) { TimeLevelGO.SetActive(lType == LevelType.TimeLevel); } if (FishLevelGO) { FishLevelGO.SetActive(lType == LevelType.FishLevel); } if (AnchorLevelGO) { AnchorLevelGO.SetActive(lType == LevelType.AnchorLevel); } if (LoopTopRowLevelGO) { LoopTopRowLevelGO.SetActive(lType == LevelType.LoopTopRowLevel); } switch (lType) { case LevelType.LoopTopRowLevel: if (bubblesCountText) { bubblesCountText.text = "x " + wC.TopRowBubblesCountToCollect; } break; case LevelType.TimeLevel: if (timeLimitText) { timeLimitText.text = "x " + time; } break; case LevelType.AnchorLevel: if (anchorCountText) { anchorCountText.text = "x " + 1; } break; case LevelType.FishLevel: int fishCount = 0; int fishCountCollected = 0; wC.GetCurrTarget(out fishCountCollected, out fishCount); if (targetCountText) { targetCountText.text = "x " + fishCount; } break; } base.RefreshWindow(); }
public void InsertAfterLevel(int levelIndex, LevelConstructSet lcs) { Clean(); levelSets.Insert(levelIndex + 1, lcs); SetAsDirty(); }
//#region gift //public void OpenGiftPanel_Click() //{ // Debug.Log("open click"); // ScrollPanelController sRC = GiftPanelContainer.ScrollPanel; // if (sRC) // // { // if (sRC) sRC.CloseScrollPanel(true, null); // } // else // { // //instantiate ScrollRectController // sRC = GiftPanelContainer.InstantiateScrollPanel(); // sRC.textCaption.text = "Gift panel"; // LevelConstructSet lcSet = GameBoard.Instance.gcSet.GetLevelConstructSet(BubblesPlayer.CurrentLevel); // GameConstructSet gcSet = GameBoard.Instance.gcSet; // GiftConstruct levelGift = gcSet.gift; // //create life gift // IncDecInputPanel.Create(sRC.scrollContent, IncDecPanelPrefab, "Life", levelGift.Life.ToString(), // () => { levelGift.AddLifes(1); }, // () => { levelGift.AddLifes(-1); }, // (val) => { int res; bool good = int.TryParse(val, out res); if (good) { levelGift.SetLifesCount(res); }}, // () => { return levelGift.Life.ToString(); }, // null); // //create coins gift // IncDecInputPanel.Create(sRC.scrollContent, IncDecPanelPrefab, "Coins", levelGift.Coins.ToString(), // () => { levelGift.AddCoins(1); }, // () => { levelGift.AddCoins(-1); }, // (val) => { int res; bool good = int.TryParse(val, out res); if (good) { levelGift.SetCoinsCount(res); } }, // () => { return levelGift.Coins.ToString(); }, // null); // //create booster gift // GameObjectsSet goSet = lcSet.Matchset; // IList<BoosterObjectData> bDataL = goSet.BoosterObjects; // foreach (var item in bDataL) // { // int id = item.ID; // IncDecInputPanel.Create(sRC.scrollContent, IncDecPanelPrefab, "Booster", levelGift.GetBoosterCount(id).ToString(), // () => { levelGift.AddBooster(id); }, // () => { levelGift.RemoveBooster(id); }, // (val) => { int res; bool good = int.TryParse(val, out res); if (good) { levelGift.SetBoosterCount(res, id); } }, // () => { return levelGift.GetBoosterCount(id).ToString(); }, // item.GuiImage); // } // sRC.OpenScrollPanel(null); // } //} //#endregion gift #region mission public void OpenMissionPanel_Click() { Debug.Log("open mission click"); BubbleGrid grid = GameBoard.Instance.grid; ScrollPanelController sRC = MissionPanelContainer.ScrollPanel; if (sRC) // { sRC.CloseScrollPanel(true, null); } else { CloseOpenedPanels(); //instantiate ScrollRectController sRC = MissionPanelContainer.InstantiateScrollPanel(); sRC.textCaption.text = "Mission panel"; LevelConstructSet lcSet = GameBoard.Instance.gcSet.GetLevelConstructSet(BubblesPlayer.CurrentLevel); MissionConstruct levelMission = lcSet.levelMission; //create mission moves constrain IncDecInputPanel.Create(sRC.scrollContent, IncDecPanelPrefab, "Moves", levelMission.MovesConstrain.ToString(), () => { levelMission.AddMoves(1); }, () => { levelMission.AddMoves(-1); }, (val) => { int res; bool good = int.TryParse(val, out res); if (good) { levelMission.SetMovesCount(res); } }, () => { return(levelMission.MovesConstrain.ToString()); }, null); //create time constrain IncDecInputPanel.Create(sRC.scrollContent, IncDecPanelPrefab, "Time", levelMission.TimeConstrain.ToString(), () => { levelMission.AddTime(1); }, () => { levelMission.AddTime(-1); }, (val) => { int res; bool good = int.TryParse(val, out res); if (good) { levelMission.SetTime(res); } }, () => { return(levelMission.TimeConstrain.ToString()); }, null); //description input field IncDecInputPanel.Create(sRC.scrollContent, InputTextPanelMissionPrefab, "Description", levelMission.Description, null, null, (val) => { levelMission.SetDescription(val); }, () => { return(levelMission.Description); }, null); // create clean top row check box condition IncDecInputPanel.Create(sRC.scrollContent, TogglePanelMissionPrefab, "Clean top row", null, levelMission.LoopTopRow, null, null, null, (val) => { levelMission.SetLoopTopRow(val); }, null, null); // create raise anchor check box condition IncDecInputPanel.Create(sRC.scrollContent, TogglePanelMissionPrefab, "Raise anchor", null, levelMission.RaiseAnchor, null, null, null, (val) => { levelMission.SetRaiseAnchor(val); }, null, null); //create object targets GameObjectsSet goSet = lcSet.Matchset; IList <BaseObjectData> tDataL = goSet.TargetObjects; foreach (var item in tDataL) { if (item != null) { Debug.Log("target ID: " + item.ID); int id = item.ID; IncDecInputPanel.Create(sRC.scrollContent, IncDecTogglePanelMissionPrefab, "Target", levelMission.GetTargetCount(id).ToString(), levelMission.GetTargetCount(id) == 10000, () => { levelMission.AddTarget(id, 1); }, () => { levelMission.RemoveTarget(id, 1); }, (val) => { int res; bool good = int.TryParse(val, out res); if (good) { levelMission.SetTargetCount(id, res); } }, (val) => { if (val) { levelMission.SetTargetCount(id, 10000); } else { levelMission.SetTargetCount(id, 0); } }, () => { return(levelMission.GetTargetCount(id).ToString()); }, // grid.GetObjectsCountByID(id).ToString()); }, item.GuiImage); } } sRC.OpenScrollPanel(null); } }