Esempio n. 1
0
    public void Initialize(SaveCharacter c = null)
    {
        if (c == null)
        {
            saveCharacter.color = new List <int>();
            saveCharacter.color.Add(150);
            saveCharacter.color.Add(150);
            saveCharacter.color.Add(150);
        }
        else
        {
            saveCharacter = c;

            nameInput.text = c.characterName;

            remainingHPInput.text = c.remainingHP.ToString();
            remainingMPInput.text = c.remainingMP.ToString();

            stateInput.text = c.state;
        }

        List <float> floatColor = new List <float>();

        floatColor.Add((float)saveCharacter.color[0] / 255);
        floatColor.Add((float)saveCharacter.color[1] / 255);
        floatColor.Add((float)saveCharacter.color[2] / 255);

        normalColor          = new Color(floatColor[0], floatColor[1], floatColor[2]);
        highlightedColor     = new Color(floatColor[0] + 0.05f, floatColor[1] + 0.05f, floatColor[2] + 0.05f);
        pressedColor         = new Color(floatColor[0] - 0.05f, floatColor[1] - 0.05f, floatColor[2] - 0.05f);
        outlineSelectedColor = new Color(floatColor[0] + 0.1f, floatColor[1] + 0.1f, floatColor[2] + 0.1f);

        background.color = normalColor;
    }
Esempio n. 2
0
    public void Save()
    {
        var nextIndexPrefab = _gameWorld.GetNextPrefabIndexs();

        var allCharacters = _characterProvider.GetAllFillPosition();

        SaveCharacter[] allSavedCharacters = new SaveCharacter[allCharacters.Count];

        for (int i = 0; i < allCharacters.Count; i++)
        {
            var x         = allCharacters[i].x;
            var y         = allCharacters[i].y;
            var character = _characterProvider.Get(x, y);

            if (character != null)
            {
                allSavedCharacters[i] = new SaveCharacter()
                {
                    prefabIndex = character.PrefabIndex, x = x, y = y
                };
            }
        }

        Save save = new Save()
        {
            score          = _score.Value,
            allCharacters  = allSavedCharacters,
            nextCharacters = nextIndexPrefab
        };

        string json = JsonUtility.ToJson(save);

        File.WriteAllText(filePath, json);
    }
Esempio n. 3
0
    public void QuickSaveCharacter(SaveCharacter toSave)
    {
        string       path         = "Assets/Ressources/Characters/" + toSave.characterName + ".json";
        string       json         = JsonUtility.ToJson(toSave, true);
        StreamWriter streamWriter = new StreamWriter(path);

        streamWriter.WriteLine(json);
        streamWriter.Close();
    }
Esempio n. 4
0
    public SaveData Save()
    {
        SaveCharacter saveData = new SaveCharacter();

        saveData.prefabName    = this.tag;
        saveData.position      = transform.position;
        saveData.key           = this.key;
        saveData.isOpenTheDoor = this.isOpen;
        return(saveData);
    }
    public Character AddCharacter(SaveCharacter c)
    {
        GameObject go = Instantiate(character, characterContainer.transform);
        Character  instantiatedCharacter = go.GetComponentInChildren <Character>();

        instantiatedCharacter.Initialize(c);

        // Placing the add button as the last element
        addCharacter.transform.parent.transform.SetAsLastSibling();

        return(instantiatedCharacter);
    }
Esempio n. 6
0
    // Completion method

    public void CompleteLog(Log logComponent, Dictionary <string, string> logs, SaveCharacter saveCharacter)
    {
        logComponent.characterName.text = logs["character"];
        logComponent.statName.text      = logs["stat name"];
        logComponent.stat.text          = logs["stat value"];
        logComponent.roll.text          = logs["roll value"];

        List <float> floatColor = new List <float>();

        floatColor.Add((float)saveCharacter.color[0] / 255);
        floatColor.Add((float)saveCharacter.color[1] / 255);
        floatColor.Add((float)saveCharacter.color[2] / 255);
        logComponent.characterName.color = new Color(floatColor[0], floatColor[1], floatColor[2]);
    }
Esempio n. 7
0
    public SaveCharacter(SaveCharacter toCopy)
    {
        characterName = toCopy.characterName;

        state = toCopy.state;

        remainingHP = toCopy.remainingHP;
        remainingMP = toCopy.remainingMP;

        maxHP = toCopy.maxHP;
        maxMP = toCopy.maxMP;

        pnj = toCopy.pnj;

        gold   = toCopy.gold;
        silver = toCopy.silver;
        copper = toCopy.copper;

        color = new List <int>(toCopy.color);

        stats = new Stats(toCopy.stats);
        permanentStatsBonuses = new Stats(toCopy.permanentStatsBonuses);
        temporaryStatsBonuses = new Stats(toCopy.temporaryStatsBonuses);

        weapons = new List <SaveWeapon>();
        foreach (SaveWeapon saveWeapon in toCopy.weapons)
        {
            weapons.Add(new SaveWeapon(saveWeapon));
        }

        abilities = new List <SaveAbility>();
        foreach (SaveAbility saveAbility in toCopy.abilities)
        {
            abilities.Add(new SaveAbility(saveAbility));
        }

        items = new List <SaveItem>();
        foreach (SaveItem saveItem in toCopy.items)
        {
            items.Add(new SaveItem(saveItem));
        }
    }
Esempio n. 8
0
    /// <summary>
    /// Save the game with supplied filename and marks a checkpoint
    /// also saves all character in the UnitRoster
    /// </summary>
    public void Save(string filename)
    {
        //Preparing save data
        SaveData saveData = new SaveData();

        saveData.Checkpoint = checkPoint;
        UnitRoster roster = GetComponent <UnitRoster>();

        saveData.Roster = new List <SaveCharacter>();
        foreach (KeyValuePair <string, Character> pair in roster.Roster)
        {
            SaveCharacter temp;
            temp           = new SaveCharacter();
            temp.name      = pair.Key;
            temp.character = new Character(pair.Value);
            GearPackage tempBackPack = new GearPackage(pair.Value.Backpack);
            temp.backpack = tempBackPack;
            if (roster.activeRoster.Contains(pair.Value))
            {
                temp.isActive = true;
            }
            else
            {
                temp.isActive = false;
            }
            temp.skills = new SkillTree(pair.Value.Skilltree);
            saveData.Roster.Add(temp);
        }
        GearPackage train = new GearPackage(roster.train);

        saveData.train    = train;
        saveData.saveTime = DateTime.Now;
        //Now let's write it to a file
        BinaryFormatter binary = new BinaryFormatter();

        Debug.Log(Application.persistentDataPath);
        FileStream file = File.Create(Application.persistentDataPath + "/" + filename + ".sav");

        binary.Serialize(file, saveData);
        file.Close();
    }
Esempio n. 9
0
    public List <SaveCharacter> GetCharacters()
    {
        string        path  = "Assets/Ressources/Characters";
        DirectoryInfo infos = new DirectoryInfo(path);

        List <SaveCharacter> saveCharacters = new List <SaveCharacter>();

        foreach (FileInfo fileInfo in infos.GetFiles())
        {
            if (!fileInfo.FullName.Contains(".meta"))
            {
                StreamReader streamReader = new StreamReader(fileInfo.FullName);
                string       json         = streamReader.ReadToEnd();

                SaveCharacter saveCharacter = JsonUtility.FromJson <SaveCharacter>(json);

                saveCharacters.Add(saveCharacter);
            }
        }
        return(saveCharacters);
    }
Esempio n. 10
0
    public void SaveCharacter()
    {
        // ----- Modifying the character panel to update the name and max HP / MP

        CharacterParametersController.instance.activeCharacter.nameInput.text = CharacterParametersController.instance.name.text;

        // ----- Generating the SaveCharacter object we will save

        SaveCharacter toSave = new SaveCharacter(CharacterParametersController.instance.activeCharacter.saveCharacter);

        // Inputs from the character panel

        // Remaining HP
        if (CharacterParametersController.instance.activeCharacter.remainingHPInput.text != "")
        {
            toSave.remainingHP = int.Parse(CharacterParametersController.instance.activeCharacter.remainingHPInput.text);
        }
        else
        {
            toSave.remainingHP = 0;
        }

        // Remaining MP
        if (CharacterParametersController.instance.activeCharacter.remainingMPInput.text != "")
        {
            toSave.remainingMP = int.Parse(CharacterParametersController.instance.activeCharacter.remainingMPInput.text);
        }
        else
        {
            toSave.remainingMP = 0;
        }

        // State
        toSave.state = CharacterParametersController.instance.activeCharacter.stateInput.text;

        // Inputs from the right panel

        // Generating new stats objects to fill
        toSave.stats = new Stats();
        toSave.permanentStatsBonuses = new Stats();
        toSave.temporaryStatsBonuses = new Stats();

        // Character name
        toSave.characterName = CharacterParametersController.instance.name.text;

        // Max HP and MP
        toSave.maxHP = int.Parse(CharacterParametersController.instance.pv.text);
        toSave.maxMP = int.Parse(CharacterParametersController.instance.pm.text);

        // PNJ
        toSave.pnj = CharacterParametersController.instance.pnj.isOn;

        // Money
        if (CharacterParametersController.instance.gold.text != "")
        {
            toSave.gold = int.Parse(CharacterParametersController.instance.gold.text);
        }
        else
        {
            toSave.gold = 0;
        }

        if (CharacterParametersController.instance.silver.text != "")
        {
            toSave.silver = int.Parse(CharacterParametersController.instance.silver.text);
        }
        else
        {
            toSave.silver = 0;
        }

        if (CharacterParametersController.instance.copper.text != "")
        {
            toSave.copper = int.Parse(CharacterParametersController.instance.copper.text);
        }
        else
        {
            toSave.copper = 0;
        }

        // Physical stats
        toSave.stats.force   = int.Parse(CharacterParametersController.instance.forceBase.text);
        toSave.stats.defense = int.Parse(CharacterParametersController.instance.defenseBase.text);
        toSave.stats.adresse = int.Parse(CharacterParametersController.instance.adresseBase.text);
        toSave.stats.agilite = int.Parse(CharacterParametersController.instance.agiliteBase.text);
        toSave.stats.vitesse = int.Parse(CharacterParametersController.instance.vitesseBase.text);

        // Social stats
        toSave.stats.seduction          = int.Parse(CharacterParametersController.instance.seductionBase.text);
        toSave.stats.intimidation       = int.Parse(CharacterParametersController.instance.intimidationBase.text);
        toSave.stats.rhetorique         = int.Parse(CharacterParametersController.instance.rhetoriqueBase.text);
        toSave.stats.premiereImpression = int.Parse(CharacterParametersController.instance.premiereImpressionBase.text);
        toSave.stats.dressage           = int.Parse(CharacterParametersController.instance.dressageBase.text);

        // Mental stats
        toSave.stats.magie             = int.Parse(CharacterParametersController.instance.magieBase.text);
        toSave.stats.erudition         = int.Parse(CharacterParametersController.instance.eruditionBase.text);
        toSave.stats.perception        = int.Parse(CharacterParametersController.instance.perceptionBase.text);
        toSave.stats.resistanceMentale = int.Parse(CharacterParametersController.instance.resistanceMentaleBase.text);
        toSave.stats.sangFroid         = int.Parse(CharacterParametersController.instance.sangFroidBase.text);

        // Permanent modifications on Physical stats

        if (CharacterParametersController.instance.forceModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.force = int.Parse(CharacterParametersController.instance.forceModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.force = 0;
        }

        if (CharacterParametersController.instance.defenseModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.defense = int.Parse(CharacterParametersController.instance.defenseModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.defense = 0;
        }

        if (CharacterParametersController.instance.adresseModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.adresse = int.Parse(CharacterParametersController.instance.adresseModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.adresse = 0;
        }

        if (CharacterParametersController.instance.agiliteModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.agilite = int.Parse(CharacterParametersController.instance.agiliteModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.agilite = 0;
        }

        if (CharacterParametersController.instance.vitesseModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.vitesse = int.Parse(CharacterParametersController.instance.vitesseModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.vitesse = 0;
        }

        // Permanent modifications on Social stats

        if (CharacterParametersController.instance.seductionModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.seduction = int.Parse(CharacterParametersController.instance.seductionModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.seduction = 0;
        }

        if (CharacterParametersController.instance.intimidationModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.intimidation = int.Parse(CharacterParametersController.instance.intimidationModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.intimidation = 0;
        }

        if (CharacterParametersController.instance.rhetoriqueModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.rhetorique = int.Parse(CharacterParametersController.instance.rhetoriqueModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.rhetorique = 0;
        }

        if (CharacterParametersController.instance.premiereImpressionModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.premiereImpression = int.Parse(CharacterParametersController.instance.premiereImpressionModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.premiereImpression = 0;
        }

        if (CharacterParametersController.instance.dressageModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.dressage = int.Parse(CharacterParametersController.instance.dressageModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.dressage = 0;
        }

        // Permanent modifications on Mental stats

        if (CharacterParametersController.instance.magieModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.magie = int.Parse(CharacterParametersController.instance.magieModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.magie = 0;
        }

        if (CharacterParametersController.instance.eruditionModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.erudition = int.Parse(CharacterParametersController.instance.eruditionModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.erudition = 0;
        }

        if (CharacterParametersController.instance.perceptionModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.perception = int.Parse(CharacterParametersController.instance.perceptionModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.perception = 0;
        }

        if (CharacterParametersController.instance.resistanceMentaleModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.resistanceMentale = int.Parse(CharacterParametersController.instance.resistanceMentaleModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.resistanceMentale = 0;
        }

        if (CharacterParametersController.instance.sangFroidModifPerm.text != "")
        {
            toSave.permanentStatsBonuses.sangFroid = int.Parse(CharacterParametersController.instance.sangFroidModifPerm.text);
        }
        else
        {
            toSave.permanentStatsBonuses.sangFroid = 0;
        }


        // Temporary modifications on Physical stats

        if (CharacterParametersController.instance.forceModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.force = int.Parse(CharacterParametersController.instance.forceModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.force = 0;
        }

        if (CharacterParametersController.instance.defenseModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.defense = int.Parse(CharacterParametersController.instance.defenseModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.defense = 0;
        }

        if (CharacterParametersController.instance.adresseModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.adresse = int.Parse(CharacterParametersController.instance.adresseModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.adresse = 0;
        }

        if (CharacterParametersController.instance.agiliteModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.agilite = int.Parse(CharacterParametersController.instance.agiliteModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.agilite = 0;
        }

        if (CharacterParametersController.instance.vitesseModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.vitesse = int.Parse(CharacterParametersController.instance.vitesseModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.vitesse = 0;
        }

        // Temporary modifications on Social stats

        if (CharacterParametersController.instance.seductionModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.seduction = int.Parse(CharacterParametersController.instance.seductionModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.seduction = 0;
        }

        if (CharacterParametersController.instance.intimidationModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.intimidation = int.Parse(CharacterParametersController.instance.intimidationModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.intimidation = 0;
        }

        if (CharacterParametersController.instance.rhetoriqueModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.rhetorique = int.Parse(CharacterParametersController.instance.rhetoriqueModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.rhetorique = 0;
        }

        if (CharacterParametersController.instance.premiereImpressionModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.premiereImpression = int.Parse(CharacterParametersController.instance.premiereImpressionModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.premiereImpression = 0;
        }

        if (CharacterParametersController.instance.dressageModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.dressage = int.Parse(CharacterParametersController.instance.dressageModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.dressage = 0;
        }

        // Temporary modifications on Mental stats

        if (CharacterParametersController.instance.magieModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.magie = int.Parse(CharacterParametersController.instance.magieModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.magie = 0;
        }

        if (CharacterParametersController.instance.eruditionModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.erudition = int.Parse(CharacterParametersController.instance.eruditionModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.erudition = 0;
        }

        if (CharacterParametersController.instance.perceptionModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.perception = int.Parse(CharacterParametersController.instance.perceptionModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.perception = 0;
        }

        if (CharacterParametersController.instance.resistanceMentaleModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.resistanceMentale = int.Parse(CharacterParametersController.instance.resistanceMentaleModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.resistanceMentale = 0;
        }

        if (CharacterParametersController.instance.sangFroidModifTemp.text != "")
        {
            toSave.temporaryStatsBonuses.sangFroid = int.Parse(CharacterParametersController.instance.sangFroidModifTemp.text);
        }
        else
        {
            toSave.temporaryStatsBonuses.sangFroid = 0;
        }

        // Weapons

        toSave.weapons = new List <SaveWeapon>();
        foreach (SaveWeapon weapon in CharacterParametersController.instance.activeCharacter.saveCharacter.weapons)
        {
            toSave.weapons.Add(new SaveWeapon(weapon));
        }

        // Abilities

        toSave.abilities = new List <SaveAbility>();
        foreach (SaveAbility ability in CharacterParametersController.instance.activeCharacter.saveCharacter.abilities)
        {
            toSave.abilities.Add(new SaveAbility(ability));
        }

        // Items
        toSave.items = new List <SaveItem>();
        foreach (SaveItem item in CharacterParametersController.instance.activeCharacter.saveCharacter.items)
        {
            toSave.items.Add(new SaveItem(item));
        }

        // ----- Adding the new stats to the character

        CharacterParametersController.instance.activeCharacter.saveCharacter = new SaveCharacter(toSave);

        // ----- Saving the character

        string       path         = "Assets/Ressources/Characters/" + toSave.characterName + ".json";
        string       json         = JsonUtility.ToJson(toSave, true);
        StreamWriter streamWriter = new StreamWriter(path);

        streamWriter.WriteLine(json);
        streamWriter.Close();
    }
Esempio n. 11
0
    public int GetStat(string stat, SaveCharacter saveCharacter)
    {
        if (stat == "Force")
        {
            return(saveCharacter.stats.force + saveCharacter.permanentStatsBonuses.force + saveCharacter.temporaryStatsBonuses.force);
        }
        else if (stat == "Défense")
        {
            return(saveCharacter.stats.defense + saveCharacter.permanentStatsBonuses.defense + saveCharacter.temporaryStatsBonuses.defense);
        }
        else if (stat == "Adresse")
        {
            return(saveCharacter.stats.adresse + saveCharacter.permanentStatsBonuses.adresse + saveCharacter.temporaryStatsBonuses.adresse);
        }
        else if (stat == "Agilité")
        {
            return(saveCharacter.stats.agilite + saveCharacter.permanentStatsBonuses.agilite + saveCharacter.temporaryStatsBonuses.agilite);
        }
        else if (stat == "Vitesse")
        {
            return(saveCharacter.stats.vitesse + saveCharacter.permanentStatsBonuses.vitesse + saveCharacter.temporaryStatsBonuses.vitesse);
        }

        else if (stat == "Séduction")
        {
            return(saveCharacter.stats.seduction + saveCharacter.permanentStatsBonuses.seduction + saveCharacter.temporaryStatsBonuses.seduction);
        }
        else if (stat == "Intimidation")
        {
            return(saveCharacter.stats.intimidation + saveCharacter.permanentStatsBonuses.intimidation + saveCharacter.temporaryStatsBonuses.intimidation);
        }
        else if (stat == "Rhétorique")
        {
            return(saveCharacter.stats.rhetorique + saveCharacter.permanentStatsBonuses.rhetorique + saveCharacter.temporaryStatsBonuses.rhetorique);
        }
        else if (stat == "Première Impression")
        {
            return(saveCharacter.stats.premiereImpression + saveCharacter.permanentStatsBonuses.premiereImpression + saveCharacter.temporaryStatsBonuses.premiereImpression);
        }
        else if (stat == "Dressage")
        {
            return(saveCharacter.stats.dressage + saveCharacter.permanentStatsBonuses.dressage + saveCharacter.temporaryStatsBonuses.dressage);
        }

        else if (stat == "Magie")
        {
            return(saveCharacter.stats.magie + saveCharacter.permanentStatsBonuses.magie + saveCharacter.temporaryStatsBonuses.magie);
        }
        else if (stat == "Erudition")
        {
            return(saveCharacter.stats.erudition + saveCharacter.permanentStatsBonuses.erudition + saveCharacter.temporaryStatsBonuses.erudition);
        }
        else if (stat == "Perception")
        {
            return(saveCharacter.stats.perception + saveCharacter.permanentStatsBonuses.perception + saveCharacter.temporaryStatsBonuses.perception);
        }
        else if (stat == "Résistance Mentale")
        {
            return(saveCharacter.stats.resistanceMentale + saveCharacter.permanentStatsBonuses.resistanceMentale + saveCharacter.temporaryStatsBonuses.resistanceMentale);
        }
        else if (stat == "Sang Froid")
        {
            return(saveCharacter.stats.sangFroid + saveCharacter.permanentStatsBonuses.sangFroid + saveCharacter.temporaryStatsBonuses.sangFroid);
        }

        else
        {
            return(0);
        }
    }