public void FinalizeCharacter()
    {
        var characterName = characterNameMenu.GetComponentInChildren <InputField>().text;

        if (characterName == "")
        {
            return;
        }
        var character = SavedCharacter.BrandNewCharacter(characterName, selectedFurType);

        character.strength     = strength;
        character.dexterity    = dexterity;
        character.constitution = constitution;
        character.intelligence = intelligence;
        character.wisdom       = wisdom;
        character.luck         = luck;
        //foreach (var attribute in selectedAbilities[3].attributes) {
        //    if (attribute.type == "boostStat") {
        //        switch ((string)attribute.FindParameter("stat").value) {
        //            case "strength":
        //                character.strength += Mathf.FloorToInt((float)attribute.FindParameter("degree").value);
        //                break;
        //            case "dexterity":
        //                character.dexterity += Mathf.FloorToInt((float)attribute.FindParameter("degree").value);
        //                break;
        //            case "constitution":
        //                character.constitution += Mathf.FloorToInt((float)attribute.FindParameter("degree").value);
        //                break;
        //            case "intelligence":
        //                character.intelligence += Mathf.FloorToInt((float)attribute.FindParameter("degree").value);
        //                break;
        //            case "wisdom":
        //                character.wisdom += Mathf.FloorToInt((float)attribute.FindParameter("degree").value);
        //                break;
        //            case "luck":
        //                character.luck += Mathf.FloorToInt((float)attribute.FindParameter("degree").value);
        //                break;
        //        }
        //    }
        //}
        character.soulGemActives.Add(SavedActiveAbility.ConvertFrom((ActiveAbility)selectedAbilities[0]));
        character.soulGemActives.Add(SavedActiveAbility.ConvertFrom((ActiveAbility)selectedAbilities[1]));
        character.soulGemActives.Add(SavedActiveAbility.ConvertFrom((ActiveAbility)selectedAbilities[2]));
        character.soulGemPassive = SavedPassiveAbility.ConvertFrom((PassiveAbility)selectedAbilities[3]);
        BinaryFormatter bf = new BinaryFormatter();

        if (!Directory.Exists(Application.persistentDataPath + "/characters"))
        {
            Directory.CreateDirectory(Application.persistentDataPath + "/characters");
        }
        FileStream file = File.Create(Application.persistentDataPath + "/characters/" + characterName + ".character");

        bf.Serialize(file, character);
        file.Close();
        FinishCharacterCreation();
        generatedAbilities = false;
    }
Example #2
0
 public static SavedAbility ConvertFrom(Ability ability)
 {
     if (ability is ActiveAbility)
     {
         return(SavedActiveAbility.ConvertFrom((ActiveAbility)ability));
     }
     else
     {
         return(SavedPassiveAbility.ConvertFrom((PassiveAbility)ability));
     }
 }
Example #3
0
    public static SavedDungeon ConvertFrom(OverworldDungeon dungeon)
    {
        if (dungeon.dungeonData == null)
        {
            return new SavedDungeon()
                   {
                       location = SavedVector2.ConvertFrom(dungeon.position),
                       uuid     = dungeon.uuid
                   }
        }
        ;
        var output = new SavedDungeon {
            entered                     = true,
            location                    = SavedVector2.ConvertFrom(dungeon.position),
            numFloors                   = dungeon.dungeonData.numFloors,
            grid                        = dungeon.dungeonData.grid,
            maxSocialTier               = dungeon.dungeonData.maxSocialTier,
            maxDimensions               = dungeon.dungeonData.maxDimensions,
            encounterThemes             = dungeon.dungeonData.encounterThemes,
            seeds                       = dungeon.seeds,
            uuid                        = dungeon.uuid,
            lootSlotAffinities          = dungeon.dungeonData.lootSlotAffinities,
            lootPrimaryStatAffinities   = dungeon.dungeonData.lootPrimaryStatAffinities,
            lootSecondaryStatAffinities = dungeon.dungeonData.lootSecondaryStatAffinities,
            elementalAffinity           = dungeon.dungeonData.elementalAffinity,
            bossLootSlotAffinities      = dungeon.dungeonData.bossLootSlotAffinities
        };

        foreach (var kvp in dungeon.dungeonData.enemyStatBoosts)
        {
            output.enemyStatBoostEnemies.Add(kvp.Key);

            output.enemyStatBoostStats.Add(kvp.Value);
        }
        foreach (var kvp in dungeon.dungeonData.enemyBonusAbilities)
        {
            output.enemyBonusAbilityEnemies.Add(kvp.Key);
            output.enemyBonusAbilityAbilities.Add(SavedActiveAbility.ConvertFrom(kvp.Value));
        }
        foreach (var room in dungeon.dungeonData.rooms)
        {
            output.rooms.Add(SavedRoom.ConvertFrom(room));
        }
        foreach (var monster in dungeon.dungeonData.monsters)
        {
            output.monsters.Add(SavedMonsterData.ConvertFrom(monster));
        }
        foreach (var path in dungeon.dungeonData.paths)
        {
            output.paths.Add(SavedVaultPath.ConvertFrom(path));
        }
        return(output);
    }