public void DisplayElem2Find(SolutionObject solData, GameObject solObj) { int nb = solData.getElem2Find(); print(solObj.name + " required " + nb + " elements to find"); Transform go = solObj.transform.Find("Feedbacks"); //new GameObject ("Feedbacks"); //go.transform.SetParent (solObj.transform); float shift = -(shiftF * nb / 2); if (nb % 2 == 0) { shift = shift + shiftF / 2; } go.transform.localPosition = new Vector2(shift + go.transform.localPosition.x, go.transform.localPosition.y); //go.transform.position = new Vector3 (shift, go.transform.position.y, go.transform.position.z); for (int i = 0; i < nb; i++) { //string path = "Prefabs/"; string path = "Prefabs/" + GameObject.FindObjectOfType <GameManager>().getCurrentLevelData().sceneName + "/"; GameObject elem = Instantiate(Resources.Load(path + "SmallStarEmpty")) as GameObject; //elem.name = "SmallStarEmpty"; elem.transform.SetParent(go); elem.transform.position = new Vector3(0, 0, 0); float dx = i * shiftF; elem.transform.localPosition = new Vector2(dx, 0f); } }
public EbProfileUserType GetUserTypeById(int id) { if (SolutionObject == null) { return(null); } return(SolutionObject.GetUserTypeProfile()?.Find(item => item.Id == id)); }
public bool SignupEnabled() { if (SolutionObject == null) { return(false); } return(SolutionObject.IsMobileSignupEnabled(out _)); }
void initSolutionObject(SolutionObject e) { GameObject position = GameObject.Find(e.pos); GameObject elem = InstantiatePrefabWithName(e.name); elem.transform.position = position.transform.position; GameObject newParent = GameObject.Find("SolutionObjects"); elem.transform.parent = newParent.transform; if (elem.GetComponent <DropData>() != null) { elem.GetComponent <DropData>().acceptedElements = e.acceptedElements; } /*if (elem.transform.Find ("target") != null) { * GameObject targetObj = elem.transform.Find ("target").gameObject; * targetObj.GetComponent<SpriteRenderer> (). * }*/ // B3 ? if (e.requiredObject()) {// && elem.transform.Find ("object2find") != null) { print("required object"); GameObject object2find = InstantiatePrefabWithName(e.acceptedElements); object2find.name = "similarObjectToFind"; object2find.transform.SetParent(elem.transform); Transform location = elem.GetComponent <DropData>().findFreePosition(); if (location != null) { moveObjectToPlaceWithName(object2find, location.name); //object2find.transform.position = location.position; object2find.GetComponent <DragNDropData>().moveable = false; //string layer = "solutionPlace"; //if (location.gameObject.GetComponent<SpriteRenderer> () != null) { // layer = location.gameObject.GetComponent<SpriteRenderer> ().sortingLayerName; //} //object2find.GetComponent<SpriteRenderer> ().sortingLayerName = location.gameObject.GetComponent<SpriteRenderer> ().sortingLayerName; object2find.GetComponent <DragNDropData>().DeactivateColliders(); } } // B4 ? if (e.requiredImage() && elem.transform.Find("image") != null) { print("Target Image of the solution element needs to be updated"); GameObject target = elem.transform.Find("image").gameObject; if (target != null) { LevelData data = GameObject.FindObjectOfType <GameManager>().getCurrentLevelData(); target.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>("Sprites/" + data.sceneName + "/" + e.acceptedElements + "Image"); print("Target image updated !"); } else { print("pb when updating the target image"); } } else if (elem.transform.Find("image") != null) { // hide target Image GameObject target = elem.transform.Find("image").gameObject; if (target != null) { target.SetActive(false); } } foreach (Element element in e.elements) { GameObject elem2 = initElementInPos(element); // solution objects already placed must not be moved elem2.GetComponent <DragNDropData>().moveable = false; } string difficulty = GameObject.FindObjectOfType <GameManager>().getCurrentLevelData().difficulty; if (!difficulty.Equals("EXPERT") && !difficulty.Equals("ADVANCED")) { GameObject.Find("FeedbacksManager").GetComponent <FeedbacksManager>().DisplayElem2Find(e, elem); } foreach (SolutionArea solArea in e.solutionAreas) { //print ("we look for " + solArea.pos); Transform area = elem.transform.Find(solArea.pos); //print (area.gameObject); area.gameObject.GetComponent <DropData>().acceptedElements = solArea.acceptedElement; area.gameObject.GetComponent <DropData>().dropable = true; area.gameObject.GetComponent <DropData>().solutionArea = true; } //target.tag = e.acceptedElements; //elem.transform.Find ("target").gameObject.tag = e.acceptedElements; }
public void LoadMyXML() { Debug.Log("Load XML file..."); XmlDocument xmlDoc = new XmlDocument(); // xmlDoc is the new xml document. WWW www; //#if UNITY_EDITOR /*if (xmlLocalFile != null) { * print ("Local XML file found => load default local file"); * xmlDoc.LoadXml (xmlLocalFile.text); * } else { * // Start a download of the given URL * www = new WWW ("file:///Users/plaforcade/Documents/Boulot/iWorkspaces/workspace4ESCAPEGAMERK/FlatModel4Unity/model/Scenario_OUT.flatmodel"); * print("local xml file not found... => load scenario from generator"); * xmlDoc.LoadXml(www.text); * }*/ //#endif //#if UNITY_ANDROID string path = Application.persistentDataPath + "/XMLFiles/"; string completeFile = "file://" + path + localFileName4Android + ".xml"; print(completeFile); www = new WWW(completeFile); //yield return www; //string xml = File.ReadAllText(www.text); xmlDoc.LoadXml(www.text); //#endif XmlNodeList levelsList = xmlDoc.GetElementsByTagName("level"); // array of the level nodes. maxScenes = levelsList.Count; levels = new LevelData[maxScenes]; int cpt = 0; foreach (XmlNode levelInfo in levelsList) { LevelData newLevel = new LevelData(); newLevel.sceneName = levelInfo.Attributes["scene"].Value; newLevel.difficulty = levelInfo.Attributes["difficulty"].Value; newLevel.nbObjectsToFind = int.Parse(levelInfo.Attributes["nbElementsToPlace"].Value); levels [cpt++] = newLevel; XmlNodeList levelcontent = levelInfo.ChildNodes; List <Element> elems = new List <Element> (); List <SolutionObject> sols = new List <SolutionObject> (); List <PlacedDecor> decors = new List <PlacedDecor> (); List <Hideout> hideouts = new List <Hideout> (); foreach (XmlNode levelsItens in levelcontent) // levels itens nodes. { if (levelsItens.Name == "element") { Element elem = new Element(); elem.name = levelsItens.Attributes ["name"].Value; elem.pos = levelsItens.Attributes ["pos"].Value; elems.Add(elem); //obj.Add("name",levelsItens.InnerText); // put this in the dictionary. } if (levelsItens.Name == "solutionobject") { SolutionObject elem = new SolutionObject(); elem.name = levelsItens.Attributes ["name"].Value; elem.pos = levelsItens.Attributes ["pos"].Value; elem.acceptedElements = levelsItens.Attributes ["acceptedElements"].Value; elem.targetedSkill = levelsItens.Attributes ["targetedSkill"].Value; elem.nbElem2Find = int.Parse(levelsItens.Attributes ["nbSol2Find"].Value); List <Element> subElem = new List <Element> (); List <SolutionArea> solAreas = new List <SolutionArea> (); foreach (XmlNode sub in levelsItens.ChildNodes) { if (sub.Name == "element") { Element subelement = new Element(); subelement.name = sub.Attributes ["name"].Value; subelement.pos = sub.Attributes ["pos"].Value; subElem.Add(subelement); //obj.Add("name",levelsItens.InnerText); // put this in the dictionary. } if (sub.Name == "solutionarea") { SolutionArea area = new SolutionArea(); area.pos = sub.Attributes ["pos"].Value; area.acceptedElement = sub.Attributes ["acceptedElement"].Value; solAreas.Add(area); } } elem.elements = (Element[])subElem.ToArray(); elem.solutionAreas = (SolutionArea[])solAreas.ToArray(); sols.Add(elem); //obj.Add("name",levelsItens.InnerText); // put this in the dictionary. } if (levelsItens.Name == "placeddecor") { PlacedDecor elem = new PlacedDecor(); elem.name = levelsItens.Attributes ["name"].Value; List <Element> subElem = new List <Element> (); List <Hideout> subHidouts = new List <Hideout> (); foreach (XmlNode sub in levelsItens.ChildNodes) { if (sub.Name == "element") { Element subelement = new Element(); subelement.name = sub.Attributes ["name"].Value; subelement.pos = sub.Attributes ["pos"].Value; subElem.Add(subelement); } if (sub.Name == "hideout") { Hideout hidoutInDecor = new Hideout(); hidoutInDecor.name = sub.Attributes ["name"].Value; subHidouts.Add(hidoutInDecor); List <Element> subHidoutElem = new List <Element> (); foreach (XmlNode sub2 in sub.ChildNodes) { if (sub2.Name == "element") { Element hidoutElement = new Element(); hidoutElement.name = sub2.Attributes ["name"].Value; hidoutElement.pos = sub2.Attributes ["pos"].Value; subHidoutElem.Add(hidoutElement); } } hidoutInDecor.hiddenElements = (Element[])subHidoutElem.ToArray(); } } elem.elements = (Element[])subElem.ToArray(); elem.hideouts = (Hideout[])subHidouts.ToArray(); decors.Add(elem); //obj.Add("name",levelsItens.InnerText); // put this in the dictionary. } if (levelsItens.Name == "hideout") { Hideout elem = new Hideout(); elem.name = levelsItens.Attributes ["name"].Value; elem.pos = levelsItens.Attributes ["pos"].Value; List <Element> subElem = new List <Element> (); foreach (XmlNode sub in levelsItens.ChildNodes) { if (sub.Name == "element") { Element subelement = new Element(); subelement.name = sub.Attributes ["name"].Value; subelement.pos = sub.Attributes ["pos"].Value; subElem.Add(subelement); } } elem.hiddenElements = (Element[])subElem.ToArray(); hideouts.Add(elem); //obj.Add("name",levelsItens.InnerText); // put this in the dictionary. } } newLevel.elements = (Element[])elems.ToArray(); newLevel.solutionObjects = (SolutionObject[])sols.ToArray(); newLevel.placedDecors = (PlacedDecor[])decors.ToArray(); newLevel.hideouts = (Hideout[])hideouts.ToArray(); currentScene = 0; } }