From 0f6454ea416d23567d738085776ef84050f1bc88 Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Tue, 23 Mar 2021 23:12:01 -0700 Subject: [PATCH] Adds damage types and condition immunities to core data so they are saved now. --- .../Models/Monster+CoreDataClass.swift | 34 +++---------------- MonsterCards/Models/MonsterViewModel.swift | 12 ++++--- 2 files changed, 13 insertions(+), 33 deletions(-) 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} } }