예제 #1
0
    public static SavedActiveAbility ConvertFrom(ActiveAbility ability)
    {
        if (ability is AttackAbility)
        {
            return(SavedAttackAbility.ConvertAttackFrom((AttackAbility)ability));
        }
        var obj = new SavedActiveAbility();

        if (ability == null)
        {
            return(null);
        }
        obj.targetType  = ((UtilityAbility)ability).targetType;
        obj.icon        = ability.icon;
        obj.cooldown    = ability.cooldown;
        obj.mpUsage     = ability.mpUsage;
        obj.baseMpUsage = ability.baseMpUsage;
        obj.radius      = ability.radius;
        obj.name        = ability.name;
        obj.description = ability.description;
        obj.baseStat    = ability.baseStat;
        obj.points      = ability.points;
        obj.xp          = ability.xp;
        obj.level       = ability.level;
        obj.skillPoints = ability.skillPoints;
        obj.skillTree   = SavedSkillTree.ConvertFrom(ability.skillTree);
        foreach (var attribute in ability.attributes)
        {
            obj.attributes.Add(SavedAbilityAttribute.ConvertFrom(attribute));
        }
        return(obj);
    }
    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;
    }
예제 #3
0
 public static SavedAbility ConvertFrom(Ability ability)
 {
     if (ability is ActiveAbility)
     {
         return(SavedActiveAbility.ConvertFrom((ActiveAbility)ability));
     }
     else
     {
         return(SavedPassiveAbility.ConvertFrom((PassiveAbility)ability));
     }
 }
예제 #4
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);
    }