Beispiel #1
0
    /// <summary>
    /// Starts the game.
    /// </summary>
    public void startGame()
    {
        int placedBlocks = 0;

        if (GameDataManager.instance.isHelpRunning == 0)
        {
            //OnPlacingBlock ();
//			string suggestedblock1 = GameController.instance.GameDoc.Root.Element("suggestedObject1").Attribute("objectName").Value;
//			string suggestedblock2 = GameController.instance.GameDoc.Root.Element("suggestedObject2").Attribute("objectName").Value;
//			string suggestedblock3 = GameController.instance.GameDoc.Root.Element("suggestedObject3").Attribute("objectName").Value;
//
//			Debug.Log (suggestedblock1 + " : " + suggestedblock2 + " : " + suggestedblock3);

            for (int i = 0; i < 3; i++)
            {
                GameObject obj        = null;
                string     ObjectName = GameDataManager.instance.GameDoc.Root.Element("suggestedObject" + (i + 1)).Attribute("objectName").Value;
                ObjectName = ObjectName.Replace("(Clone)", "");
                int index = blockList.FindIndex(o => o.name == ObjectName);

                if (index != -1)
                {
                    //index = ProbabilityPool [UnityEngine.Random.Range (0, ProbabilityPool.Count)];
                    obj = (GameObject)Instantiate(blockList [index].gameObject);

                    obj.transform.SetParent(blockContainer.GetChild(i).transform);
                    obj.GetComponent <RectTransform> ().anchoredPosition3D = Vector3.zero;
                    obj.transform.localScale = new Vector3(0.6f, 0.6f, 1);
                    obj.gameObject.SetActive(true);

                    placedBlocks++;
                }
            }
            EGTween.MoveFrom(blockContainer.gameObject, EGTween.Hash("isLocal", true, "x", 50, "time", blockTransitionTime));
        }

        if (placedBlocks == 0)
        {
            OnPlacingBlock();
            StartCoroutine("UpdateBlocksInCurrentMoveData");
        }
    }
Beispiel #2
0
    public void SpawnSuggetedBlocks()
    {
        for (int i = 0; i < 3; i++)
        {
            if (blockContainer.GetChild(i).childCount > 0)
            {
                Destroy(blockContainer.GetChild(i).GetChild(0).gameObject);
            }
        }

        int placedBlocks = 0;

        XDocument doc = XDocument.Parse(GameDataManager.instance.lastMoveData);

        for (int i = 0; i < 3; i++)
        {
            GameObject obj = null;

            string ObjectName = doc.Root.Element("suggestedObject" + (i + 1)).Attribute("objectName").Value;
            ObjectName = ObjectName.Replace("(Clone)", "");
            int index = blockList.FindIndex(o => o.name == ObjectName);

            if (index != -1)
            {
                //index = ProbabilityPool [UnityEngine.Random.Range (0, ProbabilityPool.Count)];
                obj = (GameObject)Instantiate(blockList [index].gameObject);

                obj.transform.SetParent(blockContainer.GetChild(i).transform);
                obj.GetComponent <RectTransform> ().anchoredPosition3D = Vector3.zero;
                obj.transform.localScale = new Vector3(0.6f, 0.6f, 1);
                obj.gameObject.SetActive(true);

                placedBlocks++;
            }
        }
        EGTween.MoveFrom(blockContainer.gameObject, EGTween.Hash("isLocal", true, "x", 50, "time", blockTransitionTime));
    }
    public void PlaceObject()
    {
        int blockRemained = 0;

        List <Transform> blockList = BlockTrayManager.instance.blockList;

        foreach (Transform t in blockContainer)
        {
            if (t.childCount > 0)
            {
                blockRemained++;
            }
        }

        if (blockRemained == 2)
        {
            for (int i = 1; i <= 3; i++)
            {
                if (blockContainer.GetChild(i - 1).childCount <= 0)
                {
                    if (i == 1)
                    {
                        if (blockContainer.GetChild(i).childCount > 0)
                        {
                            swapObject(blockContainer.GetChild(i - 1), blockContainer.GetChild(i).GetChild(0));
                            swapObject(blockContainer.GetChild(i), blockContainer.GetChild(i + 1).GetChild(0));
                        }
                    }
                    else if (i == 2)
                    {
                        if (blockContainer.GetChild(i).childCount >= 0)
                        {
                            swapObject(blockContainer.GetChild(i - 1), blockContainer.GetChild(i).GetChild(0));
                        }
                    }
                    else
                    {
                        GameObject obj = (GameObject)Instantiate(blockList [2].gameObject);
                        obj.transform.SetParent(blockContainer.GetChild(i - 1).transform);
                        obj.GetComponent <RectTransform> ().anchoredPosition3D = Vector3.zero;
                        obj.transform.localScale = new Vector3(0.6f, 0.6f, 1);
                        obj.gameObject.SetActive(true);
                        EGTween.MoveFrom(obj, EGTween.Hash("isLocal", true, "x", 50, "time", blockTransitionTime));
                    }
                }
            }

            blockContainer.GetChild(1).GetComponent <Image> ().raycastTarget = true;
            blockContainer.GetChild(helpMode == "Horizontal" ? 2 : 0).GetComponent <Image> ().raycastTarget = true;
        }
        else if (blockRemained == 0)
        {
            blockContainer.GetChild(1).GetComponent <Image> ().raycastTarget = false;
            blockContainer.GetChild(helpMode == "Horizontal" ? 2 : 0).GetComponent <Image> ().raycastTarget = false;
            for (int i = 0; i < 3; i++)
            {
                GameObject obj = (GameObject)Instantiate(blockList [helpMode == "Horizontal" ? i:i + 2].gameObject);
                obj.transform.SetParent(blockContainer.GetChild(i).transform);
                obj.GetComponent <RectTransform> ().anchoredPosition3D = Vector3.zero;
                obj.transform.localScale = new Vector3(0.6f, 0.6f, 1);
                obj.gameObject.SetActive(true);
            }
            EGTween.MoveFrom(blockContainer.gameObject, EGTween.Hash("isLocal", true, "x", 50, "time", blockTransitionTime));
        }
    }
Beispiel #4
0
 public static void MoveFrom(this GameObject target, Hashtable args)
 {
     EGTween.MoveFrom(target, args);
 }
Beispiel #5
0
 public static void MoveFrom(this GameObject target, Vector3 position, float time)
 {
     EGTween.MoveFrom(target, EGTween.Hash("position", position, "time", time));
 }
Beispiel #6
0
    /// <summary>
    /// Raises the placing block event.
    /// </summary>
    public void OnPlacingBlock()
    {
        int blockRemained = 0;

        foreach (Transform t in blockContainer)
        {
            if (t.childCount > 0)
            {
                blockRemained++;
            }
        }
//		if (blockRemained == 2)
//		{
//			for (int i = 1; i <= 3; i++) {
//				if (blockContainer.GetChild (i - 1).childCount <= 0) {
//					if (i == 1) {
//						if (blockContainer.GetChild (i).childCount > 0) {
//							swapObject (blockContainer.GetChild (i - 1), blockContainer.GetChild (i).GetChild (0));
//							swapObject (blockContainer.GetChild (i), blockContainer.GetChild (i + 1).GetChild (0));
//						}
//					} else if (i == 2) {
//						if (blockContainer.GetChild (i).childCount >= 0) {
//							swapObject (blockContainer.GetChild (i - 1), blockContainer.GetChild (i).GetChild (0));
//						}
//					} else {
//						GameObject obj = (GameObject)Instantiate (blockList [ProbabilityPool [UnityEngine.Random.Range (0, ProbabilityPool.Count)]].gameObject);
//						obj.transform.SetParent (blockContainer.GetChild (i - 1).transform);
//						obj.GetComponent<RectTransform> ().anchoredPosition3D = Vector3.zero;
//						obj.transform.localScale = new Vector3 (0.6f, 0.6f, 1);
//						obj.gameObject.SetActive (true);
//						EGTween.MoveFrom (obj, EGTween.Hash ("isLocal", true, "x", 50, "time", blockTransitionTime));
//					}
//				}
//			}
//		}
//		else if (blockRemained == 0)
//		{
//			for (int i = 0; i < 3; i++) {
//				GameObject obj = null;
//				if (GameController.instance.PlayFromLastStatus) {
//					string ObjectName = GameController.instance.GameDoc.Root.Element("suggestedObject"+(i+1)).Attribute("objectName").Value;
//					ObjectName = ObjectName.Replace ("(Clone)", "");
//					int index = blockList.FindIndex (o => o.name == ObjectName);
//					if (index == -1) {
//						index = ProbabilityPool [UnityEngine.Random.Range (0, ProbabilityPool.Count)];
//					}
//					obj = (GameObject)Instantiate (blockList [index].gameObject);
//				}
//				else
//				{
//					obj = (GameObject)Instantiate (blockList [ProbabilityPool [UnityEngine.Random.Range (0, ProbabilityPool.Count)]].gameObject);
//				}
//
//				obj.transform.SetParent (blockContainer.GetChild (i).transform);
//				obj.GetComponent<RectTransform> ().anchoredPosition3D = Vector3.zero;
//				obj.transform.localScale = new Vector3 (0.6f, 0.6f, 1);
//				obj.gameObject.SetActive (true);
//			}
//			EGTween.MoveFrom (blockContainer.gameObject, EGTween.Hash ("isLocal", true, "x", 50, "time", blockTransitionTime));
//		}
//
//		if (GamePlay.instance != null && GameController.instance.GameDoc != null) {
//			GameController.instance.GameDoc.Root.Element ("suggestedObject1").Attribute ("objectName").SetValue (blockContainer.GetChild (0).GetChild(0).transform.name);
//			GameController.instance.GameDoc.Root.Element ("suggestedObject2").Attribute ("objectName").SetValue (blockContainer.GetChild (1).GetChild(0).transform.name);
//			GameController.instance.GameDoc.Root.Element ("suggestedObject3").Attribute ("objectName").SetValue (blockContainer.GetChild (2).GetChild(0).transform.name);
//		}

//		if (blockRemained == 0)
//		{
//			for (int i = 0; i < 3; i++)
//			{
//				GameObject obj = null;
//				if (GameDataManager.instance.PlayFromLastStatus) {
//					string ObjectName = GameDataManager.instance.GameDoc.Root.Element("suggestedObject"+(i+1)).Attribute("objectName").Value;
//					ObjectName = ObjectName.Replace ("(Clone)", "");
//					int index = blockList.FindIndex (o => o.name == ObjectName);
//					if (index == -1) {
//						index = ProbabilityPool [UnityEngine.Random.Range (0, ProbabilityPool.Count)];
//					}
//					obj = (GameObject)Instantiate (blockList [index].gameObject);
//				}
//				else
//				{
//					obj = (GameObject)Instantiate (blockList [ProbabilityPool [UnityEngine.Random.Range (0, ProbabilityPool.Count)]].gameObject);
//				}
//
//				obj.transform.SetParent (blockContainer.GetChild (i).transform);
//				obj.GetComponent<RectTransform> ().anchoredPosition3D = Vector3.zero;
//				obj.transform.localScale = new Vector3 (0.6f, 0.6f, 1);
//				obj.gameObject.SetActive (true);
//			}
//			EGTween.MoveFrom (blockContainer.gameObject, EGTween.Hash ("isLocal", true, "x", 50, "time", blockTransitionTime));
//		}



        string block1Name = "";
        string block2Name = "";
        string block3Name = "";

        if (blockContainer.GetChild(0).childCount > 0)
        {
            block1Name = blockContainer.GetChild(0).GetChild(0).name;
        }
        if (GamePlay.instance.upcomingBlockFillMode == UpcomingBlockFillMode.AddNewOnAllEmpty)
        {
            if (blockRemained == 0)
            {
                for (int i = 0; i < 3; i++)
                {
                    GameObject obj = null;
                    if (GameDataManager.instance.PlayFromLastStatus)
                    {
                        string ObjectName = GameDataManager.instance.GameDoc.Root.Element("suggestedObject" + (i + 1)).Attribute("objectName").Value;
                        ObjectName = ObjectName.Replace("(Clone)", "");
                        int index = blockList.FindIndex(o => o.name == ObjectName);
                        if (index == -1)
                        {
                            index = ProbabilityPool [UnityEngine.Random.Range(0, ProbabilityPool.Count)];
                        }
                        obj = (GameObject)Instantiate(blockList [index].gameObject);
                    }
                    else
                    {
                        obj = (GameObject)Instantiate(blockList [ProbabilityPool [UnityEngine.Random.Range(0, ProbabilityPool.Count)]].gameObject);
                    }

                    obj.transform.SetParent(blockContainer.GetChild(i).transform);
                    obj.GetComponent <RectTransform> ().anchoredPosition3D = Vector3.zero;
                    obj.transform.localScale = new Vector3(0.6f, 0.6f, 1);
                    obj.gameObject.SetActive(true);
                }
                EGTween.MoveFrom(blockContainer.gameObject, EGTween.Hash("isLocal", true, "x", 50, "time", blockTransitionTime));
            }
        }
        else
        {
            if (blockRemained == 2)
            {
                for (int i = 1; i <= 3; i++)
                {
                    if (blockContainer.GetChild(i - 1).childCount <= 0)
                    {
                        if (i == 1)
                        {
                            if (blockContainer.GetChild(i).childCount > 0)
                            {
                                swapObject(blockContainer.GetChild(i - 1), blockContainer.GetChild(i).GetChild(0));
                                swapObject(blockContainer.GetChild(i), blockContainer.GetChild(i + 1).GetChild(0));
                            }
                        }
                        else if (i == 2)
                        {
                            if (blockContainer.GetChild(i).childCount >= 0)
                            {
                                swapObject(blockContainer.GetChild(i - 1), blockContainer.GetChild(i).GetChild(0));
                            }
                        }
                        else
                        {
                            GameObject obj = (GameObject)Instantiate(blockList [ProbabilityPool [UnityEngine.Random.Range(0, ProbabilityPool.Count)]].gameObject);
                            obj.transform.SetParent(blockContainer.GetChild(i - 1).transform);
                            obj.GetComponent <RectTransform> ().anchoredPosition3D = Vector3.zero;
                            obj.transform.localScale = new Vector3(0.6f, 0.6f, 1);
                            obj.gameObject.SetActive(true);
                            EGTween.MoveFrom(obj, EGTween.Hash("isLocal", true, "x", 50, "time", blockTransitionTime));
                        }
                    }
                }
            }
            else if (blockRemained == 0)
            {
                for (int i = 0; i < 3; i++)
                {
                    GameObject obj = null;
                    if (GameDataManager.instance.PlayFromLastStatus)
                    {
                        string ObjectName = GameDataManager.instance.GameDoc.Root.Element("suggestedObject" + (i + 1)).Attribute("objectName").Value;
                        ObjectName = ObjectName.Replace("(Clone)", "");
                        int index = blockList.FindIndex(o => o.name == ObjectName);
                        if (index == -1)
                        {
                            index = ProbabilityPool [UnityEngine.Random.Range(0, ProbabilityPool.Count)];
                        }
                        obj = (GameObject)Instantiate(blockList [index].gameObject);
                    }
                    else
                    {
                        obj = (GameObject)Instantiate(blockList [ProbabilityPool [UnityEngine.Random.Range(0, ProbabilityPool.Count)]].gameObject);
                    }

                    obj.transform.SetParent(blockContainer.GetChild(i).transform);
                    obj.GetComponent <RectTransform> ().anchoredPosition3D = Vector3.zero;
                    obj.transform.localScale = new Vector3(0.6f, 0.6f, 1);
                    obj.gameObject.SetActive(true);
                }
                EGTween.MoveFrom(blockContainer.gameObject, EGTween.Hash("isLocal", true, "x", 50, "time", blockTransitionTime));
            }
        }
        if (blockContainer.GetChild(1).childCount > 0)
        {
            block2Name = blockContainer.GetChild(1).GetChild(0).name;
        }

        if (blockContainer.GetChild(2).childCount > 0)
        {
            block3Name = blockContainer.GetChild(2).GetChild(0).name;
        }

        GameDataManager.instance.GameDoc.Root.Element("suggestedObject1").Attribute("objectName").SetValue(block1Name);
        GameDataManager.instance.GameDoc.Root.Element("suggestedObject2").Attribute("objectName").SetValue(block2Name);
        GameDataManager.instance.GameDoc.Root.Element("suggestedObject3").Attribute("objectName").SetValue(block3Name);

//		Debug.Log ("This is called..");
//
//		GameController.instance.currentMoveData = GameController.instance.GameDoc.ToString ();
    }