From 5dee63fe54f063fa39a3cfeba3ecba7c42829708 Mon Sep 17 00:00:00 2001 From: Tom Hicks Date: Sun, 21 Mar 2021 14:42:07 -0700 Subject: [PATCH] Moves ability scores from EditMonster to a sub view. --- EditAbilityScores.swift | 42 ++++++++++++++++++++++++++ MonsterCards.xcodeproj/project.pbxproj | 4 +++ MonsterCards/Views/EditMonster.swift | 23 +------------- 3 files changed, 47 insertions(+), 22 deletions(-) create mode 100644 EditAbilityScores.swift diff --git a/EditAbilityScores.swift b/EditAbilityScores.swift new file mode 100644 index 0000000..fac83dd --- /dev/null +++ b/EditAbilityScores.swift @@ -0,0 +1,42 @@ +// +// EditAbilityScores.swift +// MonsterCards +// +// Created by Tom Hicks on 3/21/21. +// + +import SwiftUI + +struct EditAbilityScores: View { + @ObservedObject var monsterViewModel: MonsterViewModel + + var body: some View { + List {MCStepperField( + label: "STR", + value: $monsterViewModel.strengthScore) + MCStepperField( + label: "DEX", + value: $monsterViewModel.dexterityScore) + MCStepperField( + label: "CON", + value: $monsterViewModel.constitutionScore) + MCStepperField( + label: "INT", + value: $monsterViewModel.intelligenceScore) + MCStepperField( + label: "WIS", + value: $monsterViewModel.wisdomScore) + MCStepperField( + label: "CHA", + value: $monsterViewModel.charismaScore) + } + .textCase(nil) + } +} + +struct EditAbilityScores_Previews: PreviewProvider { + static var previews: some View { + let viewModel = MonsterViewModel(nil) + EditAbilityScores(monsterViewModel: viewModel) + } +} diff --git a/MonsterCards.xcodeproj/project.pbxproj b/MonsterCards.xcodeproj/project.pbxproj index a863879..bffc655 100644 --- a/MonsterCards.xcodeproj/project.pbxproj +++ b/MonsterCards.xcodeproj/project.pbxproj @@ -19,6 +19,7 @@ E24ACE502607326E009BF703 /* EditBasicInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = E24ACE4F2607326E009BF703 /* EditBasicInfo.swift */; }; E24ACE562607EE94009BF703 /* EditArmor.swift in Sources */ = {isa = PBXBuildFile; fileRef = E24ACE552607EE94009BF703 /* EditArmor.swift */; }; E24ACE5B2607F0F2009BF703 /* EditSpeed.swift in Sources */ = {isa = PBXBuildFile; fileRef = E24ACE5A2607F0F2009BF703 /* EditSpeed.swift */; }; + E24ACE602607F45E009BF703 /* EditAbilityScores.swift in Sources */ = {isa = PBXBuildFile; fileRef = E24ACE5F2607F45E009BF703 /* EditAbilityScores.swift */; }; E2570FB925B1AC520055B23B /* MonsterCardsApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2570FB825B1AC520055B23B /* MonsterCardsApp.swift */; }; E2570FBB25B1AC520055B23B /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2570FBA25B1AC520055B23B /* ContentView.swift */; }; E2570FBD25B1AC550055B23B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E2570FBC25B1AC550055B23B /* Assets.xcassets */; }; @@ -70,6 +71,7 @@ E24ACE4F2607326E009BF703 /* EditBasicInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditBasicInfo.swift; sourceTree = ""; }; E24ACE552607EE94009BF703 /* EditArmor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditArmor.swift; sourceTree = ""; }; E24ACE5A2607F0F2009BF703 /* EditSpeed.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditSpeed.swift; sourceTree = ""; }; + E24ACE5F2607F45E009BF703 /* EditAbilityScores.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditAbilityScores.swift; sourceTree = ""; }; E2570FB525B1AC520055B23B /* MonsterCards.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MonsterCards.app; sourceTree = BUILT_PRODUCTS_DIR; }; E2570FB825B1AC520055B23B /* MonsterCardsApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonsterCardsApp.swift; sourceTree = ""; }; E2570FBA25B1AC520055B23B /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; @@ -135,6 +137,7 @@ E2570FAC25B1AC520055B23B = { isa = PBXGroup; children = ( + E24ACE5F2607F45E009BF703 /* EditAbilityScores.swift */, E24ACE552607EE94009BF703 /* EditArmor.swift */, E24ACE4F2607326E009BF703 /* EditBasicInfo.swift */, E2570FB725B1AC520055B23B /* MonsterCards */, @@ -367,6 +370,7 @@ buildActionMask = 2147483647; files = ( E20209FB25D8E19100EFE733 /* SkillViewModel.swift in Sources */, + E24ACE602607F45E009BF703 /* EditAbilityScores.swift in Sources */, E2570FC225B1AC550055B23B /* Persistence.swift in Sources */, E2570FBB25B1AC520055B23B /* ContentView.swift in Sources */, E24ACE502607326E009BF703 /* EditBasicInfo.swift in Sources */, diff --git a/MonsterCards/Views/EditMonster.swift b/MonsterCards/Views/EditMonster.swift index f94f15e..1fbc9ff 100644 --- a/MonsterCards/Views/EditMonster.swift +++ b/MonsterCards/Views/EditMonster.swift @@ -23,28 +23,7 @@ struct EditMonster: View { NavigationLink("Basic Info", destination: EditBasicInfo(monsterViewModel: monsterViewModel)) NavigationLink("Armor", destination: EditArmor(monsterViewModel: monsterViewModel)) NavigationLink("Speed", destination: EditSpeed(monsterViewModel: monsterViewModel)) - - Section(header: Text("Ability Scores")) { - MCStepperField( - label: "STR", - value: $monsterViewModel.strengthScore) - MCStepperField( - label: "DEX", - value: $monsterViewModel.dexterityScore) - MCStepperField( - label: "CON", - value: $monsterViewModel.constitutionScore) - MCStepperField( - label: "INT", - value: $monsterViewModel.intelligenceScore) - MCStepperField( - label: "WIS", - value: $monsterViewModel.wisdomScore) - MCStepperField( - label: "CHA", - value: $monsterViewModel.charismaScore) - } - .textCase(nil) + NavigationLink("Ability Scores", destination: EditAbilityScores(monsterViewModel: monsterViewModel)) Section(header: Text("Saving Throws")) { VStack {