Exemple #1
0
    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);
        }
    }
Exemple #2
0
 public EbProfileUserType GetUserTypeById(int id)
 {
     if (SolutionObject == null)
     {
         return(null);
     }
     return(SolutionObject.GetUserTypeProfile()?.Find(item => item.Id == id));
 }
Exemple #3
0
 public bool SignupEnabled()
 {
     if (SolutionObject == null)
     {
         return(false);
     }
     return(SolutionObject.IsMobileSignupEnabled(out _));
 }
Exemple #4
0
    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;
    }
Exemple #5
0
    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;
        }
    }