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);
	}
示例#4
0
    public override void InitComponent()
    {
        base.InitComponent();

        match3BoardRenderer  = BoardRenderer as Match3BoardRenderer;
        numEffectsFinished   = 0;
        winterchilOriginTile = this;

        tilesToDestroy.Clear();
        winterchillEffects.Clear();

        additionalChildAnimationComponent.Play(childIdleAnimationName);
    }
示例#5
0
    /// <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();
        }
    }
示例#9
0
    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);
    }