fix: use dependency filter selector
This commit is contained in:
@@ -7,7 +7,6 @@ import {
|
||||
isAttributeDecreasable,
|
||||
isAttributeIncreasable,
|
||||
} from "../../shared/domain/attributeBounds.ts"
|
||||
import { filterApplyingRatedDependencies } from "../../shared/domain/dependencies/filterApplyingDependencies.ts"
|
||||
import {
|
||||
AdvantageIdentifier,
|
||||
AttributeIdentifier,
|
||||
@@ -68,6 +67,7 @@ import {
|
||||
selectStaticZibiljaRituals,
|
||||
} from "../slices/databaseSlice.ts"
|
||||
import { selectIsInCharacterCreation } from "./characterSelectors.ts"
|
||||
import { selectFilterApplyingRatedDependencies } from "./dependencySelectors.ts"
|
||||
import {
|
||||
selectCurrentExperienceLevel,
|
||||
selectMaximumTotalAttributePoints,
|
||||
@@ -199,18 +199,12 @@ export const selectVisibleAttributes = createSelector(
|
||||
createPropertySelector(selectActiveOptionalRules, OptionalRuleIdentifier.MaximumAttributeScores),
|
||||
selectAttributeAdjustmentId,
|
||||
selectDerivedCharacteristics,
|
||||
selectDynamicSkills,
|
||||
selectDynamicCloseCombatTechniques,
|
||||
selectDynamicRangedCombatTechniques,
|
||||
selectDynamicSpells,
|
||||
selectDynamicRituals,
|
||||
selectDynamicLiturgicalChants,
|
||||
selectDynamicCeremonies,
|
||||
selectHighestMagicalPrimaryAttributes,
|
||||
selectBlessedPrimaryAttribute,
|
||||
selectAttributeMinimaByAssociatedAttributes,
|
||||
selectMagicalPrimaryAttributeDependencies,
|
||||
selectBlessedPrimaryAttributeDependencies,
|
||||
selectFilterApplyingRatedDependencies,
|
||||
(
|
||||
attributes,
|
||||
dynamicAttributes,
|
||||
@@ -223,30 +217,13 @@ export const selectVisibleAttributes = createSelector(
|
||||
maximumAttributeScores,
|
||||
attributeAdjustmentId,
|
||||
derivedCharacteristics,
|
||||
skills,
|
||||
closeCombatTechniques,
|
||||
rangedCombatTechniques,
|
||||
spells,
|
||||
rituals,
|
||||
liturgicalChants,
|
||||
ceremonies,
|
||||
highestMagicalPrimaryAttributes,
|
||||
blessedPrimaryAttribute,
|
||||
attributeMinimaByAssociatedAttributes,
|
||||
magicalPrimaryAttributeDependencies,
|
||||
blessedPrimaryAttributeDependencies,
|
||||
filterApplyingDependencies,
|
||||
): DisplayedAttribute[] => {
|
||||
const filterApplyingDependencies = filterApplyingRatedDependencies({
|
||||
attributes: dynamicAttributes,
|
||||
skills,
|
||||
closeCombatTechniques,
|
||||
rangedCombatTechniques,
|
||||
spells,
|
||||
rituals,
|
||||
liturgicalChants,
|
||||
ceremonies,
|
||||
})
|
||||
|
||||
const singleHighestMagicalPrimaryAttribute =
|
||||
highestMagicalPrimaryAttributes.list.length === 1
|
||||
? highestMagicalPrimaryAttributes.list[0]
|
||||
|
||||
@@ -14,7 +14,6 @@ import {
|
||||
isCombatTechniqueDecreasable,
|
||||
isCombatTechniqueIncreasable,
|
||||
} from "../../shared/domain/combatTechniqueBounds.ts"
|
||||
import { filterApplyingRatedDependencies } from "../../shared/domain/dependencies/filterApplyingDependencies.ts"
|
||||
import {
|
||||
AdvantageIdentifier,
|
||||
GeneralSpecialAbilityIdentifier,
|
||||
@@ -26,14 +25,9 @@ import { createPropertySelector } from "../../shared/utils/redux.ts"
|
||||
import {
|
||||
selectDynamicAdvantages,
|
||||
selectDynamicAttributes,
|
||||
selectDynamicCeremonies,
|
||||
selectDynamicCloseCombatTechniques,
|
||||
selectDynamicGeneralSpecialAbilities,
|
||||
selectDynamicLiturgicalChants,
|
||||
selectDynamicRangedCombatTechniques,
|
||||
selectDynamicRituals,
|
||||
selectDynamicSkills,
|
||||
selectDynamicSpells,
|
||||
} from "../slices/characterSlice.ts"
|
||||
import { createInitialDynamicCloseCombatTechnique } from "../slices/closeCombatTechniqueSlice.ts"
|
||||
import {
|
||||
@@ -42,6 +36,7 @@ import {
|
||||
} from "../slices/databaseSlice.ts"
|
||||
import { createInitialDynamicRangedCombatTechnique } from "../slices/rangedCombatTechniqueSlice.ts"
|
||||
import { selectCanRemove, selectIsInCharacterCreation } from "./characterSelectors.ts"
|
||||
import { selectFilterApplyingRatedDependencies } from "./dependencySelectors.ts"
|
||||
import { selectStartExperienceLevel } from "./experienceLevelSelectors.ts"
|
||||
import { selectIsEntryAvailable } from "./publicationSelectors.ts"
|
||||
|
||||
@@ -110,14 +105,9 @@ export const selectVisibleCloseCombatTechniques = createSelector(
|
||||
GeneralSpecialAbilityIdentifier.Hunter,
|
||||
),
|
||||
selectDynamicAttributes,
|
||||
selectDynamicSkills,
|
||||
selectDynamicRangedCombatTechniques,
|
||||
selectDynamicSpells,
|
||||
selectDynamicRituals,
|
||||
selectDynamicLiturgicalChants,
|
||||
selectDynamicCeremonies,
|
||||
selectRangedCombatTechniquesAt10,
|
||||
selectIsEntryAvailable,
|
||||
selectFilterApplyingRatedDependencies,
|
||||
(
|
||||
staticCloseCombatTechniques,
|
||||
dynamicCloseCombatTechniques,
|
||||
@@ -127,30 +117,14 @@ export const selectVisibleCloseCombatTechniques = createSelector(
|
||||
exceptionalSkill,
|
||||
hunter,
|
||||
attributes,
|
||||
skills,
|
||||
rangedCombatTechniques,
|
||||
spells,
|
||||
rituals,
|
||||
liturgicalChants,
|
||||
ceremonies,
|
||||
rangedCombatTechniquesAt10,
|
||||
isEntryAvailable,
|
||||
filterApplyingDependencies,
|
||||
): DisplayedCloseCombatTechnique[] => {
|
||||
if (startExperienceLevel === undefined) {
|
||||
return []
|
||||
}
|
||||
|
||||
const filterApplyingDependencies = filterApplyingRatedDependencies({
|
||||
attributes,
|
||||
skills,
|
||||
closeCombatTechniques: dynamicCloseCombatTechniques,
|
||||
rangedCombatTechniques,
|
||||
spells,
|
||||
rituals,
|
||||
liturgicalChants,
|
||||
ceremonies,
|
||||
})
|
||||
|
||||
return Object.values(staticCloseCombatTechniques)
|
||||
.filter(staticLiturgicalChant => isEntryAvailable(staticLiturgicalChant.src))
|
||||
.map(combatTechnique => {
|
||||
@@ -218,14 +192,9 @@ export const selectVisibleRangedCombatTechniques = createSelector(
|
||||
GeneralSpecialAbilityIdentifier.FireEater,
|
||||
),
|
||||
selectDynamicAttributes,
|
||||
selectDynamicSkills,
|
||||
selectDynamicCloseCombatTechniques,
|
||||
selectDynamicSpells,
|
||||
selectDynamicRituals,
|
||||
selectDynamicLiturgicalChants,
|
||||
selectDynamicCeremonies,
|
||||
selectRangedCombatTechniquesAt10,
|
||||
selectIsEntryAvailable,
|
||||
selectFilterApplyingRatedDependencies,
|
||||
(
|
||||
staticRangedCombatTechniques,
|
||||
dynamicRangedCombatTechniques,
|
||||
@@ -236,30 +205,14 @@ export const selectVisibleRangedCombatTechniques = createSelector(
|
||||
hunter,
|
||||
fireEater,
|
||||
attributes,
|
||||
skills,
|
||||
closeCombatTechniques,
|
||||
spells,
|
||||
rituals,
|
||||
liturgicalChants,
|
||||
ceremonies,
|
||||
rangedCombatTechniquesAt10,
|
||||
isEntryAvailable,
|
||||
filterApplyingDependencies,
|
||||
): DisplayedRangedCombatTechnique[] => {
|
||||
if (startExperienceLevel === undefined) {
|
||||
return []
|
||||
}
|
||||
|
||||
const filterApplyingDependencies = filterApplyingRatedDependencies({
|
||||
attributes,
|
||||
skills,
|
||||
closeCombatTechniques,
|
||||
rangedCombatTechniques: dynamicRangedCombatTechniques,
|
||||
spells,
|
||||
rituals,
|
||||
liturgicalChants,
|
||||
ceremonies,
|
||||
})
|
||||
|
||||
const isFireEaterActive = isActive(fireEater)
|
||||
|
||||
return Object.values(staticRangedCombatTechniques)
|
||||
|
||||
@@ -3,14 +3,9 @@ import {
|
||||
selectDynamicAttributes,
|
||||
selectDynamicBlessings,
|
||||
selectDynamicCeremonies,
|
||||
selectDynamicCloseCombatTechniques,
|
||||
selectDynamicKarmaSpecialAbilities,
|
||||
selectDynamicLiturgicalChants,
|
||||
selectDynamicLiturgicalStyleSpecialAbilities,
|
||||
selectDynamicRangedCombatTechniques,
|
||||
selectDynamicRituals,
|
||||
selectDynamicSkills,
|
||||
selectDynamicSpells,
|
||||
} from "../slices/characterSlice.ts"
|
||||
import {
|
||||
selectStaticBlessings,
|
||||
@@ -20,7 +15,6 @@ import {
|
||||
|
||||
import { createSelector } from "@reduxjs/toolkit"
|
||||
import { getOptions } from "../../shared/domain/activatableEntry.ts"
|
||||
import { filterApplyingRatedDependencies } from "../../shared/domain/dependencies/filterApplyingDependencies.ts"
|
||||
import {
|
||||
AdvantageIdentifier,
|
||||
KarmaSpecialAbilityIdentifier,
|
||||
@@ -50,6 +44,7 @@ import {
|
||||
import { partition } from "../../shared/utils/array.ts"
|
||||
import { createPropertySelector } from "../../shared/utils/redux.ts"
|
||||
import { selectCanRemove, selectIsInCharacterCreation } from "./characterSelectors.ts"
|
||||
import { selectFilterApplyingRatedDependencies } from "./dependencySelectors.ts"
|
||||
import { selectStartExperienceLevel } from "./experienceLevelSelectors.ts"
|
||||
import { selectIsEntryAvailable } from "./publicationSelectors.ts"
|
||||
import { selectActiveBlessedTradition } from "./traditionSelectors.ts"
|
||||
@@ -119,14 +114,9 @@ export const selectVisibleActiveLiturgicalChants = createSelector(
|
||||
selectCanRemove,
|
||||
createPropertySelector(selectDynamicAdvantages, AdvantageIdentifier.ExceptionalSkill),
|
||||
selectDynamicAttributes,
|
||||
selectDynamicSkills,
|
||||
selectDynamicCloseCombatTechniques,
|
||||
selectDynamicRangedCombatTechniques,
|
||||
selectDynamicSpells,
|
||||
selectDynamicRituals,
|
||||
selectDynamicCeremonies,
|
||||
selectLiturgicalChantsAbove10ByAspect,
|
||||
selectActiveAspectKnowledges,
|
||||
selectFilterApplyingRatedDependencies,
|
||||
(
|
||||
staticLiturgicalChants,
|
||||
dynamicLiturgicalChants,
|
||||
@@ -135,30 +125,14 @@ export const selectVisibleActiveLiturgicalChants = createSelector(
|
||||
canRemove,
|
||||
exceptionalSkill,
|
||||
attributes,
|
||||
skills,
|
||||
closeCombatTechniques,
|
||||
rangedCombatTechniques,
|
||||
spells,
|
||||
rituals,
|
||||
ceremonies,
|
||||
liturgicalChantsAbove10ByAspect,
|
||||
activeAspectKnowledges,
|
||||
filterApplyingDependencies,
|
||||
): DisplayedActiveLiturgicalChant[] => {
|
||||
if (startExperienceLevel === undefined) {
|
||||
return []
|
||||
}
|
||||
|
||||
const filterApplyingDependencies = filterApplyingRatedDependencies({
|
||||
attributes,
|
||||
skills,
|
||||
closeCombatTechniques,
|
||||
rangedCombatTechniques,
|
||||
spells,
|
||||
rituals,
|
||||
liturgicalChants: dynamicLiturgicalChants,
|
||||
ceremonies,
|
||||
})
|
||||
|
||||
return getActiveLiturgicalChantsOrCeremonies(
|
||||
"liturgicalChant",
|
||||
staticLiturgicalChants,
|
||||
@@ -187,14 +161,9 @@ export const selectVisibleActiveCeremonies = createSelector(
|
||||
selectCanRemove,
|
||||
createPropertySelector(selectDynamicAdvantages, AdvantageIdentifier.ExceptionalSkill),
|
||||
selectDynamicAttributes,
|
||||
selectDynamicSkills,
|
||||
selectDynamicCloseCombatTechniques,
|
||||
selectDynamicRangedCombatTechniques,
|
||||
selectDynamicSpells,
|
||||
selectDynamicRituals,
|
||||
selectDynamicLiturgicalChants,
|
||||
selectLiturgicalChantsAbove10ByAspect,
|
||||
selectActiveAspectKnowledges,
|
||||
selectFilterApplyingRatedDependencies,
|
||||
(
|
||||
staticCeremonies,
|
||||
dynamicCeremonies,
|
||||
@@ -203,30 +172,14 @@ export const selectVisibleActiveCeremonies = createSelector(
|
||||
canRemove,
|
||||
exceptionalSkill,
|
||||
attributes,
|
||||
skills,
|
||||
closeCombatTechniques,
|
||||
rangedCombatTechniques,
|
||||
spells,
|
||||
rituals,
|
||||
liturgicalChants,
|
||||
liturgicalChantsAbove10ByAspect,
|
||||
activeAspectKnowledges,
|
||||
filterApplyingDependencies,
|
||||
): DisplayedActiveCeremony[] => {
|
||||
if (startExperienceLevel === undefined) {
|
||||
return []
|
||||
}
|
||||
|
||||
const filterApplyingDependencies = filterApplyingRatedDependencies({
|
||||
attributes,
|
||||
skills,
|
||||
closeCombatTechniques,
|
||||
rangedCombatTechniques,
|
||||
spells,
|
||||
rituals,
|
||||
liturgicalChants,
|
||||
ceremonies: dynamicCeremonies,
|
||||
})
|
||||
|
||||
return getActiveLiturgicalChantsOrCeremonies(
|
||||
"ceremony",
|
||||
staticCeremonies,
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { createSelector } from "@reduxjs/toolkit"
|
||||
import { Skill } from "optolith-database-schema/types/Skill"
|
||||
import { getHighestAttributeValue } from "../../shared/domain/attribute.ts"
|
||||
import { filterApplyingRatedDependencies } from "../../shared/domain/dependencies/filterApplyingDependencies.ts"
|
||||
import {
|
||||
AdvantageIdentifier,
|
||||
GeneralSpecialAbilityIdentifier,
|
||||
@@ -18,19 +17,14 @@ import { createPropertySelector } from "../../shared/utils/redux.ts"
|
||||
import {
|
||||
selectDynamicAdvantages,
|
||||
selectDynamicAttributes,
|
||||
selectDynamicCeremonies,
|
||||
selectDynamicCloseCombatTechniques,
|
||||
selectDynamicGeneralSpecialAbilities,
|
||||
selectDynamicLiturgicalChants,
|
||||
selectDynamicRangedCombatTechniques,
|
||||
selectDynamicRituals,
|
||||
selectDynamicSkills,
|
||||
selectDynamicSpells,
|
||||
} from "../slices/characterSlice.ts"
|
||||
import { selectStaticSkills } from "../slices/databaseSlice.ts"
|
||||
import { createInitialDynamicSkill } from "../slices/skillsSlice.ts"
|
||||
import { selectCanRemove, selectIsInCharacterCreation } from "./characterSelectors.ts"
|
||||
import { selectCurrentCulture } from "./cultureSelectors.ts"
|
||||
import { selectFilterApplyingRatedDependencies } from "./dependencySelectors.ts"
|
||||
import { selectStartExperienceLevel } from "./experienceLevelSelectors.ts"
|
||||
|
||||
/**
|
||||
@@ -66,12 +60,7 @@ export const selectVisibleSkills = createSelector(
|
||||
GeneralSpecialAbilityIdentifier.CraftInstruments,
|
||||
),
|
||||
selectCurrentCulture,
|
||||
selectDynamicCloseCombatTechniques,
|
||||
selectDynamicRangedCombatTechniques,
|
||||
selectDynamicSpells,
|
||||
selectDynamicRituals,
|
||||
selectDynamicLiturgicalChants,
|
||||
selectDynamicCeremonies,
|
||||
selectFilterApplyingRatedDependencies,
|
||||
(
|
||||
skills,
|
||||
dynamicSkills,
|
||||
@@ -82,25 +71,9 @@ export const selectVisibleSkills = createSelector(
|
||||
exceptionalSkill,
|
||||
craftInstruments,
|
||||
culture,
|
||||
closeCombatTechniques,
|
||||
rangedCombatTechniques,
|
||||
spells,
|
||||
rituals,
|
||||
liturgicalChants,
|
||||
ceremonies,
|
||||
): DisplayedSkill[] => {
|
||||
const filterApplyingDependencies = filterApplyingRatedDependencies({
|
||||
attributes,
|
||||
skills: dynamicSkills,
|
||||
closeCombatTechniques,
|
||||
rangedCombatTechniques,
|
||||
spells,
|
||||
rituals,
|
||||
liturgicalChants,
|
||||
ceremonies,
|
||||
})
|
||||
|
||||
return Object.values(skills).map(skill => {
|
||||
filterApplyingDependencies,
|
||||
): DisplayedSkill[] =>
|
||||
Object.values(skills).map(skill => {
|
||||
const dynamicSkill = dynamicSkills[skill.id] ?? createInitialDynamicSkill(skill.id)
|
||||
|
||||
const minimum = getSkillMinimum(
|
||||
@@ -127,6 +100,5 @@ export const selectVisibleSkills = createSelector(
|
||||
isIncreasable: isSkillIncreasable(dynamicSkill, maximum),
|
||||
commonness: culture === undefined ? undefined : getSkillCommonness(culture, skill),
|
||||
}
|
||||
})
|
||||
},
|
||||
}),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user