diff --git a/MonsterCards/Models/Monster+CoreDataClass.swift b/MonsterCards/Models/Monster+CoreDataClass.swift index ddbbbc5..295d127 100644 --- a/MonsterCards/Models/Monster+CoreDataClass.swift +++ b/MonsterCards/Models/Monster+CoreDataClass.swift @@ -627,55 +627,31 @@ public class Monster: NSManagedObject { // MARK: OTHER - var damageVulnerabilitiesArray: [String] { - get { - return ["Fire", "Poison", "Psychic"] - } - } - var damageVulnerabilitiesDescription: String { get { - let sortedVulnerabilities = self.damageVulnerabilitiesArray.sorted() + let sortedVulnerabilities = self.damageVulnerabilities?.sorted() ?? [] return StringHelper.oxfordJoin(sortedVulnerabilities, ", ", ", and ", " and ") } } - var damageResistancesArray: [String] { - get { - return ["Ice", "Electric"] - } - } - var damageResistancesDescription: String { get { - let sortedResistances = self.damageResistancesArray.sorted() + let sortedResistances = self.damageResistances?.sorted() ?? [] return StringHelper.oxfordJoin(sortedResistances, ", ", ", and ", " and ") } } - - var damageImmunitiesArray: [String] { - get { - return ["Slashing"] - } - } - + var damageImmunitiesDescription: String { get { - let sortedImmunities = self.damageImmunitiesArray.sorted() + let sortedImmunities = self.damageImmunities?.sorted() ?? [] return StringHelper.oxfordJoin(sortedImmunities, ", ", ", and ", " and ") } } - var conditionImmunitiesArray: [String] { - get { - return [] - } - } - var conditionImmunitiesDescription: String { get { - let sortedImmunities = self.conditionImmunitiesArray.sorted() + let sortedImmunities = self.conditionImmunities?.sorted() ?? [] return StringHelper.oxfordJoin(sortedImmunities, ", ", ", and ", " and ") } } diff --git a/MonsterCards/Models/MonsterViewModel.swift b/MonsterCards/Models/MonsterViewModel.swift index 1dc167f..52c4cfa 100644 --- a/MonsterCards/Models/MonsterViewModel.swift +++ b/MonsterCards/Models/MonsterViewModel.swift @@ -148,19 +148,19 @@ class MonsterViewModel: ObservableObject { self.charismaSavingThrowProficiency = monster.charismaSavingThrowProficiencyEnum self.skills = (monster.skills?.allObjects.map {SkillViewModel(($0 as! Skill))})!.sorted() - self.damageImmunities = monster.damageImmunitiesArray + self.damageImmunities = (monster.damageImmunities ?? []) .map {DamageTypeViewModel($0)} .sorted() - self.damageResistances = monster.damageResistancesArray + self.damageResistances = (monster.damageResistances ?? []) .map {DamageTypeViewModel($0)} .sorted() - self.damageVulnerabilities = monster.damageVulnerabilitiesArray + self.damageVulnerabilities = (monster.damageVulnerabilities ?? []) .map {DamageTypeViewModel($0)} .sorted() - self.conditionImmunities = monster.conditionImmunitiesArray + self.conditionImmunities = (monster.conditionImmunities ?? []) .map {DamageTypeViewModel($0)} .sorted() } @@ -234,5 +234,9 @@ class MonsterViewModel: ObservableObject { func copyToRaw() { + monster.conditionImmunities = conditionImmunities.map {$0.name} + monster.damageImmunities = damageImmunities.map {$0.name} + monster.damageResistances = damageResistances.map {$0.name} + monster.damageVulnerabilities = damageVulnerabilities.map {$0.name} } }