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);
    }
    // Update is called once per frame
    void Update()
    {
        if (!falling && GetComponent <Rigidbody2D>().velocity.y < 0)
        {
            transform.position = new Vector3(instantiator.GetJewelGridGameObject(targetRow, targetCol).transform.position.x, transform.position.y, transform.position.z);
            falling            = true;
        }

        if (falling)
        {
            if (transform.position.y < instantiator.GetJewelGridGameObject(targetRow, targetCol).transform.position.y)
            {
                if (tag != "Bomb")
                {
                    soundHandler.PlayJewelBreak();
                    if (PowerStarTracker.AddToHashSet(instantiator.GetJewelGridGameObject(targetRow, targetCol)))
                    {
                        HashSet <GameObject> deleteList = new HashSet <GameObject> ();
                        deleteList.Add(instantiator.GetJewelGridGameObject(targetRow, targetCol));
                        deleteJewels.DeleteAllJewelsInList(deleteList, true);
                    }
                    PaidPowerTracker.RemovePowerFromList(gameObject);
                    Destroy(gameObject);
                }
                else
                {
                    DestroySurroundingJewels();
                    PaidPowerTracker.RemovePowerFromList(gameObject);
                    Destroy(gameObject);
                }
            }
        }
    }
示例#3
0
 void FillDeleteRowArray()
 {
     if (directionInt == 0 || directionInt == 1)
     {
         for (int i = 0; i < 9; i++)
         {
             if (instantiator.GetJewelGridGameObject(i, targetJewelCol) != null && instantiator.GetJewelGridGameObject(i, targetJewelCol).tag != "Steel Block" &&
                 PowerStarTracker.AddToHashSet(instantiator.GetJewelGridGameObject(i, targetJewelCol)))
             {
                 deleteRowArray[i] = instantiator.GetJewelGridGameObject(i, targetJewelCol);
             }
         }
     }
     else if (directionInt == 2 || directionInt == 3)
     {
         for (int i = 0; i < 9; i++)
         {
             if (instantiator.GetJewelGridGameObject(targetJewelRow, i) != null && instantiator.GetJewelGridGameObject(targetJewelRow, i).tag != "Steel Block" &&
                 PowerStarTracker.AddToHashSet(instantiator.GetJewelGridGameObject(targetJewelRow, i)))
             {
                 deleteRowArray[i] = instantiator.GetJewelGridGameObject(targetJewelRow, i);
             }
         }
     }
 }
示例#4
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);
        }
    }
    void DestroySurroundingJewels()
    {
        HashSet <GameObject> deleteList = new HashSet <GameObject> ();
        GameObject           tempJewel  = null;

        if (PowerStarTracker.AddToHashSet(instantiator.GetJewelGridGameObject(targetRow, targetCol)))
        {
            deleteList.Add(instantiator.GetJewelGridGameObject(targetRow, targetCol));
        }
        if (targetRow - 1 >= 0)
        {
            tempJewel = instantiator.GetJewelGridGameObject(targetRow - 1, targetCol);
            if (PowerStarTracker.AddToHashSet(tempJewel))
            {
                deleteList.Add(tempJewel);
            }
            if (targetCol + 1 <= 8)
            {
                tempJewel = instantiator.GetJewelGridGameObject(targetRow - 1, targetCol + 1);
                if (PowerStarTracker.AddToHashSet(tempJewel))
                {
                    deleteList.Add(tempJewel);
                }
            }
            if (targetCol - 1 >= 0)
            {
                tempJewel = instantiator.GetJewelGridGameObject(targetRow - 1, targetCol - 1);
                if (PowerStarTracker.AddToHashSet(tempJewel))
                {
                    deleteList.Add(tempJewel);
                }
            }
        }
        if (targetRow + 1 <= 8)
        {
            tempJewel = instantiator.GetJewelGridGameObject(targetRow + 1, targetCol);
            if (PowerStarTracker.AddToHashSet(tempJewel))
            {
                deleteList.Add(tempJewel);
            }
            if (targetCol + 1 <= 8)
            {
                tempJewel = instantiator.GetJewelGridGameObject(targetRow + 1, targetCol + 1);
                if (PowerStarTracker.AddToHashSet(tempJewel))
                {
                    deleteList.Add(tempJewel);
                }
            }
            if (targetCol - 1 >= 0)
            {
                tempJewel = instantiator.GetJewelGridGameObject(targetRow + 1, targetCol - 1);
                if (PowerStarTracker.AddToHashSet(tempJewel))
                {
                    deleteList.Add(tempJewel);
                }
            }
        }

        if (targetCol + 1 <= 8)
        {
            tempJewel = instantiator.GetJewelGridGameObject(targetRow, targetCol + 1);
            if (PowerStarTracker.AddToHashSet(tempJewel))
            {
                deleteList.Add(tempJewel);
            }
        }
        if (targetCol - 1 >= 0)
        {
            tempJewel = instantiator.GetJewelGridGameObject(targetRow, targetCol - 1);
            if (PowerStarTracker.AddToHashSet(tempJewel))
            {
                deleteList.Add(tempJewel);
            }
        }
        Instantiate(bombExplosion, transform.position, Quaternion.Euler(180, 0, 0));
        deleteJewels.DeleteAllJewelsInList(deleteList, true);
    }
示例#6
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;
    }
    // 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);
            }
        }
    }
示例#8
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;
    }