Refactors DamageTypes to String since we using it as a generic list of strings editor.
This commit is contained in:
@@ -46,8 +46,8 @@
|
|||||||
E2CB0DC526086E5F00142591 /* SizeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2CB0DC426086E5F00142591 /* SizeType.swift */; };
|
E2CB0DC526086E5F00142591 /* SizeType.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2CB0DC426086E5F00142591 /* SizeType.swift */; };
|
||||||
E2CB0DCA26086E8300142591 /* ArmorType.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2CB0DC926086E8300142591 /* ArmorType.swift */; };
|
E2CB0DCA26086E8300142591 /* ArmorType.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2CB0DC926086E8300142591 /* ArmorType.swift */; };
|
||||||
E2CB0DD72608720000142591 /* StringHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2CB0DD62608720000142591 /* StringHelper.swift */; };
|
E2CB0DD72608720000142591 /* StringHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2CB0DD62608720000142591 /* StringHelper.swift */; };
|
||||||
E2CB0DE1260887ED00142591 /* DamageTypesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2CB0DE0260887ED00142591 /* DamageTypesViewModel.swift */; };
|
E2CB0DE1260887ED00142591 /* StringViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2CB0DE0260887ED00142591 /* StringViewModel.swift */; };
|
||||||
E2CB0DE626088CE400142591 /* EditDamageTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2CB0DE526088CE400142591 /* EditDamageTypes.swift */; };
|
E2CB0DE626088CE400142591 /* EditStrings.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2CB0DE526088CE400142591 /* EditStrings.swift */; };
|
||||||
E2D473FD25B532C900CB36D7 /* Color+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D473FC25B532C900CB36D7 /* Color+Hex.swift */; };
|
E2D473FD25B532C900CB36D7 /* Color+Hex.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2D473FC25B532C900CB36D7 /* Color+Hex.swift */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
@@ -114,8 +114,8 @@
|
|||||||
E2CB0DC426086E5F00142591 /* SizeType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SizeType.swift; sourceTree = "<group>"; };
|
E2CB0DC426086E5F00142591 /* SizeType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SizeType.swift; sourceTree = "<group>"; };
|
||||||
E2CB0DC926086E8300142591 /* ArmorType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArmorType.swift; sourceTree = "<group>"; };
|
E2CB0DC926086E8300142591 /* ArmorType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArmorType.swift; sourceTree = "<group>"; };
|
||||||
E2CB0DD62608720000142591 /* StringHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringHelper.swift; sourceTree = "<group>"; };
|
E2CB0DD62608720000142591 /* StringHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringHelper.swift; sourceTree = "<group>"; };
|
||||||
E2CB0DE0260887ED00142591 /* DamageTypesViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DamageTypesViewModel.swift; sourceTree = "<group>"; };
|
E2CB0DE0260887ED00142591 /* StringViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringViewModel.swift; sourceTree = "<group>"; };
|
||||||
E2CB0DE526088CE400142591 /* EditDamageTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditDamageTypes.swift; sourceTree = "<group>"; };
|
E2CB0DE526088CE400142591 /* EditStrings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditStrings.swift; sourceTree = "<group>"; };
|
||||||
E2D473FC25B532C900CB36D7 /* Color+Hex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+Hex.swift"; sourceTree = "<group>"; };
|
E2D473FC25B532C900CB36D7 /* Color+Hex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Color+Hex.swift"; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
@@ -228,7 +228,7 @@
|
|||||||
E24ACE5F2607F45E009BF703 /* EditAbilityScores.swift */,
|
E24ACE5F2607F45E009BF703 /* EditAbilityScores.swift */,
|
||||||
E24ACE552607EE94009BF703 /* EditArmor.swift */,
|
E24ACE552607EE94009BF703 /* EditArmor.swift */,
|
||||||
E24ACE4F2607326E009BF703 /* EditBasicInfo.swift */,
|
E24ACE4F2607326E009BF703 /* EditBasicInfo.swift */,
|
||||||
E2CB0DE526088CE400142591 /* EditDamageTypes.swift */,
|
E2CB0DE526088CE400142591 /* EditStrings.swift */,
|
||||||
E2B5285825B3028700AAA69E /* EditMonster.swift */,
|
E2B5285825B3028700AAA69E /* EditMonster.swift */,
|
||||||
E24ACE642607F55D009BF703 /* EditSavingThrows.swift */,
|
E24ACE642607F55D009BF703 /* EditSavingThrows.swift */,
|
||||||
E2CB0DB226080C0500142591 /* EditSkill.swift */,
|
E2CB0DB226080C0500142591 /* EditSkill.swift */,
|
||||||
@@ -251,7 +251,7 @@
|
|||||||
E257101225B1B2790055B23B /* Models */ = {
|
E257101225B1B2790055B23B /* Models */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
E2CB0DE0260887ED00142591 /* DamageTypesViewModel.swift */,
|
E2CB0DE0260887ED00142591 /* StringViewModel.swift */,
|
||||||
E20209E625D8DEB600EFE733 /* Enums */,
|
E20209E625D8DEB600EFE733 /* Enums */,
|
||||||
E2182E6225B22F8A00DFAEF8 /* Monster+CoreDataClass.swift */,
|
E2182E6225B22F8A00DFAEF8 /* Monster+CoreDataClass.swift */,
|
||||||
E20209FA25D8E19100EFE733 /* MonsterViewModel.swift */,
|
E20209FA25D8E19100EFE733 /* MonsterViewModel.swift */,
|
||||||
@@ -421,11 +421,11 @@
|
|||||||
E20209FC25D8E19100EFE733 /* MonsterViewModel.swift in Sources */,
|
E20209FC25D8E19100EFE733 /* MonsterViewModel.swift in Sources */,
|
||||||
E2570FFF25B1AE180055B23B /* Library.swift in Sources */,
|
E2570FFF25B1AE180055B23B /* Library.swift in Sources */,
|
||||||
E2BD703125B3BBB90058ED69 /* MCStepperField.swift in Sources */,
|
E2BD703125B3BBB90058ED69 /* MCStepperField.swift in Sources */,
|
||||||
E2CB0DE626088CE400142591 /* EditDamageTypes.swift in Sources */,
|
E2CB0DE626088CE400142591 /* EditStrings.swift in Sources */,
|
||||||
E2CB0DB326080C0500142591 /* EditSkill.swift in Sources */,
|
E2CB0DB326080C0500142591 /* EditSkill.swift in Sources */,
|
||||||
E2CB0DCA26086E8300142591 /* ArmorType.swift in Sources */,
|
E2CB0DCA26086E8300142591 /* ArmorType.swift in Sources */,
|
||||||
E24ACE562607EE94009BF703 /* EditArmor.swift in Sources */,
|
E24ACE562607EE94009BF703 /* EditArmor.swift in Sources */,
|
||||||
E2CB0DE1260887ED00142591 /* DamageTypesViewModel.swift in Sources */,
|
E2CB0DE1260887ED00142591 /* StringViewModel.swift in Sources */,
|
||||||
E20209F425D8E04300EFE733 /* ProficiencyType.swift in Sources */,
|
E20209F425D8E04300EFE733 /* ProficiencyType.swift in Sources */,
|
||||||
E2CB0DC526086E5F00142591 /* SizeType.swift in Sources */,
|
E2CB0DC526086E5F00142591 /* SizeType.swift in Sources */,
|
||||||
E2570FFA25B1AE020055B23B /* Collections.swift in Sources */,
|
E2570FFA25B1AE020055B23B /* Collections.swift in Sources */,
|
||||||
|
|||||||
@@ -49,10 +49,10 @@ class MonsterViewModel: ObservableObject {
|
|||||||
@Published var charismaSavingThrowProficiency: ProficiencyType
|
@Published var charismaSavingThrowProficiency: ProficiencyType
|
||||||
@Published var charismaSavingThrowAdvantage: AdvantageType
|
@Published var charismaSavingThrowAdvantage: AdvantageType
|
||||||
@Published var skills: [SkillViewModel]
|
@Published var skills: [SkillViewModel]
|
||||||
@Published var damageImmunities: [DamageTypeViewModel]
|
@Published var damageImmunities: [StringViewModel]
|
||||||
@Published var damageResistances: [DamageTypeViewModel]
|
@Published var damageResistances: [StringViewModel]
|
||||||
@Published var damageVulnerabilities: [DamageTypeViewModel]
|
@Published var damageVulnerabilities: [StringViewModel]
|
||||||
@Published var conditionImmunities: [DamageTypeViewModel]
|
@Published var conditionImmunities: [StringViewModel]
|
||||||
|
|
||||||
init(_ rawMonster: Monster? = nil) {
|
init(_ rawMonster: Monster? = nil) {
|
||||||
self.name = ""
|
self.name = ""
|
||||||
@@ -146,19 +146,19 @@ class MonsterViewModel: ObservableObject {
|
|||||||
self.skills = (monster.skills?.allObjects.map {SkillViewModel(($0 as! Skill))})!.sorted()
|
self.skills = (monster.skills?.allObjects.map {SkillViewModel(($0 as! Skill))})!.sorted()
|
||||||
|
|
||||||
self.damageImmunities = (monster.damageImmunities ?? [])
|
self.damageImmunities = (monster.damageImmunities ?? [])
|
||||||
.map {DamageTypeViewModel($0)}
|
.map {StringViewModel($0)}
|
||||||
.sorted()
|
.sorted()
|
||||||
|
|
||||||
self.damageResistances = (monster.damageResistances ?? [])
|
self.damageResistances = (monster.damageResistances ?? [])
|
||||||
.map {DamageTypeViewModel($0)}
|
.map {StringViewModel($0)}
|
||||||
.sorted()
|
.sorted()
|
||||||
|
|
||||||
self.damageVulnerabilities = (monster.damageVulnerabilities ?? [])
|
self.damageVulnerabilities = (monster.damageVulnerabilities ?? [])
|
||||||
.map {DamageTypeViewModel($0)}
|
.map {StringViewModel($0)}
|
||||||
.sorted()
|
.sorted()
|
||||||
|
|
||||||
self.conditionImmunities = (monster.conditionImmunities ?? [])
|
self.conditionImmunities = (monster.conditionImmunities ?? [])
|
||||||
.map {DamageTypeViewModel($0)}
|
.map {StringViewModel($0)}
|
||||||
.sorted()
|
.sorted()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,12 +7,12 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
class DamageTypeViewModel: ObservableObject, Comparable, Identifiable {
|
class StringViewModel: ObservableObject, Comparable, Identifiable {
|
||||||
static func < (lhs: DamageTypeViewModel, rhs: DamageTypeViewModel) -> Bool {
|
static func < (lhs: StringViewModel, rhs: StringViewModel) -> Bool {
|
||||||
lhs.name < rhs.name
|
lhs.name < rhs.name
|
||||||
}
|
}
|
||||||
|
|
||||||
static func == (lhs: DamageTypeViewModel, rhs: DamageTypeViewModel) -> Bool {
|
static func == (lhs: StringViewModel, rhs: StringViewModel) -> Bool {
|
||||||
lhs.name == rhs.name
|
lhs.name == rhs.name
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -46,19 +46,19 @@ struct EditMonster: View {
|
|||||||
|
|
||||||
NavigationLink(
|
NavigationLink(
|
||||||
"Condition Immunities",
|
"Condition Immunities",
|
||||||
destination: EditDamageTypes(viewModel: monsterViewModel, path: \.conditionImmunities, title: "Condition Immunities"))
|
destination: EditStrings(viewModel: monsterViewModel, path: \.conditionImmunities, title: "Condition Immunities"))
|
||||||
|
|
||||||
NavigationLink(
|
NavigationLink(
|
||||||
"Damage Immunities",
|
"Damage Immunities",
|
||||||
destination: EditDamageTypes(viewModel: monsterViewModel, path: \.damageImmunities, title: "Damage Immunities"))
|
destination: EditStrings(viewModel: monsterViewModel, path: \.damageImmunities, title: "Damage Immunities"))
|
||||||
|
|
||||||
NavigationLink(
|
NavigationLink(
|
||||||
"Damage Resistances",
|
"Damage Resistances",
|
||||||
destination: EditDamageTypes(viewModel: monsterViewModel, path: \.damageResistances, title: "Damage Resistances"))
|
destination: EditStrings(viewModel: monsterViewModel, path: \.damageResistances, title: "Damage Resistances"))
|
||||||
|
|
||||||
NavigationLink(
|
NavigationLink(
|
||||||
"Damage Vulnerabilities",
|
"Damage Vulnerabilities",
|
||||||
destination: EditDamageTypes(viewModel: monsterViewModel, path: \.damageVulnerabilities, title: "Damage Vulnerabilities"))
|
destination: EditStrings(viewModel: monsterViewModel, path: \.damageVulnerabilities, title: "Damage Vulnerabilities"))
|
||||||
}
|
}
|
||||||
.onAppear(perform: copyMonsterToLocal)
|
.onAppear(perform: copyMonsterToLocal)
|
||||||
.toolbar(content: {
|
.toolbar(content: {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// EditDamageTypes.swift
|
// EditStrings.swift
|
||||||
// MonsterCards
|
// MonsterCards
|
||||||
//
|
//
|
||||||
// Created by Tom Hicks on 3/22/21.
|
// Created by Tom Hicks on 3/22/21.
|
||||||
@@ -7,9 +7,9 @@
|
|||||||
|
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
struct EditDamageTypes: View {
|
struct EditStrings: View {
|
||||||
@ObservedObject var viewModel: MonsterViewModel
|
@ObservedObject var viewModel: MonsterViewModel
|
||||||
var path: ReferenceWritableKeyPath<MonsterViewModel, [DamageTypeViewModel]>
|
var path: ReferenceWritableKeyPath<MonsterViewModel, [StringViewModel]>
|
||||||
var title: String
|
var title: String
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@@ -33,7 +33,7 @@ struct EditDamageTypes: View {
|
|||||||
.toolbar(content: {
|
.toolbar(content: {
|
||||||
Button(
|
Button(
|
||||||
action: {
|
action: {
|
||||||
let newDamageType = DamageTypeViewModel()
|
let newDamageType = StringViewModel()
|
||||||
viewModel[keyPath: path].append(newDamageType)
|
viewModel[keyPath: path].append(newDamageType)
|
||||||
viewModel[keyPath: path] = viewModel[keyPath: path].sorted()
|
viewModel[keyPath: path] = viewModel[keyPath: path].sorted()
|
||||||
},
|
},
|
||||||
@@ -48,9 +48,9 @@ struct EditDamageTypes: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct EditDamageTypes_Previews: PreviewProvider {
|
struct EditStrings_Previews: PreviewProvider {
|
||||||
static var previews: some View {
|
static var previews: some View {
|
||||||
let viewModel = MonsterViewModel()
|
let viewModel = MonsterViewModel()
|
||||||
EditDamageTypes(viewModel: viewModel, path: \.damageImmunities, title: "Damage Types")
|
EditStrings(viewModel: viewModel, path: \.damageImmunities, title: "Damage Types")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user