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); }
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); }
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); }
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); }
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); }
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); }
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); }