Adds senses and passive perception.

Also makes modifier calculations return Int instead of Int64.
This commit is contained in:
2021-03-24 17:46:04 -07:00
parent 596186deaa
commit 3ec62789c6
7 changed files with 110 additions and 44 deletions

View File

@@ -20,45 +20,53 @@ struct EditMonster: View {
var body: some View {
List {
NavigationLink(
"Basic Info",
destination: EditBasicInfo(monsterViewModel: monsterViewModel))
Group {
NavigationLink(
"Basic Info",
destination: EditBasicInfo(monsterViewModel: monsterViewModel))
NavigationLink(
"Armor",
destination: EditArmor(monsterViewModel: monsterViewModel))
NavigationLink(
"Speed",
destination: EditSpeed(monsterViewModel: monsterViewModel))
NavigationLink(
"Ability Scores",
destination: EditAbilityScores(monsterViewModel: monsterViewModel))
NavigationLink(
"Saving Throws",
destination: EditSavingThrows(monsterViewModel: monsterViewModel))
NavigationLink(
"Skills",
destination: EditSkills(monsterViewModel: monsterViewModel))
NavigationLink(
"Condition Immunities",
destination: EditStrings(viewModel: monsterViewModel, path: \.conditionImmunities, title: "Condition Immunities"))
NavigationLink(
"Damage Immunities",
destination: EditStrings(viewModel: monsterViewModel, path: \.damageImmunities, title: "Damage Immunities"))
NavigationLink(
"Damage Resistances",
destination: EditStrings(viewModel: monsterViewModel, path: \.damageResistances, title: "Damage Resistances"))
NavigationLink(
"Damage Vulnerabilities",
destination: EditStrings(viewModel: monsterViewModel, path: \.damageVulnerabilities, title: "Damage Vulnerabilities"))
}
Group {
NavigationLink(
"Senses",
destination: EditStrings(viewModel: monsterViewModel, path: \.senses, title: "Senses"))
}
NavigationLink(
"Armor",
destination: EditArmor(monsterViewModel: monsterViewModel))
NavigationLink(
"Speed",
destination: EditSpeed(monsterViewModel: monsterViewModel))
NavigationLink(
"Ability Scores",
destination: EditAbilityScores(monsterViewModel: monsterViewModel))
NavigationLink(
"Saving Throws",
destination: EditSavingThrows(monsterViewModel: monsterViewModel))
NavigationLink(
"Skills",
destination: EditSkills(monsterViewModel: monsterViewModel))
NavigationLink(
"Condition Immunities",
destination: EditStrings(viewModel: monsterViewModel, path: \.conditionImmunities, title: "Condition Immunities"))
NavigationLink(
"Damage Immunities",
destination: EditStrings(viewModel: monsterViewModel, path: \.damageImmunities, title: "Damage Immunities"))
NavigationLink(
"Damage Resistances",
destination: EditStrings(viewModel: monsterViewModel, path: \.damageResistances, title: "Damage Resistances"))
NavigationLink(
"Damage Vulnerabilities",
destination: EditStrings(viewModel: monsterViewModel, path: \.damageVulnerabilities, title: "Damage Vulnerabilities"))
}
.onAppear(perform: copyMonsterToLocal)
.toolbar(content: {

View File

@@ -137,6 +137,7 @@ struct ResistancesAndImmunitiesView: View {
let monsterDamageResistancesDescription = monster.damageResistancesDescription
let monsterDamageImmunitiesDescription = monster.damageImmunitiesDescription
let monsterConditionImmunitiesDescription = monster.conditionImmunitiesDescription
let monsterSensesDescription = monster.sensesDescription
// Damage Vulnerabilities
if (!monsterDamageVulnerabilitiesDescription.isEmpty) {
@@ -165,6 +166,13 @@ struct ResistancesAndImmunitiesView: View {
Text(monsterConditionImmunitiesDescription)
}
}
// Senses
if (!monsterSensesDescription.isEmpty) {
LabeledField("Senses") {
Text(monsterSensesDescription)
}
}
}
}