public override void InitComponent () { tilesToDestroy.Clear(); base.InitComponent (); wasFirstTapped = false; match3BoardRenderer = BoardRenderer as Match3BoardRenderer; tilesDestroyEffect = prefabTilesDestroyEffect.GetComponent<DestroyEffect>(); delayBeforeTileDestroy = cachedAnimation["effect_winterchill_destruction"].length; }
public override void InitComponent() { tilesToDestroy.Clear(); base.InitComponent(); wasFirstTapped = false; match3BoardRenderer = BoardRenderer as Match3BoardRenderer; tilesDestroyEffect = prefabTilesDestroyEffect.GetComponent <DestroyEffect>(); delayBeforeTileDestroy = cachedAnimation["effect_winterchill_destruction"].length; }
public override void InitComponent () { base.InitComponent (); match3BoardRenderer = BoardRenderer as Match3BoardRenderer; numEffectsFinished = 0; winterchilOriginTile = this; tilesToDestroy.Clear(); winterchillEffects.Clear(); additionalChildAnimationComponent.Play(childIdleAnimationName); }
public override void InitComponent() { base.InitComponent(); match3BoardRenderer = BoardRenderer as Match3BoardRenderer; numEffectsFinished = 0; winterchilOriginTile = this; tilesToDestroy.Clear(); winterchillEffects.Clear(); additionalChildAnimationComponent.Play(childIdleAnimationName); }
/// <summary> /// Loads the level. Indexed from 1. /// If the level is not found it will load a default level prefab called: DefaultLevel. /// </summary> /// <param name='numLevel'> /// Number level. /// </param> public void LoadLevel(int numLevel) { // Check if there isn't a level already in the hierarchy before trying to instatiate one. Match3BoardRenderer level = cachedTransform.parent.GetComponentInChildren <Match3BoardRenderer>(); BackgroundLoader.defaultLevelLoaded = false; //numLevel = 200; if (level == null) { Debug.Log("[Match3BoardGameLogic] Trying to load level: " + Match3BoardRenderer.baseLevelPathName + numLevel); GameObject levelPrefab = Resources.Load(Match3BoardRenderer.baseLevelPathName + numLevel) as GameObject; // If for some reason we can't find this level, load the default level if (levelPrefab == null) { Debug.LogWarning("[Match3BoardGameLogic] Failed to load level: " + Match3BoardRenderer.baseLevelPathName + numLevel + ". Falling back to default level!"); BackgroundLoader.defaultLevelLoaded = true; levelPrefab = Resources.Load(Match3BoardRenderer.baseLevelPathName + "Default") as GameObject; } GameObject newLevelGO = Instantiate(levelPrefab) as GameObject; level = newLevelGO.GetComponent <Match3BoardRenderer>(); Vector3 prefabLocalPos = level.cachedTransform.localPosition; level.cachedTransform.parent = boardVisualContainer; level.cachedTransform.localPosition = prefabLocalPos; level.cachedTransform.localScale = Vector3.one; } else { Debug.Log("[Match3BoardGameLogic] Level already found in the scene! Loading that one: " + level.name); if (level.name.ToLower().Contains("default")) { BackgroundLoader.defaultLevelLoaded = true; } } // Couple the Match3BoardRenderer that contains the level configuration. boardRenderer = level; boardAnimations.boardRenderer = level; // If we didn't load the default level we should set the win and lose conditions from the new level on the game logic if (!BackgroundLoader.defaultLevelLoaded) { winConditions = level.winConditions; loseConditions = level.loseConditions; } }
// [System.NonSerialized] // public string boardBgGameObjName = "Match3Board/BoardVisuals/BoardBackground"; // protected GameObject boardBackground; protected override void Awake () { base.Awake (); instance = this; // Initialize static board renderer properties for easier access maxNumBoardColors = maximumNumBoardColors; Match3BoardRenderer.horizTileOffset = horizontalTileOffset; Match3BoardRenderer.horizTileDistance = horizontalTileDistance; Match3BoardRenderer.vertTileOffset = verticalTileOffset; Match3BoardRenderer.vertTileDistance = verticalTileDistance; // Pre-calculate some in-game required board renderer stuff. Match3BoardRenderer.halfHorizTileDistance = horizontalTileDistance * 0.5f; Match3BoardRenderer.halfVertTileDistance = verticalTileDistance * 0.5f; Match3BoardRenderer.boardYDirectionSign = -(int)Mathf.Sign(cachedTransform.up.y); Match3BoardRenderer.maxBoardColSize = horizontalTileDistance * Board.NumColumns; Match3BoardRenderer.maxBoardRowSize = verticalTileDistance * Board.NumRows; Match3BoardRenderer.sqrVertTileDistance = Match3BoardRenderer.vertTileDistance * Match3BoardRenderer.vertTileDistance; // Match3BoardRenderer.sqrAproxTileDistance = (Match3BoardRenderer.vertTileDistance + Match3BoardRenderer.halfVertTileDistance * 0.5f) * // (Match3BoardRenderer.vertTileDistance + Match3BoardRenderer.halfVertTileDistance * 0.5f); }
// [System.NonSerialized] // public string boardBgGameObjName = "Match3Board/BoardVisuals/BoardBackground"; // protected GameObject boardBackground; protected override void Awake() { base.Awake(); instance = this; // Initialize static board renderer properties for easier access maxNumBoardColors = maximumNumBoardColors; Match3BoardRenderer.horizTileOffset = horizontalTileOffset; Match3BoardRenderer.horizTileDistance = horizontalTileDistance; Match3BoardRenderer.vertTileOffset = verticalTileOffset; Match3BoardRenderer.vertTileDistance = verticalTileDistance; // Pre-calculate some in-game required board renderer stuff. Match3BoardRenderer.halfHorizTileDistance = horizontalTileDistance * 0.5f; Match3BoardRenderer.halfVertTileDistance = verticalTileDistance * 0.5f; Match3BoardRenderer.boardYDirectionSign = -(int)Mathf.Sign(cachedTransform.up.y); Match3BoardRenderer.maxBoardColSize = horizontalTileDistance * Board.NumColumns; Match3BoardRenderer.maxBoardRowSize = verticalTileDistance * Board.NumRows; Match3BoardRenderer.sqrVertTileDistance = Match3BoardRenderer.vertTileDistance * Match3BoardRenderer.vertTileDistance; // Match3BoardRenderer.sqrAproxTileDistance = (Match3BoardRenderer.vertTileDistance + Match3BoardRenderer.halfVertTileDistance * 0.5f) * // (Match3BoardRenderer.vertTileDistance + Match3BoardRenderer.halfVertTileDistance * 0.5f); }
public void UpdateCompanions(int[] indexes) { if (indexes.Length > 1) { chooseLabelLandscape.GetComponent <UILabel>().text = Language.Get("LEVEL_CHOOSE_COMPANION"); chooseLabelPortrait.GetComponent <UILabel>().text = Language.Get("LEVEL_CHOOSE_COMPANION"); } else { chooseLabelLandscape.GetComponent <UILabel>().text = Language.Get("LEVEL_COMPANION"); chooseLabelPortrait.GetComponent <UILabel>().text = Language.Get("LEVEL_COMPANION"); } CharacterSpecialAnimations.characterIndex = -1; for (int i = 0; i < 4; ++i) { companionsLandscape[i].gameObject.SetActive(i < indexes.Length); companionsPortrait[i].gameObject.SetActive(i < indexes.Length); companionsLandscape[i].selected = i == 0; companionsPortrait[i].selected = i == 0; companionsLandscape[i].transform.localPosition = positionsLandscape[i] + (positionsLandscape[1] - positionsLandscape[0]) * (4 - indexes.Length) * 0.5f; companionsPortrait[i].transform.localPosition = positionsPortrait[i] + (positionsPortrait[1] - positionsPortrait[0]) * (4 - indexes.Length) * 0.5f; if (i < indexes.Length) { companionsLandscape[i].UpdateCompanion(indexes[i]); companionsPortrait[i].UpdateCompanion(indexes[i]); } } tokensLabelLandscape.UpdateStatus(); tokensLabelPortrait.UpdateStatus(); GameObject levelPrefab = Resources.Load("Game/Levels/Level" + Match3BoardRenderer.levelIdx) as GameObject; if (levelPrefab != null) { Match3BoardRenderer levelData = levelPrefab.GetComponent <Match3BoardRenderer>(); if (levelData != null) { string key = "Level" + Match3BoardRenderer.levelIdx + "Star1"; if (TweaksSystem.Instance.intValues.ContainsKey(key)) { targetLabelLandscape.text = Language.Get("LEVEL_TARGET") + " " + ScoreSystem.FormatScore(TweaksSystem.Instance.intValues[key]); } else { targetLabelLandscape.text = Language.Get("LEVEL_TARGET") + " " + ScoreSystem.FormatScore((levelData.winConditions as WinScore).targetScore); } targetLabelPortrait.text = targetLabelLandscape.text; //objectiveLabelLandscape.text = Language.Get("LEVEL_OBJECTIVE") + "\n" + levelData.winConditions.GetObjectiveString(); objectiveLabelLandscape.text = levelData.winConditions.GetShortObjectiveString(levelData.loseConditions); objectiveLabelPortrait.text = objectiveLabelLandscape.text; foreach (LevelDestroyTargets target in destroyTargets) { target.UpdateValues(levelData.winConditions); } Vector3 newPos = targetLabelPortrait.transform.localPosition; if (levelData.winConditions.GetType() != typeof(WinDestroyTiles) && levelData.winConditions.GetType() != typeof(WinDestroyTilesDrop)) { newPos.y = 112f; } else { newPos.y = 86f; } targetLabelPortrait.transform.localPosition = newPos; targetLabelLandscape.transform.localPosition = targetLabelPortrait.transform.localPosition; } // levelPrefab = null; // Resources.UnloadUnusedAssets(); } }
public bool Init(bool allocateNewGrid, Match3BoardPiece[,] oldBoardGrid) { boardRenderer = GameObject.FindObjectOfType(typeof(Match3BoardRenderer)) as Match3BoardRenderer; if (boardRenderer != null) { boardData = boardRenderer.GetComponent <BoardData>(); } else { // EditorUtility.DisplayDialog("Level Editor", "No Match3BoardRenderer component found in the scene!", "Ok"); return(false); } // Init default board piece to use when no board piece is found in a certain grid position defaultBoardPiece = LevelEditorUtils.GetPrefabFromArray <Match3BoardPiece>(defaultBoardPieceType, boardRenderer.prefabsPieces); if (defaultBoardPiece == null) { EditorUtility.DisplayDialog("Level Editor", "Default board piece of type: " + defaultBoardPieceType.Name + " not found in the board pieces prefabs list on the Match3BoardRenderer component!", "Ok"); return(false); } if (boardData != null) { boardNumRows = boardData.NumRows; boardNumCols = boardData.NumColumns; if (allocateNewGrid) { boardGrid = new Match3BoardPiece[boardNumRows, boardNumCols]; } // // Copy old grid to new grid (boardGrid) // if (oldBoardGrid != null) { // int oldBoardNumRows = oldBoardGrid.GetLength(0); // int oldBoardNumCols = oldBoardGrid.GetLength(1); // // for(int rowIdx = 0; rowIdx < boardNumRows; rowIdx++) { // for(int colIdx = 0; colIdx < boardNumCols; colIdx++) { // if (rowIdx < oldBoardNumRows && colIdx < oldBoardNumCols) { // boardGrid[rowIdx, colIdx] = oldBoardGrid[rowIdx, colIdx]; // } else { // // If the new grid is bigger than the old grid, add default board pieces // Match3BoardPiece newPiece = SpawnBoardPieceAt(new BoardCoord(rowIdx, colIdx), defaultBoardPiece.gameObject); // UpdateBoardPieceGridTransform(newPiece, new BoardCoord(rowIdx, colIdx)); // } // } // } // // // Destroy extra board pieces if the new grid is smaller than the old grid // for(int rowIdx = boardNumRows - 1; rowIdx < oldBoardNumRows; rowIdx++) { // for(int colIdx = boardNumCols - 1; colIdx < oldBoardNumCols; colIdx++) { // DestroyBoardPiece(oldBoardGrid[rowIdx, colIdx]); // } // } // } else { // // Init board with default board piece. // for(int rowIdx = 0; rowIdx < boardNumRows; rowIdx++) { // for(int colIdx = 0; colIdx < boardNumCols; colIdx++) { // // If the new grid is bigger than the old grid, add default board pieces // Match3BoardPiece newPiece = SpawnBoardPieceAt(new BoardCoord(rowIdx, colIdx), defaultBoardPiece.gameObject); // UpdateBoardPieceGridTransform(newPiece, new BoardCoord(rowIdx, colIdx)); // } // } // } } else { EditorUtility.DisplayDialog("Level Editor", "No BoardData component found on the Match3BoardRenderer!", "Ok"); return(false); } return(true); }