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; }
public static SavedAbility ConvertFrom(Ability ability) { if (ability is ActiveAbility) { return(SavedActiveAbility.ConvertFrom((ActiveAbility)ability)); } else { return(SavedPassiveAbility.ConvertFrom((PassiveAbility)ability)); } }
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); }