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); }
protected override void SetupFromSplitJsonString(string[] splitJsonString) { name = splitJsonString[0]; spellContainers = EnumSetting.Load(splitJsonString[1]); allowances = EnumSetting.Load(splitJsonString[2]); rarities = EnumSetting.Load(splitJsonString[3]); characterClasses = EnumSetting.Load(splitJsonString[4]); characterCasterTypes = SaveableSelectedEnumPerEnum.Load(splitJsonString[5]); books = EnumSetting.Load(splitJsonString[6]); rarityPerCharacterClassPerSpellContainer = RarityPerCharacterClassPerSpellContainer.Load(splitJsonString[7]); spellCollectionFilter = SpellCollectionFilter.CreateFromJsonString(splitJsonString[8]); spells = new Spell[splitJsonString.Length - 9]; for (int i = 0; i < spells.Length; i++) { spells[i] = Spell.CreateFromJsonString(splitJsonString[i + 9]); } spellCollectionFilter.ApplyFilter(this); }
protected override string ConvertToJsonString(string[] jsonSplitter) { string jsonString = ""; jsonString += name + jsonSplitter[0]; jsonString += spellContainers.name + jsonSplitter[0]; jsonString += allowances.name + jsonSplitter[0]; jsonString += rarities.name + jsonSplitter[0]; jsonString += characterClasses.name + jsonSplitter[0]; jsonString += characterCasterTypes.name + jsonSplitter[0]; jsonString += books.name + jsonSplitter[0]; jsonString += rarityPerCharacterClassPerSpellContainer.name + jsonSplitter[0]; jsonString += SpellCollectionFilter.GetJsonString(spellCollectionFilter) + jsonSplitter[0]; for (int i = 0; i < spells.Length; i++) { jsonString += Spell.GetJsonString(spells[i]) + jsonSplitter[0]; } return(jsonString); }