Ejemplo n.º 1
0
    public static TChild Load(string name)
    {
        if (SaveableHolder.IsLoaded(name))
        {
            return(SaveableHolder.GetSaveable <TChild> (name));
        }

        string fileLocation = Application.persistentDataPath + "/" + typeof(TChild).Name + "/" + name + ".dat";

        if (!File.Exists(fileLocation))
        {
            throw new Exception("A file doesn't exist at the given location.");
        }

        string jsonString = "";

        using (StreamReader sr = File.OpenText(fileLocation))
        {
            jsonString = sr.ReadToEnd();
        }

        TChild childSaveable = CreateInstance <TChild>();

        string[] splitJsonString = jsonString.Split(GetJsonSplitter(), StringSplitOptions.RemoveEmptyEntries);

        childSaveable.SetupFromSplitJsonString(splitJsonString);

        SaveableHolder.AddSaveable(childSaveable);

        return(childSaveable);
    }
Ejemplo n.º 2
0
    public TItemCollection CreateCopyFromFilter()
    {
        itemCollectionFilter.ApplyFilter(this as TItemCollection);
        TItemCollection newItemCollection = CreateInstance <TItemCollection>();

        newItemCollection.name                 = "CopyOf" + name;
        newItemCollection.rarities             = rarities;
        newItemCollection.books                = books;
        newItemCollection.itemCollectionFilter = itemCollectionFilter.Duplicate();

        List <TItem> filteredItems = new List <TItem>();

        for (int i = 0; i < items.Length; i++)
        {
            if (doesItemPassFilter[i])
            {
                filteredItems.Add(items[i]);
            }
        }
        newItemCollection.items = filteredItems.ToArray();
        newItemCollection.doesItemPassFilter = new bool[newItemCollection.items.Length];

        SaveableHolder.AddSaveable(newItemCollection);

        return(newItemCollection);
    }
    public static SpellCollection Create(string name, EnumSetting spellContainers, EnumSetting allowances,
                                         EnumSetting rarities, EnumSetting characterClasses, SaveableSelectedEnumPerEnum characterCasterTypes,
                                         EnumSetting books, RarityPerCharacterClassPerSpellContainer rarityPerCharacterClassPerSpellContainer)
    {
        SpellCollection newSpellCollection = CreateInstance <SpellCollection> ();

        if (CheckName(name) == NameCheckResult.Bad)
        {
            throw new UnityException("Spell Collection name invalid, contains invalid characters.");
        }
        if (CheckName(name) == NameCheckResult.IsDefault)
        {
            throw new UnityException("Spell Collection name invalid, name cannot start with Default");
        }

        newSpellCollection.name                  = name;
        newSpellCollection.spellContainers       = spellContainers;
        newSpellCollection.allowances            = allowances;
        newSpellCollection.rarities              = rarities;
        newSpellCollection.characterClasses      = characterClasses;
        newSpellCollection.characterCasterTypes  = characterCasterTypes;
        newSpellCollection.books                 = books;
        newSpellCollection.spellCollectionFilter = SpellCollectionFilter.CreateBlank(allowances, rarities, characterClasses, books);
        newSpellCollection.spells                = new Spell[0];

        SaveableHolder.AddSaveable(newSpellCollection);

        return(newSpellCollection);
    }
Ejemplo n.º 4
0
 void Awake()
 {
     if (Instance != null)
     {
         Destroy(gameObject);
     }
     else
     {
         Instance = this;
     }
 }
Ejemplo n.º 5
0
    public static Campaign Create(string name, bool usesAutomaticBonusProgressionRules, bool useMinimumCasterLevel)
    {
        Campaign campaign = CreateInstance <Campaign>();

        if (CheckName(name) == NameCheckResult.Bad)
        {
            throw new UnityException("Campaign name invalid, contains invalid characters.");
        }
        if (CheckName(name) == NameCheckResult.IsDefault)
        {
            throw new UnityException("Campaign name invalid, name cannot start with Default");
        }

        campaign.name               = name;
        campaign.m_Books            = DefaultEnumSettings.Books;
        campaign.m_CharacterClasses = DefaultEnumSettings.CharacterClasses;
        campaign.m_ShopSizes        = DefaultEnumSettings.ShopSizes;
        campaign.m_SettlementSizes  = DefaultEnumSettings.SettlementSizes;
        campaign.m_Rarities         = DefaultEnumSettings.Rarities;
        campaign.m_Allowances       = DefaultEnumSettings.Allowances;
        campaign.m_UsesAutomaticBonusProgressionRules           = usesAutomaticBonusProgressionRules;
        campaign.m_UsesMinimumCasterLevelForSpellContainerItems = useMinimumCasterLevel;
        campaign.m_CasterTypesPerCharacterClass             = DefaultResourceHolder.CasterTypesPerCharacterClass;
        campaign.m_WeightingPerRarity                       = DefaultResourceHolder.WeightingPerRarity;
        campaign.m_RestockSettingsPerSettlementSize         = DefaultResourceHolder.RestockSettingsPerSettlementSize;
        campaign.m_AvailabilityPerShopSizePerStockType      = DefaultResourceHolder.AvailabilityPerShopSizePerStockType;
        campaign.m_RestockFrequencyModifiersPerShopSize     = DefaultResourceHolder.RestockFrequencyModifiersPerShopSize;
        campaign.m_ReadyCashPerShopSize                     = DefaultResourceHolder.ReadyCashPerShopSize;
        campaign.m_RarityPerCharacterClassPerSpellContainer = DefaultResourceHolder.RarityPerCharacterClassPerSpellContainer;
        campaign.m_BudgetRangePerPowerLevelPerStockType     = DefaultResourceHolder.BudgetRangePerPowerLevelPerStockType;
        campaign.m_ArmourCollection               = DefaultResourceHolder.ArmourCollection;
        campaign.m_SpellCollection                = DefaultResourceHolder.SpellCollection;
        campaign.m_WeaponCollection               = DefaultResourceHolder.WeaponCollection;
        campaign.m_RingCollection                 = DefaultResourceHolder.RingCollection;
        campaign.m_RodCollection                  = DefaultResourceHolder.RodCollection;
        campaign.m_StaffCollection                = DefaultResourceHolder.StaffCollection;
        campaign.m_WondrousCollection             = DefaultResourceHolder.WondrousCollection;
        campaign.m_ArmourQualityCollection        = DefaultResourceHolder.ArmourQualityCollection;
        campaign.m_WeaponQualityCollection        = DefaultResourceHolder.WeaponQualityCollection;
        campaign.m_WeaponQualityConstraintsMatrix = DefaultResourceHolder.WeaponQualityConstraintsMatrix;
        campaign.m_ArmourQualityConstraintsMatrix = DefaultResourceHolder.ArmourQualityConstraintsMatrix;

        SaveableHolder.AddSaveable(campaign);

        return(campaign);
    }
Ejemplo n.º 6
0
    public TConstraintsMatrix CreateCopyFromFilter()
    {
        ApplyFilter();
        TConstraintsMatrix newConstraintsMatrix = Create("CopyOf" + name, itemCollection.CreateCopyFromFilter(), qualityCollection.CreateCopyFromFilter());

        for (int i = 0; i < newConstraintsMatrix.itemCollection.Length; i++)
        {
            for (int j = 0; j < newConstraintsMatrix.qualityCollection.Length; j++)
            {
                newConstraintsMatrix.matrix[i, j] = CanItemUseQuality(newConstraintsMatrix.itemCollection[i], newConstraintsMatrix.qualityCollection[j]);
            }
        }

        SaveableHolder.AddSaveable(newConstraintsMatrix);

        return(newConstraintsMatrix);
    }
    public static WeightingPerRarity Create(string name, AnimationCurve weightingCurve)
    {
        WeightingPerRarity newRarityWeighting = CreateInstance <WeightingPerRarity> ();

        if (CheckName(name) == NameCheckResult.Bad)
        {
            throw new UnityException("Settings name invalid, contains invalid characters.");
        }
        if (CheckName(name) == NameCheckResult.IsDefault)
        {
            throw new UnityException("Settings name invalid, name cannot start with Default");
        }

        newRarityWeighting.name = name;

        SaveableHolder.AddSaveable(newRarityWeighting);

        return(newRarityWeighting);
    }
    public static ReadyCashPerShopSize Create(string name, EnumSetting shopSizeEnum)
    {
        ReadyCashPerShopSize newPerSizeRestockFrequencyModifiers = CreateInstance <ReadyCashPerShopSize>();

        if (CheckName(name) == NameCheckResult.Bad)
        {
            throw new UnityException("Settings name invalid, contains invalid characters.");
        }
        if (CheckName(name) == NameCheckResult.IsDefault)
        {
            throw new UnityException("Settings name invalid, name cannot start with Default");
        }

        newPerSizeRestockFrequencyModifiers.name           = name;
        newPerSizeRestockFrequencyModifiers.m_EnumSetting  = shopSizeEnum;
        newPerSizeRestockFrequencyModifiers.m_EnumedValues = new float[shopSizeEnum.Length];

        SaveableHolder.AddSaveable(newPerSizeRestockFrequencyModifiers);

        return(newPerSizeRestockFrequencyModifiers);
    }
Ejemplo n.º 9
0
    public static RarityPerCharacterClassPerSpellContainer Create(string name, EnumSetting spellContainerEnum, RarityPerCharacterClass[] characterClassRarities)
    {
        RarityPerCharacterClassPerSpellContainer newPerContainerPerCreatorRarity = CreateInstance <RarityPerCharacterClassPerSpellContainer>();

        if (CheckName(name) == NameCheckResult.Bad)
        {
            throw new UnityException("Settings name invalid, contains invalid characters.");
        }
        if (CheckName(name) == NameCheckResult.IsDefault)
        {
            throw new UnityException("Settings name invalid, name cannot start with Default");
        }

        newPerContainerPerCreatorRarity.name              = name;
        newPerContainerPerCreatorRarity.m_EnumSetting     = spellContainerEnum;
        newPerContainerPerCreatorRarity.m_EnumedSaveables = characterClassRarities;

        SaveableHolder.AddSaveable(newPerContainerPerCreatorRarity);

        return(newPerContainerPerCreatorRarity);
    }
Ejemplo n.º 10
0
    public static TConstraintsMatrix Create(string name, TItemCollection itemCollection, TQualityCollection qualityCollection)
    {
        TConstraintsMatrix newMatrix = CreateInstance <TConstraintsMatrix>();

        if (CheckName(name) == NameCheckResult.Bad)
        {
            throw new UnityException("Matrix name invalid, contains invalid characters.");
        }
        if (CheckName(name) == NameCheckResult.IsDefault)
        {
            throw new UnityException("Matrix name invalid, name cannot start with Default");
        }

        newMatrix.name              = name;
        newMatrix.itemCollection    = itemCollection;
        newMatrix.qualityCollection = qualityCollection;
        newMatrix.matrix            = new bool[itemCollection.Length, qualityCollection.Length];

        SaveableHolder.AddSaveable(newMatrix);

        return(newMatrix);
    }
Ejemplo n.º 11
0
    public static TItemCollection Create(string name, EnumSetting rarities, EnumSetting books)
    {
        TItemCollection newItemCollection = CreateInstance <TItemCollection>();

        if (CheckName(name) == NameCheckResult.Bad)
        {
            throw new UnityException("Collection name invalid, contains invalid characters.");
        }
        if (CheckName(name) == NameCheckResult.IsDefault)
        {
            throw new UnityException("Collection name invalid, name cannot start with Default");
        }

        newItemCollection.name                 = name;
        newItemCollection.rarities             = rarities;
        newItemCollection.books                = books;
        newItemCollection.itemCollectionFilter = ItemCollectionFilter <TItemCollectionFilter, TItemCollection, TItem> .CreateBlank(rarities, books);

        newItemCollection.items = new TItem[0];

        SaveableHolder.AddSaveable(newItemCollection);

        return(newItemCollection);
    }