Exemple #1
0
    //Controlla e se necessario riserializza i percorsi
    public static void SerializzaPercorsi(ref GameData databseInizialeAmicizie, ref Serializzabile<AmicizieSerializzabili> datiDiplomazia, ref Dictionary<string, int> dizionarioPercorsi)
    {
        //Controlla i percorsi se sono gia serializzati e se ci sono variazioni li reserializza
        //se non sono serializzati li serializza
        //se non ci sono variazioni non fa niente

        if (databseInizialeAmicizie == null) return;

        if (datiDiplomazia == null)

            datiDiplomazia = new Serializzabile<AmicizieSerializzabili>(Statici.nomeFileDiplomazia);

        if (datiDiplomazia.Dati.indexPercorsi.Equals(databseInizialeAmicizie.indexPercorsi)) return;  //CONTROLLARE SE METODO E' CORRETTO

        for (int i = 0; i < databseInizialeAmicizie.classiEssere.Length; i++)

        {
            datiDiplomazia.Dati.indexPercorsi[i] = databseInizialeAmicizie.indexPercorsi[i];
        }

        datiDiplomazia.Salva();

        // AGGIUNTO PER IL DIZIONARIO SUI PERCORSO
        dizionarioPercorsi.Clear();

        for (int i = 0; i < datiDiplomazia.Dati.tipoEssere.Length; i++)
            dizionarioPercorsi.Add(datiDiplomazia.Dati.tipoEssere[i], datiDiplomazia.Dati.indexPercorsi[i]);
    }
 public void RecuperaDatiGiocatore()
 {
     if (elencoCartelleDropDown.options.Count <= 0) return;
     if (nuovaPartita) return;
     Statici.nomePersonaggio = elencoCartelleDropDown.options[elencoCartelleDropDown.value].text;
     datiPersonaggio = new Serializzabile<ValoriPersonaggioS>(Statici.NomeFilePersonaggio);
     vitaCaricamento.text = datiPersonaggio.Dati.Vita.ToString();
     attaccoCaricamento.text = datiPersonaggio.Dati.Attacco.ToString();
     difesaCaricamento.text = datiPersonaggio.Dati.difesa.ToString();
     if (tmpGOPrecedente != null)
     {
         tmpGOPrecedente.transform.position = dizionarioPosizioniPrecedenti[tmpGOPrecedente.name].position;
         tmpGOPrecedente.transform.rotation = dizionarioPosizioniPrecedenti[tmpGOPrecedente.name].rotation;
     }
     if (datiPersonaggio == null) return;
     if (!dizionarioCollegamentoNomiConModelli.ContainsKey(datiPersonaggio.Dati.nomeModello))
     {
         erroreCaricamento.text = "Errore..Questo personaggio non e' più valido";
         bottoneCaricaDaCaricamento.interactable = false;
         return;
     }
     else
     {
         erroreCaricamento.text = "";
         bottoneCaricaDaCaricamento.interactable = true;
     }
     GameObject tmOj = dizionarioCollegamentoNomiConModelli[datiPersonaggio.Dati.nomeModello];
     tmOj.transform.position = posizionePersonaggioCarica.position;
     tmOj.transform.rotation = posizionePersonaggioCarica.rotation;
     tmpGOPrecedente = tmOj;
 }
    private void Start()
    {
        Statici.inGioco = false;
        me = this;
        CambiaAlphaPannelloSfondo();
        nomeScenaText.gameObject.SetActive(false);
        Statici.assegnaAssetDatabase();
        cameraT = Camera.main.transform;
        datiPersonaggio = new Serializzabile<ValoriPersonaggioS>(Statici.NomeFilePersonaggio);
        for (int i = 0; i < Statici.databaseInizialeProprieta.matriceProprieta.Count; i++)
        {
            if (!Statici.databaseInizialeProprieta.matriceProprieta[i].giocabile)
                continue;
            string tmpNomeModelloM = Statici.databaseInizialeProprieta.matriceProprieta[i].nomeM;
            string tmpNomeModelloF = Statici.databaseInizialeProprieta.matriceProprieta[i].nomeF;
            dizionarioCollegamentoNomiConModelli.Add(tmpNomeModelloM, Instantiate(Resources.Load(tmpNomeModelloM), GameObject.Find("postazione" + contatoreGiocabili).transform.FindChild("posizioneM").position, new Quaternion(0f, 180f, 0f, 0f)) as GameObject);
            dizionarioCollegamentoNomiConModelli.Add(tmpNomeModelloF, Instantiate(Resources.Load(tmpNomeModelloF), GameObject.Find("postazione" + contatoreGiocabili).transform.FindChild("posizioneF").position, Quaternion.identity) as GameObject);
            dizionarioPosizioniPrecedenti.Add(dizionarioCollegamentoNomiConModelli[tmpNomeModelloM].name, GameObject.Find("postazione" + contatoreGiocabili).transform.FindChild("posizioneM"));
            dizionarioPosizioniPrecedenti.Add(dizionarioCollegamentoNomiConModelli[tmpNomeModelloF].name, GameObject.Find("postazione" + contatoreGiocabili).transform.FindChild("posizioneF"));
            contatoreGiocabili += 1;
        }
        Statici.CopiaIlDB();
        DirectoryInfo dI = new DirectoryInfo(Application.persistentDataPath);
        DirectoryInfo[] dirs = dI.GetDirectories();
        for (int i = 0; i < dirs.Length; i++)
        {
            cartelleLocali.Add(dirs[i].Name);
        }

        SFXBus = FMODUnity.RuntimeManager.GetBus("bus:/SFX");
        EnviromentBus = FMODUnity.RuntimeManager.GetBus("bus:/Environment");

        datiAudio = new Serializzabile<ClasseAudio>(Statici.NomeFileAudio, true);
        if (!datiAudio.Dati.inizializzato)
        {
            SFXBus.getFaderLevel(out datiAudio.Dati.volSFX);
            EnviromentBus.getFaderLevel(out datiAudio.Dati.volEnvironment);
            datiAudio.Dati.inizializzato = true;
            datiAudio.Salva();
        }
        else
        {
            SFXBus.setFaderLevel(datiAudio.Dati.volSFX);
            EnviromentBus.setFaderLevel(datiAudio.Dati.volEnvironment);
        }

        volumiAmbiente.value = datiAudio.Dati.volEnvironment;
        volumiSFX.value = datiAudio.Dati.volSFX;
    }
    public void CaricaPartitaDaCreazione()
    {
        if (testoNome.text.Trim() == string.Empty)
            erroreCreazioneText.text = "Inserire un nome";
        else
        {
            erroreCreazioneText.text = string.Empty;
            if (cartelleLocali.Contains(testoNome.text.Trim()))
                erroreCreazioneText.text = "Esiste Gia Un Personaggio con questo nome";
            else
            {
                canvasGroupCreazione.interactable = false;
                canvasGroupCarica.interactable = false;
                erroreCaricamento.text = string.Empty;
                Statici.sonoPassatoDallaScenaIniziale = true;
                Statici.nomePersonaggio = testoNome.text;
                datiPersonaggio = new Serializzabile<ValoriPersonaggioS>(Statici.NomeFilePersonaggio);
                if (datiPersonaggio.Dati.nomePersonaggio == null)
                {
                    datiPersonaggio.Dati.Vita = Statici.databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Vita;
                    datiPersonaggio.Dati.Attacco = Statici.databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Attacco;
                    datiPersonaggio.Dati.difesa = Statici.databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].difesa;
                    datiPersonaggio.Dati.Xp = Statici.databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Xp;
                    datiPersonaggio.Dati.Livello = Statici.databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Livello;
                    if (elencoSessiDropDown.value == 0)
                        datiPersonaggio.Dati.nomeModello = Statici.databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].nomeM;
                    else
                        datiPersonaggio.Dati.nomeModello = Statici.databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].nomeF;
                    datiPersonaggio.Dati.nomePersonaggio = testoNome.text;
                    datiPersonaggio.Dati.classe = casellaTipo.text;
                    datiPersonaggio.Dati.VitaMassima = Statici.databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Vita;
                    datiPersonaggio.Dati.ManaMassimo = Statici.databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Mana;
                    datiPersonaggio.Dati.XPMassimo = Statici.databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Xp;
                    datiPersonaggio.Dati.posizioneCheckPoint = "start";
                    datiPersonaggio.Dati.nomeScena = "Isola";
                    datiPersonaggio.Salva();
                }
                datiDiplomazia = new Serializzabile<AmicizieSerializzabili>(Statici.nomeFileDiplomazia);

                if (datiDiplomazia.Dati.tipoEssere[0] == null)
                {
                    for (int i = 0; i < Statici.databseInizialeAmicizie.classiEssere.Length; i++)
                    {
                        datiDiplomazia.Dati.tipoEssere[i] = Statici.databseInizialeAmicizie.classiEssere[i];

                    }
                    for (int i = 0; i < Statici.databseInizialeAmicizie.classiEssere.Length; i++)
                    {
                        datiDiplomazia.Dati.matriceAmicizie[i] = Statici.databseInizialeAmicizie.matriceAmicizie[i];

                        for (int j = 0; j < Statici.databseInizialeAmicizie.classiEssere.Length; j++)
                        {
                            datiDiplomazia.Dati.matriceAmicizie[i].elementoAmicizia[j] = Statici.databseInizialeAmicizie.matriceAmicizie[i].elementoAmicizia[j];

                        }
                    }
                    datiDiplomazia.Salva();
                }

                if (!Statici.multigiocatoreOn)//SOLO SINGLEPLAYER
                    StartCoroutine(ScenaInCaricamento(datiPersonaggio.Dati.nomeScena));
                else//solo multiplayer
                    ScenaInizialeNetwork.VaiAlleStanze();
            }
        }
    }
 private void Start()
 {
     CambiaAlphaPannelloSfondo();
     nomeScenaText.gameObject.SetActive(false);
     Statici.assegnaAssetDatabase(ref databseInizialeAmicizie, ref databaseInizialeProprieta);
     cameraT = Camera.main.transform;
     datiPersonaggio = new Serializzabile<ValoriPersonaggioS>(Statici.NomeFilePersonaggio);
     for (int i = 0; i < databaseInizialeProprieta.matriceProprieta.Count; i++)
     {
         if (!databaseInizialeProprieta.matriceProprieta[i].giocabile)
             continue;
         string tmpNomeModelloM = databaseInizialeProprieta.matriceProprieta[i].nomeM;
         string tmpNomeModelloF = databaseInizialeProprieta.matriceProprieta[i].nomeF;
         dizionarioCollegamentoNomiConModelli.Add(tmpNomeModelloM, Instantiate(Resources.Load(tmpNomeModelloM), GameObject.Find("postazione" + contatoreGiocabili).transform.FindChild("posizioneM").position, new Quaternion(0f, 180f, 0f, 0f)) as GameObject);
         dizionarioCollegamentoNomiConModelli.Add(tmpNomeModelloF, Instantiate(Resources.Load(tmpNomeModelloF), GameObject.Find("postazione" + contatoreGiocabili).transform.FindChild("posizioneF").position, Quaternion.identity) as GameObject);
         dizionarioPosizioniPrecedenti.Add(dizionarioCollegamentoNomiConModelli[tmpNomeModelloM].name, GameObject.Find("postazione" + contatoreGiocabili).transform.FindChild("posizioneM"));
         dizionarioPosizioniPrecedenti.Add(dizionarioCollegamentoNomiConModelli[tmpNomeModelloF].name, GameObject.Find("postazione" + contatoreGiocabili).transform.FindChild("posizioneF"));
         contatoreGiocabili += 1;
     }
     Statici.CopiaIlDB();
     DirectoryInfo dI = new DirectoryInfo(Application.persistentDataPath);
     DirectoryInfo[] dirs = dI.GetDirectories();
     for (int i = 0; i < dirs.Length; i++)
     {
         cartelleLocali.Add(dirs[i].Name);
     }
 }
    public void CaricaPartitaDaCreazione()
    {
        if (testoNome.text.Trim() == string.Empty)
            erroreCreazioneText.text = "Inserire un nome";
        else
        {
            erroreCreazioneText.text = string.Empty;
            if (cartelleLocali.Contains(testoNome.text.Trim()))
                erroreCreazioneText.text = "Esiste Gia Un Personaggio con questo nome";
            else
            {
                erroreCaricamento.text = string.Empty;
                Statici.sonoPassatoDallaScenaIniziale = true;
                Statici.nomePersonaggio = testoNome.text;
                datiPersonaggio = new Serializzabile<ValoriPersonaggioS>(Statici.NomeFilePersonaggio);
                if (datiPersonaggio.Dati.nomePersonaggio == null)
                {
                    datiPersonaggio.Dati.Vita = databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Vita;
                    datiPersonaggio.Dati.Attacco = databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Attacco;
                    datiPersonaggio.Dati.difesa = databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].difesa;
                    datiPersonaggio.Dati.Xp = databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Xp;
                    datiPersonaggio.Dati.Livello = databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Livello;
                    if (elencoSessiDropDown.value == 0)
                        datiPersonaggio.Dati.nomeModello = databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].nomeM;
                    else
                        datiPersonaggio.Dati.nomeModello = databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].nomeF;
                    datiPersonaggio.Dati.nomePersonaggio = testoNome.text;
                    datiPersonaggio.Dati.classe = casellaTipo.text;
                    datiPersonaggio.Dati.VitaMassima = databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Vita;
                    datiPersonaggio.Dati.ManaMassimo = databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Mana;
                    datiPersonaggio.Dati.XPMassimo = databaseInizialeProprieta.matriceProprieta[IndiceClasseSuccessivaPrecedente].Xp;
                    datiPersonaggio.Dati.posizioneCheckPoint = "start";
                    datiPersonaggio.Dati.nomeScena = "Isola";
                    datiPersonaggio.Salva();
                }
                datiDiplomazia = new Serializzabile<AmicizieSerializzabili>(Statici.nomeFileDiplomazia);
                if (datiDiplomazia.Dati.tipoEssere[0] == null)
                {
                    for (int i = 0; i < databseInizialeAmicizie.classiEssere.Length; i++)
                    {
                        datiDiplomazia.Dati.tipoEssere[i] = databseInizialeAmicizie.classiEssere[i];
                    }
                    for (int i = 0; i < databseInizialeAmicizie.classiEssere.Length; i++)
                    {
                        datiDiplomazia.Dati.matriceAmicizie[i] = databseInizialeAmicizie.matriceAmicizie[i];

                        for (int j = 0; j < databseInizialeAmicizie.classiEssere.Length; j++)
                        {
                            datiDiplomazia.Dati.matriceAmicizie[i].elementoAmicizia[j] = databseInizialeAmicizie.matriceAmicizie[i].elementoAmicizia[j];
                        }
                    }
                    datiDiplomazia.Salva();
                }
            Statici.SerializzaPercorsi(ref databseInizialeAmicizie, ref datiDiplomazia, ref GameManager.dizionarioPercorsi);
                personaggiInCarica = true;
                StartCoroutine(ScenaInCaricamento(datiPersonaggio.Dati.nomeScena));
            }
        }
    }
 private void FileSerializzatiDelPersonaggio()
 {
     //N.B.:non invertire le due righe.
     //carico dati personaggio
     datiPersonaggio = new Serializzabile<ValoriPersonaggioS>(Statici.NomeFilePersonaggio);
     //carico diplomazia
     datiDiplomazia = new Serializzabile<AmicizieSerializzabili>(Statici.nomeFileDiplomazia);
 }
    private void Start()
    {
        GameObject tmpPdr = GameObject.Find("PadrePercorso");
        if (tmpPdr != null)
            Statici.padreGestore = tmpPdr.GetComponent<PadreGestore>();
        else
            Debug.LogError("Ma ci fai o ci sei ????..sei un cazzone....manca il padrePercorso");
        Statici.assegnaAssetDatabase();

        if (Statici.nomePersonaggio.Equals(string.Empty))
            Statici.nomePersonaggio = "PersonaggioDiProva";
        Statici.datiPersonaggio = new Serializzabile<ValoriPersonaggioS>(Statici.NomeFilePersonaggio);
        datiDiplomazia = new Serializzabile<AmicizieSerializzabili>(Statici.nomeFileDiplomazia);

        if (Statici.multigiocatoreOn) return;
        if (Statici.sonoPassatoDallaScenaIniziale)
        {
            GameObject tmpObjP = Instantiate(Resources.Load(Statici.datiPersonaggio.Dati.nomeModello), GameObject.Find(Statici.datiPersonaggio.Dati.posizioneCheckPoint).transform.position, Quaternion.identity) as GameObject;

            Statici.PersonaggioPrincipaleT = tmpObjP.transform;
            RecuperaDizionariDiplomazia();
        }
        else
        {
            if (Statici.datiPersonaggio.Dati.nomePersonaggio == null)
            {
                Statici.datiPersonaggio.Dati.Vita = 10;
                Statici.datiPersonaggio.Dati.Attacco = 20;
                Statici.datiPersonaggio.Dati.difesa = 5;
                Statici.datiPersonaggio.Dati.Xp = 19;
                Statici.datiPersonaggio.Dati.Livello = 1;
                Statici.datiPersonaggio.Dati.nomeModello = "MagoBluM";
                Statici.datiPersonaggio.Dati.nomePersonaggio = "PersonaggioDiProva";
                Statici.datiPersonaggio.Dati.classe = classiPersonaggi.magoAcqua.ToString();
                Statici.datiPersonaggio.Dati.VitaMassima = 10;
                Statici.datiPersonaggio.Dati.ManaMassimo = 20;
                Statici.datiPersonaggio.Dati.XPMassimo = 100;
                Statici.datiPersonaggio.Dati.posizioneCheckPoint = "start";
                Statici.datiPersonaggio.Dati.nomeScena = SceneManager.GetActiveScene().name;
                Statici.datiPersonaggio.Salva();
            }
            if (datiDiplomazia.Dati.tipoEssere[0] == null)
            {
                for (int i = 0; i < Statici.databseInizialeAmicizie.classiEssere.Length; i++)
                {
                    datiDiplomazia.Dati.tipoEssere[i] = Statici.databseInizialeAmicizie.classiEssere[i];
                }
                for (int i = 0; i < Statici.databseInizialeAmicizie.classiEssere.Length; i++)
                {
                    datiDiplomazia.Dati.matriceAmicizie[i] = Statici.databseInizialeAmicizie.matriceAmicizie[i];

                    for (int j = 0; j < Statici.databseInizialeAmicizie.classiEssere.Length; j++)
                    {
                        datiDiplomazia.Dati.matriceAmicizie[i].elementoAmicizia[j] = Statici.databseInizialeAmicizie.matriceAmicizie[i].elementoAmicizia[j];
                    }
                }
                datiDiplomazia.Salva();
            }
            GameObject tmpObjP = Instantiate(Resources.Load(Statici.datiPersonaggio.Dati.nomeModello), GameObject.Find(Statici.datiPersonaggio.Dati.posizioneCheckPoint).transform.position, Quaternion.identity) as GameObject;
            Statici.PersonaggioPrincipaleT = tmpObjP.transform;
            RecuperaDizionariDiplomazia();
            Statici.CopiaIlDB();
            Statici.sonoPassatoDallaScenaIniziale = true;
        }
    }