Exemple #1
0
    void MakeJewelsBounce()
    {
        GameObject             a             = instantiator.GetJewelGridGameObject(2, 1);
        RockLevelJewelMovement jewelMovement = a.GetComponent <RockLevelJewelMovement> ();

        a.GetComponent <Rigidbody2D>().AddForce(new Vector2(0, 300));
        jewelMovement.SetBounceAgain(true);
        jewelMovement.SetBounced(false);

        a             = instantiator.GetJewelGridGameObject(2, 3);
        jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
        a.GetComponent <Rigidbody2D>().AddForce(new Vector2(0, 300));
        jewelMovement.SetBounceAgain(true);
        jewelMovement.SetBounced(false);

        a             = instantiator.GetJewelGridGameObject(2, 4);
        jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
        a.GetComponent <Rigidbody2D>().AddForce(new Vector2(0, 300));
        jewelMovement.SetBounceAgain(true);
        jewelMovement.SetBounced(false);

        a             = instantiator.GetJewelGridGameObject(1, 2);
        jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
        a.GetComponent <Rigidbody2D>().AddForce(new Vector2(0, 300));
        jewelMovement.SetBounceAgain(true);
        jewelMovement.SetBounced(false);
    }
Exemple #2
0
    private void InstantiateBombSeekingHomingStar(GameObject star, GameObject jewel)
    {
        GameObject instantiatedStar = (GameObject)Instantiate(star, new Vector3(jewel.transform.position.x, jewel.transform.position.y, -49), Quaternion.identity);

        homingStarMovement = instantiatedStar.GetComponent <RockLevelHomingStarMovement> ();
        jewelMovement      = jewel.GetComponent <RockLevelJewelMovement> ();
        GameObject randomBomb = bombHandler.GetRandomBomb();

        random1 = randomBomb.GetComponent <RockLevelJewelMovement> ().GetRow();
        random2 = randomBomb.GetComponent <RockLevelJewelMovement> ().GetCol();
        if (instantiator.GetJewelGridGameObject(random1, random2) != null)
        {
            jewelMovement2 = instantiator.GetJewelGridGameObject(random1, random2).GetComponent <RockLevelJewelMovement> ();
        }
        while (instantiator.GetJewelGridGameObject(random1, random2) == null || (random1 == jewelMovement.GetRow() && random2 == jewelMovement.GetCol()) || checkForMatches.deleteList.Contains(instantiator.GetJewelGridGameObject(random1, random2)) || jewelMovement2.GetMoving() || !targetJewels.Add(instantiator.GetJewelGridGameObject(random1, random2)))
        {
            random1 = Random.Range(0, 9);
            random2 = Random.Range(0, 9);
            if (instantiator.GetJewelGridGameObject(random1, random2) != null)
            {
                jewelMovement2 = instantiator.GetJewelGridGameObject(random1, random2).GetComponent <RockLevelJewelMovement> ();
            }
        }
        homingStarMovement.SetRow(random1);
        homingStarMovement.SetCol(random2);
        homingStarMovement.SetFourInARowStar();
        homingStarList.Add(instantiatedStar);
    }
    void InstantiateTutorailChildStars()
    {
        switch (tutorialNumber)
        {
        case 0: row = 1; col = 8; break;

        case 1: row = 2; col = 2; break;

        case 2: row = 3; col = 2; break;

        case 3: row = 4; col = 3; break;

        case 4: row = 5; col = 1; break;

        case 5: row = 6; col = 7; break;

        case 6: row = 7; col = 5; break;

        case 7: row = 8; col = 3; break;

        case 8: row = 7; col = 7; break;

        case 9: row = 6; col = 2; break;

        case 10: row = 5; col = 4; break;

        case 11: row = 4; col = 2; break;
        }
        tutorialNumber++;
        jewelMovement = instantiator.GetJewelGridGameObject(row, col).GetComponent <RockLevelJewelMovement> ();
    }
    void InstantiateHomingStar()
    {
//		Debug.Log ("Instantiating Shooting Star");
        tempStar           = (GameObject)Instantiate(GetRandomStar(), starStartingPosition, Quaternion.identity);
        homingStarMovement = tempStar.GetComponent <RockLevelHomingStarMovement> ();
        row           = Random.Range(0, 9);
        col           = Random.Range(0, 9);
        jewelMovement = instantiator.GetJewelGridGameObject(row, col).GetComponent <RockLevelJewelMovement> ();
        while (!PowerStarTracker.AddToHashSet(instantiator.GetJewelGridGameObject(row, col)))
        {
            row = Random.Range(0, 9);
            col = Random.Range(0, 9);
        }
//		jewelMovement = instantiator.GetJewelGridGameObject (row, col).GetComponent<RockLevelJewelMovement> ();
//		while (jewelMovement.GetMoving () || !PowerStarTracker.AddToHashSet (instantiator.GetJewelGridGameObject (row, col))) {
//			row = Random.Range (0, 9);
//			col = Random.Range (0, 9);
//			while (instantiator.GetJewelGridGameObject (row, col) == null) {
//				row = Random.Range (0, 9);
//				col = Random.Range (0, 9);
//			}
//			jewelMovement = instantiator.GetJewelGridGameObject (row, col).GetComponent<RockLevelJewelMovement> ();
//		}
        homingStarMovement.SetRow(row);
        homingStarMovement.SetCol(col);
    }
 private void DropJewel(GameObject jewel)
 {
     jewelMovement = jewel.GetComponent <RockLevelJewelMovement> ();
     jewelMovement.SetJewelFalling(true);
     jewelMovement.SetShuffleJewel(true);
     jewel.GetComponent <Rigidbody2D>().gravityScale = Random.Range(3, 6);
     jewel.layer = 0;
 }
    private void AddJewelToRandomSpot(GameObject jewel)
    {
        int randomRow = Random.Range(0, 9);
        int randomCol = Random.Range(0, 9);

        for (int j = randomCol; j < 9; j++)
        {
            if (tempJewelGrid[randomRow, j] == null)
            {
                jewelMovement = jewel.GetComponent <RockLevelJewelMovement> ();
                jewelMovement.SetRow(randomRow);
                jewelMovement.SetCol(j);
                jewel.layer = randomRow + 17;
                tempJewelGrid[randomRow, j] = jewel;
                jewelMovement.SetShuffleJewel(true);
                return;
            }
        }

        for (int i = randomRow + 1; i < 9; i++)
        {
            for (int j = 0; j < 9; j++)
            {
                if (tempJewelGrid[i, j] == null)
                {
                    jewelMovement = jewel.GetComponent <RockLevelJewelMovement> ();
                    jewelMovement.SetRow(i);
                    jewelMovement.SetCol(j);
                    jewel.layer         = i + 17;
                    tempJewelGrid[i, j] = jewel;
                    jewelMovement.SetShuffleJewel(true);
                    return;
                }
            }
        }

        for (int i = 0; i < 9; i++)
        {
            for (int j = 0; j < 9; j++)
            {
                if (tempJewelGrid[i, j] == null)
                {
                    jewelMovement = jewel.GetComponent <RockLevelJewelMovement> ();
                    jewelMovement.SetRow(i);
                    jewelMovement.SetCol(j);
                    jewel.layer         = i + 17;
                    tempJewelGrid[i, j] = jewel;
                    jewelMovement.SetShuffleJewel(true);
                    return;
                }
            }
        }
    }
Exemple #7
0
    public void ActivateCornersPowers(GameObject jewel)
    {
        deleteJewels.StampTimeCard();
        ResetIntsAndBools();
        switch (jewel.tag)
        {
        case "Green Bomb":
        case "Green Block": starToInstantiate = greenCornerStar; break;

        case "Red Bomb":
        case "Red Block": starToInstantiate = redCornerStar; break;

        case "Blue Bomb":
        case "Blue Block": starToInstantiate = blueCornerStar; break;

        case "White Bomb":
        case "White Block": starToInstantiate = whiteCornerStar; break;

        case "Orange Bomb":
        case "Yellow Block": starToInstantiate = orangeCornerStar; break;

        case "Purple Bomb":
        case "Purple Block": starToInstantiate = purpleCornerStar; break;
        }
        jewelMovement = jewel.GetComponent <RockLevelJewelMovement> ();
        if (jewelMovement.GetRow() + 1 < 9 && JewelsAreTheSame(instantiator.GetJewelGridGameObject(jewelMovement.GetRow() + 1, jewelMovement.GetCol()).tag, jewel.tag))
        {
            starNumber++;
            negativeVerticalStar = true;
        }
        if (jewelMovement.GetRow() - 1 >= 0 && JewelsAreTheSame(instantiator.GetJewelGridGameObject(jewelMovement.GetRow() - 1, jewelMovement.GetCol()).tag, jewel.tag))
        {
            starNumber++;
            positiveVerticalStar = true;
        }
        if (jewelMovement.GetCol() + 1 < 9 && JewelsAreTheSame(instantiator.GetJewelGridGameObject(jewelMovement.GetRow(), jewelMovement.GetCol() + 1).tag, jewel.tag))
        {
            starNumber++;
            positiveHorizontalStar = true;
        }
        if (jewelMovement.GetCol() - 1 >= 0 && JewelsAreTheSame(instantiator.GetJewelGridGameObject(jewelMovement.GetRow(), jewelMovement.GetCol() - 1).tag, jewel.tag))
        {
            starNumber++;
            negativeHorizontalStar = true;
        }
        InstantiateCornerStars(jewel);
    }
    public void CheckGridForMovement()
    {
        gridStatic = false;
        if (GameObject.Find("Time Bomb Identification") != null)
        {
            if (GameObject.Find("Time Bomb Identification").GetComponent <TimeBombController> ().GetBombsExploding())
            {
                return;
            }
        }
        for (int i = 0; i < 9; i++)
        {
            for (int j = 0; j < 9; j++)
            {
                if (instantiator.GetJewelGridGameObject(i, j) == null)
                {
                    return;
                }
                jewelMovement = instantiator.GetJewelGridGameObject(i, j).GetComponent <RockLevelJewelMovement> ();
                if (PaidPowerTracker.GetPowerListSize() != 0 /*|| starShooter.GetBombCount () > 0 || fourInARow.GetHomingStarList ().Count > 0 || fiveInARow.GetMotherStarList ().Count > 0 || fiveInARow.GetMotherStarList ().Count > 0 || corners.GetCornerStarList ().Count > 0*/)
                {
                    gridStatic = false;
                    deleteJewels.PunchNewTimeStamp();
                    return;
                }
            }
        }

        if (!shuffle.GetShuffleFinished())
        {
            shuffle.SetShuffleFinished(true);
        }
        if (noMatchChecker.CheckForNoMatches())
        {
            gridStatic = false;
            deleteJewels.PunchNewTimeStamp();
            return;
        }
        if (!soundController.GetGameStarted())
        {
            soundController.SetGameStarted(true);
        }
        CheckEveryJewelForMatch();
        gridStatic = true;
        PowerStarTracker.Clear();
    }
Exemple #9
0
    private void CheckTouch(Vector3 pos)
    {
        Vector3 wp       = Camera.main.ScreenToWorldPoint(pos);
        Vector2 touchPos = new Vector2(wp.x, wp.y);

        hit = Physics2D.OverlapPoint(touchPos);

        if (swapCooldown)
        {
            return;
        }

        if (/*!swapJewels.GetPauseTouchForSwap () &&*/ hit != null && !PowerStarTracker.ContainsJewel(hit.gameObject) /*&& !checkForMatches.JewelOkayToMove (hit.gameObject)*/ && HasCorrectTags(hit.gameObject) && hit.gameObject.name != "Slug Meal" && fiveInARow.GetMotherStarList().Count == 0 && corners.GetCornerStarGreaterThan10() && fiveInARow.GetChildStarList().Count == 0 && fourInARow.GetHomingStarList().Count == 0 && firstPressed == null /*&& deleteJewels.OkayToMoveAgain ()*/)
        {
            jewelMovement = hit.gameObject.GetComponent <RockLevelJewelMovement> ();
            if (!jewelMovement.GetToBeDestroyed() && !jewelMovement.GetMoving() && jewelMovement.GetOnPlatform() && !checkForMatches.deleteList.Contains(hit.gameObject))
            {
                if (tutorialLevel2 && hit.gameObject.name != "Level Two Tutorial Jewel")
                {
                    return;
                }
                firstPressed = hit.gameObject;
            }
        }
        else if (/*!swapJewels.GetPauseTouchForSwap () &&*/ hit != null && !PowerStarTracker.ContainsJewel(hit.gameObject) /*&& !checkForMatches.JewelOkayToMove (hit.gameObject) */ && HasCorrectTags(hit.gameObject) && hit.gameObject.name != "Slug Meal" /*&& deleteJewels.OkayToMoveAgain () */ && corners.GetCornerStarGreaterThan10() && fiveInARow.GetMotherStarList().Count == 0 && fiveInARow.GetChildStarList().Count == 0 && firstPressed != null && secondPressed == null && hit.gameObject != firstPressed && fourInARow.GetHomingStarList().Count == 0 &&
                 //((jewelMovement.GetRow () == hit.gameObject.GetComponent<RockLevelJewelMovement> ().GetRow () && Mathf.Abs (jewelMovement.GetCol () - hit.gameObject.GetComponent<RockLevelJewelMovement> ().GetCol ()) == 1) ||
                 //(jewelMovement.GetCol () == hit.gameObject.GetComponent<RockLevelJewelMovement> ().GetCol () && Mathf.Abs (jewelMovement.GetRow () - hit.gameObject.GetComponent<RockLevelJewelMovement> ().GetRow ()) == 1)))
                 Mathf.Abs(hit.gameObject.transform.position.x - firstPressed.transform.position.x) < .66 &&
                 Mathf.Abs(hit.gameObject.transform.position.y - firstPressed.transform.position.y) < .66 && (Mathf.Abs(hit.gameObject.transform.position.x - firstPressed.transform.position.x) < .1 || Mathf.Abs(hit.gameObject.transform.position.y - firstPressed.transform.position.y) < .1))
        {
            //{

            jewelMovement = hit.gameObject.GetComponent <RockLevelJewelMovement> ();
            if (!jewelMovement.GetToBeDestroyed() && !jewelMovement.GetMoving() && jewelMovement.GetOnPlatform() && !checkForMatches.deleteList.Contains(hit.gameObject))
            {
                if (tutorialLevel2 && hit.gameObject.name != "Level Two Tutorial Jewel")
                {
                    return;
                }
                secondPressed = hit.gameObject;
                swapCooldown  = true;
                timeStamp     = Time.time;
                swapJewels.Swap(firstPressed, secondPressed, false);
            }
        }
    }
Exemple #10
0
    // Update is called once per frame
    void Update()
    {
        if (startDecent)
        {
            transform.Translate((targetX - transform.position.x) * Time.deltaTime * 15f, (targetY - transform.position.y) * Time.deltaTime * 15f, 0, Space.World);
            if (!targetJewelSet)
            {
                deleteJewels.StampTimeCard();
                jewelToDestroy = instantiator.GetJewelGridGameObject(row, col);
                while (!PowerStarTracker.AddToHashSet(jewelToDestroy))
                {
                    row            = Random.Range(0, 9);
                    col            = Random.Range(0, 9);
                    jewelToDestroy = instantiator.GetJewelGridGameObject(row, col);
                    crosshair.transform.position = new Vector3(-2.45f + (col * .6125f), 2.591252f - (row * .6097268f), -23);
                }
                targetJewelSet = true;
            }
        }

        if (startDecent && Mathf.Abs(targetX - transform.position.x) < .05f && Mathf.Abs(targetY - transform.position.y) < .05f)
        {
            if (jewelToDestroy != null)
            {
                if (IsJewel(gameObject.tag) || IsBomb(gameObject))
                {
                    jewelMovement = jewelToDestroy.GetComponent <RockLevelJewelMovement> ();
                    jewelMovement.StartDestroyCountdown();
                }
                if (jewelToDestroy != null && !swapJewel.IsASwapJewel(jewelToDestroy))
                {
                    deleteList.Add(jewelToDestroy);
                    deleteJewels.DeleteAllJewelsInList(deleteList, true);
                }
            }
            Destroy(crosshair);
            fiveInARow.GetChildStarList().Remove(gameObject);
            if (fiveInARow.TutorialListContainsStar(gameObject))
            {
                fiveInARow.RemoveStarFromTutorialList(gameObject);
            }
            Destroy(gameObject);
        }
    }
Exemple #11
0
    private bool CheckForSwipeDownVerticalMatch(int row, int col, GameObject jewel)
    {
        int oldRow = row;

        row = row + 1;
        if (row < 9)
        {
            if (instantiator.GetJewelGridGameObject(row, col).tag == "Boulder" || instantiator.GetJewelGridGameObject(row, col).tag == "Steel Block")
            {
                return(false);
            }
            int rowOffset = 1;
            secondaryMatchList.Add(instantiator.GetJewelGridGameObject(oldRow, col));
            while (row + rowOffset >= 0 && instantiator.GetJewelGridGameObject(row + rowOffset, col) != null && JewelsAreTheSame(jewel.tag, instantiator.GetJewelGridGameObject(row + rowOffset, col).tag))
            {
                secondaryMatchList.Add(instantiator.GetJewelGridGameObject(row + rowOffset, col));
                rowOffset++;
            }
        }
        if (secondaryMatchList.Count > 2)
        {
            foreach (GameObject a in secondaryMatchList)
            {
                matchList.Add(a);
            }
        }
        if (matchList.Count > 2)
        {
            foreach (GameObject a in matchList)
            {
                jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
                jewelMovement.SetMoving(true);
                a.GetComponent <Rigidbody2D>().AddForce(bounceForce);
                jewelMovement.SetBounceAgain(true);
//				jewelMovement.SetBounced (false);
            }
            secondaryMatchList.Clear();
            matchList.Clear();
            return(true);
        }
        secondaryMatchList.Clear();
        matchList.Clear();
        return(false);
    }
Exemple #12
0
    private bool CheckForSwipeRightHorizontalMatch(int row, int col, GameObject jewel)
    {
        int oldCol = col;

        col = col + 1;
        if (col < 9)
        {
            if (instantiator.GetJewelGridGameObject(row, col).tag == "Boulder" || instantiator.GetJewelGridGameObject(row, col).tag == "Steel Block")
            {
                return(false);
            }
            int colOffset = 1;
            secondaryMatchList.Add(instantiator.GetJewelGridGameObject(row, oldCol));
            while (col + colOffset < 9 && instantiator.GetJewelGridGameObject(row, col + colOffset) != null && JewelsAreTheSame(jewel.tag, instantiator.GetJewelGridGameObject(row, col + colOffset).tag))
            {
                secondaryMatchList.Add(instantiator.GetJewelGridGameObject(row, col + colOffset));
                colOffset++;
            }
            if (secondaryMatchList.Count > 2)
            {
                foreach (GameObject a in secondaryMatchList)
                {
                    matchList.Add(a);
                }
            }
            if (matchList.Count > 2)
            {
                foreach (GameObject a in matchList)
                {
                    jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
                    a.GetComponent <Rigidbody2D>().AddForce(bounceForce);
                    jewelMovement.SetBounceAgain(true);
                    jewelMovement.SetBounced(false);
                }
                secondaryMatchList.Clear();
                matchList.Clear();
                return(true);
            }
        }
        secondaryMatchList.Clear();
        matchList.Clear();
        return(false);
    }
    void InstantiateChildStars()
    {
        instantiatedStar  = (GameObject)Instantiate(childStar, new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, -15), Quaternion.identity);
        childStarMovement = instantiatedStar.GetComponent <RockLevelChildStarMovement> ();
        if (!tutorialLevel)
        {
            row = Random.Range(0, 9);
            col = Random.Range(0, 9);
            while (IsBomb(instantiator.GetJewelGridGameObject(row, col).tag) || instantiator.GetJewelGridGameObject(row, col) == null)
            {
                row = Random.Range(0, 9);
                col = Random.Range(0, 9);
            }
            jewelMovement = instantiator.GetJewelGridGameObject(row, col).GetComponent <RockLevelJewelMovement> ();
            while (IsBomb(instantiator.GetJewelGridGameObject(row, col).tag) || jewelMovement.GetMoving() || jewelList.Contains(instantiator.GetJewelGridGameObject(row, col)))
            {
                row = Random.Range(0, 9);
                col = Random.Range(0, 9);
                while (instantiator.GetJewelGridGameObject(row, col) == null)
                {
                    row = Random.Range(0, 9);
                    col = Random.Range(0, 9);
                }
                jewelMovement = instantiator.GetJewelGridGameObject(row, col).GetComponent <RockLevelJewelMovement> ();
            }
        }
        else
        {
            InstantiateTutorailChildStars();
            jewelMovement = instantiator.GetJewelGridGameObject(row, col).GetComponent <RockLevelJewelMovement> ();
        }

        childStarMovement = instantiatedStar.GetComponent <RockLevelChildStarMovement> ();
        //		childStarMovement.StartDecent ();
        //		jewelMovement.targetForExplosion ();
        childStarArray.Add(instantiatedStar);
        fiveInARow.GetChildStarList().Add(instantiatedStar);
        jewelList.Add(instantiator.GetJewelGridGameObject(row, col));
        instantiatedTarget = (GameObject)Instantiate(target, new Vector3(-2.45f + (col * .6125f), 2.591252f - (row * .6097268f), -23), Quaternion.identity);
        childStarMovement.SetTargetPosition(instantiator.GetJewelGridGameObject(row, col).transform.position, row, col, instantiatedTarget);
    }
 // Use this for initialization
 void Start()
 {
     if (name == "Slug(Clone)")
     {
         currentBoulder = boulder;
     }
     else if (name == "Slug Stage 2(Clone)")
     {
         currentBoulder = boulderStage2;
     }
     else if (name == "Slug Stage 3(Clone)")
     {
         currentBoulder = boulderStage3;
     }
     else if (name == "Slug Stage 4(Clone)")
     {
         currentBoulder = boulderStage4;
     }
     instantiator  = GameObject.Find("Level Controller").GetComponent <RockLevelInstantiator> ();
     jewelMovement = gameObject.GetComponent <RockLevelJewelMovement> ();
     swapJewel     = GameObject.Find("Level Controller").GetComponent <RockLevelSwapJewel> ();
 }
    void InstantiateBombSeekingChildStars()
    {
        GameObject randomBomb = bombHandler.GetRandomBomb();

        if (randomBomb == null)
        {
            InstantiateChildStars();
            return;
        }
        instantiatedStar  = (GameObject)Instantiate(childStar, new Vector3(gameObject.transform.position.x, gameObject.transform.position.y, -15), Quaternion.identity);
        childStarMovement = instantiatedStar.GetComponent <RockLevelChildStarMovement> ();
        row = randomBomb.GetComponent <RockLevelJewelMovement> ().GetRow();
        col = randomBomb.GetComponent <RockLevelJewelMovement> ().GetCol();
        while (instantiator.GetJewelGridGameObject(row, col) == null)
        {
            row = Random.Range(0, 9);
            col = Random.Range(0, 9);
        }
        jewelMovement = instantiator.GetJewelGridGameObject(row, col).GetComponent <RockLevelJewelMovement> ();
        while (jewelMovement.GetMoving() || jewelList.Contains(instantiator.GetJewelGridGameObject(row, col)))
        {
            row = Random.Range(0, 9);
            col = Random.Range(0, 9);
            while (instantiator.GetJewelGridGameObject(row, col) == null)
            {
                row = Random.Range(0, 9);
                col = Random.Range(0, 9);
            }
            jewelMovement = instantiator.GetJewelGridGameObject(row, col).GetComponent <RockLevelJewelMovement> ();
        }

        childStarMovement = instantiatedStar.GetComponent <RockLevelChildStarMovement> ();
        childStarArray.Add(instantiatedStar);
        fiveInARow.GetChildStarList().Add(instantiatedStar);
        jewelList.Add(instantiator.GetJewelGridGameObject(row, col));
        instantiatedTarget = (GameObject)Instantiate(target, new Vector3(-2.45f + (col * .6125f), 2.591252f - (row * .6097268f), -23), Quaternion.identity);
        childStarMovement.SetTargetPosition(instantiator.GetJewelGridGameObject(row, col).transform.position, row, col, instantiatedTarget);
    }
Exemple #16
0
    void MakeJewelsBounce()
    {
        RockLevelInstantiator instantiator = GameObject.Find("Level Controller").GetComponent <RockLevelInstantiator> ();

        GameObject             a             = instantiator.GetJewelGridGameObject(4, 2);
        RockLevelJewelMovement jewelMovement = a.GetComponent <RockLevelJewelMovement> ();

        a.GetComponent <Rigidbody2D>().AddForce(new Vector2(0, 300));
        jewelMovement.SetBounceAgain(true);
        jewelMovement.SetBounced(false);

        a             = instantiator.GetJewelGridGameObject(3, 3);
        jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
        a.GetComponent <Rigidbody2D>().AddForce(new Vector2(0, 300));
        jewelMovement.SetBounceAgain(true);
        jewelMovement.SetBounced(false);

        a             = instantiator.GetJewelGridGameObject(4, 4);
        jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
        a.GetComponent <Rigidbody2D>().AddForce(new Vector2(0, 300));
        jewelMovement.SetBounceAgain(true);
        jewelMovement.SetBounced(false);
    }
Exemple #17
0
    void InstantiateTutorialTwoHomingStar(GameObject star, GameObject jewel)
    {
        GameObject instantiatedStar = (GameObject)Instantiate(star, new Vector3(jewel.transform.position.x, jewel.transform.position.y, -49), Quaternion.identity);

        homingStarMovement = instantiatedStar.GetComponent <RockLevelHomingStarMovement> ();
        jewelMovement      = jewel.GetComponent <RockLevelJewelMovement> ();
        switch (tutorial2Count)
        {
        case 0: random1 = 7; random2 = 1; break;

        case 1: random1 = 6; random2 = 2; break;

        case 2: random1 = 5; random2 = 4; break;

        case 3: random1 = 1; random2 = 5; break;

        default: tutorialLevel2 = false; InstantiateHomingStar(star, jewel); return;
        }
        tutorial2Count++;
        homingStarMovement.SetRow(random1);
        homingStarMovement.SetCol(random2);
        homingStarMovement.SetFourInARowStar();
        homingStarList.Add(instantiatedStar);
    }
Exemple #18
0
    public bool CheckForSwapBack(GameObject jewel, int i, int j)
    {
        if (!gameStarted)
        {
            return(false);
        }
        //Debug.Log ("Checking For SwapBack");
        horizontalMatchCheckCount = 0;
        verticalMatchCheckCount   = 0;
        horizontalMatch           = false;
        verticalMatch             = false;
        exitMatchCheck            = false;
        dontDelete = false;
        ClearLists();
        int verticalJewelOffset = 1;
        int verticalJewelCount  = 1;

        verticalDeleteList.Add(jewel);

        while (i - verticalJewelOffset >= 0 && instantiator.GetJewelGridGameObject(i - verticalJewelOffset, j) != null && JewelsAreTheSame(instantiator.GetJewelGridGameObject(i - verticalJewelOffset, j).tag, jewel.tag))
        {
            verticalDeleteList.Add(instantiator.GetJewelGridGameObject(i - verticalJewelOffset, j));

            verticalJewelCount++;
            verticalJewelOffset++;
        }
        verticalJewelOffset = 1;

        while (i + verticalJewelOffset < 9 && instantiator.GetJewelGridGameObject(i + verticalJewelOffset, j) != null && JewelsAreTheSame(instantiator.GetJewelGridGameObject(i + verticalJewelOffset, j).tag, jewel.tag))
        {
            verticalDeleteList.Add(instantiator.GetJewelGridGameObject(i + verticalJewelOffset, j));

            verticalJewelCount++;
            verticalJewelOffset++;
        }

        if (verticalJewelCount >= 3)
        {
            foreach (GameObject a in verticalDeleteList)
            {
                bool added = deleteList.Add(a);
                if (added && a != null)
                {
                    jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
                    jewelMovement.SetToBeDestroyed();
                    if (jewelMovement.GetMoving())
                    {
                        ClearLists();
                        return(true);
                    }
                    CheckForHorizontalMatches(a, jewelMovement.GetRow(), jewelMovement.GetCol());
                    if (exitMatchCheck)
                    {
                        ClearLists();
                        return(true);
                    }
                }
            }
            verticalMatch = true;
        }
        else
        {
            verticalDeleteList.Remove(jewel);
        }

        int horizontalJewelOffset = 1;
        int horizontalJewelCount  = 1;

        horizontalDeleteList.Add(jewel);

        while (j - horizontalJewelOffset >= 0 && instantiator.GetJewelGridGameObject(i, j - horizontalJewelOffset) != null && JewelsAreTheSame(instantiator.GetJewelGridGameObject(i, j - horizontalJewelOffset).tag, jewel.tag))
        {
            horizontalDeleteList.Add(instantiator.GetJewelGridGameObject(i, j - horizontalJewelOffset));
            horizontalJewelCount++;
            horizontalJewelOffset++;
        }

        horizontalJewelOffset = 1;
        while (j + horizontalJewelOffset < 9 && instantiator.GetJewelGridGameObject(i, j + horizontalJewelOffset) != null && JewelsAreTheSame(instantiator.GetJewelGridGameObject(i, j + horizontalJewelOffset).tag, jewel.tag))
        {
            horizontalDeleteList.Add(instantiator.GetJewelGridGameObject(i, j + horizontalJewelOffset));
            horizontalJewelCount++;
            horizontalJewelOffset++;
        }
        if (horizontalJewelCount >= 3)
        {
            foreach (GameObject a in horizontalDeleteList)
            {
                bool added = deleteList.Add(a);
                if (added && a != null)
                {
                    jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
                    jewelMovement.SetToBeDestroyed();
                    if (jewelMovement.GetMoving())
                    {
                        ClearLists();
                        return(true);
                    }
                    CheckForVerticalMatches(a, jewelMovement.GetRow(), jewelMovement.GetCol());
                    if (exitMatchCheck)
                    {
                        ClearLists();
                        return(true);
                    }
                }
            }
            horizontalMatch = true;
        }
        else
        {
            horizontalDeleteList.Remove(jewel);
        }
        if (exitMatchCheck)
        {
            ClearLists();
            return(true);
        }
        if (deleteList.Count > 2)
        {
            if (deleteList.Count >= 5 && verticalMatch && horizontalMatch)
            {
                foreach (GameObject a in horizontalDeleteList)
                {
                    if (verticalDeleteList.Contains(a))
                    {
                        int count = 1;
                        if (!jewelsThatActivatedCorners.Contains(a))
                        {
                            jewelsThatActivatedCorners.Add(a);
                            soundHandler.PlayPowerUpSound();
                            corners.ActivateCornersPowers(a);
                        }
                    }
                }
//				scoreKeeper.IncreaseScoreByCornerJewelBonus ();
                //								deleteList.Clear ();
            }
            else if (deleteList.Count >= 5 && !(verticalMatch && horizontalMatch))
            {
                //				//Debug.Log ("5 in a row");
                fiveInARow.InstantiateMotherStar(jewel);
//				scoreKeeper.IncreaseScoreByFiveInLineBonus ();
            }
            if (deleteList.Count >= 7 && verticalMatch && horizontalMatch)
            {
                fiveInARow.InstantiateMotherStar(jewel);
            }
            //							if (deleteList.Count > 5 && verticalMatch && horizontalMatch) {
            //								fiveInARow.InstantiateMotherStar (jewel);
            //							}

            foreach (GameObject a in deleteList)
            {
                swapJewel.IfJewelSetToNull(a);
            }
            deleteJewels.DeleteAllJewelsInList(deleteList, false);
            //Debug.Log ("deleteList.Count = " + deleteList.Count);
        }
        else
        {
            dontDelete = false;
        }
        if (verticalMatch || horizontalMatch)
        {
            ClearLists();
            return(true);
        }
        else
        {
            ClearLists();
            return(false);
        }
    }
Exemple #19
0
    private void CheckForVerticalMatches(GameObject jewel, int i, int j)
    {
        for (int a = 0; a < verticalSetArray.Length; a++)
        {
            if (verticalSetArray[a] != null && verticalSetArray[a].Count == 0)
            {
                verticalMatchCheckCount = a;
            }
        }
        verticalSetArray[verticalMatchCheckCount] = new HashSet <GameObject> ();
        int verticalJewelOffset = 1;
        int verticalJewelCount  = 1;

        jewelDestroyNumber = jewel.GetComponent <RockLevelJewelMovement> ().GetDestroyNumber();
        while (i - verticalJewelOffset >= 0 && instantiator.GetJewelGridGameObject(i - verticalJewelOffset, j) != null && JewelsAreTheSame(instantiator.GetJewelGridGameObject(i - verticalJewelOffset, j).tag, jewel.tag))
        {
            verticalSetArray[verticalMatchCheckCount].Add(instantiator.GetJewelGridGameObject(i - verticalJewelOffset, j));
            verticalJewelCount++;
            verticalJewelOffset++;
        }
        verticalJewelOffset = 1;
        while (i + verticalJewelOffset < 9 && instantiator.GetJewelGridGameObject(i + verticalJewelOffset, j) != null && JewelsAreTheSame(instantiator.GetJewelGridGameObject(i + verticalJewelOffset, j).tag, jewel.tag))
        {
            verticalSetArray[verticalMatchCheckCount].Add(instantiator.GetJewelGridGameObject(i + verticalJewelOffset, j));
            verticalJewelCount++;
            verticalJewelOffset++;
        }
        if (verticalJewelCount >= 3)
        {
            verticalMatch = true;
            foreach (GameObject a in verticalSetArray[verticalMatchCheckCount])
            {
                bool added = deleteList.Add(a);
                if (added && a != null)
                {
                    jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
                    jewelMovement.SetToBeDestroyed();
                    if (jewelMovement.GetMoving())
                    {
                        exitMatchCheck = true;
                        ClearLists();
                        return;
                    }
                    horizontalMatchCheckCount++;
                    CheckForHorizontalMatches(a, jewelMovement.GetRow(), jewelMovement.GetCol());
                    if (exitMatchCheck)
                    {
                        ClearLists();
                        return;
                    }
                    //					else
                    //						dontDelete = true;
                }
            }
            if (!jewelsThatActivatedCorners.Contains(jewel))
            {
                jewelsThatActivatedCorners.Add(jewel);
                soundHandler.PlayPowerUpSound();
                corners.ActivateCornersPowers(jewel);
            }
        }
        verticalSetArray[verticalMatchCheckCount].Clear();
    }
Exemple #20
0
    // Update is called once per frame
    void FixedUpdate()
    {
        if (startSwap)
        {
            if (jewel1 == null || jewel2 == null)
            {
                return;
            }
            jewel1.transform.Translate(new Vector3(-(jewel1.transform.position.x - jewelTwoOriginalPos.x) * translationMultiplier, -(jewel1.transform.position.y - jewelTwoOriginalPos.y) * translationMultiplier, 0));
            jewel2.transform.Translate(new Vector3(-(jewel2.transform.position.x - jewelOneOriginalPos.x) * translationMultiplier, -(jewel2.transform.position.y - jewelOneOriginalPos.y) * translationMultiplier, 0));
            if (Mathf.Abs(jewel1.transform.position.x - jewelTwoOriginalPos.x) < distanceToTarget && Mathf.Abs(jewel1.transform.position.y - jewelTwoOriginalPos.y) < distanceToTarget &&
                Mathf.Abs(jewel2.transform.position.x - jewelOneOriginalPos.x) < distanceToTarget && Mathf.Abs(jewel2.transform.position.y - jewelOneOriginalPos.y) < distanceToTarget)
            {
                jewel1.transform.position = jewelTwoOriginalPos;
                jewel2.transform.position = jewelOneOriginalPos;
                jewel1.layer = secondJewelLayer;
                jewel2.layer = firstJewelLayer;
                startSwap    = false;
                //				firstJewelBlockMovement.moving = false;
                //				secondJewelBlockMovement.moving = false;
                pauseTouchForSwap = false;
            }
            if (!startSwap)
            {
                jewel1.GetComponent <Rigidbody2D>().isKinematic = false;
                jewel2.GetComponent <Rigidbody2D>().isKinematic = false;
                instantiator.SetJewelGridGameObject(jewelOneMovement.GetRow(), jewelOneMovement.GetCol(), jewel1);
                instantiator.SetJewelGridGameObject(jewelTwoMovement.GetRow(), jewelTwoMovement.GetCol(), jewel2);
                jewelOneMovement = jewel1.GetComponent <RockLevelJewelMovement> ();
                jewelTwoMovement = jewel2.GetComponent <RockLevelJewelMovement> ();
                jewelOneMovement.SetMoving(false);
                jewelTwoMovement.SetMoving(false);
                if (jewelOneMovement.GetRow() < jewelTwoMovement.GetRow())
                {
                    if (!checkForMatches.CheckForSwapBack(jewel1, jewelOneMovement.GetRow(), jewelOneMovement.GetCol()) && !checkForMatches.CheckForSwapBack(jewel2, jewelTwoMovement.GetRow(), jewelTwoMovement.GetCol()))
                    {
                        if (!swapJewelsBack && restrictMovements)
                        {
                            Swap(jewel1, jewel2, true);
                        }
                        else
                        {
                            if (jewel1 != null)
                            {
                                PowerStarTracker.RemoveFromHashSet(jewel1);
                                jewel1 = null;
                                jewelOneMovement.SetSwappingJewel(false);
                            }
                            if (jewel2 != null)
                            {
                                PowerStarTracker.RemoveFromHashSet(jewel2);
                                jewel2 = null;
                                jewelTwoMovement.SetSwappingJewel(false);
                            }
                        }
                        return;
                    }
                    deleteJewels.SetSwapComplete(true);
                    if (!timeBombLevel && !jewelCollectorLevel)
                    {
                        bombHandler.DecreaseAllBombsInList();
                    }
                    else if (jewelCollectorLevel)
                    {
                        Debug.Log("Calling moveNumberHandler.SubtractOneFromMoveNumber ()");
                        moveNumberHandler.SubtractOneFromMoveNumber();
                    }
                    if (!firstSwapPerformed)
                    {
                        GameObject.Find("Game Manager").GetComponent <GameManagerScript> ().SetFirstMoveMade(true);
                        firstSwapPerformed = true;
                        //Debug.Log ("First Swap Performed");
                    }
                    if (jewel1 != null)
                    {
                        PowerStarTracker.RemoveFromHashSet(jewel1);
                        jewel1 = null;
                        jewelOneMovement.SetSwappingJewel(false);
                    }
                    if (jewel2 != null)
                    {
                        PowerStarTracker.RemoveFromHashSet(jewel2);
                        jewel2 = null;
                        jewelTwoMovement.SetSwappingJewel(false);
                    }
//					stoppedMoving.SetGridStaticToFalse ();
                }
                else
                {
                    if (!checkForMatches.CheckForSwapBack(jewel2, jewelTwoMovement.GetRow(), jewelTwoMovement.GetCol()) && !checkForMatches.CheckForSwapBack(jewel1, jewelOneMovement.GetRow(), jewelOneMovement.GetCol()))
                    {
                        if (!swapJewelsBack && restrictMovements)
                        {
                            Swap(jewel1, jewel2, true);
                        }
                        else
                        {
                            if (jewel1 != null)
                            {
                                PowerStarTracker.RemoveFromHashSet(jewel1);
                                jewel1 = null;
                                jewelOneMovement.SetSwappingJewel(false);
                            }
                            if (jewel2 != null)
                            {
                                PowerStarTracker.RemoveFromHashSet(jewel2);
                                jewel2 = null;
                                jewelTwoMovement.SetSwappingJewel(false);
                            }
                        }
                        checkForMatches.deleteList.Clear();
                        return;
                    }
                    deleteJewels.SetSwapComplete(true);
                    if (!timeBombLevel && !jewelCollectorLevel)
                    {
                        bombHandler.DecreaseAllBombsInList();
                    }
                    else if (jewelCollectorLevel)
                    {
                        moveNumberHandler.SubtractOneFromMoveNumber();
                    }
                    if (!firstSwapPerformed)
                    {
                        GameObject.Find("Game Manager").GetComponent <GameManagerScript> ().SetFirstMoveMade(true);
                        firstSwapPerformed = true;
                        //Debug.Log ("First Swap Performed");
                    }
                    if (jewel1 != null)
                    {
                        PowerStarTracker.RemoveFromHashSet(jewel1);
                        jewel1 = null;
                        jewelOneMovement.SetSwappingJewel(false);
                    }
                    if (jewel2 != null)
                    {
                        PowerStarTracker.RemoveFromHashSet(jewel2);
                        jewel2 = null;
                        jewelTwoMovement.SetSwappingJewel(false);
                    }
//					stoppedMoving.SetGridStaticToFalse ();
                }
            }
        }
    }
Exemple #21
0
    public void Swap(GameObject firstJewel, GameObject secondJewel, bool swapBack)
    {
//		if (!swapBack && (PowerStarTracker.ContainsJewel (firstJewel) || PowerStarTracker.ContainsJewel (secondJewel))) {
//			return;
//		}

        jewel1 = firstJewel;
        jewel2 = secondJewel;
        if (firstJewel == null || secondJewel == null)
        {
            return;
        }
        jewelOneMovement = firstJewel.GetComponent <RockLevelJewelMovement> ();
        jewelOneMovement.SetSwappingJewel(true);
        jewelTwoMovement = secondJewel.GetComponent <RockLevelJewelMovement> ();
        jewelTwoMovement.SetSwappingJewel(true);

        PowerStarTracker.AddToHashSet(firstJewel);
        PowerStarTracker.AddToHashSet(secondJewel);
        soundHandler.ResetJewelBreakNumber();
        soundHandler.PlayJewelSwap();
        deleteJewels.PunchAssistanceTimeStamp();
        swapJewelsBack    = swapBack;
        pauseTouchForSwap = true;
        int tempRow, tempCol;

        deleteJewels.StampAssistantTimeCard();
        //		stoppedMoving.SetGridStaticToFalse ();

        if (jewelOneMovement.GetMoving() || jewelTwoMovement.GetMoving() || jewelOneMovement.GetToBeDestroyed() || jewelTwoMovement.GetToBeDestroyed())
        {
            if (jewel1 != null)
            {
                PowerStarTracker.RemoveFromHashSet(jewel1);
                jewel1 = null;
                jewelOneMovement.SetSwappingJewel(false);
            }
            if (jewel2 != null)
            {
                PowerStarTracker.RemoveFromHashSet(jewel2);
                jewel2 = null;
                jewelTwoMovement.SetSwappingJewel(false);
            }
            return;
        }

        jewelOneMovement.SetMoving(true);
        jewelTwoMovement.SetMoving(true);

        tempRow = jewelOneMovement.GetRow();
        tempCol = jewelOneMovement.GetCol();;

        jewelOneOriginalPos = firstJewel.transform.position;
        jewelTwoOriginalPos = secondJewel.transform.position;

        if (IsBomb(firstJewel) && !IsBomb(secondJewel))
        {
            jewelTwoOriginalPos.x = jewelTwoOriginalPos.x + .035f;
            jewelOneOriginalPos.x = jewelOneOriginalPos.x - .035f;
        }
        else if (IsBomb(secondJewel) && !IsBomb(firstJewel))
        {
            jewelOneOriginalPos.x = jewelOneOriginalPos.x + .035f;
            jewelTwoOriginalPos.x = jewelTwoOriginalPos.x - .035f;
        }

        jewelOneMovement.SetRow(jewelTwoMovement.GetRow());
        jewelOneMovement.SetCol(jewelTwoMovement.GetCol());
        jewelTwoMovement.SetRow(tempRow);
        jewelTwoMovement.SetCol(tempCol);

        jewel1.GetComponent <Rigidbody2D>().isKinematic = true;
        jewel2.GetComponent <Rigidbody2D>().isKinematic = true;
        firstJewelLayer  = jewel1.layer;
        secondJewelLayer = jewel2.layer;
        jewel1.layer     = 0;
        jewel2.layer     = 0;
        startSwap        = true;
    }
    public void MoveSlug()
    {
        if (move || beingDeleted)
        {
            return;
        }
        directionCount    = 0;
        movementDirection = GetRandomSlugDirection();

        if (jewelMovement == null)
        {
            jewelMovement = GetComponent <RockLevelJewelMovement> ();
        }

        row    = jewelMovement.GetRow();
        col    = jewelMovement.GetCol();
        oldRow = row;
        oldCol = col;

        directionCount = 0;

        do
        {
            if (movementDirection == slugDirection.up)
            {
                if (row - 1 >= 0 && instantiator.GetJewelGridGameObject(row - 1, col) != null && IsJewel(instantiator.GetJewelGridGameObject(row - 1, col)) && instantiator.GetJewelGridGameObject(row - 1, col).name != "Slug Meal" &&
                    !swapJewel.IsASwapJewel(instantiator.GetJewelGridGameObject(row - 1, col)))
                {
                    instantiator.GetJewelGridGameObject(row - 1, col).tag = "Slug Meal";
                    tempBoulder = (GameObject)Instantiate(currentBoulder, new Vector3(transform.position.x, transform.position.y, -.5f), Quaternion.identity);
                    tempBoulder.GetComponent <RockLevelJewelMovement> ().SetBounced(true);
                    tempBoulder.layer = gameObject.layer;
                    tempBoulder.GetComponent <RockLevelJewelMovement> ().SetRow(row);
                    tempBoulder.GetComponent <RockLevelJewelMovement> ().SetCol(col);
                    instantiator.AddToJewelGrid(tempBoulder, row, col);
                    targetX = transform.position.x;
                    targetY = transform.position.y + .61f;
                    jewelMovement.SetRow(row - 1);
                    row--;
                    destructionJewel = instantiator.GetJewelGridGameObject(row, col);
                    instantiator.AddToJewelGrid(gameObject, row, col);
                    gameObject.GetComponent <Rigidbody2D> ().isKinematic = true;
                    transform.position = (new Vector3(transform.position.x, transform.position.y, -20));
                    move = true;
                    return;
                }
                movementDirection = slugDirection.right;
            }
            else if (movementDirection == slugDirection.right)
            {
                if (col + 1 < 9 && instantiator.GetJewelGridGameObject(row, col + 1) != null && IsJewel(instantiator.GetJewelGridGameObject(row, col + 1)) && instantiator.GetJewelGridGameObject(row, col + 1).name != "Slug Meal" &&
                    !swapJewel.IsASwapJewel(instantiator.GetJewelGridGameObject(row, col + 1)))
                {
                    instantiator.GetJewelGridGameObject(row, col + 1).tag = "Slug Meal";
                    tempBoulder = (GameObject)Instantiate(currentBoulder, new Vector3(transform.position.x, transform.position.y, -.5f), Quaternion.identity);
                    tempBoulder.GetComponent <RockLevelJewelMovement> ().SetBounced(true);
                    tempBoulder.layer = gameObject.layer;
                    tempBoulder.GetComponent <RockLevelJewelMovement> ().SetRow(row);
                    tempBoulder.GetComponent <RockLevelJewelMovement> ().SetCol(col);
                    instantiator.AddToJewelGrid(tempBoulder, row, col);
                    targetX = transform.position.x + .6125f;
                    targetY = transform.position.y;
                    jewelMovement.SetCol(col + 1);
                    col++;
                    destructionJewel = instantiator.GetJewelGridGameObject(row, col);
                    instantiator.AddToJewelGrid(gameObject, row, col);
                    gameObject.GetComponent <Rigidbody2D> ().isKinematic = true;
                    transform.position = (new Vector3(transform.position.x, transform.position.y, -20));
                    move = true;
                    return;
                }
                movementDirection = slugDirection.down;
            }
            else if (movementDirection == slugDirection.down)
            {
                if (row + 1 < 9 && instantiator.GetJewelGridGameObject(row + 1, col) != null && IsJewel(instantiator.GetJewelGridGameObject(row + 1, col)) && instantiator.GetJewelGridGameObject(row + 1, col).name != "Slug Meal" &&
                    !swapJewel.IsASwapJewel(instantiator.GetJewelGridGameObject(row + 1, col)))
                {
                    instantiator.GetJewelGridGameObject(row + 1, col).tag = "Slug Meal";
                    tempBoulder = (GameObject)Instantiate(currentBoulder, new Vector3(transform.position.x, transform.position.y, -.5f), Quaternion.identity);
                    tempBoulder.GetComponent <RockLevelJewelMovement> ().SetBounced(true);
                    tempBoulder.layer = gameObject.layer;
                    tempBoulder.GetComponent <RockLevelJewelMovement> ().SetRow(row);
                    tempBoulder.GetComponent <RockLevelJewelMovement> ().SetCol(col);
                    instantiator.AddToJewelGrid(tempBoulder, row, col);
                    targetX = transform.position.x;
                    targetY = transform.position.y - .61f;
                    jewelMovement.SetRow(row + 1);
                    row++;
                    destructionJewel = instantiator.GetJewelGridGameObject(row, col);
                    instantiator.AddToJewelGrid(gameObject, row, col);
                    gameObject.GetComponent <Rigidbody2D> ().isKinematic = true;
                    transform.position = (new Vector3(transform.position.x, transform.position.y, -20));
                    move = true;
                    return;
                }
                movementDirection = slugDirection.left;
            }
            else if (movementDirection == slugDirection.left)
            {
                if (col - 1 >= 0 && instantiator.GetJewelGridGameObject(row, col - 1) != null && IsJewel(instantiator.GetJewelGridGameObject(row, col - 1)) && instantiator.GetJewelGridGameObject(row, col - 1).name != "Slug Meal" &&
                    !swapJewel.IsASwapJewel(instantiator.GetJewelGridGameObject(row, col - 1)))
                {
                    instantiator.GetJewelGridGameObject(row, col - 1).tag = "Slug Meal";
                    tempBoulder = (GameObject)Instantiate(currentBoulder, new Vector3(transform.position.x, transform.position.y, -.5f), Quaternion.identity);
                    tempBoulder.GetComponent <RockLevelJewelMovement> ().SetBounced(true);
                    tempBoulder.layer = gameObject.layer;
                    tempBoulder.GetComponent <RockLevelJewelMovement> ().SetRow(row);
                    tempBoulder.GetComponent <RockLevelJewelMovement> ().SetCol(col);
                    instantiator.AddToJewelGrid(tempBoulder, row, col);
                    targetX = transform.position.x - .6125f;
                    targetY = transform.position.y;
                    jewelMovement.SetCol(col - 1);
                    col--;
                    destructionJewel = instantiator.GetJewelGridGameObject(row, col);
                    instantiator.AddToJewelGrid(gameObject, row, col);
                    gameObject.GetComponent <Rigidbody2D> ().isKinematic = true;
                    transform.position = (new Vector3(transform.position.x, transform.position.y, -20));
                    move = true;
                    return;
                }
                movementDirection = slugDirection.up;
            }
            directionCount++;
        } while (directionCount < 4);

        MoveNonJewelDirection();
    }
Exemple #23
0
    private void FillArrays()
    {
        RockLevelJewelMovement jewelMovement;

        if (horizontalPositive)
        {
            positiveHorizontalDeletes = new GameObject[9];
            int count;
            if (!RockLevelCorners.cornerJewelAdded)
            {
                count = nextJewelToExplodeCol - 1;
                RockLevelCorners.cornerJewelAdded = true;
            }
            else
            {
                count = nextJewelToExplodeCol;
            }
            int index = 0;
            while (count < 9)
            {
                addedCornerJewel = true;
                if (instantiator.GetJewelGridGameObject(nextJewelToExplodeRow, count) != null)
                {
                    jewelMovement = instantiator.GetJewelGridGameObject(nextJewelToExplodeRow, count).GetComponent <RockLevelJewelMovement> ();
                    if (!jewelMovement.JewelAddedToArray() && PowerStarTracker.AddToHashSet(instantiator.GetJewelGridGameObject(nextJewelToExplodeRow, count)))
                    {
                        positiveHorizontalDeletes[index] = instantiator.GetJewelGridGameObject(nextJewelToExplodeRow, count);
                        jewelMovement.SetAddedToArray(true);
                    }
                }
                index++;
                count++;
            }
        }
        else if (horizontalNegative)
        {
            negativeHorizontalDeletes = new GameObject[9];
            int count;
            if (!RockLevelCorners.cornerJewelAdded)
            {
                count = nextJewelToExplodeCol + 1;
                RockLevelCorners.cornerJewelAdded = true;
            }
            else
            {
                count = nextJewelToExplodeCol;
            }
            int index = 0;
            while (count >= 0)
            {
                if (instantiator.GetJewelGridGameObject(nextJewelToExplodeRow, count) != null)
                {
                    jewelMovement = instantiator.GetJewelGridGameObject(nextJewelToExplodeRow, count).GetComponent <RockLevelJewelMovement> ();
                    if (!jewelMovement.JewelAddedToArray() && PowerStarTracker.AddToHashSet(instantiator.GetJewelGridGameObject(nextJewelToExplodeRow, count)))
                    {
                        negativeHorizontalDeletes[index] = instantiator.GetJewelGridGameObject(nextJewelToExplodeRow, count);
                        jewelMovement.SetAddedToArray(true);
                    }
                }
                index++;
                count--;
            }
        }
        else if (verticalPositive)
        {
            positiveVerticalDeletes = new GameObject[9];
            int count;
            if (!RockLevelCorners.cornerJewelAdded)
            {
                count = nextJewelToExplodeRow + 1;
                RockLevelCorners.cornerJewelAdded = true;
            }
            else
            {
                count = nextJewelToExplodeRow;
            }
            int index = 0;
            while (count >= 0)
            {
                if (instantiator.GetJewelGridGameObject(count, nextJewelToExplodeCol) != null)
                {
                    jewelMovement = instantiator.GetJewelGridGameObject(count, nextJewelToExplodeCol).GetComponent <RockLevelJewelMovement> ();
                    if (!jewelMovement.JewelAddedToArray() && PowerStarTracker.AddToHashSet(instantiator.GetJewelGridGameObject(count, nextJewelToExplodeCol)))
                    {
                        positiveVerticalDeletes[index] = instantiator.GetJewelGridGameObject(count, nextJewelToExplodeCol);
                        jewelMovement.SetAddedToArray(true);
                    }
                }
                index++;
                count--;
            }
        }
        else if (verticalNegative)
        {
            negativeVerticalDeletes = new GameObject[9];
            int count;
            if (!RockLevelCorners.cornerJewelAdded)
            {
                count = nextJewelToExplodeRow - 1;
                RockLevelCorners.cornerJewelAdded = true;
            }
            else
            {
                count = nextJewelToExplodeRow;
            }
            int index = 0;
            while (count < 9)
            {
                if (instantiator.GetJewelGridGameObject(count, nextJewelToExplodeCol) != null)
                {
                    ;
                }
                jewelMovement = instantiator.GetJewelGridGameObject(count, nextJewelToExplodeCol).GetComponent <RockLevelJewelMovement> ();
                if (!jewelMovement.JewelAddedToArray() && PowerStarTracker.AddToHashSet(instantiator.GetJewelGridGameObject(count, nextJewelToExplodeCol)))
                {
                    negativeVerticalDeletes[index] = instantiator.GetJewelGridGameObject(count, nextJewelToExplodeCol);
                    jewelMovement.SetAddedToArray(true);
                }
                index++;
                count++;
            }
        }
        changeJewelName = true;
    }
Exemple #24
0
    // Update is called once per frame
    void Update()
    {
//		if (Mathf.Abs (transform.position.x) > 10 || Mathf.Abs (transform.position.y) > 10) {
//			corners.GetCornerStarList ().Remove (gameObject);
//		}

        if (movementStart && !fireStar)
        {
            transform.Translate(new Vector3((oppositeX - transform.position.x) * Time.deltaTime * 5f, (oppositeY - transform.position.y) * Time.deltaTime * 5f), Space.World);
            if (Mathf.Abs(transform.position.x - oppositeX) < .05f && Mathf.Abs(transform.position.y - oppositeY) < .05f)
            {
                fireStar = true;
            }
        }

        if (movementStart && fireStar)
        {
            if (!soundPlayed)
            {
                soundHandler.PlayPowerShot();
                soundPlayed = true;
            }
            transform.Translate(new Vector3((targetX - transform.position.x) * Time.deltaTime * .25f, (targetY - transform.position.y) * Time.deltaTime * .25f, 0), Space.World);
        }
//		if (Mathf.Abs (transform.position.x) > 99) {
//			Destroy (gameObject);
//		}
//		if (Mathf.Abs (transform.position.y) > 99) {
//			Destroy (gameObject);
//		}
        if (arraysFilled && (Mathf.Abs(transform.position.x) > 10) && (horizontalPositive || horizontalNegative))
        {
            if (positiveHorizontalDeletes != null && positiveHorizontalDeletes.Length >= arrayCount)
            {
                corners.GetCornerStarList().Remove(gameObject);
                Destroy(gameObject);
            }
            else if (negativeHorizontalDeletes != null && negativeHorizontalDeletes.Length >= arrayCount)
            {
                corners.GetCornerStarList().Remove(gameObject);
                Destroy(gameObject);
            }
        }
        else if (arraysFilled && (Mathf.Abs(transform.position.y) > 10) && (verticalPositive || verticalNegative))
        {
            if (positiveVerticalDeletes != null && positiveVerticalDeletes.Length >= arrayCount)
            {
                corners.GetCornerStarList().Remove(gameObject);
                Destroy(gameObject);
            }
            else if (negativeVerticalDeletes != null && negativeVerticalDeletes.Length >= arrayCount)
            {
                corners.GetCornerStarList().Remove(gameObject);
                Destroy(gameObject);
            }
        }

        if (movementStart && fireStar)
        {
            if (!arraysFilled)
            {
                FillArrays();
                arraysFilled = true;
            }

            if (timeForDelete && horizontalPositive && arrayCount < 9 && positiveHorizontalDeletes[arrayCount] != null && transform.position.x > positiveHorizontalDeletes[arrayCount].transform.position.x)
            {
                timeForDelete = false;
                if (IsJewel(gameObject.tag) || IsBomb(gameObject))
                {
                    jewelMovement = positiveHorizontalDeletes[arrayCount].GetComponent <RockLevelJewelMovement> ();
                    jewelMovement.StartDestroyCountdown();
                }
                if (positiveHorizontalDeletes[arrayCount] != null)
                {
                    deleteList.Add(positiveHorizontalDeletes[arrayCount]);
                    deleteJewels.DeleteAllJewelsInList(deleteList, true);
                }
                deleteList.Clear();
                arrayCount++;
            }
            else if (horizontalPositive && arrayCount < 9 && positiveHorizontalDeletes[arrayCount] == null)
            {
                arrayCount++;
            }
            else
            {
                timeForDelete = true;
            }

            if (horizontalNegative && arrayCount < 9 && negativeHorizontalDeletes[arrayCount] != null && transform.position.x < negativeHorizontalDeletes[arrayCount].transform.position.x)
            {
                if (IsJewel(gameObject.tag) || IsBomb(gameObject))
                {
                    jewelMovement = negativeHorizontalDeletes[arrayCount].GetComponent <RockLevelJewelMovement> ();
                    jewelMovement.StartDestroyCountdown();
                }
                if (negativeHorizontalDeletes[arrayCount] != null)
                {
                    deleteList.Add(negativeHorizontalDeletes[arrayCount]);
                    deleteJewels.DeleteAllJewelsInList(deleteList, true);
                }
                deleteList.Clear();
                arrayCount++;
            }
            else if (horizontalNegative && arrayCount < 9 && negativeHorizontalDeletes[arrayCount] == null)
            {
                arrayCount++;
            }

            if (timeForDelete && verticalNegative && arrayCount < 9 && negativeVerticalDeletes[arrayCount] != null && transform.position.y < negativeVerticalDeletes[arrayCount].transform.position.y)
            {
                timeForDelete = false;
                if (IsJewel(gameObject.tag) || IsBomb(gameObject))
                {
                    jewelMovement = positiveVerticalDeletes[arrayCount].GetComponent <RockLevelJewelMovement> ();
                    jewelMovement.StartDestroyCountdown();
                }
                if (negativeVerticalDeletes != null)
                {
                    deleteList.Add(negativeVerticalDeletes[arrayCount]);
                    deleteJewels.DeleteAllJewelsInList(deleteList, true);
                }
                deleteList.Clear();
                arrayCount++;
            }
            else if (verticalNegative && arrayCount < 9 && negativeVerticalDeletes[arrayCount] == null)
            {
                arrayCount++;
            }
            else
            {
                timeForDelete = true;
            }

            if (verticalPositive && arrayCount < 9 && positiveVerticalDeletes[arrayCount] != null && transform.position.y > positiveVerticalDeletes[arrayCount].transform.position.y)
            {
                if (IsJewel(gameObject.tag) || IsBomb(gameObject))
                {
                    jewelMovement = negativeVerticalDeletes[arrayCount].GetComponent <RockLevelJewelMovement> ();
                    jewelMovement.StartDestroyCountdown();
                }
                if (positiveVerticalDeletes[arrayCount] != null)
                {
                    deleteList.Add(positiveVerticalDeletes[arrayCount]);
                    deleteJewels.DeleteAllJewelsInList(deleteList, true);
                }
                deleteList.Clear();
                arrayCount++;
            }
            else if (verticalPositive && arrayCount < 9 && positiveVerticalDeletes[arrayCount] == null)
            {
                arrayCount++;
            }
        }
    }
    public void DeleteAllJewelsInList(HashSet <GameObject> deleteList, bool powerUpDelete)
    {
        removeList = new HashSet <GameObject> ();
        if (deleteList.Count >= 3)
        {
            soundHandler.PlayJewelBreak();
        }
        assistanceTimeStamp = Time.time;
        timeStamp           = Time.time;
        okayToMoveTimeStamp = Time.time;
        okayToMoveAgain     = false;
        matchAssistant.SetResetRandoms(true);
        movementChecker.SetGridStaticToFalse();
        GameObject tempJewel;

        if (deleteList.Count == 4)
        {
            soundHandler.PlayPowerUpSound();
            fourInARowScript.ActivateFourInARowPower(deleteList);
//			scoreKeeper.IncreaseScoreByFourJewelBonus ();
        }
        foreach (GameObject a in deleteList)
        {
            if (a != null)
            {
                if (!powerUpDelete && a.tag != "Boulder")
                {
                    jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
                    if (jewelMovement.GetRow() + 1 < 9)
                    {
                        CheckForBoulders(jewelMovement.GetRow() + 1, jewelMovement.GetCol());
                    }
                    if (jewelMovement.GetRow() - 1 >= 0)
                    {
                        CheckForBoulders(jewelMovement.GetRow() - 1, jewelMovement.GetCol());
                    }
                    if (jewelMovement.GetCol() + 1 < 9)
                    {
                        CheckForBoulders(jewelMovement.GetRow(), jewelMovement.GetCol() + 1);
                    }
                    if (jewelMovement.GetCol() - 1 >= 0)
                    {
                        CheckForBoulders(jewelMovement.GetRow(), jewelMovement.GetCol() - 1);
                    }
                }
                if (a.tag == "Boulder")
                {
                    jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
                    if (CheckForBoulders(jewelMovement.GetRow(), jewelMovement.GetCol()))
                    {
                        removeList.Add(a);
                    }
                }
            }
        }


        foreach (GameObject a in removeList)
        {
            deleteList.Remove(a);
        }

        foreach (GameObject a in boulderDeleteList)
        {
            deleteList.Add(a);
        }

        foreach (GameObject a in deleteList)
        {
            if (a != null)
            {
                deleteListCopy = deleteList;
                if (a != null && a.tag == "Steel Block")
                {
                    PowerStarTracker.RemoveFromHashSet(a);
                }
                if (a != null && a.tag != "Steel Block" && a.name != "Rock 3 Chain(Clone)" && a.name != "Rock 2 Chain(Clone)" && a.name != "Rock 1 Chain(Clone)")
                {
                    jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
                    //				moveJewelsDown.MoveJewelsAboveDown(a);
//					if (GameObject.Find ("Time Bomb ID") != null) {
//						if (addJewels == null)
//							addJewels = GameObject.Find ("Time Bomb ID").GetComponent<AddTimeLevelOneJewels> ();
//						if (Bomb(a) && !bombHandler.TimeBombIsExploded ()) {
//							bombHandler.RemoveFromBombList (a);
//							addJewels.InstantiateSingleJewels (jewelMovement.GetCol (), true);
//						} else if (!bombHandler.TimeBombIsExploded ())
//							addJewels.InstantiateSingleJewels (jewelMovement.GetCol (), false);
//						else if (bombHandler.TimeBombIsExploded ()) {
//							addJewels.InstantiateOnlyJewels (jewelMovement.GetCol ());
//						}
//					}
                    //				else
                    //					instantiator.InstantiateSingleJewels (jewelMovement.GetRow (), jewelMovement.GetCol ());


                    if (Bomb(a) && GameObject.Find("Time Bomb ID") == null)
                    {
                        GameObject tempNumber = null;
                        for (int i = 0; i < a.transform.childCount; i++)
                        {
                            if (a.transform.GetChild(i).tag == "Bomb Number")
                            {
                                tempNumber = a.transform.GetChild(i).gameObject;
                                break;
                            }
                        }
                        if (tempNumber != null)
                        {
                            tempNumber.transform.parent = null;
                            tempNumber.GetComponent <BombNumberHandler> ().SetBombDestroyed(true);
                        }
                        if (bombHandler.GetBombListCount() == 1)
                        {
                            //Debug.Log ("Setting touch to fault");
                            touchHandler.SetGameStarted(false);
                        }
//						bombInfo = a.GetComponent<LevelTwoBombInfo> ();
//						Instantiate (bombInfo.GetBombNumberSprite (), a.transform.position, Quaternion.identity);
                    }
                    else if (Bomb(a) && GameObject.Find("Time Bomb ID") != null)
                    {
                        GameObject tempBomb;
//						bombInfo = a.GetComponent<LevelTwoBombInfo> ();
                        a.GetComponent <Rigidbody2D>().isKinematic = true;
//						bombInfo.SetBombDestroyed (true);
                    }
                }
            }
        }

        boulderDeleteList.Clear();

        foreach (GameObject a in deleteList)
        {
            if (a != null)
            {
                if (explosionsOn)
                {
                    InstantiateExplosions(a);
                }
                if (a.tag != "Steel Block")
                {
                    scoreKeeper.IncreaseScoreByOneJewel();
                    if (bombHandler.BombListContains(a))
                    {
                        jewelMovement = a.GetComponent <RockLevelJewelMovement> ();
                        bombHandler.RemoveFromBombList(a);
                        bombHandler.DecreaseBombCounterByOne();
//						scoreKeeper.IncreaseScoreByOneBomb ();
                    }
                    if (/*(GameObject.Find ("Time Bomb ID") == null || (GameObject.Find ("Time Bomb ID") != null && !Bomb (a))) &&*/ a.name != "Rock 3 Chain(Clone)" && a.name != "Rock 2 Chain(Clone)" && a.name != "Rock 1 Chain(Clone)")
                    {
                        if (GameObject.Find("Time Bomb ID") != null && Bomb(a))
                        {
                            bombDestroyed = true;
                        }
                        tempPositionHolder = new PositionHolder(a.GetComponent <RockLevelJewelMovement> ().GetRow(), a.GetComponent <RockLevelJewelMovement> ().GetCol());
                        deletedPositions.Add(tempPositionHolder);
                        int row = a.GetComponent <RockLevelJewelMovement> ().GetRow();
                        int col = a.GetComponent <RockLevelJewelMovement> ().GetCol();
                        a.GetComponent <RockLevelJewelMovement> ().StartDestroyCountdown();
                        PowerStarTracker.RemoveFromHashSet(a);
                        if (a.name == "Slug(Clone)")
                        {
                            SlugListManager.RemoveFromSlugList(a);
                        }
                        if (GameObject.Find("Jewel Collection Level ID") != null && !endOfLevelJewelSprayer.GetSprayingInProgress())
                        {
                            InstantiateStaticJewel(a);
                        }
                        Destroy(a);
                        instantiator.SetJewelGridGameObject(row, col, null);
//						moveJewelsDown.MoveJewelsAboveDown (tempPositionHolder.GetCol (), tempPositionHolder.GetRow ());
//						instantiator.InstantiateSingleJewels (tempPositionHolder.GetRow (), tempPositionHolder.GetCol ());
                    }
                }
            }
        }

//		deleteCount++;
//
//		if (deleteCount == 3) {
//			deleteCount = 0;
//			GameObject.Find ("Pump Up Word Holder").GetComponent<PumpUpWordHolder> ().InstantiateWow ();
//		}
        powerTrackerTimestamp = Time.time;
        swapMadeTimestamp     = Time.time;
//		if (swapComplete) {
//			swapComplete = false;
//			SlugListManager.MoveAllSlugs ();
//		}
        deleteList.Clear();

        foreach (PositionHolder a in deletedPositions)
        {
//			//Debug.Log ("deletePositions.Size = " + deletedPositions.Count);
            int row = a.GetRow();
            int col = a.GetCol();
            moveJewelsDown.MoveJewelsAboveDown(col, row);
//			instantiator.InstantiateSingleJewels (row, col);
////			while (row >= 0 && instantiator.GetJewelGridGameObject (row, col) == null)
////				row--;
////			if (instantiator.GetJewelGridGameObject (row, col) != null)
////				instantiator.GetJewelGridGameObject (row, col).GetComponent<RockLevelJewelMovement> ().MoveDown (false);
        }

        List <PositionHolder> nullPositions = null;

        if (!starShooter.GetStartLaunchingStars())
        {
            nullPositions = new List <PositionHolder> ();
            int  positionTotal = deletedPositions.Count, nullCount = 0;
            bool breakSecondLoop = false;

            for (int i = 0; i < 9; i++)
            {
                for (int j = 0; j < 9; j++)
                {
                    if (instantiator.GetJewelGridGameObject(i, j) == null)
                    {
                        nullCount++;
                        nullPositions.Add(new PositionHolder(i, j));
                        if (nullCount >= positionTotal)
                        {
                            breakSecondLoop = true;
                        }
                    }
                }
                if (breakSecondLoop)
                {
                    break;
                }
            }
        }

        foreach (PositionHolder a in deletedPositions)
        {
            if (tutorialLevel1)
            {
                instantiator.InstantiateLevelOneTutorialJewels(a.GetRow(), a.GetCol());
            }
            else if (tutorialLevel2)
            {
                instantiator.InstantiateLevelTwoTutorialJewels(a.GetRow(), a.GetCol());
            }
            else if (tutorialLevel3)
            {
                instantiator.InstantiateLevelThreeTutorialJewels(a.GetRow(), a.GetCol());
            }
            else if (tutorialLevel4)
            {
                instantiator.InstantiateLevelFourTutorialJewels(a.GetRow(), a.GetCol());
            }
            else
            {
                instantiator.InstantiateSingleJewels(a.GetRow(), a.GetCol());
            }
        }

        if (!starShooter.GetStartLaunchingStars())
        {
            int whileCount = 0;
            if (!tutorialLevel1 && !tutorialLevel2 && !tutorialLevel3 && noMatchChecker.CheckForNoMatchesWithoutShuffle() && noMatchCount < 3)
            {
                Debug.Log("MAKING A NEW MATCH");
                noMatchCount++;
                do
                {
                    foreach (PositionHolder a in nullPositions)
                    {
                        Destroy(instantiator.GetJewelGridGameObject(a.GetRow(), a.GetCol()));
                        instantiator.SetJewelGridGameObject(a.GetRow(), a.GetCol(), null);
                        instantiator.InstantiateSingleJewels(a.GetRow(), a.GetCol());
                    }
                    if (whileCount > 100)
                    {
                        Debug.Log("WHILECOUNT BREAK");
                        break;
                    }
                    whileCount++;
                } while (noMatchChecker.CheckForNoMatchesWithoutShuffle());
            }
            else
            {
                noMatchCount = 0;
            }
        }

        deletedPositions.Clear();

//		foreach (PositionHolder a in boulderHolder) {
//			if (instantiator.GetJewelGridGameObject (a.GetRow (), a.GetCol ()) != null) {
//				checkForMatches.CheckForSwapBack (instantiator.GetJewelGridGameObject (a.GetRow (), a.GetCol ()), a.GetRow (), a.GetCol ());
//			}
//		}
//		boulderHolder.Clear ();
        //		if (shadeCount == 0 || shadeCount == 1) {
        //			shadeController = controller.GetCurrentTutorialShade ().GetComponent<LevelTwoTutorialShadeController> ();
        //			shadeController.MakeInvisible ();
        //			shadeCount++;
        //		}
//		if (swapComplete) {
//			swapComplete = false;
//			SlugListManager.MoveAllSlugs ();
//		}
    }
    // Update is called once per frame
    void Update()
    {
        if (fourInARowStar)
        {
            if (!fireStar)
            {
                transform.Translate(new Vector3(oppositeX - transform.position.x, oppositeY - transform.position.y, 0) * Time.deltaTime * 8f, Space.World);
                if (Mathf.Abs(oppositeY - transform.position.y) < .05f)
                {
                    if (!readyToFire)
                    {
                        readyToFire = true;
                    }
                    if (fourInARow.AllStarsReadyToFire())
                    {
                        jewelToDestroy = instantiator.GetJewelGridGameObject(targetJewelRow, targetJewelCol);
                        while (!PowerStarTracker.AddToHashSet(jewelToDestroy))
                        {
                            targetJewelRow = Random.Range(0, 9);
                            targetJewelCol = Random.Range(0, 9);
                            jewelToDestroy = instantiator.GetJewelGridGameObject(targetJewelRow, targetJewelCol);
                            targetPosition = (new Vector3(-2.45f + (targetJewelCol * .6125f), 2.591252f - (targetJewelRow * .6097268f), -90));
                            if (instantiatedCrosshairs != null)
                            {
                                Destroy(instantiatedCrosshairs);
                                instantiatedCrosshairs = (GameObject)Instantiate(crosshairs, new Vector3(-2.45f + (targetJewelCol * .6125f), 2.591252f - (targetJewelRow * .6097268f), -79), Quaternion.identity);
                            }
                        }
                        fireStar  = true;
                        timeStamp = Time.time;
                    }
                }
            }
            else if (fireStar && Time.time > timeStamp + cooldown2)
            {
                if (!soundPlayed)
                {
                    soundPlayed = true;
                    soundHandler.PlayPowerShot();
                }
                transform.Translate((targetPosition - transform.position) * Time.deltaTime * 20f, Space.World);
                int tempRow = 0, tempCol = 0;
                if ((Mathf.Abs(targetPosition.x - transform.position.x) < .2f && Mathf.Abs(targetPosition.y - transform.position.y) < .2f) || transform.position.y > 3f)
                {
                    if (jewelToDestroy != null)
                    {
                        tempRow = jewelToDestroy.GetComponent <RockLevelJewelMovement> ().GetRow();
                        tempCol = jewelToDestroy.GetComponent <RockLevelJewelMovement> ().GetCol();
                        if (IsJewel(gameObject.tag) || IsBomb(gameObject))
                        {
                            jewelMovement = jewelToDestroy.GetComponent <RockLevelJewelMovement> ();
                            jewelMovement.StartDestroyCountdown();
                        }
                        if (jewelToDestroy != null && !jewelToDestroy.GetComponent <RockLevelJewelMovement> ().GetMoving())
                        {
                            deleteList.Add(jewelToDestroy);
                            deleteJewels.DeleteAllJewelsInList(deleteList, true);
                        }
                    }
                    if (instantiatedCrosshairs != null)
                    {
                        Destroy(instantiatedCrosshairs);
                    }
                    fourInARow.RemoveHomingStarFromList(gameObject);
                    Destroy(gameObject);
                }
            }
        }
        else if (Time.time > timeStamp + cooldown1)
        {
//			if (!checkForRepeatJewel) {
//				while (!PowerStarTracker.AddToHashSet (jewelToDestroy)) {
//					targetJewelRow = Random.Range (0, 9);
//					targetJewelCol = Random.Range (0, 9);
//					jewelToDestroy = instantiator.GetJewelGridGameObject (targetJewelRow, targetJewelCol);
//					targetPosition = new Vector3 (-2.45f + (targetJewelCol * .6125f), 2.591252f - (targetJewelRow * .6097268f), -23);
//				}
//				checkForRepeatJewel = true;
//			}
            transform.Translate((targetPosition - transform.position) * Time.deltaTime * 7.5f, Space.World);
            if ((Mathf.Abs(targetPosition.x - transform.position.x) < .1f && Mathf.Abs(targetPosition.y - transform.position.y) < .1f) || transform.position.y > 3f)
            {
                Destroy(instantiatedCrosshairs);
                if (IsJewel(gameObject.tag) || IsBomb(gameObject))
                {
                    jewelMovement = instantiator.GetJewelGridGameObject(targetJewelRow, targetJewelCol).GetComponent <RockLevelJewelMovement> ();
                    jewelMovement.StartDestroyCountdown();
                }
                if (jewelToDestroy != null && !instantiator.GetJewelGridGameObject(targetJewelRow, targetJewelCol).GetComponent <RockLevelJewelMovement> ().GetMoving())
                {
                    deleteList.Add(jewelToDestroy);
                    deleteJewels.DeleteAllJewelsInList(deleteList, true);
                }
                //Debug.Log ("Shooting Star From Second Method");
                Destroy(gameObject);
            }
        }
    }
    public void MoveJewelsAboveDown(int col, int row)
    {
//		int movableObjectPlaceHolder = 0, immovableObjectCount = 0;
//		bool jewelFound = false, bombFound = false;
//		GameObject tempObject = null;
//
//		for (int i = 0; i < 9; i++) {
//			if ((instantiator.GetJewelGridGameObject(i, col) != null && IsJewel (instantiator.GetJewelGridGameObject (i, col).tag)) && tempObject == null) {
//				tempObject = instantiator.GetJewelGridGameObject (i, col);
//				continue;
//			}
//			else if ((instantiator.GetJewelGridGameObject (i, col) == null || (instantiator.GetJewelGridGameObject (i, col) != null && IsJewel (instantiator.GetJewelGridGameObject (i, col).tag))) && tempObject != null) {
//				jewelMovement = tempObject.GetComponent<RockLevelJewelMovement> ();
//				tempObject.layer = 17 + i;
//				tempObject.transform.Translate (new Vector3 (0, 0, -(i - jewelMovement.GetRow ())));
//				instantiator.SetJewelGridGameObject (i, col, tempObject);
//				instantiator.SetJewelGridGameObject (jewelMovement.GetRow (), col, null);
//				jewelMovement.SetRow (i);
//				tempObject = null;
//			}
//		}
        int  nullObjectCount = 0;
        int  movedPassedImmovableObjects = 0;
        int  immovableObjectCount = 0;
        bool lastBlockWasBoulder = false;
        int  i = row, returnRow = 0;

        for (; i >= 0; i--)
        {
            if (instantiator.GetJewelGridGameObject(i, col) != null && (instantiator.GetJewelGridGameObject(i, col).tag == "Boulder" || instantiator.GetJewelGridGameObject(i, col).tag == "Steel Block" /*||
                                                                                                                                                                                                          * (PowerStarTracker.ContainsJewel (instantiator.GetJewelGridGameObject (i, col)) && swapJewel.IsASwapJewel (instantiator.GetJewelGridGameObject (i, col))) /*|| swapJewel.IsASwapJewel (instantiator.GetJewelGridGameObject (i, col))
                                                                                                                                                                                                          || instantiator.GetJewelGridGameObject (i, col).GetComponent<RockLevelJewelMovement> ().GetToBeDestroyed () ||
                                                                                                                                                                                                          ||checkForMatches.deleteList.Contains (instantiator.GetJewelGridGameObject (i, col)*/))
            {
                lastBlockWasBoulder = true;
                immovableObjectCount++;
            }
            if (lastBlockWasBoulder && instantiator.GetJewelGridGameObject(i, col) != null && IsBomb(instantiator.GetJewelGridGameObject(i, col)))
            {
                immovableObjectCount++;
            }
            if (instantiator.GetJewelGridGameObject(i, col) == null)
            {
                nullObjectCount++;
            }
            if (nullObjectCount > 0 && instantiator.GetJewelGridGameObject(i, col) != null && instantiator.GetJewelGridGameObject(i, col).tag != "Boulder" && instantiator.GetJewelGridGameObject(i, col).tag != "Steel Block")
            {
                if ((PowerStarTracker.ContainsJewel(instantiator.GetJewelGridGameObject(i, col)) && swapJewel.IsASwapJewel(instantiator.GetJewelGridGameObject(i, col))))
                {
                    break;
                }
                if (IsBomb(instantiator.GetJewelGridGameObject(i, col)) && lastBlockWasBoulder)
                {
                    lastBlockWasBoulder = true;
                    continue;
                }
//				else if (immovableObjectCount > 0 && movedPassedImmovableObjects < nullObjectCount) {
                instantiator.GetJewelGridGameObject(i, col).layer = instantiator.GetJewelGridGameObject(i, col).layer + nullObjectCount + immovableObjectCount;
                jewelMovement = instantiator.GetJewelGridGameObject(i, col).GetComponent <RockLevelJewelMovement> ();
                jewelMovement.SetMoving(true);
                instantiator.GetJewelGridGameObject(i, col).transform.Translate(new Vector3(0, 0, -(nullObjectCount + immovableObjectCount)));
                instantiator.SetJewelGridGameObject(i + nullObjectCount + immovableObjectCount, col, instantiator.GetJewelGridGameObject(i, col));
                instantiator.SetJewelGridGameObject(i, col, null);
                jewelMovement.SetRow(i + nullObjectCount + immovableObjectCount);
                movedPassedImmovableObjects++;
                //				if (immovableObjectCount > 0 && movedPassedImmovableObjects >= nullObjectCount) {
                immovableObjectCount        = 0;
                movedPassedImmovableObjects = 0;
                nullObjectCount             = 0;
                i = i + 1;
                //				}
                lastBlockWasBoulder = false;
//					if (movedPassedImmovableObjects >= nullObjectCount) {
//						immovableObjectCount = 0;
//						movedPassedImmovableObjects = 0;
//					}
//				} else {
//						immovableObjectCount = 0;
////						movedPassedImmovableObjects = 0;
//					instantiator.GetJewelGridGameObject (i, col).layer = instantiator.GetJewelGridGameObject (i, col).layer + nullObjectCount;
//					jewelMovement = instantiator.GetJewelGridGameObject (i, col).GetComponent<RockLevelJewelMovement> ();
//					instantiator.GetJewelGridGameObject (i, col).transform.Translate (new Vector3 (0, 0, - (nullObjectCount)));
//					instantiator.SetJewelGridGameObject (i + nullObjectCount, col, instantiator.GetJewelGridGameObject (i, col));
//					instantiator.SetJewelGridGameObject (i, col, null);
//					jewelMovement.SetRow (i + nullObjectCount);
//					lastBlockWasBoulder = false;
//				}
                //				lastBlockWasBoulder = false;
            }
        }
//		for (int j = 0; j < nullObjectCount; j++) {
//			instantiator.InstantiateSingleJewels (j, col);
//		}
//		jewelMovement = jewel.GetComponent<RockLevelJewelMovement> ();
//		if (jewel.name == ("Rock Blocked(Clone)")) {
//			jewelMovement.AddToRocksToBeDestroyed (jewel);
//		}
//		int i = jewelMovement.GetRow () - 1;
//		int j = jewelMovement.GetCol ();
//		immovableObjectCount = 0;
//		while (i >= 0) {
//			if (!NeverMoveDownObject (instantiator.GetJewelGridGameObject (i, j))) {
//				if (IsBomb (instantiator.GetJewelGridGameObject (i, j)) && (instantiator.GetJewelGridGameObject (i + 1, j) != null && NeverMoveDownObject (instantiator.GetJewelGridGameObject (i + 1, j)) && SometimesMoveDownObject (instantiator.GetJewelGridGameObject (i + 1, j))))
//				{}
////				if (SometimesMoveDownObject (instantiator.GetJewelGridGameObject (i, j))
////				    || ((IsBomb (instantiator.GetJewelGridGameObject (i, j)) &&
////				     (NeverMoveDownObject (instantiator.GetJewelGridGameObject (i + 1, j)) ||
////				 SometimesMoveDownObject (instantiator.GetJewelGridGameObject (i + 1, j))))))
////				{}
//				else {
//					int k = i + 1;
//					instantiator.GetJewelGridGameObject (i, j).GetComponent<RockLevelJewelMovement> ().MoveDown (true);
//
////					immovableObjectCount = 0;
////					while (k < 9 && !deleteJewels.IsContainedInDeleteList (instantiator.GetJewelGridGameObject (k, j)) && (instantiator.GetJewelGridGameObject (k, j).tag == "Boulder" || instantiator.GetJewelGridGameObject (k, j).tag == "Steel Block")) {
////						k++;
////						immovableObjectCount++;
////					}
////					instantiator.GetJewelGridGameObject (i, j).layer = (instantiator.GetJewelGridGameObject (i, j).layer + 1 + immovableObjectCount);
////					jewelMovement = instantiator.GetJewelGridGameObject (i, j).GetComponent<RockLevelJewelMovement> ();
////					instantiator.GetJewelGridGameObject (i, j).transform.Translate (new Vector3 (0, 0, -(1 + immovableObjectCount)));
////					instantiator.SetJewelGridGameObject (jewelMovement.GetRow () + 1 + immovableObjectCount, jewelMovement.GetCol (), tempJewel);
////					jewelMovement.SetRow (jewelMovement.GetRow () + 1 + immovableObjectCount);
//				}
//			}
//			i--;
//		}
    }