{"version":3,"file":"main.7e753dd0f3729455258a.js","mappings":"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","sources":["webpack://500-ac/webpack/runtime/chunk loaded","webpack://500-ac/webpack/runtime/create fake namespace object","webpack://500-ac/./src/apis/config/ApiConfig.ts","webpack://500-ac/./src/apis/account/config/AccountApiConfig.ts","webpack://500-ac/./src/apis/account/config/AdventureApiConfig.ts","webpack://500-ac/./src/apis/account/config/AdventureHubConfig.ts","webpack://500-ac/./src/apis/account/config/CharacterApiConfig.ts","webpack://500-ac/./src/apis/account/config/UserApiConfig.ts","webpack://500-ac/./src/apis/account/config/AccountApiServerConfig.ts","webpack://500-ac/./src/entities/adventures/AdventureEvent.ts","webpack://500-ac/./src/entities/data-structures/SortedSet.ts","webpack://500-ac/./src/utils/GUID.ts","webpack://500-ac/./src/entities/toasts/Toasts.ts","webpack://500-ac/./src/config/ToastConfig.ts","webpack://500-ac/./src/utils/TimingUtilities.ts","webpack://500-ac/./src/store/stores/toasts/Toasts.Actions.ts","webpack://500-ac/./src/config/AuthConfig.ts","webpack://500-ac/./src/store/stores/UniversalActions.ts","webpack://500-ac/./src/apis/responses/ApiResponse.ts","webpack://500-ac/./src/apis/AuthorizedWebService.ts","webpack://500-ac/./src/apis/StatusCodes.ts","webpack://500-ac/./src/apis/ValidationMessage.tsx","webpack://500-ac/./src/apis/Api.Base.ts","webpack://500-ac/./src/apis/responses/ErrorResponse.ts","webpack://500-ac/./src/apis/account/Api.Account.ts","webpack://500-ac/./src/entities/Utilities.ts","webpack://500-ac/./src/apis/account/Api.Adventure.ts","webpack://500-ac/./src/apis/account/Api.Character.ts","webpack://500-ac/./src/apis/account/Api.Player.ts","webpack://500-ac/./src/apis/library/config/LibraryApiConfig.ts","webpack://500-ac/./src/apis/library/Api.Library.ts","webpack://500-ac/./src/apis/library/Api.Book.ts","webpack://500-ac/./src/apis/library/Api.Competency.ts","webpack://500-ac/./src/apis/library/Api.Condition.ts","webpack://500-ac/./src/apis/library/Api.Enemies.ts","webpack://500-ac/./src/apis/library/Api.EnemyActiveAbilities.ts","webpack://500-ac/./src/apis/library/Api.EnemyPassiveAbilities.ts","webpack://500-ac/./src/apis/library/Api.EnemyReactiveAbilities.ts","webpack://500-ac/./src/apis/library/Api.Hazard.ts","webpack://500-ac/./src/apis/library/Api.Item.ts","webpack://500-ac/./src/apis/library/Api.Minions.ts","webpack://500-ac/./src/apis/library/Api.Perk.ts","webpack://500-ac/./src/apis/library/Api.Personality.ts","webpack://500-ac/./src/apis/library/Api.Rhetoric.ts","webpack://500-ac/./src/apis/library/Api.Scenario.ts","webpack://500-ac/./src/apis/library/Api.Skill.ts","webpack://500-ac/./src/apis/library/Api.Tag.ts","webpack://500-ac/./src/apis/library/config/BookApiConfig.ts","webpack://500-ac/./src/apis/config/StandardActions.ts","webpack://500-ac/./src/apis/library/config/CompetencyApiConfig.ts","webpack://500-ac/./src/apis/library/config/ConditionApiConfig.ts","webpack://500-ac/./src/apis/library/config/EnemyActiveAbilityApiConfig.ts","webpack://500-ac/./src/apis/library/config/EnemyApiConfig.ts","webpack://500-ac/./src/apis/library/config/EnemyPassiveAbilityApiConfig.ts","webpack://500-ac/./src/apis/library/config/EnemyReactiveAbilityApiConfig.ts","webpack://500-ac/./src/apis/library/config/HazardApiConfig.ts","webpack://500-ac/./src/apis/library/config/ItemApiConfig.ts","webpack://500-ac/./src/apis/library/config/MinionApiConfig.ts","webpack://500-ac/./src/apis/library/config/PerkApiConfig.ts","webpack://500-ac/./src/apis/library/config/PersonalityApiConfig.ts","webpack://500-ac/./src/apis/library/config/RhetoricApiConfig.ts","webpack://500-ac/./src/apis/library/config/ScenarioApiConfig.ts","webpack://500-ac/./src/apis/library/config/SkillApiConfig.ts","webpack://500-ac/./src/apis/library/config/TagApiConfig.ts","webpack://500-ac/./src/apis/library/config/VehicleApiConfig.ts","webpack://500-ac/./src/apis/library/config/LibraryApiServerConfig.ts","webpack://500-ac/./src/entities/library/perks/Perk.ts","webpack://500-ac/./src/entities/RecordStatus.ts","webpack://500-ac/./src/utils/StringUtilities.ts","webpack://500-ac/./src/entities/library/Roller.ts","webpack://500-ac/./src/entities/library/skills/Skill.ts","webpack://500-ac/./src/utils/ArrayExtensions.ts","webpack://500-ac/./src/utils/events/ExternalClickDetector.tsx","webpack://500-ac/./src/components/inputs/buttons/CloseButton.tsx","webpack://500-ac/./src/components/theming/tooltips/Tooltip.tsx","webpack://500-ac/./src/components/theming/tooltips/TooltipContent.tsx","webpack://500-ac/./src/components/icons/GameIcon.tsx","webpack://500-ac/./src/components/icons/DamageIcons.tsx","webpack://500-ac/./src/components/icons/items/AmmoIcons.tsx","webpack://500-ac/./src/components/icons/items/ContainerIcons.tsx","webpack://500-ac/./src/components/icons/items/SpellIcons.tsx","webpack://500-ac/./src/components/icons/items/WeaponIcons.tsx","webpack://500-ac/./src/components/icons/items/ObjectIcons.tsx","webpack://500-ac/./src/components/icons/MaterialSymbol.tsx","webpack://500-ac/./src/components/icons/site/index.tsx","webpack://500-ac/./src/entities/library/items/mods/ModSlot.ts","webpack://500-ac/./src/entities/library/items/Item.ts","webpack://500-ac/./src/entities/characters/WornLimits.ts","webpack://500-ac/./src/entities/abilities/Ability.ts","webpack://500-ac/./src/entities/characters/Character.ts","webpack://500-ac/./src/services/CharacterService.ts","webpack://500-ac/./src/store/stores/api/ApiStore.State.ts","webpack://500-ac/./src/config/UIConfig.ts","webpack://500-ac/./src/store/stores/adventures/AdventureStore.Actions.tsx","webpack://500-ac/./src/store/stores/collection/characters/CharacterStore.Actions.ts","webpack://500-ac/./src/store/stores/players/PlayerStore.Actions.ts","webpack://500-ac/./src/apis/Hub.Base.ts","webpack://500-ac/./src/apis/account/Hub.Adventure.ts","webpack://500-ac/./src/store/stores/adventures/AdventureStore.State.ts","webpack://500-ac/./src/store/stores/adventures/AdventureReducerHelpers.ts","webpack://500-ac/./src/store/stores/adventures/AdventureStore.Reducer.ts","webpack://500-ac/./src/store/stores/collection/characters/CharacterStore.State.ts","webpack://500-ac/./src/entities/rolls/Roll.ts","webpack://500-ac/./src/store/stores/collection/characters/reducers/CharacterReducerHelpers.ts","webpack://500-ac/./src/store/stores/collection/characters/reducers/CharacterSpecificReducers.ts","webpack://500-ac/./src/store/stores/collection/characters/reducers/CharacterCompetencyReducers.ts","webpack://500-ac/./src/entities/library/items/ItemTypeMap.ts","webpack://500-ac/./src/entities/filters/ObjectFilter.ts","webpack://500-ac/./src/entities/filters/ItemFilter.ts","webpack://500-ac/./src/store/stores/collection/characters/reducers/CharacterConditionReducers.ts","webpack://500-ac/./src/utils/TypeUtils.ts","webpack://500-ac/./src/store/stores/collection/characters/reducers/CharacterItemReducers.ts","webpack://500-ac/./src/store/stores/collection/characters/reducers/CharacterMinionReducer.ts","webpack://500-ac/./src/store/stores/collection/characters/reducers/CharacterPerkReducers.ts","webpack://500-ac/./src/store/stores/collection/characters/reducers/CharacterPersonalityReducers.ts","webpack://500-ac/./src/store/stores/collection/characters/reducers/CharacterRhetoricReducers.ts","webpack://500-ac/./src/store/stores/collection/characters/reducers/CharacterSkillReducers.ts","webpack://500-ac/./src/store/stores/collection/characters/reducers/CharacterPropertyReducers.ts","webpack://500-ac/./src/store/stores/collection/characters/CharacterStore.Reducer.ts","webpack://500-ac/./src/store/stores/details/TooltipStore.Reducer.ts","webpack://500-ac/./src/store/stores/library/LibraryStore.State.ts","webpack://500-ac/./src/store/stores/library/LibraryStore.Reducer.ts","webpack://500-ac/./src/store/stores/toasts/Toasts.State.ts","webpack://500-ac/./src/store/stores/toasts/Toasts.Reducer.ts","webpack://500-ac/./src/store/stores/players/PlayerStore.State.ts","webpack://500-ac/./src/store/stores/players/PlayerStore.Reducer.ts","webpack://500-ac/./src/store/stores/books/BookStore.State.ts","webpack://500-ac/./src/store/stores/books/BookStore.Reducer.ts","webpack://500-ac/./src/store/stores/site/SiteStore.State.ts","webpack://500-ac/./src/store/stores/site/SiteStore.Reducer.ts","webpack://500-ac/./src/store/configureStore.ts","webpack://500-ac/./src/store/RootReducer.ts","webpack://500-ac/./src/components/ComingSoon.tsx","webpack://500-ac/./src/components/account/Profile.tsx","webpack://500-ac/./src/components/inputs/buttons/ThemedButton.tsx","webpack://500-ac/./src/components/account/CreateName.tsx","webpack://500-ac/./src/components/account/index.tsx","webpack://500-ac/./src/components/theming/texts/index.tsx","webpack://500-ac/./src/components/errors/ErrorBound.tsx","webpack://500-ac/./src/components/errors/ErrorPage.tsx","webpack://500-ac/./src/components/articles/navigation/article-navigation/ArticleNavLink.ts","webpack://500-ac/./src/store/stores/library/LibraryStore.Actions.ts","webpack://500-ac/./src/entities/characters/Competencies.ts","webpack://500-ac/./src/components/characters/items/filters/NameFilter.tsx","webpack://500-ac/./src/entities/filters/CompetencyFilter.ts","webpack://500-ac/./src/components/inputs/radio/ThemedRadio.tsx","webpack://500-ac/./src/components/library/competency/CompetencyFiltersComponent.tsx","webpack://500-ac/./src/components/filtering/NoFilterResults.tsx","webpack://500-ac/./src/components/articles/CollapsibleSection.tsx","webpack://500-ac/./src/components/theming/MarkdownContainer.tsx","webpack://500-ac/./src/components/library/competency/CompetencyResults.tsx","webpack://500-ac/./src/components/library/navigation/BreadCrumbs.tsx","webpack://500-ac/./src/components/theming/loader/Loader.tsx","webpack://500-ac/./src/components/library/competency/CompetencyBlock.tsx","webpack://500-ac/./src/components/library/competency/CompetencyViewer.tsx","webpack://500-ac/./src/components/library/competency/index.tsx","webpack://500-ac/./src/components/library/condition/ConditionResults.tsx","webpack://500-ac/./src/entities/filters/ConditionFilter.ts","webpack://500-ac/./src/components/library/condition/ConditionBlock.tsx","webpack://500-ac/./src/components/library/condition/ConditionViewer.tsx","webpack://500-ac/./src/components/notifications/Notification.tsx","webpack://500-ac/./src/components/library/condition/index.tsx","webpack://500-ac/./src/entities/filters/HazardFilter.ts","webpack://500-ac/./src/components/collection/characters/character-sheet/common/tags/TagsComponent.tsx","webpack://500-ac/./src/entities/library/hazards/HazardBlock.tsx","webpack://500-ac/./src/components/library/hazards/HazardResults.tsx","webpack://500-ac/./src/components/library/hazards/HazardFiltersComponent.tsx","webpack://500-ac/./src/components/library/hazards/HazardViewer.tsx","webpack://500-ac/./src/components/library/hazards/index.tsx","webpack://500-ac/./src/components/articles/CollapsibleRegion.tsx","webpack://500-ac/./src/entities/utils/InterpretCustomText.ts","webpack://500-ac/./src/components/collection/characters/character-tools/items/info/DamageTypeSuite.tsx","webpack://500-ac/./src/components/figures/Die.tsx","webpack://500-ac/./src/components/figures/Rolls.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/HandTriggerViews.tsx","webpack://500-ac/./src/components/icons/CharacterIcons.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/CharacterAbilityView.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/ItemPreviewActions.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/ItemPreviewBasicInfo.tsx","webpack://500-ac/./src/entities/rolls/HandTrigger.ts","webpack://500-ac/./src/components/collection/characters/character-sheet/common/hand-triggers/HandTypeLabel.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/common/hand-triggers/HandTriggerComponent.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/ItemPreviewHandTriggers.tsx","webpack://500-ac/./src/components/icons/IndicatorIcons.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/info/DefensesComponent.tsx","webpack://500-ac/./src/entities/library/items/ItemInitializers.ts","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/ItemPreviewMetrics.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/ItemPreviewPassives.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/ItemPreviewReactions.tsx","webpack://500-ac/./src/store/stores/collection/characters/actions/CharacterSpecificActions.ts","webpack://500-ac/./src/store/stores/collection/characters/actions/CharacterItemActions.ts","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/mods/ModSlotPreview.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/ItemPreviewSlots.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/ItemPreviewTags.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/ItemPreview.tsx","webpack://500-ac/./src/components/theming/breakdown-window/index.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/ItemPreviewHeader.tsx","webpack://500-ac/./src/components/library/items/AddItemButton.tsx","webpack://500-ac/./src/components/characters/items/ItemResults.tsx","webpack://500-ac/./src/components/characters/items/filters/ItemTypeFilter.tsx","webpack://500-ac/./src/components/characters/items/filters/ItemDescriptionFilter.tsx","webpack://500-ac/./src/components/characters/items/filters/ItemWeightFilter.tsx","webpack://500-ac/./src/components/inputs/selects/multiselect/MultiSelect.tsx","webpack://500-ac/./src/entities/categorization/Tag.ts","webpack://500-ac/./src/components/characters/items/filters/TagsFilter.tsx","webpack://500-ac/./src/components/characters/items/filters/ItemCostFilter.tsx","webpack://500-ac/./src/components/characters/items/ItemsView.tsx","webpack://500-ac/./src/components/library/items/ItemViewer.tsx","webpack://500-ac/./src/components/library/items/index.tsx","webpack://500-ac/./src/entities/filters/PerkFilter.ts","webpack://500-ac/./src/components/library/perks/PerkFiltersComponent.tsx","webpack://500-ac/./src/components/library/perks/PerkResults.tsx","webpack://500-ac/./src/components/library/perks/PerkBlock.tsx","webpack://500-ac/./src/components/library/perks/PerkViewer.tsx","webpack://500-ac/./src/components/library/perks/index.tsx","webpack://500-ac/./src/entities/filters/PersonalityFilter.ts","webpack://500-ac/./src/components/library/personalities/PersonalityResults.tsx","webpack://500-ac/./src/components/library/abilities/AbilityCollection.tsx","webpack://500-ac/./src/components/library/personalities/PersonalityBlock.tsx","webpack://500-ac/./src/components/library/personalities/PersonalityViewer.tsx","webpack://500-ac/./src/components/library/personalities/index.tsx","webpack://500-ac/./src/components/library/rhetoric/index.tsx","webpack://500-ac/./src/entities/filters/SkillFiilter.ts","webpack://500-ac/./src/components/library/skills/SkillFiltersComponent.tsx","webpack://500-ac/./src/components/library/skills/SkillBlock.tsx","webpack://500-ac/./src/components/library/skills/SkillResults.tsx","webpack://500-ac/./src/components/library/skills/SkillViewer.tsx","webpack://500-ac/./src/components/library/skills/index.tsx","webpack://500-ac/./src/components/library/books/BookNpcView.tsx","webpack://500-ac/./src/components/library/books/StoryNodeView.tsx","webpack://500-ac/./src/components/library/books/StoryNodesContainer.tsx","webpack://500-ac/./src/components/library/books/BookChapterView.tsx","webpack://500-ac/./src/components/library/books/BookView.tsx","webpack://500-ac/./src/components/library/books/BookResults.tsx","webpack://500-ac/./src/components/library/books/index.tsx","webpack://500-ac/./src/entities/library/enemies/EnemyAbilityView.tsx","webpack://500-ac/./src/entities/characters/CreatureType.ts","webpack://500-ac/./src/entities/library/enemies/StatBlock.tsx","webpack://500-ac/./src/components/library/enemies/EnemyViewer.tsx","webpack://500-ac/./src/entities/filters/EnemyFilter.ts","webpack://500-ac/./src/components/library/enemies/EnemyFilterComponent.tsx","webpack://500-ac/./src/components/library/enemies/EnemyResults.tsx","webpack://500-ac/./src/components/library/enemies/index.tsx","webpack://500-ac/./src/components/library/scenarios/ScenarioResults.tsx","webpack://500-ac/./src/components/library/scenarios/ScenarioViewer.tsx","webpack://500-ac/./src/components/library/scenarios/index.tsx","webpack://500-ac/./src/components/library/navigation/LibraryRoutes.tsx","webpack://500-ac/./src/components/library/index.tsx","webpack://500-ac/./src/components/rules/introduction/HowToPlayRules.tsx","webpack://500-ac/./src/components/directives/Directives.tsx","webpack://500-ac/./src/components/rules/introduction/TerminologyRules.tsx","webpack://500-ac/./src/components/articles/navigation/NavOrdinal.tsx","webpack://500-ac/./src/components/articles/navigation/article-navigation/ArticleNavSublink.tsx","webpack://500-ac/./src/components/articles/navigation/article-navigation/ArticleNavLinkComponent.tsx","webpack://500-ac/./src/components/articles/navigation/PageNavigation.tsx","webpack://500-ac/./src/components/articles/navigation/article-navigation/ArticleNavigation.tsx","webpack://500-ac/./src/components/rules/RulesRoot.tsx","webpack://500-ac/./src/components/rules/RulesArticle.tsx","webpack://500-ac/./src/components/app/nav/CreateHashNavigator.ts","webpack://500-ac/./src/components/rules/introduction/GameInfoRules.tsx","webpack://500-ac/./src/components/rules/introduction/index.tsx","webpack://500-ac/./src/components/rules/creating-your-character/CreateCharacterStepsRules.tsx","webpack://500-ac/./src/components/rules/figures/generation/RollableTable.tsx","webpack://500-ac/./src/components/rules/figures/common/FigureDice.tsx","webpack://500-ac/./src/components/rules/figures/generation/characters/CharacterGenerationTables.tsx","webpack://500-ac/./src/components/rules/creating-your-character/CreatingAConcept.tsx","webpack://500-ac/./src/components/rules/creating-your-character/index.tsx","webpack://500-ac/./src/components/rules/kinships/GoblinRules.tsx","webpack://500-ac/./src/components/rules/kinships/HumanRules.tsx","webpack://500-ac/./src/components/rules/kinships/ChoosingAKinship.tsx","webpack://500-ac/./src/components/rules/kinships/index.tsx","webpack://500-ac/./src/components/rules/skills/IncreasingSkillRules.tsx","webpack://500-ac/./src/components/rules/skills/SkillListRules.tsx","webpack://500-ac/./src/components/rules/figures/RulesFigures.tsx","webpack://500-ac/./src/components/rules/figures/DiceBoonFigures.tsx","webpack://500-ac/./src/components/rules/skills/ChooseYourSkills.tsx","webpack://500-ac/./src/components/rules/skills/index.tsx","webpack://500-ac/./src/components/rules/equipment/ArmorRules.tsx","webpack://500-ac/./src/components/rules/equipment/CraftingRules.tsx","webpack://500-ac/./src/components/rules/equipment/ModRules.tsx","webpack://500-ac/./src/components/rules/equipment/OutfitRules.tsx","webpack://500-ac/./src/components/rules/equipment/WeaponRules.tsx","webpack://500-ac/./src/components/rules/equipment/StartingEquipmentRules.tsx","webpack://500-ac/./src/components/rules/equipment/MoneyRules.tsx","webpack://500-ac/./src/components/rules/equipment/index.tsx","webpack://500-ac/./src/components/rules/personalities/GainingTraits.tsx","webpack://500-ac/./src/components/rules/personalities/LosingTraits.tsx","webpack://500-ac/./src/components/rules/personalities/CraftingYourPersonality.tsx","webpack://500-ac/./src/components/rules/personalities/index.tsx","webpack://500-ac/./src/components/rules/challenges/AssistedChallengeRules.tsx","webpack://500-ac/./src/components/rules/challenges/CollaborativeChallengeRules.tsx","webpack://500-ac/./src/components/rules/challenges/OpposedChallengeRules.tsx","webpack://500-ac/./src/components/rules/figures/ChallengeFigures.tsx","webpack://500-ac/./src/components/rules/challenges/ChallengeDifficulty.tsx","webpack://500-ac/./src/components/rules/challenges/SocialChallenges.tsx","webpack://500-ac/./src/components/rules/challenges/SkillChallengeRules.tsx","webpack://500-ac/./src/components/rules/challenges/index.tsx","webpack://500-ac/./src/components/rules/action-scenes/CombatRoundsRules.tsx","webpack://500-ac/./src/components/rules/action-scenes/CoverPositioningRules.tsx","webpack://500-ac/./src/components/rules/action-scenes/DamageRules.tsx","webpack://500-ac/./src/components/rules/action-scenes/VisionTargetingRules.tsx","webpack://500-ac/./src/components/rules/figures/EmpowermentTable.tsx","webpack://500-ac/./src/components/rules/action-scenes/EmpoweredAbilities.tsx","webpack://500-ac/./src/components/rules/action-scenes/index.tsx","webpack://500-ac/./src/components/rules/conditions/index.tsx","webpack://500-ac/./src/components/rules/dice-and-hands/DeclaringRolls.tsx","webpack://500-ac/./src/components/rules/dice-and-hands/ActionRollRules.tsx","webpack://500-ac/./src/components/rules/figures/RollValuesFigure.tsx","webpack://500-ac/./src/components/rules/dice-and-hands/TheRollsRules.tsx","webpack://500-ac/./src/components/rules/dice-and-hands/AdvantageDisadvantage.tsx","webpack://500-ac/./src/components/rules/dice-and-hands/ReflexRollRules.tsx","webpack://500-ac/./src/components/rules/dice-and-hands/index.tsx","webpack://500-ac/./src/components/rules/location-movement/SizeRules.tsx","webpack://500-ac/./src/components/rules/location-movement/SpaceRules.tsx","webpack://500-ac/./src/components/rules/location-movement/HexesRules.tsx","webpack://500-ac/./src/components/rules/location-movement/TargetsShapesRules.tsx","webpack://500-ac/./src/components/rules/location-movement/RangeRules.tsx","webpack://500-ac/./src/components/rules/location-movement/MovementRules.tsx","webpack://500-ac/./src/components/rules/location-movement/EnteringAndLeavingRules.tsx","webpack://500-ac/./src/components/rules/location-movement/index.tsx","webpack://500-ac/./src/components/rules/social-interactions/RhetoricalStrategies.tsx","webpack://500-ac/./src/components/rules/figures/SocialFigures.tsx","webpack://500-ac/./src/components/rules/social-interactions/IncreasingRhetoricalSkills.tsx","webpack://500-ac/./src/components/rules/social-interactions/index.tsx","webpack://500-ac/./src/components/rules/take-action/actions/ActionRules.tsx","webpack://500-ac/./src/components/rules/take-action/Passives.tsx","webpack://500-ac/./src/components/rules/take-action/ReactionRules.tsx","webpack://500-ac/./src/components/rules/take-action/AbilitiesArticle.tsx","webpack://500-ac/./src/components/rules/take-action/DurationRules.tsx","webpack://500-ac/./src/components/rules/mods/AttackRules.tsx","webpack://500-ac/./src/components/rules/mods/SpellRules.tsx","webpack://500-ac/./src/components/rules/take-action/actions/StandardActionRules.tsx","webpack://500-ac/./src/components/rules/take-action/actions/HandRules.tsx","webpack://500-ac/./src/components/rules/take-action/index.tsx","webpack://500-ac/./src/components/rules/mods/BodyModRules.tsx","webpack://500-ac/./src/components/rules/mods/SlotRules.tsx","webpack://500-ac/./src/components/rules/mods/index.tsx","webpack://500-ac/./src/components/rules/minions-vehicles/MinionRules.tsx","webpack://500-ac/./src/components/rules/minions-vehicles/ControllingVehicles.tsx","webpack://500-ac/./src/components/rules/minions-vehicles/VehicleRules.tsx","webpack://500-ac/./src/components/rules/minions-vehicles/index.tsx","webpack://500-ac/./src/components/articles/TableOfContents.tsx","webpack://500-ac/./src/components/rules/health-juice-fatigue/HealthRules.tsx","webpack://500-ac/./src/components/rules/health-juice-fatigue/JuiceRules.tsx","webpack://500-ac/./src/components/rules/health-juice-fatigue/index.tsx","webpack://500-ac/./src/components/rules/scenes/DramaticSceneRules.tsx","webpack://500-ac/./src/components/rules/scenes/EstablishingSceneRules.tsx","webpack://500-ac/./src/components/rules/scenes/MontageRules.tsx","webpack://500-ac/./src/components/rules/scenes/ActRules.tsx","webpack://500-ac/./src/components/rules/scenes/index.tsx","webpack://500-ac/./src/components/rules/competencies/ExpertiseRules.tsx","webpack://500-ac/./src/components/rules/competencies/CustomCompetencyRules.tsx","webpack://500-ac/./src/components/rules/competencies/GainingCompetenceRules.tsx","webpack://500-ac/./src/components/rules/competencies/RollingCompetenciesRules.tsx","webpack://500-ac/./src/components/rules/competencies/CreatingACompetentCharacter.tsx","webpack://500-ac/./src/components/rules/competencies/index.tsx","webpack://500-ac/./src/components/rules/index.tsx","webpack://500-ac/./src/components/collection/adventures/adventure-events/AdventureEventComponent.tsx","webpack://500-ac/./src/components/toasts/Toast.tsx","webpack://500-ac/./src/components/toasts/ToastContainer.tsx","webpack://500-ac/./src/entities/site/RedirectPayload.ts","webpack://500-ac/./src/components/app/nav/AccountNavButton.tsx","webpack://500-ac/./src/components/app/nav/AccountNav.tsx","webpack://500-ac/./src/components/app/nav/SiteNavigation.tsx","webpack://500-ac/./src/components/app/Splash.tsx","webpack://500-ac/./src/components/filtering/ComingSoon.tsx","webpack://500-ac/./src/components/rules/figures/GuideCrossCountryFigures.tsx","webpack://500-ac/./src/components/gamemasterguide/exploration/CrossCountryGuide.tsx","webpack://500-ac/./src/components/rules/figures/GuideTreasureFigures.tsx","webpack://500-ac/./src/components/gamemasterguide/exploration/Treasure.tsx","webpack://500-ac/./src/components/gamemasterguide/exploration/DungeonDelvingGuide.tsx","webpack://500-ac/./src/components/gamemasterguide/GuideRoot.tsx","webpack://500-ac/./src/components/gamemasterguide/exploration/index.tsx","webpack://500-ac/./src/components/gamemasterguide/gmintro/WhatDoIDo.tsx","webpack://500-ac/./src/components/gamemasterguide/gmintro/index.tsx","webpack://500-ac/./src/components/rules/figures/GuideCombatFigures.tsx","webpack://500-ac/./src/components/gamemasterguide/action-scenes/RollingForEnemies.tsx","webpack://500-ac/./src/components/gamemasterguide/action-scenes/StatBlocks.tsx","webpack://500-ac/./src/components/gamemasterguide/action-scenes/EnvironmentalHazards.tsx","webpack://500-ac/./src/components/gamemasterguide/action-scenes/CreatingActionScenes.tsx","webpack://500-ac/./src/components/gamemasterguide/action-scenes/index.tsx","webpack://500-ac/./src/components/gamemasterguide/adventures/CreatingAdventures.tsx","webpack://500-ac/./src/components/gamemasterguide/adventures/AdventureStructure.tsx","webpack://500-ac/./src/components/gamemasterguide/adventures/CreatingActs.tsx","webpack://500-ac/./src/components/gamemasterguide/adventures/DesigningForYourPlayers.tsx","webpack://500-ac/./src/components/gamemasterguide/adventures/StartingTheAdventure.tsx","webpack://500-ac/./src/components/gamemasterguide/adventures/index.tsx","webpack://500-ac/./src/components/gamemasterguide/customization/CustomEnemies.tsx","webpack://500-ac/./src/components/gamemasterguide/customization/CustomHazards.tsx","webpack://500-ac/./src/components/gamemasterguide/customization/CustomItems.tsx","webpack://500-ac/./src/components/gamemasterguide/customization/CustomMods.tsx","webpack://500-ac/./src/components/gamemasterguide/customization/CustomizeAnything.tsx","webpack://500-ac/./src/components/gamemasterguide/customization/index.tsx","webpack://500-ac/./src/components/theming/clipboard/CopyableText.tsx","webpack://500-ac/./src/components/rules/figures/generation/adventures/NamingFigures.tsx","webpack://500-ac/./src/components/gamemasterguide/building-a-world/CreatingNPCs.tsx","webpack://500-ac/./src/components/gamemasterguide/building-a-world/index.tsx","webpack://500-ac/./src/components/gamemasterguide/generating-content/CreatingEncounters.tsx","webpack://500-ac/./src/components/rules/figures/generation/adventures/CreatingSettlementsFigures.tsx","webpack://500-ac/./src/components/gamemasterguide/generating-content/CreatingSettlements.tsx","webpack://500-ac/./src/components/gamemasterguide/generating-content/index.tsx","webpack://500-ac/./src/components/gamemasterguide/index.tsx","webpack://500-ac/./src/components/setting/WhatHappenedHere.tsx","webpack://500-ac/./src/components/setting/WhatsDifferent.tsx","webpack://500-ac/./src/components/setting/PlacesOfInterest.tsx","webpack://500-ac/./src/components/setting/index.tsx","webpack://500-ac/./src/components/inputs/validation/ValidationResults.tsx","webpack://500-ac/./src/components/collection/adventures/AdventureCreator.tsx","webpack://500-ac/./src/components/collection/adventures/AdventureList.tsx","webpack://500-ac/./src/components/collection/adventures/JoinAdventure.tsx","webpack://500-ac/./src/components/inputs/checkbox/ThemedCheckbox.tsx","webpack://500-ac/./src/components/theming/Notice.tsx","webpack://500-ac/./src/components/collection/adventures/AdventureContent.tsx","webpack://500-ac/./src/components/collection/adventures/AdventureHeader.tsx","webpack://500-ac/./src/components/collection/adventures/AdventureInvite.tsx","webpack://500-ac/./src/components/collection/adventures/AdventureNotes.tsx","webpack://500-ac/./src/components/collection/adventures/AddCharacterMenu.tsx","webpack://500-ac/./src/components/figures/RollTypeIndicators.tsx","webpack://500-ac/./src/components/collection/adventures/AdventurerDice.tsx","webpack://500-ac/./src/components/collection/adventures/Adventurers.tsx","webpack://500-ac/./src/components/inputs/EditableDie.tsx","webpack://500-ac/./src/components/collection/adventures/AdventureDice.tsx","webpack://500-ac/./src/components/collection/adventures/AdventureLog.tsx","webpack://500-ac/./src/components/collection/adventures/AdventureView.tsx","webpack://500-ac/./src/components/collection/adventures/index.tsx","webpack://500-ac/./src/components/app/AuthorizeComponent.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/abilities-equipment/item-adder/index.tsx","webpack://500-ac/./src/store/stores/collection/characters/actions/CharacterPropertyActions.ts","webpack://500-ac/./src/components/collection/characters/character-sheet/HealthIndicator.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/JuiceIndicator.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/mods/BodySlotPreview.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/abilities-equipment/item-editor/slots/MiniModComponent.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/body/SheetBodyMods.tsx","webpack://500-ac/./src/components/inputs/selects/singleselect/SingleSelect.tsx","webpack://500-ac/./src/entities/characters/Kinships.ts","webpack://500-ac/./src/components/collection/characters/character-sheet/CharacterSheetDemographics.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/body/SheetBody.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/skills/skill-window/BaseSkill.tsx","webpack://500-ac/./src/store/ConcurrencyUtilities.ts","webpack://500-ac/./src/store/stores/collection/characters/actions/CharacterSkillActions.ts","webpack://500-ac/./src/entities/library/socials/Rhetoric.ts","webpack://500-ac/./src/components/collection/characters/character-sheet/skills/skill-window/SkillAdjustment.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/skills/skill-window/SkillOverride.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/skills/skill-window/index.tsx","webpack://500-ac/./src/components/characters/skills/SkillComponent.tsx","webpack://500-ac/./src/entities/NamedEntity.ts","webpack://500-ac/./src/components/collection/characters/character-sheet/skills/SheetSkills.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/rhetorics/RhetoricSheetComponent.tsx","webpack://500-ac/./src/store/stores/collection/characters/actions/CharacterRhetoricActions.ts","webpack://500-ac/./src/components/collection/characters/character-sheet/rhetorics/window/RhetoricAdjustment.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/rhetorics/window/RhetoricOverride.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/rhetorics/window/BaseRhetoric.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/rhetorics/CharacterSheetRhetorics.tsx","webpack://500-ac/./src/store/stores/collection/characters/actions/CharacterPersonalityActions.ts","webpack://500-ac/./src/components/collection/characters/character-sheet/personalities/PersonalityHeader.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/personalities/PersonalityOption.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/personalities/SheetPersonalities.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/roll-tool/CommunalRolls.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/roll-tool/RollActionPicker.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/roll-tool/index.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/quick-access/index.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/abilities-equipment/sheet-item/HeldMover.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/abilities-equipment/sheet-item/WornMover.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/abilities-equipment/sheet-item/MoveItemWindow.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/abilities-equipment/sheet-item/SheetItem.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/info/ColumnNames.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/equipment/HandsEquipped.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/equipment/Inventory.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/equipment/Wearing.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/equipment/SheetEquipment.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/Passives.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/Reactions.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/mods/ModEditorTagFilter.tsx","webpack://500-ac/./src/components/collection/characters/character-tools/items/preview/mods/ModEditor.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/abilities-equipment/item-editor/index.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/ActiveAbilitiesByHandComponent.tsx","webpack://500-ac/./src/entities/library/minions/Minion.ts","webpack://500-ac/./src/store/stores/collection/characters/actions/CharacterMinionActions.ts","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/minions/MinionListing.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/minions/MinionPreview.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/minions/MinionPicker.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/minions/MinionPreviewHeader.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/minions/Horde.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/CharacterAbilitiesView.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/main-section/SheetMainSection.tsx","webpack://500-ac/./src/store/stores/collection/characters/actions/CharacterConditionActions.ts","webpack://500-ac/./src/components/collection/characters/character-sheet/SheetConditions.tsx","webpack://500-ac/./src/store/stores/collection/characters/actions/CharacterPerkActions.ts","webpack://500-ac/./src/components/collection/characters/character-sheet/SheetPerks.tsx","webpack://500-ac/./src/store/stores/collection/characters/actions/CharacterCompetencyActions.ts","webpack://500-ac/./src/components/collection/characters/character-sheet/competencies/CustomCompetencyCreator.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/competencies/SheetCompetencyEditor.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/competencies/SheetCompetencies.tsx","webpack://500-ac/./src/components/collection/characters/character-sheet/CharacterSheet.tsx","webpack://500-ac/./src/components/collection/characters/CharacterComponent.tsx","webpack://500-ac/./src/components/theming/confirm/Confirm.tsx","webpack://500-ac/./src/components/collection/characters/CharacterCreator.tsx","webpack://500-ac/./src/components/collection/characters/CharacterList.tsx","webpack://500-ac/./src/components/collection/characters/index.tsx","webpack://500-ac/./src/components/app/index.tsx","webpack://500-ac/./src/components/AppRouter.tsx","webpack://500-ac/./src/components/Root.tsx","webpack://500-ac/./src/index.tsx","webpack://500-ac/webpack/bootstrap","webpack://500-ac/webpack/runtime/define property getters","webpack://500-ac/webpack/runtime/global","webpack://500-ac/webpack/runtime/hasOwnProperty shorthand","webpack://500-ac/webpack/runtime/make namespace object","webpack://500-ac/webpack/runtime/jsonp chunk loading","webpack://500-ac/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","type RestMethod = 'GET' | 'PATCH' | 'PUT' | 'POST' | 'DELETE' | 'HEAD' | 'OPTIONS' | 'CONNECT' | 'TRACE';\r\n\r\ninterface Action {\r\n route: string;\r\n method: RestMethod;\r\n}\r\n\r\nexport type ApiConfigActions = { [key: string]: Action };\r\n\r\ninterface ApiConfigInitializer {\r\n uri: string;\r\n apiPath: string;\r\n actions: TActions\r\n}\r\n\r\ninterface RouteParam {\r\n name: string;\r\n value: string | number | boolean;\r\n}\r\n\r\ninterface UriWithMethod {\r\n uri: string;\r\n method: RestMethod;\r\n}\r\n\r\nexport class ApiConfig {\r\n public constructor(initializer: ApiConfigInitializer) {\r\n this.uri = initializer.uri;\r\n this.apiPath = initializer.apiPath;\r\n this.actions = initializer.actions;\r\n }\r\n\r\n public readonly uri: string;\r\n public readonly apiPath: string;\r\n public readonly actions: TActions;\r\n\r\n public getUriAndMethod(actionName: (keyof TActions), ...params: RouteParam[]): UriWithMethod {\r\n return {\r\n uri: this.createActionUri(actionName, ...params),\r\n method: this.actions[actionName].method\r\n };\r\n }\r\n\r\n private createActionUri(actionName: (keyof TActions), ...params: RouteParam[]) {\r\n const action = this.actions[actionName];\r\n let route = action.route;\r\n for (let parameter of params) {\r\n route = route.replace(parameter.name, parameter.value.toString());\r\n }\r\n return `${this.uri}${this.apiPath}${route}`;\r\n }\r\n}","const accountProdUri = \"https://800ac-account.azurewebsites.net\";\r\n\r\nexport const AccountApiConfig = Object.seal({\r\n audience: \"https://dev-u78cwas5.us.auth0.com/api/v2/\",\r\n uri: process.env.NODE_ENV === \"production\"\r\n ? accountProdUri\r\n : \"https://localhost:7018\"\r\n});","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { AccountApiConfig } from \"./AccountApiConfig\";\r\n\r\nexport const AdventureApiConfig = new ApiConfig({\r\n ...AccountApiConfig,\r\n apiPath: '/api/v1.0/Adventure',\r\n actions: {\r\n 'get': {\r\n route: '/:id',\r\n method: 'GET'\r\n },\r\n 'userAdventures': {\r\n route: '/GetPlayerAdventures?includeInactive=:includeInactive',\r\n method: 'GET'\r\n },\r\n 'create': {\r\n route: '/',\r\n method: 'POST'\r\n },\r\n 'update': {\r\n route: '/:id',\r\n method: 'PATCH'\r\n },\r\n 'resetInvite': {\r\n route: '/:id/ResetInvite',\r\n method: 'POST'\r\n },\r\n 'joinAdventure': {\r\n route: '/:inviteId/Join',\r\n method: 'POST'\r\n },\r\n 'leaveAdventure': {\r\n route: '/:id/Leave',\r\n method: 'DELETE'\r\n },\r\n 'deactivate': {\r\n route: '/:id/Deactivate',\r\n method: 'DELETE'\r\n },\r\n 'addCharacter': {\r\n route: '/:id/AddCharacter',\r\n method: 'POST'\r\n },\r\n 'removeCharacter': {\r\n route: '/:id/RemoveCharacter',\r\n method: 'POST'\r\n },\r\n 'getEvents': {\r\n route: '/:id/Events?skip=:skip&take=:take',\r\n method: 'GET'\r\n }\r\n }\r\n})","import { HubConfig } from \"../../config/HubConfig\";\r\n\r\nconst adventureProdUri = \"https://800ac-account.azurewebsites.net/api/v1.0/Hubs/Adventure\";\r\n\r\nexport const AdventureHubConfig: HubConfig = Object.freeze({\r\n name: 'Adventure',\r\n endpoint: process.env.NODE_ENV === 'production'\r\n ? adventureProdUri\r\n : \"https://localhost:7018/api/v1.0/Hubs/Adventure\",\r\n retryTimeouts: [\r\n 3000,\r\n 5000,\r\n 10000,\r\n 15000,\r\n 30000\r\n ]\r\n});","\r\nimport { AccountApiConfig } from \"./AccountApiConfig\";\r\nimport { ApiConfig } from \"../../config/ApiConfig\";\r\n\r\nexport const CharactersApiConfig = new ApiConfig({\r\n ...AccountApiConfig,\r\n apiPath: '/api/v1.0/Characters',\r\n actions: {\r\n 'all': {\r\n route: '/',\r\n method: 'GET'\r\n },\r\n 'get': {\r\n route: '/:id',\r\n method: 'GET'\r\n },\r\n 'getByIds': {\r\n route: '/GetByIds',\r\n method: 'POST'\r\n },\r\n 'create': {\r\n route: '/Create',\r\n method: 'POST'\r\n },\r\n 'upload': {\r\n route: '/Upload',\r\n method: 'POST'\r\n },\r\n 'patch': {\r\n route: '/:id',\r\n method: 'PATCH'\r\n },\r\n 'delete': {\r\n route: '/:id',\r\n method: 'DELETE'\r\n },\r\n\r\n 'roll': {\r\n route: '/:id/Roll',\r\n method: 'POST'\r\n },\r\n 'declare': {\r\n route: '/:id/Declare/:handType',\r\n method: 'POST'\r\n },\r\n\r\n 'addCondition': {\r\n route: '/:id/Conditions',\r\n method: 'POST'\r\n },\r\n 'removeCondition': {\r\n route: '/:id/Conditions/:conditionId',\r\n method: 'DELETE'\r\n },\r\n\r\n 'updateSkill': {\r\n route: '/:id/Skills/:skillId',\r\n method: 'PATCH'\r\n },\r\n\r\n 'updateRhetoric': {\r\n route: '/:id/Rhetorics/:rhetoricId',\r\n method: 'PATCH'\r\n },\r\n 'updateRhetoricPriority': {\r\n route: '/:id/Rhetorics/:rhetoricId',\r\n method: 'POST'\r\n },\r\n\r\n 'addPersonality': {\r\n route: '/:id/Personalities',\r\n method: 'POST'\r\n },\r\n 'removePersonality': {\r\n route: '/:id/Personalities/:personalityId',\r\n method: 'DELETE'\r\n },\r\n \r\n 'addPerk': { \r\n route: '/:id/Perks',\r\n method: 'POST'\r\n },\r\n 'removePerk': {\r\n route: '/:id/Perks/:perkId',\r\n method: 'DELETE'\r\n },\r\n\r\n 'addMinion': {\r\n route: '/:id/Minions',\r\n method: 'POST'\r\n },\r\n 'updateMinion': {\r\n route: '/:id/Minions/:minionInstanceId',\r\n method: 'PATCH'\r\n },\r\n 'removeMinion': {\r\n route: '/:id/Minions/:minionInstanceId',\r\n method: 'DELETE'\r\n },\r\n\r\n 'addCompetency': {\r\n route: '/:id/Competencies/:competencyId',\r\n method: 'PUT'\r\n },\r\n 'addCompetencyCustom': {\r\n route: '/:id/Competencies/Custom',\r\n method: 'POST'\r\n },\r\n 'removeCompetency': {\r\n route: '/:id/Competencies/:competencyId',\r\n method: 'DELETE'\r\n },\r\n 'updateCompetency': {\r\n route: '/:id/Competencies/:competencyId',\r\n method: 'PATCH'\r\n },\r\n 'updateCompetencyCustom': {\r\n route: '/:id/Competencies/:competencyId',\r\n method: 'PATCH'\r\n },\r\n\r\n 'addItem': {\r\n route: '/:id/Items',\r\n method: 'POST'\r\n },\r\n 'addItemToContainer': {\r\n route: '/:id/Items?containerInstanceId=:containerInstanceId',\r\n method: 'POST'\r\n },\r\n 'addItemRange': {\r\n route: '/:id/Items/Range',\r\n method: 'POST'\r\n },\r\n 'addItemRangeToContainer': {\r\n route: '/:id/Items/Range?containerInstanceId=:containerInstanceId',\r\n method: 'POST'\r\n },\r\n 'updateItem': {\r\n route: '/:id/Items/:itemInstanceId',\r\n method: 'PATCH'\r\n },\r\n 'holdItem': {\r\n route: '/:id/Held',\r\n method: 'PUT'\r\n },\r\n 'wearItem': {\r\n route: '/:id/Worn',\r\n method: 'PUT'\r\n },\r\n 'moveToLoose': {\r\n route: '/:id/Loose',\r\n method: 'PUT'\r\n },\r\n 'removeItem': {\r\n route: '/:id/Items/:itemInstanceId',\r\n method: 'DELETE'\r\n },\r\n 'assignMod': {\r\n route: '/:id/Items/:itemInstanceId/Mods',\r\n method: 'POST'\r\n },\r\n 'assignBodyMod': {\r\n route: '/:id/Items/AssignBodyMod',\r\n method: 'POST'\r\n },\r\n 'addAndAssignMod': {\r\n route: '/:id/Items/:itemInstanceId/Mods/AddAndAssignMod',\r\n method: 'POST'\r\n },\r\n 'addAndAssignBodyMod': {\r\n route: '/:id/Items/AddAndAssignBodyMod',\r\n method: 'POST'\r\n },\r\n 'removeMod': {\r\n route: '/:id/Items/:itemInstanceId/Mods/:modInstanceId',\r\n method: 'DELETE'\r\n },\r\n 'removeBodyMod': {\r\n route: '/:id/Items/:modInstanceId/RemoveBodyMod',\r\n method: 'DELETE'\r\n },\r\n 'addSlots': {\r\n route: '/:id/Items/AddSlots',\r\n method: 'POST'\r\n },\r\n 'removeSlots': {\r\n route: '/:id/Items/RemoveSlots',\r\n method: 'POST'\r\n },\r\n }\r\n});","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { AccountApiConfig } from \"./AccountApiConfig\";\r\n\r\nexport const PlayerApiConfig = new ApiConfig({\r\n ...AccountApiConfig,\r\n apiPath: '/api/v1.0/Player',\r\n actions: {\r\n 'get': {\r\n route: '/',\r\n method: 'GET'\r\n },\r\n 'getByIds': {\r\n route: '/GetPlayersByIds',\r\n method: 'POST'\r\n },\r\n 'getByName': {\r\n route: '/{name}',\r\n method: 'GET'\r\n },\r\n 'setDisplayName': {\r\n route: '/SetDisplayName',\r\n method: 'POST'\r\n }\r\n }\r\n})","import { AdventureApiConfig } from \"./AdventureApiConfig\";\r\nimport { AdventureHubConfig } from \"./AdventureHubConfig\";\r\nimport { CharactersApiConfig } from \"./CharacterApiConfig\";\r\nimport { PlayerApiConfig } from \"./UserApiConfig\";\r\n\r\nexport const AccountApiServerConfig = Object.seal({\r\n AdventureApiConfig,\r\n AdventureHubConfig,\r\n CharactersApiConfig,\r\n PlayerApiConfig,\r\n});","import { ActionDice, ExtraDice, HandTypeValue } from \"../rolls/Roll\";\r\nimport { CommunalDice } from \"./Adventure\";\r\n\r\ntype AdventureEventBase = {\r\n id: string;\r\n adventureId: string;\r\n occurred: string;\r\n}\r\n\r\nexport type CommunalDiceRolledAdventureEvent = {\r\n type: 'CommunalDiceRolledAdventureEvent';\r\n communalDice: CommunalDice;\r\n} & AdventureEventBase;\r\n\r\nexport type CommunalDiceSetAdventureEvent = {\r\n type: 'CommunalDiceSetAdventureEvent';\r\n communalDice: CommunalDice;\r\n} & AdventureEventBase;\r\n\r\nexport type PlayerJoinedAdventureEvent = {\r\n type: 'PlayerJoinedAdventureEvent';\r\n playerId: string;\r\n} & AdventureEventBase;\r\n\r\nexport type PlayerLeftAdventureEvent = {\r\n type: 'PlayerLeftAdventureEvent';\r\n playerId: string;\r\n} & AdventureEventBase;\r\n\r\nexport type CharacterAddedAdventureEvent = {\r\n type: 'CharacterAddedAdventureEvent';\r\n playerId: string;\r\n characterId: string;\r\n} & AdventureEventBase;\r\n\r\nexport type CharacterRemovedAdventureEvent = {\r\n type: 'CharacterRemovedAdventureEvent';\r\n playerId: string;\r\n characterId: string;\r\n} & AdventureEventBase;\r\n\r\nexport type PlayerRolledAdventureEvent = {\r\n type: 'PlayerRolledAdventureEvent';\r\n playerId: string;\r\n characterId: string;\r\n actionDice: ActionDice;\r\n extraDice: ExtraDice;\r\n} & AdventureEventBase;\r\n\r\nexport type PlayerDeclaredHandAdventureEvent = {\r\n type: 'PlayerDeclaredHandAdventureEvent';\r\n playerId: string;\r\n characterId: string;\r\n handTypeValue: HandTypeValue;\r\n} & AdventureEventBase;\r\n\r\nexport type AdventureEvent = CommunalDiceRolledAdventureEvent\r\n | CommunalDiceSetAdventureEvent\r\n | PlayerJoinedAdventureEvent\r\n | PlayerLeftAdventureEvent\r\n | CharacterAddedAdventureEvent\r\n | CharacterRemovedAdventureEvent\r\n | PlayerRolledAdventureEvent\r\n | PlayerDeclaredHandAdventureEvent;\r\n\r\nconst isRollEvent = (event: AdventureEvent): boolean => {\r\n return event.type == 'CommunalDiceRolledAdventureEvent'\r\n || event.type == 'PlayerRolledAdventureEvent';\r\n}\r\n\r\nexport const ADVENTURE_EVENT_HELPERS = Object.freeze({\r\n isRollEvent\r\n})","import { NamedEntity } from \"../NamedEntity\";\r\nimport { IndexableType } from \"./IndexableType\";\r\n\r\nexport class SortedSet implements Iterable {\r\n public constructor(entities: T[] = [], keyGetter?: ((entity: T) => IndexableType)) {\r\n this.keyGetter = keyGetter || this.defaultKeyGetter;\r\n this.collection = [...entities].sort(this.keySort.bind(this));\r\n this.hashmap = this.collection.reduce((accum: Map, curr: T) => {\r\n const index = this.keyGetter(curr);\r\n accum.set(index, curr);\r\n return accum;\r\n }, new Map());\r\n }\r\n\r\n public static Copy(other: SortedSet): SortedSet {\r\n return new SortedSet(other.collection, other.keyGetter);\r\n }\r\n\r\n private defaultKeyGetter = (entity: T): IndexableType => {\r\n return entity.id;\r\n }\r\n\r\n public readonly collection: T[];\r\n private readonly keyGetter: (entity: T) => IndexableType;\r\n private readonly hashmap: Map;\r\n\r\n [Symbol.iterator]() {\r\n return this.collection[Symbol.iterator]();\r\n }\r\n\r\n public get count(): number {\r\n return this.collection.length;\r\n }\r\n\r\n public get any(): boolean {\r\n return this.count > 0;\r\n }\r\n\r\n private keySort(one: T, two: T): number {\r\n if (one.name > two.name) {\r\n return 1;\r\n }\r\n else if (one.name < two.name) {\r\n return -1;\r\n }\r\n return 0;\r\n }\r\n\r\n private search(name: string): number {\r\n let minIndex = 0;\r\n let maxIndex = this.collection.length - 1;\r\n let pivot: number;\r\n let check: T;\r\n\r\n while (minIndex <= maxIndex) {\r\n pivot = Math.floor((minIndex + maxIndex) * 0.5);\r\n check = this.collection[pivot];\r\n if (check.name < name) {\r\n minIndex = pivot + 1;\r\n }\r\n else if (check.name > name) {\r\n maxIndex = pivot - 1;\r\n }\r\n else {\r\n return pivot;\r\n }\r\n }\r\n return ~minIndex;\r\n }\r\n\r\n public containsKey(key: IndexableType): boolean {\r\n return this.hashmap.get(key) != undefined;\r\n }\r\n\r\n public contains(entity: T): boolean {\r\n const key = this.keyGetter(entity);\r\n return this.containsKey(key);\r\n }\r\n\r\n public removeByKey(key: IndexableType): T | undefined {\r\n const element = this.hashmap.get(key);\r\n if (element == null) {\r\n return;\r\n }\r\n this.hashmap.delete(key);\r\n let index = this.search(element.name);\r\n if (index > -1) {\r\n const check = this.collection[index];\r\n const checkKey = this.keyGetter(check);\r\n while (checkKey != this.keyGetter(element) && check.name == element.name) {\r\n index++;\r\n }\r\n this.collection.splice(index, 1);\r\n }\r\n return element;\r\n }\r\n\r\n public removeByKeys(...keys: IndexableType[]): T[] {\r\n const removed: T[] = [];\r\n for (const key of keys) {\r\n const result = this.removeByKey(key);\r\n if (result != undefined) {\r\n removed.push(result);\r\n }\r\n }\r\n return removed;\r\n }\r\n\r\n public remove(entity: T): T | undefined {\r\n const key = this.keyGetter(entity);\r\n return this.removeByKey(key);\r\n }\r\n\r\n public add(entity: T): boolean {\r\n const key = this.keyGetter(entity);\r\n if (this.containsKey(key)) {\r\n return false;\r\n }\r\n\r\n let index = this.search(entity.name);\r\n if (index >= 0) {\r\n console.error(\"Duplicate inserted into set.\");\r\n }\r\n this.collection.splice(~index, 0, entity);\r\n this.hashmap.set(key, entity);\r\n return true;\r\n }\r\n\r\n public addRange(...entities: T[]): void {\r\n for (const entity of entities) {\r\n if (entity != null) {\r\n this.add(entity);\r\n }\r\n }\r\n }\r\n\r\n public get(id: string | null | undefined, isT?: (x: any) => x is S): S | undefined {\r\n if (id == null) {\r\n return undefined;\r\n }\r\n \r\n const match = this.hashmap.get(id);\r\n if (isT != null && isT(match)) {\r\n return match;\r\n }\r\n if (isT != null && !isT(match)) {\r\n return undefined;\r\n }\r\n return match;\r\n }\r\n\r\n public getByName(name: string): T | undefined {\r\n const index = this.search(name);\r\n return this.collection[index];\r\n }\r\n\r\n public update(entity: T): void {\r\n const index = this.search(entity.name);\r\n this.collection[index] = entity;\r\n\r\n const key = this.keyGetter(entity);\r\n this.hashmap.set(key, entity);\r\n }\r\n\r\n public updateByKey(entity: T): void {\r\n const key = this.keyGetter(entity);\r\n this.removeByKey(key);\r\n this.add(entity);\r\n }\r\n\r\n public addOrUpdate(entity: T): void {\r\n if (this.contains(entity)) {\r\n this.update(entity);\r\n }\r\n else {\r\n this.add(entity);\r\n }\r\n }\r\n\r\n public addOrUpdateRange(...entities: T[]): void {\r\n for (const entity of entities) {\r\n this.addOrUpdate(entity);\r\n }\r\n }\r\n}","import { v4 } from 'uuid';\r\n\r\nexport const getUniqueIdentifier = (): string => {\r\n return v4();\r\n}","import { getUniqueIdentifier } from \"../../utils/GUID\";\r\nimport { ParseableAdventureEvent } from \"../adventures/AdventureEvent\";\r\n\r\nexport type ToastType = 'success' | 'info' | 'warning' | 'error';\r\nexport type ToastMessage = string | ParseableAdventureEvent;\r\n\r\nexport type Toast = {\r\n id: string;\r\n message: ToastMessage;\r\n type: ToastType;\r\n}\r\n\r\nexport abstract class ToastLegacy implements Toast {\r\n public constructor(\r\n public readonly message: ToastMessage,\r\n public readonly type: ToastType\r\n ) {\r\n this.id = getUniqueIdentifier();\r\n }\r\n\r\n public readonly id: string;\r\n}\r\n\r\nexport class SuccessToast extends ToastLegacy {\r\n public constructor(public readonly message: ToastMessage) {\r\n super(message, 'success');\r\n }\r\n}\r\n\r\nexport class InfoToast extends ToastLegacy {\r\n public constructor(public readonly message: ToastMessage) {\r\n super(message, 'info');\r\n }\r\n}\r\n\r\nexport class WarningToast extends ToastLegacy {\r\n public constructor(public readonly message: ToastMessage) {\r\n super(message, 'warning');\r\n }\r\n}\r\n\r\nexport class ErrorToast extends ToastLegacy {\r\n public constructor(public readonly message: ToastMessage) {\r\n super(message, 'error');\r\n }\r\n}\r\n\r\nconst messageIsString = (message: ToastMessage): message is string => {\r\n return typeof message == \"string\";\r\n}\r\n\r\nconst messageIsAdventureEvent = (message: ToastMessage): message is ParseableAdventureEvent => {\r\n return typeof message != \"string\";\r\n}\r\n\r\nexport const TOAST_HELPERS = Object.freeze({\r\n messageIsString,\r\n messageIsAdventureEvent,\r\n})","export const ToastConfig = {\r\n QuickDuration: 1000,\r\n ToastDuration: 5000\r\n}","export type TimeoutType = NodeJS.Timeout | number | undefined;\r\n\r\nconst delay = async (milliseconds: number) => new Promise(resolve => setTimeout(resolve, milliseconds));\r\n\r\nexport const TIMING_UTILITIES = Object.freeze({\r\n delay\r\n});","import { ValidationMessage } from \"../../../apis/ValidationMessage\";\r\nimport { ToastConfig } from \"../../../config/ToastConfig\";\r\nimport { ErrorToast, InfoToast, SuccessToast, ToastLegacy, ToastMessage, ToastType, WarningToast } from \"../../../entities/toasts/Toasts\";\r\nimport { getUniqueIdentifier } from \"../../../utils/GUID\";\r\nimport { TIMING_UTILITIES } from \"../../../utils/TimingUtilities\";\r\nimport { AppThunkAction } from \"../ApplicationState\";\r\n\r\nexport type ToastPush = { type: 'TOAST_PUSH', id: string, message: ToastMessage, toastType: ToastType }\r\nexport type ToastPushLegacy = { type: 'TOAST_PUSH_LEGACY', toast: ToastLegacy };\r\nexport type ToastPushRange = { type: 'TOAST_PUSH_RANGE', toasts: ToastLegacy[] };\r\nexport type ToastDismiss = { type: 'TOAST_DISMISS', id: string }\r\nexport type ToastAction = ToastPush\r\n | ToastPushLegacy\r\n | ToastPushRange\r\n | ToastDismiss;\r\n\r\nexport const ToastActions = {\r\n toastSuccess: (message: ToastMessage, duration: number = ToastConfig.ToastDuration): AppThunkAction =>\r\n (dispatch) => ToastDispatchables.toastLegacy(new SuccessToast(message), dispatch, duration),\r\n\r\n toastInfo: (message: ToastMessage, duration: number = ToastConfig.ToastDuration): AppThunkAction =>\r\n (dispatch) => ToastDispatchables.toastLegacy(new InfoToast(message), dispatch, duration),\r\n\r\n toastWarning: (message: ToastMessage, duration: number = ToastConfig.ToastDuration): AppThunkAction =>\r\n (dispatch) => ToastDispatchables.toastLegacy(new WarningToast(message), dispatch, duration),\r\n\r\n toastError: (message: ToastMessage, duration: number = ToastConfig.ToastDuration): AppThunkAction =>\r\n (dispatch) => ToastDispatchables.toastLegacy(new ErrorToast(message), dispatch, duration),\r\n\r\n dismissToast: (id: string): AppThunkAction =>\r\n (dispatch) => dispatch({ type: 'TOAST_DISMISS', id }),\r\n}\r\n\r\ntype ToastDispatchable = (action: ToastAction) => void;\r\n\r\nconst toast = async (dispatch: ToastDispatchable, message: ToastMessage, toastType: ToastType, duration: number = ToastConfig.ToastDuration): Promise => {\r\n const id = getUniqueIdentifier();\r\n dispatch({ type: 'TOAST_PUSH', id, message, toastType });\r\n await TIMING_UTILITIES.delay(duration);\r\n dispatch({ type: 'TOAST_DISMISS', id })\r\n};\r\n\r\nexport const ToastDispatchables = {\r\n toastSuccess: async (dispatch: ToastDispatchable, message: ToastMessage, duration: number = ToastConfig.ToastDuration): Promise =>\r\n toast(dispatch, message, 'success', duration),\r\n \r\n toastError: async (dispatch: ToastDispatchable, message: ToastMessage, duration: number = ToastConfig.ToastDuration): Promise =>\r\n toast(dispatch, message, 'error', duration),\r\n \r\n toastWarning: async (dispatch: ToastDispatchable, message: ToastMessage, duration: number = ToastConfig.ToastDuration): Promise =>\r\n toast(dispatch, message, 'warning', duration),\r\n\r\n toastInfo: async (dispatch: ToastDispatchable, message: ToastMessage, duration: number = ToastConfig.ToastDuration): Promise =>\r\n toast(dispatch, message, 'info', duration),\r\n\r\n toastLegacy: async (toast: ToastLegacy, dispatch: ToastDispatchable, duration: number = ToastConfig.ToastDuration): Promise => {\r\n dispatch({ type: 'TOAST_PUSH_LEGACY', toast });\r\n await TIMING_UTILITIES.delay(duration);\r\n dispatch({ type: 'TOAST_DISMISS', id: toast.id });\r\n },\r\n\r\n toastValidationResults: (validationResults: ValidationMessage[], dispatch: ToastDispatchable, duration: number = ToastConfig.ToastDuration): void => {\r\n for (let validationResult of validationResults) {\r\n ToastDispatchables.toastError(dispatch, validationResult.message, duration);\r\n }\r\n }\r\n}","export const AuthConfig = {\r\n domain: 'dev-u78cwas5.us.auth0.com',\r\n clientId: 'bV0wAKzHXMYGSx4kB4RNEqS8UpdGVp2i'\r\n}\r\n\r\nexport enum AuthorizedRoles {\r\n CharacterCreate = 'create:character',\r\n CharacterUpdate = 'update:character',\r\n CharacterDelete = 'delete:character',\r\n LibraryRead = 'read:library',\r\n LibraryCreate = 'create:library',\r\n LibraryUpdate = 'update:library',\r\n LibraryDelete = 'delete:library'\r\n}","\r\n\r\nexport const UniversalActions = {\r\n navToError: (dispatch: (action: any) => void) => {\r\n throw \"Not Implemented\"\r\n }\r\n}","import { ValidationMessage } from \"../ValidationMessage\";\r\n\r\nexport type ApiResponse = SuccessApiResponse | ErrorApiResponse;\r\n\r\nexport class SuccessApiResponse {\r\n public constructor(payload: TPayload) {\r\n this.payload = payload;\r\n }\r\n\r\n public readonly status = 'Success';\r\n public readonly payload: TPayload;\r\n public readonly validationResults: ValidationMessage[] | undefined = undefined;\r\n}\r\n\r\nexport class ErrorApiResponse {\r\n public constructor(validationResults: ValidationMessage[]) {\r\n if (!validationResults.any()) {\r\n throw new Error('Attempted to generate an error response without validation messages.');\r\n }\r\n this.validationResults = validationResults;\r\n }\r\n\r\n public readonly status = 'Error';\r\n public readonly payload: TPayload | undefined = undefined;\r\n public readonly validationResults: ValidationMessage[];\r\n}","import { Auth0Client, createAuth0Client } from \"@auth0/auth0-spa-js\";\r\nimport { AuthConfig } from \"../config/AuthConfig\";\r\n\r\nexport abstract class AuthorizedWebService {\r\n protected abstract get audience(): string;\r\n\r\n private async getClient(): Promise {\r\n return await createAuth0Client({\r\n domain: AuthConfig.domain,\r\n clientId: AuthConfig.clientId\r\n });\r\n }\r\n\r\n protected async getToken(...permissions: string[]): Promise {\r\n const client = await this.getClient();\r\n return await client.getTokenSilently({\r\n authorizationParams: {\r\n audience: this.audience,\r\n scope: permissions.join(' ')\r\n }\r\n });\r\n }\r\n}","export enum StatusCodes {\r\n NoContent = 204,\r\n ServerError = 500\r\n}","import React from \"react\";\r\nimport { getUniqueIdentifier } from '../utils/GUID';\r\n\r\nexport type ValidationResult = ValidationMessage | null;\r\n\r\nconst isValidationMessage = (result: ValidationResult): result is ValidationMessage => {\r\n return result != null;\r\n}\r\n\r\nexport class ValidationMessage {\r\n public constructor(\r\n public readonly message: string,\r\n public readonly breaking: boolean = true\r\n ) {\r\n this.id = getUniqueIdentifier();\r\n }\r\n\r\n public readonly id: string;\r\n\r\n public static Create(message: string, breaking: boolean = true) {\r\n return new ValidationMessage(message, breaking);\r\n }\r\n\r\n public static TopValidationMessage(messages: ValidationMessage[]): string | null {\r\n return messages.length > 0\r\n ? messages[0].message\r\n : null;\r\n }\r\n \r\n public static HasNoBreakingValidation(messages: ValidationResult[]): boolean {\r\n return !messages\r\n .filter(isValidationMessage)\r\n .any(message => message.breaking);\r\n }\r\n\r\n public static Trim(messages: ValidationResult[]): ValidationMessage[] {\r\n return messages\r\n .filter(isValidationMessage)\r\n .sort((m1, m2) => m1.sortOrder - m2.sortOrder);\r\n }\r\n\r\n public static Condense(messages: ValidationResult[], prefix?: string): JSX.Element {\r\n const fullPrefix = prefix != null && prefix != ''\r\n ? <>{prefix}
\r\n : <>;\r\n const groupedMessages = messages\r\n .filter(isValidationMessage)\r\n .map(message =>
  • {message.message}
  • );\r\n \r\n if (messages.length > 1) {\r\n return <>{fullPrefix}
      {groupedMessages}
    ;\r\n }\r\n else {\r\n return <>{fullPrefix}{groupedMessages};\r\n }\r\n }\r\n\r\n /**\r\n * Breaking changes are prioritized over non-breaking results.\r\n */\r\n public get sortOrder(): number {\r\n return this.breaking ? 0 : 1;\r\n }\r\n}","\r\nimport { AuthorizedWebService } from \"./AuthorizedWebService\";\r\nimport { ApiResponse, SuccessApiResponse, ErrorApiResponse } from \"./responses/ApiResponse\";\r\nimport { isErrorResponse } from \"./responses/ErrorResponse\";\r\nimport { StatusCodes } from \"./StatusCodes\";\r\nimport { ValidationMessage } from \"./ValidationMessage\";\r\n\r\nexport abstract class BaseApi extends AuthorizedWebService {\r\n public constructor(config: TConfig) {\r\n super();\r\n this.config = config;\r\n }\r\n protected readonly config: TConfig;\r\n\r\n protected async generateResponse(response: Response, defaultPayload?: TPayload): Promise> {\r\n if (response.status == StatusCodes.NoContent) {\r\n defaultPayload = defaultPayload ?? {} as TPayload;\r\n return new SuccessApiResponse(defaultPayload);\r\n }\r\n const result = await response.json();\r\n if (!response.ok) {\r\n return this.createValidationResultResponse(result);\r\n }\r\n return new SuccessApiResponse(result);\r\n }\r\n\r\n protected createValidationResultResponse(result: unknown): ApiResponse {\r\n if (!isErrorResponse(result)) {\r\n console.error(\"Received an unknown error reply:\");\r\n console.error(result);\r\n throw new Error(\"Received an unknown error reply.\");\r\n }\r\n const validationMessages = result.errors.map(error => new ValidationMessage(error));\r\n return new ErrorApiResponse(validationMessages);\r\n }\r\n\r\n protected isServerError(response: Response): boolean {\r\n return !response.ok && response.status == StatusCodes.ServerError;\r\n }\r\n\r\n protected validateServerError(response: Response, onErrorMessage: string): void {\r\n if (this.isServerError(response)) {\r\n throw new Error(onErrorMessage);\r\n }\r\n }\r\n \r\n protected createDefaultRequestDetails(token: string | undefined = undefined) {\r\n return {\r\n headers: new Headers({\r\n ...(token != undefined && { 'Authorization': `Bearer ${token}` }),\r\n 'Content-Type': 'application/json'\r\n })\r\n }\r\n }\r\n}","export type ErrorResponse = {\r\n errors: string[];\r\n}\r\n\r\nexport function isErrorResponse(result: any): result is ErrorResponse {\r\n if (result?.errors == null) {\r\n return false;\r\n }\r\n return Array.isArray(result.errors);\r\n}","import { BaseApi } from \"../Api.Base\";\r\nimport { AccountApiConfig } from \"./config/AccountApiConfig\";\r\n\r\nexport abstract class AccountApi extends BaseApi {\r\n protected get audience(): string {\r\n return AccountApiConfig.audience;\r\n }\r\n}","export type Comparator = \">\" | \"<\" | \">=\" | \"<=\" | \"==\" | \"!=\";\r\n\r\nexport type SnakeToCamel = T extends `${infer ONE}_${infer TWO}`\r\n ? `${ONE}${Capitalize>}`\r\n : Lowercase;\r\n\r\nexport type CamelToSnake = T extends `${infer ONE}${infer TWO}`\r\n ? `${ONE extends Uppercase ? `_${Lowercase}` : Lowercase}${CamelToSnake}`\r\n : Lowercase;\r\n\r\nexport type PascalToCamel = T extends `${infer ONE}${infer TWO}`\r\n ? `${Lowercase}${TWO}`\r\n : Lowercase;\r\n\r\nexport type CamelToPascal = T extends `${infer ONE}${infer TWO}`\r\n ? `${Capitalize}${TWO}`\r\n : Capitalize;\r\n\r\nexport type PascalToSnake = CamelToSnake>;\r\nexport type SnakeToPascal = CamelToPascal>;\r\n\r\nexport function isComparator(test: string): test is Comparator {\r\n return test == \">\"\r\n || test == \"<\"\r\n || test == \">=\"\r\n || test == \"<=\"\r\n || test == \"==\"\r\n || test == \"!=\";\r\n}\r\n\r\nexport const RestrictNumber = (value: number, min: number, max: number) => {\r\n const boundedByUpper = Math.min(value, max);\r\n return Math.max(min, boundedByUpper);\r\n}\r\n\r\nexport const MaxSafeCSharpInt = 2147483647;\r\n\r\nexport type Tuple = A['length'] extends N ? A : Tuple;\r\n\r\nexport type ArrayElement = TA extends readonly (infer TE)[] ? TE : never;","import * as JsonPatch from 'fast-json-patch';\r\nimport { Adventure, CommunalDice, CreateAdventureRequest } from \"../../entities/adventures/Adventure\";\r\nimport { ApiResponse, SuccessApiResponse } from \"../responses/ApiResponse\";\r\nimport { AccountApi } from \"./Api.Account\";\r\nimport { AccountApiServerConfig } from \"./config/AccountApiServerConfig\";\r\nimport { DieFace } from '../../entities/rolls/Roll';\r\nimport { AdventureEvent } from '../../entities/adventures/AdventureEvent';\r\nimport { MaxSafeCSharpInt } from '../../entities/Utilities';\r\n\r\nexport class AdventureApi extends AccountApi {\r\n /**\r\n * Gets a adventure.\r\n * @param adventureId The adventure's unique id.\r\n * @returns An api response with the requested adventure.\r\n */\r\n public async getAdventure(adventureId: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('get', { name: ':id', value: adventureId });\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving adventure.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Gets all adventures for a user.\r\n * @param includeInactive If true, inactive adventures will be included in the request.\r\n * @returns An api response with all the user's adventures.\r\n */\r\n public async getUserAdventures(includeInactive: boolean = false): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('userAdventures', { name: ':includeInactive', value: includeInactive });\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving user adventures.');\r\n }\r\n return this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Creates a new adventure.\r\n * @returns The newly created adventure.\r\n */\r\n public async createAdventure(request: CreateAdventureRequest): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('create');\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(request)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while creating adventure.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Detects the difference between two version of a adventure and submits a patch request with those changes.\r\n * @param oldVersion The old version of the adventure. \r\n * @param newVersion The new version of the adventure.\r\n * @returns An updated version of the adventure.\r\n */\r\n public async update(oldVersion: Adventure, newVersion: Adventure): Promise> {\r\n const operations = JsonPatch.compare(oldVersion, newVersion);\r\n if (!operations.any()) {\r\n return new SuccessApiResponse(oldVersion);\r\n }\r\n\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('update', { name: ':id', value: oldVersion.id });\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(operations)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while updating adventure.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Resets the invitation id for this adventure.\r\n * @param adventureId The adventure's unique id.\r\n * @returns The updated invitation id.\r\n */\r\n public async resetInvite(adventureId: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('resetInvite', { name: ':id', value: adventureId });\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while reseting invite link.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Joins an adventure.\r\n * @param connectionId The adventure connection id used by this instance.\r\n * @param inviteId The adventure's unique invitation id.\r\n * @returns The adventure's unique id.\r\n */\r\n public async join(connectionId: string | null, inviteId: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('joinAdventure', { name: ':inviteId', value: inviteId });\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify({connectionId})\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error joining adventure.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Leaves an adventure.\r\n * @param connectionId The adventure connection id used by this instance.\r\n * @param id The adventure's unique identifier.\r\n */\r\n public async leave(connectionId: string | null, id: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('leaveAdventure', { name: ':id', value: id });\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify({connectionId})\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error leaving adventure.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Deactivates an adventure.\r\n * @param id The adventure's unique identifier.\r\n */\r\n public async deactivate(id: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('deactivate', { name: ':id', value: id });\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error deactivating adventure.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Adds a character to an adventure.\r\n * @param connectionId The adventure connection id used by this instance.\r\n * @param id The adventure's unique identifier.\r\n * @param characterId The character's unique identifier.\r\n */\r\n public async addCharacterToAdventure(connectionId: string | null, id: string, characterId: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('addCharacter', { name: ':id', value: id });\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify({ connectionId, payload: characterId })\r\n });\r\n\r\n if (this.isServerError(response)){ \r\n throw new Error('Server error adding character to adventure.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Removes a character from an adventure.\r\n * @param connectionId The adventure connection id used by this instance.\r\n * @param id The adventure's unique identifier.\r\n * @param characterId The character's unique identifier.\r\n */\r\n public async removeCharacterFromAdventure(connectionId: string | null, id: string, characterId: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('removeCharacter', { name: ':id', value: id });\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify({ connectionId, payload: characterId })\r\n });\r\n\r\n if (this.isServerError(response)){ \r\n throw new Error('Server error removing character from adventure.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves all events for a given adventure. \r\n * @param id \r\n * @param skip The number of records to skip\r\n * @param take The maximum number of records to retrieve. Defaults to all records.\r\n * @returns Events in the adventure ignoring the first @param skip records and numbering no more than @param take records.\r\n */\r\n public async getAdventureEvents(id: string, skip: number = 0, take: number = MaxSafeCSharpInt): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('getEvents', { name: ':id', value: id }, { name: ':skip', value: skip }, { name: ':take', value: take });\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error retrieving adventure events.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import * as JsonPatch from 'fast-json-patch';\r\nimport { AccountApi } from \"./Api.Account\";\r\nimport { CharacterInitializer, CreateCharacterRequest } from \"../../entities/characters/Character\";\r\nimport { AccountApiServerConfig } from \"./config/AccountApiServerConfig\";\r\nimport { AuthorizedRoles } from '../../config/AuthConfig';\r\nimport { RhetoricPriority } from '../../entities/library/socials/Rhetoric';\r\nimport { StatusCodes } from '../StatusCodes';\r\nimport { ApiResponse, SuccessApiResponse } from '../responses/ApiResponse';\r\nimport { AddItemSlotsRequest } from '../requests/AddItemSlotsRequest';\r\nimport { UpdateIdResponse } from '../responses/UpdateIdResponse';\r\nimport { OwnedCompetencyReference, OwnedItemReference, OwnedMinionReference, OwnedModReference, OwnedRhetoricReference, OwnedSkillReference } from '../../entities/Ownership';\r\nimport { CustomCompetencyInitializer, CompetencyInitializer } from '../../entities/characters/Competencies';\r\nimport { HandTypeValue, RollRequest, RollResponse } from '../../entities/rolls/Roll';\r\nimport { ModInitializer } from '../../entities/library/items/ItemInitializers';\r\n\r\nexport class CharacterApi extends AccountApi {\r\n /**\r\n * Gets all characters for a player.\r\n * @returns An API response with the character, if it exists.\r\n */\r\n public async getAllCharacters(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('all');\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving characters.');\r\n }\r\n return this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Gets a character with the requested id.\r\n * @param id The character's id\r\n * @returns An API response with the requested character, if it exists.\r\n */\r\n public async getCharacter(id: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('get', { name: ':id', value: id });\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while creating character.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Gets characters by their unique ids.\r\n * @param ids The characters' unique ids.\r\n * @returns The characters with those unique ids.\r\n */\r\n public async getCharactersByIds(ids: string[]): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('getByIds');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method,\r\n body: JSON.stringify(ids)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving characters.');\r\n }\r\n return this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Creates a new character for the player.\r\n * @returns An API response with the newly created character's id.\r\n */\r\n public async createNewCharacter(request: CreateCharacterRequest): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('create');\r\n const token = await this.getToken(AuthorizedRoles.CharacterCreate);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(request)\r\n });\r\n \r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while creating character.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Detects the difference between two versions of a character and submits a patch request with those changes.\r\n * @param oldVersion The old version of the character.\r\n * @param newVersion The new version of the character.\r\n * @returns An updated version of the character.\r\n */\r\n public async patchCharacter(oldVersion: CharacterInitializer, newVersion: CharacterInitializer): Promise> {\r\n const operations = JsonPatch.compare(oldVersion, newVersion);\r\n if (!operations.any()) {\r\n return new SuccessApiResponse(oldVersion);\r\n }\r\n\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('patch', { name: ':id', value: oldVersion.id });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(operations)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while patching character.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Deletes a character.\r\n * @param id The character's unique identifier.\r\n * @returns An API response indicating success or failure.\r\n */\r\n public async deleteCharacter(id: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('delete', { name: ':id', value: id });\r\n const token = await this.getToken(AuthorizedRoles.CharacterDelete);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error(\"Server error while deleting character.\");\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * Rolls dice for a character\r\n * @param characterId The character's unique identifier.\r\n * @param request A request with roll submissions, if any.\r\n * @returns The resulting dice.\r\n */\r\n public async roll(connectionId: string | null, characterId: string, request?: RollRequest): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('roll', { name: ':id', value: characterId });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify({connectionId, payload: request})\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error(\"Server error while rolling dice.\");\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n \r\n /**\r\n * Declares a hand \r\n * @param connectionId \r\n * @param characterId \r\n */\r\n public async declareHand(characterId: string, handType: HandTypeValue): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('declare', { name: ':id', value: characterId }, { name: ':handType', value: handType });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error(\"Server error while declaring hand.\");\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n \r\n /**\r\n * Adds a condition to a character.\r\n * @param characterId The character's unique id.\r\n * @param conditionId The condition's unique id.\r\n */\r\n public async addCondition(characterId: string, conditionId: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('addCondition', { name: ':id', value: characterId });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(conditionId)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while adding condition.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Removes a condition from a character.\r\n * @param characterId The character's unique id.\r\n * @param conditionId The condition's unique id.\r\n */\r\n public async removeCondition(characterId: string, conditionId: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('removeCondition',\r\n { name: ':id', value: characterId },\r\n { name: ':conditionId', value: conditionId });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while removing condition.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Adds a competency to a character.\r\n * @param characterId The character's unique id.\r\n * @param competencyId The competency's unique id.\r\n * @returns \r\n */\r\n public async addCompetency(characterId: string, competencyId: string): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('addCompetency',\r\n { name: ':id', value: characterId },\r\n { name: ':competencyId', value: competencyId });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(competencyId)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while adding competency.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Adds a custom competency to a character.\r\n * @param characterId \r\n * @param competency \r\n * @returns \r\n */\r\n public async addCustomCompetency(characterId: string, competency: CustomCompetencyInitializer): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('addCompetencyCustom',\r\n { name: ':id', value: characterId },\r\n { name: ':competencyId', value: competency.id });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(competency)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error(\"Server error while adding custom competency.\");\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Removes a competency from a character.\r\n * @param characterId The character's unique id.\r\n * @param competencyId The competency's unique id.\r\n * @returns \r\n */\r\n public async removeCompetency(characterId: string, competencyId: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('removeCompetency',\r\n { name: ':id', value: characterId },\r\n { name: ':competencyId', value: competencyId });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while removing competency.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Updates a competency.\r\n * @param characterId The character's unique id.\r\n * @param oldVersion The old version of the competency.\r\n * @param newVersion The updated version of the competency.\r\n */\r\n public async updateCompetency(characterId: string, oldVersion: OwnedCompetencyReference, newVersion: OwnedCompetencyReference): Promise> {\r\n const operations = JsonPatch.compare(oldVersion, newVersion);\r\n if (!operations.any()) {\r\n return new SuccessApiResponse(undefined);\r\n }\r\n\r\n const { uri, method } = this.config.getUriAndMethod('updateCompetency',\r\n { name: ':id', value: characterId },\r\n { name: ':competencyId', value: oldVersion.id });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(operations)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while updating competency.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Updates a custom competency.\r\n * @param characterId The character's unique id.\r\n * @param oldVersion The old version of the competency.\r\n * @param newVersion The updated version of the competency.\r\n */\r\n public async updateCustomCompetency(characterId: string, oldVersion: CustomCompetencyInitializer, newVersion: CustomCompetencyInitializer): Promise> {\r\n const operations = JsonPatch.compare(oldVersion, newVersion);\r\n if (!operations.any()) {\r\n return new SuccessApiResponse(undefined);\r\n }\r\n\r\n const { uri, method } = this.config.getUriAndMethod('updateCompetencyCustom', \r\n { name: ':id', value: characterId },\r\n { name: ':competencyId', value: oldVersion.id });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(operations)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error(\"Server error while updating custom competency.\");\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Updates a character's skill value.\r\n * @param characterId The character's unique id.\r\n * @param oldVersion The old version of the skill.\r\n * @param newVersion The updated version of the skill.\r\n * @returns \r\n */\r\n public async updateSkill(characterId: string, oldVersion: OwnedSkillReference, newVersion: OwnedSkillReference): Promise> {\r\n const operations = JsonPatch.compare(oldVersion, newVersion);\r\n if (!operations.any()) {\r\n //Only way to pass void as a parameter.\r\n return new SuccessApiResponse(undefined);\r\n }\r\n\r\n const { uri, method } = this.config.getUriAndMethod('updateSkill',\r\n { name: ':id', value: characterId },\r\n { name: ':skillId', value: oldVersion.id }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(operations)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error patching character skill.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Updates a character's rhetoric value.\r\n * @param characterId The character's unique id.\r\n * @param oldVersion The old version of the rhetoric.\r\n * @param newVersion The updated version of the rhetoric.\r\n */\r\n public async updateRhetoric(characterId: string, oldVersion: OwnedRhetoricReference, newVersion: OwnedRhetoricReference): Promise> {\r\n const operations = JsonPatch.compare(oldVersion, newVersion);\r\n if (!operations.any()) {\r\n //Only way to pass void as a parameter.\r\n return new SuccessApiResponse(undefined);\r\n }\r\n\r\n const { uri, method } = this.config.getUriAndMethod('updateRhetoric',\r\n { name: ':id', value: characterId },\r\n { name: ':rhetoricId', value: oldVersion.id }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(operations)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error patching character rhetoric.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Updates a rhetoric's priority.\r\n * @param characterId The character's unique id.\r\n * @param rhetoricId The rhetoric's unique id.\r\n * @param priority The rhetoric's new priority.\r\n */\r\n public async updateRhetoricPriority(characterId: string, rhetoricId: string, priority: RhetoricPriority): Promise> {\r\n const {uri, method} = this.config.getUriAndMethod(\"updateRhetoricPriority\",\r\n { name: ':id', value: characterId },\r\n { name: ':rhetoricId', value: rhetoricId } \r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(priority)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error adjusting rhetoric priority.')\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Adds a perk to a character.\r\n * @param characterId The unique id of the character.\r\n * @param perkId The unique id of the perk to add.\r\n * @returns The unique instance id of the created perk.\r\n */\r\n public async addPerk(characterId: string, perkId: string): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('addPerk', {\r\n name: ':id',\r\n value: characterId\r\n });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(perkId)\r\n });\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while adding perk.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Removes a perk from a character.\r\n * @param characterId The unique id of the character.\r\n * @param perkId The unique instance id of the perk to remove.\r\n */\r\n public async removePerk(characterId: string, perkId: string): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('removePerk',\r\n { name: ':id', value: characterId },\r\n { name: ':perkId', value: perkId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while removing perk.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Adds a personality to a character.\r\n * @param characterId The unique id of the character.\r\n * @param personalityId The unqiue id of the personality.\r\n * @returns The newly created personality's instance id.\r\n */\r\n public async addPersonality(characterId: string, personalityId: string): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('addPersonality', { name: ':id', value: characterId });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(personalityId)\r\n });\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while adding personality.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Removes a personality from a character.\r\n * @param characterId The unique id of the character.\r\n * @param personalityId The unique id of the personality to remove.\r\n * @returns \r\n */\r\n public async removePersonality(characterId: string, personalityId: string): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('removePersonality',\r\n { name: ':id', value: characterId },\r\n { name: ':personalityId', value: personalityId}\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while removing personality.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n \r\n /**\r\n * Adds an item to a character's inventory.\r\n * @param characterId The unique id of the character.\r\n * @param itemId The unique id of the item to add.\r\n * the item to, if applicable.\r\n * @returns The unique instance id of the created item.\r\n */\r\n public async addItem(characterId: string, itemId: string): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('addItem', { name: ':id', value: characterId });\r\n\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(itemId)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error(`Server error while adding item to inventory.`);\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Adds a collection of items to a character's inventory.\r\n * @param characterId The unique id of the character.\r\n * @param itemIds The unique ids of the items to add.\r\n * @returns An updated character initializer with the items where they were added.\r\n */\r\n public async addItemRange(characterId: string, itemIds: string[]): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('addItemRange', { name: ':id', value: characterId });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(itemIds)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error(`Server error while adding items to inventory.`);\r\n }\r\n if (response.status == StatusCodes.NoContent) {\r\n return new SuccessApiResponse(null);\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Updates an item in a character's inventory.\r\n * @param characterId The unique id of the character.\r\n * @param itemInstanceId The unique instance id of the item to update.\r\n */\r\n public async updateItem(characterId: string, oldVersion: OwnedItemReference, newVersion: OwnedItemReference): Promise> {\r\n const operations = JsonPatch.compare(oldVersion, newVersion);\r\n if (!operations.any()) {\r\n //Only way to pass void as a parameter.\r\n return new SuccessApiResponse(undefined);\r\n }\r\n\r\n const { uri, method } = this.config.getUriAndMethod('updateItem',\r\n { name: ':id', value: characterId },\r\n { name: ':itemInstanceId', value: oldVersion.instanceId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(operations)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while updating item.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Holds an item.\r\n * @param characterId The unique id of the character.\r\n * @param itemInstanceId The item's unique instance id.\r\n * @param replacementInstanceIds The unique item instance ids to be replaced.\r\n */\r\n public async holdItem(characterId: string, itemInstanceId: string, replacementInstanceIds: string[] = []): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('holdItem', { name: ':id', value: characterId });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify({ itemInstanceId, replacementInstanceIds })\r\n });\r\n\r\n this.validateServerError(response, 'Server error while trying to hold item.');\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Wears an item.\r\n * @param characterId The unique id of the character.\r\n * @param itemInstanceId The item's unique instance id.\r\n * @param replacementInstanceIds The unique item instance ids to be replaced.\r\n */\r\n public async wearItem(characterId: string, itemInstanceId: string, replacementInstanceIds: string[] = []): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('wearItem', { name: ':id', value: characterId });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify({ itemInstanceId, replacementInstanceIds })\r\n });\r\n\r\n this.validateServerError(response, 'Server error while trying to wear item.');\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Moves an item to a character's loose item collection.\r\n * @param characterId The unique id of the character.\r\n * @param itemInstanceId The item's unique instance id.\r\n */\r\n public async moveToLoose(characterId: string, itemInstanceId: string): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('moveToLoose', { name: ':id', value: characterId });\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(itemInstanceId)\r\n });\r\n\r\n this.validateServerError(response, 'Server error moving item to loose items.');\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Removes an item from the character's inventory.\r\n * @param characterId The unique id of the character.\r\n * @param itemInstanceId The item's unique instance id.\r\n */\r\n public async removeItem(characterId: string, itemInstanceId: string): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('removeItem',\r\n { name: ':id', value: characterId },\r\n { name: ':itemInstanceId', value: itemInstanceId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while removing item.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Modifies an item in a character's inventory.\r\n * @param characterId The unique id of the character.\r\n * @param itemInstanceId The unique instance id of the item to modify.\r\n * @param mod The mod to assign to the item.\r\n */\r\n public async assignMod(characterId: string, itemInstanceId: string, mod: OwnedModReference): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('assignMod',\r\n { name: ':id', value: characterId },\r\n { name: ':itemInstanceId', value: itemInstanceId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(mod)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while assigning mod.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Modifies an item in a character's inventory.\r\n * @param characterId The unique id of the character.\r\n * @param mod The mod to assign to the item.\r\n */\r\n public async assignBodyMod(characterId: string, mod: OwnedModReference): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('assignBodyMod',\r\n { name: ':id', value: characterId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(mod)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while assigning body mod.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Adds a new mod to an item and assigns it to the requested slot.\r\n * @param characterId The unique id of the character.\r\n * @param itemInstanceId The unique instance id of the item to modify.\r\n * @param modReference The mod initializer to have the new mod match.\r\n */\r\n public async addAndAssignMod(characterId: string, itemInstanceId: string, modReference: OwnedModReference): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('addAndAssignMod',\r\n { name: ':id', value: characterId },\r\n { name: ':itemInstanceId', value: itemInstanceId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(modReference)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while adding and assigning mod.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Adds a new mod to an item and assigns it to the requested slot.\r\n * @param characterId The unique id of the character.\r\n * @param modReference The mod initializer to have the new mod match.\r\n */\r\n public async addAndAssignBodyMod(characterId: string, modReference: OwnedModReference): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('addAndAssignBodyMod',\r\n { name: ':id', value: characterId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(modReference)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while adding and assigning body mod.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Removes a mod from an item.\r\n * @param characterId \r\n * @param itemInstanceId \r\n * @param modInstanceId \r\n */\r\n public async removeMod(characterId: string, itemInstanceId: string, modInstanceId: string): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('removeMod',\r\n { name: ':id', value: characterId },\r\n { name: ':itemInstanceId', value: itemInstanceId },\r\n { name: ':modInstanceId', value: modInstanceId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while removing mod.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n \r\n /**\r\n * Removes a body mod from a character.\r\n * @param characterId \r\n * @param modInstanceId \r\n */\r\n public async removeBodyMod(characterId: string, modInstanceId: string): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('removeBodyMod',\r\n { name: ':id', value: characterId },\r\n { name: ':modInstanceId', value: modInstanceId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while removing body mod.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Adds a custom mod slot to an item.\r\n * @param characterId \r\n * @param itemInstanceIds \r\n * @param slots The mod slot to add.\r\n * @returns The unique id of the newly added mod slot.\r\n */\r\n public async addSlots(characterId: string, requests: AddItemSlotsRequest[]): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('addSlots',\r\n { name: ':id', value: characterId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(requests)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while adding slot.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Removes a custom mod slot from an item.\r\n * @param characterId\r\n * @param slotIds\r\n */\r\n public async removeSlots(characterId: string, slotIds: string[]): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('removeSlots',\r\n { name: ':id', value: characterId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(slotIds)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while removing slot.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Adds a minion to a character.\r\n * @param characterId The unique id of the character.\r\n * @param minionId The unique id of the minion to add.\r\n * @returns The unique instance id of the created minion.\r\n */\r\n public async addMinion(characterId: string, minionId: string): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('addMinion',\r\n { name: ':id', value: characterId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(minionId)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while adding minion.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Update's a character's minion.\r\n * @param characterId The unique id of the character.\r\n * @param oldVersion The old version of the minion.\r\n * @param newVersion The updated version of the minion.\r\n */\r\n public async updateMinion(characterId: string, oldVersion: OwnedMinionReference, newVersion: OwnedMinionReference): Promise> {\r\n const operations = JsonPatch.compare(oldVersion, newVersion);\r\n if (!operations.any()) {\r\n //Only way to pass void as a parameter.\r\n return new SuccessApiResponse(undefined);\r\n }\r\n\r\n const { uri, method } = this.config.getUriAndMethod('updateMinion',\r\n { name: ':id', value: characterId },\r\n { name: ':minionInstanceId', value: oldVersion.instanceId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(operations)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while updating minion.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Removes a minion from a character's horde.\r\n * @param characterId The unique id of the character.\r\n * @param minionInstanceId The unique instance id of the minion to remove.\r\n */\r\n public async removeMinion(characterId: string, minionInstanceId: string): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('removeMinion',\r\n { name: ':id', value: characterId },\r\n { name: ':minionInstanceId', value: minionInstanceId }\r\n );\r\n const token = await this.getToken(AuthorizedRoles.CharacterUpdate);\r\n\r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while removing minion.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { PlayerAccount } from \"../../entities/user/PlayerAccount\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { AccountApi } from \"./Api.Account\";\r\nimport { AccountApiServerConfig } from \"./config/AccountApiServerConfig\";\r\n\r\nexport class PlayerApi extends AccountApi {\r\n /**\r\n * Retrieves the active user's account info.\r\n * @returns An api response with the active user's account info, if they have it.\r\n */\r\n public async getUserData(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('get');\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving account data.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Retrieves a collection of users by their ids.\r\n * @param ids The user ids to retrieve.\r\n * @returns An api response with the requested users' account info.\r\n */\r\n public async getUsersByIds(ids: string[]): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('getByIds');\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(ids)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving users.');\r\n }\r\n return this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /**\r\n * Attempts to set a user's display name.\r\n * @param displayName The display name to use.\r\n * @returns An api response with the user's display name identifier.\r\n */\r\n public async setDisplayName(displayName: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('setDisplayName');\r\n const token = await this.getToken();\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(displayName)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while setting display name.');\r\n }\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","const libraryProdUri = 'https://800ac-library.azurewebsites.net';\r\n\r\nexport const LibraryApiConfig = {\r\n audience: libraryProdUri,\r\n uri: process.env.NODE_ENV === 'production'\r\n ? libraryProdUri\r\n : 'https://localhost:7184'\r\n};","import { BaseApi } from \"../Api.Base\";\r\nimport { LibraryApiConfig } from \"./config/LibraryApiConfig\";\r\n\r\nexport abstract class LibraryApi extends BaseApi {\r\n protected get audience(): string {\r\n return LibraryApiConfig.audience;\r\n }\r\n}","import { Book } from \"../../entities/library/books/Book\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class BookApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n const { uri, method } = this.config.getUriAndMethod('all'); \r\n try {\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving books.');\r\n }\r\n\r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { CompetencyInitializer } from \"../../entities/characters/Competencies\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class CompetencyApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('all');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving perks.');\r\n }\r\n\r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { Condition } from \"../../entities/characters/Conditions\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class ConditionApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('all');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving perks.');\r\n }\r\n\r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { Enemy } from \"../../entities/library/enemies/Enemy\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class EnemyApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('all');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving enemies.');\r\n }\r\n\r\n return this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { EnemyActiveAbility } from \"../../entities/library/enemies/EnemyAbilities\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class EnemyActiveAbilityApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('get');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving enemy actions.');\r\n }\r\n\r\n return this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { EnemyPassiveAbility } from \"../../entities/library/enemies/EnemyAbilities\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class EnemyPassiveAbilityApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('get');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving enemy passives.');\r\n }\r\n\r\n return this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { EnemyReactiveAbility } from \"../../entities/library/enemies/EnemyAbilities\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class EnemyReactiveAbilityApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('get');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving enemy reactions.');\r\n }\r\n\r\n return this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { Hazard } from \"../../entities/library/hazards/Hazard\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class HazardApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('all');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving hazards.');\r\n }\r\n\r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import * as JsonPatch from 'fast-json-patch';\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { ApiResponse, SuccessApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\nimport { ItemInitializer, UnknownItemInitializer } from \"../../entities/library/items/ItemInitializers\";\r\nimport { AuthorizedRoles } from \"../../config/AuthConfig\";\r\n\r\nexport class ItemApi extends LibraryApi {\r\n public async getItems(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('all');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving items.');\r\n }\r\n return this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async getItemsWithIds(ids: string[]): Promise> {\r\n try { \r\n const { uri, method } = this.config.getUriAndMethod('allWithIds');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method,\r\n body: JSON.stringify(ids)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving items.');\r\n }\r\n\r\n return this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n } \r\n\r\n public async create(item: ItemInitializer): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('create');\r\n const token = await this.getToken(AuthorizedRoles.LibraryCreate);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(item),\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error(`Server error creating ${item.name}.`);\r\n }\r\n\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async patch(oldVersion: ItemInitializer, newVersion: ItemInitializer): Promise> {\r\n try {\r\n const operations = JsonPatch.compare(oldVersion, newVersion);\r\n if (!operations.any()) {\r\n return new SuccessApiResponse(oldVersion);\r\n }\r\n const { uri, method } = this.config.getUriAndMethod('patch', {\r\n name: ':id',\r\n value: oldVersion.id,\r\n });\r\n const token = await this.getToken(AuthorizedRoles.LibraryUpdate);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(operations),\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error(`Server error patching ${oldVersion.name}.`);\r\n }\r\n\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async update(item: ItemInitializer): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('update', {\r\n name: ':id',\r\n value: item.id,\r\n });\r\n const token = await this.getToken(AuthorizedRoles.LibraryUpdate);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(item),\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error(`Server error updating ${item.name}.`);\r\n }\r\n\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async delete(id: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('delete', {\r\n name: ':id',\r\n value: id,\r\n });\r\n const token = await this.getToken(AuthorizedRoles.LibraryDelete);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error deleting item.');\r\n }\r\n\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { MinionInitializer } from \"../../entities/library/minions/Minion\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class MinionApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('all');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving minions.');\r\n }\r\n\r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async getMinionInitializersWithIds(ids: string[]): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('allWithIds');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method,\r\n body: JSON.stringify(ids)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving minions.');\r\n }\r\n \r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { PerkInitializer } from \"../../entities/library/perks/Perk\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class PerkApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('all');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving perks.');\r\n }\r\n\r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async getPerksWithIds(ids: string[]): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('allWithIds');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method,\r\n body: JSON.stringify(ids)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving perks.');\r\n }\r\n\r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { Personality } from \"../../entities/library/socials/Personality\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class PersonalityApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('all');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving personalities.');\r\n }\r\n \r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async getPersonalitiesWithIds(ids: string[]): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('allWithIds');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method,\r\n body: JSON.stringify(ids)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving personalities.');\r\n }\r\n \r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) { \r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { RhetoricInitializer } from \"../../entities/library/socials/Rhetoric\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class RhetoricApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('all');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving rhetorics.');\r\n }\r\n\r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async getRhetoricsWithIds(ids: string[]): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('allWithIds');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method,\r\n body: JSON.stringify(ids)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving rhetorics.');\r\n }\r\n\r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { Scenario } from \"../../entities/library/scenarios/Scenario\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class ScenarioApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('all');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving scenarios.');\r\n }\r\n \r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async getScenariosWithIds(ids: string[]): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('allWithIds');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method,\r\n body: JSON.stringify(ids)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving scenarios.');\r\n }\r\n \r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) { \r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { SkillInitializer } from \"../../entities/library/skills/Skill\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class SkillApi extends LibraryApi {\r\n public async getAll(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('all');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving skills.');\r\n }\r\n \r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async getSkillsWithIds(ids: string[]): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('allWithIds');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method,\r\n body: JSON.stringify(ids)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving skills.');\r\n }\r\n \r\n return await this.generateResponse(response, []);\r\n }\r\n catch (e) { \r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { AuthorizedRoles } from \"../../config/AuthConfig\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { LibraryApi } from \"./Api.Library\";\r\nimport { LibraryApiServerConfig } from \"./config/LibraryApiServerConfig\";\r\n\r\nexport class TagApi extends LibraryApi {\r\n public async getTags(): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('get');\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error while retrieving tags.');\r\n }\r\n\r\n return this.generateResponse(response, []);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async addTag(tag: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('add');\r\n const token = await this.getToken(AuthorizedRoles.LibraryCreate);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: tag\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error adding tag.');\r\n }\r\n\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async addTags(tags: string[]): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('addRange');\r\n const token = await this.getToken(AuthorizedRoles.LibraryCreate);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method,\r\n body: JSON.stringify(tags)\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error adding tags.');\r\n }\r\n\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async deleteTag(tag: string): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('delete', { name: ':tag', value: tag });\r\n const token = await this.getToken(AuthorizedRoles.LibraryDelete);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error deleting tag.');\r\n }\r\n\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n\r\n public async deleteTags(tags: string[]): Promise> {\r\n try {\r\n const { uri, method } = this.config.getUriAndMethod('deleteRange', { name: ':tags', value: tags.join(',') });\r\n const token = await this.getToken(AuthorizedRoles.LibraryDelete);\r\n const response = await fetch(uri, {\r\n ...this.createDefaultRequestDetails(token),\r\n method\r\n });\r\n\r\n if (this.isServerError(response)) {\r\n throw new Error('Server error deleting tags.');\r\n }\r\n\r\n return this.generateResponse(response);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n throw e;\r\n }\r\n }\r\n}","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const BookApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Book',\r\n actions: {\r\n 'all': {\r\n route: '/All',\r\n method: 'GET'\r\n },\r\n 'get': {\r\n route: '/',\r\n method: 'GET'\r\n },\r\n 'create': {\r\n route: '/Commands/Create',\r\n method: 'POST'\r\n },\r\n 'update': {\r\n route: '/Commands/:id',\r\n method: 'PUT'\r\n },\r\n 'patch': {\r\n route: '/Commands/:id',\r\n method: 'PATCH'\r\n },\r\n 'delete': {\r\n route: '/Commands/:id',\r\n method: 'DELETE'\r\n }\r\n }\r\n});","import { ApiConfigActions } from \"./ApiConfig\";\r\n\r\nexport const StandardActions: ApiConfigActions = {\r\n 'get': {\r\n route: '/:id',\r\n method: 'GET'\r\n },\r\n 'all': {\r\n route: '/All',\r\n method: 'GET'\r\n },\r\n 'allWithIds': {\r\n route: '/AllWithIds',\r\n method: 'POST',\r\n },\r\n 'allExcept': {\r\n route: '/AllExcept',\r\n method: 'POST'\r\n },\r\n 'create': {\r\n route: '/Commands/Create',\r\n method: 'POST'\r\n },\r\n 'update': {\r\n route: '/Commands/:id',\r\n method: 'PUT'\r\n },\r\n 'patch': {\r\n route: '/Commands/:id',\r\n method: 'PATCH'\r\n },\r\n 'delete': {\r\n route: '/Commands/:id',\r\n method: 'DELETE'\r\n }\r\n};","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const CompetencyApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Competency',\r\n actions: { ...StandardActions }\r\n});","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const ConditionApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Condition',\r\n actions: { ...StandardActions }\r\n});","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const EnemyActiveAbilityApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/EnemyActiveAbility',\r\n actions: { ...StandardActions }\r\n})","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const EnemyApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Enemy',\r\n actions: { ...StandardActions }\r\n})","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const EnemyPassiveAbilityApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/EnemyPassiveAbility',\r\n actions: { ...StandardActions }\r\n})","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const EnemyReactiveAbilityApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/EnemyReactiveAbility',\r\n actions: { ...StandardActions }\r\n})","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const HazardApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Hazard',\r\n actions: { ...StandardActions }\r\n});","import { ApiConfig, ApiConfigActions } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nconst ExtendedActions: ApiConfigActions = {\r\n 'createWeapon': {\r\n route: '/Commands/CreateWeapon',\r\n method: 'POST'\r\n },\r\n 'patchWeapon': {\r\n route: '/Commands/:id/PatchWeapon',\r\n method: 'PATCH'\r\n },\r\n 'updateWeapon': {\r\n route: '/Commands/:id/UpdateWeapon',\r\n method: 'PUT'\r\n },\r\n\r\n 'createMod': {\r\n route: '/Commands/CreateMod',\r\n method: 'POST'\r\n },\r\n 'patchMod': {\r\n route: '/Commands/:id/PatchMod',\r\n method: 'PATCH'\r\n },\r\n 'updateMod': {\r\n route: '/Commands/:id/UpdateMod',\r\n method: 'PUT'\r\n },\r\n\r\n 'createAmmo': {\r\n route: '/Commands/CreateAmmo',\r\n method: 'POST'\r\n },\r\n 'patchAmmo': {\r\n route: '/Commands/:id/PatchAmmo',\r\n method: 'PATCH'\r\n },\r\n 'updateAmmo': {\r\n route: '/Commands/:id/UpdateAmmo',\r\n method: 'PUT'\r\n },\r\n\r\n 'createSpell': {\r\n route: '/Commands/CreateSpell',\r\n method: 'POST'\r\n },\r\n 'patchSpell': {\r\n route: '/Commands/:id/PatchSpell',\r\n method: 'PATCH'\r\n },\r\n 'updateSpell': {\r\n route: '/Commands/:id/UpdateSpell',\r\n method: 'PUT'\r\n },\r\n};\r\n\r\nexport const ItemApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Item',\r\n actions: {\r\n ...StandardActions,\r\n ...ExtendedActions\r\n }\r\n});","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const MinionApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Minion',\r\n actions: {\r\n ...StandardActions\r\n }\r\n});","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const PerkApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Perk',\r\n actions: { ...StandardActions }\r\n});","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const PersonalityApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Personality',\r\n actions: { ...StandardActions }\r\n});","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const RhetoricApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Rhetoric',\r\n actions: { ...StandardActions }\r\n});","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const ScenarioApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Scenario',\r\n actions: { ...StandardActions }\r\n});","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const SkillApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Skill',\r\n actions: { ...StandardActions }\r\n})","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const TagApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Tag',\r\n actions: {\r\n get: {\r\n route: '',\r\n method: 'GET',\r\n },\r\n add: {\r\n route: '',\r\n method: 'POST',\r\n },\r\n addRange: {\r\n route: '/AddRange',\r\n method: 'POST',\r\n },\r\n delete: {\r\n route: '/:tag/Delete',\r\n method: 'DELETE',\r\n },\r\n deleteRange: {\r\n route: '/DeleteRange?tags=:tags',\r\n method: 'DELETE',\r\n },\r\n }\r\n})","import { ApiConfig } from \"../../config/ApiConfig\";\r\nimport { StandardActions } from \"../../config/StandardActions\";\r\nimport { LibraryApiConfig } from \"./LibraryApiConfig\";\r\n\r\nexport const VehicleApiConfig = new ApiConfig({\r\n ...LibraryApiConfig,\r\n apiPath: '/api/v1.0/Vehicle',\r\n actions: {\r\n ...StandardActions\r\n }\r\n});","import { BookApiConfig } from \"./BookApiConfig\";\r\nimport { CompetencyApiConfig } from \"./CompetencyApiConfig\";\r\nimport { ConditionApiConfig } from \"./ConditionApiConfig\";\r\nimport { EnemyActiveAbilityApiConfig } from \"./EnemyActiveAbilityApiConfig\";\r\nimport { EnemyApiConfig } from \"./EnemyApiConfig\";\r\nimport { EnemyPassiveAbilityApiConfig } from \"./EnemyPassiveAbilityApiConfig\";\r\nimport { EnemyReactiveAbilityApiConfig } from \"./EnemyReactiveAbilityApiConfig\";\r\nimport { HazardApiConfig } from \"./HazardApiConfig\";\r\nimport { ItemApiConfig } from \"./ItemApiConfig\";\r\nimport { MinionApiConfig } from \"./MinionApiConfig\";\r\nimport { PerkApiConfig } from \"./PerkApiConfig\";\r\nimport { PersonalityApiConfig } from \"./PersonalityApiConfig\";\r\nimport { RhetoricApiConfig } from \"./RhetoricApiConfig\";\r\nimport { ScenarioApiConfig } from \"./ScenarioApiConfig\";\r\nimport { SkillApiConfig } from \"./SkillApiConfig\";\r\nimport { TagApiConfig } from \"./TagApiConfig\";\r\nimport { VehicleApiConfig } from \"./VehicleApiConfig\";\r\n\r\nexport const LibraryApiServerConfig = Object.seal({\r\n BookApiConfig,\r\n CompetencyApiConfig,\r\n ConditionApiConfig,\r\n EnemyApiConfig,\r\n EnemyActiveAbilityApiConfig,\r\n EnemyReactiveAbilityApiConfig,\r\n EnemyPassiveAbilityApiConfig,\r\n HazardApiConfig,\r\n ItemApiConfig,\r\n MinionApiConfig,\r\n PerkApiConfig,\r\n PersonalityApiConfig,\r\n RhetoricApiConfig,\r\n ScenarioApiConfig,\r\n SkillApiConfig,\r\n TagApiConfig,\r\n VehicleApiConfig,\r\n});","import { PassiveAbility } from \"../../abilities/PassiveAbility\";\r\nimport { ActiveAbility } from \"../../abilities/ActiveAbility\";\r\nimport { ReactiveAbility } from \"../../abilities/ReactiveAbility\";\r\nimport { SkillRequirement } from \"../skills/SkillRequirement\";\r\nimport { OwnedReference } from \"../../Ownership\";\r\nimport { CharacterAbility } from \"../../abilities/Ability\";\r\n\r\nexport type PerkInitializer = {\r\n id: string;\r\n name: string;\r\n description: string;\r\n icon: string;\r\n handsAvailableModifier: number;\r\n skillRequirements: SkillRequirement[];\r\n actions?: ActiveAbility[];\r\n reactions?: ReactiveAbility[];\r\n passives?: PassiveAbility[];\r\n tags: string[];\r\n}\r\n\r\nexport const DefaultPerkInitializer: PerkInitializer = {\r\n id: '',\r\n name: '',\r\n description: '',\r\n icon: 'default',\r\n handsAvailableModifier: 0,\r\n skillRequirements: [],\r\n actions: [],\r\n reactions: [],\r\n passives: [],\r\n tags: []\r\n}\r\n\r\nconst getActions = (allPerks: PerkInitializer[], reference: OwnedReference): CharacterAbility[] => {\r\n const perk = allPerks.find(p => p.id == reference.id);\r\n return (perk?.actions ?? [])\r\n .map(p => ({\r\n ...p,\r\n source: perk!.name\r\n }));;\r\n}\r\n\r\nconst getReactions = (allPerks: PerkInitializer[], reference: OwnedReference): CharacterAbility[] => {\r\n const perk = allPerks.find(p => p.id == reference.id);\r\n return (perk?.reactions ?? [])\r\n .map(p => ({\r\n ...p,\r\n source: perk!.name\r\n }));;\r\n}\r\n\r\nconst getPassives = (allPerks: PerkInitializer[], reference: OwnedReference): CharacterAbility[] => {\r\n const perk = allPerks.find(p => p.id == reference.id);\r\n return (perk?.passives ?? [])\r\n .map(p => ({\r\n ...p,\r\n source: perk!.name\r\n }));\r\n}\r\n\r\nconst getFeatures = (allPerks: PerkInitializer[], reference: OwnedReference): CharacterAbility[] => {\r\n return [...getActions(allPerks, reference), ...getPassives(allPerks, reference), ...getReactions(allPerks, reference)];\r\n}\r\n\r\nexport const PerkHelpers = Object.freeze({\r\n getActions,\r\n getReactions,\r\n getPassives,\r\n getFeatures,\r\n})","import { SelectableOption } from \"../components/inputs/selects/SelectableOption\";\r\n\r\nexport enum RecordStatus {\r\n Published = 0,\r\n Unpublished = 1,\r\n Deleted = 2\r\n}\r\n\r\nexport const RecordStatusOptions: SelectableOption[] = [\r\n {\r\n name: 'Published',\r\n value: RecordStatus.Published\r\n },\r\n {\r\n name: 'Unpublished',\r\n value: RecordStatus.Unpublished,\r\n },\r\n {\r\n name: 'Deleted',\r\n value: RecordStatus.Deleted\r\n }\r\n]\r\n\r\nexport const RecordStatusNames = {\r\n [RecordStatus.Published]: \"Published\",\r\n [RecordStatus.Unpublished]: \"Unpublished\",\r\n [RecordStatus.Deleted]: \"Deleted\",\r\n}","const getPluralityCharacter = (value: number): string => {\r\n return value == 1\r\n ? ''\r\n : 's'\r\n}\r\n\r\nconst encodeNameForURI = (name: string): string => {\r\n return encodeURI(name.split(\" \").join(\"+\"));\r\n}\r\n\r\nconst decodeNameFromURI = (name: string): string => {\r\n name = name.split(\"_\").join(\"+\");\r\n return decodeURI(name.split(\"+\").join(\" \"));\r\n}\r\n\r\nconst generateCryptoString = (length: number) => {\r\n const charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvwxyz'\r\n let result = ''\r\n\r\n while (length > 0) {\r\n var bytes = new Uint8Array(16);\r\n var random = window.crypto.getRandomValues(bytes);\r\n\r\n for (let character of random) {\r\n if (length == 0) {\r\n break;\r\n }\r\n if (character < charset.length) {\r\n result += charset[character];\r\n length--;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nexport const STRING_UTILS = {\r\n getPluralityCharacter,\r\n encodeNameForURI,\r\n decodeNameFromURI,\r\n generateCryptoString,\r\n}","import { STRING_UTILS } from \"../../utils/StringUtilities\";\r\nimport { CharacterInitializer } from \"../characters/Character\";\r\n\r\nexport interface Rollable {\r\n name: string;\r\n getRoller(character: CharacterInitializer): Roller;\r\n}\r\n\r\nexport function GetRerollsForLevel(level: number): number {\r\n if (level >= 7) {\r\n return 2;\r\n }\r\n if (level >= 3) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nexport function GetExtraRollsForLevel(level: number): number {\r\n if(level >= 9) {\r\n return 2;\r\n }\r\n if(level >= 5) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nexport class Roller {\r\n public constructor(level: number) {\r\n this.level = level;\r\n }\r\n\r\n private readonly level: number;\r\n\r\n public get extraRolls(): number {\r\n return GetExtraRollsForLevel(this.level);\r\n }\r\n\r\n private get rollsPlurality(): string {\r\n return STRING_UTILS.getPluralityCharacter(this.extraRolls);\r\n }\r\n\r\n public get rerolls(): number {\r\n return GetRerollsForLevel(this.level);\r\n }\r\n\r\n private get rerollsPlurality(): string {\r\n return STRING_UTILS.getPluralityCharacter(this.rerolls);\r\n }\r\n\r\n public get diceBoons(): string {\r\n let extraRollsText = '';\r\n if (this.extraRolls > 0) {\r\n extraRollsText = `+${this.extraRolls} roll${this.rollsPlurality}, `;\r\n }\r\n\r\n let rerollsText = 'No boons.';\r\n if (this.rerolls > 0) {\r\n rerollsText = `+${this.rerolls} reroll${this.rerollsPlurality}`;\r\n }\r\n return `${extraRollsText}${rerollsText}`;\r\n }\r\n}","import { AddItemSlotsRequest } from \"../../../apis/requests/AddItemSlotsRequest\";\r\nimport { AbilitiesByLevelCollection } from \"../../abilities/AbilitiesByLevelCollection\";\r\nimport { CharacterAbility } from \"../../abilities/Ability\";\r\nimport { CharacterHelpers, LocalCharacterInitializer } from \"../../characters/Character\";\r\nimport { ModSlot } from \"../items/mods/ModSlot\";\r\nimport { OwnedItemReference, OwnedSkillReference } from \"../../Ownership\";\r\nimport { RecordStatus } from \"../../RecordStatus\";\r\nimport { Roller } from \"../Roller\";\r\nimport { SkillName } from \"./SkillMap\";\r\nimport { ActiveAbility } from \"../../abilities/ActiveAbility\";\r\nimport { ReactiveAbility } from \"../../abilities/ReactiveAbility\";\r\nimport { PassiveAbility } from \"../../abilities/PassiveAbility\";\r\nimport { ItemInitializer, WeaponInitializer } from \"../items/ItemInitializers\";\r\nimport { getUniqueIdentifier } from \"../../../utils/GUID\";\r\n\r\nexport type SkillInitializer = {\r\n id: string;\r\n name: SkillName;\r\n description: string;\r\n featuresByLevel: AbilitiesByLevelCollection[];\r\n isSlotChangingSkill: boolean;\r\n level4SlotChangeId: string;\r\n level8SlotChangeId: string;\r\n changeSlotTriggerTags: string[];\r\n customSlotTags: string[];\r\n recordStatus: RecordStatus;\r\n}\r\n\r\nconst IdToNameMap: {[name in SkillName]: string} = Object.freeze({\r\n 'Athletics': 'a6984189-0dfb-49d8-b779-737ff9d19605',\r\n 'Chemistry': '1f190e38-0776-4f98-914f-0a63cfa4f11b',\r\n 'Command': '045e0863-e6f7-43af-94bb-00bc7c58f9af',\r\n 'Electronics': '02fd9fc3-004a-46b3-92a6-9d72217de5c9',\r\n 'Explosives': 'e8e423c8-b76b-4232-beaf-21cd8771aa81',\r\n 'Firearms': 'c0e6c776-f5d8-454e-9130-c4fd2c09dfce',\r\n 'Machinery': '12e0186b-14d7-4c95-be0a-40b72699011f',\r\n 'Medicine': 'b0406ca3-3d1d-41e1-b262-fabd2585b711',\r\n 'Melee': 'f19bda1e-875f-4575-96b8-2767d59ca60f',\r\n 'Subterfuge': '8f891570-ffc4-43bd-8feb-c6356ec23598',\r\n});\r\n\r\nconst getAdjustedLevel = (skill: OwnedSkillReference) => {\r\n if (skill.override && skill.override > 0) {\r\n return skill.override;\r\n }\r\n return skill.level + skill.adjustment;\r\n}\r\n\r\nconst getSkillPointsUsed = (reference: OwnedSkillReference) => reference.level - 1;\r\n\r\nconst getEmpowermentBonus = (reference: OwnedSkillReference) => Math.floor(reference.level / 2);\r\n\r\nconst getRoller = (reference: OwnedSkillReference): Roller => new Roller(getAdjustedLevel(reference));\r\n\r\nconst getAcquiredFeatures = (skill: SkillInitializer, reference: OwnedSkillReference) => {\r\n return skill.featuresByLevel.filter(fbl => fbl.level <= reference.level);\r\n}\r\n\r\nconst getActions = (allSkills: SkillInitializer[], reference: OwnedSkillReference): ActiveAbility[] => {\r\n const skill = allSkills.find(s => s.id == reference.id);\r\n if (skill == null) {\r\n return [];\r\n }\r\n return getAcquiredFeatures(skill, reference).mapMany(fbl => fbl.activeAbilities);\r\n}\r\n\r\nconst getReactions = (allSkills: SkillInitializer[], reference: OwnedSkillReference): ReactiveAbility[] => {\r\n const skill = allSkills.find(s => s.id == reference.id);\r\n if (skill == null) {\r\n return [];\r\n }\r\n return getAcquiredFeatures(skill, reference).mapMany(fbl => fbl.reactiveAbilities);\r\n}\r\n\r\nconst getPassives = (allSkills: SkillInitializer[], reference: OwnedSkillReference): PassiveAbility[] => {\r\n const skill = allSkills.find(s => s.id == reference.id);\r\n if (skill == null) {\r\n return [];\r\n }\r\n return getAcquiredFeatures(skill, reference).mapMany(fbl => fbl.passiveAbilities);\r\n}\r\n\r\nconst getFeatures = (allSkills: SkillInitializer[], reference: OwnedSkillReference): CharacterAbility[] => {\r\n const skill = allSkills.find(s => s.id == reference.id);\r\n if (skill == null) {\r\n console.error(`Attempted to get features from nonexistent skill ${reference.id}.`);\r\n return [];\r\n }\r\n return getAcquiredFeatures(skill, reference)\r\n .mapMany(fbl => [...fbl.activeAbilities, ...fbl.passiveAbilities, ...fbl.reactiveAbilities]\r\n .map(a => ({ ...a, source: `${skill.name} ${fbl.level}` })));\r\n}\r\n\r\nconst getAddSlotChanges = (skill: SkillInitializer, allItems: ItemInitializer[], references: OwnedItemReference[], addedBy: string): AddItemSlotsRequest[] => {\r\n const changes: AddItemSlotsRequest[] = [];\r\n for (let itemReference of references) {\r\n const item = allItems.find(i => i.id == itemReference.id);\r\n if (item == null) {\r\n continue;\r\n }\r\n\r\n const slots = []\r\n const existingSlotCount = itemReference.customSlots.filter(cs => cs.addedBy == addedBy).length;\r\n for (let handIndex = existingSlotCount; handIndex < item.handsUsedModifier; handIndex++) {\r\n slots.push({ id: getUniqueIdentifier(), addedBy, slotTypes: skill.customSlotTags });\r\n }\r\n changes.push({ itemInstanceId: itemReference.instanceId, slots });\r\n }\r\n return changes;\r\n}\r\n\r\nconst getRemoveSlotChanges = (references: OwnedItemReference[], addedBy: string): ModSlot[] => {\r\n return references.mapMany(reference => reference.customSlots).filter(slot => slot.addedBy == addedBy);\r\n}\r\n\r\nconst getSlotChangesOnLoadForItem = (skill: SkillInitializer, reference: OwnedSkillReference, allItems: ItemInitializer[], itemReference: OwnedItemReference): SlotChangeRequest[] => {\r\n const changes: SlotChangeRequest[] = [];\r\n const weapon = allItems.find(i => i.id == itemReference.id) as WeaponInitializer;\r\n if (weapon?.type != 'Weapon') {\r\n return changes;\r\n }\r\n\r\n const slotsAt4 = itemReference.customSlots.filter(cs => cs.addedBy == skill.level4SlotChangeId);\r\n if (reference.level >= 4 && slotsAt4.length < weapon.hands) {\r\n const add: SlotChangeRequest = { type: 'ADD', changes: getAddSlotChanges(skill, allItems, [itemReference], skill.level4SlotChangeId) };\r\n changes.push(add);\r\n }\r\n else {\r\n const remove: SlotChangeRequest = { type: 'REMOVE', changes: getRemoveSlotChanges([itemReference], skill.level4SlotChangeId) };\r\n changes.push(remove);\r\n }\r\n\r\n const slotsAt8 = itemReference.customSlots.filter(cs => cs.addedBy == skill.level8SlotChangeId);\r\n if (reference.level >= 8 && slotsAt8.length < weapon.hands) {\r\n const add: SlotChangeRequest = { type: 'ADD', changes: getAddSlotChanges(skill, allItems, [itemReference], skill.level8SlotChangeId) };\r\n changes.push(add);\r\n }\r\n else {\r\n const remove: SlotChangeRequest = { type: 'REMOVE', changes: getRemoveSlotChanges([itemReference], skill.level8SlotChangeId) };\r\n changes.push(remove);\r\n }\r\n\r\n return changes;\r\n}\r\n\r\nconst getItemsToAffectForSlotChange = (skill: SkillInitializer, character: LocalCharacterInitializer, allItems: ItemInitializer[]) => {\r\n return CharacterHelpers.getInventory(character)\r\n .filter(weaponReference => {\r\n const item = allItems.find(i => i.id == weaponReference.id);\r\n if (item == null) {\r\n return false;\r\n }\r\n return item.type == 'Weapon'\r\n && item.tags.intersection(skill.changeSlotTriggerTags).length > 0\r\n && character.pendingProperties[weaponReference.instanceId];\r\n });\r\n}\r\n\r\nconst getSlotChangesOnLoad = (skill: SkillInitializer, character: LocalCharacterInitializer, allItems: ItemInitializer[]): SlotChangeRequest[] => {\r\n const reference = character.skills.find(s => s.id == skill.id);\r\n if (reference == null) {\r\n console.error(`Attempted to get slot changes from nonexistent skill ${skill.id}.`);\r\n return [];\r\n }\r\n const weaponsToAffect = getItemsToAffectForSlotChange(skill, character, allItems);\r\n let changes: SlotChangeRequest[] = [];\r\n for (let weaponReference of weaponsToAffect) {\r\n changes = [...changes, ...getSlotChangesOnLoadForItem(skill, reference, allItems, weaponReference)]\r\n }\r\n\r\n const addChanges = changes.filter(IsAddSlotChangeRequest).mapMany(request => request.changes);\r\n const removeChanges = changes.filter(IsRemoveSlotChangeRequest).mapMany(request => request.changes);\r\n\r\n changes = [];\r\n if (addChanges.any()) {\r\n changes.push({ type: 'ADD', changes: addChanges });\r\n }\r\n if (removeChanges.any()) {\r\n changes.push({ type: 'REMOVE', changes: removeChanges });\r\n }\r\n return changes;\r\n}\r\n\r\n\r\nexport const SkillHelpers = Object.freeze({\r\n getAdjustedLevel,\r\n getSkillPointsUsed,\r\n getEmpowermentBonus,\r\n getRoller,\r\n getActions,\r\n getReactions,\r\n getPassives,\r\n getFeatures,\r\n getSlotChangesOnLoad,\r\n\r\n MinValue: 1,\r\n MaxValue: 10,\r\n MaxSkillDifference: 2,\r\n PointsPerLevel: 3,\r\n IdToNameMap,\r\n});\r\n\r\nexport const DefaultSkillInitializer: SkillInitializer = {\r\n id: '',\r\n name: 'Athletics',\r\n description: '',\r\n isSlotChangingSkill: false,\r\n level4SlotChangeId: '',\r\n level8SlotChangeId: '',\r\n changeSlotTriggerTags: [],\r\n customSlotTags: [],\r\n featuresByLevel: [],\r\n recordStatus: RecordStatus.Published\r\n}\r\n\r\nexport type AddSlotChangeRequest = { type: 'ADD', changes: AddItemSlotsRequest[] }\r\nexport type RemoveSlotChangeRequest = { type: 'REMOVE', changes: ModSlot[] };\r\nexport type NoSlotChangeRequest = { type: 'NONE' }\r\n\r\nexport function IsAddSlotChangeRequest(request: SlotChangeRequest): request is AddSlotChangeRequest {\r\n return request.type == 'ADD';\r\n}\r\n\r\nexport function IsRemoveSlotChangeRequest(request: SlotChangeRequest): request is RemoveSlotChangeRequest {\r\n return request.type == 'REMOVE';\r\n}\r\n\r\nexport function IsNoSlotChangeRequest(request: SlotChangeRequest): request is NoSlotChangeRequest {\r\n return request.type == 'NONE';\r\n}\r\n\r\nexport type SlotChangeRequest = AddSlotChangeRequest | RemoveSlotChangeRequest | NoSlotChangeRequest;","interface Array {\r\n contains(this: T[], entity: T): boolean;\r\n any(this: T[], predicate?: (entity: T) => boolean): boolean;\r\n intersection(this: T[], other: T[]): T[];\r\n mapMany(this: T[], propertyGetter: (entity: T) => TOut[]): TOut[];\r\n unique(this: T[], distinguisher?: (entity: T) => string): T[];\r\n sum(this: T[], predicate: (entity: T) => SummableType): number;\r\n count(this: T[], predicate: (entity: T) => boolean): number;\r\n first(this: T[], predicate?: (entity: T) => boolean): T | null;\r\n search(this: T[], entity: T, keyGenerator: (entity: T) => number): number;\r\n insertAsSorted(this: T[], entity: T, keyGenerator: (entity: T) => number): void;\r\n max(this: T[], predicate: (entity: T) => number): number;\r\n min(this: T[], predicate: (entity: T) => number): number;\r\n}\r\n\r\nArray.prototype.contains = contains;\r\nArray.prototype.any = any;\r\nArray.prototype.intersection = intersection;\r\nArray.prototype.mapMany = mapMany;\r\nArray.prototype.unique = unique;\r\nArray.prototype.sum = sum;\r\nArray.prototype.count = count;\r\nArray.prototype.first = first;\r\nArray.prototype.search = search;\r\nArray.prototype.insertAsSorted = insertAsSorted;\r\nArray.prototype.max = max;\r\nArray.prototype.min = min;\r\n\r\nfunction contains(this: T[], entity: T): boolean {\r\n return this.indexOf(entity) >= 0;\r\n};\r\n\r\nfunction any(this: T[], predicate?: (entity: T) => boolean): boolean {\r\n if (predicate == null) {\r\n return this.length > 0;\r\n }\r\n return this.some(predicate);\r\n};\r\n\r\nfunction intersection(this: T[], other: T[]): T[] {\r\n return this.filter(entity => other.indexOf(entity) >= 0);\r\n}\r\n\r\nfunction mapMany(this: T[], propertyGetter: (entity: T) => TOut[]): TOut[] {\r\n return this.reduce((accum: TOut[], curr: T) => [...accum, ...propertyGetter(curr)], []);\r\n}\r\n\r\n/**\r\n * Generates an array of unique elements.\r\n * @param this The array to generate unique elements from.\r\n * @param distinguisher A function which takes an element of the array and returns a unique key to represent that element.\r\n * @returns An array of unique elements.\r\n */\r\nfunction unique(this: T[], distinguisher?: (entity: T) => string): T[] {\r\n const array: T[] = [];\r\n if (distinguisher == null) {\r\n const set = new Set(this);\r\n for (let value of set.values()) {\r\n array.push(value);\r\n }\r\n }\r\n else {\r\n const entities = new Map();\r\n for (let value of this) {\r\n const key = distinguisher(value);\r\n if (entities.get(key)) {\r\n continue;\r\n }\r\n entities.set(key, value);\r\n array.push(value);\r\n }\r\n }\r\n return array;\r\n}\r\n\r\ntype SummableType = number | null | undefined;\r\nfunction sum(this: T[], predicate: (entity: T) => SummableType): number {\r\n return this.map(predicate)\r\n .reduce((accum: number, curr: SummableType) => accum + (curr || 0), 0);\r\n}\r\n\r\nfunction count(this: T[], predicate: (entity: T) => boolean): number {\r\n return this.filter(predicate).length;\r\n}\r\n\r\nfunction first(this: T[], predicate?: (entity: T) => boolean): T | null {\r\n if (predicate == null) {\r\n return this[0];\r\n }\r\n\r\n for (let entity of this) {\r\n if (predicate(entity)) {\r\n return entity;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction search(this: T[], entity: T, keyGenerator: (entity: T) => number): number {\r\n const entityKey = keyGenerator(entity);\r\n let minIndex = 0;\r\n let maxIndex = this.length - 1;\r\n let pivot: number;\r\n let checkKey: number;\r\n\r\n while (minIndex <= maxIndex) {\r\n pivot = Math.floor((minIndex + maxIndex) * 0.5);\r\n checkKey = keyGenerator(this[pivot]);\r\n\r\n if (checkKey < entityKey) {\r\n minIndex = pivot + 1;\r\n }\r\n else if (checkKey > entityKey) {\r\n maxIndex = pivot - 1;\r\n }\r\n else {\r\n return pivot;\r\n }\r\n }\r\n return ~minIndex;\r\n}\r\n\r\nfunction insertAsSorted(this: T[], entity: T, keyGenerator: (entity: T) => number): void {\r\n let index = this.search(entity, keyGenerator);\r\n if (index < 0) {\r\n index = ~index;\r\n }\r\n this.splice(index, 0, entity);\r\n}\r\n\r\nfunction max(this: T[], predicate: (entity: T) => number): number {\r\n if (this.length == 0) {\r\n return 0;\r\n }\r\n let largestSeen = predicate(this[0]);\r\n for (let item of this) {\r\n largestSeen = Math.max(predicate(item), largestSeen);\r\n }\r\n return largestSeen;\r\n}\r\n\r\nfunction min(this: T[], predicate: (entity: T) => number): number {\r\n if (this.length == 0) {\r\n return 0;\r\n }\r\n\r\n let smallestSeen = predicate(this[0]);\r\n for (let item of this) {\r\n smallestSeen = Math.min(predicate(item), smallestSeen);\r\n }\r\n return smallestSeen;\r\n}","import React, { createRef } from \"react\";\r\nimport { JSXChildProps } from \"../../entities/utils/jsx/Children\";\r\n\r\ntype Props = {\r\n precheckCondition?: boolean;\r\n onExternalClickDetected: () => unknown;\r\n additionalRefs?: React.RefObject[]\r\n} & JSXChildProps\r\n & React.HTMLAttributes;\r\n\r\nexport class ExternalClickDetector extends React.Component {\r\n private readonly componentRef: React.RefObject = createRef();\r\n\r\n public componentDidMount(): void {\r\n document.addEventListener('mousedown', this.onClickOutside);\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n document.removeEventListener('mousedown', this.onClickOutside);\r\n }\r\n\r\n private onClickOutside = (event: globalThis.MouseEvent): void => {\r\n const validPrecheck = this.props.precheckCondition\r\n || this.props.precheckCondition === undefined;\r\n const additionalRefs = this.props.additionalRefs ?? [];\r\n const target = event.target;\r\n if (validPrecheck\r\n && target instanceof Node\r\n && !this.componentRef.current?.contains(target)\r\n && !additionalRefs.any(ar => ar.current?.contains(target) ?? false)) {\r\n this.props.onExternalClickDetected();\r\n }\r\n }\r\n\r\n public render(): JSX.Element {\r\n const excludedKeys = ['precheckCondition', 'onExternalClickDetected', 'children', 'additionalRefs'];\r\n const newProps = Object.keys(this.props)\r\n .filter(key => excludedKeys.indexOf(key) < 0)\r\n .reduce((accum, curr) => ({ ...accum, [curr]: this.props[curr as keyof Props] }), {});\r\n return (\r\n
    \r\n {this.props.children}\r\n
    \r\n );\r\n }\r\n}","import './close-button.scss';\r\nimport React from \"react\";\r\nimport { CloseIcon } from \"../../icons\";\r\n\r\ntype Props = {\r\n close: () => unknown;\r\n}\r\n\r\nexport const CloseButton = (props: Props) => (\r\n \r\n)","import './tooltip.scss';\r\nimport React from \"react\";\r\nimport { JSXChildProps } from \"../../../entities/utils/jsx/Children\"\r\nimport { ExternalClickDetector } from \"../../../utils/events/ExternalClickDetector\";\r\nimport { CloseButton } from \"../../inputs/buttons/CloseButton\";\r\n\r\ntype Props = {\r\n visible: boolean;\r\n close: () => unknown;\r\n style?: React.CSSProperties;\r\n} & JSXChildProps;\r\n\r\nexport const Tooltip = (props: Props) => {\r\n const { close, visible, style, children } = props;\r\n const className = `tooltip ${visible ? 'visible' : 'hidden'}`;\r\n return (\r\n
    \r\n \r\n \r\n {children}\r\n \r\n
    \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { JSXChildProps } from \"../../../entities/utils/jsx/Children\";\r\nimport { Tooltip } from \"./Tooltip\";\r\n\r\ntype Props = {\r\n tooltipContent: React.ReactNode\r\n} & JSXChildProps;\r\n\r\ntype State = {\r\n visible: boolean;\r\n x?: string;\r\n y?: string;\r\n}\r\n\r\nexport const TooltipContent = (props: Props) => {\r\n const [state, setState] = useState({\r\n visible: false,\r\n x: '0px',\r\n y: '0px'\r\n });\r\n const { children, tooltipContent } = props;\r\n const showTooltip = (event: React.MouseEvent) => setState(state => {\r\n const newState = { ...state, visible: true }\r\n if (window.innerWidth > 581) {\r\n newState.x = event.clientX + 'px';\r\n newState.y = (window.innerHeight - event.clientY) + 'px';\r\n }\r\n else {\r\n delete newState.x;\r\n delete newState.y;\r\n }\r\n return newState;\r\n });\r\n const hideTooltip = () => setState(state => ({ ...state, visible: false }));\r\n return (\r\n
    \r\n {children}\r\n \r\n {tooltipContent}\r\n \r\n
    \r\n );\r\n}","import React, { CSSProperties } from \"react\";\r\n\r\ntype Props = {\r\n children: string;\r\n style?: CSSProperties;\r\n className?: string;\r\n title?: string;\r\n}\r\n\r\nexport const GameIcon = (props: Props) => ;","import React from \"react\";\r\nimport { TooltipContent } from \"../theming/tooltips/TooltipContent\";\r\nimport { GameIcon } from \"./GameIcon\";\r\n\r\nconst ReducedByArmor = <>Reduced by Armor.;\r\nconst ReducedByResilience = <>Reduced by Resilience.;\r\n\r\nexport const PercussiveDescription = <>{ReducedByArmor} Percussive damage is any damage caused by hitting or striking something. E.G. You get hit with a baseball bat.;\r\nexport const PercussiveIcon: React.FC = () => {\r\n const icon = rifle;\r\n const tooltip = <>\r\n
    Percussive Damage
    \r\n {PercussiveDescription}\r\n ;\r\n return (\r\n \r\n {icon}\r\n \r\n );\r\n}\r\n\r\nexport const ExplosiveDescription = <>{ReducedByArmor} Explosive damage is dealt whenever something explodes near something else. E.G. You are next to an exploding grenade.;\r\nexport const ExplosiveIcon: React.FC = () => {\r\n const icon = spiky-explosion;\r\n const tooltip = <>\r\n
    Explosive Damage
    \r\n {ExplosiveDescription}\r\n ;\r\n return (\r\n \r\n {icon}\r\n \r\n );\r\n}\r\n\r\nexport const ThermalDescription = <>{ReducedByResilience} Thermal damage is dealt whenever something is made very hot. E.G. You are on fire.;\r\nexport const ThermalIcon: React.FC = () => {\r\n const icon = flamer;\r\n const tooltip = <>\r\n
    Thermal Damage
    \r\n {ThermalDescription}\r\n ;\r\n return (\r\n \r\n {icon}\r\n \r\n );\r\n}\r\n\r\nexport const CryoDescription = <>{ReducedByResilience} Cryo damage is dealt whenever something is made very cold. E.G. You are frozen solid.;\r\nexport const CryoIcon: React.FC = () => {\r\n const icon = ice-cube;\r\n const tooltip = <>\r\n
    Cryo Damage
    \r\n {CryoDescription}\r\n ;\r\n return (\r\n \r\n {icon}\r\n \r\n );\r\n}\r\n\r\nexport const ElectromagneticDescription = <>{ReducedByResilience} Electromagnetic damage is dealt whenever something is electrocuted or blasted with light. E.G. You are standing in the way of a giant laser cannon.;\r\nexport const ElectromagneticIcon: React.FC = () => {\r\n const icon = laser-burst;\r\n const tooltip = <>\r\n
    Electromagnetic Damage
    \r\n {ElectromagneticDescription}\r\n ;\r\n return (\r\n \r\n {icon}\r\n \r\n );\r\n}\r\n\r\nexport const CorrosiveDescription = <>{ReducedByResilience} Corrosive damage is dealt whenever something is dissolved. E.G. You are melting in a vat of acid.;\r\nexport const CorrosiveIcon: React.FC = () => {\r\n const icon = chemical-bolt;\r\n const tooltip = <>\r\n
    Corrosive Damage
    \r\n {CorrosiveDescription}\r\n ;\r\n return (\r\n \r\n {icon}\r\n \r\n );\r\n}\r\n\r\nexport const BioDescription = <>{ReducedByResilience} Biological damage is dealt whenever something is afflicted with disease or poison. E.G. You have smallpox.;\r\nexport const BioIcon: React.FC = () => {\r\n const icon = biohazard;\r\n const tooltip = <>\r\n
    Biological Damage
    \r\n {BioDescription}\r\n ;\r\n return (\r\n \r\n {icon}\r\n \r\n );\r\n}\r\n\r\nexport const HackingDescription = <>{ReducedByResilience} Hacking damage is dealt whenever a machine is unable to function the way it's supposed to. E.G. You're a robot and a keyboard warrior is scrambling your memory banks.;\r\nexport const HackIcon: React.FC = () => {\r\n const icon = microchip;\r\n const tooltip = <>\r\n
    Hacking Damage
    \r\n {HackingDescription}\r\n ;\r\n return (\r\n \r\n {icon}\r\n \r\n );\r\n}","import React from \"react\";\r\nimport { GameIcon } from \"../GameIcon\";\r\n\r\nexport const BulletIcon: React.FC = () => ;\r\nexport const ShotIcon: React.FC = () => ;\r\nexport const SlugIcon = () => heavy-bullets;\r\nexport const CellIcon: React.FC = () => ;\r\nexport const CannisterIcon: React.FC = () => ;\r\nexport const GrenadeIcon: React.FC = () => ;\r\nexport const MineIcon: React.FC = () => ;\r\nexport const RocketIcon: React.FC = () => ;\r\nexport const BladeIcon: React.FC = () => \r\nexport const BludgeonIcon = () => flat-hammer;\r\nexport const SpikeIcon = () => needle-drill\r\n\r\nexport const AmmoIcons = Object.freeze({\r\n 'bullet': ,\r\n 'blade': ,\r\n 'bludgeon': ,\r\n 'spike': ,\r\n 'shot': ,\r\n 'slug': ,\r\n 'cell': ,\r\n 'cannister': ,\r\n 'grenade': ,\r\n 'mine': ,\r\n 'rocket': \r\n});","import React from \"react\";\r\n\r\nexport const BackpackIcon: React.FC = () => ;\r\nexport const ChestIcon: React.FC = () => ;\r\nexport const FridgeIcon: React.FC = () => ;\r\nexport const JerrycanIcon: React.FC = () => ;\r\nexport const TestTubeSetIcon: React.FC = () => \r\nexport const ToolboxIcon: React.FC = () => ;\r\n\r\nexport const ContainerIcons = Object.freeze({\r\n 'backpack': ,\r\n 'chest': ,\r\n 'fridge': ,\r\n 'jerrycan': ,\r\n 'toolbox': ,\r\n 'test-tubes set': \r\n});","import React from \"react\";\r\nimport { GameIcon } from \"../GameIcon\";\r\n\r\nexport const ChemistryIcon: React.FC = () => fizzing-flask;\r\nexport const ElectronicsIcon: React.FC = () => batteries;\r\nexport const MachineryIcon: React.FC = () => big-gear;\r\nexport const MedicineIcon: React.FC = () => medical-pack-alt;\r\n\r\nexport const SpellIcons = Object.freeze({\r\n 'chemistry': ,\r\n 'electronics': ,\r\n 'machinery': ,\r\n 'medicine': \r\n});","import React from \"react\";\r\n\r\nexport const OneHandedMeleeIcon = () => ;\r\nexport const TwoHandedMeleeIcon = () => ;\r\nexport const WristLauncherIcon = () => ;\r\nexport const HandgunIcon = () => ;\r\nexport const BlasterIcon = () => ;\r\nexport const ShotgunIcon = () => ;\r\nexport const RifleIcon = () => ;\r\nexport const EnergyRifleIcon = () => ;\r\nexport const SpewerIcon = () => ;\r\nexport const BombSatchelIcon = () => ;\r\nexport const GrenadeLauncherIcon = () => ;\r\nexport const RocketLauncherIcon = () => ;\r\nexport const HeavyWeaponIcon = () => ;\r\n\r\nexport const WeaponIcons = Object.freeze({\r\n 'one-handed-melee': ,\r\n 'two-handed-melee': ,\r\n 'wrist-launcher': ,\r\n 'handgun': ,\r\n 'blaster': ,\r\n 'shotgun': ,\r\n 'rifle': ,\r\n 'energy-rifle': ,\r\n 'spewer': ,\r\n 'bomb-satchel': ,\r\n 'grenade-launcher': ,\r\n 'rocket-launcher': ,\r\n 'heavy-weapon': \r\n});","import React from \"react\";\r\nimport { AmmoIcons } from \"./AmmoIcons\";\r\nimport { ContainerIcons } from \"./ContainerIcons\";\r\nimport { SpellIcons } from \"./SpellIcons\";\r\nimport { WeaponIcons } from \"./WeaponIcons\";\r\nimport { GameIcon } from \"../GameIcon\";\r\nimport { CSSProperties } from \"styled-components\";\r\n\r\ntype Props = {\r\n className?: string;\r\n style?: CSSProperties\r\n}\r\n\r\nexport const DefaultIcon = () => ;\r\nexport const MoneyIcon = (props: Props) => two-coins;//;\r\nexport const WeightIcon = () => ;\r\nexport const RangeIcon = () => ;\r\n\r\nexport const ArmorIcon = () => ;\r\nexport const ResilienceIcon = () => ;\r\n\r\nexport const ApparelIcon = () => ;\r\nexport const WornArmorIcon = () => ;\r\nexport const ToolIcon = () => ;\r\nexport const LiquidIcon = () => ;\r\nexport const FoodIcon = () => ;\r\nexport const ReagentIcon = () => ;\r\nexport const DrugIcon = () => ;\r\nexport const KeepsakeIcon = () => ;\r\nexport const ModIcon = () => ;\r\n\r\nexport * from './WeaponIcons';\r\n\r\nexport const ObjectIcons = Object.freeze({\r\n 'default': ,\r\n 'apparel': ,\r\n 'armor': ,\r\n 'tool': ,\r\n 'liquid': ,\r\n 'food': ,\r\n 'reagent': ,\r\n 'drug': ,\r\n 'keepsake': ,\r\n 'mod': ,\r\n\r\n ...ContainerIcons,\r\n ...WeaponIcons,\r\n ...AmmoIcons,\r\n ...SpellIcons,\r\n\r\n GetIcon(icon: string): JSX.Element {\r\n if (icon == \"GetIcon\") {\r\n return ;\r\n }\r\n const iconElement = this[icon as keyof typeof ObjectIcons] as JSX.Element | undefined;\r\n return iconElement ?? ;\r\n }\r\n});\r\n\r\nexport type ItemIconKey = keyof typeof ObjectIcons;","import React from \"react\";\r\nimport { JSXChildProps } from \"../../entities/utils/jsx/Children\";\r\n\r\ntype Props = {\r\n className?: string;\r\n filled?: boolean;\r\n} & JSXChildProps;\r\n\r\nexport const MaterialSymbol: React.FC = (props: Props) => {\r\n const { className, filled } = props;\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}","import React from \"react\";\r\nimport { MaterialSymbol } from \"../MaterialSymbol\";\r\nimport { GameIcon } from \"../GameIcon\";\r\n\r\ntype Props = {\r\n className?: string;\r\n}\r\n\r\nexport const BulletEmptyIcon = () => circle;\r\nexport const BulletFilledIcon = () => circle;\r\n\r\nexport const AddIcon = () => add_circle;\r\nexport const BookIcon = () => menu_book;\r\nexport const CloseIcon = () => cancel;\r\nexport const CopyIcon = () => content_copy;\r\nexport const DecreaseIcon = () => remove;\r\nexport const DeleteIcon = () => delete;\r\nexport const EditIcon = () => edit;\r\nexport const IncreaseIcon = () => add;\r\nexport const MoveIcon = () => pan_tool_alt;\r\nexport const SaveIcon = () => saved;\r\n\r\n//Notifications\r\nexport const ErrorIcon = (props: Props) => error;\r\nexport const InfoIcon = (props: Props) => info;\r\nexport const SuccessIcon = (props: Props) => check_circle;\r\nexport const WarningIcon = (props: Props) => warning;\r\n\r\nexport const ChevronLeftIcon = () => chevron_left;\r\nexport const ChevronRightIcon = () => chevron_right;\r\n\r\nexport const CollapseIcon = () => expand_less;\r\nexport const ExpandIcon = () => expand_more;\r\n\r\nexport const CollapseAllIcon = () => keyboard_double_arrow_up;\r\nexport const ExpandAllIcon = () => keyboard_double_arrow_down;\r\n\r\nexport const MenuIcon = () => menu;\r\n\r\n//Inputs\r\nexport const CheckedIcon = () => toggle_on;\r\nexport const CheckedOutlineIcon = () => toggle_on;\r\nexport const UncheckedIcon = () => toggle_off;\r\nexport const UncheckedOutlineIcon = () => toggle_off;\r\n\r\n//View Options\r\nexport const ListIcon = () => view_list;\r\nexport const GridIcon = () => grid_view;\r\nexport const HorizontalIcon = () => table_rows;\r\nexport const VerticalIcon = () => view_column;\r\nexport const DiceHandsIcon = () => ;\r\nexport const AttacksIcon = () => silver-bullet;\r\nexport const SpellsIcon = () => magic-swirl;\r\nexport const ReactionsIcon = () => stopwatch;\r\nexport const PassivesIcon = () => beams-aura;\r\nexport const EquipmentIcon = () => ;\r\nexport const FeaturesIcon = () => flying-flag;\r\nexport const MinionsIcon = () => ;\r\nexport const ExpertIcon = () => upgrade;","import { ModInitializer } from \"../ItemInitializers\";\r\n\r\nexport type ModSlotInitializer = {\r\n addedBy?: string;\r\n slotTypes: string[];\r\n}\r\n\r\nexport type ModSlot = ModSlotInitializer & {\r\n id: string;\r\n}\r\n\r\nexport const IsLegalModForSlot = (slot: ModSlot, mod: ModInitializer) => {\r\n if (!slot.slotTypes.any()) {\r\n return true;\r\n }\r\n return SlotTypesMatch(slot, mod);\r\n}\r\n\r\nexport const SlotTypesMatch = (slot: ModSlot, mod: ModInitializer) => slot.slotTypes.intersection(mod.tags).any();\r\n\r\nconst SortSlotTypes = (st1: string, st2: string): number => st1.localeCompare(st2);\r\n\r\nexport const SortModSlots = (ms1: ModSlot, ms2: ModSlot) => {\r\n const quantitySort = ms2.slotTypes.length - ms1.slotTypes.length;\r\n if (quantitySort != 0) {\r\n return quantitySort;\r\n }\r\n\r\n const ms1SortedSlotTypes = ms1.slotTypes.sort(SortSlotTypes);\r\n const ms2SortedSlotTypes = ms2.slotTypes.sort(SortSlotTypes);\r\n for (let index = 0; index < ms1.slotTypes.length; index++) {\r\n const comparison = SortSlotTypes(ms1SortedSlotTypes[index], ms2SortedSlotTypes[index]);\r\n if (comparison != 0) {\r\n return comparison;\r\n }\r\n }\r\n\r\n return -1; //Perform a stable sort if they are identical.\r\n}","import '../../../utils/ArrayExtensions';\r\nimport { ObjectIcons } from \"../../../components/icons\";\r\nimport { ItemInitializer, ModInitializer } from \"./ItemInitializers\";\r\nimport { ModSlot, IsLegalModForSlot as IsLegalModForModSlot, SlotTypesMatch } from \"./mods/ModSlot\";\r\nimport { CharacterAbility } from '../../abilities/Ability';\r\nimport { OwnedItemReference, OwnedModReference } from '../../Ownership';\r\n\r\nexport type ItemSortableProperty = 'Name' | 'Cost' | 'Weight' | 'Tags';\r\n\r\nconst getName = (item: ItemInitializer, reference?: OwnedItemReference) => {\r\n return reference?.customName ?? item.name;\r\n}\r\n\r\nconst deepCopy = (reference: OwnedItemReference): OwnedItemReference => ({\r\n ...reference,\r\n customSlots: reference.customSlots.map(deepCopySlot),\r\n});\r\n\r\nconst deepCopySlot = (modSlot: ModSlot): ModSlot => ({\r\n ...modSlot,\r\n slotTypes: [...modSlot.slotTypes],\r\n});\r\n\r\nconst getTotalHandsUsed = (allItems: ItemInitializer[], reference: OwnedItemReference, characterMods: OwnedModReference[]): number => {\r\n const item = allItems.find(i => i.id == reference.id);\r\n if (item == null) {\r\n console.error(`Requested hands used for nonexistent item ${reference.id}.`);\r\n return 0;\r\n }\r\n const modHandsUsed = characterMods\r\n .filter(m => m.assignedItemId == reference.instanceId)\r\n .sum(m => getTotalHandsUsed(allItems, m, characterMods));\r\n return item.handsUsedModifier + modHandsUsed;\r\n}\r\n\r\nconst getIcon = (item: ItemInitializer) => ObjectIcons.GetIcon(item.icon);\r\n\r\nconst getTagText = (item: ItemInitializer) => item.tags.join(', ');\r\n\r\nconst isLegalItemForMod = (item: ItemInitializer, slot: ModSlot, mod: ModInitializer) => {\r\n //If slot types exactly match, override any other restrictions.\r\n if (SlotTypesMatch(slot, mod)) {\r\n return true;\r\n }\r\n return mod.assignableToTags.length == 0\r\n || item.tags.intersection(mod.assignableToTags).length > 0;\r\n}\r\n\r\nconst isLegalModForSlot = (item: ItemInitializer, reference: OwnedItemReference, mod: ModInitializer, slotId: string) => {\r\n const slot = item.slots.find(s => s.id == slotId)\r\n ?? reference.customSlots.find(s => s.id == slotId);\r\n if (slot == null) {\r\n return false;\r\n }\r\n return IsLegalModForModSlot(slot, mod)\r\n && isLegalItemForMod(item, slot, mod)\r\n && !item.blacklistTags.intersection(mod.tags).any();\r\n}\r\n\r\nconst filterByName = (item: ItemInitializer, check: string) => {\r\n return item.name.toLowerCase()\r\n .indexOf(check.toLowerCase()) > -1;\r\n}\r\n\r\nconst getBaseActions = (item: ItemInitializer) => item.actions.map(a => ({\r\n ...a,\r\n source: item.name,\r\n}));\r\n\r\nconst getActions = (allItems: ItemInitializer[], reference: OwnedItemReference, characterMods: OwnedModReference[]): CharacterAbility[] => {\r\n const item = allItems.find(i => i.id == reference.id);\r\n if (item == null) {\r\n console.error(`Requested actions for nonexistent item ${reference.id}.`);\r\n return [];\r\n }\r\n\r\n const itemActions: CharacterAbility[] = item.actions.map(a => ({\r\n ...a,\r\n source: getName(item, reference),\r\n }));\r\n const modActions: CharacterAbility[] = characterMods\r\n .filter(m => m.assignedItemId == reference.instanceId)\r\n .mapMany(m => getActions(allItems, m, characterMods));\r\n return [...itemActions, ...modActions];\r\n}\r\n\r\nconst getBaseReactions = (item: ItemInitializer) => item.reactions.map(r => ({\r\n ...r,\r\n source: item.name\r\n}));\r\n\r\nconst getReactions = (allItems: ItemInitializer[], reference: OwnedItemReference, characterMods: OwnedModReference[]): CharacterAbility[] => {\r\n const item = allItems.find(i => i.id == reference.id);\r\n if (item == null) {\r\n console.error(`Requested reactions for nonexistent item ${reference.id}.`);\r\n return [];\r\n }\r\n\r\n const itemReactions: CharacterAbility[] = item.reactions.map(r => ({\r\n ...r,\r\n source: getName(item, reference)\r\n }));\r\n const modReactions: CharacterAbility[] = characterMods\r\n .filter(m => m.assignedItemId == reference.instanceId)\r\n .mapMany(m => getReactions(allItems, m, characterMods));\r\n return [...itemReactions, ...modReactions];\r\n}\r\n\r\nconst getBasePassives = (item: ItemInitializer) => item.passives.map(p => ({\r\n ...p,\r\n juices: false,\r\n dejuices: false,\r\n source: item.name\r\n}));\r\n\r\nconst getPassives = (allItems: ItemInitializer[], reference: OwnedItemReference, characterMods: OwnedModReference[]): CharacterAbility[] => {\r\n const item = allItems.find(i => i.id == reference.id);\r\n if (item == null) {\r\n console.error(`Requested passives for nonexistent item ${reference.id}.`);\r\n return [];\r\n }\r\n\r\n const itemPassives: CharacterAbility[] = item.passives.map(p => ({\r\n ...p,\r\n juices: false,\r\n dejuices: false,\r\n source: getName(item, reference)\r\n }));\r\n const modPassives: CharacterAbility[] = characterMods\r\n .filter(m => m.assignedItemId == reference.instanceId)\r\n .mapMany(m => getPassives(allItems, m, characterMods))\r\n return [...itemPassives, ...modPassives].unique(ca => ca.id);\r\n}\r\n\r\nconst isMod = (reference: OwnedItemReference) => {\r\n return reference.type == 'Mod'\r\n || reference.type == 'Ammo'\r\n || reference.type == 'Spell';\r\n}\r\n\r\nexport const ItemHelpers = Object.freeze({\r\n getName,\r\n deepCopy,\r\n getTotalHandsUsed,\r\n getIcon,\r\n getTagText,\r\n isLegalModForSlot,\r\n filterByName,\r\n getBaseActions,\r\n getActions,\r\n getBaseReactions,\r\n getReactions,\r\n getBasePassives,\r\n getPassives,\r\n isMod\r\n})","export const DefaultWornLimit = 1;\r\n\r\nexport const WornLimits = {\r\n 'Ring': 2\r\n}","import { QuantifiedDamage } from \"../categorization/QuantifiedDamage\";\r\nimport { HandTrigger } from \"../rolls/HandTrigger\";\r\nimport { NamedEntity } from \"../NamedEntity\";\r\n\r\n\r\nexport type PrimaryActionType = 'Attack' | 'Spell' | 'Feature';\r\nexport type AbilityType = 'ActiveAbility' | 'ReactiveAbility' | 'PassiveAbility';\r\n\r\nexport type Ability = NamedEntity & {\r\n id: string;\r\n abilityType: AbilityType;\r\n type: PrimaryActionType;\r\n description: string;\r\n tags: string[];\r\n}\r\n\r\nexport type CharacterAbility = {\r\n id: string;\r\n icon?: React.ReactNode;\r\n type: PrimaryActionType;\r\n name: string;\r\n sourceId?: string;\r\n source?: string;\r\n description: string;\r\n sourceDescription?: string;\r\n juices?: boolean;\r\n dejuices?: boolean;\r\n requiresAttention?: boolean;\r\n damageSuite?: QuantifiedDamage[];\r\n customDamageTexts?: string[];\r\n handTriggers?: HandTrigger[];\r\n range?: number;\r\n triggerCondition?: string;\r\n tags: string[];\r\n}\r\n\r\nexport type AbilitiesByHandTrigger = {\r\n 'Pair'?: CharacterAbility[];\r\n 'Two Pair'?: CharacterAbility[];\r\n 'Triple'?: CharacterAbility[];\r\n 'Small Straight'?: CharacterAbility[];\r\n 'Flush'?: CharacterAbility[];\r\n 'Full House'?: CharacterAbility[];\r\n 'Big Straight'?: CharacterAbility[];\r\n 'Quad'?: CharacterAbility[];\r\n 'Jackpot!'?: CharacterAbility[];\r\n}\r\n\r\nexport function GetCharacterAbilityKey(ability: CharacterAbility) {\r\n return ability.id;\r\n}","import { PerkHelpers, PerkInitializer } from \"../library/perks/Perk\";\r\nimport { SkillHelpers, SkillInitializer } from \"../library/skills/Skill\";\r\nimport { Kinship } from \"./Kinships\";\r\nimport { RhetoricInitializer } from \"../library/socials/Rhetoric\";\r\nimport { Personality } from \"../library/socials/Personality\";\r\nimport { ItemHelpers } from \"../library/items/Item\";\r\nimport { SortedSet } from \"../data-structures/SortedSet\";\r\nimport { MinionInitializer } from \"../library/minions/Minion\";\r\nimport { ItemInitializer, ModInitializer } from \"../library/items/ItemInitializers\";\r\nimport { OwnedCompetencyReference, OwnedItemReference, OwnedMinionReference,\r\n OwnedModReference,\r\n OwnedReference, OwnedRhetoricReference, OwnedSkillReference } from \"../Ownership\";\r\nimport { DefaultWornLimit, WornLimits } from \"./WornLimits\";\r\nimport { Condition } from \"./Conditions\";\r\nimport { CharacterAbility, GetCharacterAbilityKey } from \"../abilities/Ability\";\r\nimport { CustomCompetencyInitializer, CompetencyInitializer } from \"./Competencies\";\r\nimport { ModSlot } from \"../library/items/mods/ModSlot\";\r\nimport { CharacterDice, RollRequest } from \"../rolls/Roll\";\r\nimport { SkillName } from \"../library/skills/SkillMap\";\r\nimport { ActiveEditingHashmap } from \"../ActiveEditingHashmap\";\r\nimport { ItemFilterInitializer } from \"../filters/ItemFilter\";\r\nimport { CommunalDice } from \"../adventures/Adventure\";\r\n\r\nexport type CreateCharacterRequest = {\r\n name: string;\r\n}\r\n\r\nexport type CharacterInitializer = {\r\n id: string;\r\n ownerId: string;\r\n name: string;\r\n created: string;\r\n kinship: Kinship;\r\n level: number;\r\n className: string;\r\n enforceRules: boolean;\r\n money: number;\r\n\r\n adjustMaxHealth?: number;\r\n overrideMaxHealth?: number;\r\n\r\n currentHealth: number;\r\n currentWounds: number;\r\n juiced: boolean;\r\n\r\n currentDice: CharacterDice;\r\n\r\n customCompetencies: CustomCompetencyInitializer[];\r\n competencies: OwnedCompetencyReference[];\r\n conditions: string[];\r\n\r\n baseMovement: number;\r\n movementAdjust: number;\r\n movementOverride?: number;\r\n\r\n skills: OwnedSkillReference[];\r\n rhetorics: OwnedRhetoricReference[];\r\n personalities: OwnedReference[];\r\n perks: OwnedReference[];\r\n\r\n bodySlots: ModSlot[];\r\n bodyMods: OwnedModReference[];\r\n\r\n activeMods: OwnedModReference[];\r\n\r\n held: OwnedItemReference[];\r\n worn: OwnedItemReference[];\r\n loose: OwnedItemReference[];\r\n\r\n minions: OwnedMinionReference[];\r\n}\r\n\r\nexport type CharacterItemCollection = Pick\r\n | Pick\r\n | Pick\r\n | Pick\r\n | Pick;\r\nexport type CharacterItemSuite = Partial>;\r\nexport type CharacterItemCollectionName = keyof CharacterItemSuite;\r\n\r\nexport type CharacterItemSearchResult = {\r\n collectionName: CharacterItemCollectionName;\r\n reference: OwnedItemReference;\r\n}\r\n\r\nexport type LocalCharacterInitializer = CharacterInitializer & {\r\n rollRequest?: RollRequest;\r\n previewItemInstanceId?: string;\r\n previewSlotId?: string;\r\n previewSlotItemInstanceId?: string;\r\n pendingProperties: ActiveEditingHashmap;\r\n showItemAdder: boolean;\r\n itemFilter: ItemFilterInitializer;\r\n communalDice: CommunalDice;\r\n deleting: boolean;\r\n}\r\n\r\nconst getSkillLevel = (character: CharacterInitializer, skillName: SkillName) => {\r\n const skill = character.skills.find(s => s.id == SkillHelpers.IdToNameMap[skillName]);\r\n if (skill == null) {\r\n throw `Skill \"${skillName}\" not found on character ${character.id}.`;\r\n }\r\n\r\n return SkillHelpers.getAdjustedLevel(skill);\r\n}\r\n\r\nconst getMaxHordeSize = (character: CharacterInitializer) => {\r\n const commandSkillLevel = getSkillLevel(character, 'Command');\r\n if (commandSkillLevel < 2) {\r\n return 0;\r\n }\r\n if (commandSkillLevel <= 6) {\r\n return 1;\r\n }\r\n if (commandSkillLevel <= 10) {\r\n return 2;\r\n }\r\n return 3;\r\n}\r\n\r\n\r\nconst getSkillPointsForLevel = (character: CharacterInitializer) => {\r\n return character.level * SkillHelpers.PointsPerLevel;\r\n}\r\n\r\nconst getSkillPointsUsed = (character: CharacterInitializer) => {\r\n return character.skills.sum(s => SkillHelpers.getSkillPointsUsed(s));\r\n}\r\n\r\nconst getRemainingSkillPoints = (character: CharacterInitializer) => {\r\n const skillPointsForLevel = getSkillPointsForLevel(character);\r\n const skillPointsUsed = getSkillPointsUsed(character);\r\n return Math.max(skillPointsForLevel - skillPointsUsed, 0);\r\n}\r\n\r\nconst getMaxHealth = (character: CharacterInitializer) => {\r\n const athletics = getSkillLevel(character, 'Athletics');\r\n const melee = getSkillLevel(character, 'Melee');\r\n if (athletics == null || melee == null) {\r\n throw \"Character missing critical skills.\";\r\n }\r\n\r\n const greaterSkill = athletics > melee ? athletics : melee;\r\n\r\n let skillModifier: number = 2;\r\n if (greaterSkill >= 6) {\r\n skillModifier = 3;\r\n }\r\n else if (greaterSkill >= 10) {\r\n skillModifier = 4;\r\n }\r\n\r\n return 15 + (3 * character.level) + greaterSkill * skillModifier;\r\n}\r\n\r\nconst getEquipment = (character: CharacterInitializer) => {\r\n return [...character.held, ...character.worn, ...character.bodyMods];\r\n}\r\n\r\nconst getInventory = (character: CharacterInitializer) => {\r\n return [...character.held, ...character.worn, ...character.bodyMods, ...character.activeMods, ...character.loose];\r\n}\r\n\r\nconst searchItemByInstanceId = (character: CharacterInitializer, itemInstanceId: string): CharacterItemSearchResult | null => {\r\n for (let heldItem of character.held) {\r\n if (heldItem.instanceId == itemInstanceId) {\r\n return {\r\n collectionName: 'held',\r\n reference: heldItem\r\n };\r\n }\r\n }\r\n\r\n for (let wornItem of character.worn) {\r\n if (wornItem.instanceId == itemInstanceId) {\r\n return {\r\n collectionName: 'worn',\r\n reference: wornItem\r\n };\r\n }\r\n }\r\n\r\n for (let looseItem of character.loose) {\r\n if (looseItem.instanceId == itemInstanceId) {\r\n return {\r\n collectionName: 'loose',\r\n reference: looseItem\r\n };\r\n }\r\n }\r\n\r\n for (let mod of character.activeMods) {\r\n if (mod.instanceId == itemInstanceId) {\r\n return {\r\n collectionName: 'activeMods',\r\n reference: mod\r\n };\r\n }\r\n }\r\n\r\n for (let mod of character.bodyMods) {\r\n if (mod.instanceId == itemInstanceId) {\r\n return {\r\n collectionName: 'bodyMods',\r\n reference: mod\r\n };\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nconst getItemCollection = (character: CharacterInitializer, reference: OwnedItemReference): CharacterItemCollectionName | null => {\r\n if (character.held.any(i => i.instanceId == reference.instanceId)) {\r\n return 'held';\r\n }\r\n if (character.worn.any(i => i.instanceId == reference.instanceId)) {\r\n return 'worn';\r\n }\r\n if (character.loose.any(i => i.instanceId == reference.instanceId)) {\r\n return 'loose';\r\n }\r\n if (character.activeMods.any(i => i.instanceId == reference.instanceId)) {\r\n return 'activeMods';\r\n }\r\n if (character.bodyMods.any(i => i.instanceId == reference.instanceId)) {\r\n return 'bodyMods';\r\n }\r\n return null;\r\n}\r\n\r\nconst removeItems = (character: CharacterInitializer, removeInstanceIds: string[]): [CharacterItemSuite, OwnedItemReference[]] => {\r\n let removed: OwnedItemReference[] = [];\r\n for (let item of character.held) {\r\n if (removeInstanceIds.any(rid => rid == item.instanceId)) {\r\n removed.push(item);\r\n }\r\n }\r\n const held = character.held.filter(i => !removeInstanceIds.any(r => r == i.instanceId));\r\n \r\n for (let item of character.worn) {\r\n if (removeInstanceIds.any(rid => rid == item.instanceId)) {\r\n removed.push(item);\r\n }\r\n }\r\n const worn = character.worn.filter(i => !removeInstanceIds.any(r => r == i.instanceId));\r\n \r\n for (let item of character.bodyMods) {\r\n if (removeInstanceIds.any(rid => rid == item.instanceId)) {\r\n removed.push(item);\r\n delete item.assignedItemId;\r\n delete item.assignedSlotId;\r\n }\r\n }\r\n const bodyMods = character.bodyMods.filter(i => !removeInstanceIds.any(r => r == i.instanceId));\r\n\r\n for (let item of character.activeMods) {\r\n if (removeInstanceIds.any(rid => rid == item.instanceId)) {\r\n removed.push(item);\r\n delete item.assignedItemId;\r\n delete item.assignedSlotId;\r\n }\r\n }\r\n const activeMods = character.activeMods.filter(i => !removeInstanceIds.any(r => r == i.instanceId));\r\n \r\n //Items removed from loose do NOT get added anywhere else.\r\n const loose = character.loose.filter(i => !removeInstanceIds.any(r => r == i.instanceId));\r\n\r\n const suite = {\r\n held,\r\n worn,\r\n loose,\r\n activeMods,\r\n bodyMods,\r\n };\r\n return [suite, removed];\r\n}\r\n\r\nconst couldHoldItem = (character: CharacterInitializer, allItems: ItemInitializer[], reference: OwnedItemReference, toReplace: OwnedItemReference[] = []) => {\r\n const handsOccupied = character.held\r\n .filter(held => held.instanceId != reference.instanceId)\r\n .filter(held => !toReplace.any(tr => tr.instanceId == held.instanceId))\r\n .sum(held => ItemHelpers.getTotalHandsUsed(allItems, held, character.activeMods));\r\n const itemHands = ItemHelpers.getTotalHandsUsed(allItems, reference, character.activeMods);\r\n return handsOccupied + itemHands <= CharacterHelpers.MaxHands;\r\n}\r\n\r\nconst getWornLimitForSlot = (slotName: string) => WornLimits[slotName as keyof typeof WornLimits] ?? DefaultWornLimit;\r\n\r\nconst couldWearItem = (character: CharacterInitializer, allItems: ItemInitializer[], reference: OwnedItemReference, toReplace: OwnedItemReference[] = []) => {\r\n const toWear = allItems.find(i => i.id == reference.id);\r\n if (toWear == null) {\r\n throw \"Requested to check wearability of nonexistent item.\";\r\n }\r\n\r\n if (!toWear.wornOn.any()) {\r\n return false;\r\n }\r\n\r\n const currentlyWornToStillBeWorn = character.worn\r\n .filter(worn => worn.instanceId != reference.instanceId)\r\n .filter(worn => !toReplace.any(tr => tr.instanceId == worn.instanceId))\r\n .map(worn => allItems.find(i => i.id == worn.id))\r\n .filter(worn => worn != null);\r\n for (let slotName of toWear.wornOn) {\r\n const wornOccupyingSlot = currentlyWornToStillBeWorn.count(cw => cw.wornOn.contains(slotName));\r\n const wornLimit = getWornLimitForSlot(slotName);\r\n if (wornOccupyingSlot >= wornLimit) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nconst isLegalModForCharacter = (character: CharacterInitializer, mod: ModInitializer) => {\r\n for (let skillRequirement of mod.skillRequirements) {\r\n const skillLevel = getSkillLevel(character, skillRequirement.name);\r\n if (skillLevel < skillRequirement.level) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nconst findItem = (character: CharacterInitializer, itemInstanceId: string) => {\r\n return getInventory(character).find(i => i.instanceId == itemInstanceId);\r\n}\r\n\r\nconst findSlottingItem = (character: CharacterInitializer, allItems: ItemInitializer[], slotId: string) => {\r\n return getInventory(character).find(reference => {\r\n if (reference.customSlots.any(cs => cs.id == slotId)) {\r\n return true;\r\n }\r\n\r\n const item = allItems.find(i => i.id == reference.id);\r\n if (item == null) {\r\n return false;\r\n }\r\n return item.slots.any(s => s.id == slotId);\r\n });\r\n}\r\n\r\nconst getArmor = (character: CharacterInitializer, allItems: ItemInitializer[]) => {\r\n return getEquipment(character).sum(ref => {\r\n const item = allItems.find(i => i.id == ref.id);\r\n return item?.armor ?? 0;\r\n });\r\n}\r\n\r\nconst getResilience = (character: CharacterInitializer, allItems: ItemInitializer[]) => {\r\n return getEquipment(character).sum(ref => {\r\n const item = allItems.find(i => i.id == ref.id);\r\n return item?.resilience ?? 0;\r\n });\r\n}\r\n\r\nconst getDefensiveItem = (character: CharacterInitializer, allItems: ItemInitializer[]) => {\r\n for (let ref of character.worn) {\r\n const item = allItems.first(i => i.id == ref.id);\r\n if (item?.wornOn.contains(\"Torso\")) {\r\n return item;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nconst getMovement = (character: CharacterInitializer) => {\r\n return character.movementOverride ?? (character.baseMovement + character.movementAdjust);\r\n}\r\n\r\nconst getActions = (character: CharacterInitializer, allItems: ItemInitializer[], allPerks: PerkInitializer[], allSkills: SkillInitializer[]): CharacterAbility[] => {\r\n return [...character.held.mapMany(h => ItemHelpers.getActions(allItems, h, character.activeMods)),\r\n ...character.worn.mapMany(w => ItemHelpers.getActions(allItems, w, character.activeMods)),\r\n ...character.perks.mapMany(p => PerkHelpers.getActions(allPerks, p)),\r\n ...character.skills.mapMany(s => SkillHelpers.getActions(allSkills, s))];\r\n}\r\n\r\nconst getReactions = (character: CharacterInitializer, allItems: ItemInitializer[], allPerks: PerkInitializer[], allSkills: SkillInitializer[]): CharacterAbility[] => {\r\n return [...character.held.mapMany(h => ItemHelpers.getReactions(allItems, h, character.activeMods)),\r\n ...character.worn.mapMany(w => ItemHelpers.getReactions(allItems, w, character.activeMods)),\r\n ...character.perks.mapMany(p => PerkHelpers.getReactions(allPerks, p)),\r\n ...character.skills.mapMany(s => SkillHelpers.getReactions(allSkills, s))];\r\n}\r\n\r\nconst getPassives = (character: CharacterInitializer, allItems: ItemInitializer[], allPerks: PerkInitializer[], allSkills: SkillInitializer[]): CharacterAbility[] => {\r\n return [...character.held.mapMany(h => ItemHelpers.getPassives(allItems, h, character.activeMods)),\r\n ...character.worn.mapMany(w => ItemHelpers.getPassives(allItems, w, character.activeMods)),\r\n ...character.perks.mapMany(p => PerkHelpers.getPassives(allPerks, p)),\r\n ...character.skills.mapMany(s => SkillHelpers.getPassives(allSkills, s))];\r\n}\r\n\r\nconst getFeatures = (character: CharacterInitializer, allPerks: PerkInitializer[], allSkills: SkillInitializer[]): CharacterAbility[] => {\r\n const perkFeatures = character.perks.mapMany(perk => PerkHelpers.getFeatures(allPerks, perk));\r\n const skillFeatures = character.skills.mapMany(skill => SkillHelpers.getFeatures(allSkills, skill));\r\n return [...perkFeatures, ...skillFeatures].unique(GetCharacterAbilityKey);\r\n}\r\n\r\nexport const CharacterHelpers = Object.freeze({\r\n getSkillLevel,\r\n getMaxHordeSize,\r\n getRemainingSkillPoints,\r\n getMaxHealth,\r\n getEquipment,\r\n getInventory,\r\n searchItemByInstanceId,\r\n getItemCollection,\r\n removeItems,\r\n couldHoldItem,\r\n getWornLimitForSlot,\r\n couldWearItem,\r\n isLegalModForCharacter,\r\n findItem,\r\n findSlottingItem,\r\n getArmor,\r\n getResilience,\r\n getDefensiveItem,\r\n getMovement,\r\n getActions,\r\n getReactions,\r\n getPassives,\r\n getFeatures,\r\n\r\n MaxHands: 3,\r\n MinLevel: 1,\r\n MaxLevel: 10,\r\n})\r\n\r\nexport type CharacterEntityReferences = {\r\n competencies: SortedSet;\r\n conditions: SortedSet;\r\n items: SortedSet;\r\n minions: SortedSet;\r\n perks: SortedSet;\r\n personalities: SortedSet;\r\n rhetorics: SortedSet;\r\n skills: SortedSet;\r\n}\r\n\r\nexport type CharacterCollections = {\r\n competencies: CompetencyInitializer[];\r\n conditions: Condition[];\r\n items: ItemInitializer[];\r\n minions: MinionInitializer[];\r\n perks: PerkInitializer[];\r\n personalities: Personality[];\r\n rhetorics: RhetoricInitializer[];\r\n skills: SkillInitializer[];\r\n}\r\n\r\nexport const CollectionsToReferences = (collections: CharacterCollections): CharacterEntityReferences => {\r\n return {\r\n competencies: new SortedSet(collections.competencies),\r\n conditions: new SortedSet(collections.conditions),\r\n items: new SortedSet(collections.items),\r\n minions: new SortedSet(collections.minions),\r\n perks: new SortedSet(collections.perks),\r\n personalities: new SortedSet(collections.personalities),\r\n rhetorics: new SortedSet(collections.rhetorics),\r\n skills: new SortedSet(collections.skills)\r\n };\r\n}","import { ApiResponse, ErrorApiResponse, SuccessApiResponse } from \"../apis/responses/ApiResponse\";\r\nimport { ValidationMessage } from \"../apis/ValidationMessage\";\r\nimport { CharacterEntityReferences, CharacterHelpers, CharacterInitializer } from \"../entities/characters/Character\";\r\nimport { CompetencyInitializer } from \"../entities/characters/Competencies\";\r\nimport { Condition } from \"../entities/characters/Conditions\";\r\nimport { SortedSet } from \"../entities/data-structures/SortedSet\";\r\nimport { ItemInitializer, UnknownItemInitializer } from \"../entities/library/items/ItemInitializers\";\r\nimport { MinionInitializer } from \"../entities/library/minions/Minion\";\r\nimport { PerkInitializer } from \"../entities/library/perks/Perk\";\r\nimport { SkillInitializer } from \"../entities/library/skills/Skill\";\r\nimport { Personality } from \"../entities/library/socials/Personality\";\r\nimport { RhetoricInitializer } from \"../entities/library/socials/Rhetoric\";\r\nimport { ApiDefaultState } from \"../store/stores/api/ApiStore.State\";\r\n\r\nexport type CharacterEntityInitializers = {\r\n characters: CharacterInitializer[];\r\n competencies: CompetencyInitializer[];\r\n conditions: Condition[];\r\n items: UnknownItemInitializer[];\r\n minions: MinionInitializer[];\r\n perks: PerkInitializer[];\r\n personalities: Personality[];\r\n rhetorics: RhetoricInitializer[];\r\n skills: SkillInitializer[];\r\n}\r\n\r\nexport class CharacterService {\r\n public async getAllCharactersWithEntities(references: CharacterEntityReferences): Promise> {\r\n const charactersResponse = await ApiDefaultState.characters.getAllCharacters();\r\n if (charactersResponse.status == 'Error') {\r\n return new ErrorApiResponse(charactersResponse.validationResults);\r\n }\r\n const characters = charactersResponse.payload;\r\n return await this.getCharactersWithEntities(references, characters);\r\n }\r\n\r\n\r\n public async getCharactersByIdsWithEntities(references: CharacterEntityReferences, ids: string[]): Promise> {\r\n const charactersResponse = await ApiDefaultState.characters.getCharactersByIds(ids);\r\n if (charactersResponse.status == 'Error') {\r\n return new ErrorApiResponse(charactersResponse.validationResults);\r\n }\r\n const characters = charactersResponse.payload;\r\n return await this.getCharactersWithEntities(references, characters);\r\n }\r\n\r\n /**\r\n * Retrieves characters and their associated entities.\r\n * @param references Sorted sets of the entities referenced on a character initializer.\r\n * @param characters Character initializers to retrieve entities for.\r\n * @returns A collection of character initializers and initializers for their referenced entities.\r\n */\r\n private async getCharactersWithEntities(references: CharacterEntityReferences, characters: CharacterInitializer[]): Promise> {\r\n const competenciesPromise = ApiDefaultState.competencies.getAll();\r\n const conditionsPromise = ApiDefaultState.conditions.getAll();\r\n const itemsPromise = this.getCharacterItems(characters, references.items);\r\n const minionsPromise = this.getCharacterMinions(characters, references.minions);\r\n const perksPromise = this.getCharacterPerks(characters, references.perks);\r\n const personalitiesPromise = this.getCharacterPersonalities(characters, references.personalities);\r\n const rhetoricsPromise = this.getCharacterRhetorics(characters, references.rhetorics);\r\n const skillsPromise = this.getCharacterSkills(characters, references.skills);\r\n \r\n const validationResults: ValidationMessage[] = [];\r\n const competenciesResponse = await competenciesPromise;\r\n if (competenciesResponse.status == 'Error') {\r\n validationResults.push(...competenciesResponse.validationResults);\r\n }\r\n\r\n const conditionsResponse = await conditionsPromise;\r\n if (conditionsResponse.status == 'Error') {\r\n validationResults.push(...conditionsResponse.validationResults);\r\n }\r\n\r\n const itemResponse = await itemsPromise;\r\n if (itemResponse.status == 'Error') {\r\n validationResults.push(...itemResponse.validationResults);\r\n }\r\n\r\n const minionResponse = await minionsPromise;\r\n if (minionResponse.status == 'Error') {\r\n validationResults.push(...minionResponse.validationResults);\r\n }\r\n\r\n const perkResponse = await perksPromise;\r\n if (perkResponse.status == 'Error') {\r\n validationResults.push(...perkResponse.validationResults);\r\n }\r\n\r\n const personalityResponse = await personalitiesPromise;\r\n if (personalityResponse.status == 'Error') {\r\n validationResults.push(...personalityResponse.validationResults);\r\n }\r\n\r\n const rhetoricResponse = await rhetoricsPromise;\r\n if (rhetoricResponse.status == 'Error') {\r\n validationResults.push(...rhetoricResponse.validationResults);\r\n }\r\n\r\n const skillResponse = await skillsPromise;\r\n if (skillResponse.status == 'Error') {\r\n validationResults.push(...skillResponse.validationResults);\r\n }\r\n\r\n const hasErrors = competenciesResponse.status == 'Error'\r\n || conditionsResponse.status == 'Error'\r\n || itemResponse.status == 'Error'\r\n || minionResponse.status == 'Error'\r\n || perkResponse.status == 'Error'\r\n || personalityResponse.status == 'Error'\r\n || rhetoricResponse.status == 'Error'\r\n || skillResponse.status == 'Error';\r\n if (hasErrors) {\r\n return new ErrorApiResponse(validationResults);\r\n }\r\n\r\n const initializers: CharacterEntityInitializers = {\r\n characters: characters,\r\n competencies: competenciesResponse.payload,\r\n conditions: conditionsResponse.payload,\r\n items: itemResponse.payload,\r\n minions: minionResponse.payload,\r\n perks: perkResponse.payload,\r\n personalities: personalityResponse.payload,\r\n rhetorics: rhetoricResponse.payload,\r\n skills: skillResponse.payload\r\n };\r\n return new SuccessApiResponse(initializers);\r\n }\r\n\r\n private async getCharacterItems(characters: CharacterInitializer[], items: SortedSet): Promise> {\r\n const itemIds = characters\r\n .mapMany(c => CharacterHelpers.getInventory(c))\r\n .map(i => i.id)\r\n .filter(id => !items.containsKey(id));\r\n return await ApiDefaultState.items.getItemsWithIds(itemIds);\r\n }\r\n\r\n private async getCharacterMinions(characters: CharacterInitializer[], minions: SortedSet): Promise> {\r\n const minionIds = characters.mapMany(character => character.minions)\r\n .map(m => m.id)\r\n .filter(id => !minions.containsKey(id));\r\n return await ApiDefaultState.minions.getMinionInitializersWithIds(minionIds);\r\n }\r\n\r\n private async getCharacterPerks(characters: CharacterInitializer[], perks: SortedSet): Promise> {\r\n const perkIds = characters.mapMany(character => character.perks)\r\n .map(p => p.id)\r\n .filter(id => !perks.containsKey(id));\r\n return await ApiDefaultState.perks.getPerksWithIds(perkIds);\r\n }\r\n\r\n private async getCharacterPersonalities(characters: CharacterInitializer[], personalities: SortedSet): Promise> {\r\n const personalityIds = characters.mapMany(character => character.personalities)\r\n .map(p => p.id)\r\n .filter(id => !personalities.containsKey(id));\r\n return await ApiDefaultState.personalities.getPersonalitiesWithIds(personalityIds);\r\n }\r\n\r\n private async getCharacterRhetorics(characters: CharacterInitializer[], rhetorics: SortedSet): Promise> {\r\n const rhetoricIds = characters.mapMany(character => character.rhetorics)\r\n .map(r => r.id)\r\n .filter(id => !rhetorics.containsKey(id));\r\n return await ApiDefaultState.rhetorics.getRhetoricsWithIds(rhetoricIds);\r\n }\r\n\r\n private async getCharacterSkills(characters: CharacterInitializer[], skills: SortedSet): Promise> {\r\n const skillIds = characters.mapMany(character => character.skills)\r\n .map(s => s.id)\r\n .filter(id => !skills.containsKey(id));\r\n return await ApiDefaultState.skills.getSkillsWithIds(skillIds);\r\n }\r\n}","import { AdventureApi } from \"../../../apis/account/Api.Adventure\"\r\nimport { CharacterApi } from \"../../../apis/account/Api.Character\"\r\nimport { PlayerApi } from \"../../../apis/account/Api.Player\"\r\nimport { AccountApiServerConfig } from \"../../../apis/account/config/AccountApiServerConfig\"\r\nimport { BookApi } from \"../../../apis/library/Api.Book\"\r\nimport { CompetencyApi } from \"../../../apis/library/Api.Competency\"\r\nimport { ConditionApi } from \"../../../apis/library/Api.Condition\"\r\nimport { EnemyApi } from \"../../../apis/library/Api.Enemies\"\r\nimport { EnemyActiveAbilityApi } from \"../../../apis/library/Api.EnemyActiveAbilities\"\r\nimport { EnemyPassiveAbilityApi } from \"../../../apis/library/Api.EnemyPassiveAbilities\"\r\nimport { EnemyReactiveAbilityApi } from \"../../../apis/library/Api.EnemyReactiveAbilities\"\r\nimport { HazardApi } from \"../../../apis/library/Api.Hazard\"\r\nimport { ItemApi } from \"../../../apis/library/Api.Item\"\r\nimport { MinionApi } from \"../../../apis/library/Api.Minions\"\r\nimport { PerkApi } from \"../../../apis/library/Api.Perk\"\r\nimport { PersonalityApi } from \"../../../apis/library/Api.Personality\"\r\nimport { RhetoricApi } from \"../../../apis/library/Api.Rhetoric\"\r\nimport { ScenarioApi } from \"../../../apis/library/Api.Scenario\"\r\nimport { SkillApi } from \"../../../apis/library/Api.Skill\"\r\nimport { TagApi } from \"../../../apis/library/Api.Tag\"\r\nimport { LibraryApiServerConfig } from \"../../../apis/library/config/LibraryApiServerConfig\"\r\nimport { CharacterService } from \"../../../services/CharacterService\"\r\n\r\nexport interface ApiState {\r\n //Account\r\n adventures: AdventureApi,\r\n characters: CharacterApi,\r\n users: PlayerApi,\r\n\r\n //Library\r\n books: BookApi,\r\n competencies: CompetencyApi,\r\n conditions: ConditionApi,\r\n enemies: EnemyApi,\r\n enemyActiveAbilities: EnemyActiveAbilityApi,\r\n enemyReactiveAbilities: EnemyReactiveAbilityApi,\r\n enemyPassiveAbilities: EnemyPassiveAbilityApi,\r\n hazards: HazardApi,\r\n items: ItemApi,\r\n minions: MinionApi,\r\n perks: PerkApi,\r\n personalities: PersonalityApi,\r\n rhetorics: RhetoricApi,\r\n scenarios: ScenarioApi,\r\n skills: SkillApi,\r\n tags: TagApi,\r\n\r\n characterService: CharacterService,\r\n}\r\n\r\nconst apis = {\r\n //Account\r\n adventures: new AdventureApi(AccountApiServerConfig.AdventureApiConfig),\r\n characters: new CharacterApi(AccountApiServerConfig.CharactersApiConfig),\r\n users: new PlayerApi(AccountApiServerConfig.PlayerApiConfig),\r\n\r\n //Library\r\n books: new BookApi(LibraryApiServerConfig.BookApiConfig),\r\n competencies: new CompetencyApi(LibraryApiServerConfig.CompetencyApiConfig),\r\n conditions: new ConditionApi(LibraryApiServerConfig.ConditionApiConfig),\r\n enemies: new EnemyApi(LibraryApiServerConfig.EnemyApiConfig),\r\n enemyActiveAbilities: new EnemyActiveAbilityApi(LibraryApiServerConfig.EnemyActiveAbilityApiConfig),\r\n enemyReactiveAbilities: new EnemyReactiveAbilityApi(LibraryApiServerConfig.EnemyReactiveAbilityApiConfig),\r\n enemyPassiveAbilities: new EnemyPassiveAbilityApi(LibraryApiServerConfig.EnemyPassiveAbilityApiConfig),\r\n hazards: new HazardApi(LibraryApiServerConfig.HazardApiConfig),\r\n items: new ItemApi(LibraryApiServerConfig.ItemApiConfig),\r\n minions: new MinionApi(LibraryApiServerConfig.MinionApiConfig),\r\n perks: new PerkApi(LibraryApiServerConfig.PerkApiConfig),\r\n personalities: new PersonalityApi(LibraryApiServerConfig.PersonalityApiConfig),\r\n rhetorics: new RhetoricApi(LibraryApiServerConfig.RhetoricApiConfig),\r\n scenarios: new ScenarioApi(LibraryApiServerConfig.ScenarioApiConfig),\r\n skills: new SkillApi(LibraryApiServerConfig.SkillApiConfig),\r\n tags: new TagApi(LibraryApiServerConfig.TagApiConfig)\r\n}\r\nexport const ApiDefaultState: ApiState = Object.freeze({\r\n ...apis,\r\n characterService: new CharacterService()\r\n});","export const UiConfig = Object.freeze({\r\n infiniteScrollThreshold: 150,\r\n rollDiceDuration: 750,\r\n});","import { Adventure, CommunalDice, CreateAdventureRequest } from \"../../../entities/adventures/Adventure\";\r\nimport { ADVENTURE_EVENT_HELPERS, AdventureEvent } from \"../../../entities/adventures/AdventureEvent\";\r\nimport { CharacterInitializer } from \"../../../entities/characters/Character\";\r\nimport { SortedSet } from \"../../../entities/data-structures/SortedSet\";\r\nimport { ErrorToast, SuccessToast } from \"../../../entities/toasts/Toasts\";\r\nimport { AppThunkAction } from \"../ApplicationState\";\r\nimport { ToastAction, ToastDispatchables } from \"../toasts/Toasts.Actions\";\r\nimport { UniversalActions } from \"../UniversalActions\";\r\nimport { UserActions } from \"../players/PlayerStore.Actions\";\r\nimport { ApiDefaultState } from \"../api/ApiStore.State\";\r\nimport { CharacterSetCommunalRolls } from \"../collection/characters/actions/CharacterSpecificActions\";\r\nimport { AdventureHub } from \"../../../apis/account/Hub.Adventure\";\r\nimport { UiConfig } from \"../../../config/UIConfig\";\r\nimport { TIMING_UTILITIES } from \"../../../utils/TimingUtilities\";\r\nimport { NAV_UTILITIES } from \"../../../utils/NavUtilities\";\r\nimport React from \"react\";\r\n\r\nexport type AdventuresLoaded = { type: 'ADVENTURES_LOADED', adventures: Adventure[] }\r\nexport type AdventuresLoadError = { type: 'ADVENTURES_LOAD_ERROR' }\r\nexport type AdventureCreated = { type: 'ADVENTURE_CREATED', adventure: Adventure }\r\nexport type AdventureSetLeavingStatus = { type: 'ADVENTURE_SET_LEAVING_STATUS', id: string, leaving: boolean }\r\nexport type AdventureLeave = { type: 'ADVENTURE_LEAVE', id: string }\r\nexport type AdventureSetCreating = { type: 'ADVENTURE_SET_CREATING', creating: boolean };\r\nexport type AdventureUpdateName = { type: 'ADVENTURE_UPDATE_NAME', id: string, name: string };\r\nexport type AdventureUpdateContentSharing = { type: 'ADVENTURE_UPDATE_CONTENT_SHARING', id: string, allowContentSharing: boolean }\r\nexport type AdventureUpdateInvite = { type: 'ADVENTURE_UPDATE_INVITE', id: string, inviteId: string }\r\nexport type AdventureUpdatePublicNotes = { type: 'ADVENTURE_UPDATE_PUBLIC_NOTES', id: string, publicNotes: string }\r\nexport type AdventureUpdatePrivateNotes = { type: 'ADVENTURE_UPDATE_PRIVATE_NOTES', id: string, privateNotes: string }\r\nexport type AdventurePlayerJoined = { type: 'ADVENTURE_PLAYER_JOINED', id: string, playerId: string }\r\nexport type AdventurePlayerLeft = { type: 'ADVENTURE_PLAYER_LEFT', id: string, playerId: string }\r\nexport type AdventureCharacterAdded = { type: 'ADVENTURE_CHARACTER_ADDED', id: string, characterId: string }\r\nexport type AdventureCharacterRemoved = { type: 'ADVENTURE_CHARACTER_REMOVED', id: string, characterId: string }\r\nexport type AdventureGetEvents = { type: 'ADVENTURE_GET_EVENTS', id: string, events: AdventureEvent[], paged: boolean, done: boolean }\r\nexport type AdventureSetEventsLoading = { type: 'ADVENTURE_SET_EVENTS_LOADING', id: string, loading: boolean }\r\nexport type AdventureReceiveNewEvent = { type: 'ADVENTURE_RECEIVE_NEW_EVENT', id: string, event: AdventureEvent }\r\nexport type AdventureSetCommunalDice = { type: 'ADVENTURE_SET_COMMUNAL_DICE', id: string, communalDice: CommunalDice }\r\nexport type AdventureSetRolling = { type: 'ADVENTURE_SET_ROLLING', id: string, rolling: boolean }\r\nexport type AdventureSetCharacterChange = { type: 'ADVENTURE_SET_CHARACTER_CHANGE', modifyingCharacterOnAdventure: boolean }\r\n\r\nexport type AdventureAction = AdventuresLoaded | AdventuresLoadError | AdventureCreated | AdventureLeave\r\n | AdventureSetLeavingStatus | AdventureSetCreating\r\n | AdventureUpdateName | AdventureUpdateContentSharing | AdventureUpdateInvite | AdventureUpdatePublicNotes\r\n | AdventureUpdatePrivateNotes | AdventurePlayerJoined | AdventurePlayerLeft | AdventureCharacterAdded\r\n | AdventureCharacterRemoved | AdventureGetEvents | AdventureSetEventsLoading | AdventureReceiveNewEvent\r\n | AdventureSetCommunalDice | AdventureSetRolling | AdventureSetCharacterChange;\r\n\r\nconst getAdventure = (id: string): AppThunkAction => \r\n async (dispatch, getState) => {\r\n try {\r\n const response = await ApiDefaultState.adventures.getAdventure(id);\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'ADVENTURES_LOADED', adventures: [response.payload] });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n UniversalActions.navToError(dispatch);\r\n }\r\n };\r\n\r\nexport const AdventureActions = Object.freeze({\r\n getAdventure,\r\n\r\n getAdventures: (): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n try {\r\n const response = await ApiDefaultState.adventures.getUserAdventures(true);\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'ADVENTURES_LOADED', adventures: response.payload });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch(e) {\r\n console.error(e);\r\n dispatch({ type: 'ADVENTURES_LOAD_ERROR' });\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Error loading adventures.\"), dispatch);\r\n }\r\n },\r\n\r\n createAdventure: (request: CreateAdventureRequest, successCallback: (id: string) => unknown): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n try {\r\n dispatch({ type: 'ADVENTURE_SET_CREATING', creating: true });\r\n const response = await ApiDefaultState.adventures.createAdventure(request);\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'ADVENTURE_CREATED', adventure: response.payload });\r\n successCallback(response.payload.id);\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch(e) {\r\n console.error(e);\r\n UniversalActions.navToError(dispatch);\r\n }\r\n finally {\r\n dispatch({ type: 'ADVENTURE_SET_CREATING', creating: false });\r\n }\r\n },\r\n\r\n updateName: (adventure: Adventure, name: string): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const oldVersion = { ...adventure };\r\n const newVersion = { ...adventure, name };\r\n\r\n const undo = () => {\r\n dispatch({ type: 'ADVENTURE_UPDATE_NAME', id: adventure.id, name: oldVersion.name })\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error updating name.'), dispatch);\r\n }\r\n dispatch({ type: 'ADVENTURE_UPDATE_NAME', id: adventure.id, name });\r\n try {\r\n const response = await ApiDefaultState.adventures.update(oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n setPublicNotes: (adventure: Adventure, publicNotes: string): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const newAdventure = {\r\n ...adventure,\r\n publicNotes\r\n }\r\n\r\n try {\r\n const response = await ApiDefaultState.adventures.update(adventure, newAdventure);\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'ADVENTURE_UPDATE_PUBLIC_NOTES', id: adventure.id, publicNotes });\r\n }\r\n else {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Adventure notes not updated.\"), dispatch);\r\n }\r\n }\r\n catch (e) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Error updating notes.\"), dispatch);\r\n }\r\n },\r\n\r\n setPrivateNotes: (adventure: Adventure, privateNotes: string): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n dispatch({ type: 'ADVENTURE_UPDATE_PRIVATE_NOTES', id: adventure.id, privateNotes });\r\n\r\n const newAdventure = {\r\n ...adventure,\r\n privateNotes\r\n }\r\n try {\r\n const response = await ApiDefaultState.adventures.update(adventure, newAdventure);\r\n if (response.status == 'Error') {\r\n dispatch({ type: 'ADVENTURE_UPDATE_PRIVATE_NOTES', id: adventure.id, privateNotes: adventure.privateNotes });\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Adventure notes not updated.\"), dispatch);\r\n }\r\n }\r\n catch (e) {\r\n dispatch({ type: 'ADVENTURE_UPDATE_PRIVATE_NOTES', id: adventure.id, privateNotes: adventure.privateNotes });\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Error updating notes.\"), dispatch);\r\n }\r\n },\r\n\r\n setContentSharing: (adventure: Adventure, allowContentSharing: boolean): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const oldVersion = { ...adventure };\r\n const newVersion = { ...adventure, allowContentSharing };\r\n\r\n const undo = () => {\r\n dispatch({ type: 'ADVENTURE_UPDATE_CONTENT_SHARING', id: adventure.id, allowContentSharing: oldVersion.allowsSharedContent });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error ${allowContentSharing ? 'enabling' : 'disabling'} content sharing`), dispatch);\r\n }\r\n dispatch({ type: 'ADVENTURE_UPDATE_CONTENT_SHARING', id: adventure.id, allowContentSharing });\r\n try {\r\n const response = await ApiDefaultState.adventures.update(oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n resetInvite: (adventure: Adventure): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const onError = () => ToastDispatchables.toastLegacy(new ErrorToast(\"Error reseting invite link.\"), dispatch);\r\n try {\r\n const response = await ApiDefaultState.adventures.resetInvite(adventure.id);\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'ADVENTURE_UPDATE_INVITE', id: adventure.id, inviteId: response.payload });\r\n ToastDispatchables.toastLegacy(new SuccessToast(\"Invite link updated.\"), dispatch);\r\n }\r\n else {\r\n onError();\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n onError();\r\n }\r\n },\r\n\r\n join: (inviteId: string, successCallback: (id: string) => unknown, errorCallback: () => unknown): AppThunkAction | ToastAction> =>\r\n async (dispatch) => {\r\n try {\r\n const hub = AdventureHub.Instance();\r\n const response = await hub.joinAdventure(inviteId);\r\n if (response.status == 'Success') {\r\n await dispatch(getAdventure(response.payload));\r\n successCallback(response.payload);\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n errorCallback();\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Error joining adventure.\"), dispatch);\r\n errorCallback();\r\n throw e;\r\n }\r\n },\r\n\r\n playerJoined: (id: string, playerId: string): AppThunkAction | AdventurePlayerJoined | ToastAction> =>\r\n async (dispatch, getState) => {\r\n dispatch({ type: 'ADVENTURE_PLAYER_JOINED', id, playerId });\r\n\r\n const { players: users } = getState().player;\r\n const player = users.find(p => p.id == playerId);\r\n if (player != null) {\r\n ToastDispatchables.toastInfo(dispatch, `${player.displayName} joined the adventure.`);\r\n }\r\n },\r\n\r\n leave: (id: string, successCallback: () => unknown): AppThunkAction =>\r\n async (dispatch) => {\r\n try {\r\n dispatch({ type: 'ADVENTURE_SET_LEAVING_STATUS', id, leaving: true });\r\n const hub = AdventureHub.Instance();\r\n const response = await hub.leaveAdventure(id);\r\n if (response.status == 'Success') {\r\n successCallback();\r\n dispatch({ type: 'ADVENTURE_LEAVE', id });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error leaving adventure.'), dispatch);\r\n throw e;\r\n }\r\n finally {\r\n dispatch({ type: 'ADVENTURE_SET_LEAVING_STATUS', id, leaving: false });\r\n }\r\n },\r\n\r\n playerLeft: (id: string, playerId: string): AppThunkAction =>\r\n (dispatch, getState) => {\r\n dispatch({ type: 'ADVENTURE_PLAYER_LEFT', id, playerId });\r\n },\r\n\r\n receiveCharacterAdded: (id: string, characterId: string): AppThunkAction =>\r\n (dispatch) => dispatch({ type: 'ADVENTURE_CHARACTER_ADDED', id, characterId }),\r\n\r\n receivedCharacterRemoved: (id: string, characterId: string): AppThunkAction =>\r\n (dispatch) => dispatch({ type: 'ADVENTURE_CHARACTER_REMOVED', id, characterId }),\r\n\r\n addCharacterToAdventure: (adventure: Adventure, character: CharacterInitializer): AppThunkAction =>\r\n async (dispatch) => {\r\n try {\r\n const hub = AdventureHub.Instance();\r\n dispatch({ type: 'ADVENTURE_SET_CHARACTER_CHANGE', modifyingCharacterOnAdventure: true });\r\n const response = await hub.addCharacterToAdventure(adventure.id, character.id);\r\n if (response.status == 'Error') {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n else {\r\n dispatch({ type: 'ADVENTURE_CHARACTER_ADDED', id: adventure.id, characterId: character.id });\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error adding ${character.name} from ${adventure.name}.`), dispatch);\r\n throw e;\r\n }\r\n finally {\r\n dispatch({ type: 'ADVENTURE_SET_CHARACTER_CHANGE', modifyingCharacterOnAdventure: false });\r\n }\r\n },\r\n\r\n removeCharacterFromAdventure: (adventure: Adventure, character: CharacterInitializer): AppThunkAction =>\r\n async (dispatch) => {\r\n try {\r\n const hub = AdventureHub.Instance();\r\n dispatch({ type: 'ADVENTURE_SET_CHARACTER_CHANGE', modifyingCharacterOnAdventure: true });\r\n const response = await hub.removeCharacterFromAdventure(adventure.id, character.id);\r\n if (response.status == 'Error') {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n else {\r\n dispatch({ type: 'ADVENTURE_CHARACTER_REMOVED', id: adventure.id, characterId: character.id });\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error removing ${character.name} from ${adventure.name}.`), dispatch);\r\n throw e;\r\n }\r\n finally {\r\n dispatch({ type: 'ADVENTURE_SET_CHARACTER_CHANGE', modifyingCharacterOnAdventure: false });\r\n }\r\n },\r\n\r\n deactivate: (id: string): AppThunkAction => \r\n async (dispatch, getState) => {\r\n try {\r\n const response = await ApiDefaultState.adventures.deactivate(id);\r\n if (response.status == 'Error') {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Error deactivating adventure.\"), dispatch);\r\n throw e;\r\n }\r\n },\r\n\r\n getAdventureEvents: (id: string, skip?: number, take?: number): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n try {\r\n dispatch({ type: 'ADVENTURE_SET_EVENTS_LOADING', id, loading: true });\r\n const response = await ApiDefaultState.adventures.getAdventureEvents(id, skip, take);\r\n if (response.status == 'Error') {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n dispatch({ type: 'ADVENTURE_SET_EVENTS_LOADING', id, loading: false });\r\n }\r\n else {\r\n const paged = skip != undefined || take != undefined;\r\n const done = take == undefined || response.payload.length < take;\r\n dispatch({ type: 'ADVENTURE_GET_EVENTS', id, events: response.payload, paged, done });\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Error retrieving adventure events.\"), dispatch);\r\n throw e;\r\n }\r\n },\r\n\r\n pushNewEvent: (adventureId: string, event: AdventureEvent): AppThunkAction =>\r\n async (dispatch) => {\r\n if (ADVENTURE_EVENT_HELPERS.isRollEvent(event)) {\r\n await TIMING_UTILITIES.delay(UiConfig.rollDiceDuration);\r\n }\r\n ToastDispatchables.toastInfo(dispatch, event);\r\n },\r\n\r\n setCommunalDice: (id: string, communalDice: CommunalDice): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const state = getState();\r\n const adventureSet = new SortedSet(state.adventure.adventures);\r\n const adventure = adventureSet.get(id);\r\n if (adventure == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Adventure not found!\"), dispatch);\r\n return;\r\n }\r\n\r\n const undo = () => {\r\n dispatch({ type: 'ADVENTURE_SET_COMMUNAL_DICE', id, communalDice: adventure.communalDice });\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Error setting communal dice.\"), dispatch);\r\n }\r\n try {\r\n dispatch({ type: 'ADVENTURE_SET_COMMUNAL_DICE', id, communalDice });\r\n const hub = await AdventureHub.Instance();\r\n const response = await hub.setCommunalDice(id, communalDice);\r\n if (response.status == 'Error') {\r\n undo();\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n undo();\r\n }\r\n },\r\n\r\n rollCommunalDice: (id: string): AppThunkAction => \r\n async (dispatch, getState) => {\r\n const state = getState();\r\n const adventure = state.adventure.adventures.find(a => a.id == id);\r\n if (adventure == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Adventure not found!\"), dispatch);\r\n return;\r\n }\r\n\r\n const undo = () => {\r\n dispatch({ type: 'ADVENTURE_SET_COMMUNAL_DICE', id, communalDice: adventure.communalDice });\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Error rolling communal dice.\"), dispatch);\r\n }\r\n try {\r\n dispatch({ type: 'ADVENTURE_SET_ROLLING', id, rolling: true });\r\n const hub = await AdventureHub.Instance();\r\n const response = await hub.rollCommunalDice(id);\r\n if (response.status == 'Error') {\r\n undo();\r\n return;\r\n }\r\n await TIMING_UTILITIES.delay(UiConfig.rollDiceDuration);\r\n dispatch({ type: 'ADVENTURE_SET_COMMUNAL_DICE', id, communalDice: response.payload });\r\n }\r\n catch (e) {\r\n console.error(e);\r\n undo();\r\n }\r\n finally {\r\n dispatch({ type: 'ADVENTURE_SET_ROLLING', id, rolling: false });\r\n }\r\n },\r\n\r\n receiveCommunalDice: (id: string, communalDice: CommunalDice): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n try {\r\n const state = getState();\r\n const adventure = state.adventure.adventures.find(a => a.id == id);\r\n if (adventure == null) {\r\n return;\r\n }\r\n\r\n dispatch({ type: 'ADVENTURE_SET_ROLLING', id, rolling: true });\r\n await TIMING_UTILITIES.delay(UiConfig.rollDiceDuration);\r\n dispatch({ type: 'ADVENTURE_SET_COMMUNAL_DICE', id, communalDice });\r\n }\r\n finally {\r\n dispatch({ type: 'ADVENTURE_SET_ROLLING', id, rolling: false });\r\n }\r\n },\r\n\r\n});","import { CharacterInitializer, CollectionsToReferences, CreateCharacterRequest } from \"../../../../entities/characters/Character\";\r\nimport { HandTypeValue, RollRequest, RollResponse } from \"../../../../entities/rolls/Roll\";\r\nimport { ErrorToast } from \"../../../../entities/toasts/Toasts\";\r\nimport { CharacterEntityInitializers } from \"../../../../services/CharacterService\";\r\nimport { ApiDefaultState } from \"../../api/ApiStore.State\";\r\nimport { AppThunkAction } from \"../../ApplicationState\";\r\nimport { LibraryAction } from \"../../library/LibraryStore.Actions\";\r\nimport { ToastAction, ToastDispatchables } from \"../../toasts/Toasts.Actions\";\r\nimport { CharacterCompetencyAction } from \"./actions/CharacterCompetencyActions\";\r\nimport { CharacterSpecificAction } from \"./actions/CharacterSpecificActions\";\r\nimport { CharacterConditionAction } from \"./actions/CharacterConditionActions\";\r\nimport { CharacterItemAction } from \"./actions/CharacterItemActions\";\r\nimport { CharacterMinionAction } from \"./actions/CharacterMinionActions\";\r\nimport { CharacterPerkAction } from \"./actions/CharacterPerkActions\";\r\nimport { CharacterPersonalityAction } from \"./actions/CharacterPersonalityActions\";\r\nimport { CharacterPropertyAction } from \"./actions/CharacterPropertyActions\";\r\nimport { CharacterSkillAction } from \"./actions/CharacterSkillActions\";\r\nimport { CharacterRhetoricAction } from \"./actions/CharacterRhetoricActions\";\r\nimport { UiConfig } from \"../../../../config/UIConfig\";\r\nimport { AdventureHub } from \"../../../../apis/account/Hub.Adventure\";\r\n\r\ntype CharactersLoaded = { type: 'CHARACTERS_LOADED', characters: CharacterInitializer[] }\r\ntype CharacterSetCreating = { type: 'CHARACTER_SET_CREATING', creating: boolean }\r\ntype CharactersUnownedLoaded = { type: 'CHARACTERS_UNOWNED_LOADED', characters: CharacterInitializer[] }\r\ntype CharacterUnownedReceived = { type: 'CHARACTER_UNOWNED_RECEIVED', character: CharacterInitializer }\r\ntype CharacterAddNew = { type: 'CHARACTER_ADD_NEW', character: CharacterInitializer }\r\ntype CharacterDeleting = { type: 'CHARACTER_DELETING', id: string, undo?: boolean }\r\ntype CharacterDeleted = { type: 'CHARACTER_DELETED', id: string }\r\nexport type CharacterUpdated = { type: 'CHARACTER_UPDATED', character: CharacterInitializer }\r\nexport type CharacterSetPlayerRolling = { type: 'CHARACTER_SET_PLAYER_ROLLING', characterId: string, request: RollRequest | null, response: RollResponse }\r\nexport type CharacterReceivePlayerRoll = { type: 'CHARACTER_RECEIVE_PLAYER_ROLL', characterId: string, response: RollResponse }\r\n\r\nexport type CharacterAction = CharactersLoaded\r\n | CharacterSetCreating\r\n | CharactersUnownedLoaded\r\n | CharacterUnownedReceived\r\n | CharacterAddNew\r\n | CharacterUpdated\r\n | CharacterDeleting\r\n | CharacterDeleted\r\n | CharacterSetPlayerRolling\r\n | CharacterReceivePlayerRoll\r\n | CharacterSpecificAction\r\n | CharacterCompetencyAction\r\n | CharacterConditionAction\r\n | CharacterItemAction\r\n | CharacterMinionAction\r\n | CharacterPerkAction\r\n | CharacterPersonalityAction\r\n | CharacterPropertyAction\r\n | CharacterRhetoricAction\r\n | CharacterSkillAction;\r\n\r\nexport const CharacterActions = {\r\n createNewCharacter: (request: CreateCharacterRequest, successCallback: (id: string) => unknown): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n try {\r\n dispatch({ type: 'CHARACTER_SET_CREATING', creating: true });\r\n const response = await ApiDefaultState.characters.createNewCharacter(request);\r\n if(response.status == 'Success') {\r\n dispatch({ type: 'CHARACTER_ADD_NEW', character: response.payload });\r\n successCallback(response.payload.id);\r\n }\r\n }\r\n catch (error) {\r\n console.error(error);\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error while creating character.\"), dispatch);\r\n }\r\n finally {\r\n dispatch({ type: 'CHARACTER_SET_CREATING', creating: false });\r\n }\r\n },\r\n \r\n getCharacters: (forceReload: boolean = false): AppThunkAction => \r\n async (dispatch, getState) => {\r\n const { character, library } = getState();\r\n if(!forceReload && character.characters.length > 0) {\r\n return;\r\n }\r\n try {\r\n const response = await ApiDefaultState.characterService.getAllCharactersWithEntities(CollectionsToReferences(library));\r\n if (response.status == 'Error') {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n return;\r\n }\r\n\r\n dispatchLibraryActions(response.payload, dispatch);\r\n dispatch({ type: 'CHARACTERS_LOADED', characters: response.payload.characters });\r\n }\r\n catch (error) {\r\n console.error(error);\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error while loading characters.\"), dispatch);\r\n }\r\n },\r\n\r\n getCharactersByIds: (ids: string[]): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const { library } = getState();\r\n try {\r\n const response = await ApiDefaultState.characterService.getCharactersByIdsWithEntities(CollectionsToReferences(library), ids);\r\n if (response.status == 'Error') {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n return;\r\n }\r\n dispatchLibraryActions(response.payload, dispatch);\r\n dispatch({ type: 'CHARACTERS_UNOWNED_LOADED', characters: response.payload.characters });\r\n }\r\n catch (error) {\r\n console.error(error);\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error while loading characters.\"), dispatch);\r\n }\r\n },\r\n \r\n receiveUnownedCharacter: (character: CharacterInitializer): AppThunkAction =>\r\n (dispatch) => dispatch({ type: 'CHARACTER_UNOWNED_RECEIVED', character }),\r\n\r\n deleteCharacter: (character: CharacterInitializer): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n try {\r\n dispatch({ type: 'CHARACTER_DELETING', id: character.id });\r\n const response = await ApiDefaultState.characters.deleteCharacter(character.id);\r\n if (response.status == \"Error\") {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_DELETED', id: character.id });\r\n }\r\n }\r\n catch (error) {\r\n console.error(error);\r\n dispatch({ type: 'CHARACTER_DELETING', id: character.id, undo: true });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Server error while deleting ${character.name}.`), dispatch);\r\n }\r\n },\r\n \r\n rollCharacterDice: (characterId: string, request: RollRequest | null, response: RollResponse): AppThunkAction =>\r\n async (dispatch) => {\r\n try {\r\n dispatch({ type: 'CHARACTER_SET_PLAYER_ROLLING', characterId, request, response });\r\n await new Promise(resolve => setTimeout(resolve, UiConfig.rollDiceDuration));\r\n }\r\n finally {\r\n dispatch({ type: 'CHARACTER_RECEIVE_PLAYER_ROLL', characterId, response });\r\n }\r\n },\r\n\r\n declareHand: (characterId: string, handType: HandTypeValue): AppThunkAction => \r\n async (dispatch, getState) => {\r\n try {\r\n const hub = AdventureHub.Instance();\r\n const response = await hub.declareHand(characterId, handType);\r\n if (response.status == 'Error') {\r\n ToastDispatchables.toastError(dispatch, \"Error declaring hand.\");\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Error declaring hand.\"), dispatch);\r\n }\r\n }\r\n}\r\n\r\nconst dispatchLibraryActions = (entityInitializers: CharacterEntityInitializers, dispatch: (action: LibraryAction) => void) => {\r\n if (entityInitializers.competencies.any()) {\r\n dispatch({ type: 'LIBRARY_COMPETENCIES_LOADED', competencies: entityInitializers.competencies });\r\n }\r\n if (entityInitializers.conditions.any()) {\r\n dispatch({ type: 'LIBRARY_CONDITIONS_LOADED', conditions: entityInitializers.conditions });\r\n }\r\n if (entityInitializers.items.any()) {\r\n dispatch({ type: 'LIBRARY_ITEMS_LOADED', items: entityInitializers.items });\r\n }\r\n if (entityInitializers.minions.any()) {\r\n dispatch({ type: 'LIBRARY_MINIONS_LOADED', minions: entityInitializers.minions });\r\n }\r\n if (entityInitializers.perks.any()) {\r\n dispatch({ type: 'LIBRARY_PERKS_LOADED', perks: entityInitializers.perks });\r\n }\r\n if (entityInitializers.personalities.any()) {\r\n dispatch({ type: 'LIBRARY_PERSONALITIES_LOADED', personalities: entityInitializers.personalities });\r\n }\r\n if (entityInitializers.rhetorics.any()) {\r\n dispatch({ type: 'LIBRARY_RHETORICS_LOADED', rhetorics: entityInitializers.rhetorics });\r\n }\r\n if (entityInitializers.skills.any()) {\r\n dispatch({ type: 'LIBRARY_SKILLS_LOADED', skills: entityInitializers.skills });\r\n }\r\n}","import { SuccessToast } from \"../../../entities/toasts/Toasts\";\r\nimport { PlayerAccount } from \"../../../entities/user/PlayerAccount\";\r\nimport { ApiDefaultState } from \"../api/ApiStore.State\";\r\nimport { AppThunkAction } from \"../ApplicationState\";\r\nimport { ToastAction, ToastDispatchables } from \"../toasts/Toasts.Actions\";\r\n\r\ntype UserSet = { type: 'USER_SET', player: PlayerAccount }\r\ntype UserSetAdventureConnection = { type: 'USER_SET_ADVENTURE_CONNECTION', adventureConnectionId: string | null }\r\nexport type UsersGet = { type: 'USERS_GET', players: PlayerAccount[] }\r\ntype UserClear = { type: 'USER_CLEAR' }\r\ntype UserSetDisplayName = { type: 'USER_SET_DISPLAY_NAME', displayName: string, identifier: string }\r\n\r\nexport type UserAction = UserSet | UserSetAdventureConnection | UsersGet | UserClear | UserSetDisplayName;\r\n\r\nexport const UserActions = {\r\n setAdventureConnection: (adventureConnectionId: string | null): AppThunkAction =>\r\n (dispatch) => dispatch({ type: 'USER_SET_ADVENTURE_CONNECTION', adventureConnectionId }),\r\n\r\n getUserAccountData: (): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.users.getUserData();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'USER_SET', player: response.payload });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n },\r\n\r\n clearUserAccountData: (): AppThunkAction =>\r\n (dispatch) => {\r\n dispatch({ type: 'USER_CLEAR' });\r\n },\r\n\r\n getUsersByIds: (...ids: string[]): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.users.getUsersByIds(ids);\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'USERS_GET', players: response.payload });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n },\r\n\r\n submitDisplayName: (displayName: string, successCallback: () => unknown): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.users.setDisplayName(displayName);\r\n if (response.status == 'Error') {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n return;\r\n }\r\n \r\n const identifier = response.payload;\r\n dispatch({ type: 'USER_SET_DISPLAY_NAME', displayName, identifier });\r\n successCallback();\r\n ToastDispatchables.toastLegacy(new SuccessToast(`User name set, Welcome ${displayName}#${identifier}!`), dispatch);\r\n }\r\n}","import { HubConnection, HubConnectionBuilder, LogLevel, RetryContext } from '@microsoft/signalr';\r\nimport { Dispatch, Middleware } from 'redux';\r\nimport { ErrorToast, InfoToast } from '../entities/toasts/Toasts';\r\nimport { ApplicationState, AppThunkAction } from '../store/stores/ApplicationState';\r\nimport { ToastDispatchables } from '../store/stores/toasts/Toasts.Actions';\r\nimport { AuthorizedWebService } from './AuthorizedWebService';\r\nimport { HubConfig } from \"./config/HubConfig\";\r\nimport { AdventureHub } from './account/Hub.Adventure';\r\nimport { ApiResponse, ErrorApiResponse, SuccessApiResponse } from './responses/ApiResponse';\r\nimport { HubResponse } from './responses/HubResponse';\r\nimport { ValidationMessage } from './ValidationMessage';\r\n\r\nexport type AppStore = { dispatch: Dispatch, getState: () => ApplicationState };\r\n\r\n/**\r\n * Provides basic functionality for connecting to and managing a web sockets connection.\r\n */\r\nexport abstract class BaseHub extends AuthorizedWebService {\r\n protected constructor(store: AppStore, config: TConfig) {\r\n super();\r\n this.store = store;\r\n this.config = config;\r\n }\r\n private readonly store: AppStore;\r\n\r\n protected readonly config: TConfig;\r\n\r\n protected get dispatch(): Dispatch {\r\n return this.store.dispatch;\r\n }\r\n\r\n protected getState(): ApplicationState {\r\n return this.store.getState();\r\n }\r\n\r\n /**\r\n * The order of properties here MUST be maintained. If resolve and reject do not precede the function that utilizes them, they will\r\n * be undefined when the hub starts.\r\n */\r\n protected connectionResolver?: ((value: HubConnection | PromiseLike) => void);\r\n protected connectionRejector?: ((reason?: any) => void);\r\n private readonly createConnectionPromise = () => new Promise((resolve, reject) => {\r\n this.connectionResolver = resolve;\r\n this.connectionRejector = reject;\r\n });\r\n protected connection: Promise = this.createConnectionPromise();\r\n\r\n /**\r\n * Creates middleware for controlling hubs.\r\n * @param hub The hub to generate middleware for.\r\n * @returns An array of middlewares to handle incoming actions.\r\n */\r\n public static CreateMiddleware(): Middleware[] {\r\n return [\r\n ({ getState }) => (next) => (action: unknown) => {\r\n try {\r\n BaseHub.Reduce(getState, action);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n finally {\r\n next(action ?? { type: \"\" }); //Somehow there is an undefined action getting dispatched\r\n }\r\n }\r\n ]\r\n }\r\n\r\n public static Reduce(getState: () => ApplicationState, incomingAction: unknown) {\r\n const action = incomingAction as HubAction;\r\n if (action.hub == null) {\r\n return;\r\n }\r\n\r\n const hub = this.GetHubByName(action.hub);\r\n switch (action.type) {\r\n case 'HUB_ON':\r\n hub.start();\r\n return;\r\n case 'HUB_OFF':\r\n hub.stop();\r\n return;\r\n case 'HUB_RESTART':\r\n hub.restart();\r\n return;\r\n }\r\n }\r\n\r\n protected static GetHubByName(name: string) {\r\n switch (name) {\r\n case AdventureHub.name:\r\n return AdventureHub.Instance();\r\n default:\r\n throw new Error(`Attempted to retrieve unknown hub ${name}.`);\r\n }\r\n }\r\n\r\n public abstract get name(): string;\r\n\r\n /**\r\n * Creates a new websockets connection.\r\n * @returns A new hub connection to the configured endpoint.\r\n */\r\n private createConnection(): HubConnection {\r\n const connection = new HubConnectionBuilder()\r\n .withUrl(this.config.endpoint, {\r\n accessTokenFactory: async () => await this.getToken()\r\n })\r\n .withAutomaticReconnect({\r\n nextRetryDelayInMilliseconds: (retryContext: RetryContext) => {\r\n const retryTimeoutIndex = Math.min(retryContext.previousRetryCount, this.config.retryTimeouts.length - 1);\r\n return this.config.retryTimeouts[retryTimeoutIndex];\r\n }\r\n })\r\n .configureLogging(LogLevel.Information)\r\n .build();\r\n connection.onreconnecting(this.onReconnecting.bind(this));\r\n connection.onclose(this.onClose.bind(this));\r\n return connection;\r\n }\r\n\r\n /**\r\n * Starts the hub service.\r\n */\r\n public async start(): Promise {\r\n try {\r\n const connection = this.createConnection();\r\n await connection.start();\r\n this.connectionResolver!(connection);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Unrecoverable error encountered while starting live updates.\"), this.dispatch);\r\n }\r\n }\r\n\r\n /**\r\n * Stops the hub service.\r\n */\r\n public async stop(): Promise {\r\n this.connectionRejector && this.connectionRejector(`The ${this.config.name} connection was terminated.`);\r\n (await this.connection).stop;\r\n }\r\n\r\n /**\r\n * Restarts the hub connection.\r\n */\r\n public async restart(): Promise {\r\n await this.stop();\r\n await this.start();\r\n }\r\n\r\n /**\r\n * Handles a reconnect event.\r\n * @param error The error, if it exists.\r\n */\r\n protected onReconnecting(error?: Error): void {\r\n if (error) {\r\n console.error(error);\r\n }\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Live updates lost, attempting to reconnect. Refreshing might fix the issue.\"), this.dispatch);\r\n }\r\n\r\n /**\r\n * Handles a close event.\r\n * @param error The error, if it exists.\r\n */\r\n protected onClose(error?: Error): void {\r\n if (error) {\r\n console.error(error);\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Live updates terminated unexpectedly.\"), this.dispatch);\r\n }\r\n else {\r\n ToastDispatchables.toastLegacy(new InfoToast(\"Live updates have ended.\"), this.dispatch);\r\n }\r\n }\r\n\r\n protected invokeDispatch unknown>(fn: T): (...args: Parameters) => void {\r\n if (this.dispatch == undefined) {\r\n throw new Error(\"Dispatch not initialized.\");\r\n }\r\n return (...args) => this.dispatch(fn(...args));\r\n }\r\n\r\n protected createResponse(hubResponse: HubResponse): ApiResponse {\r\n const { payload, errors } = hubResponse;\r\n if (errors.length > 0) {\r\n return new ErrorApiResponse(errors.map(e => ValidationMessage.Create(e)));\r\n }\r\n return new SuccessApiResponse(payload);\r\n }\r\n}\r\n\r\ntype HubOn = { type: 'HUB_ON', hub: string };\r\ntype HubOff = { type: 'HUB_OFF', hub: string };\r\ntype HubRestart = { type: 'HUB_RESTART', hub: string };\r\nexport type HubAction = HubOn | HubOff | HubRestart;\r\nexport const isHubAction = (obj: unknown): obj is HubAction => typeof ((obj as HubAction).hub) == 'string';\r\nexport const HubActions = {\r\n hubOn: (hub: string): AppThunkAction =>\r\n (dispatch) => dispatch({ type: 'HUB_ON', hub }),\r\n}","import { Middleware } from \"redux\";\r\nimport { CharacterInitializer } from \"../../entities/characters/Character\";\r\nimport { AdventureActions } from \"../../store/stores/adventures/AdventureStore.Actions\";\r\nimport { CharacterActions } from \"../../store/stores/collection/characters/CharacterStore.Actions\";\r\nimport { UserActions } from \"../../store/stores/players/PlayerStore.Actions\";\r\nimport { AppStore, BaseHub } from \"../Hub.Base\";\r\nimport { AccountApiConfig } from \"./config/AccountApiConfig\";\r\nimport { AdventureHubConfig } from \"./config/AdventureHubConfig\";\r\nimport { ApplicationState } from \"../../store/stores/ApplicationState\";\r\nimport { AdventureHubAction } from \"../../store/stores/api/ApiStore.Actions\";\r\nimport { CommunalDice } from \"../../entities/adventures/Adventure\";\r\nimport { ApiResponse } from \"../responses/ApiResponse\";\r\nimport { HubResponse } from \"../responses/HubResponse\";\r\nimport { HandTypeValue, RollRequest, RollResponse } from \"../../entities/rolls/Roll\";\r\n\r\nexport class AdventureHub extends BaseHub {\r\n protected get audience(): string {\r\n return AccountApiConfig.audience;\r\n }\r\n \r\n public async start(): Promise {\r\n await super.start();\r\n const connection = await this.connection;\r\n\r\n this.invokeDispatch(UserActions.setAdventureConnection)(connection.connectionId);\r\n connection.onclose(() => this.invokeDispatch(UserActions.setAdventureConnection)(null));\r\n\r\n connection.on('PlayerJoined', this.invokeDispatch(AdventureActions.playerJoined));\r\n connection.on('PlayerLeft', this.invokeDispatch(AdventureActions.playerLeft));\r\n connection.on('PushNewEvent', this.invokeDispatch(AdventureActions.pushNewEvent));\r\n connection.on('CharacterAdded', (id: string, character: CharacterInitializer) => {\r\n this.invokeDispatch(CharacterActions.receiveUnownedCharacter)(character);\r\n this.invokeDispatch(AdventureActions.receiveCharacterAdded)(id, character.id);\r\n });\r\n connection.on('CharacterRemoved', this.invokeDispatch(AdventureActions.receivedCharacterRemoved));\r\n connection.on('SetCommunalDice', this.invokeDispatch(AdventureActions.receiveCommunalDice));\r\n connection.on('PlayerRolledDice', this.invokeDispatch(CharacterActions.rollCharacterDice));\r\n }\r\n\r\n private static instance: AdventureHub | null = null;\r\n\r\n public static CreateInstance(store: AppStore, config: typeof AdventureHubConfig) {\r\n return AdventureHub.instance = new AdventureHub(store, config);\r\n }\r\n\r\n public static Instance(): AdventureHub {\r\n if (this.instance == null) {\r\n throw new Error(\"Attempted to retrieve hub instance before instantiation.\");\r\n }\r\n return this.instance;\r\n }\r\n\r\n public static CreateMiddleware(): Middleware[] {\r\n return [\r\n ({ getState }) => (next) => (action: unknown) => {\r\n try {\r\n AdventureHub.Reduce(getState, action)\r\n }\r\n catch (e) {\r\n console.error(e);\r\n }\r\n finally {\r\n next(action ?? { type: \"\" });\r\n }\r\n }\r\n ]\r\n }\r\n\r\n public static Reduce(getState: () => ApplicationState, incomingAction: unknown) {\r\n const action = incomingAction as AdventureHubAction;\r\n switch (action.type) {\r\n default: BaseHub.Reduce(getState, action);\r\n }\r\n }\r\n\r\n public get name(): string {\r\n return \"AdventureHub\";\r\n }\r\n\r\n /**\r\n * Rolls the adventure's communal dice.\r\n * @param id The adventure's unique identifier.\r\n * @returns The rolled dice values.\r\n */\r\n public async rollCommunalDice(id: string): Promise> {\r\n const connection = await this.connection;\r\n const hubResponse: HubResponse = await connection.invoke(\"rollCommunalDice\", id);\r\n return this.createResponse(hubResponse);\r\n }\r\n\r\n\r\n /**\r\n * Sets an adventure's communal dice values.\r\n * @param connectionId The adventure connection id used by this instance.\r\n * @param id The adventure's unique identifier.\r\n * @param communalDice The communal dice values to set.\r\n */\r\n public async setCommunalDice(id: string, communalDice: CommunalDice): Promise> {\r\n const connection = await this.connection;\r\n const hubResponse: HubResponse = await connection.invoke(\"setCommunalDice\", id, communalDice);\r\n return this.createResponse(hubResponse);\r\n }\r\n\r\n /**\r\n * Joins an adventure.\r\n * @param inviteId The adventure's unique invite id.\r\n * @returns The adventure's unique identifierr.\r\n */\r\n public async joinAdventure(inviteId: string): Promise> {\r\n const connection = await this.connection;\r\n const hubResponse: HubResponse = await connection.invoke(\"joinAdventure\", inviteId);\r\n return this.createResponse(hubResponse);\r\n }\r\n\r\n /**\r\n * Leaves an adventure.\r\n * @param id The adventure's unique identifier.\r\n */\r\n public async leaveAdventure(id: string): Promise> {\r\n const connection = await this.connection;\r\n const hubResponse: HubResponse = await connection.invoke(\"leaveAdventure\", id);\r\n return this.createResponse(hubResponse);\r\n }\r\n\r\n /**\r\n * Adds a character to the requested adventure.\r\n * @param adventureId The adventure's unique identifier.\r\n * @param characterId The character's unique identifier.\r\n */\r\n public async addCharacterToAdventure(adventureId: string, characterId: string): Promise> {\r\n const connection = await this.connection;\r\n const hubResponse: HubResponse = await connection.invoke(\"addCharacterToAdventure\", adventureId, characterId);\r\n return this.createResponse(hubResponse);\r\n }\r\n\r\n /**\r\n * Removes a character from the requested adventure.\r\n * @param adventureId The adventure's unique identifier.\r\n * @param characterId The character's unique identifier.\r\n */\r\n public async removeCharacterFromAdventure(adventureId: string, characterId: string): Promise> {\r\n const connection = await this.connection;\r\n const hubResponse: HubResponse = await connection.invoke(\"removeCharacterFromAdventure\", adventureId, characterId);\r\n return this.createResponse(hubResponse);\r\n }\r\n\r\n /**\r\n * Rolls a character's dice.\r\n * @param characterId The character to roll for.\r\n * @param rollRequest Information about the requested roll.\r\n * @returns The result of the roll operation.\r\n */\r\n public async rollForPlayer(characterId: string, rollRequest: RollRequest): Promise> {\r\n const connection = await this.connection;\r\n const hubResponse: HubResponse = await connection.invoke(\"rollForPlayer\", characterId, rollRequest);\r\n return this.createResponse(hubResponse);\r\n }\r\n\r\n /**\r\n * Declare a hand for a given character.\r\n * @param characterId The unique identifier of the character to declare the hand for.\r\n * @param handType The hand to declare.\r\n */\r\n public async declareHand(characterId: string, handType: HandTypeValue): Promise> {\r\n const connection = await this.connection;\r\n const hubResponse: HubResponse = await connection.invoke(\"declareHand\", characterId, handType);\r\n return this.createResponse(hubResponse);\r\n }\r\n}","import { LocalAdventure } from \"../../../entities/adventures/Adventure\";\r\nimport { AdventureEvent } from \"../../../entities/adventures/AdventureEvent\";\r\n\r\nexport type AdventureState = {\r\n adventures: LocalAdventure[];\r\n leaving: string[];\r\n creating: boolean;\r\n loaded: boolean;\r\n modifyingCharacterOnAdventure: boolean;\r\n eventsByAdventureId: { [adventureId: string]: AdventureEvent[] };\r\n loadingEvents: { [adventureId: string]: { initialLoadPerformed: boolean, loading: boolean, done: boolean } };\r\n error: boolean;\r\n}\r\n\r\nexport const AdventureDefaultState: AdventureState = {\r\n adventures: [],\r\n leaving: [],\r\n creating: false,\r\n loaded: false,\r\n modifyingCharacterOnAdventure: false,\r\n eventsByAdventureId: {},\r\n loadingEvents: {},\r\n error: false,\r\n}","import { LocalAdventure } from \"../../../entities/adventures/Adventure\";\r\nimport { AdventureState } from \"./AdventureStore.State\"\r\n\r\n\r\nconst getAdventure = (state: AdventureState, adventureId: string) => {\r\n const adventure = state.adventures.find(a => a.id == adventureId);\r\n if (adventure == null) {\r\n console.error('Attempted to perform unknown operation on unknown character.');\r\n }\r\n return adventure;\r\n}\r\n\r\nconst updateAdventure = (state: AdventureState, newAdventure: LocalAdventure): AdventureState => {\r\n const newState = ({\r\n ...state,\r\n adventures: [...state.adventures.filter(a => a.id != newAdventure.id), newAdventure]\r\n });\r\n return newState;\r\n}\r\n\r\nexport const AdventureReducerHelpers = Object.freeze({\r\n getAdventure,\r\n updateAdventure,\r\n})","import { Action, Reducer } from \"redux\";\r\nimport { AdventureAction, AdventureCharacterAdded, AdventureCharacterRemoved, AdventureCreated, AdventureGetEvents, AdventureLeave, AdventurePlayerJoined, AdventurePlayerLeft, AdventureReceiveNewEvent, AdventureSetCharacterChange, AdventureSetCommunalDice, AdventureSetCreating, AdventureSetEventsLoading, AdventureSetLeavingStatus, AdventureSetRolling, AdventuresLoaded, AdventureUpdateContentSharing, AdventureUpdateInvite, AdventureUpdateName, AdventureUpdatePrivateNotes, AdventureUpdatePublicNotes } from \"./AdventureStore.Actions\";\r\nimport { AdventureDefaultState, AdventureState } from \"./AdventureStore.State\";\r\nimport { Adventure, LocalAdventure } from \"../../../entities/adventures/Adventure\";\r\nimport { AdventureReducerHelpers } from \"./AdventureReducerHelpers\";\r\n\r\nexport const AdventureReducer: Reducer = (state: AdventureState | undefined, incomingAction: Action): AdventureState => {\r\n if (state == undefined) {\r\n return AdventureDefaultState;\r\n }\r\n const action = incomingAction as AdventureAction;\r\n switch (action.type) {\r\n case 'ADVENTURES_LOADED': return loadAdventures(state, action);\r\n case 'ADVENTURES_LOAD_ERROR': return { ...state, error: true };\r\n\r\n case 'ADVENTURE_CREATED': return createAdventure(state, action);\r\n case 'ADVENTURE_LEAVE': return leaveAdventure(state, action);\r\n\r\n case 'ADVENTURE_SET_LEAVING_STATUS': return adventureSetLeavingStatus(state, action);\r\n case 'ADVENTURE_SET_CREATING': return setAdventureCreating(state, action);\r\n case 'ADVENTURE_UPDATE_NAME': return updateName(state, action);\r\n case 'ADVENTURE_UPDATE_CONTENT_SHARING': return updateContentSharing(state, action);\r\n case 'ADVENTURE_UPDATE_INVITE': return updateInvite(state, action);\r\n case 'ADVENTURE_UPDATE_PUBLIC_NOTES': return updatePublicnotes(state, action);\r\n case 'ADVENTURE_UPDATE_PRIVATE_NOTES': return updatePrivateNotes(state, action);\r\n\r\n case 'ADVENTURE_GET_EVENTS': return getAdventureEvents(state, action);\r\n case 'ADVENTURE_SET_EVENTS_LOADING': return setAdventureEventsLoading(state, action);\r\n case 'ADVENTURE_RECEIVE_NEW_EVENT': return receiveNewEvent(state, action);\r\n\r\n case 'ADVENTURE_SET_COMMUNAL_DICE': return updateCommunalDice(state, action);\r\n case 'ADVENTURE_SET_ROLLING': return updateSetRolling(state, action);\r\n\r\n case 'ADVENTURE_PLAYER_JOINED': return playerJoined(state, action);\r\n case 'ADVENTURE_PLAYER_LEFT': return playerLeft(state, action);\r\n case 'ADVENTURE_CHARACTER_ADDED': return addCharacter(state, action);\r\n case 'ADVENTURE_CHARACTER_REMOVED': return removeCharacter(state, action);\r\n\r\n case 'ADVENTURE_SET_CHARACTER_CHANGE': return setCharacterChange(state, action);\r\n default: return state;\r\n }\r\n}\r\n\r\nconst createNewLocalAdventure = (adventure: Adventure): LocalAdventure => ({ ...adventure, rolling: false });\r\n\r\nconst loadAdventures = (state: AdventureState, action: AdventuresLoaded): AdventureState => {\r\n const { adventures } = action;\r\n\r\n const unchangedAdventures = state.adventures.filter(stateAdventure => !adventures.any(newAdventure => newAdventure.id == stateAdventure.id));\r\n return {\r\n ...state,\r\n loaded: true,\r\n error: false,\r\n adventures: [...unchangedAdventures, ...adventures.map(createNewLocalAdventure)]\r\n }\r\n}\r\n\r\nconst createAdventure = (state: AdventureState, action: AdventureCreated): AdventureState => {\r\n const { adventure } = action;\r\n return { ...state, adventures: [...state.adventures, createNewLocalAdventure(adventure)] };\r\n}\r\n\r\nconst leaveAdventure = (state: AdventureState, action: AdventureLeave): AdventureState => {\r\n const { id } = action;\r\n return {\r\n ...state,\r\n adventures: [...state.adventures.filter(a => a.id != id)]\r\n };\r\n}\r\n\r\nconst adventureSetLeavingStatus = (state: AdventureState, action: AdventureSetLeavingStatus): AdventureState => {\r\n const { id, leaving } = action;\r\n if (leaving) {\r\n return { ...state, leaving: [...state.leaving.filter(aid => aid != id)] }\r\n }\r\n return {\r\n ...state,\r\n leaving: [...state.leaving, id]\r\n };\r\n}\r\n\r\nconst setAdventureCreating = (state: AdventureState, action: AdventureSetCreating): AdventureState => {\r\n const { creating } = action;\r\n return { ...state, creating };\r\n}\r\n\r\nconst updateName = (state: AdventureState, action: AdventureUpdateName): AdventureState => {\r\n const { id, name } = action;\r\n const adventure = AdventureReducerHelpers.getAdventure(state, id);\r\n if (adventure == null) {\r\n return state;\r\n }\r\n \r\n const newAdventure = {\r\n ...adventure,\r\n name\r\n }\r\n return AdventureReducerHelpers.updateAdventure(state, newAdventure);\r\n}\r\n\r\nconst updateContentSharing = (state: AdventureState, action: AdventureUpdateContentSharing): AdventureState => {\r\n const { id, allowContentSharing } = action;\r\n const adventure = AdventureReducerHelpers.getAdventure(state, id);\r\n if (adventure == null) {\r\n return state;\r\n }\r\n\r\n const newAdventure = {\r\n ...adventure,\r\n allowContentSharing\r\n }\r\n return AdventureReducerHelpers.updateAdventure(state, newAdventure);\r\n}\r\n\r\nconst updateInvite = (state: AdventureState, action: AdventureUpdateInvite): AdventureState => {\r\n const { id, inviteId } = action;\r\n const adventure = AdventureReducerHelpers.getAdventure(state, id);\r\n if (adventure == null) {\r\n return state;\r\n }\r\n\r\n const newAdventure = {\r\n ...adventure,\r\n inviteId\r\n }\r\n return AdventureReducerHelpers.updateAdventure(state, newAdventure);\r\n}\r\n\r\nconst updatePublicnotes = (state: AdventureState, action: AdventureUpdatePublicNotes): AdventureState => {\r\n const { id, publicNotes } = action;\r\n const adventure = AdventureReducerHelpers.getAdventure(state, id);\r\n if (adventure == null) {\r\n return state;\r\n }\r\n\r\n const newAdventure = {\r\n ...adventure,\r\n publicNotes\r\n };\r\n return AdventureReducerHelpers.updateAdventure(state, newAdventure);\r\n}\r\n\r\nconst updatePrivateNotes = (state: AdventureState, action: AdventureUpdatePrivateNotes): AdventureState => {\r\n const { id, privateNotes } = action;\r\n const adventure = AdventureReducerHelpers.getAdventure(state, id);\r\n if (adventure == null) {\r\n return state;\r\n }\r\n\r\n const newAdventure = {\r\n ...adventure,\r\n privateNotes\r\n }\r\n return AdventureReducerHelpers.updateAdventure(state, newAdventure);\r\n}\r\n\r\nconst updateCommunalDice = (state: AdventureState, action: AdventureSetCommunalDice): AdventureState => {\r\n const { id, communalDice } = action;\r\n \r\n const adventure = AdventureReducerHelpers.getAdventure(state, id);\r\n if (adventure == null) {\r\n return state;\r\n }\r\n\r\n const newAdventure = {\r\n ...adventure,\r\n communalDice\r\n }\r\n return AdventureReducerHelpers.updateAdventure(state, newAdventure);\r\n}\r\n\r\nconst updateSetRolling = (state: AdventureState, action: AdventureSetRolling): AdventureState => {\r\n const { id, rolling } = action;\r\n \r\n const adventure = AdventureReducerHelpers.getAdventure(state, id);\r\n if (adventure == null) {\r\n return state;\r\n }\r\n\r\n const newAdventure = {\r\n ...adventure,\r\n rolling\r\n }\r\n return AdventureReducerHelpers.updateAdventure(state, newAdventure);\r\n}\r\n\r\nconst playerJoined = (state: AdventureState, action: AdventurePlayerJoined): AdventureState => {\r\n const { id, playerId } = action;\r\n const adventure = AdventureReducerHelpers.getAdventure(state, id);\r\n if (adventure == null) {\r\n return state;\r\n }\r\n\r\n const newAdventure = {\r\n ...adventure,\r\n playerIds: [...adventure.playerIds, playerId]\r\n }\r\n\r\n return AdventureReducerHelpers.updateAdventure(state, newAdventure);\r\n}\r\n\r\nconst playerLeft = (state: AdventureState, action: AdventurePlayerLeft): AdventureState => {\r\n const { id, playerId } = action;\r\n const adventure = AdventureReducerHelpers.getAdventure(state, id);\r\n if (adventure == null) {\r\n return state;\r\n }\r\n\r\n const newAdventure = {\r\n ...adventure,\r\n playerIds: adventure.playerIds.filter(pid => pid != playerId)\r\n }\r\n\r\n return AdventureReducerHelpers.updateAdventure(state, newAdventure);\r\n}\r\n\r\nconst addCharacter = (state: AdventureState, action: AdventureCharacterAdded): AdventureState => {\r\n const { id, characterId } = action;\r\n const adventure = AdventureReducerHelpers.getAdventure(state, id);\r\n if (adventure == null) {\r\n return state;\r\n }\r\n\r\n const newAdventure = { ...adventure, characterIds: [...adventure.characterIds, characterId] };\r\n return AdventureReducerHelpers.updateAdventure(state, newAdventure);\r\n}\r\n\r\nconst removeCharacter = (state: AdventureState, action: AdventureCharacterRemoved): AdventureState => {\r\n const { id, characterId } = action;\r\n \r\n const adventure = AdventureReducerHelpers.getAdventure(state, id);\r\n if (adventure == null) {\r\n return state;\r\n }\r\n\r\n const newAdventure = {\r\n ...adventure,\r\n characterIds: adventure.characterIds.filter(cid => cid != characterId)\r\n }\r\n return AdventureReducerHelpers.updateAdventure(state, newAdventure);\r\n}\r\n\r\n\r\n/**\r\n * Events\r\n * */\r\n\r\nconst getAdventureEvents = (state: AdventureState, action: AdventureGetEvents): AdventureState => {\r\n const { id, events, done } = action;\r\n const adventureEvents = state.eventsByAdventureId[id] ?? [];\r\n return {\r\n ...state,\r\n eventsByAdventureId: {\r\n ...state.eventsByAdventureId,\r\n [id]: [...adventureEvents, ...events]\r\n },\r\n loadingEvents: {\r\n ...state.loadingEvents,\r\n [id]: { initialLoadPerformed: true, loading: false, done }\r\n }\r\n };\r\n}\r\n\r\nconst setAdventureEventsLoading = (state: AdventureState, action: AdventureSetEventsLoading): AdventureState => {\r\n const { id, loading } = action;\r\n return {\r\n ...state,\r\n loadingEvents: {\r\n ...state.loadingEvents,\r\n [id]: { ...state.loadingEvents[id], loading }\r\n }\r\n };\r\n}\r\n\r\nconst receiveNewEvent = (state: AdventureState, action: AdventureReceiveNewEvent): AdventureState => {\r\n const { id, event } = action;\r\n const adventureEvents = state.eventsByAdventureId[id] ?? [];\r\n return {\r\n ...state,\r\n eventsByAdventureId: {\r\n ...state.eventsByAdventureId,\r\n [id]: [event, ...adventureEvents]\r\n }\r\n };\r\n}\r\n\r\nconst setCharacterChange = (state: AdventureState, action: AdventureSetCharacterChange): AdventureState => {\r\n const { modifyingCharacterOnAdventure } = action;\r\n return { ...state, modifyingCharacterOnAdventure };\r\n}","import { LocalCharacterInitializer } from \"../../../../entities/characters/Character\";\r\n\r\nexport interface CharacterState {\r\n loaded: boolean;\r\n creating: boolean;\r\n characters: LocalCharacterInitializer[];\r\n otherPlayerCharacters: LocalCharacterInitializer[];\r\n}\r\n\r\nexport const CharacterDefaultState: CharacterState = {\r\n loaded: false,\r\n creating: false,\r\n characters: [],\r\n otherPlayerCharacters: [],\r\n};","import { Tuple } from \"../Utilities\";\r\n\r\nexport const AllHands = {\r\n name: 'All',\r\n value: -1,\r\n}\r\n\r\nexport const Bust = { \r\n name: 'Bust',\r\n value: 1,\r\n}\r\n\r\nexport const Pair = {\r\n name: 'Pair',\r\n value: 2,\r\n}\r\n\r\nexport const TwoPair = {\r\n name: 'Two Pair',\r\n value: 3,\r\n}\r\n\r\nexport const Triple = {\r\n name: 'Triple',\r\n explanatoryName: 'Three-of-a-Kind',\r\n value: 4,\r\n}\r\n\r\nexport const SmallStraight = {\r\n name: 'Small Straight',\r\n value: 5,\r\n}\r\n\r\nexport const Flush = {\r\n name: 'Flush',\r\n value: 6,\r\n}\r\n\r\nexport const FullHouse = {\r\n name: 'Full House',\r\n value: 7,\r\n}\r\n\r\nexport const BigStraight = {\r\n name: 'Big Straight',\r\n value: 8,\r\n}\r\n\r\nexport const Quad = {\r\n name: 'Quad',\r\n explanatoryName: 'Four-of-a-Kind',\r\n value: 9,\r\n}\r\n\r\nexport const Jackpot = {\r\n name: 'Jackpot!',\r\n explantoryName: 'Five-of-a-Kind',\r\n value: 10,\r\n}\r\n\r\nexport type DieFace = 1 | 2 | 3 | 4 | 5 | 6;\r\n\r\nexport type DeclarableHandType = typeof Bust | typeof Pair | typeof TwoPair | typeof Triple | typeof SmallStraight | typeof Flush | typeof FullHouse | typeof BigStraight | typeof Quad | typeof Jackpot;\r\nexport type DeclarableHandTypeName = DeclarableHandType['name'];\r\nexport type HandType = DeclarableHandType | typeof AllHands;\r\nexport type HandTypeName = HandType['name'];\r\nexport type HandTypeValue = HandType['value'];\r\n\r\nexport type DeclarableHandMapType = {\r\n [name in DeclarableHandTypeName]: DeclarableHandType\r\n}\r\nexport const DeclarableHands: DeclarableHandMapType = {\r\n \"Bust\": Bust,\r\n \"Pair\": Pair,\r\n \"Two Pair\": TwoPair,\r\n \"Triple\": Triple,\r\n \"Small Straight\": SmallStraight,\r\n \"Flush\": Flush,\r\n \"Full House\": FullHouse,\r\n \"Big Straight\": BigStraight,\r\n \"Quad\": Quad,\r\n \"Jackpot!\": Jackpot\r\n}\r\n\r\nexport type HandMapType = {\r\n [name in HandTypeName]: HandType\r\n}\r\nexport const Hands: HandMapType = {\r\n ...DeclarableHands,\r\n \"All\": AllHands,\r\n}\r\n\r\nexport const HandTypeNames = Object.values(DeclarableHands).map(handType => handType.name);\r\n\r\nexport type RerollableIndex = 0 | 1 | 2;\r\nexport enum RollType {\r\n Advantage = 1,\r\n Normal = 0,\r\n Disadvantage = -1,\r\n}\r\n\r\nexport const ActionDiceCount = 3;\r\nexport type ActionDice = Tuple;\r\nexport type UnrolledActionDice = ActionDice | undefined;\r\nexport type ActionResultDice = Tuple | Tuple | Tuple;\r\nexport type RerollableIndices = Tuple | Tuple | Tuple | Tuple;\r\n\r\nexport type ExtraDiceCount = 0 | 1 | 2;\r\nexport type ExtraDice = Tuple | Tuple | Tuple;\r\n\r\nexport type CharacterDice = {\r\n skillId?: string;\r\n actionDice: ActionDice | [];\r\n extraDice: ExtraDice;\r\n rollType: RollType;\r\n}\r\n\r\nexport type RollRequest = {\r\n skillId?: string;\r\n rollType: RollType;\r\n rerollIndices: RerollableIndices;\r\n}\r\n\r\nexport const ActionRollRequest: RollRequest = {\r\n rollType: RollType.Normal,\r\n rerollIndices: [],\r\n}\r\n\r\nexport type RollResponse = {\r\n actionDice: ActionDice,\r\n extraDice: ExtraDice,\r\n}\r\n\r\ntype MultipleComparer = {\r\n [face in DieFace]: number;\r\n}\r\n\r\nexport class Hand {\r\n public constructor(...rolls: DieFace[]) {\r\n this.rolls = rolls;\r\n this.rollHistory = [];\r\n this.rollHistory.push([...this.rolls]);\r\n }\r\n\r\n public readonly rollHistory: number[][];\r\n public rolls: DieFace[] = [];\r\n\r\n public static readonly MinHandSize: number = 5;\r\n public static readonly BaseDiceCount: number = 3;\r\n public static GetRandomDieFace(): DieFace {\r\n const baseValue = Math.floor(Math.random() * 6);\r\n return (baseValue + 1);\r\n }\r\n\r\n public static CreateRandomHand(extraRolls: number = 0): Hand {\r\n const totalRolls = Hand.BaseDiceCount + extraRolls;\r\n const rolls: DieFace[] = [];\r\n for(let i = 0; i < totalRolls; i++) {\r\n rolls.push(Hand.GetRandomDieFace());\r\n }\r\n return new Hand(...rolls);\r\n }\r\n\r\n public rerollDice(...indices: number[]): void {\r\n if(!indices.every(index => index >= 0 && index < this.rolls.length)) {\r\n throw 'Invalid indices selected to reroll.';\r\n }\r\n\r\n for(let i = 0; i < indices.length; i++) {\r\n const index = indices[i];\r\n this.rolls[index] = Hand.GetRandomDieFace();\r\n }\r\n this.rollHistory.push([...this.rolls]);\r\n }\r\n\r\n public get isPair(): boolean {\r\n return this.numberOfDuplicates >= 1;\r\n }\r\n\r\n public get isTwoPair(): boolean {\r\n return this.numberOfDuplicates >= 2;\r\n }\r\n\r\n public get isTriple(): boolean {\r\n return this.maxMultipleCount >= 3;\r\n }\r\n\r\n public get isSmallStraight(): boolean {\r\n return this.longestStraight >= 4;\r\n }\r\n\r\n public get isFlush(): boolean {\r\n return (\r\n this.rolls.filter((roll) => roll % 2 === 0).length >= 5\r\n || this.rolls.filter((roll) => roll % 2 === 1).length >= 5\r\n );\r\n }\r\n\r\n public get isFullHouse(): boolean {\r\n return this.numberOfDuplicates >= 2 && this.maxMultipleCount >= 3;\r\n }\r\n\r\n public get isBigStraight(): boolean {\r\n return this.longestStraight >= 5;\r\n }\r\n\r\n public get isQuad(): boolean {\r\n return this.maxMultipleCount >= 4;\r\n }\r\n\r\n public get isJackpot(): boolean {\r\n return this.maxMultipleCount >= 5;\r\n }\r\n\r\n public get handTypes(): HandType[] {\r\n const handTypes: HandType[] = [];\r\n if(this.isPair) {\r\n handTypes.push(DeclarableHands[\"Pair\"]);\r\n }\r\n if(this.isTwoPair) {\r\n handTypes.push(DeclarableHands[\"Two Pair\"]);\r\n }\r\n if(this.isTriple) {\r\n handTypes.push(DeclarableHands[\"Triple\"]);\r\n }\r\n if(this.isSmallStraight) {\r\n handTypes.push(DeclarableHands[\"Small Straight\"]);\r\n }\r\n if(this.isFlush) {\r\n handTypes.push(DeclarableHands[\"Flush\"]);\r\n }\r\n if(this.isFullHouse) {\r\n handTypes.push(DeclarableHands[\"Full House\"]);\r\n }\r\n if(this.isBigStraight) {\r\n handTypes.push(DeclarableHands[\"Big Straight\"]);\r\n }\r\n if(this.isQuad) {\r\n handTypes.push(DeclarableHands[\"Quad\"]);\r\n }\r\n if(this.isJackpot) {\r\n handTypes.push(DeclarableHands[\"Jackpot!\"]);\r\n }\r\n return handTypes;\r\n }\r\n\r\n private get numberOfDuplicates(): number {\r\n const seen: number[] = [];\r\n const skips: number[] = [];\r\n let duplicates = 0;\r\n for (let rollIndex = 0; rollIndex < this.rolls.length; rollIndex++) {\r\n const roll = this.rolls[rollIndex];\r\n if (seen.includes(roll) && !skips.includes(roll)) {\r\n duplicates++;\r\n skips.push(roll);\r\n } else {\r\n seen.push(roll);\r\n }\r\n }\r\n return duplicates;\r\n }\r\n\r\n private get maxMultipleCount(): number {\r\n const seen: MultipleComparer = {\r\n 1: 0,\r\n 2: 0,\r\n 3: 0,\r\n 4: 0,\r\n 5: 0,\r\n 6: 0,\r\n };\r\n for (let rollIndex = 0; rollIndex < this.rolls.length; rollIndex++) {\r\n const roll = this.rolls[rollIndex];\r\n if (seen[roll] != null) {\r\n seen[roll]++;\r\n } else {\r\n seen[roll] = 1;\r\n }\r\n }\r\n return Math.max(...(Object.values(seen)));\r\n }\r\n\r\n private get longestStraight(): number {\r\n const hits = [1];\r\n let currentHitIndex = 0;\r\n const checkHand = this.rolls.filter((value, index, self) => {\r\n return self.indexOf(value) === index;\r\n });\r\n checkHand.sort();\r\n for (let index = 0; index < checkHand.length; index++) {\r\n if (checkHand[index] === checkHand[index - 1] + 1) {\r\n hits[currentHitIndex]++;\r\n } else {\r\n currentHitIndex++;\r\n hits.push(1);\r\n }\r\n }\r\n return Math.max(...hits);\r\n }\r\n}\r\n","import { CharacterItemCollection, CharacterItemCollectionName, LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { OwnedItemReference } from \"../../../../../entities/Ownership\";\r\nimport { CharacterState } from \"../CharacterStore.State\";\r\n\r\nconst getCharacter = (state: CharacterState, characterId: string) => {\r\n const character = state.characters.find(c => c.id == characterId);\r\n if (character == null) {\r\n console.error(`Attempted to perform operation on unknown character ${characterId}`);\r\n }\r\n return character;\r\n}\r\n\r\nconst updateCharacter = (state: CharacterState, newCharacter: LocalCharacterInitializer): CharacterState => {\r\n const newState = ({\r\n ...state,\r\n characters: [...state.characters.filter(c => c.id != newCharacter.id), newCharacter]\r\n });\r\n return newState;\r\n}\r\n\r\n/**\r\n * Creates an object with a collection of items mapping to a character's item collection, replacing the\r\n * item with the requested id with the input replacement.\r\n * @param character The character whose collection will be copied.\r\n * @param collectionName The name of the collection property to copy.\r\n * @param instanceId The instance id of the item to replace.\r\n * @param replaceWith The item to replace it with.\r\n */\r\nconst getItemCollectionWithReplacement = (character: LocalCharacterInitializer, collectionName: CharacterItemCollectionName, instanceId: string, replaceWith: OwnedItemReference): CharacterItemCollection => {\r\n switch (collectionName) {\r\n case 'held':\r\n return { ...character, held: [...character.held.filter(h => h.instanceId != instanceId), replaceWith] };\r\n case 'worn':\r\n return { ...character, worn: [...character.worn.filter(w => w.instanceId != instanceId), replaceWith] };\r\n case 'loose':\r\n return { ...character, loose: [...character.loose.filter(l => l.instanceId != instanceId), replaceWith] };\r\n case 'activeMods':\r\n return { ...character, activeMods: [...character.activeMods.filter(m => m.instanceId != instanceId), replaceWith] };\r\n case 'bodyMods':\r\n return { ...character, bodyMods: [...character.bodyMods.filter(m => m.instanceId != instanceId), replaceWith] };\r\n }\r\n}\r\n\r\nexport const CharacterReducerHelpers = Object.freeze({\r\n getCharacter,\r\n updateCharacter,\r\n getItemCollectionWithReplacement,\r\n});","import { CharacterDice, RollType } from \"../../../../../entities/rolls/Roll\";\r\nimport { CharacterClearRollSkill, CharacterFilterItems, CharacterHideItemAdder, CharacterResetHand, CharacterSetCommunalRolls, CharacterSetEntityPending, CharacterSetHand, CharacterSetPreviewItemInstanceId, CharacterSetPreviewSlotId, CharacterSetRolling, CharacterSetRollSkill, CharacterShowItemAdder } from \"../actions/CharacterSpecificActions\";\r\nimport { CharacterState } from \"../CharacterStore.State\";\r\nimport { CharacterReducerHelpers } from \"./CharacterReducerHelpers\";\r\n\r\nconst setEntityPending = (state: CharacterState, action: CharacterSetEntityPending): CharacterState => {\r\n const { characterId, entityId, pending } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const pendingProperties = { ...character.pendingProperties };\r\n\r\n if (pending) {\r\n pendingProperties[entityId] = true;\r\n }\r\n else {\r\n delete pendingProperties[entityId];\r\n }\r\n\r\n const newCharacter = { ...character, pendingProperties };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst previewItem = (state: CharacterState, action: CharacterSetPreviewItemInstanceId): CharacterState => {\r\n const { characterId, previewItemInstanceId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, previewItemInstanceId };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n};\r\n\r\nconst previewSlot = (state: CharacterState, action: CharacterSetPreviewSlotId): CharacterState => {\r\n const { characterId, previewSlotId, previewSlotItemInstanceId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, previewSlotId, previewSlotItemInstanceId };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst showItemAdder = (state: CharacterState, action: CharacterShowItemAdder): CharacterState => {\r\n const { characterId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n \r\n const newCharacter = { ...character, showItemAdder: true };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst hideItemAdder = (state: CharacterState, action: CharacterHideItemAdder): CharacterState => {\r\n const { characterId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n \r\n const newCharacter = { ...character, showItemAdder: false };\r\n newCharacter.showItemAdder = false;\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n};\r\n\r\nconst filterItems = (state: CharacterState, action: CharacterFilterItems): CharacterState => {\r\n const { characterId, filter } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, itemFilter: { ...filter } };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst setHand = (state: CharacterState, action: CharacterSetHand): CharacterState => {\r\n const { characterId, hand } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n \r\n const newCharacter = {\r\n ...character,\r\n currentDice: {\r\n ...character.currentDice,\r\n actionDice: hand.actionDice,\r\n extraDice: hand.extraDice\r\n }\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst setRolling = (state: CharacterState, action: CharacterSetRolling): CharacterState => {\r\n const { characterId, rollRequest } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, rollRequest };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst resetHand = (state: CharacterState, action: CharacterResetHand): CharacterState => {\r\n const { characterId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n \r\n const currentDice: CharacterDice = {\r\n rollType: RollType.Normal,\r\n actionDice: [],\r\n extraDice: [],\r\n };\r\n const newCharacter = {\r\n ...character,\r\n currentDice\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst setCommunalDice = (state: CharacterState, action: CharacterSetCommunalRolls): CharacterState => {\r\n const { characterId, communalDice } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, communalDice };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst setRollSkill = (state: CharacterState, action: CharacterSetRollSkill): CharacterState => {\r\n const { characterId, skillId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n currentDice: {\r\n ...character.currentDice,\r\n skillId\r\n }\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst clearRollSkill = (state: CharacterState, action: CharacterClearRollSkill): CharacterState => {\r\n const { characterId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n currentDice: {\r\n ...character.currentDice,\r\n skillId: undefined\r\n }\r\n };\r\n \r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nexport const CharacterSpecificReducers = {\r\n setEntityPending,\r\n previewItem,\r\n previewSlot,\r\n showItemAdder,\r\n hideItemAdder,\r\n filterItems,\r\n setHand,\r\n setRolling,\r\n resetHand,\r\n setCommunalDice,\r\n setRollSkill,\r\n clearRollSkill,\r\n}","import { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { CharacterState } from \"../CharacterStore.State\";\r\nimport { CharacterAddCompetency, CharacterAddCustomCompetency, CharacterRemoveCompetency, CharacterSetCompetencyLevel } from \"../actions/CharacterCompetencyActions\";\r\nimport { CharacterReducerHelpers } from \"./CharacterReducerHelpers\";\r\n\r\nconst addCompetency = (state: CharacterState, action: CharacterAddCompetency): CharacterState => {\r\n const { characterId, reference } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n competencies: [...character.competencies, reference]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst addCustomCompetency = (state: CharacterState, action: CharacterAddCustomCompetency): CharacterState => {\r\n const { characterId, competency } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n customCompetencies: [...character.customCompetencies, competency]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst removeCompetency = (state: CharacterState, action: CharacterRemoveCompetency): CharacterState => {\r\n const { characterId, competencyId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n competencies: character.competencies.filter(c => c.id != competencyId)\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst setCompetencyLevel = (state: CharacterState, action: CharacterSetCompetencyLevel): CharacterState => {\r\n const { characterId, competencyId, isExpert } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n let newCharacter: LocalCharacterInitializer;\r\n const oldCompetency = character.competencies.find(c => c.id == competencyId);\r\n const oldCustomComptency = character.customCompetencies.find(c => c.id == competencyId);\r\n\r\n\r\n if (oldCompetency != null) {\r\n const competency = { ...oldCompetency, isExpert };\r\n newCharacter = {\r\n ...character,\r\n competencies: [\r\n ...character.competencies.filter(c => c.id != competencyId),\r\n competency\r\n ]\r\n }\r\n }\r\n else if (oldCustomComptency != null) {\r\n const competency = { ...oldCustomComptency, isExpert };\r\n newCharacter = {\r\n ...character,\r\n customCompetencies: [\r\n ...character.customCompetencies.filter(c => c.id != competencyId),\r\n competency\r\n ]\r\n }\r\n }\r\n else {\r\n console.error(\"Attempted to set competency level on an unknown competency\")\r\n return state;\r\n }\r\n\r\n const pendingProperties = { ...newCharacter.pendingProperties };\r\n delete newCharacter.pendingProperties[competencyId];\r\n\r\n newCharacter = { ...newCharacter, pendingProperties };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\n\r\nexport const CharacterCompetencyReducers = {\r\n addCompetency,\r\n addCustomCompetency,\r\n removeCompetency,\r\n setCompetencyLevel,\r\n}","import { ItemTypeValue } from \"./ItemInitializers\";\r\n\r\nexport const ItemTypeValues: ItemTypeValue[] = ['Item', 'Weapon', 'Mod', 'Ammo', 'Spell'];\r\n\r\nexport const IsItemTypeValue = (possibleType: string): possibleType is ItemTypeValue => {\r\n return ItemTypeValues.contains(possibleType);\r\n}","import { NamedEntity } from \"../NamedEntity\";\r\n\r\nexport type ObjectFilterInitializer = {\r\n name: string\r\n}\r\n\r\nexport class ObjectFilter {\r\n public constructor(initializer: T) {\r\n this.name = initializer.name;\r\n }\r\n\r\n public name: string;\r\n\r\n public update(initializer: T) {\r\n this.name = initializer.name;\r\n }\r\n\r\n public static GetDefaultInitializer(): ObjectFilterInitializer {\r\n return {\r\n name: ''\r\n };\r\n }\r\n\r\n public getInitializer(): ObjectFilterInitializer {\r\n return {\r\n name: this.name\r\n }\r\n }\r\n\r\n public static CreateFilterFromQuery(query: URLSearchParams): ObjectFilterInitializer {\r\n const name = query.get('name') ?? '';\r\n return { name };\r\n }\r\n\r\n public generateQueryString(): string {\r\n return `?${this.getQueryParams().join('&')}`;\r\n }\r\n\r\n public get initializer(): ObjectFilterInitializer {\r\n return { name: this.name };\r\n }\r\n\r\n protected filterBase(entities: TE[]): TE[] {\r\n let filteredEntities = [...entities];\r\n if (this.name != \"\") {\r\n filteredEntities = filteredEntities.filter(e => this.filterString(e.name, this.name));\r\n }\r\n return filteredEntities;\r\n }\r\n\r\n protected get nameQuery(): string | null {\r\n return this.name != '' ? `name=${this.name}` : null;\r\n }\r\n\r\n protected getQueryParams(): string[] {\r\n if (this.nameQuery) {\r\n return [this.nameQuery];\r\n }\r\n return [];\r\n }\r\n\r\n protected filterString = (value: string, check: string) => {\r\n return value.toLowerCase().includes(check.toLowerCase());\r\n };\r\n\r\n protected filterGreaterEqual = (value: number, check: number) => {\r\n return value >= check;\r\n };\r\n\r\n protected filterLessEqual = (itemValue: number, check: number) => {\r\n return itemValue <= check;\r\n };\r\n\r\n protected filterTagArray = (values: string[], check: string[]) => {\r\n return check.filter((tagName) => values.includes(tagName)).length > 0;\r\n };\r\n}","import { RecordStatus } from \"../RecordStatus\";\r\nimport { ItemCategoryValue, ItemInitializer } from \"../library/items/ItemInitializers\";\r\nimport { IsItemTypeValue } from \"../library/items/ItemTypeMap\";\r\nimport { ObjectFilter, ObjectFilterInitializer } from \"./ObjectFilter\";\r\n\r\nexport type ItemFilterInitializer = ObjectFilterInitializer & {\r\n types: ItemCategoryValue[];\r\n description: string;\r\n minCost: number;\r\n maxCost: number;\r\n minWeight: number;\r\n maxWeight: number;\r\n tags: string[];\r\n loaded: boolean;\r\n}\r\n\r\nexport class ItemFilter extends ObjectFilter implements ItemFilterInitializer {\r\n public constructor(initializer: ItemFilterInitializer) {\r\n super(initializer);\r\n this.types = [...initializer.types];\r\n this.description = initializer.description;\r\n this.minCost = initializer.minCost;\r\n this.maxCost = initializer.maxCost;\r\n this.minWeight = initializer.minWeight;\r\n this.maxWeight = initializer.maxWeight;\r\n this.tags = initializer.tags;\r\n this.loaded = initializer.loaded;\r\n }\r\n\r\n public types: ItemCategoryValue[];\r\n public description: string;\r\n public minCost: number;\r\n public maxCost: number;\r\n public minWeight: number;\r\n public maxWeight: number;\r\n public tags: string[];\r\n public loaded: boolean;\r\n\r\n public update(initializer: ItemFilterInitializer) {\r\n super.update(initializer);\r\n this.types = [...initializer.types];\r\n this.description = initializer.description;\r\n this.minCost = initializer.minCost;\r\n this.maxCost = initializer.maxCost;\r\n this.minWeight = initializer.minWeight;\r\n this.maxWeight = initializer.maxWeight;\r\n this.tags = initializer.tags;\r\n this.loaded = initializer.loaded;\r\n }\r\n\r\n public static GetDefaultInitializer(): ItemFilterInitializer {\r\n return {\r\n types: [],\r\n name: '',\r\n description: '',\r\n minCost: 0,\r\n maxCost: 0,\r\n minWeight: 0,\r\n maxWeight: 0,\r\n tags: [],\r\n loaded: false,\r\n };\r\n }\r\n\r\n public getInitializer(): ItemFilterInitializer {\r\n return {\r\n ...super.getInitializer(),\r\n types: [...this.types],\r\n description: this.description,\r\n minCost: this.minCost,\r\n maxCost: this.maxCost,\r\n minWeight: this.minWeight,\r\n maxWeight: this.maxWeight,\r\n tags: this.tags,\r\n loaded: this.loaded,\r\n };\r\n }\r\n\r\n public static CreateFilterFromQuery(query: URLSearchParams): ItemFilterInitializer {\r\n const types = ItemFilter.GetTypesFromQuery(query);\r\n const description = query.get('description') ?? '';\r\n\r\n const minCost = parseInt(query.get('minCost') ?? '0');\r\n const maxCost = parseInt(query.get('maxCost') ?? '0');\r\n\r\n const minWeight = parseInt(query.get('minWeight') ?? '0');\r\n const maxWeight = parseInt(query.get('maxWeight') ?? '0');\r\n\r\n const tags = query.get('tags')?.split(',') ?? [];\r\n\r\n return {\r\n ...ObjectFilter.CreateFilterFromQuery(query),\r\n types,\r\n description,\r\n minCost,\r\n maxCost,\r\n minWeight,\r\n maxWeight,\r\n tags,\r\n loaded: true,\r\n };\r\n }\r\n\r\n private static GetTypesFromQuery(query: URLSearchParams): ItemCategoryValue[] {\r\n const typesString = query.get('types');\r\n if (typesString == null) {\r\n return [];\r\n }\r\n return typesString.split(',').filter(IsItemTypeValue);\r\n }\r\n\r\n protected get typesQuery(): string | null {\r\n return this.types.any() ? `types=${this.types.join(',')}` : null;\r\n }\r\n\r\n protected get descriptionQuery(): string | null {\r\n return this.description != ''\r\n ? `description=${this.description}`\r\n : null;\r\n }\r\n\r\n protected get minCostQuery(): string | null {\r\n return this.minCost > 0 ? `minCost=${this.minCost}` : null;\r\n }\r\n\r\n protected get maxCostQuery(): string | null {\r\n return this.maxCost > 0 ? `maxCost=${this.maxCost}` : null;\r\n }\r\n\r\n protected get minWeightQuery(): string | null {\r\n return this.minWeight > 0 ? `minWeight=${this.minWeight}` : null;\r\n }\r\n\r\n protected get maxWeightQuery(): string | null {\r\n return this.maxWeight > 0 ? `maxWeight=${this.maxWeight}` : null;\r\n }\r\n\r\n protected get tagsQuery(): string | null {\r\n return this.tags.length > 0 ? `tags=${this.tags.join(',')}` : null;\r\n }\r\n\r\n protected getQueryParams(): string[] {\r\n const queryParams = super.getQueryParams();\r\n if (this.typesQuery) {\r\n queryParams.push(this.typesQuery);\r\n }\r\n if (this.descriptionQuery) {\r\n queryParams.push(this.descriptionQuery);\r\n }\r\n if (this.minCostQuery) {\r\n queryParams.push(this.minCostQuery);\r\n }\r\n if (this.maxCostQuery) {\r\n queryParams.push(this.maxCostQuery);\r\n }\r\n if (this.minWeightQuery) {\r\n queryParams.push(this.minWeightQuery);\r\n }\r\n if (this.maxWeightQuery) {\r\n queryParams.push(this.maxWeightQuery);\r\n }\r\n if (this.tagsQuery) {\r\n queryParams.push(this.tagsQuery);\r\n }\r\n return queryParams;\r\n }\r\n\r\n public filter(items: ItemInitializer[]): ItemInitializer[] {\r\n let filteredItems = super.filterBase(items)\r\n .filter(item => item.recordStatus == RecordStatus.Published);\r\n if (this.types.any()) {\r\n filteredItems = filteredItems.filter(this.filterType.bind(this));\r\n }\r\n if (this.description != null) {\r\n filteredItems = filteredItems.filter((item) =>\r\n this.filterString(item.description, this.description)\r\n );\r\n }\r\n if (this.minCost <= this.maxCost || this.maxCost == 0) {\r\n filteredItems = filteredItems.filter((item) =>\r\n this.filterGreaterEqual(item.cost, this.minCost)\r\n );\r\n }\r\n if (this.maxCost > 0) {\r\n filteredItems = filteredItems.filter((item) =>\r\n this.filterLessEqual(item.cost, this.maxCost)\r\n );\r\n }\r\n if (this.minWeight <= this.maxWeight || this.maxWeight == 0) {\r\n filteredItems = filteredItems.filter((item) =>\r\n this.filterGreaterEqual(item.weight, this.minWeight)\r\n );\r\n }\r\n if (this.maxWeight > 0) {\r\n filteredItems = filteredItems.filter((item) =>\r\n this.filterLessEqual(item.weight, this.maxWeight)\r\n );\r\n }\r\n if (this.tags.length > 0) {\r\n filteredItems = filteredItems.filter((item) =>\r\n this.filterTagArray(item.tags, this.tags)\r\n );\r\n }\r\n return filteredItems;\r\n }\r\n\r\n private filterType(item: ItemInitializer): boolean {\r\n let passesApparelFilter = false;\r\n if (this.types.contains('Apparel')) {\r\n passesApparelFilter = item.wornOn.any();\r\n }\r\n return passesApparelFilter || this.types.contains(item.type);\r\n }\r\n}\r\n","import { CharacterAddCondition, CharacterRemoveCondition } from \"../actions/CharacterConditionActions\";\r\nimport { CharacterState } from \"../CharacterStore.State\";\r\nimport { CharacterReducerHelpers } from \"./CharacterReducerHelpers\";\r\n\r\nconst addCondition = (state: CharacterState, action: CharacterAddCondition): CharacterState => {\r\n const { characterId, conditionId } = action;\r\n const character = state.characters.find(c => c.id == characterId);\r\n if (character == null) {\r\n console.error(\"Attempted to add condition to nonexistent character.\")\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n conditions: [...character.conditions, conditionId]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst removeCondition = (state: CharacterState, action: CharacterRemoveCondition): CharacterState => {\r\n const { characterId, conditionId } = action;\r\n const character = state.characters.find(c => c.id == characterId);\r\n if (character == null) {\r\n console.error(\"Attempted to remove condition from nonexistent character.\")\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n conditions: character.conditions.filter(c => c != conditionId)\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nexport const CharacterConditionReducers = {\r\n addCondition,\r\n removeCondition,\r\n}","export type Unarrayed = T extends (infer U)[] ? U : never;\r\n\r\nexport function nonEmpty(value: TValue | null | undefined): value is TValue {\r\n return value != null && value != undefined;\r\n}","import { CharacterHelpers, CharacterInitializer, CharacterItemSearchResult, CharacterItemSuite, LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { ItemHelpers } from \"../../../../../entities/library/items/Item\";\r\nimport { OwnedModReference } from \"../../../../../entities/Ownership\";\r\nimport { nonEmpty } from \"../../../../../utils/TypeUtils\";\r\nimport { CharacterSaveItem, CharacterAddItem, CharacterUpdateItemName, CharacterUpdateItemNotes, CharacterMoveItems, MoveItemGroupOperation, CharacterRemoveItems, CharacterAssignMod, CharacterAssignBodyMod, CharacterRemoveMod, CharacterRemoveBodyMod, CharacterAddSlots, CharacterRemoveSlots, CharacterUpdateSlots } from \"../actions/CharacterItemActions\";\r\nimport { CharacterState } from \"../CharacterStore.State\";\r\nimport { CharacterReducerHelpers } from \"./CharacterReducerHelpers\";\r\n\r\nconst saveItem = (state: CharacterState, action: CharacterSaveItem): CharacterState => {\r\n const { characterId, newInstanceId, oldInstanceId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const result = CharacterHelpers.searchItemByInstanceId(character, oldInstanceId);\r\n if (result == null) {\r\n return state;\r\n }\r\n\r\n const { collectionName, reference } = result;\r\n\r\n const pendingProperties = { ...character.pendingProperties };\r\n delete pendingProperties[reference.instanceId];\r\n\r\n const copy = ItemHelpers.deepCopy(reference);\r\n copy.instanceId = newInstanceId;\r\n\r\n const newCharacter = {\r\n ...character,\r\n pendingProperties,\r\n ...CharacterReducerHelpers.getItemCollectionWithReplacement(character, collectionName, reference.instanceId, copy)\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst addItem = (state: CharacterState, action: CharacterAddItem): CharacterState => {\r\n const { characterId, item } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n loose: [...character.loose, item]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst updateItemName = (state: CharacterState, action: CharacterUpdateItemName): CharacterState => {\r\n const { characterId, itemInstanceId, customName } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const result = CharacterHelpers.searchItemByInstanceId(character, itemInstanceId);\r\n if (result == null) {\r\n console.error('Attempt to update item name on character it was not assigned to.');\r\n return state;\r\n }\r\n\r\n const { collectionName, reference } = result; \r\n const copy = {\r\n ...reference,\r\n customName\r\n };\r\n\r\n const newCharacter = {\r\n ...character,\r\n ...CharacterReducerHelpers.getItemCollectionWithReplacement(character, collectionName, reference.instanceId, copy)\r\n }\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst updateItemNotes = (state: CharacterState, action: CharacterUpdateItemNotes): CharacterState => {\r\n const { characterId, itemInstanceId, customNotes } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const result = CharacterHelpers.searchItemByInstanceId(character, itemInstanceId);\r\n if (result == null) {\r\n console.error('Attempt to update item notes on character it was not assigned to.');\r\n return state;\r\n }\r\n\r\n const { collectionName, reference } = result; \r\n const copy = {\r\n ...reference,\r\n customNotes\r\n };\r\n\r\n const newCharacter = {\r\n ...character,\r\n ...CharacterReducerHelpers.getItemCollectionWithReplacement(character, collectionName, reference.instanceId, copy)\r\n }\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst moveItems = (state: CharacterState, action: CharacterMoveItems): CharacterState => {\r\n const { characterId, operationOne, operationTwo } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n \r\n const groupOneInstanceIds = operationOne.group.map(i => i.instanceId);\r\n const groupTwoInstanceIds = operationTwo?.group.map(i => i.instanceId) ?? [];\r\n const [suite] = CharacterHelpers.removeItems(character, [...groupOneInstanceIds, ...groupTwoInstanceIds]);\r\n\r\n let newCharacter = { ...character, ...suite };\r\n\r\n newCharacter = { ...newCharacter, ...performMove(newCharacter, action.operationOne) };\r\n if (action.operationTwo) {\r\n newCharacter = { ...newCharacter, ...performMove(newCharacter, action.operationTwo) };\r\n }\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst performMove = (character: CharacterInitializer, operation: MoveItemGroupOperation): CharacterItemSuite => {\r\n const { collection, group } = operation;\r\n switch (collection) {\r\n case 'held':\r\n return { held: [...character.held, ...group] };\r\n case 'worn':\r\n return { worn: [...character.worn, ...group] };\r\n case 'loose':\r\n return { loose: [...character.loose, ...group] };\r\n case 'activeMods':\r\n return { activeMods: [...character.activeMods, ...group] };\r\n case 'bodyMods':\r\n return { bodyMods: [...character.bodyMods, ...group] };\r\n }\r\n}\r\n\r\nconst removeItems = (state: CharacterState, action: CharacterRemoveItems): CharacterState => {\r\n const { characterId, instanceIds } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n \r\n const [suite,removed] = CharacterHelpers.removeItems(character, instanceIds);\r\n const newLoose = suite.loose ?? [];\r\n const newCharacter = { ...character, loose: [...newLoose, ...removed] };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst assignMod = (state: CharacterState, action: CharacterAssignMod): CharacterState => {\r\n const { characterId, itemInstanceId, modInstanceId, slotId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const item = CharacterHelpers.searchItemByInstanceId(character, itemInstanceId);\r\n if (item == null) {\r\n console.error('Attempt to assign mod to unknown item.');\r\n return state;\r\n }\r\n\r\n const modSearchResult = CharacterHelpers.searchItemByInstanceId(character, modInstanceId);\r\n if (modSearchResult == null) {\r\n console.error('Attempt to assign unknown mod to item.');\r\n return state;\r\n }\r\n\r\n const { reference: mod } = modSearchResult;\r\n \r\n const newCharacter: LocalCharacterInitializer = {\r\n ...character,\r\n loose: character.loose.filter(m => m.instanceId != modInstanceId),\r\n activeMods: [...character.activeMods, {\r\n ...mod,\r\n assignedSlotId: slotId,\r\n assignedItemId: itemInstanceId,\r\n }]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst assignBodyMod = (state: CharacterState, action: CharacterAssignBodyMod): CharacterState => {\r\n const { characterId, modInstanceId, slotId } = action;\r\n const character = state.characters.find(c => c.id == characterId);\r\n if (character == null) {\r\n throw \"Attempted to assign body mod to nonexistent character.\";\r\n }\r\n \r\n const mod = CharacterHelpers.searchItemByInstanceId(character, modInstanceId) as OwnedModReference | null;\r\n if (mod == null) {\r\n console.error(\"Attempt to assign unknown body mod.\");\r\n return state;\r\n }\r\n\r\n const newCharacter: LocalCharacterInitializer = {\r\n ...character,\r\n loose: character.loose.filter(m => m.instanceId != modInstanceId),\r\n bodyMods: [...character.activeMods, {\r\n ...mod,\r\n assignedSlotId: slotId,\r\n assignedItemId: undefined,\r\n }]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst removeMod = (state: CharacterState, action: CharacterRemoveMod): CharacterState => {\r\n const { characterId, itemInstanceId, slotId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n \r\n const mod = character.activeMods.find(m => m.assignedSlotId == slotId);\r\n if (mod == null) {\r\n console.error(\"Attempted to remove mod from an unassigned slot.\");\r\n return state;\r\n }\r\n\r\n const newMod = {\r\n ...mod,\r\n assignedSlotId: undefined,\r\n assignedItemId: undefined,\r\n };\r\n\r\n const newCharacter: LocalCharacterInitializer = {\r\n ...character,\r\n activeMods: character.activeMods.filter(m => m.assignedSlotId != slotId),\r\n loose: [...character.loose, newMod]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst removeBodyMod = (state: CharacterState, action: CharacterRemoveBodyMod): CharacterState => {\r\n const { characterId, slotId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const mod = character.bodyMods.find(m => m.assignedSlotId == slotId);\r\n if (mod == null) {\r\n console.error(\"Attempted to remove body mod from an unassigned slot.\");\r\n return state;\r\n }\r\n\r\n const newMod = {\r\n ...mod,\r\n assignedSlotId: undefined,\r\n }\r\n\r\n const newCharacter: LocalCharacterInitializer = {\r\n ...character,\r\n bodyMods: character.bodyMods.filter(m => m.assignedSlotId != slotId),\r\n loose: [...character.loose, newMod],\r\n }\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst addSlots = (state: CharacterState, action: CharacterAddSlots): CharacterState => {\r\n const { characterId, requests } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const itemSearchResults = requests.map(request => CharacterHelpers.searchItemByInstanceId(character, request.itemInstanceId))\r\n .filter(nonEmpty);\r\n\r\n const itemUpdateSuite = itemSearchResults.reduce((accum: CharacterItemSuite, curr: CharacterItemSearchResult) => {\r\n const { collectionName, reference } = curr;\r\n const request = requests.find(r => r.itemInstanceId == reference.instanceId);\r\n if (request == null) {\r\n return accum;\r\n }\r\n\r\n if (accum[collectionName] == null) {\r\n accum[collectionName] = character[collectionName];\r\n }\r\n accum[collectionName] = [\r\n ...accum[collectionName].filter(i => i.instanceId != reference.instanceId),\r\n { ...reference, customSlots: [...reference.customSlots, ...request.slots] }\r\n ];\r\n return accum;\r\n }, {});\r\n\r\n const newCharacter = { ...character, ...itemUpdateSuite };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst removeSlots = (state: CharacterState, action: CharacterRemoveSlots): CharacterState => {\r\n const { characterId, itemInstanceIds, slotIds } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n \r\n const itemSearchResults = itemInstanceIds.map(instanceId => CharacterHelpers.searchItemByInstanceId(character, instanceId))\r\n .filter(nonEmpty);\r\n\r\n let itemUpdateSuite = itemSearchResults.reduce((accum: CharacterItemSuite, curr: CharacterItemSearchResult) => {\r\n const { collectionName, reference } = curr;\r\n if (accum[collectionName] == null) {\r\n accum[collectionName] = character[collectionName];\r\n }\r\n accum[collectionName] = [\r\n ...accum[collectionName].filter(i => i.instanceId != reference.instanceId),\r\n { ...reference, customSlots: reference.customSlots.filter(cs => !slotIds.any(sid => cs.id == sid))}\r\n ];\r\n return accum;\r\n }, {});\r\n\r\n let removedModsSuite = character.activeMods.filter(m => slotIds.any(sid => sid == m.assignedSlotId))\r\n .map(m => ({ ...m, assignedItemId: undefined, assignedSlotId: undefined }));\r\n const loose = itemUpdateSuite.loose ?? character.loose;\r\n itemUpdateSuite = {\r\n ...itemUpdateSuite,\r\n loose: [...loose, ...removedModsSuite]\r\n }\r\n\r\n const newCharacter = { ...character, ...itemUpdateSuite };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst updateSlots = (state: CharacterState, action: CharacterUpdateSlots): CharacterState => {\r\n const { characterId, itemInstanceIds, updateIdResponses } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n \r\n const itemSearchResults = itemInstanceIds.map(instanceId => CharacterHelpers.searchItemByInstanceId(character, instanceId))\r\n .filter(nonEmpty);\r\n\r\n const itemUpdateSuite = itemSearchResults.reduce((accum: CharacterItemSuite, curr: CharacterItemSearchResult) => {\r\n const { collectionName, reference } = curr;\r\n if (accum[collectionName] == null) {\r\n accum[collectionName] = character[collectionName];\r\n }\r\n\r\n const newSlots = reference.customSlots.map(cs => {\r\n const idResponse = updateIdResponses.find(({ oldId }) => cs.id == oldId);\r\n if (idResponse == null) {\r\n return null;\r\n }\r\n const { newId } = idResponse;\r\n return ({ ...cs, id: newId });\r\n }).filter(nonEmpty);\r\n\r\n accum[collectionName] = [\r\n ...accum[collectionName].filter(i => i.instanceId != reference.instanceId),\r\n { ...reference, customSlots: newSlots }\r\n ]\r\n\r\n return accum;\r\n }, {})\r\n\r\n const newCharacter = { ...character, ...itemUpdateSuite };\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nexport const CharacterItemReducers = {\r\n saveItem,\r\n addItem,\r\n updateItemName,\r\n updateItemNotes,\r\n moveItems,\r\n removeItems,\r\n assignMod,\r\n assignBodyMod,\r\n removeMod,\r\n removeBodyMod,\r\n addSlots,\r\n removeSlots,\r\n updateSlots,\r\n}","\r\nimport { CharacterAddMinion, CharacterRemoveMinion, CharacterSaveMinion, CharacterUpdateMinion } from \"../actions/CharacterMinionActions\";\r\nimport { CharacterState } from \"../CharacterStore.State\";\r\nimport { CharacterReducerHelpers } from \"./CharacterReducerHelpers\";\r\n\r\nconst saveMinion = (state: CharacterState, action: CharacterSaveMinion): CharacterState => {\r\n const { characterId, oldInstanceId, newInstanceId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const minion = character.minions.find(m => m.instanceId == oldInstanceId);\r\n if (minion == undefined) {\r\n console.error('Attempt to save nonexistent minion.');\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n minions: [...character.minions.filter(m => m.instanceId != minion.instanceId), { ...minion, instanceId: newInstanceId }]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst addMinion = (state: CharacterState, action: CharacterAddMinion): CharacterState => {\r\n const { characterId, reference } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n if (character.minions.any(m => m.instanceId == reference.instanceId)) {\r\n console.error('Attempt to add duplicate minion.');\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n minions: [...character.minions, reference]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst removeMinion = (state: CharacterState, action: CharacterRemoveMinion): CharacterState => {\r\n const { characterId, minionInstanceId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n if (!character.minions.any(m => m.instanceId == minionInstanceId)) {\r\n console.error('Attempt to remove nonexistent minion.');\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n minions: [...character.minions.filter(m => m.instanceId != minionInstanceId)]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst updateMinion = (state: CharacterState, action: CharacterUpdateMinion): CharacterState => {\r\n const { characterId, reference } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n if (!character.minions.any(m => m.instanceId == reference.instanceId)) {\r\n console.error('Attempt to update nonexistent minion.');\r\n return state;\r\n }\r\n \r\n const newCharacter = {\r\n ...character,\r\n minions: [...character.minions.filter(m => m.instanceId != reference.instanceId), reference]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nexport const CharacterMinionReducers = {\r\n saveMinion,\r\n addMinion,\r\n removeMinion,\r\n updateMinion,\r\n}","import { CharacterAddPerk, CharacterRemovePerk, CharacterSavePerk } from \"../actions/CharacterPerkActions\";\r\nimport { CharacterState } from \"../CharacterStore.State\";\r\nimport { CharacterReducerHelpers } from \"./CharacterReducerHelpers\";\r\n\r\nconst savePerk = (state: CharacterState, action: CharacterSavePerk): CharacterState => {\r\n const { characterId, reference } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const perk = character.perks.find(p => p.id == reference.id);\r\n if (perk == undefined) {\r\n console.error('Attempt to save nonexistent perk.');\r\n return state;\r\n }\r\n\r\n const newPerk = { ...perk, instanceId: reference.instanceId };\r\n const pendingProperties = { ...character.pendingProperties }\r\n delete pendingProperties[reference.instanceId];\r\n const newCharacter = {\r\n ...character,\r\n pendingProperties,\r\n perks: [...character.perks.filter(p => p.instanceId != perk.instanceId), newPerk]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst addPerk = (state: CharacterState, action: CharacterAddPerk): CharacterState => {\r\n const { characterId, reference } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n if (character.perks.find(p => p.id == reference.id)) {\r\n console.error('Attempt to add duplicate perk.');\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, perks: [...character.perks, reference] };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst removePerk = (state: CharacterState, action: CharacterRemovePerk): CharacterState => {\r\n const { characterId, perkInstanceId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n if (!character.perks.any(perk => perk.instanceId == perkInstanceId)) {\r\n console.error('Attempt to remove nonexistent perk.');\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, perks: character.perks.filter(perk => perk.instanceId != perkInstanceId) };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nexport const CharacterPerkReducers = {\r\n savePerk,\r\n addPerk,\r\n removePerk,\r\n}","import { CharacterSavePersonality, CharacterAddPersonality, CharacterRemovePersonality } from \"../actions/CharacterPersonalityActions\";\r\nimport { CharacterState } from \"../CharacterStore.State\";\r\nimport { CharacterReducerHelpers } from \"./CharacterReducerHelpers\";\r\n\r\nconst savePersonality = (state: CharacterState, action: CharacterSavePersonality): CharacterState => {\r\n const { characterId, id, instanceId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const personality = character.personalities.find(p => p.id == id);\r\n if (personality == undefined) {\r\n console.error('Attmepted to save nonexistent personality.');\r\n return state;\r\n }\r\n\r\n const newPersonality = { ...personality, instanceId };\r\n const pendingProperties = { ...character.pendingProperties };\r\n delete pendingProperties[instanceId];\r\n \r\n const personalities = [...character.personalities.filter(p => p.instanceId != personality.instanceId), newPersonality];\r\n const newCharacter = { ...character, pendingProperties, personalities };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst addPersonality = (state: CharacterState, action: CharacterAddPersonality): CharacterState => {\r\n const { characterId, reference } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n if (character.personalities.any(p => p.id == reference.id)) {\r\n console.error('Attempt to add duplicate personality.');\r\n return state;\r\n }\r\n\r\n const personalities = [...character.personalities, reference];\r\n const newCharacter = { ...character, personalities };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst removePersonality = (state: CharacterState, action: CharacterRemovePersonality): CharacterState => {\r\n const { characterId, personalityInstanceId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n if (!character.personalities.any(personality => personality.instanceId == personalityInstanceId)) {\r\n console.error('Attempt to remove nonexistent personality.');\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, personalities: character.personalities.filter(p => p.instanceId != personalityInstanceId) };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nexport const CharacterPersonalityReducers = {\r\n savePersonality,\r\n addPersonality,\r\n removePersonality,\r\n}","import { CharacterSaveRhetoric, CharacterUpdateRhetoric, CharacterAdjustRhetoric, CharacterOverrideRhetoric } from \"../actions/CharacterRhetoricActions\";\r\nimport { CharacterState } from \"../CharacterStore.State\";\r\nimport { CharacterReducerHelpers } from \"./CharacterReducerHelpers\";\r\n\r\nconst saveRhetoric = (state: CharacterState, action: CharacterSaveRhetoric): CharacterState => {\r\n const { character, rhetoricId } = action;\r\n const newCharacter = { ...character };\r\n const rhetoric = newCharacter.rhetorics.find(r => r.id == rhetoricId);\r\n if (rhetoric == null) {\r\n console.error('Attempt to save nonexistent rhetoric.');\r\n return state;\r\n }\r\n\r\n delete newCharacter.pendingProperties[rhetoric.instanceId];\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst updateRhetoric = (state: CharacterState, action: CharacterUpdateRhetoric): CharacterState => {\r\n const { character, rhetoricId, priority } = action;\r\n const rhetoric = character.rhetorics.find(r => r.id == rhetoricId);\r\n if (rhetoric == null) {\r\n console.error('Attempt update nonexistent rhetoric.');\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n rhetorics: [...character.rhetorics.filter(r => r.id != rhetoricId), { ...rhetoric, priority }]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst adjustRhetoric = (state: CharacterState, action: CharacterAdjustRhetoric): CharacterState => {\r\n const { character, rhetoricId, adjustment } = action;\r\n \r\n const rhetoric = character.rhetorics.find(r => r.id == rhetoricId);\r\n if (rhetoric == null) {\r\n console.error('Attempt adjust nonexistent rhetoric.');\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n rhetorics: [...character.rhetorics.filter(r => r.id != rhetoricId), { ...rhetoric, adjustment }]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst overrideRhetoric = (state: CharacterState, action: CharacterOverrideRhetoric): CharacterState => {\r\n const { character, rhetoricId, override } = action;\r\n\r\n const rhetoric = character.rhetorics.find(r => r.id == rhetoricId);\r\n if (rhetoric == null) {\r\n console.error('Attempt override nonexistent rhetoric.');\r\n return state;\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n rhetorics: [...character.rhetorics.filter(r => r.id != rhetoricId), { ...rhetoric, override }]\r\n };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nexport const CharacterRhetoricReducers = {\r\n saveRhetoric,\r\n updateRhetoric,\r\n adjustRhetoric,\r\n overrideRhetoric,\r\n}","import { CharacterHelpers } from \"../../../../../entities/characters/Character\";\r\nimport { SkillHelpers } from \"../../../../../entities/library/skills/Skill\";\r\nimport { RestrictNumber } from \"../../../../../entities/Utilities\";\r\nimport { CharacterSaveSkill, CharacterUpdateSkill, CharacterAdjustSkill, CharacterOverrideSkill } from \"../actions/CharacterSkillActions\";\r\nimport { CharacterState } from \"../CharacterStore.State\";\r\nimport { CharacterReducerHelpers } from \"./CharacterReducerHelpers\";\r\n\r\nconst saveSkill = (state: CharacterState, action: CharacterSaveSkill): CharacterState => {\r\n const { characterId, skillId } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const skill = character.skills.find(s => s.id == skillId);\r\n if (skill == null) {\r\n console.error('Attempt to save nonexistent skill.');\r\n return state;\r\n }\r\n\r\n const pendingProperties = { ...character.pendingProperties };\r\n delete pendingProperties[skill.instanceId];\r\n\r\n const newCharacter = { ...character, pendingProperties };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst updateSkill = (state: CharacterState, action: CharacterUpdateSkill): CharacterState => {\r\n const { characterId, skillId, updateBy } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const skillReference = character.skills.find(s => s.id == skillId);\r\n if (skillReference == null) {\r\n console.error('Attempt update nonexistent skill.');\r\n return state;\r\n }\r\n\r\n const newLevel = skillReference.level + updateBy;\r\n const newSkill = { ...skillReference, level: RestrictNumber(newLevel, SkillHelpers.MinValue, SkillHelpers.MaxValue) };\r\n\r\n const newCharacter = {\r\n ...character,\r\n skills: [...character.skills.filter(s => s.id != newSkill.id), newSkill]\r\n };\r\n\r\n const healthRatio = character.currentHealth / CharacterHelpers.getMaxHealth(character);\r\n const newHealth = Math.round(CharacterHelpers.getMaxHealth(newCharacter) * healthRatio);\r\n\r\n newCharacter.currentHealth = newHealth;\r\n \r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n};\r\n\r\nconst adjustSkill = (state: CharacterState, action: CharacterAdjustSkill): CharacterState => {\r\n const { characterId, skillId, adjustment } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const skillReference = character.skills.find(s => s.id == skillId);\r\n if (skillReference == null) {\r\n console.error('Attempt adjust nonexistent skill.');\r\n return state;\r\n }\r\n\r\n const newSkill = { ...skillReference, adjustment };\r\n const newCharacter = {\r\n ...character,\r\n skills: [...character.skills.filter(s => s.id != newSkill.id), newSkill]\r\n };\r\n\r\n const healthRatio = newCharacter.currentHealth / CharacterHelpers.getMaxHealth(character);\r\n newCharacter.currentHealth = Math.round(CharacterHelpers.getMaxHealth(newCharacter) * healthRatio);\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst overrideSkill = (state: CharacterState, action: CharacterOverrideSkill): CharacterState => {\r\n let { characterId, skillId, override } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const skillReference = character.skills.find(s => s.id == skillId);\r\n if (skillReference == null) {\r\n console.error('Attempt override nonexistent skill.');\r\n return state;\r\n }\r\n if (override != undefined && override <= 0) {\r\n override = undefined;\r\n }\r\n\r\n const newSkill = { ...skillReference, override };\r\n const newCharacter = {\r\n ...character,\r\n skills: [...character.skills.filter(s => s.id != newSkill.id), newSkill]\r\n };\r\n\r\n const healthRatio = character.currentHealth / CharacterHelpers.getMaxHealth(character);\r\n newCharacter.currentHealth = Math.round(CharacterHelpers.getMaxHealth(newCharacter) * healthRatio);\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nexport const CharacterSkillReducers = {\r\n saveSkill,\r\n updateSkill,\r\n adjustSkill,\r\n overrideSkill,\r\n}","import { CharacterState } from \"../CharacterStore.State\";\r\nimport { CharacterAdjustMovement, CharacterOverrideMovement, CharacterPendingProperties, CharacterPendingProperty, CharacterSaveProperties, CharacterSaveProperty, CharacterSetJuiced, CharacterSetRuleEnforcement, CharacterUpdateClassName, CharacterUpdateHealth, CharacterUpdateKinship, CharacterUpdateLevel, CharacterUpdateMoney, CharacterUpdateName } from \"../actions/CharacterPropertyActions\";\r\nimport { CharacterReducerHelpers } from \"./CharacterReducerHelpers\";\r\n\r\nconst setRuleEnforcement = (state: CharacterState, action: CharacterSetRuleEnforcement): CharacterState => {\r\n const { characterId, enforceRules } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, enforceRules };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst updateName = (state: CharacterState, action: CharacterUpdateName): CharacterState => {\r\n const { characterId, name } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, name };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst updateKinship = (state: CharacterState, action: CharacterUpdateKinship): CharacterState => {\r\n const { characterId, kinship } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, kinship };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst updateLevel = (state: CharacterState, action: CharacterUpdateLevel): CharacterState => {\r\n const { characterId, level } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, level };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst updateClassName = (state: CharacterState, action: CharacterUpdateClassName): CharacterState => {\r\n const { characterId, className } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, className };\r\n\r\n const characters = [...state.characters.filter(c => c.id != newCharacter.id), character];\r\n return { ...state, characters };\r\n}\r\n\r\nconst adjustMovement = (state: CharacterState, action: CharacterAdjustMovement): CharacterState => {\r\n const { characterId, movementAdjust } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, movementAdjust };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst overrideMovement = (state: CharacterState, action: CharacterOverrideMovement): CharacterState => {\r\n const { characterId, movementOverride } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, movementOverride };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst updateHealth = (state: CharacterState, action: CharacterUpdateHealth): CharacterState => {\r\n const { characterId, currentHealth } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, currentHealth };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst setJuiced = (state: CharacterState, action: CharacterSetJuiced): CharacterState => {\r\n const { characterId, juiced } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, juiced };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst updateMoney = (state: CharacterState, action: CharacterUpdateMoney): CharacterState => {\r\n const { characterId, money } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character, money };\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst setPendingPropertiesShared = (state: CharacterState, characterId: string, properties: string[]): CharacterState => {\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n \r\n const newCharacter = { ...character, pendingProperties: { ...character.pendingProperties} };\r\n for (let property of properties) {\r\n newCharacter.pendingProperties[property] = true;\r\n }\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst setPendingProperties = (state: CharacterState, action: CharacterPendingProperties): CharacterState =>\r\n setPendingPropertiesShared(state, action.characterId, action.propertyNames);\r\n\r\nconst setPendingProperty = (state: CharacterState, action: CharacterPendingProperty): CharacterState =>\r\n setPendingPropertiesShared(state, action.characterId, [action.propertyName]);\r\n\r\n\r\nconst setSavedPropertiesShared = (state: CharacterState, characterId: string, properties: string[]): CharacterState => {\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n \r\n const newCharacter = { ...character, pendingProperties: { ...character.pendingProperties} };\r\n for (let property of properties) {\r\n delete newCharacter.pendingProperties[property];\r\n }\r\n\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst setSavedProperties = (state: CharacterState, action: CharacterSaveProperties): CharacterState =>\r\n setSavedPropertiesShared(state, action.characterId, action.propertyNames);\r\n\r\nconst setSavedProperty = (state: CharacterState, action: CharacterSaveProperty): CharacterState =>\r\n setSavedPropertiesShared(state, action.characterId, [action.propertyName]);\r\n\r\n\r\nexport const CharacterPropertyReducers = {\r\n updateName,\r\n updateKinship,\r\n updateLevel,\r\n updateClassName,\r\n adjustMovement,\r\n overrideMovement,\r\n updateHealth,\r\n setJuiced,\r\n updateMoney,\r\n setPendingProperties,\r\n setPendingProperty,\r\n setSavedProperties,\r\n setSavedProperty,\r\n setRuleEnforcement,\r\n}","import { Action, Reducer } from \"redux\";\r\nimport { CharacterInitializer, LocalCharacterInitializer } from \"../../../../entities/characters/Character\";\r\nimport { CharacterAction, CharacterReceivePlayerRoll, CharacterSetPlayerRolling } from \"./CharacterStore.Actions\";\r\nimport { CharacterDefaultState, CharacterState } from \"./CharacterStore.State\";\r\nimport { AdventureCharacterAdded, AdventureCharacterRemoved } from \"../../adventures/AdventureStore.Actions\";\r\nimport { CharacterSpecificReducers } from \"./reducers/CharacterSpecificReducers\";\r\nimport { CharacterCompetencyReducers } from \"./reducers/CharacterCompetencyReducers\";\r\nimport { ItemFilter } from \"../../../../entities/filters/ItemFilter\";\r\nimport { CharacterConditionReducers } from \"./reducers/CharacterConditionReducers\";\r\nimport { CharacterItemReducers } from \"./reducers/CharacterItemReducers\";\r\nimport { CharacterMinionReducers } from \"./reducers/CharacterMinionReducer\";\r\nimport { CharacterPerkReducers } from \"./reducers/CharacterPerkReducers\";\r\nimport { CharacterPersonalityReducers } from \"./reducers/CharacterPersonalityReducers\";\r\nimport { CharacterRhetoricReducers } from \"./reducers/CharacterRhetoricReducers\";\r\nimport { CharacterSkillReducers } from \"./reducers/CharacterSkillReducers\";\r\nimport { CharacterPropertyReducers } from \"./reducers/CharacterPropertyReducers\";\r\nimport { CharacterReducerHelpers } from \"./reducers/CharacterReducerHelpers\";\r\n\r\nexport const CharacterReducer: Reducer = (\r\n state: CharacterState | undefined,\r\n incomingAction: Action\r\n): CharacterState => {\r\n if (state == undefined) {\r\n return CharacterDefaultState;\r\n }\r\n let character: CharacterInitializer;\r\n let characters: LocalCharacterInitializer[];\r\n const action = incomingAction as CharacterAction | AdventureCharacterAdded | AdventureCharacterRemoved;\r\n switch (action.type) {\r\n case 'CHARACTERS_LOADED':\r\n return { ...state, loaded: true, characters: ConvertToDeletableCharacters(...action.characters) };\r\n case 'CHARACTER_SET_CREATING':\r\n return { ...state, creating: action.creating };\r\n case 'CHARACTERS_UNOWNED_LOADED':\r\n return { ...state, otherPlayerCharacters: [...state.otherPlayerCharacters, ...ConvertToDeletableCharacters(...action.characters)].unique(c => c.id) }\r\n case 'CHARACTER_UNOWNED_RECEIVED':\r\n return { ...state, otherPlayerCharacters: [...state.otherPlayerCharacters, ...ConvertToDeletableCharacters(action.character)].unique(c => c.id)}\r\n case 'CHARACTER_ADD_NEW':\r\n characters = ConvertToDeletableCharacters(...state.characters, action.character);\r\n return { ...state, characters };\r\n case 'CHARACTER_UPDATED':\r\n character = action.character;\r\n characters = [...state.characters.filter(c => c.id == character.id), ...ConvertToDeletableCharacters(character)];\r\n return { ...state, characters };\r\n case 'CHARACTER_DELETING':\r\n return { ...state, characters: state.characters.map(c => ({ ...c, deleting: c.id == action.id ? !action.undo : c.deleting })) };\r\n case 'CHARACTER_DELETED':\r\n return { ...state, characters: state.characters.filter(c => c.id != action.id) };\r\n\r\n case 'CHARACTER_SET_PLAYER_ROLLING': return setPlayerRolling(state, action);\r\n case 'CHARACTER_RECEIVE_PLAYER_ROLL': return receivePlayerRoll(state, action);\r\n\r\n case 'CHARACTER_SET_PENDING':\r\n return CharacterSpecificReducers.setEntityPending(state, action);\r\n case 'CHARACTER_SET_PREVIEW_ITEM_INSTANCE_ID':\r\n return CharacterSpecificReducers.previewItem(state, action);\r\n case 'CHARACTER_SET_PREVIEW_SLOT_ID':\r\n return CharacterSpecificReducers.previewSlot(state, action);\r\n case 'CHARACTER_SHOW_ITEM_ADDER':\r\n return CharacterSpecificReducers.showItemAdder(state, action);\r\n case 'CHARACTER_HIDE_ITEM_ADDER':\r\n return CharacterSpecificReducers.hideItemAdder(state, action);\r\n case 'CHARACTER_FILTER_ITEMS':\r\n return CharacterSpecificReducers.filterItems(state, action);\r\n case 'CHARACTER_SET_HAND':\r\n return CharacterSpecificReducers.setHand(state, action);\r\n case 'CHARACTER_SET_ROLLING':\r\n return CharacterSpecificReducers.setRolling(state, action);\r\n case 'CHARACTER_RESET_HAND':\r\n return CharacterSpecificReducers.resetHand(state, action);\r\n case 'CHARACTER_SET_COMMUNAL_DICE':\r\n return CharacterSpecificReducers.setCommunalDice(state, action);\r\n case 'CHARACTER_SET_ROLL_SKILL':\r\n return CharacterSpecificReducers.setRollSkill(state, action);\r\n case 'CHARACTER_CLEAR_ROLL_SKILL':\r\n return CharacterSpecificReducers.clearRollSkill(state, action);\r\n\r\n\r\n //Properties\r\n case 'CHARACTER_SET_RULE_ENFORCEMENT':\r\n return CharacterPropertyReducers.setRuleEnforcement(state, action);\r\n case 'CHARACTER_UPDATE_NAME':\r\n return CharacterPropertyReducers.updateName(state, action);\r\n case 'CHARACTER_UPDATE_KINSHIP':\r\n return CharacterPropertyReducers.updateKinship(state, action);\r\n case 'CHARACTER_UPDATE_LEVEL':\r\n return CharacterPropertyReducers.updateLevel(state, action);\r\n case 'CHARACTER_UPDATE_CLASS_NAME':\r\n return CharacterPropertyReducers.updateClassName(state, action);\r\n case 'CHARACTER_ADJUST_MOVEMENT':\r\n return CharacterPropertyReducers.adjustMovement(state, action);\r\n case 'CHARACTER_OVERRIDE_MOVEMENT':\r\n return CharacterPropertyReducers.overrideMovement(state, action);\r\n case 'CHARACTER_UPDATE_HEALTH':\r\n return CharacterPropertyReducers.updateHealth(state, action);\r\n case 'CHARACTER_SET_JUICED':\r\n return CharacterPropertyReducers.setJuiced(state, action);\r\n case 'CHARACTER_UPDATE_MONEY':\r\n return CharacterPropertyReducers.updateMoney(state, action);\r\n case 'CHARACTER_PENDING_PROPERTY':\r\n return CharacterPropertyReducers.setPendingProperty(state, action);\r\n case 'CHARACTER_PENDING_PROPERTIES':\r\n return CharacterPropertyReducers.setPendingProperties(state, action);\r\n case 'CHARACTER_SAVE_PROPERTY':\r\n return CharacterPropertyReducers.setSavedProperty(state, action);\r\n case 'CHARACTER_SAVE_PROPERTIES':\r\n return CharacterPropertyReducers.setSavedProperties(state, action);\r\n\r\n\r\n //Competencies\r\n case 'CHARACTER_ADD_COMPETENCY':\r\n return CharacterCompetencyReducers.addCompetency(state, action);\r\n case 'CHARACTER_ADD_CUSTOM_COMPETENCY':\r\n return CharacterCompetencyReducers.addCustomCompetency(state, action);\r\n case 'CHARACTER_REMOVE_COMPETENCY':\r\n return CharacterCompetencyReducers.removeCompetency(state, action);\r\n case 'CHARACTER_SET_COMPETENCY_LEVEL':\r\n return CharacterCompetencyReducers.setCompetencyLevel(state, action);\r\n \r\n //Conditions\r\n case 'CHARACTER_ADD_CONDITION':\r\n return CharacterConditionReducers.addCondition(state, action);\r\n case 'CHARACTER_REMOVE_CONDITION':\r\n return CharacterConditionReducers.removeCondition(state, action);\r\n\r\n //Items\r\n case 'CHARACTER_ADD_ITEM':\r\n return CharacterItemReducers.addItem(state, action);\r\n case 'CHARACTER_MOVE_ITEMS':\r\n return CharacterItemReducers.moveItems(state, action);\r\n case 'CHARACTER_REMOVE_ITEMS':\r\n return CharacterItemReducers.removeItems(state, action);\r\n case 'CHARACTER_SAVE_ITEM':\r\n return CharacterItemReducers.saveItem(state, action);\r\n\r\n case 'CHARACTER_UPDATE_ITEM_NAME':\r\n return CharacterItemReducers.updateItemName(state, action);\r\n case 'CHARACTER_UPDATE_ITEM_NOTES':\r\n return CharacterItemReducers.updateItemNotes(state, action);\r\n\r\n case 'CHARACTER_ASSIGN_MOD':\r\n return CharacterItemReducers.assignMod(state, action);\r\n case 'CHARACTER_REMOVE_MOD':\r\n return CharacterItemReducers.removeMod(state, action);\r\n\r\n case 'CHARACTER_ADD_SLOTS':\r\n return CharacterItemReducers.addSlots(state, action);\r\n case 'CHARACTER_REMOVE_SLOTS':\r\n return CharacterItemReducers.removeSlots(state, action);\r\n case 'CHARACTER_UPDATE_SLOTS':\r\n return CharacterItemReducers.updateSlots(state, action);\r\n\r\n case 'CHARACTER_ASSIGN_BODY_MOD':\r\n return CharacterItemReducers.assignBodyMod(state, action);\r\n case 'CHARACTER_REMOVE_BODY_MOD':\r\n return CharacterItemReducers.removeBodyMod(state, action);\r\n\r\n\r\n //Minions\r\n case 'CHARACTER_SAVE_MINION':\r\n return CharacterMinionReducers.saveMinion(state, action);\r\n case 'CHARACTER_ADD_MINION':\r\n return CharacterMinionReducers.addMinion(state, action);\r\n case 'CHARACTER_REMOVE_MINION':\r\n return CharacterMinionReducers.removeMinion(state, action);\r\n case 'CHARACTER_UPDATE_MINION':\r\n return CharacterMinionReducers.updateMinion(state, action);\r\n\r\n\r\n\r\n //Perks\r\n case 'CHARACTER_SAVE_PERK':\r\n return CharacterPerkReducers.savePerk(state, action);\r\n case 'CHARACTER_ADD_PERK':\r\n return CharacterPerkReducers.addPerk(state, action);\r\n case 'CHARACTER_REMOVE_PERK':\r\n return CharacterPerkReducers.removePerk(state, action);\r\n\r\n\r\n //Personalities\r\n case 'CHARACTER_SAVE_PERSONALITY':\r\n return CharacterPersonalityReducers.savePersonality(state, action);\r\n case 'CHARACTER_ADD_PERSONALITY':\r\n return CharacterPersonalityReducers.addPersonality(state, action);\r\n case 'CHARACTER_REMOVE_PERSONALITY':\r\n return CharacterPersonalityReducers.removePersonality(state, action);\r\n\r\n\r\n //Rhetorics\r\n case 'CHARACTER_SAVE_RHETORIC':\r\n return CharacterRhetoricReducers.saveRhetoric(state, action);\r\n case 'CHARACTER_UPDATE_RHETORIC_PRIORITY':\r\n return CharacterRhetoricReducers.updateRhetoric(state, action);\r\n case 'CHARACTER_ADJUST_RHETORIC':\r\n return CharacterRhetoricReducers.adjustRhetoric(state, action);\r\n case 'CHARACTER_OVERRIDE_RHETORIC':\r\n return CharacterRhetoricReducers.overrideRhetoric(state, action);\r\n\r\n \r\n //Skills\r\n case 'CHARACTER_SAVE_SKILL':\r\n return CharacterSkillReducers.saveSkill(state, action);\r\n case 'CHARACTER_UPDATE_SKILL':\r\n return CharacterSkillReducers.updateSkill(state, action);\r\n case 'CHARACTER_ADJUST_SKILL':\r\n return CharacterSkillReducers.adjustSkill(state, action);\r\n case 'CHARACTER_OVERRIDE_SKILL':\r\n return CharacterSkillReducers.overrideSkill(state, action);\r\n \r\n\r\n default: return { ...state };\r\n }\r\n};\r\n\r\nconst ConvertToDeletableCharacters = (...characters: CharacterInitializer[]): LocalCharacterInitializer[] => {\r\n return characters.map(c => ({\r\n ...c,\r\n deleting: false,\r\n pendingProperties: {},\r\n showItemAdder: false,\r\n itemFilter: ItemFilter.GetDefaultInitializer(),\r\n communalDice: [1,1]\r\n }));\r\n}\r\n\r\nconst setPlayerRolling = (state: CharacterState, action: CharacterSetPlayerRolling): CharacterState => {\r\n const { characterId, request, response } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return setOtherPlayerRolling(state, action);\r\n }\r\n\r\n const newCharacter = {\r\n ...character,\r\n currentDice: {\r\n ...character.currentDice,\r\n actionDice: response.actionDice,\r\n extraDice: response.extraDice,\r\n skillId: request?.skillId ?? undefined,\r\n },\r\n rollRequest: action.request ?? undefined\r\n }\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst setOtherPlayerRolling = (state: CharacterState, action: CharacterSetPlayerRolling): CharacterState => {\r\n const { characterId, request, response } = action;\r\n const character = state.otherPlayerCharacters.find(c => c.id == characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n \r\n const newCharacter = {\r\n ...character,\r\n currentDice: {\r\n ...character.currentDice,\r\n actionDice: response.actionDice,\r\n extraDice: response.extraDice,\r\n skillId: request?.skillId ?? undefined,\r\n },\r\n rollRequest: action.request ?? undefined\r\n }\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst receivePlayerRoll = (state: CharacterState, action: CharacterReceivePlayerRoll): CharacterState => {\r\n const { characterId, response } = action;\r\n const character = CharacterReducerHelpers.getCharacter(state, characterId);\r\n if (character == null) {\r\n return receiveOtherPlayerRoll(state, action);\r\n }\r\n\r\n const newCharacter = { ...character };\r\n delete newCharacter.rollRequest;\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}\r\n\r\nconst receiveOtherPlayerRoll = (state: CharacterState, action: CharacterReceivePlayerRoll): CharacterState => {\r\n const { characterId, response } = action;\r\n const character = state.otherPlayerCharacters.find(c => c.id == characterId);\r\n if (character == null) {\r\n return state;\r\n }\r\n\r\n const newCharacter = { ...character };\r\n delete newCharacter.rollRequest;\r\n return CharacterReducerHelpers.updateCharacter(state, newCharacter);\r\n}","import { Action, Reducer } from \"redux\";\r\nimport { TooltipAction } from \"./TooltipStore.Actions\";\r\nimport { TooltipState } from \"./TooltipStore.State\";\r\n\r\nexport const TooltipReducer: Reducer = (state: TooltipState | undefined, incomingAction: Action): TooltipState => {\r\n if(state == undefined) {\r\n return {};\r\n }\r\n const action = incomingAction as TooltipAction;\r\n switch(action.type) {\r\n case 'TOOLTIP_CLEAR':\r\n return {};\r\n default:\r\n return state;\r\n }\r\n}","\r\nimport { CompetencyInitializer } from \"../../../entities/characters/Competencies\";\r\nimport { Condition } from \"../../../entities/characters/Conditions\";\r\nimport { Book } from \"../../../entities/library/books/Book\";\r\nimport { Enemy } from \"../../../entities/library/enemies/Enemy\";\r\nimport { EnemyActiveAbility, EnemyPassiveAbility, EnemyReactiveAbility } from \"../../../entities/library/enemies/EnemyAbilities\";\r\nimport { Hazard } from \"../../../entities/library/hazards/Hazard\";\r\nimport { ItemInitializer } from \"../../../entities/library/items/ItemInitializers\";\r\nimport { MinionInitializer } from \"../../../entities/library/minions/Minion\";\r\nimport { PerkInitializer } from \"../../../entities/library/perks/Perk\";\r\nimport { Scenario } from \"../../../entities/library/scenarios/Scenario\";\r\nimport { SkillInitializer } from \"../../../entities/library/skills/Skill\";\r\nimport { Personality } from \"../../../entities/library/socials/Personality\";\r\nimport { RhetoricInitializer } from \"../../../entities/library/socials/Rhetoric\";\r\n\r\nexport interface LibraryState {\r\n books: Book[];\r\n allBooksLoaded: boolean;\r\n booksError: boolean;\r\n\r\n competencies: CompetencyInitializer[];\r\n allCompetenciesLoaded: boolean;\r\n competenciesError: boolean;\r\n\r\n conditions: Condition[];\r\n allConditionsLoaded: boolean;\r\n conditionsError: boolean;\r\n\r\n hazards: Hazard[];\r\n allHazardsLoaded: boolean;\r\n hazardsError: boolean;\r\n\r\n items: ItemInitializer[];\r\n allItemsLoaded: boolean;\r\n itemsError: boolean;\r\n\r\n minions: MinionInitializer[];\r\n allMinionsLoaded: boolean;\r\n minionsError: boolean;\r\n\r\n perks: PerkInitializer[];\r\n allPerksLoaded: boolean;\r\n perksError: boolean;\r\n\r\n personalities: Personality[];\r\n allPersonalitiesLoaded: boolean;\r\n personalitiesError: boolean;\r\n\r\n rhetorics: RhetoricInitializer[];\r\n allRhetoricsLoaded: boolean;\r\n rhetoricsError: boolean;\r\n\r\n scenarios: Scenario[];\r\n allScenariosLoaded: boolean;\r\n scenariosError: boolean;\r\n\r\n skills: SkillInitializer[];\r\n allSkillsLoaded: boolean;\r\n skillsError: boolean;\r\n\r\n tags: string[];\r\n allTagsLoaded: boolean;\r\n tagsError: boolean;\r\n\r\n enemies: Enemy[];\r\n allEnemiesLoaded: boolean;\r\n enemiesError: boolean;\r\n\r\n enemyActiveAbilities: EnemyActiveAbility[];\r\n allEnemyActiveAbilitiesLoaded: boolean;\r\n enemyActiveAbilitiesError: boolean;\r\n\r\n enemyReactiveAbilities: EnemyReactiveAbility[];\r\n allEnemyReactiveAbilitiesLoaded: boolean;\r\n enemyReactiveAbilitiesError: boolean;\r\n\r\n enemyPassiveAbilities: EnemyPassiveAbility[];\r\n allEnemyPassiveAbilitiesLoaded: boolean;\r\n enemyPassiveAbilitiesError: boolean;\r\n}\r\n\r\nexport const LibraryDefaultState: LibraryState = {\r\n books: [],\r\n allBooksLoaded: false,\r\n booksError: false,\r\n\r\n competencies: [],\r\n allCompetenciesLoaded: false,\r\n competenciesError: false,\r\n\r\n conditions: [],\r\n allConditionsLoaded: false,\r\n conditionsError: false,\r\n\r\n hazards: [],\r\n allHazardsLoaded: false,\r\n hazardsError: false,\r\n\r\n items: [],\r\n allItemsLoaded: false,\r\n itemsError: false,\r\n\r\n minions: [],\r\n allMinionsLoaded: false,\r\n minionsError: false,\r\n\r\n perks: [],\r\n allPerksLoaded: false,\r\n perksError: false,\r\n\r\n personalities: [],\r\n allPersonalitiesLoaded: false,\r\n personalitiesError: false,\r\n \r\n rhetorics: [],\r\n allRhetoricsLoaded: false,\r\n rhetoricsError: false,\r\n\r\n scenarios: [],\r\n allScenariosLoaded: false,\r\n scenariosError: false,\r\n\r\n skills: [],\r\n allSkillsLoaded: false,\r\n skillsError: false,\r\n\r\n tags: [],\r\n allTagsLoaded: false,\r\n tagsError: false,\r\n\r\n enemies: [],\r\n allEnemiesLoaded: false,\r\n enemiesError: false,\r\n\r\n enemyActiveAbilities: [],\r\n allEnemyActiveAbilitiesLoaded: false,\r\n enemyActiveAbilitiesError: false,\r\n\r\n enemyReactiveAbilities: [],\r\n allEnemyReactiveAbilitiesLoaded: false,\r\n enemyReactiveAbilitiesError: false,\r\n\r\n enemyPassiveAbilities: [],\r\n allEnemyPassiveAbilitiesLoaded: false,\r\n enemyPassiveAbilitiesError: false,\r\n};\r\n","import { Action, Reducer } from 'redux';\r\nimport { SortedSet } from '../../../entities/data-structures/SortedSet';\r\nimport { LibraryAction } from './LibraryStore.Actions';\r\nimport { LibraryDefaultState, LibraryState } from './LibraryStore.State'; \r\n\r\nexport const LibraryReducer: Reducer = (state: LibraryState | undefined, incomingAction: Action ): LibraryState => {\r\n if (state == undefined) {\r\n return LibraryDefaultState;\r\n }\r\n const action = incomingAction as LibraryAction;\r\n switch (action.type) {\r\n //Books\r\n case 'LIBRARY_BOOKS_LOADED':\r\n const books = new SortedSet(state.books);\r\n books.addOrUpdateRange(...action.books);\r\n return { ...state, books: [...books], allBooksLoaded: action.all ?? state.allBooksLoaded, booksError: false };\r\n\r\n case 'LIBRARY_BOOKS_SET_ERROR_STATE':\r\n return { ...state, booksError: true };\r\n\r\n //Competencies\r\n case 'LIBRARY_COMPETENCIES_LOADED':\r\n const competencies = new SortedSet(state.competencies);\r\n competencies.addOrUpdateRange(...action.competencies);\r\n return { ...state, competencies: [...competencies], allCompetenciesLoaded: action.all ?? state.allCompetenciesLoaded, competenciesError: false };\r\n\r\n case 'LIBRARY_COMPETENCIES_SET_ERROR_STATE':\r\n return { ...state, competenciesError: true };\r\n \r\n //Conditions\r\n case 'LIBRARY_CONDITIONS_LOADED':\r\n const conditions = new SortedSet(state.conditions);\r\n conditions.addOrUpdateRange(...action.conditions);\r\n return { ...state, conditions: [...conditions], allConditionsLoaded: action.all ?? state.allConditionsLoaded, conditionsError: false };\r\n\r\n case 'LIBRARY_CONDITIONS_SET_ERROR_STATE':\r\n return { ...state, conditionsError: true };\r\n\r\n //Enemies\r\n case 'LIBRARY_ENEMIES_LOADED':\r\n const enemies = new SortedSet(state.enemies);\r\n enemies.addOrUpdateRange(...action.enemies);\r\n return { ...state, enemies: [...enemies], allEnemiesLoaded: action.all ?? state.allEnemiesLoaded, enemiesError: false };\r\n\r\n case 'LIBRARY_ENEMIES_SET_ERROR_STATE':\r\n return { ...state, enemiesError: true }\r\n\r\n\r\n //Active Abilities\r\n case 'LIBRARY_ENEMY_ACTIVE_ABILITIES_LOADED':\r\n const enemyActiveAbilities = new SortedSet(action.enemyActiveAbilities);\r\n return { ...state, enemyActiveAbilities: [...enemyActiveAbilities], allEnemyActiveAbilitiesLoaded: action.all ?? false, enemyActiveAbilitiesError: false };\r\n\r\n case 'LIBRARY_ENEMY_ACTIVE_ABILITIES_SET_ERROR_STATE':\r\n return { ...state, enemyActiveAbilitiesError: true };\r\n\r\n\r\n //Reactive Abilities\r\n case 'LIBRARY_ENEMY_REACTIVE_ABILITIES_LOADED':\r\n const enemyReactiveAbilities = new SortedSet(action.enemyReactiveAbilities);\r\n return { ...state, enemyReactiveAbilities: [...enemyReactiveAbilities], allEnemyReactiveAbilitiesLoaded: action.all ?? false, enemyReactiveAbilitiesError: false };\r\n\r\n case 'LIBRARY_ENEMY_REACTIVE_ABILITIES_SET_ERROR_STATE':\r\n return { ...state, enemyReactiveAbilitiesError: true };\r\n\r\n\r\n //Passive Abilities\r\n case 'LIBRARY_ENEMY_PASSIVE_ABILITIES_LOADED':\r\n const enemyPassiveAbilities = new SortedSet(action.enemyPassiveAbilities);\r\n return { ...state, enemyPassiveAbilities: [...enemyPassiveAbilities], allEnemyPassiveAbilitiesLoaded: action.all ?? false, enemyPassiveAbilitiesError: false };\r\n\r\n case 'LIBRARY_ENEMY_PASSIVE_ABILITIES_SET_ERROR_STATE':\r\n return { ...state, enemyPassiveAbilitiesError: true };\r\n\r\n\r\n //Hazards\r\n case 'LIBRARY_HAZARDS_LOADED':\r\n const hazards = new SortedSet(state.hazards);\r\n hazards.addOrUpdateRange(...action.hazards);\r\n return { ...state, hazards: [...hazards], allHazardsLoaded: action.all ?? state.allHazardsLoaded, hazardsError: false };\r\n\r\n case 'LIBRARY_HAZARDS_SET_ERROR_STATE':\r\n return { ...state, hazardsError: true };\r\n\r\n\r\n //Items\r\n case 'LIBRARY_ITEMS_LOADED':\r\n const items = new SortedSet(state.items);\r\n items.addOrUpdateRange(...action.items);\r\n return { ...state, items: [...items], allItemsLoaded: action.all ?? state.allItemsLoaded, itemsError: false };\r\n\r\n case 'LIBRARY_ITEMS_SET_ERROR_STATE':\r\n return { ...state, itemsError: true };\r\n\r\n\r\n //Minions\r\n case 'LIBRARY_MINIONS_LOADED':\r\n const minions = new SortedSet(state.minions);\r\n minions.addOrUpdateRange(...action.minions);\r\n return { ...state, minions: [...minions], allMinionsLoaded: action.all ?? state.allMinionsLoaded, perksError: false };\r\n\r\n case 'LIBRARY_MINIONS_SET_ERROR_STATE':\r\n return { ...state, minionsError: true };\r\n\r\n //Perks\r\n case 'LIBRARY_PERKS_LOADED':\r\n const perks = new SortedSet(state.perks);\r\n perks.addOrUpdateRange(...action.perks);\r\n return { ...state, perks: [...perks], allPerksLoaded: action.all ?? state.allPerksLoaded, perksError: false };\r\n\r\n case 'LIBRARY_PERKS_SET_ERROR_STATE':\r\n return { ...state, perksError: true };\r\n\r\n //Personalities\r\n case 'LIBRARY_PERSONALITIES_LOADED':\r\n const personalities = new SortedSet(state.personalities);\r\n personalities.addOrUpdateRange(...action.personalities);\r\n return { ...state, personalities: [...personalities], allPersonalitiesLoaded: action.all ?? state.allPersonalitiesLoaded, personalitiesError: false };\r\n\r\n case 'LIBRARY_PERSONALITIES_SET_ERROR_STATE':\r\n return { ...state, personalitiesError: true };\r\n\r\n //Rhetorics\r\n case 'LIBRARY_RHETORICS_LOADED':\r\n const rhetorics = new SortedSet(state.rhetorics);\r\n rhetorics.addOrUpdateRange(...action.rhetorics);\r\n return { ...state, rhetorics: [...rhetorics], allRhetoricsLoaded: action.all ?? state.allRhetoricsLoaded, rhetoricsError: false };\r\n\r\n case 'LIBRARY_RHETORICS_SET_ERROR_STATE':\r\n return { ...state, rhetoricsError: true };\r\n\r\n\r\n //Scenarios\r\n case 'LIBRARY_SCENARIOS_LOADED':\r\n const scenarios = new SortedSet(state.scenarios);\r\n scenarios.addOrUpdateRange(...action.scenarios);\r\n return { ...state, scenarios: [...scenarios], allScenariosLoaded: action.all ?? state.allScenariosLoaded, scenariosError: false };\r\n case 'LIBRARY_SCENARIOS_SET_ERROR_STATE':\r\n return { ...state, scenariosError: true };\r\n\r\n\r\n //Skills\r\n case 'LIBRARY_SKILLS_LOADED':\r\n const skills = new SortedSet(state.skills);\r\n skills.addOrUpdateRange(...action.skills);\r\n return { ...state, skills: [...skills], allSkillsLoaded: action.all ?? state.allSkillsLoaded, skillsError: false };\r\n \r\n case 'LIBRARY_SKILLS_SET_ERROR_STATE':\r\n return { ...state, skillsError: true };\r\n\r\n\r\n //Tags\r\n case 'LIBRARY_TAGS_LOADED':\r\n const tags = new Set([...state.tags, ...action.tags]);\r\n return { ...state, tags: [...tags], allTagsLoaded: action.all ?? state.allTagsLoaded, tagsError: false };\r\n\r\n case 'LIBRARY_TAGS_SET_ERROR_STATE':\r\n return { ...state, tagsError: true };\r\n \r\n default:\r\n return state;\r\n }\r\n};\r\n","import { Toast } from \"../../../entities/toasts/Toasts\";\r\n\r\nexport interface ToastState {\r\n toasts: Toast[];\r\n}\r\n\r\nexport interface IToastableApp { toast: ToastState }\r\n\r\nexport const ToastDefaultState = {\r\n toasts: []\r\n}","import { Action, Reducer } from \"redux\";\r\nimport { ToastAction, ToastDismiss, ToastPush } from \"./Toasts.Actions\";\r\nimport { ToastDefaultState, ToastState } from \"./Toasts.State\";\r\n\r\nexport const ToastReducer: Reducer = (\r\n state: ToastState | undefined,\r\n incomingAction: Action\r\n): ToastState => {\r\n if(state == undefined) {\r\n return ToastDefaultState;\r\n }\r\n const action = incomingAction as ToastAction;\r\n switch(action.type) {\r\n case 'TOAST_PUSH':\r\n return pushToast(state, action);\r\n case 'TOAST_PUSH_LEGACY':\r\n return { ...state, toasts: [action.toast, ...state.toasts] };\r\n case 'TOAST_PUSH_RANGE':\r\n return { ...state, toasts: [...action.toasts, ...state.toasts] };\r\n case 'TOAST_DISMISS':\r\n return dismissToast(state, action);\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\nconst pushToast = (state: ToastState, action: ToastPush): ToastState => {\r\n const { id, message, toastType: type } = action;\r\n const toast = { id, message, type };\r\n return { ...state, toasts: [toast, ...state.toasts] };\r\n}\r\n\r\nconst dismissToast = (state: ToastState, action: ToastDismiss): ToastState => {\r\n const { id } = action;\r\n const toast = state.toasts.find(toast => toast.id == id);\r\n if (toast == null) {\r\n return state;\r\n }\r\n\r\n return { ...state, toasts: [...state.toasts.filter(toast => toast.id != id)] };\r\n}","import { PlayerAccount } from \"../../../entities/user/PlayerAccount\";\r\n\r\nexport type PlayerState = {\r\n me: PlayerAccount | null;\r\n adventureConnectionId: string | null;\r\n loadingMe: boolean;\r\n players: PlayerAccount[];\r\n}\r\n\r\nexport const PlayerDefaultState: PlayerState = {\r\n me: null,\r\n adventureConnectionId: null,\r\n loadingMe: true,\r\n players: [],\r\n}","import { Action, Reducer } from \"redux\";\r\nimport { SortedSet } from \"../../../entities/data-structures/SortedSet\";\r\nimport { UserAction } from \"./PlayerStore.Actions\";\r\nimport { PlayerDefaultState, PlayerState } from \"./PlayerStore.State\";\r\n\r\nexport const PlayerReducer: Reducer = (state: PlayerState | undefined, incomingAction: Action) => {\r\n if (state == undefined) {\r\n return PlayerDefaultState;\r\n }\r\n const action = incomingAction as UserAction;\r\n switch (action.type) {\r\n case 'USER_SET':\r\n return { ...state, me: action.player };\r\n case 'USER_SET_ADVENTURE_CONNECTION':\r\n return { ...state, adventureConnectionId: action.adventureConnectionId };\r\n case 'USERS_GET':\r\n const players = [\r\n ...state.players,\r\n ...action.players.filter(user => user.id != state.me?.id && !state.players.any(existingPlayer => existingPlayer.id == user.id))\r\n ];\r\n return { ...state, players, loadingMe: false }\r\n case 'USER_CLEAR':\r\n return { ...state, me: null, loadingMe: false };\r\n default:\r\n return state;\r\n }\r\n}","import { Book } from \"../../../entities/library/books/Book\"\r\n\r\nexport type BookState = {\r\n books: Book[]\r\n}\r\n\r\nexport const BookDefaultState: BookState = {\r\n books: []\r\n}","import { Action, Reducer } from \"redux\";\r\nimport { BookAction } from \"./BookStore.Actions\";\r\nimport { BookDefaultState, BookState } from \"./BookStore.State\";\r\n\r\nexport const BookReducer: Reducer = (state: BookState | undefined, incomingAction: Action): BookState => {\r\n if (state == undefined) {\r\n return BookDefaultState;\r\n }\r\n const action = incomingAction as BookAction;\r\n switch (action.type) {\r\n default:\r\n return state;\r\n }\r\n}","export interface SiteState {\r\n loading: boolean;\r\n}\r\n\r\nexport const DefaultSiteState: SiteState = {\r\n loading: false\r\n}","import { DefaultSiteState, SiteState } from \"./SiteStore.State\";\r\nimport { SiteAction } from \"./SiteStore.Actions\";\r\nimport { Action, Reducer } from \"redux\";\r\n\r\nexport const SiteReducer: Reducer = (state: SiteState | undefined, incomingAction: Action) => {\r\n if (state == undefined) {\r\n return DefaultSiteState;\r\n }\r\n const action = incomingAction as SiteAction;\r\n switch (action.type) {\r\n case 'SITE_SET_LOADING':\r\n return { ...state, loading: action.loading };\r\n default:\r\n return state;\r\n }\r\n}","import { configureStore, Dispatch, UnknownAction } from '@reduxjs/toolkit';\r\nimport { AccountApiServerConfig } from '../apis/account/config/AccountApiServerConfig';\r\nimport { AdventureHub } from '../apis/account/Hub.Adventure';\r\nimport { createRootReducer } from './RootReducer';\r\nimport { ApplicationState } from './stores/ApplicationState';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useSelector } from 'react-redux';\r\n\r\nfunction configureAppStore(preloadedState: ApplicationState) {\r\n const reducer = createRootReducer();\r\n\r\n const store = configureStore({\r\n reducer,\r\n middleware: (getDefaultMiddleWare) => getDefaultMiddleWare().concat(AdventureHub.CreateMiddleware()),\r\n preloadedState,\r\n });\r\n\r\n AdventureHub.CreateInstance(store, AccountApiServerConfig.AdventureHubConfig);\r\n return store;\r\n}\r\n\r\nexport type StoreDispatch = ReturnType['dispatch'];\r\nexport type StoreGetState = ReturnType['getState'];\r\nexport const useAppDispatch = useDispatch.withTypes();\r\nexport const useAppSelector = useSelector.withTypes();\r\n\r\nexport default configureAppStore;\r\n","import { combineReducers } from 'redux';\r\nimport { AdventureReducer } from './stores/adventures/AdventureStore.Reducer';\r\nimport { CharacterReducer } from './stores/collection/characters/CharacterStore.Reducer';\r\nimport { TooltipReducer } from './stores/details/TooltipStore.Reducer';\r\nimport { LibraryReducer } from './stores/library/LibraryStore.Reducer';\r\nimport { ToastReducer } from './stores/toasts/Toasts.Reducer';\r\nimport { PlayerReducer } from './stores/players/PlayerStore.Reducer';\r\nimport { BookReducer } from './stores/books/BookStore.Reducer';\r\nimport { SiteReducer } from './stores/site/SiteStore.Reducer';\r\n\r\nexport const createRootReducer = () => combineReducers({\r\n adventure: AdventureReducer,\r\n book: BookReducer,\r\n character: CharacterReducer,\r\n library: LibraryReducer,\r\n player: PlayerReducer,\r\n site: SiteReducer,\r\n toast: ToastReducer,\r\n tooltip: TooltipReducer,\r\n});\r\n","import React from \"react\"\r\n\r\nexport const ComingSoon = () => (\r\n
    \r\n
    \r\n

    Coming Soon

    \r\n

    \r\n This feature isn't complete yet! Come back later.\r\n

    \r\n
    \r\n
    \r\n)","import React from \"react\";\r\n\r\nexport const Profile: React.FC = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import './themed-button.scss';\r\nimport * as React from 'react';\r\nimport { JSXChildProps } from '../../../entities/utils/jsx/Children';\r\n\r\ntype Props = {\r\n title?: string;\r\n className?: string;\r\n disabled?: boolean;\r\n active?: boolean;\r\n playSound?: boolean;\r\n onClick?: (e: React.MouseEvent) => any;\r\n submit?: boolean;\r\n} & JSXChildProps;\r\n\r\nexport const ThemedButton: React.FC = (props: Props) => {\r\n const { title, className, disabled,\r\n active, playSound, onClick,\r\n submit, children } = props;\r\n return (\r\n \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport { UserActions } from \"../../store/stores/players/PlayerStore.Actions\";\r\nimport { ThemedButton } from \"../inputs/buttons/ThemedButton\";\r\nimport { useNavigate } from \"react-router\";\r\nimport { useAppDispatch } from \"../../store/configureStore\";\r\n\r\n\r\nexport const CreateName = () => {\r\n const dispatch = useAppDispatch();\r\n const navigate = useNavigate();\r\n const [displayName, setDisplayName] = useState(\"\");\r\n return (\r\n
    \r\n
    \r\n
    \r\n Hey there wastelander, we just need you to enter a username to finish setting up your account.\r\n
    \r\n \r\n setDisplayName(e.target.value)} />\r\n
    \r\n dispatch(UserActions.submitDisplayName(displayName, () => navigate(\"/\")))}>\r\n Submit\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import React, { useEffect } from \"react\"\r\nimport { Profile } from \"./Profile\"\r\nimport { CreateName } from \"./CreateName\"\r\nimport { Route, Routes, useNavigate } from \"react-router\"\r\nimport { useAuth0 } from \"@auth0/auth0-react\"\r\nimport { useAppDispatch } from \"../../store/configureStore\"\r\n\r\nexport const Account = () => {\r\n const navigate = useNavigate();\r\n const dispatch = useAppDispatch();\r\n const { isAuthenticated } = useAuth0();\r\n\r\n useEffect(() => {\r\n if (!isAuthenticated) {\r\n navigate(\"/\");\r\n }\r\n }, [dispatch, navigate, isAuthenticated])\r\n return (\r\n \r\n } />\r\n } />\r\n \r\n )\r\n}","import * as React from 'react';\r\n\r\nexport const TheCataclysm = () => (The Cataclysm);","import React, { ErrorInfo } from \"react\";\r\nimport { JSXChildProps } from \"../../entities/utils/jsx/Children\";\r\nimport { TheCataclysm } from \"../theming/texts\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\ntype Props = JSXChildProps;\r\ntype State = { hasError: boolean };\r\n\r\nexport class ErrorBound extends React.Component {\r\n public constructor(props: Props) {\r\n super(props);\r\n this.state = { hasError: false };\r\n }\r\n\r\n public static getDerivedStateFromError(error: Error): State {\r\n return { hasError: true };\r\n }\r\n\r\n public componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\r\n console.error(error);\r\n console.error(errorInfo);\r\n //todo: log the error on a service\r\n }\r\n\r\n public render(): React.ReactNode {\r\n return this.state.hasError\r\n ? this.displayError\r\n : this.props.children;\r\n }\r\n\r\n private get displayError(): JSX.Element {\r\n return (\r\n
    \r\n
    \r\n

    \r\n Something terrible happened; it's the second coming of !\r\n

    \r\n

    \r\n We encountered a problem with our service, you can try window.location.reload()}>refreshing the page,\r\n or starting over.\r\n

    \r\n
    \r\n
    \r\n );\r\n }\r\n}","import React from \"react\";\r\nimport { useLocation } from \"react-router\";\r\nimport { TheCataclysm } from \"../theming/texts\";\r\n\r\nexport const ErrorPage = () => {\r\n const { search } = useLocation();\r\n const redirect = new URLSearchParams(search).get('redirect') || \"/\";\r\n return (\r\n
    \r\n
    \r\n

    \r\n Something terrible happened; it's the second coming of !\r\n

    \r\n

    \r\n Sorry, we encountered a problem with our service. You can try starting over.\r\n

    \r\n
    \r\n
    \r\n );\r\n}","import React from \"react\";\r\n\r\ntype ArticleNavRenderer = (index?: number) => React.ReactNode;\r\n\r\nexport interface ArticleNavLinkInitializer {\r\n name: React.ReactNode;\r\n path: string;\r\n sublinks?: ArticleNavLinkInitializer[];\r\n render?: ArticleNavRenderer;\r\n articleOnlySublinks?: boolean;\r\n}\r\n\r\nexport class ArticleNavLink implements Required {\r\n public constructor(initializer: ArticleNavLinkInitializer) {\r\n this.initializer = initializer;\r\n this.name = initializer.name;\r\n this.path = initializer.path;\r\n this.sublinks = initializer.sublinks?.map(\r\n (sublink) => new ArticleNavLink(sublink)\r\n ) ?? [];\r\n this.render = initializer.render || (() => undefined);\r\n this.articleOnlySublinks = initializer.articleOnlySublinks ?? false;\r\n }\r\n\r\n public readonly initializer: ArticleNavLinkInitializer;\r\n public readonly name: React.ReactNode;\r\n public readonly path: string;\r\n public readonly sublinks: ArticleNavLink[];\r\n public readonly render: ArticleNavRenderer;\r\n public readonly articleOnlySublinks: boolean;\r\n\r\n public get hash(): string | undefined {\r\n return this.path.split('#')[1];\r\n }\r\n\r\n public get sublinkTos(): string[] {\r\n return (\r\n this.sublinks?.reduce(\r\n (accum: string[], curr: ArticleNavLink) => {\r\n return [...accum, ...curr.sublinkTos];\r\n },\r\n [this.path]\r\n ) ?? [this.path]\r\n );\r\n }\r\n\r\n public GetAsChild(navLink: ArticleNavLink) {\r\n return new ArticleNavLink({\r\n ...navLink,\r\n path: `${this.path}${navLink.path}`\r\n });\r\n }\r\n}","import { PascalToCamel, PascalToSnake } from \"../../../entities/Utilities\";\r\nimport { CompetencyInitializer } from \"../../../entities/characters/Competencies\";\r\nimport { Condition } from \"../../../entities/characters/Conditions\";\r\nimport { Book } from \"../../../entities/library/books/Book\";\r\nimport { Enemy } from \"../../../entities/library/enemies/Enemy\";\r\nimport { EnemyActiveAbility, EnemyPassiveAbility, EnemyReactiveAbility } from \"../../../entities/library/enemies/EnemyAbilities\";\r\nimport { Hazard } from \"../../../entities/library/hazards/Hazard\";\r\nimport { ItemInitializer } from \"../../../entities/library/items/ItemInitializers\";\r\nimport { MinionInitializer } from \"../../../entities/library/minions/Minion\";\r\nimport { PerkInitializer } from \"../../../entities/library/perks/Perk\";\r\nimport { Scenario } from \"../../../entities/library/scenarios/Scenario\";\r\nimport { SkillInitializer } from \"../../../entities/library/skills/Skill\";\r\nimport { Personality } from \"../../../entities/library/socials/Personality\";\r\nimport { RhetoricInitializer } from \"../../../entities/library/socials/Rhetoric\";\r\nimport { ErrorToast } from \"../../../entities/toasts/Toasts\";\r\nimport { AppThunkAction } from \"../ApplicationState\";\r\nimport { ApiDefaultState } from \"../api/ApiStore.State\";\r\nimport { ToastAction, ToastDispatchables } from \"../toasts/Toasts.Actions\";\r\n\r\ntype LibraryEntityName = \"Books\"\r\n | \"Competencies\"\r\n | \"Conditions\"\r\n | \"Hazards\"\r\n | \"Items\"\r\n | \"Minions\"\r\n | \"Perks\"\r\n | \"Personalities\"\r\n | \"Rhetorics\"\r\n | \"Scenarios\"\r\n | \"Skills\"\r\n | \"Tags\"\r\n | \"Enemies\"\r\n | \"EnemyActiveAbilities\"\r\n | \"EnemyReactiveAbilities\"\r\n | \"EnemyPassiveAbilities\";\r\n\r\ntype LibraryEntityNamesContainer = Record;\r\n\r\ntype LibraryEntityFromName = \r\n T extends \"Books\"\r\n ? Book\r\n : T extends \"Competencies\"\r\n ? CompetencyInitializer\r\n : T extends \"Conditions\"\r\n ? Condition\r\n : T extends \"Hazards\"\r\n ? Hazard\r\n : T extends \"Items\"\r\n ? ItemInitializer\r\n : T extends \"Minions\"\r\n ? MinionInitializer\r\n : T extends \"Perks\"\r\n ? PerkInitializer\r\n : T extends \"Personalities\"\r\n ? Personality\r\n : T extends \"Rhetorics\"\r\n ? RhetoricInitializer\r\n : T extends \"Scenarios\"\r\n ? Scenario\r\n : T extends \"Skills\"\r\n ? SkillInitializer\r\n : T extends \"Tags\"\r\n ? string\r\n : T extends \"Enemies\"\r\n ? Enemy\r\n : T extends \"EnemyActiveAbilities\"\r\n ? EnemyActiveAbility\r\n : T extends \"EnemyReactiveAbilities\"\r\n ? EnemyReactiveAbility\r\n : T extends \"EnemyPassiveAbilities\"\r\n ? EnemyPassiveAbility\r\n : never;\r\n\r\ntype EntityLoadTemplate = {\r\n type: `LIBRARY_${Uppercase>}_LOADED`,\r\n entities: LibraryEntityFromName[],\r\n all?: boolean,\r\n};\r\ntype EntitiesLoaded = {\r\n [k in keyof EntityLoadTemplate as k extends 'entities' ? PascalToCamel : k]: EntityLoadTemplate[k];\r\n}\r\n\r\ntype LibrarySetEntityError = { type: `LIBRARY_${Uppercase>}_SET_ERROR_STATE` }\r\n\r\ntype LibraryEntitiesLoadedCollection = {\r\n [T in keyof LibraryEntityNamesContainer]: EntitiesLoaded;\r\n}\r\n\r\ntype LibrarySetErrorCollection = {\r\n [T in keyof LibraryEntityNamesContainer]: LibrarySetEntityError;\r\n}\r\n\r\ntype EntityKeys = keyof LibraryEntitiesLoadedCollection;\r\n\r\ntype LibraryEntityAction = LibraryEntitiesLoadedCollection[T] | LibrarySetErrorCollection[T];\r\n\r\nexport type LibraryAction = LibraryEntitiesLoadedCollection[EntityKeys] | LibrarySetErrorCollection[EntityKeys];\r\n\r\nexport const LibraryActions = {\r\n loadBooks: (): AppThunkAction | ToastAction> =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.books.getAll();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_BOOKS_LOADED', books: response.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n },\r\n\r\n loadCompetencies: (): AppThunkAction | ToastAction> =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.competencies.getAll();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_COMPETENCIES_LOADED', competencies: response.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n },\r\n\r\n loadConditions: (): AppThunkAction | ToastAction> =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.conditions.getAll();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_CONDITIONS_LOADED', conditions: response.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n },\r\n\r\n loadHazards: (): AppThunkAction | ToastAction> =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.hazards.getAll();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_HAZARDS_LOADED', hazards: response.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n },\r\n \r\n loadItems: (): AppThunkAction | ToastAction> =>\r\n async (dispatch, getState) => {\r\n try {\r\n const response = await ApiDefaultState.items.getItems();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_ITEMS_LOADED', items: response.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e: unknown) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Error loading items.\"), dispatch);\r\n dispatch({ type: \"LIBRARY_ITEMS_SET_ERROR_STATE\" });\r\n }\r\n },\r\n\r\n loadMinions: (): AppThunkAction | ToastAction> =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.minions.getAll();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_MINIONS_LOADED', minions: response.payload, all: true })\r\n }\r\n },\r\n\r\n loadPerks: (): AppThunkAction | ToastAction> =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.perks.getAll();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_PERKS_LOADED', perks: response.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n },\r\n\r\n loadPersonalities: (): AppThunkAction | ToastAction> =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.personalities.getAll();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_PERSONALITIES_LOADED', personalities: response.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n },\r\n \r\n loadRhetorics: (): AppThunkAction | ToastAction> =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.rhetorics.getAll();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_RHETORICS_LOADED', rhetorics: response.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n },\r\n\r\n loadSkills: (): AppThunkAction | ToastAction> =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.skills.getAll();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_SKILLS_LOADED', skills: response.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n },\r\n\r\n loadTags: (): AppThunkAction | ToastAction> =>\r\n async (dispatch, getState) => {\r\n try {\r\n const response = await ApiDefaultState.tags.getTags();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_TAGS_LOADED', tags: response.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e: unknown) {\r\n console.error(e);\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Encountered an error while retrieving tags.\"), dispatch);\r\n dispatch({ type: \"LIBRARY_TAGS_SET_ERROR_STATE\" });\r\n }\r\n },\r\n\r\n loadEnemies: (): AppThunkAction | ToastAction> =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.enemies.getAll();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_ENEMIES_LOADED', enemies: response.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n },\r\n\r\n loadEnemyAbilities: (): AppThunkAction | EntitiesLoaded<\"EnemyReactiveAbilities\"> | EntitiesLoaded<\"EnemyPassiveAbilities\"> | ToastAction> =>\r\n async (dispatch, getState) => {\r\n const { enemyActiveAbilities, enemyReactiveAbilities, enemyPassiveAbilities } = ApiDefaultState;\r\n const [actionsResponse, reactionsResponse, passivesResponse] = await Promise.all([\r\n enemyActiveAbilities.getAll(),\r\n enemyReactiveAbilities.getAll(),\r\n enemyPassiveAbilities.getAll()\r\n ]);\r\n if (actionsResponse.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_ENEMY_ACTIVE_ABILITIES_LOADED', enemyActiveAbilities: actionsResponse.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(actionsResponse.validationResults, dispatch);\r\n }\r\n\r\n if (reactionsResponse.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_ENEMY_REACTIVE_ABILITIES_LOADED', enemyReactiveAbilities: reactionsResponse.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(reactionsResponse.validationResults, dispatch);\r\n }\r\n\r\n if (passivesResponse.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_ENEMY_PASSIVE_ABILITIES_LOADED', enemyPassiveAbilities: passivesResponse.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(passivesResponse.validationResults, dispatch);\r\n }\r\n },\r\n\r\n loadScenarios: (): AppThunkAction | ToastAction> =>\r\n async (dispatch, getState) => {\r\n const response = await ApiDefaultState.scenarios.getAll();\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'LIBRARY_SCENARIOS_LOADED', scenarios: response.payload, all: true });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n },\r\n}","import { SelectableOption } from \"../../components/inputs/selects/SelectableOption\";\r\nimport { OwnedCompetencyReference } from \"../Ownership\";\r\n\r\nexport enum CompetencyCategory {\r\n Exploration = 1,\r\n Social = 2,\r\n Knowledge = 3,\r\n Technical = 4,\r\n Other = 5\r\n}\r\n\r\nexport const AllCompetencyCategories: CompetencyCategory[] = [\r\n CompetencyCategory.Exploration,\r\n CompetencyCategory.Social,\r\n CompetencyCategory.Knowledge,\r\n CompetencyCategory.Technical,\r\n CompetencyCategory.Other\r\n]\r\n\r\nexport const CompetencyCategoryNames: Record = {\r\n [CompetencyCategory.Exploration]: \"Exploration\",\r\n [CompetencyCategory.Social]: \"Social\",\r\n [CompetencyCategory.Knowledge]: \"Knowledge\",\r\n [CompetencyCategory.Technical]: \"Technical\",\r\n [CompetencyCategory.Other]: \"Other\"\r\n}\r\n\r\nexport const CompetencyCategoriesByName: Record = {\r\n [\"Exploration\"]: CompetencyCategory.Exploration,\r\n [\"Social\"]: CompetencyCategory.Social,\r\n [\"Knowledge\"]: CompetencyCategory.Knowledge,\r\n [\"Technical\"]: CompetencyCategory.Technical,\r\n [\"Other\"]: CompetencyCategory.Other\r\n}\r\n\r\nexport const CompetencyCategoryOptions: SelectableOption[] = AllCompetencyCategories.map(cc => ({\r\n value: cc,\r\n name: CompetencyCategoryNames[cc]\r\n}))\r\n\r\nexport type CompetencyInitializer = {\r\n id: string;\r\n name: string;\r\n description: string;\r\n category: CompetencyCategory;\r\n}\r\n\r\nexport const DefaultCompetencyInitializer: CompetencyInitializer = {\r\n id: '',\r\n name: '',\r\n description: '',\r\n category: CompetencyCategory.Exploration\r\n}\r\n\r\nexport type CustomCompetencyInitializer = CompetencyInitializer & OwnedCompetencyReference;\r\n\r\nexport const DefaultCompetency: CustomCompetencyInitializer = {\r\n ...DefaultCompetencyInitializer,\r\n isExpert: false,\r\n saved: false\r\n}\r\n\r\nconst getName = (competency?: CompetencyInitializer, customCompetency?: CustomCompetencyInitializer) => {\r\n return competency?.name ?? customCompetency?.name ?? \"Unknown Competency\";\r\n}\r\n\r\nexport const CompetencyHelpers = Object.freeze({\r\n getName,\r\n})","import React from \"react\";\r\n\r\ntype Props = {\r\n name: string;\r\n onChange: (name: string) => unknown;\r\n}\r\n\r\nexport const NameFilter = (props: Props) => {\r\n const { name, onChange } = props;\r\n return (\r\n
    \r\n
    \r\n \r\n onChange(e.target.value)} />\r\n
    \r\n
    \r\n )\r\n}","import { CompetencyCategoriesByName, CompetencyCategory, CompetencyCategoryNames, CompetencyInitializer } from \"../characters/Competencies\";\r\nimport { ObjectFilter, ObjectFilterInitializer } from \"./ObjectFilter\";\r\n\r\ntype CategoryFilter = CompetencyCategory | null;\r\n\r\nexport type CompetencyFilterInitializer = ObjectFilterInitializer & {\r\n category: CompetencyCategory | null\r\n}\r\n\r\nexport class CompetencyFilter extends ObjectFilter implements ObjectFilterInitializer {\r\n public constructor(initializer: CompetencyFilterInitializer) {\r\n super(initializer);\r\n this.category = initializer.category;\r\n }\r\n\r\n public category: CategoryFilter;\r\n\r\n public static CreateFilterFromQuery(query: URLSearchParams): CompetencyFilter {\r\n const name = query.get(\"name\") ?? \"\";\r\n let category: CategoryFilter = null;\r\n const categoryQuery = query.get(\"category\");\r\n if (categoryQuery) {\r\n category = CompetencyCategoriesByName[categoryQuery];\r\n }\r\n return new CompetencyFilter({ name, category });\r\n }\r\n\r\n public static GetDefaultInitializer(): CompetencyFilterInitializer {\r\n return {\r\n ...ObjectFilter.GetDefaultInitializer(),\r\n category: null\r\n }\r\n }\r\n\r\n protected get categoryQuery(): string | null {\r\n return this.category == undefined ? null : `category=${CompetencyCategoryNames[this.category]}`;\r\n }\r\n\r\n protected getQueryParams(): string[] {\r\n const params = super.getQueryParams();\r\n if (this.categoryQuery) {\r\n return [...params, this.categoryQuery];\r\n }\r\n return params;\r\n }\r\n\r\n public get initializer(): CompetencyFilterInitializer {\r\n return { ...super.initializer, category: this.category };\r\n }\r\n\r\n public filter(competencies: T[]): T[] {\r\n let filteredCompetencies = super.filterBase(competencies);\r\n if (this.category != null) {\r\n filteredCompetencies = filteredCompetencies.filter(c => c.category == this.category);\r\n }\r\n return filteredCompetencies;\r\n }\r\n}","import './themed-radio.scss';\r\nimport React from \"react\";\r\n\r\ntype RadioOption = {\r\n name: string;\r\n display: React.ReactNode;\r\n disabled?: boolean;\r\n}\r\n\r\ntype Props = {\r\n className?: string;\r\n options: T[];\r\n selected?: T;\r\n onChange?: (selected: T) => unknown;\r\n showName?: boolean;\r\n nullable?: boolean;\r\n}\r\n\r\nexport const ThemedRadio = (props: Props) => {\r\n let { className, options, selected, onChange, showName, nullable } = props;\r\n\r\n nullable = nullable ?? false;\r\n if (!nullable && selected == null) {\r\n throw new Error(\"Received a null base selection \")\r\n }\r\n\r\n const createClickEvent = (option: T) => () => {\r\n if (onChange != null) {\r\n onChange(option);\r\n }\r\n }\r\n return (\r\n
    \r\n
    \r\n {options.map(o => (\r\n \r\n ))}\r\n
    \r\n {showName && selected != null && }\r\n
    \r\n );\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { NameFilter } from \"../../characters/items/filters/NameFilter\";\r\nimport { CompetencyFilter, CompetencyFilterInitializer } from \"../../../entities/filters/CompetencyFilter\";\r\nimport { ObjectFilter } from \"../../../entities/filters/ObjectFilter\";\r\nimport { ThemedRadio } from \"../../inputs/radio/ThemedRadio\";\r\nimport { CompetencyCategory, CompetencyCategoryNames } from \"../../../entities/characters/Competencies\";\r\nimport { useLocation, useNavigate } from \"react-router\";\r\n\r\ntype Props = {\r\n onFilter: (filter: CompetencyFilterInitializer) => unknown;\r\n useRoute?: boolean;\r\n}\r\n\r\ntype CategoryOption = {\r\n name: string;\r\n display: string;\r\n value: CompetencyCategory | null;\r\n}\r\n\r\nconst allOption = {\r\n name: \"All\",\r\n display: \"All\",\r\n value: null\r\n}\r\n\r\nconst explorationOption = {\r\n name: CompetencyCategoryNames[CompetencyCategory.Exploration],\r\n display: CompetencyCategoryNames[CompetencyCategory.Exploration],\r\n value: CompetencyCategory.Exploration\r\n}\r\n\r\nconst socialOption = {\r\n name: CompetencyCategoryNames[CompetencyCategory.Social],\r\n display: CompetencyCategoryNames[CompetencyCategory.Social],\r\n value: CompetencyCategory.Social\r\n}\r\n\r\nconst knowledgeOption = {\r\n name: CompetencyCategoryNames[CompetencyCategory.Knowledge],\r\n display: CompetencyCategoryNames[CompetencyCategory.Knowledge],\r\n value: CompetencyCategory.Knowledge\r\n}\r\n\r\nconst technicalOption = {\r\n name: CompetencyCategoryNames[CompetencyCategory.Technical],\r\n display: CompetencyCategoryNames[CompetencyCategory.Technical],\r\n value: CompetencyCategory.Technical\r\n}\r\n\r\nconst CategoryOptions = [\r\n allOption,\r\n explorationOption,\r\n socialOption,\r\n knowledgeOption,\r\n technicalOption\r\n]\r\n\r\nexport const CompetencyFiltersComponent = (props: Props) => {\r\n const { onFilter, useRoute } = props;\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n\r\n let initialState: CompetencyFilterInitializer;\r\n if (useRoute) {\r\n const query = new URLSearchParams(location.search);\r\n initialState = CompetencyFilter.CreateFilterFromQuery(query).initializer;\r\n }\r\n else {\r\n initialState = CompetencyFilter.GetDefaultInitializer();\r\n }\r\n\r\n const [state, setState] = useState(initialState);\r\n const { name, category } = state;\r\n const [loaded, setLoaded] = useState(false);\r\n\r\n const search = (newState: CompetencyFilterInitializer) => {\r\n setState(newState);\r\n if (useRoute) {\r\n const query = new ObjectFilter(newState).generateQueryString();\r\n navigate(query, { replace: true });\r\n }\r\n onFilter(newState);\r\n }\r\n\r\n useEffect(() => {\r\n if (loaded) {\r\n return;\r\n }\r\n search(state);\r\n setLoaded(true);\r\n }, [loaded, setLoaded, state, search]);\r\n\r\n let selectedRadio: CategoryOption;\r\n switch (category) {\r\n case CompetencyCategory.Exploration:\r\n selectedRadio = explorationOption;\r\n break;\r\n case CompetencyCategory.Social:\r\n selectedRadio = socialOption;\r\n break;\r\n case CompetencyCategory.Knowledge:\r\n selectedRadio = knowledgeOption;\r\n break;\r\n case CompetencyCategory.Technical:\r\n selectedRadio = technicalOption;\r\n break;\r\n default:\r\n selectedRadio = allOption;\r\n break;\r\n }\r\n\r\n const onChange = (selection: CategoryOption) => {\r\n search({ ...state, category: selection.value });\r\n }\r\n return (\r\n
    \r\n
    \r\n search({ ...state, name })} />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n )\r\n}","import React from 'react';\r\n\r\nexport const NoFilterResults: React.FC = () =>

    No Results!

    ;\r\n","import './collapsible-section.scss';\r\nimport React, { createRef } from 'react';\r\nimport { JSXChildProps } from '../../entities/utils/jsx/Children';\r\nimport { CollapseIcon, ExpandIcon } from '../icons';\r\n\r\ntype Props = {\r\n id?: string;\r\n expandedInitially?: boolean;\r\n header: React.ReactNode;\r\n className?: string;\r\n collapsible?: boolean;\r\n overrideExpanded?: boolean;\r\n onToggle?: (expanded: boolean) => unknown;\r\n} & JSXChildProps;\r\n\r\ntype State = {\r\n expanded: boolean;\r\n currentHeight: number;\r\n observer?: MutationObserver;\r\n}\r\n\r\nexport class CollapsibleSection extends React.Component {\r\n public constructor(props: Props) {\r\n super(props);\r\n this.state = {\r\n expanded: !this.collapsible || (props.expandedInitially ?? false),\r\n currentHeight: 0\r\n };\r\n }\r\n\r\n private static readonly ObserverConfig = { attributeFilter: ['class','style'], childList: true, subtree: true };\r\n private readonly ref: React.RefObject = createRef();\r\n\r\n private get collapsible(): boolean {\r\n return this.props.collapsible != false;\r\n }\r\n\r\n private get expandedValue(): boolean {\r\n return this.props.overrideExpanded ?? this.state.expanded;\r\n }\r\n\r\n private get expandedClassName(): string {\r\n return this.expandedValue ? 'expanded' : 'collapsed';\r\n }\r\n\r\n private get customClassName(): string {\r\n return this.props.className ?? '';\r\n }\r\n\r\n private get expandButton(): JSX.Element | null {\r\n if (!this.collapsible) {\r\n return null;\r\n }\r\n return this.expandedValue\r\n ? \r\n : ;\r\n }\r\n\r\n private toggle(): void {\r\n if (!this.collapsible) {\r\n return;\r\n }\r\n if (this.props.onToggle) {\r\n this.props.onToggle(!this.expandedValue);\r\n }\r\n this.setState((state) => {\r\n const expanded = !this.expandedValue;\r\n return {\r\n ...state,\r\n expanded\r\n };\r\n });\r\n }\r\n\r\n private calculateCurrentHeight(expanded: boolean): number {\r\n return expanded\r\n ? this.ref.current?.scrollHeight ?? 0\r\n : 0;\r\n }\r\n\r\n private updateStateHeight = () => {\r\n this.setState((state) => ({ ...state, currentHeight: this.calculateCurrentHeight(this.expandedValue) }));\r\n }\r\n\r\n private onMutate = () => {\r\n this.updateStateHeight();\r\n }\r\n\r\n public componentDidMount(): void {\r\n const observer = new MutationObserver(this.onMutate);\r\n observer.observe(this.ref.current!, CollapsibleSection.ObserverConfig);\r\n \r\n this.updateStateHeight();\r\n this.setState((state) => ({ ...state, observer }));\r\n }\r\n\r\n public componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any): void {\r\n //might be intentionally empty? i forgot what this is for :(\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n this.state.observer?.disconnect();\r\n }\r\n\r\n public render(): JSX.Element {\r\n const expandAttribute = this.state.currentHeight > 0\r\n ? true\r\n : undefined;\r\n const collapsedAttribute = this.state.currentHeight > 0\r\n ? undefined\r\n : true;\r\n return (\r\n
    \r\n
    \r\n {this.expandButton}\r\n
    \r\n {this.props.header}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {this.props.children}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}","import React from \"react\";\r\nimport ReactMarkdown from \"react-markdown\";\r\nimport remarkGfm from \"remark-gfm\";\r\nimport { BioIcon, CorrosiveIcon, CryoIcon, ElectromagneticIcon, ExplosiveIcon, HackIcon, PercussiveIcon, ThermalIcon } from \"../icons\";\r\nimport rehypeRaw from \"rehype-raw\";\r\n\r\ntype Props = {\r\n children: string\r\n};\r\n\r\nconst generateSlugAndText = (text: string | null) => {\r\n if (text == null) {\r\n return undefined;\r\n }\r\n\r\n const slugFinder = /\\s{#.+}$/g;\r\n const match = text.match(slugFinder);\r\n if (match == null) {\r\n return undefined;\r\n }\r\n\r\n const slugContainer = match[0];\r\n const slug = slugContainer.match(/(?<={#).*?(?=})/);\r\n if (slug == null) {\r\n return undefined;\r\n }\r\n\r\n return {\r\n slug: slug[0],\r\n contents: text.replace(slugFinder, \"\")\r\n };\r\n}\r\n\r\nconst CommonMarkdownComponents = {\r\n \"p\": (props: any) => {\r\n return
    {props.children}
    \r\n },\r\n \"img\": (props: any) => {\r\n const imageKey = props?.node?.properties?.src ?? \"\";\r\n const tokens = imageKey.split(\":\");\r\n switch (tokens[0]) {\r\n case \"Icon\":\r\n return InterpretIcon(tokens[1]);\r\n default:\r\n return null;\r\n }\r\n },\r\n \"h1\": (props: any) => {\r\n const text = props?.node?.children[0]?.value\r\n const contents = generateSlugAndText(text);\r\n if (contents == null) {\r\n return

    {text}

    ;\r\n }\r\n return

    {contents.contents}

    ;\r\n },\r\n \"h2\": (props: any) => {\r\n const text = props?.node?.children[0]?.value\r\n const contents = generateSlugAndText(text);\r\n if (contents == null) {\r\n return

    {text}

    ;\r\n }\r\n return

    {contents.contents}

    ;\r\n },\r\n \"h3\": (props: any) => {\r\n const text = props?.node?.children[0]?.value\r\n const contents = generateSlugAndText(text);\r\n if (contents == null) {\r\n return

    {text}

    ;\r\n }\r\n return

    {contents.contents}

    ;\r\n },\r\n \"table\": (props: any) => {\r\n const {node, ...rest} = props\r\n return
    \r\n },\r\n}\r\n\r\nconst DisallowedElements = [\r\n \"script\"\r\n]\r\n\r\nexport const MarkdownContainer = (props: Props) => {props.children};\r\nexport const MarkdownContainerSafe = (props: Props) => {props.children}\r\n\r\n\r\nconst InterpretIcon = (name: string) => {\r\n switch (name) {\r\n case \"Percussive\":\r\n return ;\r\n case \"Explosive\":\r\n return ;\r\n case \"Thermal\":\r\n return ;\r\n case \"Cryo\":\r\n return ;\r\n case \"Electromagnetic\":\r\n return ;\r\n case \"Corrosive\":\r\n return ;\r\n case \"Bio\":\r\n return ;\r\n case \"Hack\":\r\n return ;\r\n default:\r\n return null;\r\n }\r\n}","import React, { useState } from \"react\";\r\nimport { CompetencyInitializer } from \"../../../entities/characters/Competencies\"\r\nimport { NoFilterResults } from \"../../filtering/NoFilterResults\";\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\";\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\n\r\ntype Props = {\r\n competencies: CompetencyInitializer[];\r\n close?: () => unknown;\r\n}\r\n\r\nexport const CompetencyResults = (props: Props) => {\r\n const { competencies, close } = props;\r\n\r\n const [expandeds, setExpandeds] = useState(competencies.map(_ => false));\r\n const createSetExpanded = (index: number) => {\r\n return (expanded: boolean) => {\r\n expandeds.splice(index, 1, expanded);\r\n setExpandeds([...expandeds]);\r\n }\r\n }\r\n\r\n if (competencies.length == 0) {\r\n return ;\r\n }\r\n\r\n const allExpanded = expandeds.every(e => e);\r\n const toggleAll = () => setExpandeds(competencies.map(_ => !allExpanded));\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {!allExpanded && \"Expand All\"}\r\n {allExpanded && \"Collapse All\"}\r\n \r\n
    \r\n
    \r\n {competencies.map((competency, index) => (\r\n \r\n {competency.description}\r\n \r\n ))}\r\n
    \r\n
    \r\n )\r\n}","import \"./breadcrumbs.scss\";\r\nimport React from \"react\";\r\nimport { BreadCrumb } from \"./Breadcrumb\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\ntype Props = {\r\n crumbs: BreadCrumb[];\r\n}\r\n\r\nexport const Breadcrumbs = (props: Props) => {\r\n const { crumbs } = props;\r\n if (crumbs.length <= 1) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n )\r\n}","import \"./loader.scss\";\r\nimport React from \"react\";\r\n\r\ntype LoaderSize = 'XS' | 'S' | 'M' | 'L' | 'XL';\r\n\r\ntype LoaderStyleProps = {\r\n size?: LoaderSize;\r\n inline?: boolean;\r\n}\r\n\r\ntype Props = LoaderStyleProps & {\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const Loader = (props: Props) => {\r\n let { children } = props;\r\n return (\r\n
    \r\n
    \r\n
    {children}
    \r\n
    \r\n );\r\n}\r\n\r\nconst getLoaderScale = (size: LoaderSize): number => {\r\n switch (size) {\r\n case \"XS\": return 0.2;\r\n case \"S\": return 0.4;\r\n case \"M\": return 0.6;\r\n case \"L\": return 1;\r\n case \"XL\": return 2;\r\n }\r\n}\r\n\r\nconst defaultStyle = {\r\n \"--dimension\": 64,\r\n \"--inner-bumper\": 8,\r\n \"--outer-bumper\": 16,\r\n \"--ring-width\": 4\r\n};\r\n\r\nconst getContentStyle = (props: LoaderStyleProps): React.CSSProperties => {\r\n const { size = \"L\", inline = false } = props;\r\n const scale = getLoaderScale(size);\r\n return {\r\n \"--display\": inline ? \"inline-block\" : \"flex\",\r\n \"--dimension\": `${defaultStyle[\"--dimension\"] * scale}px`,\r\n \"--inner-bumper\": `${defaultStyle[\"--inner-bumper\"] * scale}px`,\r\n \"--outer-bumper\": `${defaultStyle[\"--outer-bumper\"] * scale}px`,\r\n \"--ring-width\": `${defaultStyle[\"--ring-width\"] * scale}px`,\r\n } as React.CSSProperties;\r\n}\r\n\r\n// const getLoaderSize = (size: LoaderSize): number => {\r\n// switch (size) {\r\n// case 'XS': return 12;\r\n// case 'S': return 16;\r\n// case 'M': return 24;\r\n// case 'L': return 64;\r\n// case 'XL': return 96;\r\n// default:\r\n// throw \"Nonexistent size.\";\r\n// }\r\n// }\r\n\r\n// const getBumperSize = (size: LoaderSize) => {\r\n// switch (size) {\r\n// case \"XS\": return 2;\r\n// case \"S\": return 4;\r\n// case \"M\": return 6;\r\n// case \"L\": return 8;\r\n// case \"XL\": return 10;\r\n// }\r\n// }\r\n\r\n// const getRingWidth = (size: LoaderSize) => {\r\n// switch (size) {\r\n// case \"XS\": return 2;\r\n// case \"S\": return 2;\r\n// case \"M\": return 2;\r\n// case \"L\": return 3;\r\n// case \"XL\": return 4;\r\n// }\r\n// }","import React from \"react\";\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\nimport { CompetencyCategoryNames, CompetencyInitializer } from \"../../../entities/characters/Competencies\";\r\n\r\ntype Props = { competency: CompetencyInitializer };\r\n\r\nexport const CompetencyBlock = (props: Props) => {\r\n const { competency } = props;\r\n const { name, category, description } = competency;\r\n return (\r\n
    \r\n
    {name} ({CompetencyCategoryNames[category]})
    \r\n {description}\r\n
    \r\n )\r\n}","import { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport React from \"react\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\nimport { SortedSet } from \"../../../entities/data-structures/SortedSet\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { CompetenciesRoute, LibraryRootRoute } from \"../navigation/LibraryRoutes\";\r\nimport { CompetencyBlock } from \"./CompetencyBlock\";\r\nimport { useLocation, useParams } from \"react-router\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const CompetencyViewer = () => {\r\n const location = useLocation();\r\n const params = useParams();\r\n const { competencies, allCompetenciesLoaded } = useAppSelector((app: ApplicationState) => app.library);\r\n if (!allCompetenciesLoaded) {\r\n return ;\r\n }\r\n\r\n let name = params[\"name\"] as string | undefined;\r\n if (name == undefined) {\r\n throw new Error(\"No competency name provided.\");\r\n }\r\n name = STRING_UTILS.decodeNameFromURI(name);\r\n\r\n const set = new SortedSet(competencies);\r\n const competency = set.getByName(name);\r\n if (competency == undefined) {\r\n throw new Error(\"No competencies found.\");\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\"\r\nimport { LibraryActions } from \"../../../store/stores/library/LibraryStore.Actions\";\r\nimport { CompetencyFiltersComponent } from \"./CompetencyFiltersComponent\";\r\nimport { CompetencyResults } from \"./CompetencyResults\";\r\nimport { CompetencyFilter } from \"../../../entities/filters/CompetencyFilter\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { CompetenciesRoute, LibraryRootRoute } from \"../navigation/LibraryRoutes\";\r\nimport { CompetencyViewer } from \"./CompetencyViewer\";\r\nimport { Route, Routes } from \"react-router\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const CompetenciesLibrary = () => {\r\n const dispatch = useAppDispatch();\r\n const { competencies, allCompetenciesLoaded } = useAppSelector(app => app.library);\r\n\r\n useEffect(() => {\r\n if (!allCompetenciesLoaded) {\r\n dispatch(LibraryActions.loadCompetencies());\r\n }\r\n }, [dispatch, allCompetenciesLoaded]);\r\n\r\n const defaultState = new CompetencyFilter(CompetencyFilter.GetDefaultInitializer());\r\n const [filter, setFilter] = useState(defaultState);\r\n const filteredCompetencies = filter.filter(competencies);\r\n\r\n return (\r\n \r\n } />\r\n \r\n \r\n

    Competencies

    \r\n setFilter(new CompetencyFilter(initializer))} useRoute />\r\n {allCompetenciesLoaded && }\r\n {!allCompetenciesLoaded && Loading Competencies}\r\n \r\n }/>\r\n
    \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport { Condition } from \"../../../entities/characters/Conditions\"\r\nimport { NoFilterResults } from \"../../filtering/NoFilterResults\";\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\";\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\n\r\ntype Props = {\r\n conditions: Condition[];\r\n}\r\n\r\nexport const ConditionResults = (props: Props) => {\r\n const { conditions } = props;\r\n\r\n const [expandeds, setExpandeds] = useState(conditions.map(_ => false));\r\n const createSetExpanded = (index: number) => {\r\n return (expanded: boolean) => {\r\n expandeds.splice(index, 1, expanded);\r\n setExpandeds([...expandeds]);\r\n }\r\n }\r\n\r\n if (conditions.length == 0) {\r\n return \r\n }\r\n\r\n const allExpanded = expandeds.every(e => e);\r\n const toggleAll = () => setExpandeds(conditions.map(_ => !allExpanded));\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {!allExpanded && \"Expand All\"}\r\n {allExpanded && \"Collapse All\"}\r\n \r\n
    \r\n
    \r\n {conditions.map((condition, index) => (\r\n \r\n {condition.description}\r\n \r\n ))}\r\n
    \r\n
    \r\n )\r\n}","import { Condition } from \"../characters/Conditions\";\r\nimport { ObjectFilter, ObjectFilterInitializer } from \"./ObjectFilter\";\r\n\r\nexport class ConditionFilter extends ObjectFilter {\r\n public filter(conditions: Condition[]) {\r\n return super.filterBase(conditions);\r\n }\r\n}","import React from \"react\";\r\nimport { Condition } from \"../../../entities/characters/Conditions\"\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\n\r\ntype Props = { condition: Condition }\r\n\r\nexport const ConditionBlock = (props: Props) => {\r\n const { condition } = props;\r\n const { name, description } = condition;\r\n return (\r\n
    \r\n
    {name}
    \r\n {description}\r\n
    \r\n )\r\n}","import React from \"react\";\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\nimport { SortedSet } from \"../../../entities/data-structures/SortedSet\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { ConditionsRoute, LibraryRootRoute } from \"../navigation/LibraryRoutes\";\r\nimport { ConditionBlock } from \"./ConditionBlock\";\r\nimport { useLocation, useParams } from \"react-router\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const ConditionViewer = () => {\r\n const location = useLocation();\r\n const params = useParams();\r\n const { conditions, allConditionsLoaded } = useAppSelector((app: ApplicationState) => app.library);\r\n if (!allConditionsLoaded) {\r\n return \r\n }\r\n\r\n let name = params[\"name\"] as string | undefined;\r\n if (name == undefined) {\r\n throw new Error(\"No condition name provided.\");\r\n }\r\n name = STRING_UTILS.decodeNameFromURI(name);\r\n\r\n const set = new SortedSet(conditions);\r\n const condition = set.getByName(name);\r\n if (condition == undefined) {\r\n throw new Error(\"No condition found.\");\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n}","import \"./notification.scss\";\r\nimport React from \"react\";\r\nimport { JSXChildProps } from \"../../entities/utils/jsx/Children\"\r\nimport { ErrorIcon, InfoIcon, SuccessIcon, WarningIcon } from \"../icons\";\r\n\r\ntype Props = {\r\n className: string;\r\n} & JSXChildProps;\r\n\r\nconst NotificationComponent = (props: Props) => {\r\n const { className, children } = props;\r\n return
    {children}
    ;\r\n}\r\n\r\nexport const InfoNotification = (props: JSXChildProps) => (\r\n \r\n {props.children}\r\n \r\n)\r\n\r\nexport const WarningNotification = (props: JSXChildProps) => (\r\n \r\n {props.children}\r\n \r\n)\r\n\r\nexport const ErrorNotification = (props: JSXChildProps) => (\r\n \r\n {props.children}\r\n \r\n)\r\n\r\nexport const SuccessNotification = (props: JSXChildProps) => (\r\n \r\n {props.children}\r\n \r\n)","import React, { useEffect, useState } from \"react\";\r\nimport { LibraryActions } from \"../../../store/stores/library/LibraryStore.Actions\";\r\nimport { ConditionResults } from \"./ConditionResults\";\r\nimport { ObjectFilter, ObjectFilterInitializer } from \"../../../entities/filters/ObjectFilter\";\r\nimport { ConditionFilter } from \"../../../entities/filters/ConditionFilter\";\r\nimport { ConditionViewer } from \"./ConditionViewer\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { ConditionsRoute, LibraryRootRoute } from \"../navigation/LibraryRoutes\";\r\nimport { Route, Routes, useLocation, useNavigate } from \"react-router\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\nimport { ErrorNotification } from \"../../notifications/Notification\";\r\nimport { NameFilter } from \"../../characters/items/filters/NameFilter\";\r\n\r\nexport const ConditionsLibrary = () => {\r\n const { conditions, allConditionsLoaded, conditionsError } = useAppSelector(app => app.library);\r\n\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const dispatch = useAppDispatch();\r\n\r\n useEffect(() => {\r\n if (!allConditionsLoaded) {\r\n dispatch(LibraryActions.loadConditions());\r\n }\r\n }, [dispatch, allConditionsLoaded]);\r\n\r\n const query = new URLSearchParams(location.search);\r\n const [filterState, setFilterState] = useState(ObjectFilter.CreateFilterFromQuery(query));\r\n const conditionFilter = new ConditionFilter(filterState);\r\n\r\n const search = (newState: ObjectFilterInitializer) => {\r\n conditionFilter.update(newState);\r\n const query = conditionFilter.generateQueryString();\r\n navigate(query, { replace: true });\r\n setFilterState(newState);\r\n }\r\n \r\n const filteredConditions = conditionFilter.filter(conditions);\r\n\r\n return (\r\n \r\n } />\r\n \r\n {conditionsError && There was an error loading conditions, you can try refreshing the page to reload them.}\r\n \r\n \r\n

    Conditions

    \r\n
    \r\n search({ ...filterState, name })}>\r\n
    \r\n {allConditionsLoaded && }\r\n {!allConditionsLoaded && Loading Conditions}\r\n \r\n } />\r\n
    \r\n )\r\n}","\r\nimport { Hazard } from \"../library/hazards/Hazard\";\r\nimport { ObjectFilter, ObjectFilterInitializer } from \"./ObjectFilter\";\r\n\r\nexport class HazardFilter extends ObjectFilter {\r\n public filter(hazards: Hazard[]) {\r\n return super.filterBase(hazards);\r\n }\r\n}","import \"./tags.scss\";\r\nimport React from \"react\"\r\n\r\ntype Props = {\r\n tags: string[];\r\n assignableTo?: string[];\r\n notAssignableTo?: string[];\r\n}\r\n\r\nexport const TagsComponent: React.FC = (props: Props) => {\r\n const { tags, assignableTo, notAssignableTo } = props;\r\n return (\r\n <>\r\n
    \r\n \r\n {tags.map(t =>
    {t}
    )}\r\n
    \r\n {assignableTo?.any() && (\r\n
    \r\n \r\n {assignableTo.map(t =>
    {t}
    )}\r\n
    \r\n )}\r\n {notAssignableTo?.any() && (\r\n
    \r\n \r\n {notAssignableTo.map(t =>
    {t}
    )}\r\n
    \r\n )}\r\n \r\n );\r\n}","import React from \"react\"\r\nimport { Hazard } from \"./Hazard\"\r\nimport { TagsComponent } from \"../../../components/collection/characters/character-sheet/common/tags/TagsComponent\";\r\nimport { MarkdownContainer } from \"../../../components/theming/MarkdownContainer\";\r\n\r\ntype Props = { hazard: Hazard }\r\n\r\nexport const HazardBlock = (props: Props) => {\r\n const { hazard } = props;\r\n const { name, description, solutions, tags } = hazard;\r\n return (\r\n
    \r\n
    {name}
    \r\n {tags.any(t => t.toLowerCase() == \"rough\") &&
    Rough
    }\r\n
    \r\n \r\n {description}\r\n
    \r\n {solutions.length == 1 && (\r\n
     {solutions[0]}
    \r\n )}\r\n {solutions.length > 1 && (\r\n
    \r\n \r\n
    \r\n
      \r\n {solutions.map(s =>
    • {s}
    • )}\r\n
    \r\n
    \r\n )}\r\n \r\n
    \r\n )\r\n}","import { useState } from \"react\";\r\nimport { Hazard } from \"../../../entities/library/hazards/Hazard\";\r\nimport { NoFilterResults } from \"../../filtering/NoFilterResults\";\r\nimport React from \"react\";\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\";\r\nimport { HazardBlock } from \"../../../entities/library/hazards/HazardBlock\";\r\n\r\ntype Props = {\r\n hazards: Hazard[];\r\n}\r\n\r\nexport const HazardResults = (props: Props) => {\r\n const { hazards } = props;\r\n\r\n const [expandeds, setExpandeds] = useState(hazards.map(_ => false));\r\n const createSetExpanded = (index: number) => {\r\n return (expanded: boolean) => {\r\n expandeds.splice(index, 1, expanded);\r\n setExpandeds([...expandeds]);\r\n }\r\n }\r\n\r\n if (expandeds.length == 0) {\r\n return \r\n }\r\n\r\n const allExpanded = expandeds.every(e => e);\r\n const toggleAll = () => setExpandeds(hazards.map(_ => !allExpanded));\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {!allExpanded && \"Expand All\"}\r\n {allExpanded && \"Collapse All\"}\r\n \r\n
    \r\n
    \r\n {hazards.map((hazard, index) => (\r\n \r\n \r\n \r\n ))}\r\n
    \r\n
    \r\n )\r\n}","import { ObjectFilter, ObjectFilterInitializer } from \"../../../entities/filters/ObjectFilter\"\r\nimport { useEffect, useState } from \"react\";\r\nimport { HazardFilter } from \"../../../entities/filters/HazardFilter\";\r\nimport React from \"react\";\r\nimport { NameFilter } from \"../../characters/items/filters/NameFilter\";\r\nimport { useLocation, useNavigate } from \"react-router\";\r\n\r\ntype Props = {\r\n onFilter: (filter: ObjectFilterInitializer) => unknown;\r\n useRoute?: boolean;\r\n}\r\n\r\nexport const HazardFiltersComponent = (props: Props) => {\r\n const { onFilter, useRoute } = props;\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n\r\n let initialState: ObjectFilterInitializer;\r\n if (useRoute) {\r\n const query = new URLSearchParams(location.search);\r\n initialState = ObjectFilter.CreateFilterFromQuery(query).initializer;\r\n }\r\n else {\r\n initialState = ObjectFilter.GetDefaultInitializer();\r\n }\r\n\r\n const [state, setState] = useState(initialState);\r\n const [loaded, setLoaded] = useState(false);\r\n\r\n const search = (newState: ObjectFilterInitializer) => {\r\n setState(newState);\r\n if (useRoute) {\r\n const query = new HazardFilter(newState).generateQueryString();\r\n navigate(query, { replace: true });\r\n }\r\n onFilter(newState);\r\n }\r\n\r\n useEffect(() => {\r\n if (loaded) {\r\n return;\r\n }\r\n search(state);\r\n setLoaded(true);\r\n }, [loaded, setLoaded, state, search]);\r\n\r\n return (\r\n
    \r\n search({ ...state, name })} />\r\n
    \r\n )\r\n}","import React from \"react\";\r\nimport { SortedSet } from \"../../../entities/data-structures/SortedSet\";\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\nimport { HazardBlock } from \"../../../entities/library/hazards/HazardBlock\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { HazardsRoute, LibraryRootRoute } from \"../navigation/LibraryRoutes\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { useLocation, useParams } from \"react-router\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const HazardViewer = () => {\r\n const location = useLocation();\r\n const params = useParams();\r\n const {hazards, allHazardsLoaded} = useAppSelector((app: ApplicationState) => app.library);\r\n if (!allHazardsLoaded) {\r\n return ;\r\n }\r\n\r\n let name = params[\"name\"] as string | undefined;\r\n if (name == undefined) {\r\n throw new Error(\"No hazard name provided.\");\r\n }\r\n name = STRING_UTILS.decodeNameFromURI(name);\r\n\r\n const set = new SortedSet(hazards);\r\n const hazard = set.getByName(name);\r\n if (hazard == undefined) {\r\n throw new Error(\"No hazard found.\");\r\n }\r\n \r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { LibraryActions } from \"../../../store/stores/library/LibraryStore.Actions\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { HazardFilter } from \"../../../entities/filters/HazardFilter\";\r\nimport { HazardResults } from \"./HazardResults\";\r\nimport { HazardFiltersComponent } from \"./HazardFiltersComponent\";\r\nimport { HazardViewer } from \"./HazardViewer\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { HazardsRoute, LibraryRootRoute } from \"../navigation/LibraryRoutes\";\r\nimport { Route, Routes } from \"react-router\";\r\nimport { Hazard } from \"../../../entities/library/hazards/Hazard\";\r\nimport { ObjectFilterInitializer } from \"../../../entities/filters/ObjectFilter\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const HazardsLibrary = () => {\r\n const dispatch = useAppDispatch();\r\n const { hazards, allHazardsLoaded } = useAppSelector(app => app.library);\r\n\r\n useEffect(() => {\r\n if (!allHazardsLoaded) {\r\n dispatch(LibraryActions.loadHazards());\r\n }\r\n }, [dispatch, allHazardsLoaded]);\r\n\r\n const defaultState = new HazardFilter(HazardFilter.GetDefaultInitializer());\r\n const [filter, setFilter] = useState(defaultState);\r\n const filteredHazards = filter.filter(hazards);\r\n\r\n return (\r\n \r\n } />\r\n setFilter(new HazardFilter(filter))} />} />\r\n \r\n )\r\n}\r\n\r\ntype ListProps = {\r\n loaded: boolean;\r\n filteredHazards: Hazard[];\r\n onFilter: (initializer: ObjectFilterInitializer) => unknown;\r\n}\r\nconst HazardList = (props: ListProps) => {\r\n const { loaded, filteredHazards, onFilter } = props;\r\n return (\r\n <>\r\n \r\n

    Hazards

    \r\n \r\n {loaded && }\r\n {!loaded && Loading Hazards}\r\n \r\n );\r\n}","import './collapsible-region.scss';\r\nimport React, { useState } from \"react\"\r\nimport { JSXChildProps } from \"../../entities/utils/jsx/Children\";\r\nimport { CollapseIcon, ExpandIcon } from \"../icons\";\r\n\r\ntype Props = {\r\n expanded?: boolean;\r\n className?: string;\r\n header: React.ReactNode;\r\n} & JSXChildProps;\r\n\r\nexport const CollapsibleRegion = (props: Props) => {\r\n const { header, className, children } = props;\r\n const expandedInitially = props.expanded ?? false;\r\n const [expanded, setExpanded] = useState(expandedInitially);\r\n return (\r\n
    \r\n
    setExpanded(!expanded)}>\r\n {expanded && }\r\n {!expanded && }\r\n {header}\r\n
    \r\n
    \r\n {children}\r\n
    \r\n
    \r\n )\r\n}","import { LocalCharacterInitializer } from \"../characters/Character\";\r\nimport { SkillHelpers } from \"../library/skills/Skill\";\r\nimport { SkillName } from \"../library/skills/SkillMap\";\r\n\r\nexport type CustomDamageStringPropertyNames = \"Empowerment\";\r\n\r\nexport const InterpretCustomMarkdown = (text: string) => {\r\n \r\n}\r\n\r\nexport const InterpretCustomText = (text: string, character?: LocalCharacterInitializer, sourceId?: string) => {\r\n const tokens = text.split(\".\");\r\n const propertyName = tokens[0];\r\n switch (propertyName) {\r\n case \"Empowerment\":\r\n return InterpretEmpowerment(tokens, character);\r\n default:\r\n return text;\r\n }\r\n}\r\n\r\nconst InterpretEmpowerment = (tokens: string[], character?: LocalCharacterInitializer) => {\r\n const skillName = tokens[1] as SkillName;\r\n let skill = character?.skills.find(s => s.name == skillName);\r\n if (skill == null) {\r\n return `${skillName} Emp. Bonus`;\r\n }\r\n return `${SkillHelpers.getEmpowermentBonus(skill)} (${skillName} Emp. Bonus)`;\r\n}","import './damage-types.scss';\r\nimport React from \"react\";\r\nimport { DamageType } from \"../../../../../../entities/categorization/DamageType\";\r\nimport { QuantifiedDamage } from \"../../../../../../entities/categorization/QuantifiedDamage\";\r\nimport { BioIcon, CorrosiveIcon, CryoIcon, ElectromagneticIcon, ExplosiveIcon, HackIcon, PercussiveIcon, ThermalIcon } from '../../../../../icons';\r\nimport { InterpretCustomText } from '../../../../../../entities/utils/InterpretCustomText';\r\nimport { LocalCharacterInitializer } from '../../../../../../entities/characters/Character';\r\nimport { nonEmpty } from '../../../../../../utils/TypeUtils';\r\n\r\n\r\nconst IconMap: {\r\n [key in DamageType]: JSX.Element\r\n} = {\r\n 'Percussive': ,\r\n 'Explosive': ,\r\n 'Thermal': ,\r\n 'Cryo': ,\r\n 'Electromagnetic': ,\r\n 'Corrosive': ,\r\n 'Biological': ,\r\n 'Hacking': \r\n}\r\n\r\n\r\ntype Props = {\r\n suite: QuantifiedDamage[];\r\n character?: LocalCharacterInitializer;\r\n sourceId?: string;\r\n customDamageTexts?: string[];\r\n label?: string;\r\n}\r\n\r\nexport const DamageTypeSuiteComponent: React.FC = (props: Props) => {\r\n const { suite, character, sourceId, customDamageTexts, label } = props;\r\n let filteredCustomDamageTexts = customDamageTexts ?? [];\r\n filteredCustomDamageTexts = filteredCustomDamageTexts.map(cdt => InterpretCustomText(cdt, character, sourceId)).filter(nonEmpty);\r\n \r\n let customText = \"\";\r\n if (filteredCustomDamageTexts.any()) {\r\n customText = \" + \" + filteredCustomDamageTexts.join(\" +\");\r\n }\r\n return (\r\n
    \r\n {label && }\r\n {suite.map(qd => (\r\n \r\n ))}\r\n {customText}\r\n
    \r\n );\r\n}\r\n\r\n\r\ntype DamageValueProps = {\r\n value: number | undefined;\r\n icon: JSX.Element;\r\n}\r\n\r\nconst DamageValue: React.FC = (props: DamageValueProps) => {\r\n if(props.value != null) {\r\n return {props.value}{props.icon}\r\n }\r\n return null;\r\n}","import './die.scss';\r\nimport React from \"react\";\r\n\r\ntype DieProps = {\r\n className?: string;\r\n big?: boolean;\r\n rolling?: boolean;\r\n onClick?: () => unknown;\r\n children: React.ReactNode;\r\n};\r\n\r\nexport const Die: React.FC = (props: DieProps) => {\r\n const { className, big, rolling, onClick, children } = props;\r\n const dieSizeClass = big ? 'big' : '';\r\n const rollingClass = rolling ? 'rolling' : 'not-rolling';\r\n const customClassName = className ?? '';\r\n return (\r\n {})}>\r\n {children}\r\n \r\n \r\n );\r\n}","import './hands.scss';\r\nimport React from 'react';\r\nimport { DieFace, Hand, HandTypeName } from '../../entities/rolls/Roll';\r\nimport { Die } from './Die';\r\n\r\ntype SingleValueProps = {\r\n value: number;\r\n};\r\n\r\ntype TwoValueProps = {\r\n valueOne: number;\r\n valueTwo: number;\r\n};\r\n\r\ntype RollProps = {\r\n className?: string;\r\n rolls: DieFace[];\r\n};\r\n\r\nexport const Roll = (props: RollProps) => {\r\n const { className, rolls } = props;\r\n return (\r\n \r\n {[...rolls].map((roll, index) => (\r\n {roll}\r\n ))}\r\n \r\n );\r\n}\r\n\r\nexport const BustExample = () => ;\r\n\r\nexport const Pair = (props: SingleValueProps) => Pair [{props.value}];\r\nexport const PairExample = () => ;\r\n\r\n\r\nexport const TwoPair = (props: TwoValueProps) => (\r\n \r\n Two-Pair [{Math.max(props.valueOne, props.valueTwo)}-\r\n {Math.min(props.valueOne, props.valueTwo)}]\r\n \r\n);\r\nexport const TwoPairExample = () => ;\r\n\r\n\r\nexport const Triple = (props: SingleValueProps) => Triple [{props.value}];\r\nexport const TripleExample = () => ;\r\n\r\n\r\nexport const SmallStraight = (props: SingleValueProps) => Small Straight [{props.value}];\r\nexport const SmallStraightExample = () => ;\r\n\r\n\r\nexport const Flush: React.FC = (props: SingleValueProps) => Flush [{props.value}];\r\nexport const FlushExample = () => ;\r\n\r\n\r\nexport const FullHouse: React.FC = (props: TwoValueProps) => Full House [{props.valueOne}-{props.valueTwo}];\r\nexport const FullHouseExample = () => ;\r\n\r\n\r\nexport const BigStraight: React.FC = (props: SingleValueProps) => Big Straight [{props.value}];\r\nexport const BigStraightExample = () => ;\r\n\r\n\r\nexport const Quad: React.FC = (props: SingleValueProps) => Quad [{props.value}];\r\nexport const QuadExample = () => ;\r\n\r\n\r\nexport const Jackpot: React.FC = (props: SingleValueProps) => Jackpot! [{props.value}];\r\nexport const JackpotExample = () => ;\r\n\r\n\r\nexport const HandTriggerExamplesByName: {[key in HandTypeName]: JSX.Element} = {\r\n 'All': <>,\r\n 'Bust': <>,\r\n 'Pair': ,\r\n 'Two Pair': ,\r\n 'Triple': ,\r\n 'Small Straight': ,\r\n 'Flush': ,\r\n 'Full House': ,\r\n 'Big Straight': ,\r\n 'Quad': ,\r\n 'Jackpot!': \r\n}","import './hand-triggers-view.scss';\r\nimport React from \"react\";\r\nimport { HandTypeName, HandTypeNames } from \"../../../../../entities/rolls/Roll\";\r\nimport { HandTrigger } from \"../../../../../entities/rolls/HandTrigger\";\r\nimport { HandTriggerExamplesByName } from \"../../../../figures/Rolls\";\r\nimport { MarkdownContainer } from '../../../../theming/MarkdownContainer';\r\n\r\ntype Props = {\r\n handTriggers: HandTrigger[];\r\n restrictToHand?: HandTypeName;\r\n}\r\n\r\ntype HandTriggerCollectionItem = {\r\n key: string;\r\n contents: React.ReactNode;\r\n}\r\n\r\ntype HandTriggerCollections = {\r\n [handTypeName in HandTypeName]: HandTriggerCollectionItem[];\r\n}\r\n\r\nconst DefaultHandTriggerCollections: HandTriggerCollections = {\r\n 'Bust': [],\r\n 'Pair': [],\r\n 'Two Pair': [],\r\n 'Triple': [],\r\n 'Small Straight': [],\r\n 'Flush': [],\r\n 'Full House': [],\r\n 'Big Straight': [],\r\n 'Quad': [],\r\n 'Jackpot!': [],\r\n 'All': []\r\n}\r\n\r\nexport const AggregateHandTriggersView = (props: Props) => {\r\n const { handTriggers, restrictToHand } = props;\r\n const handTriggerCollections: HandTriggerCollections = { ...DefaultHandTriggerCollections };\r\n for (let handTrigger of handTriggers) {\r\n for (let handTypeName of handTrigger.handTypes) {\r\n const collection = handTriggerCollections[handTypeName];\r\n const descriptions = collection.map(c => c.contents);\r\n const description = handTrigger.description;\r\n if (descriptions.contains(description)) {\r\n continue;\r\n }\r\n\r\n let sourceText = <>;\r\n if (handTrigger.source) {\r\n sourceText = ;\r\n }\r\n const contents = <>{sourceText}{handTrigger.description};\r\n const collectionItem = {\r\n key: `${handTrigger.source}${handTrigger.description}`,\r\n contents\r\n }\r\n handTriggerCollections[handTypeName] = [...collection, collectionItem];\r\n }\r\n }\r\n return (\r\n
    \r\n {HandTypeNames.filter(htn => restrictToHand == null || htn == restrictToHand)\r\n .map(htn => {\r\n const collections = handTriggerCollections[htn];\r\n if (!collections.any()) {\r\n return null;\r\n }\r\n return (\r\n
    \r\n {restrictToHand == null && (
    {htn} (e.g. {HandTriggerExamplesByName[htn]})
    )}\r\n {restrictToHand != null && (
    Effects
    )}\r\n
      \r\n {collections.map(item => (\r\n
    • {item.contents}
    • \r\n ))}\r\n
    \r\n
    \r\n )}\r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport const SplitHandTriggersView = (props: Props) => {\r\n const { handTriggers, restrictToHand } = props;\r\n return (\r\n
    \r\n {handTriggers.filter(htn => restrictToHand == null || htn.handTypes.contains(restrictToHand))\r\n .map(ht => (\r\n
    \r\n {restrictToHand == null && (
    \r\n {ht.handTypes.map((type => {type} (e.g. {HandTriggerExamplesByName[type]})
    ))}\r\n
    )}\r\n {restrictToHand != null && (
    Effects
    )}\r\n
    {ht.description}
    \r\n
    \r\n ))}\r\n
    \r\n )\r\n}","import React, { CSSProperties } from \"react\";\r\nimport { GameIcon } from \"./GameIcon\";\r\n\r\ntype Props = {\r\n className?: string;\r\n style?: CSSProperties\r\n}\r\n\r\nexport const HealthIcon = () => heart-plus;\r\nexport const JuiceIcon = (props: Props) => lightning-branches;\r\nexport const HandsIcon = (props: Props) => hand-2;\r\nexport const RequiresAttentionIcon = (props: Props) => eye-target;\r\nexport const MovementIcon = () => ;\r\nexport const RollIcon = () => ;","import \"./character-ability.scss\";\r\nimport React from \"react\";\r\nimport { CollapsibleSection } from \"../../../../articles/CollapsibleSection\";\r\nimport { DamageTypeSuiteComponent } from \"../../character-tools/items/info/DamageTypeSuite\";\r\nimport { SplitHandTriggersView, AggregateHandTriggersView } from \"./HandTriggerViews\";\r\nimport { CharacterAbility } from \"../../../../../entities/abilities/Ability\";\r\nimport { MarkdownContainer } from \"../../../../theming/MarkdownContainer\";\r\nimport { RequiresAttentionIcon } from \"../../../../icons/CharacterIcons\";\r\nimport { HandTypeName } from \"../../../../../entities/rolls/Roll\";\r\nimport { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\n\r\ntype Props = {\r\n character?: LocalCharacterInitializer;\r\n ability: CharacterAbility;\r\n restrictToHand?: HandTypeName;\r\n expanded?: boolean;\r\n overrideExpanded?: boolean;\r\n onToggle?: (expanded: boolean) => unknown;\r\n}\r\n\r\nexport const CharacterAbilityView = (props: Props) => {\r\n let { character, ability, restrictToHand, expanded, overrideExpanded, onToggle } = props;\r\n const expandedInitially = expanded ?? false;\r\n const header = (\r\n <>\r\n
    \r\n {ability.icon} \r\n {ability.name}\r\n {ability.damageSuite?.any() && (<> - )}\r\n  \r\n {ability.source && <>[{ability.source}]}\r\n
    \r\n {ability.requiresAttention && }\r\n \r\n );\r\n let className: string;\r\n switch (ability.type) {\r\n case \"Attack\":\r\n className = \"attack\";\r\n break;\r\n case \"Spell\":\r\n className = \"spell\";\r\n break;\r\n default:\r\n className = \"feature\";\r\n }\r\n const isAttackOrSpell = ability.type == \"Attack\" || ability.type == \"Spell\"; //Attacks and spells aggregate abilities, features do not.\r\n const abilityHasProperties = ability.juices || ability.dejuices || ability.requiresAttention;\r\n return (\r\n \r\n {abilityHasProperties &&
    \r\n {ability.juices && Juices}\r\n {ability.dejuices && Consumes Juice}\r\n {ability.requiresAttention && }\r\n
    }\r\n {ability.triggerCondition && (\r\n
    \r\n  \r\n {ability.triggerCondition}\r\n
    \r\n )}\r\n {ability.source && ability.sourceDescription && (\r\n
    \r\n  \r\n {ability.sourceDescription}\r\n
    \r\n )}\r\n
     {ability.description}
    \r\n {ability.damageSuite?.any() && }\r\n {ability.range &&
     {ability.range}
    }\r\n {ability.handTriggers && isAttackOrSpell && }\r\n {ability.handTriggers && !isAttackOrSpell && }\r\n
    \r\n )\r\n}","import React from \"react\";\r\nimport { ItemHelpers } from \"../../../../../../entities/library/items/Item\";\r\nimport { CollapsibleRegion } from \"../../../../../articles/CollapsibleRegion\";\r\nimport { CharacterAbilityView } from \"../../../character-sheet/main-section/CharacterAbilityView\";\r\nimport { ItemInitializer } from \"../../../../../../entities/library/items/ItemInitializers\";\r\nimport { CharacterAbility } from \"../../../../../../entities/abilities/Ability\";\r\nimport { LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { OwnedItemReference } from \"../../../../../../entities/Ownership\";\r\nimport { useAppSelector } from \"../../../../../../store/configureStore\";\r\n\r\ntype Props = {\r\n character?: LocalCharacterInitializer;\r\n reference?: OwnedItemReference;\r\n item: ItemInitializer;\r\n}\r\n\r\nexport const ItemPreviewActions = (props: Props) => {\r\n const { character, item, reference } = props;\r\n const allItems = useAppSelector(app => app.library.items);\r\n let actions: CharacterAbility[];\r\n let hasNoOtherEffects: boolean;\r\n \r\n if (reference != null) {\r\n const characterMods = character?.activeMods ?? [];\r\n actions = ItemHelpers.getActions(allItems, reference, characterMods);\r\n hasNoOtherEffects = ItemHelpers.getReactions(allItems, reference, characterMods).length == 0\r\n && ItemHelpers.getPassives(allItems, reference, characterMods).length == 0;\r\n }\r\n else {\r\n actions = ItemHelpers.getBaseActions(item);\r\n hasNoOtherEffects = ItemHelpers.getBaseReactions(item).length == 0\r\n && ItemHelpers.getBasePassives(item).length == 0;\r\n }\r\n\r\n if (!actions.any()) {\r\n return null;\r\n }\r\n const expanded = hasNoOtherEffects || actions.length == 1;\r\n return (\r\n \r\n {actions.map(a => )}\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { ItemInitializer } from \"../../../../../../entities/library/items/ItemInitializers\";\r\nimport { MarkdownContainer } from \"../../../../../theming/MarkdownContainer\";\r\n\r\ntype ItemProps = {\r\n item: ItemInitializer;\r\n}\r\n\r\nexport const ItemPreviewBasicInfo: React.FC = (props: ItemProps) => {\r\n const { item } = props;\r\n const { description, skillRequirements } = item;\r\n return (\r\n <>\r\n
    \r\n \r\n {description}\r\n \r\n
    \r\n\r\n {skillRequirements.any() &&\r\n <> \r\n
    \r\n Skill Requirements:\r\n
    \r\n
    \r\n {skillRequirements.map(sr => (\r\n
    \r\n {sr.name}({sr.level})\r\n
    \r\n ))}\r\n
    \r\n \r\n }\r\n \r\n );\r\n}","import { HandTypeName, Hands } from \"./Roll\";\r\n\r\nexport type HandTrigger = {\r\n handTypes: HandTypeName[];\r\n description: string;\r\n incrementalDescription?: string;\r\n source?: string;\r\n}\r\n\r\nexport const GetHandTriggerKey = (ht: HandTrigger) => ht.handTypes.join(', ');\r\n\r\nconst GetLowestHandType = (handTrigger: HandTrigger) => handTrigger.handTypes.min(ht => {\r\n return Hands[ht].value;\r\n});\r\n\r\nexport const HandOrderer = (handTriggerOne: HandTrigger, handTriggerTwo: HandTrigger): number => {\r\n const handOneLow = GetLowestHandType(handTriggerOne);\r\n const handTwoLow = GetLowestHandType(handTriggerTwo);\r\n if (handOneLow < handTwoLow) {\r\n return -1;\r\n }\r\n if (handOneLow > handTwoLow) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nexport const HandTypeOrderer = (handTypeOne: HandTypeName, handTypeTwo: HandTypeName): number => {\r\n const handOneValue = Hands[handTypeOne].value;\r\n const handTwoValue = Hands[handTypeTwo].value;\r\n if (handOneValue < handTwoValue) {\r\n return -1;\r\n }\r\n if (handOneValue > handTwoValue) {\r\n return 1;\r\n }\r\n return 0;\r\n}","import React from \"react\";\r\nimport { HandTypeName } from \"../../../../../../entities/rolls/Roll\"\r\nimport { Die } from \"../../../../../figures/Die\";\r\nimport { BigStraightExample, FlushExample, FullHouseExample, JackpotExample, PairExample, QuadExample, SmallStraightExample, TripleExample, TwoPairExample } from \"../../../../../figures/Rolls\";\r\n\r\ntype Props = { handTypeName: HandTypeName }\r\n\r\nexport const HandTypeLabel: React.FC = (props: Props) => {\r\n switch(props.handTypeName) {\r\n case 'Pair':\r\n return PairLabel;\r\n case 'Two Pair':\r\n return TwoPairLabel;\r\n case 'Triple':\r\n return TripleLabel;\r\n case 'Small Straight':\r\n return SmallStraightLabel;\r\n case 'Flush':\r\n return FlushLabel;\r\n case 'Full House':\r\n return FullHouseLabel;\r\n case 'Big Straight':\r\n return BigStraightLabel;\r\n case 'Quad':\r\n return QuadLabel;\r\n case 'Jackpot!':\r\n return JackpotLabel;\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\n const PairLabel = (\r\n
    \r\n Pair\r\n (ex.  )\r\n
    \r\n);\r\n\r\n const TwoPairLabel = (\r\n
    \r\n Two Pair\r\n (ex.  )\r\n
    \r\n);\r\n\r\n const TripleLabel = (\r\n
    \r\n Triple\r\n (ex.  )\r\n
    \r\n);\r\n\r\n const SmallStraightLabel = (\r\n
    \r\n Quad\r\n (ex.  )\r\n
    \r\n);\r\n\r\n const FlushLabel = (\r\n
    \r\n Flush\r\n (ex.  )\r\n
    \r\n);\r\n\r\n const FullHouseLabel = (\r\n
    \r\n Full House\r\n (ex.  )\r\n
    \r\n)\r\n\r\n const BigStraightLabel = (\r\n
    \r\n Big Straight\r\n (ex.  )\r\n
    \r\n)\r\n\r\n const QuadLabel = (\r\n
    \r\n Quad\r\n (ex.  )\r\n
    \r\n);\r\n\r\n const JackpotLabel = (\r\n
    \r\n Jackpot!\r\n (ex.  )\r\n
    \r\n);","import './hand-trigger.scss';\r\nimport React from \"react\"\r\nimport { HandTypeLabel } from \"./HandTypeLabel\";\r\nimport { HandTrigger, HandTypeOrderer } from '../../../../../../entities/rolls/HandTrigger';\r\nimport { MarkdownContainer } from '../../../../../theming/MarkdownContainer';\r\n\r\ntype Props = { handTrigger: HandTrigger }\r\n\r\nexport const HandTriggerComponent: React.FC = (props: Props) => {\r\n const { handTrigger } = props;\r\n let { handTypes, description } = handTrigger;\r\n handTypes = [...handTypes].sort(HandTypeOrderer)\r\n return (\r\n
    \r\n \r\n {description}\r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { GetHandTriggerKey, HandOrderer } from \"../../../../../../entities/rolls/HandTrigger\";\r\nimport { CollapsibleSection } from \"../../../../../articles/CollapsibleSection\";\r\nimport { HandTriggerComponent } from \"../../../character-sheet/common/hand-triggers/HandTriggerComponent\";\r\nimport { ItemInitializer } from \"../../../../../../entities/library/items/ItemInitializers\";\r\n\r\ntype Props = {\r\n item: ItemInitializer;\r\n}\r\n\r\nexport const ItemPreviewHandTriggers: React.FC = (props: Props) => {\r\n if (!props.item.handTriggers.any()) {\r\n return null;\r\n }\r\n props.item.handTriggers.sort(HandOrderer);\r\n return (\r\n Hand Triggers} expandedInitially={true}>\r\n {props.item.handTriggers.map(ht => )}\r\n \r\n );\r\n}","import React from \"react\"\r\nimport { MaterialSymbol } from \"./MaterialSymbol\"\r\n\r\nexport const AdvantageIcon = () => keyboard_double_arrow_up;\r\nexport const DisadvantageIcon = () => keyboard_double_arrow_down;\r\nexport const OnDCPassIcon = () => keyboard_double_arrow_right;","import './defenses.scss';\r\nimport React from \"react\";\r\nimport { ItemInitializer } from \"../../../../../../entities/library/items/ItemInitializers\";\r\nimport { ArmorIcon, ResilienceIcon } from \"../../../../../icons\";\r\nimport { OnDCPassIcon } from '../../../../../icons/IndicatorIcons';\r\nimport { Die } from '../../../../../figures/Die';\r\n\r\ntype Props = {\r\n item: ItemInitializer\r\n}\r\n\r\nexport const DefensesComponent: React.FC = (props: Props) => {\r\n const { armor, armorDc, armorSuccess,\r\n resilience, resilienceDc, resilienceSuccess\r\n } = props.item;\r\n const hasArmor = armor > 0 || armorSuccess > 0;\r\n const hasResilience = resilience > 0 || resilienceSuccess > 0;\r\n if (!hasArmor || !hasResilience) {\r\n return null;\r\n }\r\n return (\r\n
    \r\n {hasArmor\r\n ?
    \r\n \r\n {armor}\r\n {armorDc}\r\n \r\n {armorSuccess}\r\n
    \r\n : null}\r\n {hasResilience\r\n ?
    \r\n \r\n {resilience}\r\n {resilienceDc}\r\n \r\n {resilienceSuccess}\r\n
    \r\n : null}\r\n
    \r\n );\r\n}","import { ActiveAbility } from \"../../abilities/ActiveAbility\";\r\nimport { PassiveAbility } from \"../../abilities/PassiveAbility\";\r\nimport { ReactiveAbility } from \"../../abilities/ReactiveAbility\";\r\nimport { QuantifiedDamage } from \"../../categorization/QuantifiedDamage\";\r\nimport { HandTrigger } from \"../../rolls/HandTrigger\";\r\nimport { RecordStatus } from \"../../RecordStatus\";\r\nimport { SkillName } from \"../skills/SkillMap\";\r\nimport { SkillRequirement } from \"../skills/SkillRequirement\";\r\nimport { ExplicitItemKey } from \"./ExplicitItemMap\";\r\nimport { ModSlot } from \"./mods/ModSlot\";\r\n\r\nexport type WeaponAffectingModType = 'Ammo' | 'Spell';\r\nexport type ModTypeValue = 'Mod' | 'Body' | WeaponAffectingModType;\r\nexport type ItemTypeValue = 'Item' | 'Weapon' | 'Container' | ModTypeValue;\r\nexport type ItemCategoryValue = ItemTypeValue | 'Apparel';\r\n\r\nexport type ItemInitializer = {\r\n id: string;\r\n name: string;\r\n description: string;\r\n icon: string;\r\n type: ItemTypeValue;\r\n explicitType?: ExplicitItemKey;\r\n\r\n cost: number;\r\n weight: number;\r\n\r\n armor: number;\r\n armorDc: number;\r\n armorSuccess: number;\r\n resilience: number;\r\n resilienceDc: number;\r\n resilienceSuccess: number;\r\n \r\n handsUsedModifier: number;\r\n handsAvailableModifier: number;\r\n\r\n skillsUsed: SkillName[];\r\n skillRequirements: SkillRequirement[];\r\n handTriggers: HandTrigger[];\r\n \r\n actions: ActiveAbility[];\r\n reactions: ReactiveAbility[];\r\n passives: PassiveAbility[];\r\n\r\n wornOn: string[];\r\n slots: ModSlot[];\r\n blacklistTags: string[];\r\n tags: string[];\r\n\r\n recordStatus: RecordStatus;\r\n}\r\n\r\nexport type CrudItemInitializer = TInitializer & { newTags: string[] };\r\n\r\nexport type WeaponInitializer = ItemInitializer & {\r\n type: 'Weapon';\r\n weaponType: string;\r\n hands: number;\r\n range: number;\r\n}\r\n\r\nexport function isWeaponInitializer(initializer: ItemInitializer): initializer is WeaponInitializer {\r\n return initializer.type == 'Weapon';\r\n}\r\n\r\n\r\nexport type ModInitializer = ItemInitializer & {\r\n slotType: string;\r\n assignedSlotId?: string;\r\n handsUsedModifier: number;\r\n handsAvailableModifier: number;\r\n inheritsHandTriggers?: boolean;\r\n damageSuite: QuantifiedDamage[];\r\n customDamageTexts: string[];\r\n assignableToTags: string[];\r\n}\r\n\r\nexport type CrudModInitializer = CrudItemInitializer & { newAssignableToTags: string[] };\r\n\r\nexport function isModInitializer(initializer: ItemInitializer): initializer is ModInitializer {\r\n return initializer.type == 'Mod'\r\n || initializer.type == 'Ammo'\r\n || initializer.type == 'Spell';\r\n}\r\n\r\nexport function unguardedIsAmmo(item: any): boolean {\r\n return item?.type == 'Ammo';\r\n}\r\n\r\nexport type AmmoInitializer = ModInitializer & {\r\n type: 'Ammo';\r\n rangeMod?: number;\r\n rangeOverride?: number;\r\n}\r\n\r\nexport function isAmmoInitializer(initializer: ItemInitializer): initializer is AmmoInitializer {\r\n return unguardedIsAmmo(initializer);\r\n}\r\n\r\nexport type SpellInitializer = ModInitializer & {\r\n type: 'Spell',\r\n juice: number;\r\n requiresAttention: boolean;\r\n}\r\n\r\nexport function unguardedIsSpell(item: any): boolean {\r\n return item?.type == 'Spell';\r\n}\r\n\r\nexport function isSpellInitializer(initializer: ItemInitializer): initializer is SpellInitializer {\r\n return unguardedIsSpell(initializer);\r\n}\r\n\r\n\r\n\r\n\r\nexport type UnknownItemInitializer = ItemInitializer\r\n | WeaponInitializer\r\n | ModInitializer\r\n | AmmoInitializer\r\n | SpellInitializer;","import React from \"react\";\r\nimport { WeightIcon, MoneyIcon } from \"../../../../../icons\";\r\nimport { DamageTypeSuiteComponent } from \"../info/DamageTypeSuite\";\r\nimport { DefensesComponent } from \"../info/DefensesComponent\";\r\nimport { ItemInitializer, isModInitializer, isSpellInitializer, isWeaponInitializer } from \"../../../../../../entities/library/items/ItemInitializers\";\r\nimport { HandsIcon, JuiceIcon } from \"../../../../../icons/CharacterIcons\";\r\n\r\ntype Props = {\r\n item: ItemInitializer;\r\n}\r\n\r\nexport const ItemPreviewMetrics: React.FC = (props: Props) => {\r\n const { item } = props;\r\n const { weight, cost } = item;\r\n return (\r\n <>\r\n
    \r\n {isWeaponInitializer(item) &&
    {item.hands}
    }\r\n {isSpellInitializer(item) &&
    {item.juice}
    }\r\n
    {cost}
    \r\n
    {weight}
    \r\n
    \r\n
    \r\n {isModInitializer(item) && item.damageSuite.any() &&\r\n <> }\r\n \r\n
    \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { ItemInitializer } from \"../../../../../../entities/library/items/ItemInitializers\";\r\nimport { CollapsibleRegion } from \"../../../../../articles/CollapsibleRegion\";\r\nimport { CharacterAbilityView } from \"../../../character-sheet/main-section/CharacterAbilityView\";\r\nimport { CharacterAbility } from \"../../../../../../entities/abilities/Ability\";\r\nimport { LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { ItemHelpers } from \"../../../../../../entities/library/items/Item\";\r\nimport { OwnedItemReference } from \"../../../../../../entities/Ownership\";\r\nimport { useAppSelector } from \"../../../../../../store/configureStore\";\r\n\r\ntype Props = {\r\n character?: LocalCharacterInitializer;\r\n reference?: OwnedItemReference;\r\n item: ItemInitializer;\r\n}\r\n\r\nexport const ItemPreviewPassives = (props: Props) => {\r\n const { character, item, reference } = props;\r\n const allItems = useAppSelector(app => app.library.items);\r\n let passives: CharacterAbility[];\r\n let hasNoOtherEffects: boolean;\r\n\r\n if (reference != null) {\r\n const characterMods = character?.activeMods ?? [];\r\n passives = ItemHelpers.getPassives(allItems, reference, characterMods);\r\n hasNoOtherEffects = ItemHelpers.getActions(allItems, reference, characterMods).length == 0\r\n && ItemHelpers.getReactions(allItems, reference, characterMods).length == 0;\r\n }\r\n else {\r\n passives = ItemHelpers.getBasePassives(item);\r\n hasNoOtherEffects = ItemHelpers.getBaseActions(item).length == 0\r\n && ItemHelpers.getBaseReactions(item).length == 0;\r\n }\r\n\r\n if (!passives.any()) {\r\n return null;\r\n }\r\n const expanded = hasNoOtherEffects || passives.length == 1;\r\n return (\r\n \r\n {passives.map(p => )}\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { ItemInitializer } from \"../../../../../../entities/library/items/ItemInitializers\";\r\nimport { CollapsibleRegion } from \"../../../../../articles/CollapsibleRegion\";\r\nimport { CharacterAbilityView } from \"../../../character-sheet/main-section/CharacterAbilityView\";\r\nimport { CharacterAbility } from \"../../../../../../entities/abilities/Ability\";\r\nimport { LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { OwnedItemReference } from \"../../../../../../entities/Ownership\";\r\nimport { ItemHelpers } from \"../../../../../../entities/library/items/Item\";\r\nimport { useAppSelector } from \"../../../../../../store/configureStore\";\r\n\r\ntype Props = {\r\n character?: LocalCharacterInitializer;\r\n reference?: OwnedItemReference;\r\n item: ItemInitializer;\r\n}\r\n\r\nexport const ItemPreviewReactions = (props: Props) => {\r\n const { character, reference, item } = props;\r\n const allItems = useAppSelector(app => app.library.items);\r\n let reactions: CharacterAbility[];\r\n let hasNoOtherEffects: boolean;\r\n\r\n if (reference != null) {\r\n const characterMods = character?.activeMods ?? [];\r\n reactions = ItemHelpers.getReactions(allItems, reference, characterMods);\r\n hasNoOtherEffects = ItemHelpers.getActions(allItems, reference, characterMods).length == 0\r\n && ItemHelpers.getPassives(allItems, reference, characterMods).length == 0;\r\n }\r\n else {\r\n reactions = ItemHelpers.getBaseReactions(item);\r\n hasNoOtherEffects = ItemHelpers.getBaseActions(item).length == 0\r\n && ItemHelpers.getBasePassives(item).length == 0;\r\n }\r\n\r\n if (!reactions.any()) {\r\n return null;\r\n }\r\n const expanded = hasNoOtherEffects || reactions.length == 1;\r\n return (\r\n \r\n {reactions.map(r => )}\r\n \r\n )\r\n}","import { ItemFilterInitializer } from \"../../../../../entities/filters/ItemFilter\";\r\nimport { RollRequest, RollResponse } from \"../../../../../entities/rolls/Roll\";\r\nimport { AppThunkAction } from \"../../../ApplicationState\";\r\nimport { CommunalDice } from \"../../../../../entities/adventures/Adventure\";\r\nimport { ToastAction, ToastDispatchables } from \"../../../toasts/Toasts.Actions\";\r\nimport { ErrorToast } from \"../../../../../entities/toasts/Toasts\";\r\nimport { ApiDefaultState } from \"../../../api/ApiStore.State\";\r\nimport { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { AdventureHub } from \"../../../../../apis/account/Hub.Adventure\";\r\n\r\n// export type SheetSet = { type: 'CHARACTER_SET', character: CharacterInitializer }\r\nexport type CharacterSetEntityPending = { type: 'CHARACTER_SET_PENDING', characterId: string, entityId: string, pending: boolean }\r\nexport type CharacterSetPreviewItemInstanceId = { type: 'CHARACTER_SET_PREVIEW_ITEM_INSTANCE_ID', characterId: string, previewItemInstanceId?: string }\r\nexport type CharacterSetPreviewSlotId = { type: 'CHARACTER_SET_PREVIEW_SLOT_ID', characterId: string, previewSlotId?: string, previewSlotItemInstanceId?: string }\r\nexport type CharacterShowItemAdder = { type: 'CHARACTER_SHOW_ITEM_ADDER', characterId: string }\r\nexport type CharacterHideItemAdder = { type: 'CHARACTER_HIDE_ITEM_ADDER', characterId: string }\r\nexport type CharacterFilterItems = { type: 'CHARACTER_FILTER_ITEMS', characterId: string, filter: ItemFilterInitializer }\r\nexport type CharacterSetRolling = { type: 'CHARACTER_SET_ROLLING', characterId: string, rollRequest: RollRequest | undefined }\r\nexport type CharacterSetHand = { type: 'CHARACTER_SET_HAND', characterId: string, hand: RollResponse }\r\nexport type CharacterResetHand = { type: 'CHARACTER_RESET_HAND', characterId: string };\r\nexport type CharacterSetCommunalRolls = { type: 'CHARACTER_SET_COMMUNAL_DICE', characterId: string, communalDice: CommunalDice }\r\nexport type CharacterSetRollSkill = { type: 'CHARACTER_SET_ROLL_SKILL', characterId: string, skillId: string }\r\nexport type CharacterClearRollSkill = { type: 'CHARACTER_CLEAR_ROLL_SKILL', characterId: string }\r\n\r\nexport type CharacterSpecificAction = CharacterSetEntityPending\r\n | CharacterSetPreviewItemInstanceId\r\n | CharacterSetPreviewSlotId\r\n | CharacterShowItemAdder\r\n | CharacterHideItemAdder\r\n | CharacterFilterItems\r\n | CharacterSetRolling\r\n | CharacterSetHand\r\n | CharacterResetHand\r\n | CharacterSetCommunalRolls\r\n | CharacterSetRollSkill\r\n | CharacterClearRollSkill;\r\n\r\nexport const CharacterSpecificActions = {\r\n setPreviewItem: (character: LocalCharacterInitializer, previewItemInstanceId: string): AppThunkAction => \r\n (dispatch, getState) => {\r\n const {previewItemInstanceId: currentPreviewId} = character;\r\n if (currentPreviewId != previewItemInstanceId) {\r\n dispatch({ type: 'CHARACTER_SET_PREVIEW_ITEM_INSTANCE_ID', characterId: character.id, previewItemInstanceId })\r\n }\r\n },\r\n \r\n clearPreviewItem: (character: LocalCharacterInitializer): AppThunkAction =>\r\n (dispatch, getState) => {\r\n const {previewItemInstanceId} = character;\r\n if (previewItemInstanceId != undefined) {\r\n dispatch({ type: 'CHARACTER_SET_PREVIEW_ITEM_INSTANCE_ID', characterId: character.id });\r\n }\r\n },\r\n\r\n setPreviewSlot: (character: LocalCharacterInitializer, previewSlotId: string, previewSlotItemInstanceId: string): AppThunkAction =>\r\n (dispatch, getState) => {\r\n const { previewSlotId: currentPreviewSlotId } = character;\r\n if (currentPreviewSlotId != previewSlotId) {\r\n dispatch({ type: 'CHARACTER_SET_PREVIEW_SLOT_ID', characterId: character.id, previewSlotId, previewSlotItemInstanceId });\r\n }\r\n },\r\n\r\n clearPreviewSlot: (character: LocalCharacterInitializer): AppThunkAction =>\r\n (dispatch, getState) => {\r\n const { previewSlotId } = character;\r\n if (previewSlotId != undefined) {\r\n dispatch({ type: 'CHARACTER_SET_PREVIEW_SLOT_ID', characterId: character.id });\r\n }\r\n },\r\n\r\n showItemAdder: (character: LocalCharacterInitializer): AppThunkAction =>\r\n (dispatch) => {\r\n dispatch({ type: 'CHARACTER_SHOW_ITEM_ADDER', characterId: character.id });\r\n },\r\n\r\n hideItemAdder: (character: LocalCharacterInitializer): AppThunkAction =>\r\n (dispatch) => {\r\n dispatch({ type: 'CHARACTER_HIDE_ITEM_ADDER', characterId: character.id });\r\n },\r\n\r\n filterItems: (character: LocalCharacterInitializer, filter: ItemFilterInitializer): AppThunkAction =>\r\n (dispatch) => {\r\n dispatch({ type: 'CHARACTER_FILTER_ITEMS', characterId: character.id, filter: { ...filter, loaded: true } });\r\n },\r\n \r\n rollHand: (character: LocalCharacterInitializer, rollRequest: RollRequest): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n try {\r\n const hub = AdventureHub.Instance();\r\n const response = await hub.rollForPlayer(character.id, rollRequest);\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'CHARACTER_SET_HAND', characterId: character.id, hand: response.payload });\r\n }\r\n else {\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Error rolling dice.\"), dispatch);\r\n }\r\n finally {\r\n dispatch({ type: 'CHARACTER_SET_ROLLING', characterId: character.id, rollRequest: undefined });\r\n }\r\n },\r\n\r\n resetHand: (character: LocalCharacterInitializer): AppThunkAction => \r\n (dispatch) => dispatch({ type: 'CHARACTER_RESET_HAND', characterId: character.id }),\r\n\r\n setCommunalRolls: (character: LocalCharacterInitializer, communalDice: CommunalDice): AppThunkAction =>\r\n (dispatch) => dispatch({ type: 'CHARACTER_SET_COMMUNAL_DICE', characterId: character.id, communalDice }),\r\n\r\n setRollSkill: (character: LocalCharacterInitializer, skillId: string): AppThunkAction =>\r\n (dispatch) => {\r\n dispatch({ type: 'CHARACTER_SET_ROLL_SKILL', characterId: character.id, skillId });\r\n },\r\n \r\n clearRollSkill: (character: LocalCharacterInitializer): AppThunkAction =>\r\n (dispatch) => {\r\n dispatch({ type: 'CHARACTER_CLEAR_ROLL_SKILL', characterId: character.id });\r\n },\r\n}","import { AddItemSlotsRequest } from \"../../../../../apis/requests/AddItemSlotsRequest\";\r\nimport { UpdateIdResponse } from \"../../../../../apis/responses/UpdateIdResponse\";\r\nimport { CharacterHelpers, CharacterInitializer, CharacterItemCollectionName } from \"../../../../../entities/characters/Character\";\r\nimport { ItemHelpers } from \"../../../../../entities/library/items/Item\";\r\nimport { ItemInitializer, ModInitializer } from \"../../../../../entities/library/items/ItemInitializers\";\r\nimport { ModSlot } from \"../../../../../entities/library/items/mods/ModSlot\";\r\nimport { OwnedItemReference, OwnedModReference } from \"../../../../../entities/Ownership\";\r\nimport { ErrorToast, InfoToast, SuccessToast } from \"../../../../../entities/toasts/Toasts\";\r\nimport { getUniqueIdentifier } from \"../../../../../utils/GUID\";\r\nimport { AppThunkAction } from \"../../../ApplicationState\";\r\nimport { CharacterUpdated } from \"../CharacterStore.Actions\";\r\nimport { ToastAction, ToastDispatchables } from \"../../../toasts/Toasts.Actions\";\r\nimport { SiteSetLoading } from \"../../../site/SiteStore.Actions\";\r\nimport { ApiDefaultState } from \"../../../api/ApiStore.State\";\r\n\r\nexport type MoveItemGroupOperation = { group: OwnedItemReference[], collection: CharacterItemCollectionName };\r\n\r\nexport type CharacterSaveItem = { type: 'CHARACTER_SAVE_ITEM', characterId: string, oldInstanceId: string, newInstanceId: string }\r\nexport type CharacterAddItem = { type: 'CHARACTER_ADD_ITEM', characterId: string, item: OwnedItemReference }\r\nexport type CharacterUpdateItemName = { type: 'CHARACTER_UPDATE_ITEM_NAME', characterId: string, itemInstanceId: string, customName?: string }\r\nexport type CharacterUpdateItemNotes = { type: 'CHARACTER_UPDATE_ITEM_NOTES', characterId: string, itemInstanceId: string, customNotes?: string }\r\nexport type CharacterRemoveItems = { type: 'CHARACTER_REMOVE_ITEMS', characterId: string, instanceIds: string[] }\r\nexport type CharacterMoveItems = { type: 'CHARACTER_MOVE_ITEMS', characterId: string, operationOne: MoveItemGroupOperation, operationTwo?: MoveItemGroupOperation };\r\nexport type CharacterUpdateItems = { type: 'CHARACTER_UPDATE_ITEMS', characterId: string, items: OwnedItemReference[] }\r\n\r\nexport type CharacterAssignMod = { type: 'CHARACTER_ASSIGN_MOD', characterId: string, itemInstanceId: string, modInstanceId: string, slotId: string }\r\nexport type CharacterAssignBodyMod = { type: 'CHARACTER_ASSIGN_BODY_MOD', characterId: string, modInstanceId: string, slotId: string }\r\nexport type CharacterRemoveMod = { type: 'CHARACTER_REMOVE_MOD', characterId: string, itemInstanceId: string, slotId: string }\r\nexport type CharacterRemoveBodyMod = { type: 'CHARACTER_REMOVE_BODY_MOD', characterId: string, slotId: string }\r\nexport type CharacterAddSlots = { type: 'CHARACTER_ADD_SLOTS', characterId: string, requests: AddItemSlotsRequest[] }\r\nexport type CharacterRemoveSlots = { type: 'CHARACTER_REMOVE_SLOTS', characterId: string, itemInstanceIds: string[], slotIds: string[] }\r\nexport type CharacterUpdateSlots = { type: 'CHARACTER_UPDATE_SLOTS', characterId: string, itemInstanceIds: string[], updateIdResponses: UpdateIdResponse[] }\r\n\r\nexport type CharacterItemAction = CharacterSaveItem\r\n | CharacterAddItem\r\n | CharacterUpdateItemName\r\n | CharacterUpdateItemNotes\r\n | CharacterMoveItems\r\n | CharacterRemoveItems\r\n | CharacterUpdateItems\r\n\r\n | CharacterAssignMod\r\n | CharacterAssignBodyMod\r\n | CharacterRemoveMod\r\n | CharacterRemoveBodyMod\r\n | CharacterAddSlots\r\n | CharacterRemoveSlots\r\n | CharacterUpdateSlots;\r\n\r\nexport const CharacterItemActions = {\r\n addItem: (character: CharacterInitializer, item: ItemInitializer): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const instanceId = getUniqueIdentifier();\r\n const placeholder = { ...item, instanceId, customSlots: [], mods: [], saved: false };\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_REMOVE_ITEMS', characterId: character.id, instanceIds: [instanceId] });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error adding ${item.name}.`), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_ADD_ITEM', characterId: character.id, item: placeholder });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.addItem(character.id, item.id);\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'CHARACTER_SAVE_ITEM', characterId: character.id, oldInstanceId: instanceId, newInstanceId: response.payload });\r\n ToastDispatchables.toastLegacy(new InfoToast(`${item.name} added to inventory.`), dispatch);\r\n }\r\n else {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error adding item.\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n addItemRange: (character: CharacterInitializer, items: ItemInitializer[], successCallback: (id: string) => unknown): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.addItemRange(character.id, items.map(i => i.id));\r\n if (response.status == 'Error') {\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error adding items to ${character.name}.`), dispatch);\r\n return;\r\n }\r\n if (response.payload != null) {\r\n dispatch({ type: 'CHARACTER_UPDATED', character: response.payload });\r\n }\r\n ToastDispatchables.toastLegacy(new SuccessToast(\"Items added.\"), dispatch);\r\n successCallback(character.id);\r\n }\r\n catch (e) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error adding items.\"), dispatch);\r\n }\r\n },\r\n\r\n updateCustomItemName: (character: CharacterInitializer, reference: OwnedItemReference, newCustomName: string | undefined): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const oldCustomName = reference.customName;\r\n const oldVersion = { ...reference };\r\n const newVersion = { ...reference, customName: newCustomName };\r\n if (newCustomName == undefined || newCustomName.trim() == '') {\r\n delete newVersion.customName;\r\n }\r\n\r\n const item = getState().library.items.find(i => i.id == reference.id);\r\n if (item == null) {\r\n throw \"Attempted to update custom name for nonexistent item.\";\r\n }\r\n\r\n const itemName = reference.customName ?? item.name;\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_UPDATE_ITEM_NAME', characterId: character.id, itemInstanceId: reference.instanceId, customName: oldCustomName });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error updating ${itemName}.`), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_UPDATE_ITEM_NAME', characterId: character.id, itemInstanceId: reference.instanceId, customName: newVersion.customName });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.updateItem(character.id, oldVersion, newVersion);\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'CHARACTER_SAVE_ITEM', characterId: character.id, oldInstanceId: reference.instanceId, newInstanceId: reference.instanceId });\r\n }\r\n else {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error updating item name.\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n updateCustomItemNotes: (character: CharacterInitializer, reference: OwnedItemReference, newCustomNotes: string | undefined): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const oldCustomNotes = reference.customNotes;\r\n const update = { ...reference, customNotes: newCustomNotes };\r\n\r\n const item = getState().library.items.find(i => i.id == reference.id);\r\n if (item == null) {\r\n throw \"Attempted to update custom name for nonexistent item.\";\r\n }\r\n\r\n const itemName = reference.customName ?? item.name;\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_UPDATE_ITEM_NOTES', characterId: character.id, itemInstanceId: reference.instanceId, customNotes: oldCustomNotes });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error updating ${itemName}.`), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_UPDATE_ITEM_NOTES', characterId: character.id, itemInstanceId: reference.instanceId, customNotes: newCustomNotes });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.updateItem(character.id, reference, update);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error updating item notes.\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n holdItem: (character: CharacterInitializer, reference: OwnedItemReference, replaceItems: OwnedItemReference[] = []): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const undo = getMoveItemUndoFunction(character, reference, replaceItems, dispatch);\r\n if (undo == undefined) {\r\n return;\r\n }\r\n\r\n let toDispatch: CharacterMoveItems = { type: 'CHARACTER_MOVE_ITEMS', characterId: character.id, operationOne: { group: [reference], collection: 'held' } };\r\n if (replaceItems.any()) {\r\n toDispatch = { ...toDispatch, operationTwo: { group: replaceItems, collection: 'loose' } };\r\n }\r\n dispatch(toDispatch);\r\n\r\n try {\r\n const replaceInstanceIds = replaceItems.map(ri => ri.instanceId);\r\n const response = await ApiDefaultState.characters.holdItem(character.id, reference.instanceId, replaceInstanceIds);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error holding item.\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n wearItem: (character: CharacterInitializer, reference: OwnedItemReference, replaceItems: OwnedItemReference[] = []): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const undo = getMoveItemUndoFunction(character, reference, replaceItems, dispatch);\r\n if (undo == undefined) {\r\n return;\r\n }\r\n\r\n let toDispatch: CharacterMoveItems = { type: 'CHARACTER_MOVE_ITEMS', characterId: character.id, operationOne: { group: [reference], collection: 'worn' } };\r\n if (replaceItems.any()) {\r\n toDispatch = { ...toDispatch, operationTwo: { group: replaceItems, collection: 'loose' } };\r\n }\r\n dispatch(toDispatch);\r\n try {\r\n const replaceInstanceIds = replaceItems.map(ri => ri.instanceId);\r\n const response = await ApiDefaultState.characters.wearItem(character.id, reference.instanceId, replaceInstanceIds);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error wearing item.\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n moveToLoose: (character: CharacterInitializer, reference: OwnedItemReference): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const undo = getMoveItemUndoFunction(character, reference, [], dispatch);\r\n if (undo == undefined) {\r\n return;\r\n }\r\n\r\n dispatch({ type: 'CHARACTER_MOVE_ITEMS', characterId: character.id, operationOne: { group: [reference], collection: 'loose' } });\r\n try {\r\n const response = await ApiDefaultState.characters.moveToLoose(character.id, reference.instanceId);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error moving item.\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n removeItem: (character: CharacterInitializer, reference: OwnedItemReference): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const item = getState().library.items.find(i => i.id == reference.id);\r\n if (item == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"No backing item found.\"), dispatch);\r\n return;\r\n }\r\n\r\n const itemName = ItemHelpers.getName(item, reference);\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_ADD_ITEM', characterId: character.id, item: reference });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error removing ${itemName}.`), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_REMOVE_ITEMS', characterId: character.id, instanceIds: [reference.instanceId] });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.removeItem(character.id, reference.instanceId);\r\n if (response.status == 'Success') {\r\n ToastDispatchables.toastLegacy(new InfoToast(`${itemName} removed from inventory.`), dispatch);\r\n }\r\n else {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error removing item.\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n assignMod: (character: CharacterInitializer, itemInstanceId: string, modInstanceId: string, slotId: string): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const itemResult = CharacterHelpers.searchItemByInstanceId(character, itemInstanceId);\r\n if (itemResult == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Attempt to assign mod to nonexistent item.\"), dispatch);\r\n return;\r\n }\r\n\r\n const items = getState().library.items;\r\n\r\n const slottingItemReference = CharacterHelpers.findSlottingItem(character, items, slotId);\r\n if (slottingItemReference == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"No item found with that slot.\"), dispatch);\r\n return;\r\n }\r\n\r\n const slottingItem = items.find(i => i.id == slottingItemReference.id);\r\n if (slottingItem == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"No backing item found.\"), dispatch);\r\n return;\r\n }\r\n\r\n const modResult = CharacterHelpers.searchItemByInstanceId(character, modInstanceId);\r\n if (modResult == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Mod not found.\"), dispatch);\r\n return;\r\n }\r\n const { reference: modReference } = modResult;\r\n\r\n const mod = items.find(i => i.id == modReference.id);\r\n if (mod == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"No backing mod found.\"), dispatch);\r\n return;\r\n }\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_REMOVE_MOD', characterId: character.id, itemInstanceId: slottingItemReference.instanceId, slotId });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error assigning ${mod.name} to ${ItemHelpers.getName(slottingItem, slottingItemReference)}.`), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_ASSIGN_MOD', characterId: character.id, itemInstanceId: slottingItemReference.instanceId, modInstanceId: modReference.instanceId, slotId });\r\n const updatedMod: OwnedModReference = { ...modReference, assignedSlotId: slotId };\r\n \r\n try {\r\n const response = await ApiDefaultState.characters.assignMod(character.id, slottingItemReference.instanceId, updatedMod);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error assigning mod to item.\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n assignBodyMod: (character: CharacterInitializer, modReference: OwnedModReference, slotId: string): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const mod = getState().library.items.find(i => i.id == modReference.id);\r\n if (mod == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"No backing mod found.\"), dispatch);\r\n return;\r\n }\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_REMOVE_BODY_MOD', characterId: character.id, slotId });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error assigning ${ItemHelpers.getName(mod, modReference)} to body.`), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_ASSIGN_BODY_MOD', characterId: character.id, modInstanceId: modReference.instanceId, slotId });\r\n const updatedMod = { ...modReference, assignedSlotId: slotId };\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.assignBodyMod(character.id, updatedMod);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error assigning body mod.\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n addAndAssignMod: (character: CharacterInitializer, reference: OwnedItemReference, modInitializer: ModInitializer, slotId: string): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const allItems = getState().library.items;\r\n\r\n const slottingItem = allItems.find(i => i.id == reference.id);\r\n if (slottingItem == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"No backing item found.\"), dispatch);\r\n return;\r\n }\r\n\r\n const mod: OwnedModReference = {\r\n id: modInitializer.id,\r\n instanceId: getUniqueIdentifier(),\r\n type: modInitializer.type,\r\n assignedSlotId: slotId,\r\n assignedItemId: reference.instanceId,\r\n customSlots: [],\r\n customName: undefined,\r\n customNotes: undefined,\r\n };\r\n const slottingItemReference = CharacterHelpers.findSlottingItem(character, allItems, slotId);\r\n if (slottingItemReference == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"No item found with that slot.\"), dispatch);\r\n return;\r\n }\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_REMOVE_MOD', characterId: character.id, itemInstanceId: slottingItemReference.instanceId, slotId });\r\n dispatch({ type: 'CHARACTER_REMOVE_ITEMS', characterId: character.id, instanceIds: [mod.instanceId] });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error adding and assigning ${modInitializer.name} to ${ItemHelpers.getName(slottingItem, slottingItemReference)}.`), dispatch);\r\n }\r\n\r\n dispatch({ type: 'CHARACTER_ADD_ITEM', characterId: character.id, item: mod });\r\n dispatch({ type: 'CHARACTER_ASSIGN_MOD', characterId: character.id, itemInstanceId: slottingItemReference.instanceId, modInstanceId: mod.instanceId, slotId });\r\n try {\r\n const assignModResponse = await ApiDefaultState.characters.addAndAssignMod(character.id, slottingItemReference.instanceId, mod);\r\n if (assignModResponse.status == 'Error') {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Error assigning mod.\"), dispatch);\r\n undo();\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_SAVE_ITEM', characterId: character.id, oldInstanceId: mod.instanceId, newInstanceId: assignModResponse.payload });\r\n }\r\n }\r\n catch(e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error adding and assigning mod to item.\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n addAndAssignBodyMod: (character: CharacterInitializer, modInitializer: ModInitializer, slotId: string): AppThunkAction => \r\n async (dispatch, getState) => {\r\n const mod: OwnedModReference = {\r\n id: modInitializer.id,\r\n instanceId: getUniqueIdentifier(),\r\n type: modInitializer.type,\r\n assignedSlotId: slotId,\r\n assignedItemId: undefined,\r\n customSlots: [],\r\n customName: undefined,\r\n customNotes: undefined,\r\n };\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_REMOVE_BODY_MOD', characterId: character.id, slotId });\r\n dispatch({ type: 'CHARACTER_REMOVE_ITEMS', characterId: character.id, instanceIds: [mod.instanceId] });\r\n }\r\n\r\n dispatch({ type: 'CHARACTER_ADD_ITEM', characterId: character.id, item: mod });\r\n dispatch({ type: 'CHARACTER_ASSIGN_BODY_MOD', characterId: character.id, modInstanceId: mod.instanceId, slotId });\r\n\r\n try {\r\n const assignModResponse = await ApiDefaultState.characters.addAndAssignBodyMod(character.id, mod);\r\n if (assignModResponse.status == 'Error') {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Error assigning body mod.\"), dispatch);\r\n undo();\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_SAVE_ITEM', characterId: character.id, oldInstanceId: mod.instanceId, newInstanceId: assignModResponse.payload });\r\n }\r\n }\r\n catch(e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error adding and assigning body mod.\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n removeMod: (character: CharacterInitializer, itemInstanceId: string, modInstanceId: string): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const itemResult = CharacterHelpers.searchItemByInstanceId(character, itemInstanceId);\r\n if (itemResult == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"No item found to remove mod from.\"), dispatch);\r\n return;\r\n }\r\n const { reference: itemReference } = itemResult;\r\n\r\n const modReference = character.activeMods.find(m => m.instanceId == modInstanceId);\r\n if (modReference == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"No mod found to remove.\"), dispatch);\r\n return;\r\n }\r\n\r\n const allItems = getState().library.items;\r\n const item = allItems.find(i => i.id == itemReference.id);\r\n if (item == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"No backing item found.\"), dispatch);\r\n return;\r\n }\r\n\r\n const mod = allItems.find(i => i.id == modReference.id);\r\n if (mod == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"No backing mod found.\"), dispatch);\r\n return;\r\n }\r\n\r\n const slotId = modReference.assignedSlotId;\r\n if (slotId == undefined) {\r\n console.error('Attempt to remove an unassigned mod.');\r\n return;\r\n }\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_ASSIGN_MOD', characterId: character.id, itemInstanceId: itemReference.instanceId, modInstanceId: modReference.instanceId, slotId });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error removing ${ItemHelpers.getName(mod, modReference)} from ${ItemHelpers.getName(item, itemReference)}.`), dispatch);\r\n }\r\n \r\n dispatch({ type: 'CHARACTER_REMOVE_MOD', characterId: character.id, itemInstanceId: itemReference.instanceId, slotId });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.removeMod(character.id, itemReference.instanceId, modReference.instanceId);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e){\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error removing mod from item.\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n removeBodyMod: (character: CharacterInitializer, reference: OwnedModReference): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const mod = getState().library.items.find(i => i.id == reference.id);\r\n if (mod == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"No backing mod found.\"), dispatch);\r\n return;\r\n }\r\n\r\n const slotId = reference.assignedSlotId;\r\n if (slotId == undefined) {\r\n console.error(\"Attempt to remove an unassigned mod.\");\r\n return;\r\n }\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_ASSIGN_BODY_MOD', characterId: character.id, modInstanceId: reference.instanceId, slotId });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error removing ${ItemHelpers.getName(mod, reference)} from body.`), dispatch);\r\n }\r\n \r\n dispatch({ type: 'CHARACTER_REMOVE_BODY_MOD', characterId: character.id, slotId });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.removeBodyMod(character.id, reference.instanceId);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error removing body mod.\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n addSlots: (character: CharacterInitializer, requests: AddItemSlotsRequest[]): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n for (let request of requests) {\r\n for (let slot of request.slots) {\r\n slot.id = getUniqueIdentifier();\r\n }\r\n }\r\n const itemInstanceIds = requests.map(r => r.itemInstanceId)\r\n const slotIds = requests.mapMany(r => r.slots).map(s => s.id);\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_REMOVE_SLOTS', characterId: character.id, itemInstanceIds, slotIds });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error updating item slots.'), dispatch);\r\n }\r\n\r\n dispatch({ type: 'CHARACTER_ADD_SLOTS', characterId: character.id, requests });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.addSlots(character.id, requests);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_UPDATE_SLOTS', characterId: character.id, itemInstanceIds, updateIdResponses: response.payload });\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error adding slots to item(s).\"), dispatch);\r\n console.error(e);\r\n }\r\n },\r\n\r\n removeSlots: (character: CharacterInitializer, slots: ModSlot[]): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n\r\n const slotIds = slots.map(s => s.id);\r\n const affectedItems = CharacterHelpers.getInventory(character).filter(i => i.customSlots.map(cs => cs.id).intersection(slotIds).any());\r\n const itemIds = affectedItems.map(ai => ai.instanceId);\r\n const undoModAssignments: CharacterAssignMod[] = [];\r\n const undoRequests: AddItemSlotsRequest[] = [];\r\n\r\n for (let item of affectedItems) {\r\n const mod = character.activeMods.find(m => slotIds.contains(m.assignedSlotId));\r\n if (mod?.assignedSlotId != null) {\r\n undoModAssignments.push({ type: 'CHARACTER_ASSIGN_MOD', characterId: character.id, itemInstanceId: item.instanceId, modInstanceId: mod.instanceId, slotId: mod.assignedSlotId })\r\n }\r\n\r\n const slots = item.customSlots.filter(cs => slotIds.contains(cs.id));\r\n undoRequests.push({\r\n itemInstanceId: item.instanceId,\r\n slots\r\n });\r\n }\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_ADD_SLOTS', characterId: character.id, requests: undoRequests });\r\n\r\n //If a mod is assigned, reassign it.\r\n for (let undoModAssignment of undoModAssignments) {\r\n dispatch(undoModAssignment);\r\n }\r\n }\r\n\r\n dispatch({ type: 'CHARACTER_REMOVE_SLOTS', characterId: character.id, itemInstanceIds: itemIds, slotIds: slotIds });\r\n try {\r\n const response = await ApiDefaultState.characters.removeSlots(character.id, slotIds);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error removing item slot.'), dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Server error removing slots from item(s).\"), dispatch);\r\n console.error(e);\r\n }\r\n }\r\n}\r\n\r\ntype MoveDispatcher = (action: CharacterMoveItems | ToastAction) => void;\r\n\r\n/**\r\n * Creates a method that undoes an item move action.\r\n * @param character The character to create a move undo operation for.\r\n * @param reference The item that was moved.\r\n * @param replaceItems The items replaced in the move.\r\n * @param dispatch A hook into redux the dispatch pipeline.\r\n * @returns A function that undoes an item move action.\r\n */\r\nconst getMoveItemUndoFunction = (character: CharacterInitializer, reference: OwnedItemReference, replaceItems: OwnedItemReference[], dispatch: MoveDispatcher) => {\r\n const collection = CharacterHelpers.getItemCollection(character, reference);\r\n if (collection == undefined) {\r\n ToastDispatchables.toastLegacy(new ErrorToast('Move item not on character!'), dispatch);\r\n return;\r\n }\r\n\r\n //TODO: See if there is a way to keep this typing without repeating as much as is here.\r\n const itemPayload = { group: [reference], collection };\r\n\r\n const toDispatch: CharacterMoveItems = { type: 'CHARACTER_MOVE_ITEMS', characterId: character.id, operationOne: itemPayload }\r\n if (!replaceItems.any()) {\r\n return () => dispatch(toDispatch);\r\n }\r\n\r\n const replaceOperation = getMoveItemReplaceOperation(character, replaceItems, dispatch);\r\n return () => dispatch({ ...toDispatch, operationTwo: replaceOperation });\r\n}\r\n\r\n/**\r\n * Creates an operation for undoing the changes to items replaced in an item move action.\r\n * @param character The character to create a move undo operation for.\r\n * @param replaceItems The items replaced in the move.\r\n * @param dispatch A hook into redux the dispatch pipeline.\r\n * @returns A payload that reverses a move operation's changes to the replaced items.\r\n */\r\nconst getMoveItemReplaceOperation = (character: CharacterInitializer, replaceItems: OwnedItemReference[], dispatch: MoveDispatcher): MoveItemGroupOperation | undefined => {\r\n const replaceCollection = replaceItems.map(ri => ({\r\n item: ri,\r\n collection: CharacterHelpers.getItemCollection(character, ri)\r\n }))\r\n .filter(r => r.collection != null);\r\n\r\n const replaceGroupItems = replaceCollection.map(r => r.item);\r\n\r\n for (let response of replaceCollection) {\r\n if (replaceCollection.any(other => other.collection != response.collection)) {\r\n ToastDispatchables.toastLegacy(new ErrorToast('Replacement items are in different locations.'), dispatch);\r\n return;\r\n }\r\n }\r\n\r\n const collection = replaceCollection[0]?.collection;\r\n if (collection == null) {\r\n return undefined;\r\n }\r\n return { group: replaceGroupItems, collection };\r\n}","import \"./mod-slot-preview.scss\";\r\nimport React from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../../../entities/characters/Character\";\r\nimport { ModSlot } from \"../../../../../../../entities/library/items/mods/ModSlot\";\r\nimport { DeleteIcon } from \"../../../../../../icons\";\r\nimport { Loader } from \"../../../../../../theming/loader/Loader\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../../../store/configureStore\";\r\nimport { CharacterSpecificActions } from \"../../../../../../../store/stores/collection/characters/actions/CharacterSpecificActions\";\r\nimport { OwnedItemReference } from \"../../../../../../../entities/Ownership\";\r\nimport { ItemHelpers } from \"../../../../../../../entities/library/items/Item\";\r\nimport { CharacterItemActions } from \"../../../../../../../store/stores/collection/characters/actions/CharacterItemActions\";\r\nimport { GetSheetSlots } from \"../ItemPreviewSlots\";\r\n\r\ntype Props = {\r\n character?: LocalCharacterInitializer;\r\n reference?: OwnedItemReference;\r\n slot: ModSlot;\r\n editable?: boolean;\r\n custom?: boolean;\r\n}\r\n\r\nexport const ModSlotPreview = (props: Props) => {\r\n const { character, reference, slot, editable, custom } = props;\r\n const dispatch = useAppDispatch();\r\n\r\n const allItems = useAppSelector(app => app.library.items);\r\n\r\n const modReference = character?.activeMods.first(m => m.assignedSlotId == slot.id) ?? undefined;\r\n \r\n const itemSaved = reference != null && character?.pendingProperties[reference.instanceId] == undefined;\r\n const modSaved = modReference == null || character?.pendingProperties[modReference.instanceId] == undefined;\r\n\r\n const mod = allItems.find(i => i.id == modReference?.id);\r\n const isNested = reference != null && ItemHelpers.isMod(reference);\r\n\r\n const canDelete = editable && character && modReference != null;\r\n const deleteMod = () => {\r\n dispatch(CharacterItemActions.removeMod(character!, reference!.instanceId, modReference!.instanceId));\r\n }\r\n\r\n const onClick = () => {\r\n if (character != null && reference != null && itemSaved && editable) {\r\n dispatch(CharacterSpecificActions.setPreviewSlot(character, slot.id, reference.instanceId))\r\n }\r\n }\r\n\r\n const nestedSlots = mod != null\r\n ? GetSheetSlots({ ...props, reference: modReference, item: mod })\r\n : undefined;\r\n return (\r\n <>\r\n
    \r\n
    \r\n {mod?.name ?? \"Empty\"}\r\n {canDelete && (\r\n \r\n )}\r\n
    \r\n {(itemSaved || !editable) && \r\n \r\n }\r\n {!itemSaved && editable &&\r\n \r\n }\r\n
    \r\n {slot.slotTypes.join(\", \")}\r\n
    \r\n
    \r\n {nestedSlots}\r\n \r\n );\r\n}","\r\nimport React from 'react';\r\nimport { LocalCharacterInitializer } from '../../../../../../entities/characters/Character';\r\nimport { ModSlotPreview } from './mods/ModSlotPreview';\r\nimport { ItemInitializer } from '../../../../../../entities/library/items/ItemInitializers';\r\nimport { OwnedItemReference, OwnedModReference } from '../../../../../../entities/Ownership';\r\nimport { ModSlot } from '../../../../../../entities/library/items/mods/ModSlot';\r\n\r\ntype Props = {\r\n character?: LocalCharacterInitializer;\r\n reference?: OwnedItemReference;\r\n item: ItemInitializer;\r\n editable?: boolean;\r\n}\r\n\r\nexport const ItemPreviewSlots: React.FC = (props: Props) => {6\r\n return (\r\n <>\r\n
    \r\n {GetSheetSlots({ ...props })}\r\n
    \r\n \r\n );\r\n}\r\n\r\nexport const GetSheetSlots = (props: Props): React.ReactNode[] => {\r\n const { character, reference, item, editable } = props;\r\n\r\n let mods: OwnedModReference[] = [];\r\n let customSlots: ModSlot[] = [];\r\n\r\n if (reference != null) { //There are mods\r\n mods = character?.activeMods.filter(m => m.assignedItemId == reference.instanceId) ?? [];\r\n customSlots = reference.customSlots;\r\n }\r\n\r\n return [\r\n ...item.slots.map(slot => (\r\n \r\n )),\r\n ...customSlots.map(slot => (\r\n \r\n ))\r\n ]\r\n}","import React from \"react\";\r\nimport { TagsComponent } from \"../../../character-sheet/common/tags/TagsComponent\";\r\nimport { ItemInitializer, isModInitializer } from \"../../../../../../entities/library/items/ItemInitializers\";\r\n\r\ntype Props = {\r\n item: ItemInitializer;\r\n}\r\n\r\nexport const ItemPreviewTags: React.FC = (props: Props) => {\r\n const { item } = props;\r\n let assignableTo, notAssignableTo: string[] | undefined = undefined;\r\n\r\n if (isModInitializer(item)) {\r\n assignableTo = item.assignableToTags;\r\n notAssignableTo = item.blacklistTags;\r\n }\r\n return (\r\n <>\r\n {item.wornOn.any() && (\r\n
    \r\n \r\n {item.wornOn.map(wo =>
    {wo}
    )}\r\n
    \r\n )}\r\n
    \r\n \r\n
    \r\n \r\n );\r\n}","import './item-preview.scss';\r\nimport React from \"react\"\r\nimport { LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\"\r\nimport { ItemPreviewActions } from \"./ItemPreviewActions\"\r\nimport { ItemPreviewBasicInfo } from \"./ItemPreviewBasicInfo\"\r\nimport { ItemPreviewHandTriggers } from \"./ItemPreviewHandTriggers\"\r\nimport { ItemPreviewMetrics } from \"./ItemPreviewMetrics\"\r\nimport { ItemPreviewPassives } from \"./ItemPreviewPassives\"\r\nimport { ItemPreviewReactions } from \"./ItemPreviewReactions\"\r\nimport { ItemPreviewSlots } from \"./ItemPreviewSlots\"\r\nimport { ItemPreviewTags } from \"./ItemPreviewTags\"\r\nimport { ItemInitializer } from '../../../../../../entities/library/items/ItemInitializers';\r\nimport { OwnedItemReference } from '../../../../../../entities/Ownership';\r\n\r\ntype Props = {\r\n character?: LocalCharacterInitializer;\r\n reference?: OwnedItemReference;\r\n item: ItemInitializer;\r\n editable?: boolean;\r\n}\r\n\r\nexport const ItemPreview = (props: Props) => {\r\n const { character, reference, item, editable } = props;\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n}","import \"./breakdown-window.scss\";\r\nimport React from \"react\";\r\nimport { JSXChildProps } from \"../../../entities/utils/jsx/Children\";\r\nimport { ExternalClickDetector } from \"../../../utils/events/ExternalClickDetector\";\r\nimport { CloseIcon } from \"../../icons\";\r\nimport { CloseButton } from \"../../inputs/buttons/CloseButton\";\r\n\r\ntype Props = {\r\n className?: string;\r\n centered?: boolean;\r\n heading?: React.ReactNode;\r\n visible?: boolean;\r\n onScroll?: (e: React.UIEvent) => unknown;\r\n close: () => void;\r\n} & JSXChildProps;\r\n\r\nexport const BreakdownWindow: React.FC = (props: Props) => {\r\n const { className, centered, heading, onScroll, close, children } = props;\r\n const visible = props.visible === undefined || props.visible;\r\n const overlayClass = visible\r\n ? \"active\"\r\n : \"inactive\";\r\n const tryToClose = () => {\r\n if (visible) {\r\n close();\r\n }\r\n }\r\n \r\n return (\r\n
    \r\n \r\n
    \r\n {heading}\r\n \r\n
    \r\n {children}\r\n
    \r\n
    \r\n );\r\n}","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { JSXChildProps } from \"../../../../../../entities/utils/jsx/Children\";\r\nimport { EditIcon } from \"../../../../../icons\";\r\nimport { useAppDispatch } from \"../../../../../../store/configureStore\";\r\nimport { CharacterItemActions } from \"../../../../../../store/stores/collection/characters/actions/CharacterItemActions\";\r\nimport { OwnedItemReference } from \"../../../../../../entities/Ownership\";\r\nimport { ItemHelpers } from \"../../../../../../entities/library/items/Item\";\r\nimport { isWeaponInitializer, ItemInitializer } from \"../../../../../../entities/library/items/ItemInitializers\";\r\n\r\ntype Props = {\r\n character?: LocalCharacterInitializer;\r\n item: ItemInitializer;\r\n reference?: OwnedItemReference;\r\n editable?: boolean;\r\n} & JSXChildProps;\r\n\r\ntype HeaderState = {\r\n currentName?: string;\r\n editing: boolean;\r\n}\r\n\r\nexport const ItemPreviewHeader: React.FC = (props: Props) => {\r\n const { character, item, reference, editable, children } = props;\r\n const dispatch = useAppDispatch();\r\n\r\n const inputRef = useRef(null);\r\n const [state, setState] = useState({\r\n currentName: ItemHelpers.getName(item, reference),\r\n editing: false,\r\n });\r\n\r\n useEffect(() => {\r\n if (state.editing) {\r\n inputRef.current?.focus();\r\n }\r\n }, [state.editing]);\r\n\r\n const itemIsWeapon = isWeaponInitializer(item)\r\n let headerText: React.ReactNode;\r\n if (editable && itemIsWeapon) {\r\n headerText = 'Editing: ';\r\n }\r\n else {\r\n headerText = children;\r\n }\r\n\r\n return (\r\n
    \r\n {headerText}\r\n {character && reference && setState({ ...state, currentName: e.target.value })}\r\n onBlur={(e) => {\r\n dispatch(CharacterItemActions.updateCustomItemName(character, reference, e.target.value));\r\n setState({ ...state, editing: false });\r\n }} />\r\n }\r\n  \r\n {ItemHelpers.getIcon(item)}\r\n {({item.name}) }\r\n {ItemHelpers.getName(item, reference)} \r\n \r\n {editable && reference && itemIsWeapon &&\r\n \r\n }\r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { CharacterInitializer } from \"../../../entities/characters/Character\";\r\nimport { ItemInitializer } from \"../../../entities/library/items/ItemInitializers\";\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { useAppDispatch } from \"../../../store/configureStore\";\r\nimport { CharacterSpecificActions } from \"../../../store/stores/collection/characters/actions/CharacterSpecificActions\";\r\nimport { CharacterItemActions } from \"../../../store/stores/collection/characters/actions/CharacterItemActions\";\r\n\r\ntype Props = {\r\n character: CharacterInitializer;\r\n item: ItemInitializer;\r\n};\r\n\r\nexport const AddItemButton: React.FC = (props: Props) => {\r\n const { character, item } = props;\r\n const dispatch = useAppDispatch();\r\n const onClick = () => {\r\n dispatch(CharacterItemActions.addItem(character, item));\r\n dispatch(CharacterSpecificActions.hideItemAdder(character.id));\r\n }\r\n return (\r\n
    \r\n \r\n Add\r\n \r\n
    \r\n );\r\n}","import './item-results.scss';\r\nimport React, { useState } from 'react';\r\nimport { NoFilterResults } from '../../filtering/NoFilterResults';\r\nimport { ItemInitializer } from '../../../entities/library/items/ItemInitializers';\r\nimport { ItemPreview } from '../../collection/characters/character-tools/items/preview/ItemPreview';\r\nimport { ObjectIcons } from '../../icons';\r\nimport { BreakdownWindow } from '../../theming/breakdown-window';\r\nimport { ItemPreviewHeader } from '../../collection/characters/character-tools/items/preview/ItemPreviewHeader';\r\nimport { LocalCharacterInitializer } from '../../../entities/characters/Character';\r\nimport { AddItemButton } from '../../library/items/AddItemButton';\r\nimport { STRING_UTILS } from '../../../utils/StringUtilities';\r\nimport { useNavigate } from 'react-router';\r\n\r\ntype Props = {\r\n character?: LocalCharacterInitializer;\r\n items: ItemInitializer[];\r\n useRoute?: boolean;\r\n close?: () => unknown;\r\n}\r\n\r\nexport const ItemResults: React.FC = (props: Props) => {\r\n const { character, items, useRoute, close } = props;\r\n const navigate = useNavigate();\r\n\r\n const [currentlyViewing, setViewing] = useState();\r\n\r\n if (items.length == 0) {\r\n return ;\r\n }\r\n\r\n const onClickItem = (item: ItemInitializer) => {\r\n if (useRoute) {\r\n navigate(STRING_UTILS.encodeNameForURI(item.name));\r\n }\r\n else {\r\n setViewing(item);\r\n }\r\n }\r\n\r\n const onClose = () => {\r\n if (close) {\r\n close();\r\n }\r\n setViewing(undefined);\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    Name
    \r\n
    Cost
    \r\n
    Tags
    \r\n
    \r\n
    \r\n {items.map((item) => (\r\n
    onClickItem(item)}>\r\n
    {ObjectIcons.GetIcon(item.icon)}
    \r\n
    {item.name}
    \r\n
    {item.cost} chips
    \r\n
    {item.tags.join(', ')}
    \r\n
    \r\n ))}\r\n
    \r\n {!useRoute && }\r\n visible={currentlyViewing != undefined}\r\n close={onClose}>\r\n {currentlyViewing && }\r\n {character?.id != null && currentlyViewing && }\r\n }\r\n
    \r\n )\r\n}","import React from \"react\"\r\nimport { ApparelIcon, AttacksIcon, DefaultIcon, HeavyWeaponIcon, ModIcon, SpellsIcon } from \"../../../icons\";\r\nimport { ItemCategoryValue } from \"../../../../entities/library/items/ItemInitializers\";\r\n\r\ntype Props = {\r\n types: ItemCategoryValue[];\r\n onChange: (type: ItemCategoryValue[]) => unknown;\r\n}\r\n\r\nexport const ItemTypeFilter = (props: Props) => {\r\n const { types, onChange } = props;\r\n\r\n const isActiveClass = (type: ItemCategoryValue) => {\r\n return types.contains(type)\r\n ? 'active'\r\n : 'inactive';\r\n }\r\n\r\n const createTypeFilterEvent = (type: ItemCategoryValue) => {\r\n return () => {\r\n let updatedTypes: ItemCategoryValue[];\r\n if (types.contains(type)) {\r\n updatedTypes = types.filter(t => t != type);\r\n }\r\n else {\r\n updatedTypes = [...types, type];\r\n }\r\n onChange(updatedTypes);\r\n }\r\n }\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}","import React from \"react\";\r\n\r\ntype Props = {\r\n description: string;\r\n onChange: (description: string) => unknown;\r\n}\r\n\r\nexport const ItemDescriptionFilter = (props: Props) => {\r\n const { description, onChange } = props;\r\n return (\r\n
    \r\n
    \r\n \r\n onChange(e.target.value)} />\r\n
    \r\n
    \r\n )\r\n}","import React from \"react\";\r\n\r\ntype Props = {\r\n minWeight: number;\r\n maxWeight: number;\r\n onChange: (minWeight: number, maxWeight: number) => unknown;\r\n}\r\n\r\nexport const ItemWeightFilters = (props: Props) => {\r\n const { minWeight, maxWeight, onChange } = props;\r\n return (\r\n
    \r\n
    \r\n \r\n onChange(parseFloat(e.target.value), maxWeight)} />\r\n
    \r\n
    \r\n \r\n onChange(minWeight, parseFloat(e.target.value))} />\r\n
    \r\n
    \r\n );\r\n}","import './multiselect.scss';\r\nimport React, { createRef } from 'react';\r\nimport { OptionType, SelectableOption } from '../SelectableOption';\r\nimport { CloseIcon } from '../../../icons';\r\n\r\ntype Props> = {\r\n options: TOption[];\r\n id?: string;\r\n name?: string;\r\n selections: TValue[];\r\n placeholder?: string;\r\n onChange: (selections: TValue[]) => unknown;\r\n};\r\n\r\ntype State = {\r\n filter: string;\r\n showingDropdown: boolean;\r\n};\r\n\r\nexport class MultiSelect> extends React.Component, State> {\r\n public constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n filter: '',\r\n showingDropdown: false\r\n };\r\n this.componentRef = createRef();\r\n this.textInputRef = createRef();\r\n this.optionRefs = props.options.map((sv) => createRef());\r\n }\r\n\r\n private readonly componentRef: React.RefObject;\r\n private readonly textInputRef: React.RefObject;\r\n private optionRefs: React.RefObject[] = [];\r\n\r\n private get filteredOptions(): TOption[] {\r\n return this.filterOptions(\r\n this.props.options,\r\n this.state.filter\r\n );\r\n }\r\n\r\n private filterOptions = (\r\n options: TOption[],\r\n filter: string\r\n ) => {\r\n return options\r\n .filter((option) => {\r\n const filterOn = option.name ?? option.value;\r\n return filterOn?.toString().toLowerCase().includes(filter.toLowerCase());\r\n });\r\n };\r\n\r\n public componentDidMount(): void {\r\n document.addEventListener('mousedown', this.onClickOutside);\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n document.removeEventListener('mousedown', this.onClickOutside);\r\n }\r\n\r\n private get selectedOptions(): TOption[] {\r\n return this.props.options.filter(option => this.props.selections.contains(option.value));\r\n }\r\n\r\n private get optionsClass(): string {\r\n const shouldShow = this.state.showingDropdown && this.filteredOptions.length > 0;\r\n const visibleClass = shouldShow ? 'visible' : 'hidden';\r\n return `options ${visibleClass}`;\r\n }\r\n\r\n private get noResultsClass(): string {\r\n const shouldShow = this.state.showingDropdown && this.filteredOptions.length <= 0;\r\n const visibleClass = shouldShow ? 'visible' : 'hidden';\r\n return `no-results ${visibleClass}`;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const selectionValue = this.props.selections\r\n .filter(sv => sv != null)\r\n .map(sv => sv!.toString());\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n {this.selectedOptions.map((sv) => this.renderSelection(sv))}\r\n
    \r\n \r\n
    \r\n
    No results found.
    \r\n
    \r\n {this.filteredOptions.map((option, index) =>\r\n this.renderOption(option, index)\r\n )}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n public clear(): void {\r\n this.setState((state) => ({ ...state, selections: [] }));\r\n }\r\n\r\n private renderOption(option: TOption, index: number): JSX.Element {\r\n const isSelected = this.props.selections.includes(option.value);\r\n const disabled = isSelected || option.disabled;\r\n const disabledClass = disabled ? 'disabled' : 'enabled';\r\n const onClick = disabled\r\n ? () => {}\r\n : this.selectOption.bind(this, option);\r\n return (\r\n
    \r\n {option.name ?? option.value}\r\n
    \r\n );\r\n }\r\n\r\n private renderSelection(option: TOption): JSX.Element {\r\n return (\r\n
    \r\n \r\n \r\n \r\n {option.name ?? option.value}\r\n
    \r\n );\r\n }\r\n\r\n private selectOption(option: TOption): void {\r\n this.props.onChange([...this.props.selections, option.value]);\r\n this.setState({ ...this.state, filter: '' });\r\n }\r\n\r\n private deselectOption(option: TOption): void {\r\n const selections = this.props.selections.filter(selection => selection != option.value);\r\n this.props.onChange(selections);\r\n this.setState({ ...this.state, filter: '' });\r\n }\r\n\r\n private onFocus() {\r\n this.setState((state) => ({ ...state, showingDropdown: true }));\r\n }\r\n\r\n private onFilter = (e: React.ChangeEvent) => {\r\n this.setState((state) => {\r\n const filter = e.target.value;\r\n this.optionRefs = this.filterOptions(\r\n this.props.options,\r\n filter\r\n ).map(() => createRef());\r\n return { ...state, filter };\r\n });\r\n };\r\n\r\n private onClickOutside = (event: globalThis.MouseEvent): void => {\r\n if (this.state.showingDropdown\r\n && event.target instanceof Node\r\n && !this.componentRef.current?.contains(event.target)) {\r\n this.setState((state) => ({ ...state, showingDropdown: false }));\r\n }\r\n };\r\n\r\n private focusSelect = (event: any) => {\r\n const numRefs = this.optionRefs.filter((ref) => ref.current?.contains(event.target)).length;\r\n if (numRefs > 0) {\r\n return;\r\n }\r\n this.textInputRef.current?.focus();\r\n };\r\n}\r\n","export const Tag = Object.seal({\r\n AmmoTags: [\r\n 'Blade',\r\n 'Bludgeon',\r\n 'Spike',\r\n 'Bullet',\r\n 'Cell',\r\n 'Shot',\r\n 'Cannister',\r\n 'Payload',\r\n 'Rocket'\r\n ],\r\n IsAmmoTag: (tag: string) => Tag.AmmoTags.includes(tag),\r\n Sort: (tag1: string, tag2: string) => tag1.localeCompare(tag2),\r\n MapToSelectableOption: (tag: string) => ({ name: tag, value: tag })\r\n});","import React from \"react\";\r\nimport { MultiSelect } from \"../../../inputs/selects/multiselect/MultiSelect\";\r\nimport { Tag } from \"../../../../entities/categorization/Tag\";\r\nimport { ApplicationState } from \"../../../../store/stores/ApplicationState\";\r\nimport { useAppSelector } from \"../../../../store/configureStore\";\r\n\r\ntype Props = {\r\n tags: string[];\r\n onChange: (tags: string[]) => unknown;\r\n}\r\n\r\nexport const TagsFilter = (props: Props) => {\r\n const { tags, onChange } = props;\r\n const allTags = useAppSelector((app: ApplicationState) => app.library.tags);\r\n return (\r\n
    \r\n
    \r\n \r\n onChange(selections)} />\r\n
    \r\n
    \r\n )\r\n}","import React from \"react\";\r\n\r\ntype Props = {\r\n minCost: number;\r\n maxCost: number;\r\n onChange: (minCost: number, maxCost: number) => unknown;\r\n}\r\n\r\nexport const ItemCostFilter = (props: Props) => {\r\n const { minCost, maxCost, onChange } = props;\r\n return (\r\n
    \r\n
    \r\n \r\n onChange(parseInt(e.target.value), maxCost)} />\r\n
    \r\n
    \r\n \r\n onChange(minCost, parseInt(e.target.value))} />\r\n
    \r\n
    \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport { ItemResults } from \"./ItemResults\";\r\nimport { ItemFilter, ItemFilterInitializer } from \"../../../entities/filters/ItemFilter\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { ErrorNotification } from \"../../notifications/Notification\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\nimport { LocalCharacterInitializer } from \"../../../entities/characters/Character\";\r\nimport { useLocation, useNavigate } from \"react-router\";\r\nimport { CharacterSpecificActions } from \"../../../store/stores/collection/characters/actions/CharacterSpecificActions\";\r\nimport { ItemTypeFilter } from \"./filters/ItemTypeFilter\";\r\nimport { NameFilter } from \"./filters/NameFilter\";\r\nimport { ItemDescriptionFilter } from \"./filters/ItemDescriptionFilter\";\r\nimport { ItemWeightFilters } from \"./filters/ItemWeightFilter\";\r\nimport { TagsFilter } from \"./filters/TagsFilter\";\r\nimport { ItemCostFilter } from \"./filters/ItemCostFilter\";\r\n\r\ntype Props = {\r\n character?: LocalCharacterInitializer;\r\n useRoute?: boolean;\r\n close?: () => void;\r\n}\r\n\r\nexport const ItemsView: React.FC = (props: Props) => {\r\n const { character, useRoute, close } = props;\r\n const { items: allItems, allItemsLoaded, itemsError } = useAppSelector(app => app.library);\r\n\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const dispatch = useAppDispatch();\r\n\r\n const query = new URLSearchParams(location.search);\r\n const [filterState, setFilterState] = useState(ItemFilter.CreateFilterFromQuery(query));\r\n const itemFilter = new ItemFilter(filterState);\r\n\r\n const search = (newState: ItemFilterInitializer) => {\r\n if (useRoute) {\r\n itemFilter.update(newState);\r\n const query = itemFilter.generateQueryString();\r\n navigate(query, { replace: true });\r\n }\r\n setFilterState(newState);\r\n if (character != null) {\r\n dispatch(CharacterSpecificActions.filterItems(character, newState));\r\n }\r\n }\r\n \r\n const filteredItems = itemFilter.filter(allItems);\r\n return (\r\n <>\r\n {itemsError && There was an error loading items, you can try refreshing the page to reload them.}\r\n\r\n
    \r\n search({ ...filterState, types })} />\r\n\r\n search({ ...filterState, name })} />\r\n\r\n search({ ...filterState, description })} />\r\n\r\n search({ ...filterState, minCost, maxCost })} />\r\n\r\n search({ ...filterState, tags })} />\r\n\r\n search({ ...filterState, minWeight, maxWeight })} />\r\n
    \r\n\r\n {allItemsLoaded && }\r\n {!allItemsLoaded && !itemsError && Loading Items...}\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { ItemsRoute, LibraryRootRoute } from \"../navigation/LibraryRoutes\";\r\nimport { ItemPreview } from \"../../collection/characters/character-tools/items/preview/ItemPreview\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { ItemPreviewHeader } from \"../../collection/characters/character-tools/items/preview/ItemPreviewHeader\";\r\nimport { useLocation, useParams } from \"react-router\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const ItemViewer = () => {\r\n const location = useLocation();\r\n const params = useParams();\r\n const { items, allItemsLoaded } = useAppSelector((app: ApplicationState) => app.library);\r\n if (!allItemsLoaded) {\r\n return ;\r\n }\r\n\r\n let name = params[\"name\" as keyof typeof params] as string | undefined;\r\n if (name == undefined) {\r\n throw new Error(\"No item name provided.\");\r\n }\r\n name = STRING_UTILS.decodeNameFromURI(name);\r\n\r\n const item = items.find(i => i.name == name);\r\n \r\n if (item == undefined) {\r\n throw new Error(\"No item found.\");\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n )\r\n}","import React, { useEffect } from 'react';\r\nimport { ItemsView } from '../../characters/items/ItemsView';\r\nimport { Breadcrumbs } from '../navigation/BreadCrumbs';\r\nimport { ItemsRoute, LibraryRootRoute } from '../navigation/LibraryRoutes';\r\nimport { ItemViewer } from './ItemViewer';\r\nimport { Route, Routes } from 'react-router';\r\nimport { ApplicationState } from '../../../store/stores/ApplicationState';\r\nimport { LibraryActions } from '../../../store/stores/library/LibraryStore.Actions';\r\nimport { useAppDispatch, useAppSelector } from '../../../store/configureStore';\r\n\r\nexport const ItemsLibrary: React.FC = () => {\r\n const dispatch = useAppDispatch();\r\n const { allItemsLoaded } = useAppSelector((state: ApplicationState) => state.library);\r\n useEffect(() => {\r\n if (!allItemsLoaded) {\r\n dispatch(LibraryActions.loadItems());\r\n }\r\n }, [dispatch, allItemsLoaded]);\r\n return (\r\n \r\n } />\r\n } />\r\n \r\n );\r\n}\r\n\r\nconst LibraryItemsView = () => (\r\n <>\r\n \r\n

    Items

    \r\n \r\n \r\n)","import { PerkInitializer } from \"../library/perks/Perk\";\r\nimport { ObjectFilter, ObjectFilterInitializer } from \"./ObjectFilter\";\r\n\r\nexport interface PerkFilterInitializer extends ObjectFilterInitializer {\r\n tags: string[];\r\n}\r\n\r\nexport class PerkFilter extends ObjectFilter implements PerkFilterInitializer {\r\n public constructor(initializer: PerkFilterInitializer) {\r\n super(initializer);\r\n this.tags = initializer.tags;\r\n }\r\n\r\n public tags: string[];\r\n\r\n public static GetDefaultInitializer(): PerkFilterInitializer {\r\n return {\r\n name: '',\r\n tags: []\r\n };\r\n }\r\n\r\n public getInitializer(): PerkFilterInitializer {\r\n return {\r\n name: this.name,\r\n tags: this.tags\r\n };\r\n }\r\n\r\n public static CreateFilterFromQuery(query: URLSearchParams): PerkFilter {\r\n const name = query.get('name') ?? '';\r\n const tags = query.get('tags')?.split(',') ?? [];\r\n\r\n return new PerkFilter({ name, tags });\r\n }\r\n\r\n protected get tagsQuery(): string | null {\r\n return this.tags.length > 0 ? `tags=${this.tags.join(',')}` : null;\r\n }\r\n\r\n protected getQueryParams(): string[] {\r\n const queryParams = super.getQueryParams();\r\n if (this.tagsQuery) {\r\n queryParams.push(this.tagsQuery);\r\n }\r\n return queryParams;\r\n }\r\n\r\n public filterPerks(perks: PerkInitializer[]): PerkInitializer[] {\r\n let filteredPerks = [...perks];\r\n if (this.name != '') {\r\n filteredPerks = filteredPerks.filter(p => this.filterString(p.name, this.name));\r\n }\r\n if (this.tags.length > 0) {\r\n filteredPerks = filteredPerks.filter(p => this.filterTagArray(p.tags, this.tags));\r\n }\r\n return filteredPerks;\r\n }\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { PerkFilter, PerkFilterInitializer } from \"../../../entities/filters/PerkFilter\";\r\nimport { NameFilter } from \"../../characters/items/filters/NameFilter\";\r\nimport { useLocation, useNavigate } from \"react-router\";\r\ntype Props = {\r\n onFilter: (filter: PerkFilterInitializer) => unknown;\r\n useRoute?: boolean;\r\n}\r\n\r\nexport const PerkFiltersComponent = (props: Props) => {\r\n const { onFilter, useRoute } = props;\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n\r\n let initialState: PerkFilterInitializer;\r\n if (useRoute) {\r\n const query = new URLSearchParams(location.search);\r\n initialState = PerkFilter.CreateFilterFromQuery(query).getInitializer();\r\n }\r\n else {\r\n initialState = PerkFilter.GetDefaultInitializer();\r\n }\r\n\r\n const [state, setState] = useState(initialState);\r\n const [loaded, setLoaded] = useState(false);\r\n\r\n const search = (newState: PerkFilterInitializer) => {\r\n setState(newState);\r\n if (useRoute) {\r\n const query = new PerkFilter(newState).generateQueryString();\r\n navigate(query, { replace: true });\r\n }\r\n onFilter(newState);\r\n }\r\n\r\n useEffect(() => {\r\n if (loaded) {\r\n return;\r\n }\r\n search(state);\r\n setLoaded(true);\r\n }, [loaded, setLoaded, state, search]);\r\n\r\n return (\r\n
    \r\n search({ ...state, name })} />\r\n
    \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport { PerkInitializer } from \"../../../entities/library/perks/Perk\"\r\nimport { NoFilterResults } from \"../../filtering/NoFilterResults\";\r\nimport { ObjectIcons } from \"../../icons\";\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\";\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\n\r\ntype Props = {\r\n perks: PerkInitializer[];\r\n close?: () => unknown;\r\n}\r\n\r\nexport const PerkResults = (props: Props) => {\r\n const { perks, close } = props;\r\n\r\n const [expandeds, setExpandeds] = useState(perks.map(_ => false));\r\n const createSetExpanded = (index: number) => {\r\n return (expanded: boolean) => {\r\n expandeds.splice(index, 1, expanded);\r\n setExpandeds([...expandeds]);\r\n }\r\n }\r\n\r\n if (perks.length == 0) {\r\n return \r\n }\r\n\r\n const allExpanded = expandeds.every(e => e);\r\n const toggleAll = () => setExpandeds(perks.map(_ => !allExpanded));\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {!allExpanded && \"Expand All\"}\r\n {allExpanded && \"Collapse All\"}\r\n \r\n
    \r\n
    \r\n {perks.map((perk, index) => (\r\n {ObjectIcons.GetIcon(perk.icon)}{perk.name}}\r\n overrideExpanded={expandeds[index]} onToggle={createSetExpanded(index)}>\r\n {perk.description}\r\n \r\n ))}\r\n
    \r\n
    \r\n )\r\n}","import React from \"react\";\r\nimport { PerkInitializer } from \"../../../entities/library/perks/Perk\";\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\nimport { TagsComponent } from \"../../collection/characters/character-sheet/common/tags/TagsComponent\";\r\n\r\ntype Props = { perk: PerkInitializer }\r\n\r\nexport const PerkBlock = (props: Props) => {\r\n const { perk } = props;\r\n const { name, description, tags } = perk;\r\n return (\r\n
    \r\n
    {name}
    \r\n {description}\r\n \r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\nimport { SortedSet } from \"../../../entities/data-structures/SortedSet\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { LibraryRootRoute, PerksRoute } from \"../navigation/LibraryRoutes\";\r\nimport { PerkBlock } from \"./PerkBlock\";\r\nimport { useLocation, useParams } from \"react-router\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const PerkViewer = () => {\r\n const location = useLocation();\r\n const params = useParams();\r\n const { perks, allPerksLoaded } = useAppSelector((app: ApplicationState) => app.library);\r\n if (!allPerksLoaded) {\r\n return \r\n }\r\n\r\n let name = params[\"name\"] as string | undefined;\r\n if (name == undefined) {\r\n throw new Error(\"No perk name provided.\");\r\n }\r\n name = STRING_UTILS.decodeNameFromURI(name);\r\n\r\n const set = new SortedSet(perks);\r\n const perk = set.getByName(name);\r\n if (perk == undefined) {\r\n throw new Error(\"No perk found.\");\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\"\r\nimport { PerkFiltersComponent } from \"./PerkFiltersComponent\"\r\nimport { PerkFilter } from \"../../../entities/filters/PerkFilter\"\r\nimport { LibraryActions } from \"../../../store/stores/library/LibraryStore.Actions\"\r\nimport { PerkResults } from \"./PerkResults\"\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\"\r\nimport { LibraryRootRoute, PerksRoute } from \"../navigation/LibraryRoutes\"\r\nimport { PerkViewer } from \"./PerkViewer\"\r\nimport { Route, Routes } from \"react-router\"\r\nimport { Loader } from \"../../theming/loader/Loader\"\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\"\r\n\r\nexport const PerksLibrary = () => {\r\n const dispatch = useAppDispatch();\r\n const { perks, allPerksLoaded } = useAppSelector(app => app.library);\r\n\r\n useEffect(() => {\r\n if (!allPerksLoaded) {\r\n dispatch(LibraryActions.loadPerks());\r\n }\r\n }, [dispatch, allPerksLoaded]);\r\n\r\n const [filter, setFilter] = useState(new PerkFilter(PerkFilter.GetDefaultInitializer()));\r\n const filteredPerks = filter.filterPerks(perks);\r\n\r\n return (\r\n \r\n } />\r\n \r\n \r\n

    Perks

    \r\n setFilter(new PerkFilter(initializer))} useRoute />\r\n {allPerksLoaded && }\r\n {!allPerksLoaded && Loading Perks}\r\n } />\r\n
    \r\n )\r\n}","import { Personality } from \"../library/socials/Personality\";\r\nimport { ObjectFilter, ObjectFilterInitializer } from \"./ObjectFilter\";\r\n\r\nexport class PersonalityFilter extends ObjectFilter {\r\n public filter(conditions: Personality[]) {\r\n return super.filterBase(conditions);\r\n }\r\n}","import React, { useState } from \"react\";\r\nimport { NoFilterResults } from \"../../filtering/NoFilterResults\";\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\";\r\nimport { Personality } from \"../../../entities/library/socials/Personality\";\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\n\r\ntype Props = {\r\n personalities: Personality[];\r\n close?: () => unknown;\r\n}\r\n\r\nexport const PersonalityResults = (props: Props) => {\r\n const { personalities, close } = props;\r\n\r\n const [expandeds, setExpandeds] = useState(personalities.map(_ => false));\r\n const createSetExpanded = (index: number) => {\r\n return (expanded: boolean) => {\r\n expandeds.splice(index, 1, expanded);\r\n setExpandeds([...expandeds]);\r\n }\r\n }\r\n\r\n if (personalities.length == 0) {\r\n return \r\n }\r\n\r\n const allExpanded = expandeds.every(e => e);\r\n const toggleAll = () => setExpandeds(personalities.map(_ => !allExpanded));\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n {!allExpanded && \"Expand All\"}\r\n {allExpanded && \"Collapse All\"}\r\n \r\n
    \r\n
    \r\n {personalities.map((condition, index) => (\r\n \r\n {condition.description}\r\n \r\n ))}\r\n
    \r\n
    \r\n )\r\n}","import React from \"react\"\r\nimport { AbilityContainer } from \"../../../entities/abilities/AbilityContainer\"\r\nimport { CollapsibleRegion } from \"../../articles/CollapsibleRegion\"\r\nimport { CharacterAbilityView } from \"../../collection/characters/character-sheet/main-section/CharacterAbilityView\"\r\n\r\ntype Props = {\r\n entity: AbilityContainer\r\n}\r\n\r\nexport const AbilityCollection = (props: Props) => {\r\n const { entity } = props;\r\n const { activeAbilities, reactiveAbilities, passiveAbilities } = entity;\r\n const hasActiveAbilities = (activeAbilities?.length ?? 0) > 0;\r\n const activeAbilitiesExpanded = activeAbilities!.length == 1;\r\n\r\n const hasReactiveAbilities = (reactiveAbilities?.length ?? 0) > 0;\r\n const reactiveAbilitiesExpanded = reactiveAbilities!.length == 1;\r\n\r\n const hasPassiveAbilities = (passiveAbilities?.length ?? 0) > 0;\r\n const passiveAbilitiesExpanded = passiveAbilities!.length == 1;\r\n return (\r\n <>\r\n {hasActiveAbilities && \r\n \r\n {activeAbilities!.map(a => )}\r\n \r\n }\r\n {hasReactiveAbilities &&\r\n \r\n {reactiveAbilities!.map(r => )}\r\n \r\n }\r\n {hasPassiveAbilities &&\r\n \r\n {passiveAbilities!.map(p => )}\r\n \r\n }\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { Personality } from \"../../../entities/library/socials/Personality\"\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\nimport { AbilityCollection } from \"../abilities/AbilityCollection\";\r\n\r\ntype Props = { personality: Personality }\r\n\r\nexport const PersonalityBlock = (props: Props) => {\r\n const { personality } = props;\r\n const { name, description, positive } = personality;\r\n return (\r\n
    \r\n
    {name}
    \r\n {!positive && }\r\n {description}\r\n \r\n
    \r\n )\r\n}","import React from \"react\";\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { decodeNameFromURI } from \"../../../utils/StringUtilities\";\r\nimport { SortedSet } from \"../../../entities/data-structures/SortedSet\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { LibraryRootRoute, PersonalitiesRoute } from \"../navigation/LibraryRoutes\";\r\nimport { PersonalityBlock } from \"./PersonalityBlock\";\r\nimport { useLocation, useParams } from \"react-router\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const PersonalityViewer = () => {\r\n const location = useLocation();\r\n const params = useParams();\r\n const { personalities, allPersonalitiesLoaded } = useAppSelector((app: ApplicationState) => app.library);\r\n if (!allPersonalitiesLoaded) {\r\n return ;\r\n }\r\n\r\n let name = params[\"name\"] as string | undefined;\r\n if (name == undefined) {\r\n throw new Error(\"No personality name provided.\");\r\n }\r\n name = decodeNameFromURI(name);\r\n\r\n const set = new SortedSet(personalities);\r\n const personality = set.getByName(name);\r\n if (personality == undefined) {\r\n throw new Error(\"No personality found.\");\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\"\r\nimport { LibraryActions } from \"../../../store/stores/library/LibraryStore.Actions\"\r\nimport { PersonalityFilter } from \"../../../entities/filters/PersonalityFilter\"\r\nimport { PersonalityResults } from \"./PersonalityResults\"\r\nimport { PersonalityViewer } from \"./PersonalityViewer\"\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\"\r\nimport { LibraryRootRoute, PersonalitiesRoute } from \"../navigation/LibraryRoutes\"\r\nimport { Route, Routes, useLocation, useNavigate } from \"react-router\"\r\nimport { Loader } from \"../../theming/loader/Loader\"\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\"\r\nimport { NameFilter } from \"../../characters/items/filters/NameFilter\"\r\nimport { ObjectFilter, ObjectFilterInitializer } from \"../../../entities/filters/ObjectFilter\"\r\n\r\nexport const PersonalitiesLibrary = () => {\r\n const { personalities: allPersonalities, allPersonalitiesLoaded, personalitiesError } = useAppSelector(app => app.library);\r\n\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n const dispatch = useAppDispatch();\r\n\r\n useEffect(() => {\r\n if (!allPersonalitiesLoaded) {\r\n dispatch(LibraryActions.loadPersonalities());\r\n }\r\n }, [dispatch, allPersonalitiesLoaded]);\r\n\r\n const query = new URLSearchParams(location.search);\r\n const [filterState, setFilterState] = useState(ObjectFilter.CreateFilterFromQuery(query));\r\n const personalityFilter = new PersonalityFilter(filterState);\r\n\r\n const search = (newState: ObjectFilterInitializer) => {\r\n personalityFilter.update(newState);\r\n const query = personalityFilter.generateQueryString();\r\n navigate(query, { replace: true });\r\n setFilterState(newState);\r\n }\r\n\r\n const filteredPersonalities = personalityFilter.filter(allPersonalities);\r\n return (\r\n \r\n } />\r\n \r\n \r\n

    Personalities

    \r\n
    \r\n search({ ...filterState, name })} />\r\n
    \r\n {allPersonalitiesLoaded && }\r\n {!allPersonalitiesLoaded && Loading Personalities}\r\n } /> \r\n
    \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { LibraryActions } from \"../../../store/stores/library/LibraryStore.Actions\";\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\";\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const RhetoricsLibrary = () => {\r\n const dispatch = useAppDispatch();\r\n const { rhetorics, allRhetoricsLoaded } = useAppSelector(app => app.library);\r\n\r\n useEffect(() => {\r\n if (!allRhetoricsLoaded) {\r\n dispatch(LibraryActions.loadRhetorics());\r\n }\r\n }, [dispatch, allRhetoricsLoaded]);\r\n\r\n const [expandeds, setExpandeds] = useState(rhetorics.map(_ => false));\r\n const createSetExpanded = (index: number) => {\r\n return (expanded: boolean) => {\r\n expandeds.splice(index, 1, expanded);\r\n setExpandeds([...expandeds]);\r\n }\r\n }\r\n\r\n const allExpanded = expandeds.every(e => e);\r\n const toggleAll = () => setExpandeds(rhetorics.map(_ => !allExpanded));\r\n \r\n return (\r\n
    \r\n

    Rhetorics

    \r\n {allRhetoricsLoaded && (\r\n
    \r\n
    \r\n \r\n {!allExpanded && \"Expand All\"}\r\n {allExpanded && \"Collapse All\"}\r\n \r\n
    \r\n
    \r\n {rhetorics.map((rhetoric, index) => (\r\n \r\n {rhetoric.description}\r\n \r\n ))}\r\n
    \r\n
    \r\n )}\r\n
    \r\n )\r\n}","import { SkillInitializer } from \"../library/skills/Skill\";\r\nimport { ObjectFilter, ObjectFilterInitializer } from \"./ObjectFilter\";\r\n\r\nexport class SkillFilter extends ObjectFilter implements ObjectFilterInitializer {\r\n public constructor(initializer: ObjectFilterInitializer) {\r\n super(initializer);\r\n }\r\n\r\n public static GetDefaultInitializer(): ObjectFilterInitializer {\r\n return {\r\n name: ''\r\n };\r\n }\r\n\r\n public getInitializer(): ObjectFilterInitializer {\r\n return {\r\n name: this.name\r\n };\r\n }\r\n\r\n public static CreateFilterFromQuery(query: URLSearchParams): SkillFilter {\r\n const name = query.get('name') ?? '';\r\n return new SkillFilter({ name });\r\n }\r\n\r\n public filterSkills(skills: SkillInitializer[]): SkillInitializer[] {\r\n let filteredSkills = [...skills];\r\n if (this.name != '') {\r\n filteredSkills = filteredSkills.filter(s => this.filterString(s.name, this.name));\r\n }\r\n return filteredSkills;\r\n }\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { ObjectFilterInitializer } from \"../../../entities/filters/ObjectFilter\"\r\nimport { SkillFilter } from \"../../../entities/filters/SkillFiilter\";\r\nimport { NameFilter } from \"../../characters/items/filters/NameFilter\";\r\nimport { useLocation, useNavigate } from \"react-router\";\r\n\r\ntype Props = {\r\n onFilter: (filter: ObjectFilterInitializer) => unknown;\r\n useRoute?: boolean;\r\n}\r\n\r\nexport const SkillFiltersComponent = (props: Props) => {\r\n const { onFilter, useRoute } = props;\r\n const navigate = useNavigate();\r\n const location = useLocation();\r\n\r\n let initialState: ObjectFilterInitializer;\r\n if (useRoute) {\r\n const query = new URLSearchParams(location.search);\r\n initialState = SkillFilter.CreateFilterFromQuery(query).getInitializer();\r\n }\r\n else {\r\n initialState = SkillFilter.GetDefaultInitializer();\r\n }\r\n\r\n const [state, setState] = useState(initialState);\r\n const [loaded, setLoaded] = useState(false);\r\n\r\n const search = (newState: ObjectFilterInitializer) => {\r\n setState(newState);\r\n if (useRoute) {\r\n const query = new SkillFilter(newState).generateQueryString();\r\n navigate(query, { replace: true });\r\n }\r\n onFilter(newState);\r\n }\r\n\r\n useEffect(() => {\r\n if (loaded) {\r\n return;\r\n }\r\n search(state);\r\n setLoaded(true);\r\n }, [loaded, setLoaded, state, search]);\r\n\r\n return (\r\n
    \r\n search({ ...state, name })} />\r\n
    \r\n )\r\n}","import React from \"react\"\r\nimport { SkillInitializer } from \"../../../entities/library/skills/Skill\"\r\nimport { CollapsibleRegion } from \"../../articles/CollapsibleRegion\"\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\"\r\nimport { CharacterAbilityView } from \"../../collection/characters/character-sheet/main-section/CharacterAbilityView\"\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\"\r\n\r\ntype Props = {\r\n skill: SkillInitializer;\r\n expanded?: boolean;\r\n}\r\n\r\nexport const SkillBlock = (props: Props) => {\r\n const { skill, expanded } = props;\r\n const skillFeatures = skill.featuresByLevel.map(sf => (\r\n \r\n {sf.activeAbilities.map(a => )}\r\n {sf.passiveAbilities.map(a => )}\r\n {sf.reactiveAbilities.map(a => )}\r\n \r\n ))\r\n return (\r\n \r\n {skill.description}\r\n {skillFeatures}\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { SkillInitializer } from \"../../../entities/library/skills/Skill\"\r\nimport { NoFilterResults } from \"../../filtering/NoFilterResults\";\r\nimport { SkillBlock } from \"./SkillBlock\";\r\n\r\ntype Props = {\r\n skills: SkillInitializer[];\r\n}\r\n\r\nexport const SkillResults = (props: Props) => {\r\n const { skills } = props;\r\n\r\n if (skills.length == 0) {\r\n return ;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {skills.map(skill => )}\r\n
    \r\n
    \r\n )\r\n}","import { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\nimport { SortedSet } from \"../../../entities/data-structures/SortedSet\";\r\nimport React from \"react\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { LibraryRootRoute, SkillsRoute } from \"../navigation/LibraryRoutes\";\r\nimport { SkillBlock } from \"./SkillBlock\";\r\nimport { useLocation, useParams } from \"react-router\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const SkillViewer = () => {\r\n const location = useLocation();\r\n const params = useParams();\r\n const { skills, allSkillsLoaded } = useAppSelector((app: ApplicationState) => app.library);\r\n if (!allSkillsLoaded) {\r\n return null;\r\n }\r\n\r\n let name = params[\"name\" as keyof typeof params] as string | undefined;\r\n if (name == undefined) {\r\n throw new Error(\"No skill name provided.\");\r\n }\r\n name = STRING_UTILS.decodeNameFromURI(name);\r\n\r\n const set = new SortedSet(skills);\r\n const skill = set.getByName(name);\r\n if (skill == undefined) {\r\n throw new Error(\"No skill found.\");\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { LibraryActions } from \"../../../store/stores/library/LibraryStore.Actions\";\r\nimport { SkillFilter } from \"../../../entities/filters/SkillFiilter\";\r\nimport { SkillFiltersComponent } from \"./SkillFiltersComponent\";\r\nimport { SkillResults } from \"./SkillResults\";\r\nimport { SkillViewer } from \"./SkillViewer\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { LibraryRootRoute, SkillsRoute } from \"../navigation/LibraryRoutes\";\r\nimport { Route, Routes } from \"react-router\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const SkillsLibrary = () => {\r\n const dispatch = useAppDispatch();\r\n const [loaded, setLoaded] = useState(false);\r\n const { skills } = useAppSelector(app => app.library);\r\n\r\n useEffect(() => {\r\n if (!skills.any() && !loaded) {\r\n dispatch(LibraryActions.loadSkills());\r\n }\r\n setLoaded(true);\r\n }, [dispatch, skills]);\r\n\r\n const [filter, setFilter] = useState(new SkillFilter(SkillFilter.GetDefaultInitializer()));\r\n const filteredSkills = filter.filterSkills(skills);\r\n\r\n return (\r\n \r\n } />\r\n \r\n \r\n

    Skills

    \r\n setFilter(new SkillFilter(initializer))} useRoute />\r\n {loaded && }\r\n {!loaded && Loading Skills}\r\n } />\r\n
    \r\n )\r\n}","import React from \"react\";\r\nimport { Npc } from \"../../../entities/library/books/NPC\"\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\";\r\n\r\ntype Props = {\r\n npc: Npc\r\n}\r\n\r\nexport const BookNpcView = (props: Props) => {\r\n const {name, description, statBlockId} = props.npc;\r\n return (\r\n \r\n {description}\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { StoryNode } from \"../../../entities/library/books/StoryNode\"\r\nimport { Npc } from \"../../../entities/library/books/NPC\";\r\nimport { BookNpcView } from \"./BookNpcView\";\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\n\r\ntype Props = {\r\n node: StoryNode;\r\n npcs: Npc[];\r\n}\r\n\r\nexport const StoryNodeView = (props: Props) => {\r\n const {name, description, npcIds} = props.node;\r\n const npcs = props.npcs.filter(npc => npcIds.contains(npc.id));\r\n return (\r\n \r\n {description}\r\n {npcs.map(npc => (\r\n \r\n ))}\r\n \r\n );\r\n}","import React from \"react\";\r\nimport { Npc } from \"../../../entities/library/books/NPC\";\r\nimport { StoryNode } from \"../../../entities/library/books/StoryNode\"\r\nimport { StoryNodeView } from \"./StoryNodeView\";\r\n\r\ntype Props = {\r\n nodes: StoryNode[];\r\n npcs: Npc[];\r\n}\r\n\r\nexport const StoryNodesContainer = (props: Props) => {\r\n const { nodes, npcs } = props;\r\n return (\r\n
    \r\n

    Nodes

    \r\n {nodes.map(node => )}\r\n
    \r\n )\r\n}","import React from \"react\";\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\nimport { StoryNodesContainer } from \"./StoryNodesContainer\";\r\nimport { Chapter } from \"../../../entities/library/books/Chapter\";\r\nimport { Npc } from \"../../../entities/library/books/NPC\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\n\r\ntype Props = {\r\n chapters: Chapter[];\r\n chapter: Chapter;\r\n npcs: Npc[];\r\n}\r\n\r\nexport const BookChapterView = (props: Props) => {\r\n const { chapter, chapters, npcs } = props;\r\n const index = chapters.indexOf(chapter) + 1;\r\n\r\n const {name, text, nodes} = chapter;\r\n return (\r\n
    \r\n

    Chapter {index}: {name}

    \r\n {text}\r\n \r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { BooksRoute, LibraryRootRoute } from \"../navigation/LibraryRoutes\";\r\nimport { useLocation, useParams } from \"react-router\";\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\nimport { SortedSet } from \"../../../entities/data-structures/SortedSet\";\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\nimport { BookChapterView } from \"./BookChapterView\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const BookView = () => {\r\n const location = useLocation();\r\n const params = useParams();\r\n const { books, allBooksLoaded } = useAppSelector((app: ApplicationState) => app.library);\r\n if (!allBooksLoaded) {\r\n return \r\n }\r\n\r\n let bookName = params[\"name\"] as string | undefined;\r\n if (bookName == undefined) {\r\n throw new Error(\"No book name provided.\");\r\n }\r\n bookName = STRING_UTILS.decodeNameFromURI(bookName);\r\n\r\n const set = new SortedSet(books);\r\n const book = set.getByName(bookName);\r\n if (book == undefined) {\r\n throw new Error(\"No book found.\");\r\n }\r\n\r\n const { name, published, description, chapters } = book;\r\n const publishDate = new Date(published);\r\n return (\r\n <>\r\n \r\n

    {name}

    \r\n Published {publishDate.toDateString()}\r\n {description}\r\n {chapters.map(chapter => (\r\n \r\n ))}\r\n \r\n );\r\n}","import React from \"react\";\r\nimport { useLocation, useParams } from \"react-router\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { NoFilterResults } from \"../../filtering/NoFilterResults\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const BookResults = () => {\r\n const location = useLocation();\r\n const params = useParams();\r\n const { books, allBooksLoaded } = useAppSelector(app => app.library);\r\n if (!allBooksLoaded) {\r\n return \r\n }\r\n else if (books.length == 0) {\r\n return \r\n }\r\n\r\n return (\r\n
    \r\n

    Books

    \r\n
      \r\n {books.map(b => (\r\n
    • \r\n {b.name}\r\n
    • \r\n ))}\r\n
    \r\n
    \r\n );\r\n}","import React, { useEffect } from \"react\";\r\nimport { Route, Routes } from \"react-router\";\r\nimport { LibraryActions } from \"../../../store/stores/library/LibraryStore.Actions\";\r\nimport { BookView } from \"./BookView\";\r\nimport { BookResults } from \"./BookResults\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const BookLibrary = () => {\r\n const dispatch = useAppDispatch();\r\n const { allBooksLoaded } = useAppSelector(app => app.library);\r\n\r\n useEffect(() => {\r\n if (!allBooksLoaded) {\r\n dispatch(LibraryActions.loadBooks());\r\n }\r\n }, [allBooksLoaded]);\r\n\r\n return (\r\n \r\n } />\r\n } />\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { EnemyAbility } from \"./EnemyAbilities\"\r\nimport { DamageTypeSuiteComponent } from \"../../../components/collection/characters/character-tools/items/info/DamageTypeSuite\";\r\nimport { CollapsibleSection } from \"../../../components/articles/CollapsibleSection\";\r\nimport { MarkdownContainer } from \"../../../components/theming/MarkdownContainer\";\r\n\r\ntype Props = {\r\n ability: EnemyAbility;\r\n expanded?: boolean;\r\n overrideExpanded?: boolean;\r\n onToggle?: (expanded: boolean) => unknown;\r\n}\r\n\r\nexport const EnemyAbilityView = (props: Props) => {\r\n const { ability, expanded, overrideExpanded, onToggle } = props;\r\n const expandedInitially = expanded ?? false;\r\n return (\r\n } overrideExpanded={overrideExpanded} onToggle={onToggle} expandedInitially={expandedInitially}>\r\n {ability.type == 'Reaction' && (\r\n
    \r\n  \r\n {ability.triggerCondition}\r\n
    \r\n )}\r\n {ability.description}\r\n {ability.damageSuite?.any() && }\r\n {ability.range &&
     {ability.range}
    }\r\n
    \r\n )\r\n}\r\n\r\ntype HeaderProps = { ability: EnemyAbility }\r\n\r\nconst EnemyAbilityHeader = (props: HeaderProps) => {\r\n const { ability } = props;\r\n return (\r\n
    \r\n {ability.name} {ability.cost != 'None' && <>({ability.cost} Complication)}\r\n {ability.damageSuite?.any() && (<> - )}\r\n
    \r\n );\r\n}","export type CreatureType = 'Humanoid'\r\n | 'Robot'\r\n | 'Aberration'\r\n | 'Beast'\r\n | 'Undead';\r\n\r\nexport const CreatureTypeCollection: CreatureType[] = [\r\n 'Humanoid',\r\n 'Robot',\r\n 'Aberration',\r\n 'Beast',\r\n 'Undead'\r\n]\r\n\r\nexport const CreatureTypeOptions = CreatureTypeCollection.map(ct => ({ name: ct, value: ct }));","import React from \"react\";\r\nimport { Enemy } from \"./Enemy\";\r\nimport { EnemyAbilityView } from \"./EnemyAbilityView\";\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { CreatureTypeCollection } from \"../../characters/CreatureType\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\n\r\ntype Props = { enemy: Enemy }\r\n\r\nexport const StatBlock = (props: Props) => {\r\n const { enemy } = props;\r\n const { name, description,\r\n level, health, healthScale,\r\n armor, resilience, empowerment,\r\n movement, activeAbilities, commonActiveAbilities,\r\n reactiveAbilities, commonReactiveAbilities, passiveAbilities,\r\n commonPassiveAbilities, tags } = enemy;\r\n \r\n let { enemyActiveAbilities, enemyReactiveAbilities, enemyPassiveAbilities } = useAppSelector((app: ApplicationState) => app.library);\r\n enemyActiveAbilities = enemyActiveAbilities.filter(eaa => commonActiveAbilities.any(caa => caa == eaa.id))\r\n enemyReactiveAbilities = enemyReactiveAbilities.filter(eaa => commonReactiveAbilities.any(caa => caa == eaa.id))\r\n enemyPassiveAbilities = enemyPassiveAbilities.filter(eaa => commonPassiveAbilities.any(caa => caa == eaa.id))\r\n const actions = [...activeAbilities, ...enemyActiveAbilities];\r\n const reactions = [...reactiveAbilities, ...enemyReactiveAbilities];\r\n const passives = [...passiveAbilities, ...enemyPassiveAbilities];\r\n const creatureTypes = tags.intersection(CreatureTypeCollection);\r\n return (\r\n
    \r\n
    {name}
    \r\n
     {level}
    \r\n
     {creatureTypes.join(\", \")}
    \r\n
     {description}
    \r\n
    \r\n {health}\r\n {armor}\r\n {healthScale} / level\r\n {resilience}\r\n {movement}\r\n {empowerment}\r\n
    \r\n {actions.any() && <>\r\n
    Actions
    \r\n {actions.map(a => )}\r\n }\r\n\r\n {reactions.any() && <>\r\n
    Reactions
    \r\n {reactions.map(a => )}\r\n }\r\n\r\n {passives.any() && <>\r\n
    Passives
    \r\n {passives.map(a => )}\r\n }\r\n
    \r\n );\r\n}","import React, { useEffect } from \"react\"\r\nimport { LibraryActions } from \"../../../store/stores/library/LibraryStore.Actions\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { EnemiesRoute, LibraryRootRoute } from \"../navigation/LibraryRoutes\";\r\nimport { useLocation, useParams } from \"react-router\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\nimport { SortedSet } from \"../../../entities/data-structures/SortedSet\";\r\nimport { StatBlock } from \"../../../entities/library/enemies/StatBlock\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const EnemyViewer = () => {\r\n const location = useLocation();\r\n const params = useParams();\r\n const dispatch = useAppDispatch();\r\n const { enemies, allEnemiesLoaded } = useAppSelector(app => app.library);\r\n\r\n useEffect(() => {\r\n if (!allEnemiesLoaded) {\r\n dispatch(LibraryActions.loadEnemies());\r\n }\r\n }, [dispatch, allEnemiesLoaded]);\r\n\r\n if (!allEnemiesLoaded) {\r\n return ;\r\n }\r\n \r\n let name = params[\"name\"] as string | undefined;\r\n if (name == undefined) {\r\n throw new Error(\"No enemy name provided.\");\r\n }\r\n name = STRING_UTILS.decodeNameFromURI(name);\r\n\r\n const set = new SortedSet(enemies);\r\n const enemy = set.getByName(name);\r\n if (enemy == undefined) {\r\n throw new Error(\"No hazard found.\");\r\n }\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n )\r\n}","import { RecordStatus } from \"../RecordStatus\";\r\nimport { Comparator, isComparator } from \"../Utilities\";\r\nimport { Enemy } from \"../library/enemies/Enemy\";\r\nimport { ObjectFilter, ObjectFilterInitializer } from \"./ObjectFilter\";\r\n\r\nexport interface EnemyFilterInitializer extends ObjectFilterInitializer {\r\n level: number;\r\n levelComparator: Comparator | null;\r\n tags: string[];\r\n}\r\n\r\nexport class EnemyFilter extends ObjectFilter {\r\n public constructor(initializer: EnemyFilterInitializer) {\r\n super(initializer);\r\n this.level = initializer.level;\r\n this.levelComparator = initializer.levelComparator;\r\n this.tags = initializer.tags;\r\n }\r\n\r\n public level: number;\r\n public levelComparator: Comparator | null;\r\n public tags: string[];\r\n\r\n private static readonly DefaultLevel: number = 1;\r\n private static readonly DefaultLevelComparator: Comparator | null = null;\r\n private static readonly DefaultTags: string[] = [];\r\n\r\n public static GetDefaultInitializer(): EnemyFilterInitializer {\r\n return {\r\n ...ObjectFilter.GetDefaultInitializer(),\r\n level: this.DefaultLevel,\r\n levelComparator: this.DefaultLevelComparator,\r\n tags: this.DefaultTags,\r\n }\r\n }\r\n\r\n public getInitializer(): EnemyFilterInitializer {\r\n return {\r\n ...super.getInitializer(),\r\n level: this.level,\r\n levelComparator: this.levelComparator,\r\n tags: this.tags,\r\n }\r\n }\r\n\r\n public static CreateFilterFromQuery(query: URLSearchParams): EnemyFilter {\r\n const name = query.get(\"name\") ?? \"\";\r\n const level = parseInt(query.get(\"level\") ?? this.DefaultLevel.toString());\r\n const testLevelComparator = query.get(\"levelComparator\") ?? \"\";\r\n const levelComparator: Comparator | null = isComparator(testLevelComparator)\r\n ? testLevelComparator\r\n : null;\r\n\r\n const tags = query.get(\"tags\")?.split(',') ?? [];\r\n \r\n return new EnemyFilter({\r\n name,\r\n level,\r\n levelComparator,\r\n tags\r\n })\r\n }\r\n\r\n public filter(enemies: Enemy[]): Enemy[] {\r\n let filteredEnemies = super.filterBase(enemies);\r\n filteredEnemies = filteredEnemies.filter(enemy => enemy.recordStatus == RecordStatus.Published);\r\n filteredEnemies = filteredEnemies.filter(this.filterEnemyLevel);\r\n\r\n if (this.tags.length > 0) {\r\n filteredEnemies = filteredEnemies.filter(enemy => this.filterTagArray(enemy.tags, this.tags));\r\n }\r\n return filteredEnemies;\r\n }\r\n\r\n private filterEnemyLevel = (enemy: Enemy) => {\r\n switch (this.levelComparator) {\r\n case \">\":\r\n return enemy.level > this.level;\r\n case \"<\":\r\n return enemy.level < this.level;\r\n case \">=\":\r\n return enemy.level >= this.level;\r\n case \"<=\":\r\n return enemy.level <= this.level;\r\n case \"==\":\r\n return enemy.level == this.level;\r\n case \"!=\":\r\n return enemy.level != this.level;\r\n default:\r\n return true;\r\n }\r\n }\r\n}","import React from \"react\"\r\nimport { EnemyFilterInitializer } from \"../../../entities/filters/EnemyFilter\"\r\nimport { NameFilter } from \"../../characters/items/filters/NameFilter\";\r\nimport { TagsFilter } from \"../../characters/items/filters/TagsFilter\";\r\n\r\ntype Props = {\r\n filter: EnemyFilterInitializer;\r\n updateFilter: (filter: EnemyFilterInitializer) => unknown;\r\n}\r\n\r\nexport const EnemyFilterComponent = (props: Props) => {\r\n const { filter, updateFilter } = props;\r\n return (\r\n
    \r\n updateFilter({ ...filter, name })} />\r\n updateFilter({ ...filter, tags })} />\r\n
    \r\n )\r\n}","import React, { useState } from \"react\"\r\nimport { EnemyFilter } from \"../../../entities/filters/EnemyFilter\";\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { Link, useLocation, useNavigate } from \"react-router-dom\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { EnemyFilterComponent } from \"./EnemyFilterComponent\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const EnemyResults = () => {\r\n const location = useLocation();\r\n const navigate = useNavigate();\r\n const { enemies, allEnemiesLoaded } = useAppSelector((state: ApplicationState) => state.library);\r\n const query = new URLSearchParams(location.search);\r\n let queryFilter = EnemyFilter.CreateFilterFromQuery(query);\r\n const queryInitializer = queryFilter.getInitializer();\r\n const [filter, setFilter] = useState(queryInitializer);\r\n\r\n queryFilter = new EnemyFilter(filter);\r\n // navigate(queryFilter.generateQueryString(), { replace: true });\r\n\r\n const filteredEnemies = queryFilter.filter(enemies);\r\n return (\r\n
    \r\n {!allEnemiesLoaded && }\r\n {allEnemiesLoaded && <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {filteredEnemies.map(enemy => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    NameLevelTags
    {enemy.name}{enemy.level}{enemy.tags.join(', ')}View
    \r\n }\r\n
    \r\n )\r\n}","import { Route, Routes } from \"react-router\";\r\nimport React, { useEffect } from \"react\";\r\nimport { EnemyViewer } from \"./EnemyViewer\";\r\nimport { EnemyResults } from \"./EnemyResults\";\r\nimport { LibraryActions } from \"../../../store/stores/library/LibraryStore.Actions\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const EnemiesLibrary = () => {\r\n const dispatch = useAppDispatch();\r\n \r\n const { allEnemiesLoaded } = useAppSelector(app => app.library);\r\n useEffect(() => {\r\n if (!allEnemiesLoaded) {\r\n dispatch(LibraryActions.loadEnemies());\r\n }\r\n }, [dispatch, allEnemiesLoaded]);\r\n return (\r\n \r\n } />\r\n } />\r\n \r\n )\r\n}\r\n","import { useEffect } from \"react\";\r\nimport { LibraryActions } from \"../../../store/stores/library/LibraryStore.Actions\";\r\nimport React from \"react\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const ScenarioResults = () => {\r\n const dispatch = useAppDispatch();\r\n const { scenarios, allScenariosLoaded } = useAppSelector(app => app.library);\r\n\r\n useEffect(() => {\r\n if (!allScenariosLoaded) {\r\n dispatch(LibraryActions.loadScenarios());\r\n }\r\n }, [allScenariosLoaded]);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {scenarios.map(scenario => (\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
    NameTags
    {scenario.name}{scenario.tags.join(', ')}View
    \r\n
    \r\n )\r\n}","import { useLocation, useParams } from \"react-router\";\r\nimport { useEffect } from \"react\";\r\nimport { LibraryActions } from \"../../../store/stores/library/LibraryStore.Actions\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\nimport { SortedSet } from \"../../../entities/data-structures/SortedSet\";\r\nimport React from \"react\";\r\nimport { Breadcrumbs } from \"../navigation/BreadCrumbs\";\r\nimport { LibraryRootRoute, ScenariosRoute } from \"../navigation/LibraryRoutes\";\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const ScenarioViewer = () => {\r\n const location = useLocation();\r\n const params = useParams();\r\n const dispatch = useAppDispatch();\r\n const { scenarios, allScenariosLoaded } = useAppSelector(app => app.library);\r\n\r\n useEffect(() => {\r\n if (!allScenariosLoaded) {\r\n dispatch(LibraryActions.loadScenarios());\r\n }\r\n }, [dispatch, allScenariosLoaded]);\r\n\r\n if (!allScenariosLoaded) {\r\n return ;\r\n }\r\n\r\n let name = params[\"name\"] as string | undefined;\r\n if (name == undefined) {\r\n throw new Error(\"No scenario name provided.\");\r\n }\r\n name = STRING_UTILS.decodeNameFromURI(name);\r\n\r\n const set = new SortedSet(scenarios);\r\n const scenario = set.getByName(name);\r\n if (scenario == undefined) {\r\n throw new Error(\"No scenario found.\");\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n

    {scenario.name}

    \r\n {scenario.contents}\r\n
    \r\n \r\n )\r\n}","import React from \"react\"\r\nimport { Route, Routes } from \"react-router\"\r\nimport { ScenarioResults } from \"./ScenarioResults\"\r\nimport { ScenarioViewer } from \"./ScenarioViewer\"\r\n\r\nexport const ScenariosLibrary = () => {\r\n return (\r\n \r\n } />\r\n } />\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { CompetenciesLibrary } from \"../competency\";\r\nimport { ConditionsLibrary } from \"../condition\";\r\nimport { HazardsLibrary } from \"../hazards\";\r\nimport { ItemsLibrary } from \"../items\";\r\nimport { PerksLibrary } from \"../perks\";\r\nimport { PersonalitiesLibrary } from \"../personalities\";\r\nimport { RhetoricsLibrary } from \"../rhetoric\";\r\nimport { SkillsLibrary } from \"../skills\";\r\nimport { BookLibrary } from \"../books\";\r\nimport { EnemiesLibrary } from \"../enemies\";\r\nimport { ScenariosLibrary } from \"../scenarios\";\r\n\r\nexport const LibraryRootRoute = new ArticleNavLink({\r\n path: '/Library',\r\n name: 'Library'\r\n});\r\n\r\nexport const BooksRoute = new ArticleNavLink({\r\n path: \"Books\",\r\n name: \"Books\",\r\n render: () => ,\r\n});\r\n\r\nexport const ItemsRoute = new ArticleNavLink({\r\n path: 'Items',\r\n name: 'Items',\r\n render: () => ,\r\n});\r\n\r\nexport const PersonalitiesRoute = new ArticleNavLink({\r\n path: 'Personalities',\r\n name: 'Personalities',\r\n render: () => ,\r\n});\r\n\r\nexport const PerksRoute = new ArticleNavLink({\r\n path: 'Perks',\r\n name: 'Perks',\r\n render: () => ,\r\n});\r\n\r\nexport const SkillsRoute = new ArticleNavLink({\r\n path: 'Skills',\r\n name: 'Skills',\r\n render: () => ,\r\n});\r\n\r\nexport const RhetoricsRoute = new ArticleNavLink({\r\n path: 'Rhetoric',\r\n name: 'Rhetoric',\r\n render: () => ,\r\n});\r\n\r\nexport const ConditionsRoute = new ArticleNavLink({\r\n path: 'Conditions',\r\n name: 'Conditions',\r\n render: () => ,\r\n});\r\n\r\nexport const CompetenciesRoute = new ArticleNavLink({\r\n path: 'Competencies',\r\n name: 'Competencies',\r\n render: () => ,\r\n});\r\n\r\nexport const HazardsRoute = new ArticleNavLink({\r\n path: 'Hazards',\r\n name: 'Hazards',\r\n render: () => ,\r\n});\r\n\r\nexport const EnemiesRoute = new ArticleNavLink({\r\n path: 'Enemies',\r\n name: 'Enemies',\r\n render: () => ,\r\n});\r\n\r\nexport const ScenariosRoute = new ArticleNavLink({\r\n path: 'Scenarios',\r\n name: 'Scenarios',\r\n render: () => ,\r\n})\r\n\r\nexport const LibraryRoutes = [\r\n BooksRoute,\r\n ItemsRoute,\r\n new ArticleNavLink({\r\n path: 'Items?types=Weapon',\r\n name: 'Weapons',\r\n render: () => ,\r\n }),\r\n new ArticleNavLink({\r\n path: 'Items?types=Mod',\r\n name: 'Mods',\r\n render: () => ,\r\n }),\r\n new ArticleNavLink({\r\n path: 'Items?types=Ammo',\r\n name: 'Ammo',\r\n render: () => ,\r\n }),\r\n new ArticleNavLink({\r\n path: 'Items?types=Spell',\r\n name: 'Spell',\r\n render: () => ,\r\n }),\r\n PersonalitiesRoute,\r\n PerksRoute,\r\n SkillsRoute,\r\n RhetoricsRoute,\r\n ConditionsRoute,\r\n CompetenciesRoute,\r\n HazardsRoute,\r\n EnemiesRoute,\r\n ScenariosRoute,\r\n];","import './library.scss';\r\nimport * as React from 'react';\r\nimport { LibraryRoutes } from './navigation/LibraryRoutes';\r\nimport { Link } from \"react-router-dom\";\r\nimport { Route, Routes } from 'react-router';\r\n\r\nexport const Library = () => {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n {LibraryRoutes.map((route, index) => {\r\n if (route.render != null) {\r\n return ;\r\n }\r\n })}\r\n } />\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst LibraryButtons = () => (\r\n <>\r\n {LibraryRoutes.map(route => (\r\n {route.name}\r\n ))}\r\n );\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\n\r\nexport const HowToPlayRulesLink = new ArticleNavLink({\r\n name: 'How to Play',\r\n path: '#HowToPlay',\r\n render: () => \r\n});\r\n\r\nconst HowToPlayRules = () => (\r\n
    \r\n

    {HowToPlayRulesLink.name}

    \r\n

    \r\n Players are divided into two groups: the Game Master and the Party. Each member of the party takes on the role of a character living in the 500 A.C. universe and uses the rules described below to interact with the adventure.\r\n

    \r\n

    \r\n Typically, the Game Master will describe the scene that the Players find themselves in and the players will act out and describe their actions within the context of the game world. Conflicts in the narrative are resolved through the mechanics referred to later in this document which include, but are not limited to, politics, combat, and creative problem solving.\r\n

    \r\n
    \r\n);\r\n","import './directives.scss';\r\nimport * as React from 'react';\r\nimport { JSXChildProps } from '../../entities/utils/jsx/Children';\r\n\r\ntype DirectiveProps = JSXChildProps & { header: React.ReactNode };\r\ntype SubdirectiveProps = JSXChildProps & { header?: string };\r\n\r\nexport const Directive: React.FC = (props: DirectiveProps): JSX.Element => (\r\n
    \r\n
    {props.header}
    \r\n {props.children}\r\n
    \r\n);\r\n\r\nconst generateSubDirectiveHeader = (baseHeader: string, header?: string) => {\r\n if (header != null) {\r\n header = \" - \" + header;\r\n }\r\n else {\r\n header = \"\";\r\n }\r\n return `${baseHeader}${header}`;\r\n}\r\n\r\nexport const GMNote = (props: SubdirectiveProps) => {props.children};\r\n\r\nexport const PlayerNote = (props: SubdirectiveProps) => {props.children};\r\n\r\nexport const Variant = (props: SubdirectiveProps) => {props.children};\r\n\r\nexport const Example = (props: SubdirectiveProps) => {props.children};\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { Example, GMNote, PlayerNote, Variant } from '../../directives/Directives';\r\nimport { TheCataclysm } from '../../theming/texts';\r\n\r\nexport const TerminologyRulesLink = new ArticleNavLink({\r\n name: 'Terminology',\r\n path: '#Terminology',\r\n render: () => \r\n});\r\n\r\nconst TerminologyRules: React.FC = () => (\r\n
    \r\n

    {TerminologyRulesLink.name}

    \r\n

    \r\n The following terms will be used frequently throughout this document as a shorthand for general gameplay concepts. Different ideas will be covered in other sections of the rules.\r\n

    \r\n
      \r\n
    • \r\n GM: The Game Master. The GM is responsible for creating the world and making rulings on what can or cannot occur in the wasteland when the rules do not provide guidance. Additionally, the GM may decide to override the rules of the game if it better suits the storyline or adventure.\r\n
    • \r\n
    • \r\n Character: Any person or creature with some level of autonomy in the world. This includes all of the player characters and, additionally, persons and creatures portrayed by the GM. It excludes objects such as hammers and vehicles.\r\n
    • \r\n
    • \r\n PC: Any character whose behavior is controlled by one of the players.\r\n
    • \r\n
    • \r\n NPC: Any character whose behavior is controlled by the GM.\r\n
    • \r\n
    • \r\n Party: The entire group of player characters.\r\n
    • \r\n
    • \r\n Object: Anything in the world which is not a character such as a shovel or a concrete wall.\r\n
    • \r\n
    • \r\n Session: The portion of time spent playing the game, without long breaks in play. There is typically only one session during a real life day, and there may be several days in between sessions depending on how frequently you and your friends decide to play.\r\n
    • \r\n
    • \r\n Adventure: A storyline managed by the GM that the players experience. An adventure spans one or more sessions.\r\n
    • \r\n
    • \r\n d6: A standard six-sided die.\r\n
    • \r\n
    • \r\n dX: An X-sided die. Besides six-sided dice, there are several other dice common in roleplaying games: d4 (4-sided dice), d8 (8-sided dice), etc. These dice are completely optional, but you may find them handy if you want to use some of the random tables in this rulebook. If you don't have a die of the specified type, any method for randomly selecting a number on that die with equal probability will work just fine.\r\n
    • \r\n
    • \r\n DC: Stands for \"Difficulty Check\". When performing a reflex roll, you want to roll greater than or equal to the indicated number. For example, \"DC 4\" means that you are trying to roll a 4 or higher.\r\n
    • \r\n
    • \r\n Dice Boon: A benefit to your rolls in the form of either the ability to reroll a die or to roll an extra die.\r\n
    • \r\n
    • \r\n Chips: With no central authority to establish a monetary system, the wasteland has multiple currencies all maintained by their respective polities. 500 years after , \"chips\" have become the commonplace term to refer to a sum of currency, and all prices are converted into chips for the purposes of gameplay. GMs can dictate actual exchange rates between currencies if such a feature is needed to progress the game's plot.\r\n
    • \r\n
    • \r\n Hex: A hex is the standard unit of space in 500 A.C. A hex is a hexagon with a 1 meter radius or a 2 meter diameter (1 yard and 2 yards in imperial units). Units of distance and area are often described in hexes rather than typical units of measure such as kilometers and miles.\r\n
    • \r\n
    \r\n\r\n

    \r\n Throughout this document, you will also see these sections to indicate recommendations for player or ideas for alternative playstyles:\r\n

    \r\n\r\n \r\n This text denotes that there is a recommendation for the GM about how to handle a mechanic.\r\n \r\n\r\n \r\n This text denotes that there is a hint or consideration for a player to take into account.\r\n \r\n\r\n \r\n This text offers a suggestion for an alternative playstyle or rule.\r\n \r\n\r\n \r\n This text shows an example of something explained in an article.\r\n \r\n
    \r\n);\r\n","import './nav-ordinal.scss';\r\nimport React from 'react';\r\n\r\ntype Props = { ordinal: number };\r\n\r\nexport const NavOrdinal: React.FC = (props: Props) => (\r\n {props.ordinal}.\r\n);\r\n","import React from \"react\";\r\nimport { BulletEmptyIcon, BulletFilledIcon } from \"../../../icons\";\r\nimport { ArticleNavLinkComponentProps } from \"./ArticleNavLinkComponentProps\";\r\nimport { Link, useLocation } from \"react-router-dom\";\r\n\r\nexport const SubLink: React.FC = (props: ArticleNavLinkComponentProps) => {\r\n const { link, ordinal } = props;\r\n const bullet = ordinal % 2 == 0\r\n ? \r\n : ;\r\n const location = useLocation();\r\n const overrideActive = location.hash == `#${link.hash}`;\r\n return (\r\n
  • \r\n \r\n {bullet}\r\n {link.name}\r\n \r\n
      \r\n {link.sublinks?.map((link) => (\r\n \r\n ))}\r\n
    \r\n
  • \r\n );\r\n};","import React from \"react\";\r\nimport { NavOrdinal } from \"../NavOrdinal\";\r\nimport { ArticleNavLinkComponentProps } from \"./ArticleNavLinkComponentProps\";\r\nimport { SubLink } from \"./ArticleNavSublink\";\r\nimport { Link, useLocation } from \"react-router-dom\";\r\n\r\nexport const ArticleNavLinkComponent: React.FC = (props: ArticleNavLinkComponentProps) => {\r\n const { link, ordinal } = props;\r\n const hasSublinks = link.sublinks && link.sublinks.any();\r\n const location = useLocation();\r\n const overrideActive = location.hash == `#${link.hash}`;\r\n return (\r\n
  • \r\n \r\n \r\n {link.name}\r\n \r\n {hasSublinks &&
      \r\n {link.sublinks?.map((link) => (\r\n \r\n ))}\r\n
    }\r\n
  • \r\n );\r\n};","import './page-navigation.scss';\r\nimport React from 'react';\r\nimport { ArticleNavLink } from './article-navigation/ArticleNavLink';\r\nimport { ChevronLeftIcon, ChevronRightIcon } from '../../icons';\r\nimport { Link, NavLink } from \"react-router-dom\";\r\n\r\ntype Props = {\r\n root?: ArticleNavLink;\r\n prev?: ArticleNavLink;\r\n next?: ArticleNavLink;\r\n};\r\n\r\nexport const PageNavigation: React.FC = (props: Props) => (\r\n \r\n);\r\n\r\n\r\ntype ControlProps = {\r\n link?: ArticleNavLink\r\n children?: React.ReactNode;\r\n}\r\n\r\nconst ResetHeight = () => {\r\n document.getElementsByTagName(\"main\")[0]?.scrollTo({ top: 0 });\r\n}\r\n\r\nexport const RootControl: React.FC = (props: ControlProps): JSX.Element => {\r\n const { link, children } = props;\r\n return (\r\n
    \r\n {link == null ? null : (\r\n {children ?? link.name}\r\n )}\r\n
    \r\n );\r\n}\r\n\r\ntype PrevNextProps = Partial & \r\n{\r\n root?: ArticleNavLink;\r\n};\r\n\r\nexport const PrevControl = (props: PrevNextProps): JSX.Element | null => {\r\n const { link, children, root } = props;\r\n const rootPath = root?.path\r\n ? `${root.path}/`\r\n : \"\";\r\n return (\r\n
    \r\n {link == null ? null : (\r\n \r\n {children ?? link.name}\r\n \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport const NextControl = (props: PrevNextProps): JSX.Element | null => {\r\n const { link, children, root } = props;\r\n const rootPath = root?.path\r\n ? `${root.path}/`\r\n : \"\";\r\n return (\r\n
    \r\n {link == null ? null : (\r\n \r\n {children ?? link.name} \r\n \r\n )}\r\n
    \r\n );\r\n};\r\n","import './article-navigation.scss';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { JSXChildProps } from '../../../../entities/utils/jsx/Children';\r\nimport { ArticleNavLink } from './ArticleNavLink';\r\nimport { ArticleNavLinkComponent } from './ArticleNavLinkComponent';\r\nimport { NextControl, PrevControl, RootControl } from '../PageNavigation';\r\nimport { Link, NavLink } from 'react-router-dom';\r\nimport { BookIcon } from '../../../icons';\r\n\r\ntype Props = {\r\n root: ArticleNavLink;\r\n links?: ArticleNavLink[];\r\n prev?: ArticleNavLink;\r\n next?: ArticleNavLink;\r\n} & JSXChildProps;\r\n\r\ninterface State {\r\n unmounting: boolean;\r\n timeout?: Number | NodeJS.Timeout;\r\n fixedNav: boolean;\r\n}\r\n\r\nconst recheckNavFixationInterval = 10;\r\n\r\nexport const ArticleNavigation = (props: Props) => {\r\n const checkShouldFixNav = () => window.scrollY > 50;\r\n const [state, setState] = useState({ unmounting: false, fixedNav: checkShouldFixNav() });\r\n\r\n const onScroll = () => {\r\n clearTimeout(state.timeout as number | undefined);\r\n if (state.unmounting) {\r\n return;\r\n }\r\n const recheckFixed = () => {\r\n setState((s) => ({ ...s, fixedNav: checkShouldFixNav() }));\r\n };\r\n setState((state) => ({ ...state, timeout: setTimeout(recheckFixed, recheckNavFixationInterval) }));\r\n }\r\n const onUnmount = () => {\r\n setState(state => ({ ...state, unmounting: true}));\r\n window.removeEventListener(\"scroll\", onScroll);\r\n }\r\n\r\n useEffect(() => {\r\n window.addEventListener(\"scroll\", onScroll);\r\n return onUnmount; //Returned functions are called as if they were previously tied to the componentWillUnmount lifecycle method.\r\n }, []);\r\n\r\n\r\n let ordinal = 1;\r\n const { links, root, prev, next, children } = props;\r\n\r\n const containerClassName = `nav-container${state.fixedNav ? \" fixed-nav\" : \"\"}`;\r\n const hasPrevNext = prev != null || next != null; \r\n const hasLinks = links && links.any();\r\n return (\r\n \r\n );\r\n}","import React from 'react';\r\nimport { ArticleNavLink } from '../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { BookIcon } from '../icons';\r\n\r\nexport const RulesRoot = new ArticleNavLink({\r\n path: '/Rules',\r\n name: <> Table of Contents,\r\n});\r\n","import React, { useEffect, useMemo } from \"react\";\r\nimport { JSXChildProps } from \"../../entities/utils/jsx/Children\";\r\nimport { ArticleProps } from \"../articles/ArticleProps\";\r\nimport { ArticleNavigation } from \"../articles/navigation/article-navigation/ArticleNavigation\";\r\nimport { ArticleNavLink } from \"../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { PageNavigation } from \"../articles/navigation/PageNavigation\";\r\nimport { RulesRoot } from \"./RulesRoot\";\r\nimport { useLocation } from \"react-router\";\r\nimport { CreateHashNavigator } from \"../app/nav/CreateHashNavigator\";\r\n\r\ntype Props = ArticleProps & JSXChildProps & {\r\n link: ArticleNavLink;\r\n root?: ArticleNavLink;\r\n};\r\n\r\nexport const RulesArticle: React.FC = (props: Props) => {\r\n let { link, children, root } = props;\r\n root = root ?? RulesRoot;\r\n let prev: ArticleNavLink | undefined, next: ArticleNavLink | undefined;\r\n let chapterTitlePrefix: string = '';\r\n if (props.index != null) {\r\n prev = props.siblings[props.index - 1];\r\n next = props.siblings[props.index + 1];\r\n chapterTitlePrefix = `Chapter ${props.index}: `;\r\n }\r\n\r\n const title = `${chapterTitlePrefix}${props.link.name}`;\r\n \r\n const location = useLocation();\r\n const hash = location.hash.split(\"#\")[1]; \r\n useEffect(CreateHashNavigator(hash), [location]);\r\n\r\n return (\r\n <>\r\n \r\n {title}\r\n \r\n
    \r\n \r\n
    \r\n

    {title}

    \r\n {children}\r\n
    \r\n {link.sublinks?.map((sublink, index) => {\r\n const inner = sublink.render(index);\r\n if(inner == null) {\r\n return undefined;\r\n }\r\n return (\r\n
    \r\n {inner}\r\n
    \r\n );\r\n })}\r\n
    \r\n \r\n );\r\n}","export const CreateHashNavigator = (hash: string) => () => document.getElementById(hash)?.scrollIntoView({\r\n behavior: \"smooth\",\r\n inline: \"nearest\",\r\n});","import * as React from 'react';\r\nimport { TheCataclysm } from '../../theming/texts';\r\nimport { NavLink } from 'react-router-dom';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\n\r\nexport const GameInfoRulesLink = new ArticleNavLink({\r\n path: \"#GameInfo\",\r\n name: \"Game Info\",\r\n render: () => \r\n})\r\n\r\nconst GameInfoRules = () => (\r\n
    \r\n

    The Game

    \r\n

    \r\n 500 A.C. is a Tabletop Role Playing Game (TTRPG) that takes place 500 years after the collapse of civilization, referred to as . Gameplay consists of a Game Master (GM) hosting an adventure for the other players (recommended 3-5 others) to experience. Unlike other TTRPGs, 500 A.C. puts player agency on a pedestal: change your fate by manipulating poker hands of dice!\r\n

    \r\n

    \r\n In order to play, you will need at least 5 six-sided dice (also referred to as d6) per player (including the GM), 2 additional d6 to serve as communal dice, and a character sheet in either print or digital form for each player.\r\n

    \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { HowToPlayRulesLink } from './HowToPlayRules';\r\nimport { TerminologyRulesLink } from './TerminologyRules';\r\nimport { ArticleProps } from '../../articles/ArticleProps';\r\nimport { RuleLinks } from '..';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { TheCataclysm } from '../../theming/texts';\r\nimport { RulesArticle } from '../RulesArticle';\r\nimport { GameInfoRulesLink } from './GameInfoRules';\r\n\r\nexport const IntroductionRulesLink = new ArticleNavLink({\r\n path: 'Introduction',\r\n name: 'Introduction',\r\n render: (index?: number) => ,\r\n sublinks: [GameInfoRulesLink, HowToPlayRulesLink, TerminologyRulesLink]\r\n});\r\n\r\nconst IntroductionRules: React.FC = (props: ArticleProps): JSX.Element => {\r\n return (\r\n \r\n
    \r\n

    500 A.C.

    \r\n

    \r\n It has been 500 years since : the total collapse of human civilization. After humanity suffered such a debilitating loss, broken knowledge of the past has spun a new myth. Heroes and adventurers quest the wasteland wielding legendary weapons against foul mutant beasts, bards travel the highways earning coin playing the keytar, and cloistered sorcerers practice electromagnetism and thermodynamics. You will find the earth both familiar and foreign; grasp fate and craft a destiny on this rekindled waste.\r\n

    \r\n \"Harvesters\r\n
    \r\n
    \r\n );\r\n};\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { Directive } from '../../directives/Directives';\r\nimport { NavLink } from 'react-router-dom';\r\n\r\nexport const CreateCharacterStepsRulesLink = new ArticleNavLink({\r\n name: 'Creating Your Character',\r\n path: '#CreatingYourCharacter',\r\n render: () => \r\n});\r\n\r\nconst CreateCharacterStepsRules: React.FC = () => (\r\n
    \r\n

    {CreateCharacterStepsRulesLink.name}

    \r\n

    \r\n Before you begin playing the game, you need to create a character to portray. This guide will help you create your first character. When this guide doesn't give explicit instructions on what to do, such as creating a character concept, how you achieve that task is entirely up to you. To track your character's progress and attributes, you can use this character sheet to or use our digital tools over on the characters page (login required).\r\n

    \r\n
    \r\n \r\n
    Chelle Zappah, bard and electromancer.
    \r\n
    \r\n

    \r\n To help you build your first character, this guide will walk you through creating Chelle Zappah: a young and boisterous bard. To create Chelle or another character of your choice, you need to follow each of the following steps:\r\n

    \r\n
      \r\n
    1. \r\n Come up with a concept for your character.\r\n
    2. \r\n
    3. \r\n Choose a name and kinship for your character.\r\n
    4. \r\n
    5. \r\n Describe your character's appearance. What do they look like?\r\n
    6. \r\n
    7. \r\n Choose one of the preset character classes described later or distribute your starting skill points into each of your skills.\r\n
    8. \r\n
    9. \r\n Select two personality traits.\r\n
    10. \r\n
    11. \r\n Choose your primary and secondary rhetorical strategies.\r\n
    12. \r\n
    13. \r\n Choose your character's competencies.\r\n
    14. \r\n
    \r\n \r\n

    \r\n To help you with character creation, each step of this chapter will include an example of how to create a character: Chelle Zappah, a young bard.\r\n

    \r\n
    \r\n
    \r\n);\r\n","import React, { useState } from \"react\"\r\nimport { CreateFigureDiceRows } from \"../common/FigureDice\"\r\nimport { ThemedButton } from \"../../../inputs/buttons/ThemedButton\"\r\nimport { RollIcon } from \"../../../icons/CharacterIcons\"\r\nimport { Loader } from \"../../../theming/loader/Loader\"\r\n\r\ntype Props = {\r\n header: React.ReactNode;\r\n columnName: React.ReactNode;\r\n outcomes: string[];\r\n}\r\n\r\nexport const RollableTable = (props: Props) => {\r\n const { header, columnName, outcomes } = props;\r\n const [currentOutcome, setCurrentOutcome] = useState(null);\r\n const [rolling, setRolling] = useState(false);\r\n const rollOutcome = () => {\r\n setRolling(true);\r\n const index = Math.floor(Math.random() * outcomes.length);\r\n setCurrentOutcome(outcomes[index]);\r\n setTimeout(() => setRolling(false), 500);\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {CreateFigureDiceRows(outcomes)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    {header}
    Roll{columnName}
    \r\n Roll!\r\n \r\n {rolling && }\r\n {!rolling && <>\r\n \r\n {!currentOutcome && Roll the dice or pick an option!}\r\n {currentOutcome && <>\r\n Result\r\n
    \r\n {currentOutcome}\r\n }\r\n }\r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { Die } from \"../../../figures/Die\"\r\n\r\n\r\nexport const CreateFigureDiceRows = (texts: string[]) => {\r\n const tableContents: React.ReactNode[] = [];\r\n for (let i = 0; i < texts.length; i++) {\r\n tableContents.push(\r\n {i+1}\r\n {texts[i]}\r\n )\r\n }\r\n return tableContents;\r\n}","import React from \"react\";\r\nimport { RollableTable } from \"../RollableTable\";\r\n\r\nconst characterMotivations = [\r\n \"I'm determined to do what's necessary to bring order back to the earth.\",\r\n \"I'm a protector/nurturer at heart; it pains me to see good people suffering.\",\r\n \"I get a sense of belonging spending time with others. I want to learn all about the different people of the earth.\",\r\n \"I want everyone to know my name. There's glory to be had in fame or infamy.\",\r\n \"Resources are scarce; pursuit of wealth is the best motivator of all.\",\r\n \"I'm aimless: I've lost all the people in my past and I'm searching for purpose and meaning.\",\r\n \"Something horrible happened to me in the past and I won't allow it to happen again.\",\r\n \"There's so much out in the world to explore and I've got to see as much of it as I can!\",\r\n \"I'm searching for lost or ancient knowledge and I'll do almost anything to attain it.\",\r\n \"My people are counting on me to succeed on a special mission. I won't fail them.\",\r\n]\r\nexport const CharacterMotivationsTable = () => \r\n\r\n\r\nconst characterFlaws = [\r\n \"I'm seeking revenge for something in my past, and I don't care what price I have to pay to exact vengeance.\",\r\n \"I get too caught up in my work to the detriment of my relationships with others. It's hard for me to relax and socialize.\",\r\n \"I often forget that I owe a great deal of my success to others; my pride won't allow me to share the glory.\",\r\n \"I don't like taking responsibility for things. I would rather shift the blame than accept the consequences of my actions.\",\r\n \"I focus too much on small problems and usually miss the bigger picture.\",\r\n \"I need instant gratification and will actively push for something to happen even when patience is the more prescient decision.\",\r\n \"I lack confidence in myself and find the threat of failure daunting.\",\r\n \"The world was destroyed long ago, I have a hard time seeing the point in trying to improve things today.\",\r\n]\r\nexport const CharacterFlawsTable = () => \r\n\r\n\r\n\r\nconst conflictResponses = [\r\n \"I prefer to pursue diplomatic resolutions to avoid confict; it's better to make friends than enemies.\",\r\n \"One needs to be quick and aggressive when responding to conflict. An overwhelming show of force or intimidation will ensure that nobody decides to challenge you again.\",\r\n \"Avoiding conflict through resourceful thinking is my go-to solution. There's almost always a solution we haven't thought of yet. \",\r\n \"I actually enjoy conflict: it allows for change and permits people to express their grievances.\",\r\n \"Conflict presents opportunity. More opportunities for me to get something I want out of the process.\",\r\n \"It's better to avoid conflict and keep those you care about safe. There's no need to get involved in problems that aren't ours yet.\",\r\n]\r\nexport const ConflictResponsesTable = () => \r\n\r\n\r\n\r\nconst worldPerspectives = [\r\n \"The world is a rough and tumble place fit only for those who can stand in the mud.\",\r\n \"People are ultimately good, sometimes they just need a little help.\",\r\n \"The world sucks now but we can continue working to make it better.\",\r\n \"Nobody is going to look out for you so you need to be able to look out for yourself.\",\r\n \"There's only so much time in a day so let's make the most of every second.\",\r\n \"Great deeds and leading by example gives everyone the tools they need to improve their wellbeing.\",\r\n]\r\nexport const WorldPerspectivesTable = () => \r\n \r\n\r\n\r\nconst majorLifeEvents = [\r\n \"Some or all of my family was killed by raiders when I was younger.\",\r\n \"I grew up on a farm or ranch which endured through several droughts and smogstorms.\",\r\n \"I was fortunate enough to be born into an aristocratic family of a major province or city state and experience political life.\",\r\n \"My family traveled frequently as traders, exposing me to different ideas and cultures.\",\r\n \"I participated with a major research team at a magic academy as part of my studies there.\",\r\n \"Someone owes me a big favor after I saved their life long ago.\",\r\n \"I used to be a part of a criminal organization, but I was able to get out unscathed.\",\r\n \"I was once captured by ogres and managed to escape.\",\r\n]\r\nexport const MajorLifeExperiencesTable = () => ","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { CharacterFlawsTable, CharacterMotivationsTable, ConflictResponsesTable, MajorLifeExperiencesTable, WorldPerspectivesTable } from \"../figures/generation/characters/CharacterGenerationTables\";\r\n\r\nexport const CreatingAConceptRulesLink = new ArticleNavLink({\r\n name: \"Creating A Concept\",\r\n path: \"#CreatingAConcept\",\r\n render: () => ,\r\n})\r\n\r\nconst CreatingAConceptRules = () => (\r\n
    \r\n

    {CreatingAConceptRulesLink.name}

    \r\n

    \r\n Before you do anything else with your character, you'll need to create a concept for who they are. How exactly you go about that is your own business, but below you will find some questions and tables which you can use to randomly generate character traits, take inspiration for your own traits, or completely ignore.\r\n

    \r\n\r\n

    What motivates my character?

    \r\n

    \r\n Chelle is motivated to explore! She wants to go out and see the world. Mark that as a motivation on her character sheet, create different motivations for her, or roll on the table below to see what comes up.\r\n

    \r\n

    \r\n\r\n

    What flaws does my character have?

    \r\n

    \r\n Chelle is easily sidetracked with small concerns; she likes taking time to listen to every story but can have difficulty seeing how all of the different chapters come together. Mark that as a flaw on her character sheet, create different flaws for her, or roll on the table below to see what comes up.\r\n

    \r\n

    \r\n\r\n

    How does my character respond to conflict?

    \r\n

    \r\n As a bard and composer, Chelle likes to come up with creative solutions in all walks of life. She sees conflicts as things that can be avoided if people just think about all of the different resources and choices available to them. Mark that as a conflict response on her character sheet, create different conflict responses for her, or roll on the table below to see what comes up.\r\n

    \r\n

    \r\n\r\n

    What sort of outlook or perspective does my character have about the world?

    \r\n

    \r\n Chelle is still young and optimistic, so she sees people as fundamentally good who might just need a bit of pep in their step. Mark that as a world perspective on her character sheet, create different perspectives for her, or roll on the table below to see what comes up.\r\n

    \r\n

    \r\n\r\n

    What major life experiences has my character had?

    \r\n

    \r\n Chelle's family were traveling merchants, so exploration is in her blood. It's only natural that she follow in her parentst' footsteps to continue absorbing all the world has to offer. Mark that as a major life experience on her character sheet, create different experiences for her, or roll on the table below to see what comes up.\r\n

    \r\n

    \r\n
    \r\n)","import React from 'react';\r\nimport { ArticleProps } from '../../articles/ArticleProps';\r\nimport { RuleLinks } from '..';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { CreateCharacterStepsRulesLink } from './CreateCharacterStepsRules';\r\nimport { RulesArticle } from '../RulesArticle';\r\nimport { CreatingAConceptRulesLink } from './CreatingAConcept';\r\n\r\nexport const CharacterCreationRulesLink = new ArticleNavLink({\r\n path: 'CharacterCreation',\r\n name: 'Character Creation',\r\n render: (index?: number) => ,\r\n sublinks: [\r\n CreateCharacterStepsRulesLink,\r\n CreatingAConceptRulesLink,\r\n ]\r\n});\r\n\r\nconst CharacterCreationRules: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n A character is somone that interacts with the world as an agent of change. Your character's ability to do so is determined by their knowledge, skills, personality, and equipment.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { TheCataclysm } from \"../../theming/texts\";\r\n\r\nexport const GoblinRulesLink = new ArticleNavLink({\r\n name: 'Goblins',\r\n path: '#Goblins',\r\n render: () => \r\n});\r\n\r\nconst GoblinRules: React.FC = () => (\r\n
    \r\n

    Goblins

    \r\n

    \r\n The result of genetic experimentation on bats, Goblins were freed from their laboratory homes during . In the years since, large numbers live a nomadic life as traveling merchants and craftsmen, but many also choose to live in cities amongst humans. Goblins are similar to humans in demeanor, and are of a variety of dispositions and personalities. If you were to communicate with a Goblin without hearing its higher pitched voice and without being able to see it, you might not even realize you were speaking with a non-human!\r\n

    \r\n \r\n
      \r\n
    • \r\n Goblins are typically between 3½ and 5½ feet tall.\r\n
    • \r\n
    • \r\n Goblins have snub noses and large, batlike ears which betray their laboratory origins.\r\n
    • \r\n
    • \r\n Goblin skin tones tend to range between pink and reddish hues in varying shades of gray.\r\n
    • \r\n
    • \r\n Goblins are immune to hacking damage and the malfunctioning condition.\r\n
    • \r\n
    • \r\n Goblins have worse vision than a human, being able to see about 2 miles on a clear day and with less clarity.\r\n
    • \r\n
    • \r\n Goblins can hear better than humans, being able to hear whispers up to about 20 meters (~60 feet) away, normal talking about 100 meters (~300 feet) away, and shouting from 1000 meters away (~3000 feet)\r\n
    • \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n A goblin wastelander.\r\n
    \r\n
    \r\n
    \r\n)","import React from \"react\";\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { TheCataclysm } from \"../../theming/texts\";\r\n\r\nexport const HumanRulesLink = new ArticleNavLink({\r\n name: 'Humans',\r\n path: '#Humans',\r\n render: () => \r\n});\r\n\r\nconst HumanRules: React.FC = () => (\r\n
    \r\n

    Humans

    \r\n

    \r\n Several hundred years ago, humanity initiated a series of events known as , which scoured the world. Though civilization ended, humanity endured, and the survivors continue to live on and create new settlements in the ashes of the old world. Humans in 500 AC are more or less the same as you and your friends.\r\n

    \r\n \r\n
      \r\n
    • \r\n Humans are typically between 5 and 7 feet tall.\r\n
    • \r\n
    • \r\n Humans come in all skin tones found on living humans today.\r\n
    • \r\n
    • \r\n Humans are immune to hacking damage and the malfunctioning condition.\r\n
    • \r\n
    • \r\n Humans have better eyesight than goblins, being able to see about 3 miles on a clear day and with more clarity than a goblin.\r\n
    • \r\n
    • \r\n Humans cannot hear as well as Goblins, being able to hear whispers at about 5 meters away (~15 feet) normal talking only about 20 meters away (~60 feet), and shouting from about 200 meters away (~600 feet).\r\n
    • \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n A human wastelander.\r\n
    \r\n
    \r\n
    \r\n);","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\n\r\nexport const ChoosingAKinshipRulesLink = new ArticleNavLink({\r\n name: \"Choosing A Kinship\",\r\n path: \"#ChoosingAKinship\",\r\n render: () => ,\r\n})\r\n\r\nconst ChoosingAKinshipRules = () => (\r\n
    \r\n

    {ChoosingAKinshipRulesLink.name}

    \r\n

    \r\n When creating your character, you choose one of the above kinships. Simply note your kinship on your character sheet.\r\n

    \r\n \r\n We've envisioned Chelle as a human bard, but she could just as easily be a goblin if you prefer. Mark her kinship as \"Human\", or don't if you envision her as a goblin.\r\n \r\n
    \r\n)","import React from 'react';\r\nimport { RuleLinks } from '..';\r\nimport { ArticleProps } from '../../articles/ArticleProps';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { RulesArticle } from '../RulesArticle';\r\nimport { GoblinRulesLink } from './GoblinRules';\r\nimport { HumanRulesLink } from './HumanRules';\r\nimport { ChoosingAKinshipRulesLink } from './ChoosingAKinship';\r\n\r\nexport const KinshipRulesLink = new ArticleNavLink({\r\n path: 'Kinships',\r\n name: 'Kinships',\r\n render: (index?: number) => ,\r\n sublinks: [\r\n HumanRulesLink,\r\n GoblinRulesLink,\r\n ChoosingAKinshipRulesLink,\r\n ]\r\n});\r\n\r\nconst KinshipRules: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n Your kinship is first and foremost an aesthetic choice. There are slight perceptual differences in the abilities of humans and goblins but these are not represented by mechanical differences. Kinship can be the appropriate choice for any type of character you envision, so choose first and foremost the kinship you feel like playing rather than trying to pick one that seems to be the \"best\".\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\nimport { SkillHelpers } from \"../../../entities/library/skills/Skill\";\r\n\r\nexport const IncreasingSkillsRulesLink = new ArticleNavLink({\r\n name: 'Increasing Your Skills',\r\n path: '#IncreasingSkills',\r\n render: () => \r\n});\r\n\r\nconst IncreasingSkills: React.FC = () => (\r\n
    \r\n

    {IncreasingSkillsRulesLink.name}

    \r\n

    \r\n As you level up, your skills will increase. Whenever you gain a level, you receive {SkillHelpers.PointsPerLevel} skill points which you can use to increase your skills by 1 per point spent. A skill cannot be advanced more than {SkillHelpers.MaxSkillDifference} levels above your current level and never above level 10.\r\n

    \r\n \r\n A character is not allowed to have a Subterfuge skill of 8 when they are only level 5.\r\n \r\n
    \r\n)","import React, { useEffect } from \"react\";\r\nimport { LibraryActions } from \"../../../store/stores/library/LibraryStore.Actions\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { RecordStatus } from \"../../../entities/RecordStatus\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const SkillListRulesLink = new ArticleNavLink({\r\n name: 'Skill List',\r\n path: '#SkillList',\r\n render: () => \r\n});\r\n\r\nconst SkillListRules: React.FC = () => {\r\n const dispatch = useAppDispatch();\r\n const { skills, allSkillsLoaded } = useAppSelector(app => app.library);\r\n useEffect(() => {\r\n if (!allSkillsLoaded) {\r\n dispatch(LibraryActions.loadSkills());\r\n }\r\n }, [dispatch, allSkillsLoaded]);\r\n return (\r\n
    \r\n

    {SkillListRulesLink.name}

    \r\n

    \r\n Below is a list of skills that a character can specialize in:\r\n

    \r\n
    \r\n {skills.filter(s => s.recordStatus == RecordStatus.Published).map((skill) => (\r\n
    \r\n
    {skill.name}
    \r\n
    {skill.description}
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { ListIcon, GridIcon, VerticalIcon, HorizontalIcon } from \"../../icons\";\r\n\r\nexport const RulesFiguresConfig = {\r\n minLevel: 1,\r\n maxLevel: 10,\r\n headerSpan: 1000000,\r\n}\r\n\r\nexport type RulesFigureViewStyle = 'List View' | 'Table View';\r\nexport type RulesFigureViewStyleOption = {\r\n name: RulesFigureViewStyle;\r\n display: React.ReactNode;\r\n}\r\nexport const RulesFigureViewStyleOptions: RulesFigureViewStyleOption[] = [\r\n { name: 'Table View', display: },\r\n { name: 'List View', display: },\r\n]\r\n\r\nexport type RulesTableViewStyle = 'Horizontal View' | 'Vertical View';\r\nexport type RulesTableViewStyleOption = {\r\n name: RulesTableViewStyle,\r\n display: React.ReactNode;\r\n}\r\nexport const RulesTableViewStyleOptions: RulesTableViewStyleOption[] = [\r\n { name: \"Horizontal View\", display: },\r\n { name: \"Vertical View\", display: }\r\n]","import React, { useState } from \"react\";\r\nimport { GetRerollsForLevel, GetExtraRollsForLevel } from \"../../../entities/library/Roller\";\r\nimport { ThemedRadio } from \"../../inputs/radio/ThemedRadio\";\r\nimport { RulesFigureViewStyle, RulesFigureViewStyleOptions, RulesFiguresConfig } from \"./RulesFigures\";\r\n\r\ntype Props = {\r\n leveledName: string;\r\n header?: React.ReactNode;\r\n}\r\n\r\nexport const DiceBoonsPerLevelTable = (props: Props) => {\r\n const { minLevel, maxLevel, headerSpan } = RulesFiguresConfig;\r\n const { header, leveledName } = props;\r\n const levelRows: React.ReactNode[] = [];\r\n const rerollRows: React.ReactNode[] = [];\r\n const extraRollRows: React.ReactNode[] = [];\r\n\r\n for (let i = minLevel; i <= maxLevel; i++) {\r\n levelRows.push({i});\r\n rerollRows.push({GetRerollsForLevel(i)});\r\n extraRollRows.push({GetExtraRollsForLevel(i)});\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {levelRows}\r\n \r\n \r\n \r\n {rerollRows}\r\n \r\n \r\n \r\n {extraRollRows}\r\n \r\n \r\n
    \r\n {header ?? `Dice Boons Per ${leveledName} Level`}\r\n
    {leveledName} Level
    Die Rerolls
    Extra Dice
    \r\n )\r\n}\r\n\r\nexport const ExpertiseDiceBoonsTable = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Dice Boons For Expertise\r\n
    Character Level12345678910
    Die Rerolls111122223*3*
    Extra Dice0011112222
    \r\n *This third reroll comes from having advantage. Additional sources of advantage will not provide more rerolls.\r\n
    \r\n);\r\n\r\nexport const DiceBoonsPerLevelFigure = (props: Props) => {\r\n const [viewStyle, setViewStyle] = useState('Table View');\r\n const { header, leveledName } = props;\r\n const lowerName = leveledName.toLowerCase();\r\n return (\r\n
    \r\n vs.name == viewStyle)!}\r\n onChange={(selection) => setViewStyle(selection.name)} />\r\n {viewStyle == 'Table View' && }\r\n {viewStyle == 'List View' && (\r\n <>\r\n

    {header ?? `Dice Boons Per ${leveledName} Level`}

    \r\n
      \r\n
    • \r\n At a {lowerName} level of 3, you may reroll up to one die when rolling for that {lowerName}.\r\n
    • \r\n
    • \r\n At a {lowerName} level of 5, you may roll one additional die and reroll up to one die when rolling for that {lowerName}.\r\n
    • \r\n
    • \r\n At a {lowerName} level of 7, you may roll one additional die and reroll up to two dice when rolling for that {lowerName}.\r\n
    • \r\n
    • \r\n At a {lowerName} level of 9, you may roll two additional dice and reroll up to two dice when rolling for that {lowerName}.\r\n
    • \r\n
    \r\n \r\n )}\r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Directive } from \"../../directives/Directives\";\r\n\r\nconst PickAClassLink = new ArticleNavLink({\r\n name: 'Choose a Class',\r\n path: '#Classes',\r\n});\r\n\r\nconst CustomSkillsLink = new ArticleNavLink({\r\n name: 'Customize Your Skills',\r\n path: '#CustomizedSkills',\r\n});\r\n\r\nexport const ChooseYourSkillsRulesLink = new ArticleNavLink({\r\n name: 'Choose Your Skills',\r\n path: '#ChooseSkills',\r\n render: () => ,\r\n sublinks: [\r\n PickAClassLink,\r\n CustomSkillsLink,\r\n ]\r\n});\r\n\r\nconst ChooseYourSkillsRules: React.FC = () => (\r\n
    \r\n

    {ChooseYourSkillsRulesLink.name}

    \r\n

    \r\n Every character has a different set of skills. When creating your character you will need to choose some skills to specialize in. To do so, you can either select one of a number of premade classes or customize your starting skill points.\r\n

    \r\n
    \r\n

    {PickAClassLink.name}

    \r\n

    \r\n Rather than pick all of your skills yourself, you can always pick a class. Each class has a preset collection of skill allotments so you don't have to worry about deciding what might work best to fit your character concept. When you select a class, note the skill values in the matching section of your character sheet. The different classes and their skill adjustments are listed below:\r\n

    \r\n \r\n

    \r\n Since Chelle can work effectively with electricity, the Bard class is a perfect fit for Chelle. If you agree, note that Chelle has an Electronics skill of 3 and an Medcicine skill of 2 in the Skills section of your character sheet.\r\n

    \r\n
    \r\n \r\n

    \r\n The Bard is a master of influencing others with music with a bit of medical knowledge to keep both their companions' bodies and spirits in good health:\r\n

    \r\n
      \r\n
    • +2 to Electronics
    • \r\n
    • +1 to Medicine
    • \r\n
    \r\n
    \r\n

    \r\n In the \"Class\" section of your character sheet, you may enter any name you want to describe what your character does.\r\n

    \r\n
    \r\n
    \r\n

    {CustomSkillsLink.name}

    \r\n

    \r\n If you prefer to customize your character's skills, you can manually assign points to them when creating your character and when leveling up. To do so, simply mark your chosen skill values on your character sheet. The rules for skill assignment can be found in the section below.\r\n

    \r\n \r\n

    \r\n While you could choose the Bard class for Chelle as we recommend, what she's competent as is up to you. You can stick with the existing assignments of +2 to Electronics and +1 to Medicine, or maybe you see Chell as a bit more Athletic, giving her+1 to Athletics instead of Medicine. You could also completely redistribute her skill points to +1 Electronics, +1 Athletics, and +1 Melee. Whatever you decide to go with, mark down your skill values in the Skills section on your character sheet.\r\n

    \r\n
    \r\n
    \r\n
    \r\n);\r\n","import React, { useState } from 'react';\r\nimport { RuleLinks } from '..';\r\nimport { ArticleProps } from '../../articles/ArticleProps';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { RulesArticle } from '../RulesArticle';\r\nimport { IncreasingSkillsRulesLink } from './IncreasingSkillRules';\r\nimport { SkillListRulesLink } from './SkillListRules';\r\nimport { DiceBoonsPerLevelFigure } from '../figures/DiceBoonFigures';\r\nimport { Example } from '../../directives/Directives';\r\nimport { Link } from \"react-router-dom\";\r\nimport { ChooseYourSkillsRulesLink } from './ChooseYourSkills';\r\n\r\nexport const SkillRulesLink = new ArticleNavLink({\r\n render: (index?: number) => ,\r\n path: 'Skills',\r\n name: 'Skills',\r\n sublinks: [\r\n SkillListRulesLink,\r\n ChooseYourSkillsRulesLink,\r\n IncreasingSkillsRulesLink,\r\n ]\r\n});\r\n\r\nconst SkillRules: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n Skills represent a character's physical or mental prowess at performing certain actions. The higher a character's level in their respective skill, the better they are at performing those types of actions. As a character's skill increases, they receive additional Dice Boons (rerolls and extra dice) that they can use to manipulate their roll. Dice Rolls are covered more in the dice rolls section of the rules. The dice boons unlocked as your skills level up can be found below:\r\n

    \r\n \r\n

    \r\n If you decide to use your dice boons, you must use all of them simultaneously: you roll any extra dice and reroll dice at the same time. If you have the ability to reroll some number of dice, you may reroll any number up to that many dice.\r\n

    \r\n \r\n If you have 2 dice rerolls available to you, you may reroll one, two, or none of your dice if you choose.\r\n \r\n

    \r\n Additionally, your skills provide you access to more powerful equipment. In order to use equipment with a skill requirement, your skill must be at least as high as the listed requirement.\r\n

    \r\n
    \r\n);","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { PercussiveIcon, ExplosiveIcon, ThermalIcon, CryoIcon, ElectromagneticIcon, CorrosiveIcon, BioIcon, HackIcon, PercussiveDescription, ExplosiveDescription, ThermalDescription, CryoDescription, ElectromagneticDescription, CorrosiveDescription, BioDescription, HackingDescription } from '../../icons';\r\nimport { Example } from '../../directives/Directives';\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const ArmorNavLink = new ArticleNavLink({\r\n name: 'Armor and Resilience',\r\n path: '#ArmorResilience',\r\n render: () => \r\n});\r\n\r\nconst ArmorRules: React.FC = () => (\r\n
    \r\n

    {ArmorNavLink.name}

    \r\n

    \r\n Your armor is your lifeline; it can be the only thing keeping you from the throes of death. Your worn equipment provide Armor and Resilience and reduce the damage you take from enemy abilities.\r\n

    \r\n

    \r\n There are 7 types of damage, and two types of protection. Armor protects against Percussive and Explosive Damage, and Resilience protects against all other types of damage.\r\n

    \r\n
      \r\n
    • \r\n  \r\n {PercussiveDescription}\r\n
    • \r\n
    • \r\n  \r\n {ExplosiveDescription}\r\n
    • \r\n
    • \r\n  \r\n {ThermalDescription}\r\n
    • \r\n
    • \r\n  \r\n {CryoDescription}\r\n
    • \r\n
    • \r\n  \r\n {ElectromagneticDescription}\r\n
    • \r\n
    • \r\n  \r\n {CorrosiveDescription}\r\n
    • \r\n
    • \r\n  \r\n {BioDescription}\r\n
    • \r\n
    • \r\n  \r\n {HackingDescription}\r\n
    • \r\n
    \r\n \r\n For example, if you are wearing a Breastplate, which has an Armor Value of 1, and you get hit by a bullet which deals 5 percussive damage, you would only take 4 of that damage. Alternatively, if you were hit by a flamethrower, which dealt 5 thermal damage, you would take the full 5 damage because Breastplate provides no resilience.\r\n \r\n

    \r\n If you would take multiple types of damage at once from a source, you can reduce the damage received with both your Armor and Resilience. Armor and Resilience can still only reduce damage of the appropriate type.\r\n

    \r\n \r\n If an attack would deal 2 percussive damage and 2 cryo damage and you have an armor of 1 and a resilience of 1, you can reduce the total damage of the attack by 2. If you have 3 armor and 0 resilience, you can reduce the percussive damage by 2 but not reduce the cryo damage at all.\r\n \r\n

    \r\n If an attack would deal multiple types of damage that are reduced by the same type of protection, you can continue reducing the damage until the total amount of protection has been provided.\r\n

    \r\n \r\n If an attack would deal 2 percussive and 2 explosive damage when you have 3 armor, you can reduce the percussive damage by 2 and then continue reducing the explosive damage with your remaining 1 armor.\r\n \r\n

    \r\n While anyone can wear armor, not every character is equally proficient at wearing armor, and some armors may require technical expertise that your character simply lacks. Below is \r\n

    \r\n
    \r\n
    Light Armor
    \r\n
    Anyone can wear light armor.
    \r\n\r\n
    Medium Armor
    \r\n
    Only special abilities can give you the ability to wear medium armor.
    \r\n\r\n
    Heavy Armor
    \r\n
    Only special abilities can give you the ability to wear heavy armor.
    \r\n
    \r\n
    \r\n);\r\n","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example, GMNote } from \"../../directives/Directives\";\r\n\r\nexport const CraftingRulesLink = new ArticleNavLink({\r\n name: 'Crafting',\r\n path: '#Crafting',\r\n render: () => \r\n});\r\n\r\nconst CraftingRules = () => (\r\n
    \r\n

    {CraftingRulesLink.name}

    \r\n

    \r\n As your skills improve, you will find yourself more capable of making and maintaining your own equipment. You are able to craft mods that have a skill requirement if you have a skill that matches that requirement and an appropriate level of reagents. Any mod can be crafted over the duration of your next montage scene unless it specifies otherwise. You can only craft an item if you have access to the reagents needed to manufacture it.\r\n

    \r\n

    \r\n The reagents required to craft an item depend on the type of item you want to craft. Electronics items require an equivalently leveled set of electronics reagents and likewise for each skill. You'll find reagents as part of your adventure either as loot from ancient dungeons or plundered from your enemies. You can find reagents for a specific skill, or your GM may provide with you with generic reagents which can be used to craft any item of an appropriate level. If an item does not have a specified level requirement, then assume its level is 2 for the purposes of crafting.\r\n

    \r\n \r\n Chelle finds a set of level 4 electronics reagents in a bandit stash. During the next montage, Chelle can craft any electronics item whose level is not greater than either her electronics skill or the level of the reagents (4).\r\n \r\n \r\n Chelle finds a set of level 4 reagents in a bandit stash. During the next montage, Chelle can craft any mod whose level is not greater than either her level in that skill or the level of the reagents (4).\r\n \r\n \r\n Don't be too much of a curmudgeon with crafting! Limiting the reagents available to your players to specific skills can be useful to prevent them from having access to too many different mods too soon, but it's also good to give them the freedom to choose to play how they like. Generally, unless it causes problems, provide each of your players with enough loot to be distributed freely, and use specific reagents when you need to give them a bit more of a challenge.\r\n \r\n
    \r\n)","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { PlayerNote } from '../../directives/Directives';\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const ModRulesLink = new ArticleNavLink({\r\n name: 'Mods',\r\n path: '#Mods',\r\n render: () => \r\n});\r\n\r\nconst ModRules: React.FC = () => (\r\n
    \r\n

    {ModRulesLink.name}

    \r\n

    \r\n A weapon is usually something seen as personal and sacred, and weapons are frequently revered as having supernatural abilities. As you adventure, you will encounter powerful enhancements and upgrades for your weapons and armor and you may want to give it a special name to indicate its significance. Other characters will perceive this weapon as magically enchanted or capable of otherworldly feats. Items which alter how your equipment works by providing different abilities are called mods.\r\n

    \r\n

    \r\n Some mods are simple, such as ammunition, which lets you fire your weapon. Other mods confer more mystical and otherworldly effects to your equipment. As you attach different mods to your gear, you will gain access to the abilities those mods grant.\r\n

    \r\n \r\n When starting play, try to make sure you always have at least one attack to use or spell to cast. A super extravagant rifle with a rangefinding scope and fancy muzzle brake is worthless without bullets to fire.\r\n \r\n

    \r\n Equipment will indicate how many slots it has available for mods, and, with the exception of ammunition, you can only use one mod per mod category per item. For example, a handgun with three mod slots can have two different ammunitions and one barrel mod, but it cannot have two barrel mods. Learn more about mods and how to use them in the chapter on mods section.\r\n

    \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\n\r\nexport const OutfittingRulesLink = new ArticleNavLink({\r\n name: 'Outfiting',\r\n path: '#Outfitting',\r\n render: () => \r\n});\r\n\r\nconst OutfittingRules: React.FC = () => (\r\n
    \r\n

    {OutfittingRulesLink.name}

    \r\n

    \r\n The simplest kind of equipment is the kind you keep on your person. Every piece of equipment that can be worn will have a category indicating where it is worn on your body along with \"Utility\" equipment, which you have readily available for use. Normally, you can only wear one piece of clothing for a given category, though there are two exceptions listed below:\r\n

    \r\n
      \r\n
    • You can wear up to two rings.
    • \r\n
    • You can wear up to three utility items.
    • \r\n
    \r\n

    \r\n Most equipment you wear is an expression of your personality and purely cosmetic: these types of items will mostly affect how NPCs perceive and react to your presence. If you wear fancy clothes, you might come across as sophisticated and authoritative, but you may also be perceived as disconnected by others. Similarly, wearing weathered clothing might make you look worldly and practical, but it can also make you look unrefined to posh folk. It's important to consider what vibes your outfit gives off.\r\n

    \r\n

    \r\n Some pieces of worn equipment provide the ability to perform special tasks. Only equipment you are currently wearing can be used to perform these tasks, so you will need to change outfits and gear in order to make use of items that share an outfit category. In order to change a worn piece of equipment, it takes about 30 seconds to do so unless otherwise specified and you can't move during this time.\r\n

    \r\n
    \r\n \r\n
    A goblin wearing goggles to improve their accuracy.
    \r\n
    \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const WeaponRulesLink = new ArticleNavLink({\r\n name: 'Weapons',\r\n path: '#Weapons',\r\n render: () => \r\n});\r\n\r\nconst WeaponRules: React.FC = () => (\r\n
    \r\n

    {WeaponRulesLink.name}

    \r\n

    \r\n With so many dangers in the wasteland, you need to fight back with something. Your trusty weapons are your primary means of engaging with enemies. Weapons belong to different categories, and your weapon's category determines what types of special abilities you can use with it when you roll different hands.\r\n

    \r\n

    \r\n In addition to traditional weapons like rifles and knives, focuses - special tools used for casting spells, are considered weapons as well. Focuses can be almost anything: a guitar that can control the dead, a gigantic combination wrench with custom attachments, or a universal remote. Unlike weapons, focuses don't apply any special benefits when you use attached mods.\r\n

    \r\n

    \r\n You are allowed to wield up to 3 hands worth of weapons at a time: even though you don't have 3 hands, you still have that much weaponry available for use. You can see a complete list of weapons here and you can learn more about hands in the section on hands in the chapter on Taking Action.\r\n

    \r\n
    \r\n \r\n
    A shogunate thug presenting various smuggled weapons to a prospective client.
    \r\n
    \r\n {/*
    \r\n \r\n
    The infamous Necromancer, wielding the mighty Axe of the Damned which grants him control over undead minions with chips implanted into their spinal columns.
    \r\n
    */}\r\n
    \r\n);\r\n","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Directive } from \"../../directives/Directives\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const StartingEquipmentRulesLink = new ArticleNavLink({\r\n name: \"Choose Your Starting Equipment\",\r\n path: \"#StartingEquipment\",\r\n render: () => \r\n});\r\n\r\nconst StartingEquipmentRules = () => (\r\n
    \r\n

    {StartingEquipmentRulesLink.name}

    \r\n

    \r\n It's dangerous to travel through the wasteland, so you\"ll want to bring along some gear to make your journey easier. Add each of the following items from the equipment list in the order you see below:\r\n

    \r\n
      \r\n
    1. \r\n One outfit that costs 10 or fewer chips.\r\n
    2. \r\n
    3. \r\n Up to three tools with a combined cost of 30 or fewer chips.\r\n
    4. \r\n
    5. \r\n A two-handed weapon or two one-handed weapons.\r\n
    6. \r\n
    7. \r\n Any combination of three munitions and/or spells.\r\n
    8. \r\n
    9. \r\n One personal keepsake.\r\n
    10. \r\n
    11. \r\n 30 chips to keep or exchanged for any equipment you want.\r\n
    12. \r\n
    \r\n \r\n

    An easy way to gear Chelle out is to select the following equipment:

    \r\n
      \r\n
    1. \r\n A Bard's Outfitto wear.\r\n
    2. \r\n
    3. \r\n A torch, electromancer's tools, and a crowbar.\r\n
    4. \r\n
    5. \r\n A focus and a blaster.\r\n
    6. \r\n
    7. \r\n An amplifier, a medfoam dispenser, and laser batteries.\r\n
    8. \r\n
    9. \r\n A burnt stuffed elephant named Zippy, a gift from her parents when she was a child.\r\n
    10. \r\n
    11. \r\n She decides to keep all 30 chips.\r\n
    12. \r\n
    \r\n

    \r\n If you decide to use these items, mark down each of these in the Equipment section of your character sheet.\r\n

    \r\n
    \r\n
    \r\n);\r\n","import React from \"react\"\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\"\r\nimport { GMNote, Variant } from \"../../directives/Directives\"\r\nimport { MoneyIcon } from \"../../icons\"\r\n\r\nexport const MoneyRulesLink = new ArticleNavLink({\r\n name: 'Money & Loot',\r\n path: '#MoneyLoot',\r\n render: () => \r\n})\r\n\r\nconst MoneyRules: React.FC = () => (\r\n
    \r\n

    {MoneyRulesLink.name}

    \r\n

    \r\n In the wasteland, there are hundreds of currencies distributed and minted by different polities, but the most common currency are chips. For simplicity, you don't have to convert from different currencies into chips by default. Your GM may determine that having different currencies is integral to your adventure, in which case they can hand out custom currencies with a determined exchange rate. If your GM decides to use custom currencies, they also decide if a merchant is willing to accept that currency or chips. Throughout this document and the library, you will see chips represented by the symbol below:\r\n

    \r\n\r\n
    \r\n \r\n
    \r\n\r\n

    \r\n When selling items, you will typically receive half the item's value in chips, rounded up. If the items are damaged, your GM determines what price the buyer is willing to pay. Additionally, not everyone you find in the wasteland will be willing or able to purchase items from you. The GM should determine whether or not a potential buyer would even consider purchasing an item you want to sell in the first place, or if they can even afford to purchase it. If they cannot afford to purchase that item, they may offer other goods or services in exchange. Likewise, you may be able to fetch an item for a cheaper price if you provide additional goods and services to the seller.\r\n

    \r\n \r\n Most people in the wasteland aren't fools! They are probably unwilling to sell an item at reduced cost unless the party can ensure their end of the bargain, perhaps with collateral, proof of performing the deed, or some other means. Usually, this occurs by just having them wait for the players to perform the service before buying or selling the item.\r\n \r\n\r\n \r\n If you want to better simulate reality, you can assign physical chips a weight of 0.005 kg.\r\n \r\n
    \r\n)\r\n","import React from 'react';\r\nimport { RuleLinks } from '..';\r\nimport { ArticleProps } from '../../articles/ArticleProps';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { RulesArticle } from '../RulesArticle';\r\nimport { ArmorNavLink } from './ArmorRules';\r\nimport { CraftingRulesLink } from './CraftingRules';\r\nimport { ModRulesLink } from './ModRules';\r\nimport { OutfittingRulesLink } from './OutfitRules';\r\nimport { WeaponRulesLink } from './WeaponRules';\r\nimport { StartingEquipmentRulesLink } from './StartingEquipmentRules';\r\nimport { TheCataclysm } from '../../theming/texts';\r\nimport { MoneyRulesLink } from './MoneyRules';\r\n\r\nexport const EquipmentRulesLink = new ArticleNavLink({\r\n path: 'Equipment',\r\n name: 'Equipment',\r\n render: (index?: number) => ,\r\n sublinks: [\r\n OutfittingRulesLink,\r\n ArmorNavLink,\r\n ModRulesLink,\r\n WeaponRulesLink,\r\n CraftingRulesLink,\r\n MoneyRulesLink,\r\n StartingEquipmentRulesLink,\r\n ]\r\n});\r\n\r\nconst EquipmentRules: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n Your equipment helps feed you when you're hungry, fires bullets at your enemies, and grants you the power to build worldchanging gadgets. Adventurers can find the equipment they need to explore the wasteland in markets or hidden away in ancient tombs from before . Wherever you character found your equipment, this chapter will explain the basics of how to use and manage it.\r\n

    \r\n
    \r\n);","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { GMNote, PlayerNote } from \"../../directives/Directives\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const GainingTraitsRulesLink = new ArticleNavLink({\r\n name: 'Gaining Traits',\r\n path: '#GainingTraits',\r\n render: () => \r\n});\r\n\r\nconst GainingTraits: React.FC = () => (\r\n
    \r\n

    Gaining Traits

    \r\n

    \r\n Gaining traits is as easy as roleplaying your character. As you behave in accordance with your character's personality, the GM will assign you traits that fit that behavior. Alternatively, if you believe your character has behaved in a way that merits receiving a trait, you can request that trait from the GM. Generally, players should have 5 or fewer personality traits as only traits are intended to represent core aspects of your personality.\r\n

    \r\n \r\n It's a good idea to focus on the most pronounced traits that a character displays. Several characters may qualify for the bold trait, but for some characters it will be a far more definining trait than others. Also note that traits are subjective. Do not hand out traits haphazardly, positive or negative, as your perception of how someone is behaving may not align with others' perspectives.\r\n \r\n \r\n Try not to request traits from the GM too frequently. Requesting traits too often can give others the feeling that you are roleplaying to accomplish a personal goal than to realize a character you have envisioned. Ultimately, whether or not you are deserving of a trait is determined by the GM, and they may see fit to restrict your ability to gain traits or even assign you the flip-flopper trait if they feel you are saying whatever you think will get you want.\r\n \r\n
    \r\n);","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const LosingTraitsRulesLink = new ArticleNavLink({\r\n name: 'Losing Traits',\r\n path: '#LosingTraits',\r\n render: () => \r\n});\r\n\r\nconst LosingTraits: React.FC = () => (\r\n
    \r\n

    {LosingTraitsRulesLink.name}

    \r\n

    \r\n You can lose traits when your character stops behaving in a certain way. Usually this is because circumstances have caused your character to grow (or regress!) in some manner. Whatever the case may be, when a trait is no longer applicable, the GM should remove it from your list of traits. Alternatively, if you feel your character no longer behaves in a manner consistent with one of their traits, you can request the GM remove it from your character.\r\n

    \r\n
    \r\n);","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { Directive } from '../../directives/Directives';\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport const CraftPersonalityRulesLink = new ArticleNavLink({\r\n name: 'Crafting a Personality',\r\n path: '#PersonalityTraits',\r\n render: () => \r\n});\r\n\r\nconst CraftPersonalityRules: React.FC = () => (\r\n
    \r\n

    {CraftPersonalityRulesLink.name}

    \r\n

    \r\n When creating a character, choose two Personality Traits from the list with the Positive attribute and mark them on your character sheet.\r\n

    \r\n \r\n

    \r\n We envisioned Chelle as Spunky and Ambitious. If you feel the same, mark those traits down on your character sheet, or pick two different ones that you think better suit Chelle.\r\n

    \r\n
    \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { RuleLinks } from '..';\r\nimport { ArticleProps } from '../../articles/ArticleProps';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { RulesArticle } from '../RulesArticle';\r\nimport { GainingTraitsRulesLink } from './GainingTraits';\r\nimport { LosingTraitsRulesLink } from './LosingTraits';\r\nimport { Link } from \"react-router-dom\";\r\nimport { CraftPersonalityRulesLink } from './CraftingYourPersonality';\r\n\r\nexport const PersonalityRulesLink = new ArticleNavLink({\r\n path: 'Personalities',\r\n name: 'Personalities',\r\n render: (index?: number) => ,\r\n sublinks: [\r\n GainingTraitsRulesLink,\r\n LosingTraitsRulesLink,\r\n CraftPersonalityRulesLink,\r\n ]\r\n});\r\n\r\nconst PersonalityRules: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n Your character's personality determines how you are perceived in the wasteland. Different personalities will change how you interact with other characters and can enhance (or detract!) from your ability to engage in dialogue and diplomacy. Some personality traits will give you additional options when speaking, others will give you boosts to verbal challenges and your ability to pass those challenges, and others can directly change the course and subject of conversation.\r\n

    \r\n

    \r\n You can view the complete the complete list of Personality Traits here.\r\n

    \r\n
    \r\n);","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { GMNote } from '../../directives/Directives';\r\n\r\nexport const AssistingInChallengeRulesLink = new ArticleNavLink({\r\n name: 'Assisting In Challenges',\r\n path: '#AssistingInChallenges',\r\n render: () => \r\n});\r\n\r\nconst AssistingInChallengeRules: React.FC = () => (\r\n
    \r\n

    {AssistingInChallengeRulesLink.name}

    \r\n

    \r\n Party members are likely to try and help each other out! When the circumstances make sense, having the assistance of a party member grants the challenged player advantage on their roll.\r\n

    \r\n \r\n Don't hand out advantage too easily. Players should provide more assistance besides saying \"I give my friend help\" in order for it to count as an assist.\r\n \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\n\r\nexport const CollaborativeChallengeRulesLink = new ArticleNavLink({\r\n name: 'Collaborative Challenges',\r\n path: '#CollaborativeChallenges',\r\n render: () => \r\n});\r\n\r\nconst CollaborativeChallengeRules: React.FC = () => (\r\n
    \r\n

    {CollaborativeChallengeRulesLink.name}

    \r\n

    \r\n A collaborative challenge is one that challenges two or more party members. When working together, each player in the party performs the challenge using their respective rhetoric or skill. If more than half the party passes the challenge, the challenge succeeds. If more than half the party fails the challenge, the challenge fails. On any other outcome, the party succeeds at cost.\r\n

    \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\n\r\nexport const OpposedChallengeRulesLink = new ArticleNavLink({\r\n name: 'Opposed Challenges',\r\n path: '#OpposedChallenges',\r\n render: () => \r\n});\r\n\r\nconst OpposedChallengeRules: React.FC = () => (\r\n
    \r\n

    {OpposedChallengeRulesLink.name}

    \r\n

    \r\n Sometimes, challenges occur between two characters. When this happens, the GM decides which two rhetorics or skills are opposing one another, then the player rolls as normal and the GM rolls using the NPC's dice boons. The character with the better roll receives a favorable outcome. If both characters are still tied after tiebreakers, then PCs beat NPCs. If both characters are PCs or NPCs, then whichever roll maintains the status quo takes priority.\r\n

    \r\n
    \r\n);\r\n","import React from \"react\";\r\nimport { RulesFiguresConfig } from \"./RulesFigures\";\r\n\r\nexport const ChallengeDifficultyTable = () => {\r\n const { headerSpan } = RulesFiguresConfig;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n GM Dice Boons for Challenge Difficulty\r\n
    DifficultyEasyModerateDifficultMasterfulImpossible
    Die Rerolls01122
    Extra Dice00112
    \r\n );\r\n}","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { GMNote } from \"../../directives/Directives\";\r\nimport { ChallengeDifficultyTable } from \"../figures/ChallengeFigures\";\r\n\r\nexport const ChallengeDifficultyRulesLink = new ArticleNavLink({\r\n name: 'Challenge Difficulty',\r\n path: '#ChallengeDifficulty',\r\n render: () => \r\n});\r\n\r\nconst ChallengeDifficultyRules: React.FC = () => (\r\n
    \r\n

    {ChallengeDifficultyRulesLink.name}

    \r\n

    \r\n After issuing a challenge, your GM will decide on a difficulty for it. The difficulty of the challenge will determine how many dice boons the GM will use when opposing the player's rhetoric, skill, or competency. Challenges can have the following difficulties:\r\n

    \r\n
      \r\n
    1. \r\n Easy. The GM will not reroll any dice when the player is faced with an easy task. Characters with a skill of 1–2 have a 50/50 chance to succeed on an easy challenge. An easy athletics check might be throwing a grappling hook over a short wall.\r\n
    2. \r\n
    3. \r\n Moderate. The GM may reroll up to one of their initial dice when presenting players with moderate challenges. Characters with a skill of 3–4 have 50/50 odds to succeed on a moderate challenge. A moderate engineering challenge might involve patching and repairing a broken gearbox in a robot.\r\n
    4. \r\n
    5. \r\n Difficult. The GM will roll an additional die and reroll up to one of their initial dice when the player is faced with a difficult task. Characters with a skill of 5–6 have 50/50 odds to succeed on a difficult challenge. A difficult medicine challenge might involve purifying a sample of experimental drugs.\r\n
    6. \r\n
    7. \r\n Masterful. The GM will roll an additional die and reroll up to two of their initial dice when the player is faced with a masterful task. Characters with a skill of 7–8 have 50/50 odds to succeed on a masterful challenge. A masterful athletics check might involve scaling a building by leaping from walls and small footholds.\r\n
    8. \r\n
    9. \r\n Impossible. The GM will roll two additional dice and and reroll up to two of their initial dice when the player is faced with an impossible task. Characters with a skill of 9–10 have about 50/50 odds to succeed on an impossible challenge. An impossible subterfuge check might involve sneaking past a hundred trained guards, motion sensors, and infra-red cameras. Impossible challenges should be truly extraordinary; even the best of the best only have a coin flip's chance at success!\r\n
    10. \r\n
    \r\n

    \r\n Below is a table indicating the number of extra dice rolled and dice the GM may reroll when presenting characters with challenges of different difficulties:\r\n

    \r\n \r\n \r\n Don't make players perform challenges for trivial things. A challenge should only be involved when there is some possibility of and consequence for failing or some possibility of and consequence for success. Think about what might actually present a challenge to a player and whether or not a challenge is appropriate. You should generally avoid issuing easy challenges to players with an 8 in the appropriate rhetoric, skill, or competency. Likewise, you might simply avoid issuing an impossible challenge to a character with a poor rhetoric, skill, or competency.\r\n \r\n
    \r\n)","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { Example } from '../../directives/Directives';\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport const SocialChallengeRulesLink = new ArticleNavLink({\r\n name: 'Social Challenges',\r\n path: '#SocialChallenges',\r\n render: () => ,\r\n sublinks: []\r\n});\r\n\r\nconst SocialChallengesRules: React.FC = () => (\r\n
    \r\n

    {SocialChallengeRulesLink.name}

    \r\n

    \r\n Your GM may issue social challenges whenever they see fit based on how the conversation with one or more NPCs is going. Like with other challenges, GMs do not need to challenge players if they do not believe the encounter is meaningful enough to merit a challenge, whether that is good or bad for the party.\r\n

    \r\n \r\n A ragtag band of adventurers is not going to convince a king to march his army on another province with words alone, and there is no need to raise a challenge to see if the party can successfully convince a villager that their house is on fire when they can turn and see it.\r\n \r\n

    \r\n Social challenges are constructed in mostly the same manner as skill challenges, except players use dice boons as determined by their rhetoric level in the chapter on rhetorical strategies. Here is an example interaction where a GM issues a social challenge to Chelle Zappah:\r\n

    \r\n \r\n
    \r\n GM: Your party comes across a crippled member of the Bleeding Wolves gang. Left to die by his comrades, he chokes on his words. His arm is broken, and he has about an hour to live by the look of things.\r\n
    \r\n Chelle (PC): You there, Wolf! You fought hard earlier and deserve a clean death. Tell us where your gang is headed, and I will end your suffering.\r\n
    \r\n GM: Roll Reason\r\n
    \r\n
    \r\n
    \r\n);\r\n","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Example, GMNote } from \"../../directives/Directives\";\r\nimport { ChallengeDifficultyTable } from \"../figures/ChallengeFigures\";\r\n\r\nexport const SkillChallengeRulesLink = new ArticleNavLink({\r\n path: \"#SkillChallenges\",\r\n name: \"Skill Challenges\",\r\n render: () => \r\n})\r\n\r\nconst SkillChallengeRules = () => (\r\n
    \r\n

    {SkillChallengeRulesLink.name}

    \r\n

    \r\n Skill challenges occur when one of your skills is being challenged by the GM.\r\n

    \r\n

    Performing A Skill Challenge

    \r\n

    \r\n To perform a skill challenge, the GM decides which of your skills is most relevant for the challenge. If you try to pry open a stuck door, expect your athletics skill to be relevant. If you try to set a broken leg, your medicine skill will probably be used.\r\n

    \r\n \r\n You try to defuse a bomb, and your GM issues a moderate Explosives challenge against your explosives skill of 5. First, the GM rolls the two communal dice, then you and the GM roll your 3 initial dice. Because you have an explosive skill of 5, you can reroll up to 1 die and roll 1 extra die. Because the GM issued a moderate challenge, they can reroll up to 1 die. After you've both used your dice boons, you declare rolls and determine which roll wins according to the table listed in the chapter on roll values.\r\n \r\n
    \r\n)","import React from 'react';\r\nimport { RuleLinks } from '..';\r\nimport { ArticleProps } from '../../articles/ArticleProps';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { GMNote } from '../../directives/Directives';\r\nimport { RulesArticle } from '../RulesArticle';\r\nimport { AssistingInChallengeRulesLink } from './AssistedChallengeRules';\r\nimport { CollaborativeChallengeRulesLink } from './CollaborativeChallengeRules';\r\nimport { OpposedChallengeRulesLink } from './OpposedChallengeRules';\r\nimport { ChallengeDifficultyRulesLink } from './ChallengeDifficulty';\r\nimport { Link } from 'react-router-dom';\r\nimport { SocialChallengeRulesLink } from './SocialChallenges';\r\nimport { SkillChallengeRulesLink } from './SkillChallengeRules';\r\n\r\nexport const ChallengeRulesLink = new ArticleNavLink({\r\n path: 'Challenges',\r\n name: 'Challenges',\r\n render: (index?: number) => ,\r\n sublinks: [\r\n ChallengeDifficultyRulesLink,\r\n SkillChallengeRulesLink,\r\n SocialChallengeRulesLink,\r\n OpposedChallengeRulesLink,\r\n CollaborativeChallengeRulesLink,\r\n AssistingInChallengeRulesLink,\r\n ]\r\n});\r\n\r\nconst ChallengeRules: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n The post-cataclysmic wasteland is unforgiving and you'll find yourself tested more often than not. When you come across circumstances that require you to perform an uncanny feat, the GM will issue a challenge. A challenge is a test to see if you can actually attain the outcome you want. There are three types of challenges you can engage in:\r\n

    \r\n
      \r\n
    • Rhetorical Challenges
    • \r\n
    • Skill Challenges
    • \r\n
    • Competency Challenges
    • \r\n
    \r\n \r\n Remember, Competency Challenges should be used rarely. It's encouraged to have competencies serve as roleplaying tools rather than to solve challenges.\r\n \r\n \r\n

    \r\n When you try to do something and your GM issues a challenge, the GM determines a difficulty for the challenge and announces to the player(s) what is at stake. You should be aware of what you are rolling for and what is likely to happen if you succeed or fail. After announcing the stakes, the GM rolls communal dice for the challenge. Then, the player rolls a hand for the requisite skill, using all dice boons associated with that skill as they like. The GM also rolls a hand with the dice boons associated with their chosen difficulty (covered in more detail in the section on Challenge Difficulty).\r\n

    \r\n

    \r\n If your roll beats the GM's roll without going to tie breaks, then the challenge is passed. If your roll beats the GM's roll on tie breaks, you succeeds with a cost attached (determined by the GM). If your roll loses to the GM's roll on tie breaks, you fail but receive some compensation (determined by the GM). If your roll loses to the GM's roll without going to tie breaks, you simply fail the challenge and receive no compensation.\r\n

    \r\n \r\n Typically, it only makes sense to challenge players on tasks that they can be reasonably expected to have a chance at failing or succeeding. If a character has downloaded information from a computer onto a drive several times before and has a high engineering skill, it doesn't require an engineering challenge to see if they can accomplish this task. Likewise, it may not make sense to let a character with no athletics training attempt a 2 hour marathon. Issue challenges when it makes sense that the character could succeed or fail under reasonable circumstances; rolling for the sake of rolling can bog down the pace of the game.\r\n \r\n
    \r\n)","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\n\r\nexport const CombatRoundRulesLink = new ArticleNavLink({\r\n name: 'Action Rounds',\r\n path: '#ActionRounds',\r\n render: () => \r\n});\r\n\r\nconst CombatRoundRules: React.FC = () => (\r\n
    \r\n

    {CombatRoundRulesLink.name}

    \r\n

    \r\n Action Scenes are performed in rounds which consist of turns for each character participating in the action scene. A round represents about 6 seconds of time from your character's perspective. The next chapter will detail how to perform actions during the players' turn. Action rounds occur in the following manner:\r\n

    \r\n
      \r\n
    1. The GM rolls the communal dice.
    2. \r\n
    3. \r\n Players perform their actions simultaneously, resolving them in whichever order they like.\r\n
    4. \r\n
    5. \r\n NPCs perform their actions simultaneously, under the GM's control and resolving in whatever order the GM likes.\r\n
    6. \r\n
    7. \r\n Repeat until the action scene ends: all belligerents from all but one faction have been killed, incapacitated, or surrendered.\r\n
    8. \r\n
    \r\n

    \r\n If the players are taken by surprise or ambushed, instead the NPCs will perform their actions first and players will go second.\r\n

    \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\n\r\nconst CoverNavLink = new ArticleNavLink({ name: 'Cover', path: '#Cover' });\r\nconst PositioningNavLink = new ArticleNavLink({ name: 'Positioning', path: '#Positioning' });\r\n\r\nexport const CoverPositioningRulesLink = new ArticleNavLink({\r\n name: 'Cover & Positioning',\r\n path: '#CoverPositioning',\r\n render: () => ,\r\n sublinks: [CoverNavLink, PositioningNavLink]\r\n});\r\n\r\nconst CoverPositioningRules: React.FC = () => (\r\n
    \r\n

    {CoverPositioningRulesLink.name}

    \r\n
    \r\n

    {CoverNavLink.name}

    \r\n

    \r\n By taking cover behind concrete palisades, diving into a trench, or just getting low, you can reduce the amount of damage your character receives from attacks. Cover is relative, so what might count as cover from one enemy may not provide any protection from another! Consider the direction your enemies are in when assessing how defensible your position is. There are three types of cover:\r\n

    \r\n
    \r\n
    No Cover
    \r\n
    \r\n The character is receiving no noteworthy protection from the environment.\r\n
    \r\n\r\n
    Partial Cover
    \r\n
    \r\n The character is receiving some cover from their environment. For example, they could be crouched (prone) in a foxhole or hiding behind sandbags. Ranged attacks and spells that target a character behind partial cover are made with disadvantage and characters behind partial cover have advantage on reflex rolls made against ranged attacks and spells. Partial cover may not work in all directions. For example, if you are taking cover behind a wall, the wall only provides partial cover for attacks from the other side.\r\n
    \r\n\r\n
    Total Cover
    \r\n
    \r\n The character is completely protected from the enemy. The character may be located behind a building, completely obscured by a concrete bunker, or sitting in an underground complex. Characters in complete cover cannot be targeted and are immune to damage from abilities outside the cover unless otherwise specified. If an ability would damage a character while in Total Cover (through some special means), that character is treated as though they are in Partial Cover for that ability.\r\n
    \r\n
    \r\n

    \r\n When taking cover while operating, riding in, or crouching behind a vehicle, all damage reduced by cover is dealt to the vehicle. Secondary effects from attacks made in this manner do not affect the vehicle unless otherwise specified.\r\n

    \r\n
    \r\n
    \r\n

    {PositioningNavLink.name}

    \r\n

    There are two positions a character can be in:

    \r\n
    \r\n
    Standing
    \r\n
    \r\n The character is standing upright. Standing upright will cause the character to no longer benefit from cover which is not sufficiently tall.\r\n
    \r\n\r\n
    Prone
    \r\n
    \r\n

    \r\n The character is kneeling, crouched, or laying on the ground. While prone, characters have advantage when performing reflex rolls made against explosions and other abilities which affect an area. Melee attacks are made with advantage against a target that is prone. To get up from being prone, you must spend 3 hexes of movement.\r\n

    \r\n

    \r\n Every hex traversed while prone costs 3 total hexes of movement, so if you can travel a total of 6 hexes normally, you can travel only 2 hexes while prone. Additionally, while you are prone, ranged attacks and spells have an additional 1 range.\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { Example } from '../../directives/Directives';\r\nimport { EmpowermentTable } from '../figures/EmpowermentTable';\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst IncreasingDecreasingDamage = new ArticleNavLink({\r\n name: 'Increasing & Decreasing Damage',\r\n path: '#IncreasingDecreasingDamage',\r\n});\r\n\r\nexport const DamageRulesLink = new ArticleNavLink({\r\n name: 'Damage',\r\n path: '#Damage',\r\n render: () => ,\r\n sublinks: [IncreasingDecreasingDamage]\r\n});\r\n\r\nconst DamageRules: React.FC = () => (\r\n
    \r\n

    {DamageRulesLink.name}

    \r\n

    \r\n To determine how much damage an attack or spell deals, you take the damage of the mod used to deal that damage and subtract the opponent's relevant resistances. For more information about the different types of damage and which defensive stats reduce them, see the chapter on Armor & Resilience.\r\n

    \r\n \r\n

    \r\n Chelle fires a Jacketed Round from her rifle at Bob, who has a total of 2 armor. Because a Jacketed Round deals 8 percussive damage, Bob takes 6 damage from the attack.\r\n

    \r\n
    \r\n
    \r\n

    {IncreasingDecreasingDamage.name}

    \r\n

    \r\n If an effect instructs you to increase the damage of an effect but does not specify the type of damage to increase, you choose a damage type from among the damage dealt by the effect to increase by that amount.\r\n

    \r\n

    \r\n Additionally, whenever you are instructed to double or halve damage (or apply any other multiplier to damage), damage is doubled or halved after subtracting armor and resistances from the damage unless otherwise specified. Whenever a value is halved, round down.\r\n

    \r\n
    \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { Variant } from '../../directives/Directives';\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst ObscurementNavLink = new ArticleNavLink({ name: 'Obscurement', path: '#Obscurement' });\r\nconst LightingNavLink = new ArticleNavLink({ name: 'Lighting', path: '#Lighting' });\r\nconst BlindFiringNavLink = new ArticleNavLink({ name: 'Blind Firing', path: '#BlindFiring' });\r\n\r\nexport const TargetingRulesLink = new ArticleNavLink({\r\n name: 'Vision & Targeting',\r\n path: '#VisionTargeting',\r\n render: () => ,\r\n sublinks: [ObscurementNavLink, LightingNavLink, BlindFiringNavLink],\r\n});\r\n\r\nconst TargetingRules: React.FC = () => (\r\n
    \r\n

    {TargetingRulesLink.name}

    \r\n

    \r\n When you attempt to use an action that targets another character or object, you must be able to see or know its location by some means in order to target it.\r\n

    \r\n
    \r\n

    {ObscurementNavLink.name}

    \r\n

    \r\n A character or object's obscurement determines how easy it is to see from a character's point of view. Like with cover, how obscured a subject is relative to one character may not be the same as their obscurement to another. For example, a character hiding behind a wall will be completely obscured to characters on the other side of the wall, but they will not be obscured to a character right next to them. There are three levels of obscurement:\r\n

    \r\n
    \r\n
    Unobscured
    \r\n
    There is no barrier to visibly identifying the subject.
    \r\n\r\n
    Obscured
    \r\n
    \r\n

    \r\n Your ability to perceive the subject is severely or completely reduced. Someone inside a cloud of smoke would be completely obscured to those outside the cloud. A character behind Total Cover is always obscured unless revealed by some other means. Attacks against an enemy you can see when you are obscured from their vision are made with advantage.\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {LightingNavLink.name}

    \r\n

    \r\n Lighting determines how well lit an area is, making it easier to see things. There are two different levels of lighting:\r\n

    \r\n
    \r\n
    Normal Lighting
    \r\n
    \r\n Normal lighting occurs in well lit areas or outside during the day.\r\n
    \r\n\r\n
    Poor Lighting
    \r\n
    \r\n Poor lighting occurs at night or in unlit areas. In poor lighting, anything you look at is considered obscured.\r\n
    \r\n
    \r\n

    \r\n Like with cover and obscuration, lighting is perceived differently by different characters. A character wearing Night Finders will not be affected by poor lighting conditions.\r\n

    \r\n
    \r\n
    \r\n

    {BlindFiringNavLink.name}

    \r\n

    \r\n When you can't see your target, you can still attack them. Attacks against characters you can't see are made with disadvantage.\r\n

    \r\n \r\n If you know a character's location through some other means, you can limit the number of hexes you have to randomly select from when blind firing. For example, if your character can hear roughly where the enemy is, then you would only have to select randomly from hexes within 1 range of the target's actual location.\r\n \r\n
    \r\n
    \r\n);\r\n","import React from \"react\";\r\nimport { RulesFiguresConfig } from \"./RulesFigures\";\r\n\r\ntype Props = {\r\n header: React.ReactNode;\r\n bonusLabel?: React.ReactNode;\r\n}\r\n\r\nexport const EmpowermentTable = (props: Props) => {\r\n const { minLevel, maxLevel, headerSpan } = RulesFiguresConfig;\r\n const { header, bonusLabel } = props;\r\n const levelRows: React.ReactNode[] = [];\r\n const bonusRows: React.ReactNode[] = [];\r\n\r\n for (let i = minLevel; i <= maxLevel; i++) {\r\n levelRows.push({i});\r\n bonusRows.push(+{Math.floor(i / 2)})\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {levelRows}\r\n \r\n \r\n \r\n {bonusRows}\r\n \r\n \r\n
    \r\n {header}\r\n
    Skill Level
    {bonusLabel ?? \"Empowerment Bonus\"}
    \r\n );\r\n}","import React from \"react\"\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\"\r\nimport { Example } from \"../../directives/Directives\"\r\nimport { EmpowermentTable } from \"../figures/EmpowermentTable\"\r\n\r\n\r\nexport const EmpoweredAbilitiesRulesLink = new ArticleNavLink({\r\n name: \"Empowered Abilities\",\r\n path: \"#EmpoweredAbilities\",\r\n render: () => \r\n})\r\n\r\nconst EmpoweredAbilitiesRules = () => (\r\n
    \r\n

    {EmpoweredAbilitiesRulesLink.name}

    \r\n

    \r\n Some abilities will mention that they are Empowered. When an ability is empowered, you use the empowerment bonus of the relevant skill to increase the power of the ability. Unless otherwise specified, add the empowerment bonus to any damage the ability deals, otherwise, add the empowerment bonus where specified. You can empower only one ability per round. Use the table below to determine your empowerment bonus for a skill:\r\n

    \r\n \r\n

    \r\n Sometimes, you will be instructed to empower an ability multiple times. To do this, add the empowerment bonus from the table as many times as instructed.\r\n

    \r\n \r\n You roll a Jackpot! when firing your handgun with a Firearms skill of 10. You see that the trigger allows \"Empower x2\". If you choose to empower this attack, it will deal an additional 5+5 (10) damage.\r\n \r\n
    \r\n)","import React from 'react';\r\nimport { RuleLinks } from '..';\r\nimport { ArticleProps } from '../../articles/ArticleProps';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { RulesArticle } from '../RulesArticle';\r\nimport { CombatRoundRulesLink } from './CombatRoundsRules';\r\nimport { CoverPositioningRulesLink } from './CoverPositioningRules';\r\nimport { DamageRulesLink } from './DamageRules';\r\nimport { TargetingRulesLink } from './VisionTargetingRules';\r\nimport { EmpoweredAbilitiesRulesLink } from './EmpoweredAbilities';\r\n\r\nexport const ActionScenesRulesLink = new ArticleNavLink({\r\n path: 'Action',\r\n name: 'Action Scenes',\r\n render: (index?: number) => ,\r\n sublinks: [\r\n CombatRoundRulesLink,\r\n DamageRulesLink,\r\n EmpoweredAbilitiesRulesLink,\r\n CoverPositioningRulesLink,\r\n TargetingRulesLink,\r\n ]\r\n});\r\n\r\nconst CombatRules: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n On your adventures, you will sometimes come across challenges which require more precise timekeeping. When you encounter an avalanche while ascending a mountain or raiders attempting to rob you, an action scene begins. This chapter will detail how to resolve these types of conflicts.\r\n

    \r\n
    \r\n);","import React from 'react';\r\nimport { RuleLinks } from '..';\r\nimport { ArticleProps } from '../../articles/ArticleProps';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { RulesArticle } from '../RulesArticle';\r\n\r\nconst Addicted = new ArticleNavLink({ name: \"Addicted\", path: \"#Addicted\" });\r\nconst Aromatic = new ArticleNavLink({ name: 'Aromatic', path: '#Aromatic' });\r\nconst Adrenalized = new ArticleNavLink({ name: 'Adrenalized', path: '#Adrenalized' });\r\nconst Burned = new ArticleNavLink({ name: 'Burned', path: '#Burned' });\r\nconst Bloodied = new ArticleNavLink({ name: 'Bloodied', path: '#Bloodied' });\r\nconst Concussed = new ArticleNavLink({ name: 'Concussed', path: '#Concussed' });\r\nconst Cuffed = new ArticleNavLink({ name: 'Cuffed', path: '#Cuffed' });\r\nconst Dazed = new ArticleNavLink({ name: 'Dazed', path: '#Dazed' });\r\nconst Deafened = new ArticleNavLink({ name: 'Deafened', path: '#Deafened' });\r\nconst Demoralized = new ArticleNavLink({ name: 'Demoralized', path: '#Demoralized' });\r\nconst Fatigued = new ArticleNavLink({ name: 'Fatigued', path: '#Fatigued' });\r\nconst Frenzied = new ArticleNavLink({ name: 'Frenzied', path: '#Frenzied' });\r\nconst Hypothermic = new ArticleNavLink({ name: 'Hypothermic', path: '#Hypothermic' });\r\nconst Incensed = new ArticleNavLink({ name: 'Incensed', path: '#Incensed' });\r\nconst Malfunctioning = new ArticleNavLink({ name: 'Malfunctioning', path: '#Malfunctioning' });\r\nconst Muffled = new ArticleNavLink({ name: 'Muffled', path: '#Muffled' });\r\nconst Restrained = new ArticleNavLink({ name: 'Restrained', path: '#Restrained' });\r\nconst Resuscitated = new ArticleNavLink({ name: 'Resuscitated', path: '#Resuscitated' });\r\nconst Ridiculous = new ArticleNavLink({ name: 'Ridiculous', path: '#Ridiculous' });\r\nconst Sickened = new ArticleNavLink({ name: 'Sickened', path: '#Sickened' });\r\nconst Stinky = new ArticleNavLink({ name: 'Stinky', path: '#Stinky' });\r\nconst Unconscious = new ArticleNavLink({ name: 'Unconscious', path: '#Unconscious' });\r\nconst Vivacious = new ArticleNavLink({ name: 'Vivacious', path: '#Vivacious' });\r\n\r\nexport const ConditionRulesLink = new ArticleNavLink({\r\n path: 'Conditions',\r\n name: 'Conditions',\r\n render: (index?: number) => ,\r\n articleOnlySublinks: true,\r\n sublinks: [\r\n Addicted,\r\n Aromatic,\r\n Adrenalized,\r\n Burned,\r\n Bloodied,\r\n Cuffed,\r\n Dazed,\r\n Demoralized,\r\n Fatigued,\r\n Frenzied,\r\n Hypothermic,\r\n Incensed,\r\n Malfunctioning,\r\n Muffled,\r\n Restrained,\r\n Resuscitated,\r\n Ridiculous,\r\n Sickened,\r\n Stinky,\r\n Deafened,\r\n Unconscious,\r\n Vivacious,\r\n ]\r\n});\r\n\r\nconst ConditionRules: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n Your character can become afflcited by various conditions throughout your journeys in the wasteland. Engaging in action scenes, your behavior, and social circumstances can all cause you to acquire these conditions. While not all conditions are bad, most are, so be wary!\r\n

    \r\n
    \r\n
    {Addicted.name}
    \r\n
    \r\n An addicted character is suffering withdrawal symptoms. They are affected by any other conditions associated with their addiction until they have cured their addiction. Look at the usage directions for whatever got them addicted to learn how to cure it. Addicts cannot benefit from drugs the are addicted to, and taking the drug will not provide its normal benefits, only temporarily removing the addicted status and withdrawal symptoms for the duration of the drug's dose. People will try to avoid confrontations or interactions with addicts.\r\n
    \r\n\r\n
    {Adrenalized.name}
    \r\n
    \r\n An adrenalized character is experiencing an adrenaline high. While adrenalized, a character ignores all other status effects during action scenes.\r\n
    \r\n\r\n
    {Aromatic.name}
    \r\n
    \r\n An aromatic character has a pleasant scent, giving them advantage on all personality checks.\r\n
    \r\n\r\n
    {Bloodied.name}
    \r\n
    \r\n A character who is bloodied looks like they have been through a rough patch. Characters will strongly prefer to recommend this character seek medical attention unless they are announcing an emergency. The above has no effect on other bloodied characters, or on characters who know why the character is bloodied and are not concerned by it.\r\n
    \r\n\r\n
    {Burned.name}
    \r\n
    \r\n A burned character is suffering from second or third degree burns. Burned characters receive -1 resilience.\r\n
    \r\n\r\n
    {Cuffed.name}
    \r\n
    A cuffed character cannot use a cuffed hand.
    \r\n\r\n
    {Dazed.name}
    \r\n
    \r\n A dazed character is currently experiencing visual sensory overload. They cannot see more than 1 hex in any direction, all attacks made against them are treated as though they were from behind, and they cannot focus their attention on spells.\r\n
    \r\n\r\n
    {Deafened.name}
    \r\n
    \r\n A deafened character is currently unable to hear. Any auditory requirements to take an action cannot be met.\r\n
    \r\n\r\n
    {Demoralized.name}
    \r\n
    \r\n A demoralized character feels incredible dread and hopelessness. They deal 2 less damage against the source of their demoralization. This cannot reduce the damage a character would deal below 1.\r\n
    \r\n\r\n
    {Fatigued.name}
    \r\n
    \r\n A fatigued character is sleep deprived, overexerted, or otherwise exhausted. Fatigued characters have disadvantage on all rolls.\r\n
    \r\n\r\n
    {Frenzied.name}
    \r\n
    \r\n A frenzied character has an additional 2 movement and deals an additional 2 damage with their attacks. Frenzied characters cannot focus their attention on spells.\r\n
    \r\n\r\n
    {Hypothermic.name}
    \r\n
    \r\n A hypothermic character is having difficulty maintaining their internal body temperature. Hypothermic characters have their movement reduced by 2, if they have moved for the turn, they cannot perform ranged attacks or cast ranged spells, if they have performed a ranged attack or spell they cannot move for the turn, and they cannot take reactions.\r\n
    \r\n\r\n
    {Incensed.name}
    \r\n
    \r\n A character who is incensed is so angry they aren't thinking clearly. While incensed, they can only attack or target the subject or subjects of their rage.\r\n
    \r\n\r\n
    {Malfunctioning.name}
    \r\n
    \r\n A malfunctioning character or object is currently not working as intended. A malfunctioning character cannot move, makes random utterances and actions such as flashing lights and other features if available. A character cannot malfunction unless they are mechanical.\r\n
    \r\n\r\n
    {Muffled.name}
    \r\n
    \r\n A muffled character cannot speak or produce sounds through their normal sources (e.g. their voice, a speaker, or a horn) louder than a whisper. Characters can still produce sounds by causing two objects to collide with one another or as the result of an attack action. A muffled character automatically fails any personality checks unless the character and the interlocutor understand sign language or can communicate via writing.\r\n
    \r\n\r\n
    {Resuscitated.name}
    \r\n
    A resuscitated character has been recently revived, and cannot be revived again.
    \r\n\r\n
    {Restrained.name}
    \r\n
    A restrained character cannot move.
    \r\n\r\n
    {Ridiculous.name}
    \r\n
    \r\n A character who is ridiculous probably does not realize it. Their hair could be in cowlicks, their shirt on backwards, or someone put a “Kick Me” sign on their back. Ridiculous characters will not be taken seriously by most people, and any personality checks they attempt are treated as two hands worse and they lose all ties. None of the above applies to other ridiculous characters.\r\n
    \r\n\r\n
    {Sickened.name}
    \r\n
    \r\n A sickened character can be nauseated, vomiting, or otherwise feeling unwell. Treat all rolls by sickened characters as though they were one roll lower and they lose all ties.\r\n
    \r\n\r\n
    {Stinky.name}
    \r\n
    \r\n A stinky character emits a foul odor. Stinky characters treat all personality checks as though they were one hand worse. Characters interacting with a stinky character wish for the conversation to end as quickly as possible, and will take actions to try and stop the conversation. None of the above applies to other stinky characters.\r\n
    \r\n\r\n
    {Unconscious.name}
    \r\n
    \r\n Unconscious characters cannot perform any actions, reactions, or move unless they are sleepwalking or being controlled by a third party. Unconscious characters cannot focus their attention on spells.\r\n
    \r\n\r\n
    {Vivacious.name}
    \r\n
    \r\n Vivacious characters have advantage on reflex rolls and skill checks.\r\n
    \r\n
    \r\n
    \r\n)\r\n","import React from 'react';\r\nimport { Hand } from '../../../entities/rolls/Roll';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { Roll } from '../../figures/Rolls';\r\nimport { Example } from '../../directives/Directives';\r\n\r\nexport const DeclaringRollsNavLink = new ArticleNavLink({\r\n name: 'Declaring Rolls',\r\n path: '#DeclaringRolls',\r\n render: () => \r\n});\r\n\r\nconst ActionRollsRules: React.FC = () => (\r\n
    \r\n

    {DeclaringRollsNavLink.name}

    \r\n

    \r\n If a player has multiple eligible rolls they may declare their dice as any of those rolls. Once declared, the roll cannot be changed.\r\n

    \r\n \r\n Sam has rolled the following dice: . There are five possible rolls Sam can declare with those dice: a Full House (three 5's and two 1's), a Flush (all odds), a Triple (three 5's), a Pair (two 5's), or a different Pair (two 1's). Sam may declare the dice as any of those rolls but, once declared, the dice are only considered to be that roll and none of the others: if Sam declares a Flush, they cannot later declare the roll as a Full House.\r\n \r\n
    \r\n);\r\n\r\n\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { DeclaringRollsNavLink } from './DeclaringRolls';\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const ActionRollsNavLink = new ArticleNavLink({\r\n name: 'Action Rolls',\r\n path: '#ActionRolls',\r\n render: () => \r\n});\r\n\r\nconst ActionRollsRules: React.FC = () => (\r\n
    \r\n

    {ActionRollsNavLink.name}

    \r\n

    \r\n When you perform an action roll, you roll dice to form a poker hand. These rolls will typically happen when your character is taking actions which require some level of awareness and forethought. The steps to take to resovle an action roll are listed below:\r\n

    \r\n
      \r\n
    1. \r\n The GM rolls two communal dice. Both players and the GM will use these dice to form hands.\r\n
    2. \r\n
    3. \r\n Acting players roll 3 six-sided dice (3d6).\r\n
    4. \r\n
    5. \r\n Players choose an ability to use for this action.\r\n
    6. \r\n
    7. \r\n Players may reroll some of their dice and roll extra dice based on the level of the skill they chose to use for this action. Any advantage / disadvantage generated from \r\n
    8. \r\n
    9. \r\n Players declare a hand.\r\n
    10. \r\n
    11. \r\n Players use an ability associated with the selected skill (listed on the ability itself). They perform any basic actions stated in the ability's description, plus any additional abilities that are specified to occur for their declared hand.\r\n
    12. \r\n
    \r\n

    \r\n When players perform a skill or rhetoric check as part of an Opposed Challenge, or when it is the GM's turn during an action scene to determine the enemy's behavior for the turn, the GM will also perform the steps above starting at step 2. Whenever it is time for a new set of actions to resolve, such as when the round ends during an action scene or when a different skill or rhetorical check begins, repeat all of the steps above.\r\n

    \r\n
    \r\n);\r\n","import React, { useState } from \"react\";\r\nimport { RulesFiguresConfig, RulesFigureViewStyle, RulesFigureViewStyleOptions } from \"./RulesFigures\";\r\nimport { ThemedRadio } from \"../../inputs/radio/ThemedRadio\";\r\n\r\nexport const RollValuesTable = () => {\r\n const { headerSpan } = RulesFiguresConfig;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Rolls by Value
    RollValue
    Bust1
    Pair2
    Two Pair3
    Triple (Three-of-a-Kind)4
    Small Straight5
    Flush6
    Full House7
    Big Straight8
    Quad (Four-of-a-Kind)9
    Jackpot! (Five-of-a-Kind)10
    \r\n );\r\n}\r\n\r\nexport const RollValuesFigure = () => {\r\n const [viewStyle, setViewStyle] = useState('Table View');\r\n return (\r\n
    \r\n vs.name == viewStyle)!}\r\n onChange={(selection) => setViewStyle(selection.name)} />\r\n {viewStyle == 'Table View' && }\r\n {viewStyle == 'List View' && (\r\n
      \r\n
    1. Bust
    2. \r\n
    3. Pair
    4. \r\n
    5. Two Pair
    6. \r\n
    7. Triple (Three-of-a-Kind)
    8. \r\n
    9. Small Straight
    10. \r\n
    11. Flush
    12. \r\n
    13. Full House
    14. \r\n
    15. Big Straight
    16. \r\n
    17. Quad (Four-of-a-Kind)
    18. \r\n
    19. Jackpot! (Five-of-a-Kind)
    20. \r\n
    \r\n )}\r\n
    \r\n )\r\n}","import React from 'react';\r\nimport { Hand } from '../../../entities/rolls/Roll';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport {\r\n BigStraightExample,\r\n BustExample,\r\n FlushExample,\r\n FullHouseExample,\r\n JackpotExample,\r\n PairExample,\r\n QuadExample,\r\n Roll,\r\n SmallStraightExample,\r\n TripleExample,\r\n TwoPairExample,\r\n} from '../../figures/Rolls';\r\nimport { RollValuesFigure } from '../figures/RollValuesFigure';\r\nimport { CollapsibleSection } from '../../articles/CollapsibleSection';\r\n\r\nexport const ActionRollRulesLink = new ArticleNavLink({\r\n name: 'Rolls & Values',\r\n path: '#RollValues',\r\n render: () => ,\r\n sublinks: [\r\n new ArticleNavLink({ name: 'Bust', path: '#Bust' }),\r\n new ArticleNavLink({ name: 'Pair', path: '#Pair' }),\r\n new ArticleNavLink({ name: 'Two-Pair', path: '#TwoPair' }),\r\n new ArticleNavLink({ name: 'Triple', path: '#Triple' }),\r\n new ArticleNavLink({ name: 'Small Straight', path: '#SmallStraight' }),\r\n new ArticleNavLink({ name: 'Flush', path: '#Flush' }),\r\n new ArticleNavLink({ name: 'Full House', path: '#FullHouse' }),\r\n new ArticleNavLink({ name: 'Big Straight', path: '#BigStraight' }),\r\n new ArticleNavLink({ name: 'Quad', path: '#Quad' }),\r\n new ArticleNavLink({ name: 'Jackpot!', path: '#Jackpot' }),\r\n new ArticleNavLink({ name: 'Tie Breakers', path: '#TieBreaking' }),\r\n ],\r\n});\r\n\r\nconst ActionRollRules: React.FC = () => {\r\n return (\r\n
    \r\n

    {ActionRollRulesLink.name}

    \r\n

    \r\n Each roll has an associated value known as its Roll Value. When two rolls are opposing one another, the roll with the higher roll value overrides a roll with a lesser value. Below is a list of all possible rolls in increasing order of strength (and likelihood); e.g. a Jackpot is better than a Flush:\r\n

    \r\n \r\n \r\n

    Notation

    \r\n

    \r\n Rolls are represented as such: . Sometimes, you may notice rolls with more than 5 dice, this indicates that additional dice were included in the roll as part of a skill or special effect.\r\n

    \r\n

    \r\n Below is a description of each roll, how that roll will be represented in this document in the future, and how to break ties with this roll. In the event ties must be broken between two rolls and all tie breaking rules have been exhausted, whichever roll preserves the current state of the game wins the tie. If neither preserves the current state of the game, then roll a d6 and choose one roll to win on a 1-3 and the other to win on 4-6.\r\n

    \r\n\r\n
    \r\n

    Bust (e.g. )

    \r\n

    \r\n You roll a Bust when you have no other roll you can declare. There are only two possible Busts: and . Busts have a roll value of 1.\r\n

    \r\n \r\n

    \r\n In the unfortunate event that two Busts need a tie broken, the bust with the higher total sum of dice is the winner. For example, will defeat .\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Pair (e.g. )

    \r\n

    \r\n A Pair is a roll where at least two dice have matching faces. Pairs have a roll value of 2.\r\n

    \r\n \r\n

    \r\n The higher pair die value wins. For example, will defeat .\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Two-Pair (e.g. )

    \r\n

    \r\n A Two-Pair is a roll where at least two sets of two dice have matching faces. Two-Pairs have a roll value of 3.\r\n

    \r\n \r\n

    \r\n The higher die valued pair wins. If those are the same, the die faces of the other pair are compared. For example, a roll of will defeat and will defeat .\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Triple (e.g. )

    \r\n

    \r\n A Triple is a roll where at least three dice have matching faces. Triples have a roll value of 4.\r\n

    \r\n \r\n

    \r\n The highest value of the tripled dice wins. For example, a roll of will defeat .\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Small Straight (e.g. )

    \r\n

    \r\n A Small Straight is four dice in sequential order. Small Straights have a roll value of 5.\r\n

    \r\n \r\n

    \r\n The highest die value in the straight wins. For example, will defeat .\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Flush (e.g. )

    \r\n

    \r\n A Flush is a roll where all faces on the dice are odd, or all faces on the dice are even. Flushes have a hand value of 6.\r\n

    \r\n \r\n

    \r\n The highest valued die wins. If those values are tied, the next highest die values are compared until all dice have been compared. For example, will defeat and will defeat .\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Full House (e.g. )

    \r\n

    \r\n A Full House is a roll where at least three dice have matching faces, and the remaining two dice also have matching faces. Full Houses have a roll value of 7.\r\n

    \r\n \r\n

    \r\n The roll with the highest die face for their three matching dice wins. If those are the same, the roll with the highest value for their two matching dice wins. For example, will defeat and will defeat .\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Big Straight (e.g. )

    \r\n

    \r\n A Big Straight is five dice in sequential order. Big Straights have a roll value of 8.\r\n

    \r\n \r\n

    \r\n The highest die value wins. For example, will defeat .\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Quad (e.g. )

    \r\n

    \r\n A Quad is a roll where at least four dice have matching faces. Quads have a roll value of 9.\r\n

    \r\n \r\n

    \r\n The highest quadrupled value wins. For example, will defeat .\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n

    Jackpot! (e.g. )

    \r\n

    \r\n A Jackpot! is a roll where all five dice have matching faces. Jackpots! have a roll value of 10.\r\n

    \r\n \r\n

    \r\n The highest die value wins. For example, will defeat .\r\n

    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\n\r\nexport const AdvantageDisadvantageNavLink = new ArticleNavLink({\r\n name: 'Advantage & Disadvantage',\r\n path: '#AdvantageDisadvantage',\r\n render: () => \r\n})\r\n\r\nconst AdvantageDisadvantageRules = () => (\r\n
    \r\n

    {AdvantageDisadvantageNavLink.name}

    \r\n

    \r\n Sometimes, you have a bit of help when faced with a challenge. Maybe your friend has your back or you've got cards up your sleeve: something gives you an edge over the opposition. Other times, fortune just isn't favoring you. Maybe you're trying to outrun some wolves and are still recovering from a hangover the night before. To represent these factors, the terms \"Advantage\" and \"Disadvantage\" are used.\r\n

    \r\n\r\n

    Advantage

    \r\n

    \r\n When an action roll is said to have advantage, that means you can reroll one additional die. This additional reroll happens alongside any other rerolls you would normally get and after determining which action you'll be taking. If you have multiple sources of advantage when performing an action roll, you still only reroll one additional die.\r\n

    \r\n

    \r\n When a reflex roll is performed with advantage, you roll two dice and use the higher value. If you have multiple sources of advantage when performing a reflex roll, you still take the greater value of just two dice.\r\n

    \r\n\r\n

    Disadvantage

    \r\n

    \r\n When an action roll is said to have disadvantage, that means you reroll one less die than you normally would. If you have multiple sources of disadvantage when performing an action roll, you still only reroll one less die than normal. \r\n

    \r\n

    \r\n When a reflex roll is said to have disadvantage, that means you roll two dice and use the lower value. If you have multiple instances of disadvantage, you still take the lower value of just two dice.\r\n

    \r\n\r\n

    \r\n Advantage and disadvantage cancel each other out and, if you are given advantage and disadvantage multiple times, each instance of advantage or disadvantage cancels out one instance of the other. Thus, if you have more instances of advantage than disadvantage, you perform the roll with advantage. If you have more instances of disadvantage than advantage, you perform the roll with disadvantage. If you have equal instances of advantage and disadvantage on a roll, you treat the roll as normal and don't perform it with either advantage or disadvantage.\r\n

    \r\n \r\n You are trying to climb a rope. Your hands are chalked, which the GM rules give you advantage. Your party is also steadying the rope, which the GM rules would also give you advantage. However, the rope is very thin, which the GM rules gives disadvantage. One instance of your advantage will cancel out the disadvantage from the thin rope giving you advantage on this check, letting you reroll up to one of your dice on this Athletics check.\r\n \r\n\r\n

    \r\n Because NPCs do not roll for their abilities, if an NPC would be given advantage when using an ability against a player, instead players perform their defensive reflex roll with disadvantage. The opposite is also true: if an NPC would be given disadvantage when using an ability against a player, instead that player performs their defensive reflex roll with advantage.\r\n

    \r\n
    \r\n)","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { Example } from '../../directives/Directives';\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const ReflexRollsNavLink = new ArticleNavLink({\r\n name: 'Reflex Rolls',\r\n path: '#ReflexRolls',\r\n render: () => \r\n});\r\n\r\nconst ReflexRollsRules: React.FC = () => (\r\n
    \r\n

    {ReflexRollsNavLink.name}

    \r\n

    \r\n Reflex rolls are much simpler than action rolls, representing their spur-of-the-moment nature. To perform a reflex roll, simply roll a d6 and compare the number rolled to the indicated success range of the effect; rolling high will generally produce better outcomes than rolling low. You may also have abilities which adjust your die's effective roll, making it easier or harder to react to negative effects. When an effect instructs you to increase or decrease your die's roll by a specified amount, simply add the amount specified to your die's face, even if the result is higher than a 6 or lower than a 1. \r\n

    \r\n\r\n

    Difficulty Check (DC)

    \r\n

    \r\n Abilities which cause you to perform a reflex roll will frequently reference a Difficulty Check, known as a \"DC\". When your reflex roll is greater than or equal to the value of a DC, it is considered a success. When your reflex roll is less than the value of a DC, it is considered a failure.\r\n

    \r\n \r\n You are walking on Ice and must perform a reflex roll to determine if you fall prone or not. You roll a d6 and compare it to the indicated value of the hazard: a DC 4. If you get a 4 or greater, you do not fall prone. If you get a 3 or less, you fall prone.\r\n \r\n\r\n

    \r\n Unlike players, NPCs do not roll for their attacks. Instead, players perform reflex rolls to defend against those attacks. Just as above, rolling high will generally reduce the damage received and mitigate other negative outcomes, whereas rolling low will generally increase the damage received and other negative outcomes.\r\n

    \r\n \r\n A Bandit Soldier attacks you with a handgun. You roll a d6 to perform a DC 5 defensive reflex roll. If you succeed, you take 1 less damage than normal. If you fail, you take full damage.\r\n \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { RuleLinks } from '..';\r\nimport { ArticleProps } from '../../articles/ArticleProps';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { RulesArticle } from '../RulesArticle';\r\nimport { ActionRollsNavLink } from './ActionRollRules';\r\nimport { ActionRollRulesLink } from './TheRollsRules';\r\nimport { AdvantageDisadvantageNavLink } from './AdvantageDisadvantage';\r\nimport { ReflexRollsNavLink } from './ReflexRollRules';\r\nimport { DeclaringRollsNavLink } from './DeclaringRolls';\r\n\r\nexport const DiceAndHandsRulesLink = new ArticleNavLink({\r\n path: 'Dice',\r\n name: 'Dice',\r\n render: (index?: number) => ,\r\n sublinks: [\r\n ActionRollsNavLink,\r\n ActionRollRulesLink,\r\n DeclaringRollsNavLink,\r\n ReflexRollsNavLink,\r\n AdvantageDisadvantageNavLink\r\n ]\r\n});\r\n\r\nconst DiceAndHandRules: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n 500 A.C. uses six-sided dice (d6) to determine the outcome of effects. There are two different ways you will roll the dice during play:\r\n

    \r\n
      \r\n
    • Action Rolls
    • \r\n
    • Reflex Rolls
    • \r\n
    \r\n
    \r\n)","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\n\r\nexport const SizeRulesLink = new ArticleNavLink({\r\n name: 'Size',\r\n path: '#Size',\r\n render: () => \r\n});\r\n\r\nexport const SizeRules: React.FC = () => (\r\n
    \r\n

    {SizeRulesLink.name}

    \r\n

    \r\n Objects can belong to one of the following size categories based on how many hexes they occupy:\r\n

    \r\n
    \r\n
    Small
    \r\n
    \r\n Any number of small entities can be found in a hex. It's up to your GM how many small entities can occupy a hex.\r\n
    \r\n\r\n
    Medium
    \r\n
    \r\n Medium enemies occupy their hex, but friendly characters can still move through the occupied hex. Unless otherwise specified, this is the normal size for PCs and NPCs.\r\n
    \r\n\r\n
    Large
    \r\n
    Large entities occupy their entire hex, and their allies cannot move through their hex.
    \r\n\r\n
    Gargantuan
    \r\n
    \r\n Gargantuan entities occupy multiple hexes, specified either in the rules or by the GM.\r\n
    \r\n
    \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { SizeRules, SizeRulesLink } from './SizeRules';\r\n\r\nexport const SpaceRulesNavLink = new ArticleNavLink({\r\n name: 'Space',\r\n path: '#Space',\r\n render: () => ,\r\n sublinks: [\r\n SizeRulesLink\r\n ]\r\n});\r\n\r\nconst SpaceRules: React.FC = () => (\r\n
    \r\n

    {SpaceRulesNavLink.name}

    \r\n

    \r\n When describing how much space an object or effect occupies, it is described in hexes. The number of hexes occupied and the shape of the occupied hexes changes how the object occupies its space. For example, both figures below represent an object occupying 7 hexes (a gargantuan object):\r\n

    \r\n
    \r\n \r\n
    Two 7-hex objects with different shapes.
    \r\n
    \r\n \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\n\r\nexport const HexesRulesNavLink = new ArticleNavLink({\r\n name: 'Hexes',\r\n path: '#Hexes',\r\n render: () => \r\n});\r\n\r\nconst HexesRules: React.FC = () => (\r\n
    \r\n

    {HexesRulesNavLink.name}

    \r\n

    \r\n A hex is a hexagonal unit that comprises a map or grid. Below is a diagram of a hex grid:\r\n

    \r\n
    \r\n \"A\r\n
    A Hex Grid
    \r\n
    \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst SelfLink = new ArticleNavLink({ name: 'Self', path: '#Self' });\r\nconst TargetsLink = new ArticleNavLink({ name: 'Targets', path: '#Targets' });\r\nconst AreasLink = new ArticleNavLink({ name: 'Areas', path: '#Areas' });\r\nconst ThreeHexCircleLink = new ArticleNavLink({ name: 'The Three Hex Circle', path: '#3HexCircle' });\r\nconst CylindersLink = new ArticleNavLink({ name: 'Cylinders', path: '#Cylinders' });\r\nconst LinesLink = new ArticleNavLink({ name: 'Lines', path: '#Lines' });\r\nconst ConesLink = new ArticleNavLink({ name: 'Cones', path: '#Cones' });\r\n\r\nexport const TargetingRulesNavLink = new ArticleNavLink({\r\n name: 'Targets & Shapes',\r\n path: '#TargetsShapes',\r\n render: () => ,\r\n sublinks: [\r\n SelfLink,\r\n TargetsLink,\r\n AreasLink,\r\n ThreeHexCircleLink,\r\n LinesLink,\r\n ConesLink\r\n ]\r\n});\r\n\r\nconst TargetsShapesRules = () => (\r\n
    \r\n

    {TargetingRulesNavLink.name}

    \r\n

    \r\n Many of your abilities will indicate that they affect a target or target area. You'll find that there are several common patterns they reference, as detailed below:\r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n);\r\n\r\nconst Self = () => (\r\n
    \r\n

    Self

    \r\n

    \r\n The simplest target is yourself! Abilities will reference when they affect you.\r\n

    \r\n
    \r\n);\r\n\r\nconst Targets = () => (\r\n
    \r\n

    Targets

    \r\n

    \r\n A target is a single character or object. The ability will inform you which of those things you can target. Some abilities instruct you to select multiple targets. When they do, all selected targets must be legal. Below is an example of one possible area that the ability could affect, highlighted in green. The purple hex indicates the hex chosen within the ability's range, the blue hex represents the origin hex, and the red hexes represent all legal target hexes in range.\r\n

    \r\n
    \r\n \"An\r\n
    \r\n
    \r\n);\r\n\r\nconst Areas = () => (\r\n
    \r\n

    {AreasLink.name}

    \r\n

    \r\n An area is just a bunch of hexes around a center hex or point. The ability will also define a radius, which determines how many hexes away from the center the ability affects. It will sometimes make sense for an ability to affect the space above the hexes too. It's difficult to figure out the volume of a sphere, so it's up to the GM to decide how to deal with it. Generally, it's better to use a cylinder, as described in the section on cylinders, than a sphere in these cases.\r\n

    \r\n
    \r\n \"Area\r\n
    \r\n An area centered on the blue hex with a radius of 3 hexes. The blue and red hexes are affected by the ability.\r\n
    \r\n
    \r\n\r\n

    \r\n Some areas do not specify a center hex and a radius but instead will simply say they occupy a number of hexes. When this occurs, you may choose any continuous set of hexes for the affected area.\r\n

    \r\n
    \r\n);\r\n\r\nconst ThreeHexCircle = () => (\r\n
    \r\n

    {ThreeHexCircleLink.name}

    \r\n

    \r\n Sometimes an ability will indicate it affects a \"3-hex circle\" (usually a grenade or mine). A 3-hex circle is any collection of 3 hexes that are all adjacent to each other. Below is an example of a 3-hex circle:\r\n

    \r\n
    \r\n \"A\r\n
    A 3-hex circle.
    \r\n
    \r\n

    \r\n If an ability instructs you to hit a target and the effect is a 3-hex circle, the circle is considered in-range if any of its affected hexes would be in range. If an ability instructs you to increase the size of a 3-hex circle by 1 or more hexes, increasing a 3-hex circle to a 1-hex radius circle counts as an increase of 1.\r\n

    \r\n
    \r\n)\r\n\r\nconst Cylinders = () => (\r\n
    \r\n

    {CylindersLink.name}

    \r\n

    \r\n A cylinder is just like an area, except it also affects a distance above the hexes. In addition to the center and radius, a cylinder defines a height.\r\n

    \r\n
    \r\n);\r\n\r\nconst Lines = () => (\r\n
    \r\n

    {LinesLink.name}

    \r\n

    \r\n A line is a pattern that looks exactly like what you imagine! A line has a width, normally described in hexes, and a length, also described in hexes. An ability that might affect a line would usually be referenced as such: \"Each character in a line of width 2 and length 8 takes 10 thermal damage.\" Below is an example of the area that would be affected by this ability, originating from the blue hex:\r\n

    \r\n
    \r\n \"A\r\n
    A line of width 2 and length 8
    \r\n
    \r\n

    \r\n Below is an example of a slightly different line, with width 1 and length 8:\r\n

    \r\n
    \r\n \"A\r\n
    A line of width 1 and length 8
    \r\n
    \r\n

    Here is another way to orient the above line:

    \r\n
    \r\n \"A\r\n
    \r\n A line of width 1 and length 8 but oriented differently.\r\n
    \r\n
    \r\n
    \r\n);\r\n\r\nconst Cones = () => (\r\n
    \r\n

    {ConesLink.name}

    \r\n

    \r\n A cone is a pattern that expands as it gets farther from the point of origin. A cone only has a length, and there are only 6 possible cones for any originating hex. Below is an example of a cone of length 6, one for each possible orientation:\r\n

    \r\n
    \r\n
    \r\n \"The\r\n
    The first possible cone.
    \r\n
    \r\n
    \r\n \"The\r\n
    The second possible cone.
    \r\n
    \r\n
    \r\n \"The\r\n
    The third possible cone.
    \r\n
    \r\n
    \r\n \"The\r\n
    The fourth possible cone.
    \r\n
    \r\n
    \r\n \"The\r\n
    The fifth possible cone.
    \r\n
    \r\n
    \r\n \"The\r\n
    The sixth possible cone.
    \r\n
    \r\n
    \r\n
    \r\n);\r\n","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\n\r\nexport const RangeRulesNavLink = new ArticleNavLink({\r\n name: 'Range',\r\n path: '#Range',\r\n render: () => \r\n});\r\n\r\nconst RangeRules: React.FC = () => (\r\n
    \r\n

    {RangeRulesNavLink.name}

    \r\n

    \r\n When describing what range an effect or ability can impact, the range refers to a maximum number of hexes from an origin hex. Below is an example of three effects, each with an increasing range. The blue hex is the origin hex, and the red hexes are the hexes within the respective range.\r\n

    \r\n
    \r\n
    \r\n \"A\r\n
    A range of 1
    \r\n
    \r\n
    \r\n \"A\r\n
    A range of 2
    \r\n
    \r\n
    \r\n \"A\r\n
    A range of 3
    \r\n
    \r\n
    \r\n

    \r\n The same rule is true even if there are multiple origin hexes. See below for an example of all hexes in a range of 2 from three origin hexes.\r\n

    \r\n
    \r\n \"An\r\n
    An example of multiple origin hexes
    \r\n
    \r\n
    \r\n);\r\n","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const MovementRulesLink = new ArticleNavLink({\r\n path: \"#Movement\",\r\n name: \"Movement\",\r\n render: () => \r\n})\r\n\r\nconst MovementRules = () => (\r\n
    \r\n

    {MovementRulesLink.name}

    \r\n

    \r\n Moving around is pretty simple. By default, your character can move a distance of 6 hexes (12m or about 36ft) in roughly 6 seconds or one round of an action scene. Whenever you move through a hex, your movement for the round is reduced by 1.\r\n

    \r\n

    Rough Terrain

    \r\n

    \r\n Rough terrain is more difficult to cross. It costs an additional hex of movement to enter a hex of rough terrain.\r\n

    \r\n
    \r\n);","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\n\r\nexport const EnteringAndLeavingAreasRulesLink = new ArticleNavLink({\r\n name: 'Entering & Leaving Areas',\r\n path: '#EnteringAndLeavingAreas',\r\n render: () => \r\n})\r\n\r\nconst EnteringAndLeavingAreasRules = () => (\r\n
    \r\n

    {EnteringAndLeavingAreasRulesLink.name}

    \r\n

    \r\n Several abilities will mention that something occurs when you enter, move through, or leave an area. These terms are used as follows:\r\n

    \r\n
      \r\n
    • \r\n You enter an area when you move into an affected hex from an unaffected hex. \r\n \r\n There is a smoke cloud occupying an area a few hexes away from you. If you move from your current location into the smoke, you have entered the smoke's area.\r\n \r\n
    • \r\n
    • \r\n You move through an area when you move from an affected hex into another affected hex.\r\n \r\n You are inside a smoke cloud and move into another hex still within the smoke. You have moved through the smoke's area.\r\n \r\n
    • \r\n
    • \r\n You leave an area when you move from an affected hex into an unaffected hex.\r\n \r\n You are inside a smoke cloud and move into a hex outside the smoke. You have left the smoke's area.\r\n \r\n
    • \r\n
    \r\n
    \r\n)","import React from 'react';\r\nimport { RuleLinks } from '..';\r\nimport { ArticleProps } from '../../articles/ArticleProps';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { Variant } from '../../directives/Directives';\r\nimport { RulesArticle } from '../RulesArticle';\r\nimport { SpaceRulesNavLink } from './SpaceRules';\r\nimport { HexesRulesNavLink } from './HexesRules';\r\nimport { TargetingRulesNavLink } from './TargetsShapesRules';\r\nimport { RangeRulesNavLink } from './RangeRules';\r\nimport { MovementRulesLink } from './MovementRules';\r\nimport { EnteringAndLeavingAreasRulesLink } from './EnteringAndLeavingRules';\r\n\r\nexport const MovementAndTargetingRulesLink = new ArticleNavLink({\r\n path: 'LocationMovement',\r\n name: 'Location & Movement',\r\n render: (index?: number) => ,\r\n sublinks: [\r\n MovementRulesLink,\r\n HexesRulesNavLink,\r\n SpaceRulesNavLink,\r\n RangeRulesNavLink,\r\n TargetingRulesNavLink,\r\n EnteringAndLeavingAreasRulesLink,\r\n ]\r\n});\r\n\r\nconst MovementAndTargetingRules: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n When determining where your character is in relation to everything in the world, 500 After Cataclysm uses a system of hexagons, known as hexes, to represent units of space that a character or object takes up and the distances between them.\r\n

    \r\n \r\n

    \r\n Some players prefer to play with more freeform positioning. If your playgroup prefers, you can use a strategy called \"Theater of the Mind\" to determine the space and orientation of objects. Theater of the mind doesn't use any maps or central point of establishing location, players simply describe what they do, where they go, and where they're facing.\r\n

    \r\n

    \r\n If your playgroup would rather use Theater of the Mind, replace any reference to a \"hex\" in the rules with a distance of 2 meters, 2 yard, or 6 feet, whatever works best for your group.\r\n

    \r\n
    \r\n
    \r\n)","import React from 'react';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { GMNote } from '../../directives/Directives';\r\nimport { DiceBoonsPerLevelFigure } from '../figures/DiceBoonFigures';\r\n\r\nexport const RhetoricalStrategiesNavLink = new ArticleNavLink({\r\n name: 'Rhetorical Strategies',\r\n path: '#RhetoricalStrategies',\r\n render: () => \r\n});\r\n\r\nconst RhetoricalStrategiesRules: React.FC = () => (\r\n
    \r\n

    {RhetoricalStrategiesNavLink.name}

    \r\n

    \r\n Rhetoric is the art of discourse and persuasion. When you encounter\r\n a social challenge, the type of reponse you give determines the\r\n rhetorical strategy you are using. The GM determines what strategy\r\n your words use, and then you must roll a challenge to that\r\n character. As with any other challenge, the GM rolls two dice and\r\n you roll the other 3. Like with skills, as your diplomatic abilities\r\n improve, you will gain benefits and advantages to your ability to\r\n use these strategies. There are three rhetorical strategies,\r\n described below, that you can utilize to engage in diplomacy,\r\n persuasion, and general dialogue with NPCs:\r\n

    \r\n
    \r\n
    Charisma (Ethos)
    \r\n
    \r\n Charisma is the utilisation of admirable qualities, fear, or\r\n your \"force\" of personality.\r\n
    \r\n\r\n \r\n

    \r\n When designing Charisma challenges for players, try to\r\n design them around differences in knowledge on a topic and\r\n differences in social status. Charisma emphasizes one's\r\n perceived authority with respect to a topic. The more a\r\n character knows about a topic relative to another or the\r\n more perceived status the character has towards another, the\r\n more powerful their appeals to Charisma will be.\r\n

    \r\n
    \r\n\r\n
    Empathy (Pathos)
    \r\n
    \r\n Empathy is the ability to relate to and evoke the emotional\r\n state of others.\r\n
    \r\n\r\n \r\n

    \r\n When designing Empathy challenges for your players, try to\r\n design them around similarities in background and\r\n experience. Empathy focuses on the ability for a character\r\n to relate to another, so the more the two characters have in\r\n common, the more powerful their appeals to Empathy will be.\r\n

    \r\n
    \r\n\r\n
    Reason (Logos)
    \r\n
    \r\n Reason is the ability to appeal to logical explanations and\r\n descriptions.\r\n
    \r\n\r\n \r\n

    \r\n When designing Reason challenges for your players, they\r\n should focus on the skill of the subject and the strength of\r\n the argument. Reason appeals primary to rationale that is\r\n more effective the more knowledgeable someone is about a\r\n subject. The more one understands the soundness of the\r\n reasoning, the more powerful appeals to Reason will be.\r\n

    \r\n
    \r\n
    \r\n

    \r\n Like with skills, your ability to employ rhetoric of different\r\n strategies increases as your rhetorical skill increases with \r\n varying dice boons based on the table below:\r\n

    \r\n \r\n

    \r\n Unlike with skills, you gain 1 rhetoric point when you level up and\r\n there is no restriction on where you can assign that point.\r\n

    \r\n
    \r\n);\r\n","import React, { useState } from \"react\"\r\nimport { RulesFiguresConfig, RulesTableViewStyle, RulesTableViewStyleOptions } from \"./RulesFigures\";\r\nimport { ThemedRadio } from \"../../inputs/radio/ThemedRadio\";\r\n\r\nexport const RhetoricLevelingTable = () => {\r\n const { minLevel, maxLevel, headerSpan } = RulesFiguresConfig;\r\n\r\n const [viewStyle, setViewStyle] = useState('Horizontal View');\r\n\r\n const characterRows: React.ReactNode[] = [];\r\n const primaryRows: React.ReactNode[] = [];\r\n const secondaryRows: React.ReactNode[] = [];\r\n const tertiaryRows: React.ReactNode[] = [];\r\n\r\n const columns: React.ReactNode[] = [];\r\n\r\n for (let i = minLevel; i <= maxLevel; i++) {\r\n const charCell = {i};\r\n const primaryCell = {Math.ceil(i / 3) + 1};\r\n const secondaryCell = {Math.ceil(i / 4)};\r\n const tertiaryCell = {Math.ceil(i / 5)};\r\n\r\n characterRows.push({...charCell, key: i });\r\n primaryRows.push({...primaryCell, key: i});\r\n secondaryRows.push({...secondaryCell, key: i});\r\n tertiaryRows.push({...tertiaryCell, key: i});\r\n\r\n columns.push({charCell}{primaryCell}{secondaryCell}{tertiaryCell});\r\n }\r\n return (\r\n
    \r\n vs.name == viewStyle)!}\r\n onChange={(selection) => setViewStyle(selection.name)} />\r\n {viewStyle == \"Horizontal View\" &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {characterRows}\r\n \r\n \r\n \r\n {primaryRows}\r\n \r\n \r\n \r\n {secondaryRows}\r\n \r\n \r\n \r\n {tertiaryRows}\r\n \r\n \r\n
    \r\n Rhetoric Levels Per Character Level\r\n
    Character Level
    Primary Rhetoric Level
    Secondary Rhetoric Level
    Tertiary Rhetoric Level
    \r\n }\r\n {viewStyle == \"Vertical View\" &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {columns}\r\n \r\n
    \r\n Rhetoric Levels Per Character Level\r\n
    Character LevelPrimary Rhetoric LevelSecondary Rhetoric LevelTertiary Rhetoric Level
    \r\n }\r\n
    \r\n )\r\n}","import React from \"react\"\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { RhetoricLevelingTable } from \"../figures/SocialFigures\";\r\n\r\nexport const ImprovingRhetoricRulesNavLink = new ArticleNavLink({\r\n name: \"Improving Your Rhetoric\",\r\n path: \"#ImprovingRhetoric\",\r\n render: () => \r\n});\r\n\r\nconst ImprovingRhetoricRules = () => (\r\n
    \r\n

    {ImprovingRhetoricRulesNavLink.name}

    \r\n

    \r\n Rhetorics are similar to skills in that, as you level them, you can increase the number of rerolls and extra rolls you can use when performing their corresponding rhetoric check. Unlike skills, rhetorics level up from 1 to 5. To define your character's personality better, you choose one primary rhetoric, one secondary rhetoric, and one tertiary rhetoric. Your primary rhetoric starts at level 2 and will increase by 1 level for every 3 levels your character grows. Your secondary rhetoric will increase by 1 level for every 4 levels your character grows. Finally, your tertiary rhetoric will increase by 1 level for every 5 levels your character grows. Below is a table to help you visualize this pattern:\r\n

    \r\n \r\n
    \r\n);","import React from 'react';\r\nimport { RuleLinks } from '..';\r\nimport { ArticleProps } from '../../articles/ArticleProps';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { RulesArticle } from '../RulesArticle';\r\nimport { RhetoricalStrategiesNavLink } from './RhetoricalStrategies';\r\nimport { ImprovingRhetoricRulesNavLink } from './IncreasingRhetoricalSkills';\r\n\r\nexport const SocialInteractionRulesLink = new ArticleNavLink({\r\n render: (index?: number) => ,\r\n path: 'SocialInteractions',\r\n name: 'Social Interactions',\r\n sublinks: [\r\n RhetoricalStrategiesNavLink,\r\n ImprovingRhetoricRulesNavLink,\r\n ]\r\n});\r\n\r\nconst SocialInteractions: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n As you journey, you will come across many people with their own motivations, desires, goals, and histories. Most of these encounters will be non-violent. In order to obtain information, earn trust, and persuade these people to work with you, you will need to be able to pass social challenges to achieve your goals.\r\n

    \r\n
    \r\n);","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nconst RollTriggersLink = new ArticleNavLink({\r\n path: \"#RollTriggers\",\r\n name: \"Roll Triggers\"\r\n})\r\n\r\nexport const ActionRulesLink = new ArticleNavLink({\r\n name: 'Performing Actions',\r\n path: '#PerformingActions',\r\n render: () => ,\r\n});\r\n\r\nconst ActionRules = () => (\r\n
    \r\n

    {ActionRulesLink.name}

    \r\n

    \r\n Actions are proactive abilities you can perform to make something happen. If timing is important, actions take place within about a 6 second window. You can do any of the following once when it's time for the players to act during an action scene or do any of these outside of an action scene so long as it's reasonable you could. So long as the players have the initiative, their actions take place in any order they choose. Work together with your teammates to maximize the effect of your actions!\r\n

    \r\n

    \r\n When declaring your actions, you choose from one of your available abilities from your weapons and equipped items after having seen your initial roll. Once you have selected an action, you may use dice boons based on how your level with that skill. You then declare a roll to use for the action using a total of 5 dice in any combination from the communal dice and your own dice.\r\n

    \r\n
    \r\n

    {RollTriggersLink.name}

    \r\n

    \r\n Some actions will refer to Roll Triggers. A roll trigger occurs when you have a certain roll: all of the effects listed for that roll occur. Remember, you can only declare one roll with your dice, so you can only have the benefits of one Roll Trigger at a time.\r\n

    \r\n
    \r\n
    \r\n);","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const PassiveRulesLink = new ArticleNavLink({\r\n name: 'Passives',\r\n path: '#Passives',\r\n render: () => \r\n});\r\n\r\nconst PassiveRules: React.FC = () => (\r\n
    \r\n

    {PassiveRulesLink.name}

    \r\n

    \r\n Passives are abilities that stay in effect until removed. If you are wearing fancy perfume that makes you smell nice, it lasts as long as the ability says it does. The same is true for having an active shield or any other effect granted to you.\r\n

    \r\n

    \r\n You gain passive abilities primarily from your gear, perks, and skills. All you need to do is exactly what the passive ability says. If you forget about a passive ability: you snooze, you lose! Don't forget! If you use our digital character sheets, you'll always be able to see a list of which passive abilities are currently active.\r\n

    \r\n
    \r\n);","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const ReactionRulesLink = new ArticleNavLink({\r\n name: 'Reactions',\r\n path: '#Reactions',\r\n render: () => \r\n});\r\n\r\nconst ReactionRules: React.FC = () => (\r\n
    \r\n

    {ReactionRulesLink.name}

    \r\n

    \r\n While adventuring, you'll need to act fast to stay alive. That's when your reaction comes in handy: a fast response to something that just happened.\r\n

    \r\n

    \r\n Like actions, you can take only one reaction per round, but what makes reactions special is that you can perform them whenever their triggering effect occurs. Every reaction will indicate what lets you use the ability. Most reactions are granted to you by your gear like the ability to trigger a detonator when someone steps on a mine you placed or activate a shield in response to an enemy shooting at you or an ally.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { ActionRulesLink } from \"./actions/ActionRules\";\r\nimport { PassiveRulesLink } from \"./Passives\";\r\nimport { ReactionRulesLink } from \"./ReactionRules\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const AbilityRulesLink = new ArticleNavLink({\r\n name: 'Abilities',\r\n path: '#Abilities',\r\n render: () => \r\n});\r\n\r\nconst AbilityRules: React.FC = () => (\r\n
    \r\n

    {AbilityRulesLink.name}

    \r\n

    \r\n Your abilities define what your character can do to influence people and objects you find in the wasteland. There are three types of abilities:\r\n

    \r\n
      \r\n
    • \r\n Actions (Active Abilities)\r\n
    • \r\n
    • \r\n Reactions (Reactive Abilities)\r\n
    • \r\n
    • \r\n Passives (Passive Abilities)\r\n
    • \r\n
    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\nimport { RequiresAttentionIcon } from \"../../icons/CharacterIcons\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const DurationRulesLink = new ArticleNavLink({\r\n name: 'Ability Durations',\r\n path: '#Durations',\r\n render: () => \r\n})\r\n\r\nconst DurationRules = () => (\r\n
    \r\n

    {DurationRulesLink.name}

    \r\n

    \r\n Not all abilities stay active for the same amount of time. Below is a list of stages - the different types of durations - an ability can refer to in order of length:\r\n

    \r\n
      \r\n
    1. \r\n Instantaneous. The ability lasts until all of its effects have occurred as noted in its description and roll triggers, and then ends.\r\n
    2. \r\n
    3. \r\n Until the end of your turn.\r\n
    4. \r\n
    5. \r\n Until the start of your next turn.\r\n
    6. \r\n
    7. \r\n Until the end of your next turn.\r\n
    8. \r\n
    9. \r\n Until the end of the scene.\r\n
    10. \r\n
    11. \r\n Forever. The ability lasts until it or its source is removed. If an ability applies an effect and it does not specify when that effect ends, it lasts forever.\r\n
    12. \r\n
    \r\n

    \r\n Sometimes, an ability's duration might be modified. If an effect instructs you to increase an ability's duration by some number of stages. Count down the list in ascending order to find the new duration. If the duration would be longer than forever, it is forever instead. Other times, an ability's duraton might be reduced. To find the new duration, do the same process in reverse: go up the list in descending order to find the new duration. If the duration would be shorter than instantaneous, it is instantaneous instead. If an effect which caused a duration to increase or decrease is removed, the ability returns to its normal duration, ending if it has lasted longer than that.\r\n

    \r\n \r\n Chelle uses a smoke grenade which creates smoke until the end of her next turn. However, there is an active Time Bender, which is being used to decrease the duration of all other abilities by 1 stage. Because until the end of your start of your next turn is one stage before until the end of your next turn, Chelle's smoke now lasts until the end of her next turn instead. If the Time Bender was being used to increase the duration of all other abilities by 1 stage instead, her smoke would last until the end of the scene instead or until the Time Bender's effect is removed.\r\n \r\n\r\n

    Damage & Durations

    \r\n

    \r\n When abilities instruct you to deal damage, they deal their damage only when indicated even if an effect would increase the duration of the damaging ability.\r\n

    \r\n \r\n Chelle has an active immolation cloak that lasts until the end of the scene and instructs her to deal 4 thermal damage at the end of each of her turns for its duration. The 4 thermal damage is dealt only once at the end of each turn.\r\n \r\n\r\n

    Attention

    \r\n

    \r\n Some abilities require your attention. That means you must focus your attention on maintaining the effects of that ability, and the ability ends early if your attention is diverted either through an effect, by focusing your attention on a different spell, or intentionally dropping your attention. If an ability would have its duration altered, it still requires your attention and will end when your attention is diverted. The icon below indicates when an ability requires your attention for its duration:\r\n

    \r\n \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const AttackRulesLink = new ArticleNavLink({\r\n name: \"Attacks\",\r\n path: \"#Attacks\",\r\n render: () => \r\n})\r\n\r\nconst AttacksRules = () => (\r\n
    \r\n

    {AttackRulesLink.name}

    \r\n

    \r\n Attacks are mods which provide your weapons the ability to use that attack. Attacks can be slotted anywhere, but can only be used from items which have attack slots.\r\n

    \r\n

    \r\n A weapon contains no inherent ability to attack; the ability to use an attack comes from the attack mod. Melee weapons must have blades, bludgeons, or spikes attached in order to be wielded, firearms must have ammunition loaded, etc.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const SpellRulesLink = new ArticleNavLink({\r\n name: \"Spells\",\r\n path: \"#Spells\",\r\n render: () => \r\n})\r\n\r\nconst SpellRules = () => (\r\n
    \r\n

    {SpellRulesLink.name}

    \r\n

    \r\n Spells are mods which provide your character the ability to cast that spell. Spells can only be slotted into a spell focus or a wand unless a mod permits them to be slotted elsewhere. The act of casting a spell is covered in greater detail in the chapter on casting spells as a primary action.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { AttackRulesLink } from \"../../mods/AttackRules\";\r\nimport { SpellRulesLink } from \"../../mods/SpellRules\";\r\nimport { GMNote } from \"../../../directives/Directives\";\r\n\r\nconst AttackLink = new ArticleNavLink({\r\n path: \"#Attacks\",\r\n name: \"Attacks\",\r\n});\r\n\r\nconst SpellsLink = new ArticleNavLink({\r\n path: \"#Spells\",\r\n name: \"Spells\",\r\n})\r\n\r\nconst UseEquipmentLink = new ArticleNavLink({\r\n path: \"#UseEquipment\",\r\n name: \"Use Equipment\",\r\n});\r\n\r\nconst CommandLink = new ArticleNavLink({\r\n path: \"#Command\",\r\n name: \"Command Minions & Pilot Vehicles\",\r\n});\r\n\r\nconst InteractLink = new ArticleNavLink({\r\n path: \"#Interact\",\r\n name: \"Interact With Objects\",\r\n});\r\n\r\nconst KitswapLink = new ArticleNavLink({\r\n path: \"#Kitswapping\",\r\n name: \"Kitswap\"\r\n});\r\n\r\nconst ImproviseLink = new ArticleNavLink({\r\n path: \"#Improvise\",\r\n name: \"Improvise\"\r\n})\r\n\r\nexport const StandardActionRulesLink = new ArticleNavLink({\r\n name: 'Standard Actions',\r\n path: '#StandardActions',\r\n render: () => ,\r\n sublinks: [\r\n UseEquipmentLink,\r\n AttackLink,\r\n SpellsLink,\r\n CommandLink,\r\n InteractLink,\r\n ImproviseLink,\r\n ]\r\n});\r\n\r\nexport const StandardActionRules: React.FC = () => (\r\n
    \r\n

    {StandardActionRulesLink.name}

    \r\n

    \r\n Most of the time, you will be using an action ability granted to you by your equipment, perks, or skill features. The outcome of your standard actions are usually determined by the hand you roll with your dice. When you have the opportunity to act, you'll perform the steps listed in the action rolls section of the previous chapter. If an action does not mention any outcome for a given hand, it does only what it says in its basic description. Below is a list of standard actions you can take:\r\n

    \r\n\r\n
    \r\n

    {UseEquipmentLink.name}

    \r\n

    \r\n Most actions you perform use your equipment. These include shooting a gun, dispensing medicine for an ally, or using wire cutters to cut through a fence. Attacking and casting spells both usually involve the use of equipment. Using a piece of equipment uses as many hands as that piece of equipment requires.\r\n

    \r\n\r\n
    \r\n

    {AttackRulesLink.name}

    \r\n

    \r\n An attack is made with ammunition from a weapon or when an ability states it's an attack. With attacks, you use the roll triggers for the weapon you used to make the attack with and then apply the effects of the ammunition you use with the weapon to that attack.\r\n

    \r\n {/* \r\n Chelle rolls a Two-Pair using her firearms skill (at 3). She fires her energy rifle at an enemy using laser batteries. Because the rifle is Empowered on a Two-Pair, her attack is empowered and deals the ammunition's damage. So the attack will deal 3 + 1 = 4 electromagnetic () damage.\r\n */}\r\n
    \r\n\r\n
    \r\n

    {SpellRulesLink.name}

    \r\n

    \r\n Spells are cast with spell mods attached to a spell focus or when an ability states it's a spell. With spells, you use the roll triggers for the spell's corresponding skill and then apply any effects from your focus to the spell.\r\n

    \r\n {/* \r\n Chelle rolls a Triple with her Electronics skill. She decides to use her Sonic Bowel Disruptor. The spell states that targets in an 8 hex cone become sickened, so that status effect is applied to them. If Chelle had rolled a Two-Pair instead, her enemies would still feel slightly ill as that is the baseline effect of the spell (which has no explicit mechanical effect), but they would not be afflicted with the sickened condition as the required roll was not made.\r\n */}\r\n

    \r\n Some spells mention that they either create or consume “juice”. You can learn more about this mechanic in the chapter on Health & Juice. Spells which create juice cause you to be juiced if you aren't already, and spells which consume juice can be used only if you have juice. You lose your juice when you cast a spell that consumes juice.\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n

    {CommandLink.name}

    \r\n

    \r\n If you have minions or are piloting a vehicle, you can use your action to control it. Commanding minions requires 1 hand's worth of actions, and piloting a vehicle requries 2 hand's worth of actions. When you command a minion or pilot a vehicle as an action, you use the roll triggers from that minion or vehicle. More information on minions and vehicles is detailed in the chapter on minions and vehicles.\r\n

    \r\n
    \r\n\r\n
    \r\n

    {InteractLink.name}

    \r\n

    \r\n Sometimes you have a mission, like securing a priceless artifact or accessing a network through a terminal. These types of actions involve interacting with an object and are determined by your GM. For example, your GM may rule that shifting a lever on a crane only uses up 1 hand of actions for the round, letting you do something else with your other hand. Hacking into a security system to disable sentry guns is more likely to require 2 hands.\r\n

    \r\n
    \r\n\r\n
    \r\n

    {KitswapLink.name}

    \r\n

    \r\n Sometimes you need to exchange gear during an action scene. The Kitswap action lets you do so by expending 2 hand's worth of actions and 6 hexes of movement to exchange one mod on an equipped item with another or to stow a weapon into your inventory. To retrieve a weapon from your inventory, you must spend an additional number of hand's worth of actions equal to the weapon's required hands but no movement. Swapping out gear is very costly, especially weapons! This should be a last-ditch effort rather than something to rely on.\r\n

    \r\n
    \r\n\r\n
    \r\n

    {ImproviseLink.name}

    \r\n

    \r\n Oftentimes, the rules will not cover everything you could want to do during an action scene. There aren't rules for shooting exploding barrels, using nearby vines to swing out of danger, or any other number of things you can imagine. To support creativity, all of acts are referred to as \"Improvised Actions\". Performing an improvised action uses both of your hands, so plan wisely!\r\n

    \r\n

    \r\n The outcome of an improvised action should involve a discussion between you and the GM. You should describe the type of action you want to perform and what your intended goal is. The GM will have the final decision as to what the outcome of that action is and roughly how successful it will be if you declare different hands. Once you know the outcome, you choose to perform that Improvised Action and roll your dice as though your character level were a skill you were using (see the table below). Based on the hand you end up declaring, the GM determines the outcome of your action and takes note.\r\n

    \r\n

    \r\n Some improvised actions may require you to be competent or even require expertise to perform. If your GM determines that an improvised action requires competence, ensure that you have that competence and then \r\n

    \r\n \r\n When an improvised action a player wants to use requries a competency they don't have, make sure you let them know which one! It can encourage players to think of how you run different types of competencies and what they competencies and expertises they should consider acquiring.\r\n \r\n
    \r\n
    \r\n);","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../../articles/navigation/article-navigation/ArticleNavLink\"\r\nimport { Example } from \"../../../directives/Directives\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const HandRulesLink = new ArticleNavLink({\r\n name: \"Hands\",\r\n path: \"#Hands\",\r\n render: () => ,\r\n});\r\n\r\nexport const HandRules = () => (\r\n
    \r\n

    {HandRulesLink.name}

    \r\n

    \r\n You only have 2 hands (for now at least!) to work with. When you act, you can act using up to 2 of your hands until the next time you are allowed to act.\r\n

    \r\n \r\n Chelle is holding a blaster in one hand and using her trusty turntable (focus) with the other. When she has the opportunity to act (such as when it's her turn during an Action Scene), she can use both her blaster and the turntable, the blaster twice, or the turntable twice.\r\n \r\n \r\n If Chelle instead had a laser rifle strapped to her back (which requires 2 hands to use) and had her turntable, then she would only be able to either use the laser rifle once or the turntable twice as part of her action.\r\n \r\n
    \r\n)","import React from \"react\";\r\nimport { RuleLinks } from \"..\";\r\nimport { ArticleProps } from \"../../articles/ArticleProps\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { RulesArticle } from \"../RulesArticle\";\r\nimport { AbilityRulesLink } from \"./AbilitiesArticle\";\r\nimport { ActionRulesLink } from \"./actions/ActionRules\";\r\nimport { PassiveRulesLink } from \"./Passives\";\r\nimport { ReactionRulesLink } from \"./ReactionRules\";\r\nimport { DurationRulesLink } from \"./DurationRules\";\r\nimport { StandardActionRulesLink } from \"./actions/StandardActionRules\";\r\nimport { HandRulesLink } from \"./actions/HandRules\";\r\n\r\nexport const TakeActionRulesLink = new ArticleNavLink({\r\n path: 'TakingAction',\r\n name: 'Taking Action',\r\n render: (index?: number) => ,\r\n sublinks: [\r\n AbilityRulesLink,\r\n ActionRulesLink,\r\n HandRulesLink,\r\n StandardActionRulesLink,\r\n ReactionRulesLink,\r\n PassiveRulesLink,\r\n DurationRulesLink,\r\n ]\r\n});\r\n\r\nconst TakeActionRules: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n A lot has been said so far about who your character is, but nothing has yet been said about how they go about interacting in the world. This chapter will tell you how to do exactly that.\r\n

    \r\n
    \r\n);","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const ModRulesNavLink = new ArticleNavLink({\r\n name: 'Body Mods',\r\n path: '#BodyMods',\r\n render: () => \r\n});\r\n\r\nconst ModRules: React.FC = () => (\r\n
    \r\n

    {ModRulesNavLink.name}

    \r\n

    \r\n Just like equipment, you can modify your body. All characters have the ability to modify their body once for free (and again at level 8). Unlike equipment mods, body mods will tend to affect your roleplaying options more than having explicit mechanical abilities. You could have replaced your arm with a mechanical version or maybe your eyes can zoom in on details in the distance and capture images. Body mods are distinguished from other mods by having the “Body” tag. Body mods can only be attached to your body, and non-body mods cannot be attached to your body.\r\n

    \r\n

    \r\n Characters who have modded themselves with mechanical augmentations are known as cyborgs, and characters who are modded with genetic alterations are considered mutants, but not all mods are sufficiently different from a baseline human to make you considered as such. If a mod causes your character to be considered a cyborg or mutant, it will have a corresponding tag to indicate that. Cyborgs and mutants are seen as different from other humans, and may be outcast or accepted based on the types of communities your characters interact with. If your character has a cybernetic modification, the mod is subject to the malfunctioning condition and hacking damage.\r\n

    \r\n
    \r\n \r\n
    A cyborg enjoys a well-earned beer.
    \r\n
    \r\n
    \r\n);","import React from \"react\";\r\nimport { ModInitializer } from \"../../../entities/library/items/ItemInitializers\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Directive, Example } from \"../../directives/Directives\";\r\nimport { ModSlotPreview } from \"../../collection/characters/character-tools/items/preview/mods/ModSlotPreview\";\r\nimport { ModSlot } from \"../../../entities/library/items/mods/ModSlot\";\r\nimport { getUniqueIdentifier } from \"../../../utils/GUID\";\r\nimport { ItemPreview } from \"../../collection/characters/character-tools/items/preview/ItemPreview\";\r\nimport { ItemPreviewHeader } from \"../../collection/characters/character-tools/items/preview/ItemPreviewHeader\";\r\nimport { RecordStatus } from \"../../../entities/RecordStatus\";\r\n\r\nexport const SlotRulesNavLink = new ArticleNavLink({\r\n name: 'Slots',\r\n path: '#Slots',\r\n render: () => \r\n});\r\n\r\nconst sampleModSlot: ModSlot = {\r\n id: getUniqueIdentifier(),\r\n slotTypes: []\r\n}\r\n\r\nconst sampleModSlotWithRequirements: ModSlot = {\r\n ...sampleModSlot,\r\n slotTypes: [\"Chemistry\", \"Medicine\"]\r\n}\r\n\r\nconst sampleItemAssignableTo: ModInitializer = {\r\n id: getUniqueIdentifier(),\r\n name: \"Example Item\",\r\n description: \"Mod details with an \\\"Assignable To\\\" section:\",\r\n icon: \"default\",\r\n type: \"Mod\",\r\n cost: 0,\r\n weight: 0,\r\n inheritsHandTriggers: true,\r\n handsUsedModifier: 0,\r\n handsAvailableModifier: 0,\r\n skillsUsed: [],\r\n skillRequirements: [],\r\n handTriggers: [],\r\n damageSuite: [],\r\n customDamageTexts: [],\r\n actions: [],\r\n reactions: [],\r\n passives: [],\r\n wornOn: [],\r\n slots: [],\r\n tags: [\"Example\"],\r\n recordStatus: RecordStatus.Published,\r\n slotType: \"\",\r\n assignableToTags: [\"Only Assignable To This Tag\", \"And Also This Tag\"],\r\n blacklistTags: [],\r\n}\r\n\r\nconst sampleItemNotAssignableTo = {\r\n ...sampleItemAssignableTo,\r\n description: \"Mod details with a \\\"Not Assignable To\\\" section:\",\r\n blacklistTags: [\"Not Assignable To This Tag\", \"Not Assignable To This Tag Either\"],\r\n}\r\n\r\nconst SlotRules: React.FC = () => (\r\n
    \r\n

    {SlotRulesNavLink.name}

    \r\n

    \r\n In order to attach a mod to a piece of gear, it needs to go into a slot. Different types of gear will have different numbers of slots; some gear won't have any slots at all. The number of slots on a piece of gear are indicated by empty squares as seen below:\r\n

    \r\n \r\n An empty mod slot:\r\n
    \r\n \r\n
    \r\n\r\n\r\n

    \r\n Not just any mod can fit in any slot; some mods have restrictions. If a mod can only be assigned to certain types of items, it will list the tags of those items in a list under the Assignable To section. If there are no restrictions in the Assignable To section, then the mod can be slotted onto any item so long as the desired slot is a legal option. Below is an item which has some tags it is assignable to:\r\n

    \r\n }>\r\n \r\n \r\n\r\n\r\n

    \r\n Some mods also have specific types of items that they cannot be assigned to. These are listed under the Not Assignable To section. See below for an example:\r\n

    \r\n }>\r\n \r\n \r\n \r\n\r\n

    \r\n Below is a comprehensive list of when you can assign a mod to a slot; if any of the following are true, you can assign your mod to that slot: \r\n

    \r\n
      \r\n
    • \r\n The slot has no requirements and the mod has no requirements.\r\n
    • \r\n
    • \r\n The slot has no requirements, and the mod does not specify any \"Assignable To\" restrictions or the item it's being assigned to has one of the tags listed in the \"Assignable To\" section.\r\n
    • \r\n
    • \r\n The slot's tags contain the mod's tags.\r\n
    • \r\n
    \r\n
    \r\n);","import React from \"react\";\r\nimport { RuleLinks } from \"..\";\r\nimport { ArticleProps } from \"../../articles/ArticleProps\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { RulesArticle } from \"../RulesArticle\";\r\nimport { ModRulesNavLink } from \"./BodyModRules\";\r\nimport { SlotRulesNavLink } from \"./SlotRules\";\r\nimport { AttackRulesLink } from \"./AttackRules\";\r\nimport { SpellRulesLink } from \"./SpellRules\";\r\n\r\nexport const ModRulesLink = new ArticleNavLink({\r\n path: 'Mods',\r\n name: 'Mods',\r\n render: (index?: number) => ,\r\n sublinks: [\r\n ModRulesNavLink,\r\n SlotRulesNavLink,\r\n AttackRulesLink,\r\n SpellRulesLink\r\n ]\r\n});\r\n\r\nconst ModRules = (props: ArticleProps) => (\r\n \r\n

    \r\n In the wasteland everything is precious which means everything is personalized. Customizing your gear to fit your character is natural and fun! Two characters wielding pistols might be very different in a fight because of the mods they chose to outfit themselves with. You can modify your gear by attaching mods to it which can impart it, and you, with special abilities.\r\n

    \r\n
    \r\n);","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst SplittingMinionsLink = new ArticleNavLink({ name: 'Splitting Your Minions', path: '#' })\r\n\r\nexport const MinionRulesLink = new ArticleNavLink({\r\n name: 'Commanding Minions',\r\n path: '#Minions',\r\n render: () => ,\r\n sublinks: [\r\n SplittingMinionsLink\r\n ]\r\n});\r\n\r\nconst HordeRules: React.FC = () => (\r\n
    \r\n

    {MinionRulesLink.name}

    \r\n

    \r\n Minions are helper NPCs that you can control using your command skill. As your command skill increases, you will be able to control more minions, each of which becomes a part of your minion horde. Your minion horde occupies a single hex. When you use your command skill to control a minion, you use one of your minions' abilities, and it originates from your minion horde.\r\n

    \r\n

    \r\n Your horde is treated as a singular entity by enemies. They can target your horde as one character, but not any particular minion in your horde. When your horde is dealt damage, you choose a legal target in that horde to take that damage. If the damage would deal more damage than that minion's health, the remaining damage must be assigned to the next legal minion in your horde, if one exists. Your minion horde is a legal target of an ability so long as at least one living minion in the horde could be a legal target.\r\n

    \r\n \r\n You control a minion horde with a blaster bot and a bruiser bot. The horde is hit with an attack that deals 6 kinetic damage. You may assign all 6 kinetic damage to the blaster bot, which would bring it down. The remaining 1 damage would have to be assigned to your bruiser bot, as it is still a legal target for the damage. Alternatively, if you assigned all the damage to your bruiser bot first, it would survive the attack because its armor would reduce the damage received, meaning no damage would need to be assigned to the blaster bot.\r\n \r\n \r\n \r\n
    \r\n);\r\n\r\nconst SplittingMinions: React.FC = () => (\r\n
    \r\n

    {SplittingMinionsLink.name}

    \r\n

    \r\n Sometimes it makes narrative sense to split your minions up rather than have them move together as part of your horde. When you need to spit a minion off to act on its own, you can still control it, but it is not considered a part of your horde; you cannot use any of its abilities as a primary action, it cannot be affected by other abilities, and you cannot do anything besides have it move or perform simple actions (such as grabbing an object).\r\n

    \r\n
    \r\n);","import React from \"react\"\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\"\r\nimport { BioIcon, HackIcon } from \"../../icons\"\r\n\r\nexport const ControllingVehicleRulesLink = new ArticleNavLink({\r\n name: \"Controlling Vehicles\",\r\n path: \"#ControllingVehicles\",\r\n render: () => \r\n})\r\n\r\nexport const ControllingVehicleRules = () => (\r\n
    \r\n

    {ControllingVehicleRulesLink.name}

    \r\n

    \r\n Whoever pilots a vehicle has control of its movement and any other abilities that are used from the cockpit. Piloting a vehicle for a turn requires the use of a hand, and you can use any amount of movement up to the vehicle's movement to transport yourself and any other occupants with the vehicle. Other occupants of the vehicle have normal access to their actions unless some ability on the vehicle specifies otherwise.\r\n

    \r\n

    \r\n Characters inside vehicles can be targeted by abilities as normal, though some vehicles will indicate they provide cover to some or all of their occupants. Vehicles can also be the target of any ability that can target objects. Unless otherwise specified, vehicles are immune to bio damage but susceptible to hacking damage. Just like a character, when a vehicle reaches 0 health, it can no longer move and its abilities can no longer be used.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { ControllingVehicleRules, ControllingVehicleRulesLink } from \"./ControllingVehicles\";\r\n\r\nexport const VehiclesRuleLink = new ArticleNavLink({\r\n path: \"#Vehicles\",\r\n name: \"Piloting Vehicles\",\r\n render: () => ,\r\n sublinks: [\r\n ControllingVehicleRulesLink,\r\n ]\r\n})\r\n\r\nconst VehicleRules = () => (\r\n
    \r\n

    {VehiclesRuleLink.name}

    \r\n

    \r\n Traveling on foot isn't bad, but you can sometimes find a nice ride to travel in style. This chapter will tell you how to pilot vehicles in the wasteland. Vehicles are similar to minions: they have health that scales with your command level, armor, resilience, a movespeed, and more. Unlike minions, though, vehicles need a pilot and can often hold occupants.\r\n

    \r\n

    \r\n Each vehicle will indicate different sections that characters can occupy. Each of these sections may provide different abilities that can be used while in the vehicle. To enter a vehicle, a character adjacent to the vehicle uses 2 hands of actions to enter one of its unoccupied slots. To exit a vehicle, a character expends 2 hands worth of actions to enter any hex adjacent to the vehicle.\r\n

    \r\n \r\n
    \r\n)","import React from \"react\";\r\nimport { RuleLinks } from \"..\";\r\nimport { ArticleProps } from \"../../articles/ArticleProps\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { RulesArticle } from \"../RulesArticle\";\r\nimport { MinionRulesLink } from \"./MinionRules\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { VehiclesRuleLink } from \"./VehicleRules\";\r\n\r\nexport const MinionVehiclesRulesLink = new ArticleNavLink({\r\n path: 'MinionsVehicles',\r\n name: 'Minions & Vehicles',\r\n render: (index?: number) => ,\r\n sublinks: [\r\n MinionRulesLink,\r\n VehiclesRuleLink,\r\n ]\r\n});\r\n\r\nconst MinionRules: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n As your ability to Command improves, you can maintain control over more and more powerful minions. Additionally, you'll find yourself able to pilot more complex vehicles. This chapter will inform you on how to command those minions and vehicles.\r\n

    \r\n
    \r\n);","import './table-of-contents.scss';\r\nimport React, { useState } from \"react\";\r\nimport { GridIcon, ListIcon } from \"../icons\";\r\nimport { ThemedRadio } from \"../inputs/radio/ThemedRadio\";\r\nimport { ArticleNavLink } from \"./navigation/article-navigation/ArticleNavLink\"\r\nimport { Link } from 'react-router-dom';\r\n\r\nexport type Props = {\r\n contentName: string;\r\n rootPath: string;\r\n links: ArticleNavLink[];\r\n}\r\n\r\nconst ChapterViewOption = {\r\n name: 'Chapter View',\r\n display: ,\r\n};\r\n\r\nconst ListViewOption = {\r\n name: 'List View',\r\n display: ,\r\n};\r\n\r\nconst DisplayOptions = [ChapterViewOption, ListViewOption];\r\n\r\nexport const TableOfContents = (props: Props) => {\r\n const { contentName, links, rootPath } = props;\r\n const [useListView, setListView] = useState(false);\r\n const viewTypeClass = useListView\r\n ? 'list-view'\r\n : 'chapter-view';\r\n return (\r\n
    \r\n

    {contentName} - Table of Contents

    \r\n setListView(selected == ListViewOption)} showName />\r\n
      \r\n {links.map((control) => (\r\n
    1. \r\n {control.name}\r\n {!control.articleOnlySublinks &&\r\n
        \r\n {control.sublinks.map(sublink => )}\r\n
      }\r\n
    2. \r\n ))}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\ntype SublinkProps = {\r\n link: ArticleNavLink;\r\n rootPath: string;\r\n parent: ArticleNavLink;\r\n};\r\n\r\nconst Sublink: React.FC = (props: SublinkProps) => {\r\n const { link, rootPath, parent } = props;\r\n const key = `/${rootPath}/${parent.path}${link.path}`;\r\n return (\r\n
  • \r\n {props.link.name}\r\n \r\n
  • \r\n );\r\n};\r\n\r\nconst SubsubLinks: React.FC = (props: SublinkProps) => {\r\n const { link, rootPath, parent } = props;\r\n if(link.sublinks == null || link.sublinks.length == 0) {\r\n return null;\r\n }\r\n return (\r\n
      \r\n {link.sublinks.map(sublink => )}\r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\n\r\nexport const HealthRulesLink = new ArticleNavLink({\r\n path: '#Health',\r\n name: 'Health',\r\n render: () => \r\n})\r\n\r\nconst HealthRules = () => (\r\n
    \r\n

    {HealthRulesLink.name}

    \r\n

    \r\n Your health determines how far away you are from death - an especially horrible fate in the wasteland. Health is represented by a number of hit points and you have a maximum number of hit points equal to 15 plus 3 times your level plus 2 times the highest level between your athletics and melee skills.\r\n \r\n A level 4 character with an Athletics skill of 5 has
    15 + (3 × 4) + (2 × 5) = 37 Hit Points\r\n
    \r\n

    \r\n

    \r\n As your character takes damage, they will lose hit points equal to the damage dealt. Your character can restore their hit points back to full by seeking medical attention or by resting. When a character rests, they restore half of their hit points for each night rested. Medical services can also be rendered by your character, allied characters, or by medical practitioners in exchange for chips.\r\n

    \r\n

    \r\n If your character falls to 0 health, they are either put down or killed depending on what the GM finds appropriate given the circumstances. A character that is down can be stabilized so long as they receive assistance from their allies, but they must receive medical attention of some sort to restore their health above 0. A dead character is dead, and that character's player will need to create a new character to play with for the rest of the adventure.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { JuiceIcon } from \"../../icons/CharacterIcons\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const JuiceRulesLink = new ArticleNavLink({\r\n name: 'Juice',\r\n path: '#Juice',\r\n render: () => \r\n})\r\n\r\nconst JuiceRules = () => (\r\n
    \r\n

    {JuiceRulesLink.name}

    \r\n

    \r\n On your journeys, you will gain access to special abilities: some which generate energy - juice - and others which consume your juice. Juice is binary: your character either has juice or does not have juice. If an ability indicates it requires juice, then it cannot be used unless juice is consumed. If an ability indicates that it juices you, then it can still be used even if you are already juiced.\r\n

    \r\n

    \r\n At the beginning of every scene, you become juiced if you aren't already juiced unless you have the Fatigued status. Fatigue is covered in the next section, and the fatigued condition is covered in greater detail in the fatigued section of the conditions chapter. Below is the juice icon, which is often used to represent juice:\r\n

    \r\n \r\n
    \r\n)","import React from \"react\";\r\nimport { RuleLinks } from \"..\";\r\nimport { ArticleProps } from \"../../articles/ArticleProps\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { RulesArticle } from \"../RulesArticle\";\r\nimport { HealthRulesLink } from \"./HealthRules\";\r\nimport { JuiceRulesLink } from \"./JuiceRules\";\r\n\r\nexport const HealthAndJuiceRulesLink = new ArticleNavLink({\r\n path: 'HealthJuice',\r\n name: 'Health & Juice',\r\n sublinks: [\r\n HealthRulesLink,\r\n JuiceRulesLink,\r\n // FatigueRulesLink,\r\n ],\r\n render: (index?: number) => \r\n});\r\n\r\nconst HealthAndJuiceRules = (props: ArticleProps) => (\r\n \r\n \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\n\r\nexport const DramaticScenesRulesLink = new ArticleNavLink({\r\n name: 'Dramatic Scenes',\r\n path: '#DramaticScenes',\r\n render: () => \r\n})\r\n\r\nconst DramaticScenesRules = () => (\r\n
    \r\n

    {DramaticScenesRulesLink.name}

    \r\n

    \r\n Most scenes you find yourself in will be dramatic scenes. A dramatic scene is used to progress the characters and story forward through conversation and other interactions. Below is a small excerpt from a dramatic scene:\r\n

    \r\n \r\n

    Getting Paid

    \r\n Mayor Lenna (NPC): Well, let's see what you've got.\r\n
    \r\n Chelle Zappah (PC): The Bleeding Wolves will trouble you and your people no more. You'll find Brok's corpse and your stolen artifacts are a kilometer straight past the front gate.\r\n
    \r\n Mayor Lenna (NPC): Incredible! I never doubted you all of course, having put down The Glowing Hydra was proof enough for me. *Lenna beckons her secretary* James here will get you the agreed upon payment with a quick trip to the treasury.\r\n
    \r\n

    \r\n Dramatic scenes are usually highly interactive, asking players to roleplay both dialogue and actions to gain knowledge or move the plot forward. Creative roleplay during dramatic scenes \r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\n\r\nexport const EstablishingScenesRulesLink = new ArticleNavLink({\r\n name: 'Establishing Scenes',\r\n path: '#EstablishingScenes',\r\n render: () => \r\n})\r\n\r\nconst EstablishingScenesRules = () => (\r\n
    \r\n

    {EstablishingScenesRulesLink.name}

    \r\n

    \r\n An establishing scene is designed to introduce players to an area. It can involve being introduced to a new location, or giving context to changes in a familiar one. Establishing scenes give you some basic ideas and prompts about what to expect in an area and what types of activities might prove fruitful. Establishing scenes rarely involve player interactions. Below is an example of an establishing scene your GM might present with you:\r\n

    \r\n \r\n

    Entering the Tavern

    \r\n
    \r\n As you peek inside the tavern, a haze of smoke and alcohol overwhelm your nostrils. Not much activity here, at least not at the moment. A gaunt man works the bar, serving two patrons at various stages of drinking whiskey. A cyborg sits alone at the corner stall, nursing a beer. A human and goblin peer over at you from a distant table before going back to cards and cigarettes.\r\n
    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\nimport { NavLink } from \"react-router-dom\";\r\n\r\nexport const MontageRulesLink = new ArticleNavLink({\r\n name: 'Montages',\r\n path: '#Montages',\r\n render: () => ,\r\n})\r\n\r\nconst MontageRules = () => (\r\n
    \r\n

    {MontageRulesLink.name}

    \r\n

    \r\n Sometimes, your GM will need a lot of time to pass where specific events have little relevance to the story. Maybe your group is preparing to defend a city or traveling a long distance. Montages take place over a long period of time and are a sort of \"fast forward\" gameplay where players simply describe the actions they take over the course of the scene. The free time afforded to you during a montage gives you the opportunity to purchase items, craft equipment, and rest among other things. Below is an example of a montage where Chelle and her party take an evening off to rest and prepare before leaving town in the morning:\r\n

    \r\n \r\n

    Celebrating Victory

    \r\n GM: Enjoying the fruits of their labor, the party takes a night off before heading out in the morning.\r\n
    \r\n You: I'll have Chelle work on some new electronic devices. She'll craft a Sonic Bowel Disruptor before bed.\r\n
    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\n\r\nexport const ActRulesLink = new ArticleNavLink({\r\n name: \"Acts\",\r\n path: \"#Acts\",\r\n render: () => \r\n})\r\n\r\nconst ActRules = () => (\r\n
    \r\n

    {ActRulesLink.name}

    \r\n

    \r\n An act is a collection of scenes that represents a common subtheme or section of the overarching narrative. The structure of acts isn't known in advance, the scenes that occur and how they play out is up to you and your party. Your GM will create scenes for you and the party based on the decisions you make as you traverse through the act.\r\n

    \r\n \r\n Two different acts on Chelle's journey might include slaying The Glowing Hydra and retrieving the artifacts stolen by the Bleeding Wolves Gang. Both might be smaller stories in the greater quest to find the legendary Fountain Of Youth.\r\n \r\n
    \r\n)","import React from 'react';\r\nimport { ArticleProps } from '../../articles/ArticleProps';\r\nimport { RuleLinks } from '..';\r\nimport { ArticleNavLink } from '../../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { RulesArticle } from '../RulesArticle';\r\nimport { DramaticScenesRulesLink } from './DramaticSceneRules';\r\nimport { EstablishingScenesRulesLink } from './EstablishingSceneRules';\r\nimport { MontageRulesLink } from './MontageRules';\r\nimport { ActRulesLink } from './ActRules';\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const SceneRulesLink = new ArticleNavLink({\r\n path: 'Scenes',\r\n name: 'Scenes',\r\n render: (index?: number) => ,\r\n sublinks: [\r\n EstablishingScenesRulesLink,\r\n DramaticScenesRulesLink,\r\n MontageRulesLink,\r\n ActRulesLink,\r\n ]\r\n});\r\n\r\nconst SceneRules: React.FC = (props: ArticleProps) => (\r\n \r\n

    \r\n Everything takes time to occur. When roleplaying, using an appropriate length of time will help keep the pace of the game lively and interactive, divided into scenes. A scene is a unit of time determined by the GM but typically takes place over less than an hour. A scene represents a collection of events that occur in a single location with a relatively consistent set of characters. Scenes are purposeful: every scene will have some importance to the players. As a player, you should roleplay as your character would given the circumstances of the current scene.\r\n

    \r\n

    Action Scenes

    \r\n

    \r\n During combat or other intense situations where precise timing is needed to understand what's happening, you find yourself in an Action Scene. An action scene is composed of rounds, each lasting approximately 6 seconds. Action scenes, and how to roleplay them, are described in greater detail in the next chapter on Action Scenes.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\n\r\nexport const ExpertiseNavLink = new ArticleNavLink({\r\n name: \"Expertise\",\r\n path: \"#Expertise\",\r\n render: () => \r\n});\r\n\r\nconst ExpertiseRules = () => (\r\n
    \r\n

    {ExpertiseNavLink.name}

    \r\n

    \r\n Sometimes, your character is more than just competent at something: they're an expert. To represent their expertise, their competency can be upgrade to Expertise. Expertise represents a mastery of the skill or knowledge in question. What constitutes something your character could reasonably be expected to know or do with expertise is going to be higher than with a regular competency. It's up to you and your GM to determine what counts as reasonable, but remember that expertise should be meaningful!\r\n

    \r\n \r\n Chelle is an expert at playing an instrument. It's reasonable to expect that she can perform well enough to impress high ranking officials during a gala. Someone who is merely competent at an instrument might not be considered for such an important and prestigious event. Similarly, an expert playing an instrument as a street performer will draw a much larger crowd and earn more money than someone who is merely competent with an instrument. Chelle's expertise allowed her to catch the ear of these important officials and that may give the party opportunities in the future!\r\n \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const CustomCompetenciesNavLink = new ArticleNavLink({\r\n name: \"Custom Competencies\",\r\n path: \"#CustomCompetencies\",\r\n render: () => \r\n});\r\n\r\nconst CustomCompetencyRules = () => (\r\n
    \r\n

    {CustomCompetenciesNavLink.name}

    \r\n

    \r\n Not every competency you can imagine will be represented in the provided list of competencies. When it makes sense for your character to be competent at something that isn't on that list, you and your GM can create a custom competency to represent it. Like the competencies in the official list, you should give it a name, a description, and a category. Similarly, you can be an expert in a custom competency like any other competency.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\n\r\nexport const GainingCompetenceNavLink = new ArticleNavLink({\r\n name: \"Gaining Competence\",\r\n path: \"#GainingCompetence\",\r\n render: () => \r\n});\r\n\r\nconst GainingCompetenceRules = () => (\r\n
    \r\n

    {GainingCompetenceNavLink.name}

    \r\n

    \r\n Adventuring will naturally give your character several experiences that may confer competencies on them. To represent this character growth, your character can learn new competencies over time. When it's apparent that your character has acquired the knowledge and craft necessary to have a competency, your character simply gains that competency. Similarly, if your character is already competent at something and they have challenged themselves enough to gain expertise, they simply gain expertise in that competency.\r\n

    \r\n

    \r\n Just like normal comepetencies, you can gain custom competencies too!\r\n

    \r\n \r\n If your GM has created an adventure where you learned how to perform a cult's ritual to gain their trust, it makes sense that you would become competent at it.\r\n \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { DiceBoonsPerLevelTable, ExpertiseDiceBoonsTable } from \"../figures/DiceBoonFigures\";\r\n\r\nexport const RollingCompetenciesNavLink = new ArticleNavLink({\r\n name: \"Invoking Competencies\",\r\n path: \"#Invoke\",\r\n render: () => \r\n});\r\n\r\nconst RollingCompetenciesRules = () => (\r\n
    \r\n

    {RollingCompetenciesNavLink.name}

    \r\n

    \r\n You will almost never be asked to roll to determine the outcome of a competency: most of the time being competent means you are competent at what you want to do. However, during action scenes and other tense moments, your competency can be put to the test. When performing under such stressful circumstances, you use your roll for the turn just as you would any other ability to invoke your competency.\r\n

    \r\n

    \r\n Like your skills, you announce how you intend to invoke your competency after seeing your rolled hand but before using any dice boons. When you invoke your competency, you receive dice boons equal to your character's level. If you have expertise, you receive dice boons as though your character's level were two higher. If you have expertise and your character is level 9 or 10 already, your character has advantage on invoking their competency. As with your skills, you still roleplay out how you use your competency when you invoke it.\r\n

    \r\n

    \r\n Below are tables indicating the dice boons you receive for a given competency or expertise level:\r\n

    \r\n\r\n \r\n \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Directive } from \"../../directives/Directives\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const CreateACompetentCharacterRulesLink = new ArticleNavLink({\r\n name: \"Create a Competent Character\",\r\n path: \"#CreateACompetentCharacter\",\r\n render: () => \r\n})\r\n\r\nconst CreateACompetentCharacterRules = () => (\r\n
    \r\n

    {CreateACompetentCharacterRulesLink.name}

    \r\n

    \r\n When you create a character, give them four competencies or two competencies and one expertise (that expertise is a different competency). You can view a list of all competencies here.\r\n

    \r\n \r\n As an outgoing young bard, we imagined Chelle to be a competent Dancer, knowledgeable about Recent History, and an expert at Playing an Instrument. If you agree with us, mark her down with two competencies in Dancing and Recent History and expertise in Playing an Instrument.\r\n \r\n
    \r\n)","import React from \"react\";\r\nimport { RuleLinks } from \"..\";\r\nimport { ArticleProps } from \"../../articles/ArticleProps\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { RulesArticle } from \"../RulesArticle\";\r\nimport { Example } from \"../../directives/Directives\";\r\nimport { ExpertiseNavLink } from \"./ExpertiseRules\";\r\nimport { CustomCompetenciesNavLink } from \"./CustomCompetencyRules\";\r\nimport { GainingCompetenceNavLink } from \"./GainingCompetenceRules\";\r\nimport { RollingCompetenciesNavLink } from \"./RollingCompetenciesRules\";\r\nimport { TheCataclysm } from \"../../theming/texts\";\r\nimport { CreateACompetentCharacterRulesLink } from \"./CreatingACompetentCharacter\";\r\n\r\nexport const CompetencyRulesLink = new ArticleNavLink({\r\n path: \"Competencies\",\r\n name: \"Competencies\",\r\n render: (index?: number) => ,\r\n sublinks: [\r\n ExpertiseNavLink,\r\n CustomCompetenciesNavLink,\r\n GainingCompetenceNavLink,\r\n RollingCompetenciesNavLink,\r\n CreateACompetentCharacterRulesLink,\r\n ]\r\n})\r\n\r\nconst CompetencyRules = (props: ArticleProps) => (\r\n \r\n

    \r\n Everybody in the wasteland, you included, has different knowledge and expertise. Competencies represent things that you are capable of performing with a fair amount of competency. A competency has a name, a category, and a description of what having this competency means.\r\n

    \r\n \r\n If you are competent at knowing the customs of high society, you know the proper etiquette for upper class parties. A character without that competency will not know those same customs and so the GM should rule against them correctly aknowledging a visiting dignitary and similar upper class functions.\r\n \r\n\r\n

    \r\n To use your competencies, simply explain how you use your competency as part of your roleplaying. Competencies describe things that you can just do. Give an explanation for why your competency applies and, if it's reasonable, it should work. Unlike some other roleplaying games, you will very rarely have to roll to succeed at your competency. Competencies are primarily used to create roleplaying solutions to problems your encounters.\r\n

    \r\n\r\n \r\n

    \r\n Chelle is competent at Recent History, which means that she knows a fair amount about events that have occurred after . If the party overhears talk about a great warrior of the past, you can invoke her knowledge of Recent History as seen below:\r\n

    \r\n\r\n GM: As you walk down the main causeway, whispers bubble up through the alleys and stalls; you get the feeling that outsiders are rare here. From the mumblings, you hear a child ask out to their mother...\r\n
    \r\n\r\n Child (GM): Mother look! Strangers, like the story about Valhan the Valiant!\r\n
    \r\n\r\n You: Would Valhan the Valiant have existed after ?\r\n
    \r\n\r\n GM: Yes.\r\n
    \r\n\r\n You: Alright, then I think Chelle has probably heard of him!\r\n
    \r\n\r\n Chelle (You): Hello there little one, did you say \"Valhan the Valiant\"? I didn't realize he had ventured this far north.\r\n
    \r\n\r\n Child (GM): Oh yeah! Mom, tell her the story about the time you saw him in town before I was born!\r\n
    \r\n\r\n

    \r\n Chelle's knowledge of the recent past has now given the party a possible lead on quests and treasure related to the exploits of Valhan the Valiant.\r\n

    \r\n
    \r\n
    \r\n)","import './rules.scss';\r\nimport * as React from 'react';\r\nimport { IntroductionRulesLink } from './introduction';\r\nimport { CharacterCreationRulesLink } from './creating-your-character';\r\nimport { KinshipRulesLink } from './kinships';\r\nimport { SkillRulesLink } from './skills';\r\nimport { EquipmentRulesLink } from './equipment';\r\nimport { ArticleNavLink } from '../articles/navigation/article-navigation/ArticleNavLink';\r\nimport { PersonalityRulesLink } from './personalities';\r\nimport { ChallengeRulesLink } from './challenges';\r\nimport { ActionScenesRulesLink } from './action-scenes';\r\nimport { ConditionRulesLink } from './conditions';\r\nimport { DiceAndHandsRulesLink } from './dice-and-hands';\r\nimport { MovementAndTargetingRulesLink } from './location-movement';\r\nimport { SocialInteractionRulesLink } from './social-interactions';\r\nimport { TakeActionRulesLink } from './take-action';\r\nimport { ModRulesLink } from './mods';\r\nimport { MinionVehiclesRulesLink } from './minions-vehicles';\r\nimport { TableOfContents } from '../articles/TableOfContents';\r\nimport { HealthAndJuiceRulesLink } from './health-juice-fatigue';\r\nimport { SceneRulesLink } from './scenes';\r\nimport { CompetencyRulesLink } from './competencies';\r\nimport { Route, Routes } from 'react-router';\r\n\r\nexport const RuleLinks: ArticleNavLink[] = [];\r\n\r\nexport const Rules: React.FC = () => (\r\n
    \r\n
    \r\n \r\n {RuleLinks.map((route, index) => {\r\n if (route.render != null) {\r\n return ;\r\n }\r\n })}\r\n } />\r\n \r\n \r\n
    \r\n
    \r\n);\r\n\r\nRuleLinks.push(\r\n IntroductionRulesLink,\r\n CharacterCreationRulesLink,\r\n KinshipRulesLink,\r\n SkillRulesLink,\r\n PersonalityRulesLink,\r\n SocialInteractionRulesLink,\r\n CompetencyRulesLink,\r\n EquipmentRulesLink,\r\n ModRulesLink,\r\n HealthAndJuiceRulesLink,\r\n DiceAndHandsRulesLink,\r\n TakeActionRulesLink,\r\n SceneRulesLink,\r\n ActionScenesRulesLink,\r\n ChallengeRulesLink,\r\n MovementAndTargetingRulesLink,\r\n MinionVehiclesRulesLink,\r\n ConditionRulesLink,\r\n);","import \"./adventure-event.scss\";\r\nimport React, { useMemo } from \"react\";\r\nimport { CharacterInitializer, CharacterCollections } from \"../../../../entities/characters/Character\";\r\nimport { PlayerAccount } from \"../../../../entities/user/PlayerAccount\";\r\nimport { Adventure } from \"../../../../entities/adventures/Adventure\";\r\nimport { AdventureEvent, CharacterAddedAdventureEvent, CharacterRemovedAdventureEvent, CommunalDiceRolledAdventureEvent, CommunalDiceSetAdventureEvent, PlayerJoinedAdventureEvent, PlayerLeftAdventureEvent } from \"../../../../entities/adventures/AdventureEvent\";\r\nimport { useAppSelector } from \"../../../../store/configureStore\";\r\nimport { Die } from \"../../../figures/Die\";\r\nimport { ApplicationState } from \"../../../../store/stores/ApplicationState\";\r\n\r\ntype Props = {\r\n adventure: Adventure; //TODO: Think of any way to avoid having to pass this in so as not to call any hooks\r\n event: AdventureEvent;\r\n players: PlayerAccount[];\r\n characters: CharacterInitializer[];\r\n entities: CharacterCollections;\r\n includeTimestamp?: boolean;\r\n}\r\n\r\nexport const AdventureEventComponent = (props: Props) => {\r\n const { adventure, event, includeTimestamp } = props;\r\n\r\n const date = new Date(event.occurred);\r\n const timestamp = `${date.toLocaleTimeString()} ${date.toLocaleDateString(\"en-US\", { hour12: false })}`;\r\n return (\r\n
    \r\n
    {adventure.name}
    \r\n
    \r\n
    \r\n {getEventText(event)}\r\n
    \r\n {includeTimestamp &&
    {timestamp}
    }\r\n
    \r\n
    \r\n )\r\n}\r\n\r\nconst getEventText = (adventureEvent: AdventureEvent) => {\r\n switch (adventureEvent.type) {\r\n case \"CommunalDiceRolledAdventureEvent\":\r\n return communalDiceRolledText(adventureEvent);\r\n case \"CommunalDiceSetAdventureEvent\":\r\n return communalDiceSetText(adventureEvent);\r\n case \"PlayerJoinedAdventureEvent\":\r\n return playerJoinedText(adventureEvent);\r\n case \"PlayerLeftAdventureEvent\":\r\n return playerLeftText(adventureEvent);\r\n case \"CharacterAddedAdventureEvent\":\r\n return characterAddedText(adventureEvent);\r\n case \"CharacterRemovedAdventureEvent\":\r\n return characterRemovedText(adventureEvent);\r\n }\r\n}\r\n\r\nconst playerJoinedText = (playerJoined: PlayerJoinedAdventureEvent) => {\r\n const { adventureId, playerId } = playerJoined;\r\n const { adventures, players } = useAppSelector(getAdventuresPlayersCharacters);\r\n\r\n const adventure = useMemo(() => adventures.find(a => a.id == adventureId), [adventureId, adventures]);\r\n const player = useMemo(() => players.find(p => p?.id == playerId), [playerId, players]);\r\n\r\n return <>{getPlayerName(player)} joined {getAdventureName(adventure)}.;\r\n}\r\n\r\nconst playerLeftText = (playerLeft: PlayerLeftAdventureEvent) => {\r\n const { adventureId, playerId } = playerLeft;\r\n const { adventures, players } = useAppSelector(getAdventuresPlayersCharacters);\r\n\r\n const adventure = useMemo(() => adventures.find(a => a.id == adventureId), [adventureId, adventures]);\r\n const player = useMemo(() => players.find(p => p?.id == playerId), [playerId, players]);\r\n\r\n return <>{getPlayerName(player)} left {getAdventureName(adventure)}\r\n}\r\n\r\nconst characterAddedText = (characterAdded: CharacterAddedAdventureEvent) => {\r\n const { adventureId, playerId, characterId } = characterAdded;\r\n const { adventures, players, characters } = useAppSelector(getAdventuresPlayersCharacters);\r\n\r\n const adventure = useMemo(() => adventures.find(a => a.id == adventureId), [adventureId, adventures]);\r\n const player = useMemo(() => players.find(p => p?.id == playerId), [playerId, players]);\r\n const character = useMemo(() => characters.find(c => c.id == characterId), [characterId, characters]);\r\n\r\n return <>\r\n {getCharacterName(character)} ({getPlayerName(player)}) was added to {getAdventureName(adventure)}.\r\n ;\r\n}\r\n\r\nconst characterRemovedText = (characterRemoved: CharacterRemovedAdventureEvent) => {\r\n const { playerId, characterId } = characterRemoved;\r\n const { adventures, players, characters } = useAppSelector(getAdventuresPlayersCharacters);\r\n \r\n const player = useMemo(() => players.find(p => p?.id == playerId), [playerId, players]);\r\n const character = useMemo(() => characters.find(c => c.id == characterId), [characterId, characters]);\r\n\r\n return <>{getCharacterName(character)} ({getPlayerName(player)}) was removed from the adventure.;\r\n}\r\n\r\nconst communalDiceSetText = (communalDiceSet: CommunalDiceSetAdventureEvent) => {\r\n const { adventureId, communalDice } = communalDiceSet;\r\n const { adventures, players } = useAppSelector(getAdventuresPlayersCharacters);\r\n\r\n const adventure = useMemo(() => adventures.find(a => a.id == adventureId), [adventureId, adventures]);\r\n const player = useMemo(() => players.find(p => p?.id == adventure?.ownerId), [adventure, players]);\r\n\r\n return <>{getPlayerName(player)} set the communal dice to {communalDice.map(dieFace => {dieFace})};\r\n}\r\n\r\nconst communalDiceRolledText = (communalDiceRolled: CommunalDiceRolledAdventureEvent) => {\r\n const { adventureId, communalDice } = communalDiceRolled;\r\n const { adventures, players } = useAppSelector(getAdventuresPlayersCharacters);\r\n\r\n const adventure = useMemo(() => adventures.find(a => a.id == adventureId), [adventureId, adventures]);\r\n const player = useMemo(() => players.find(p => p?.id == adventure?.ownerId), [adventure, players]);\r\n\r\n return <>{getPlayerName(player)} rolled the communal dice and got {communalDice.map((dieFace, index) => {dieFace})};\r\n}\r\n\r\n\r\nconst getAdventuresPlayersCharacters = (app: ApplicationState) => ({\r\n adventures: app.adventure.adventures,\r\n players: [app.player.me, ...app.player.players],\r\n characters: [...app.character.characters, ...app.character.otherPlayerCharacters]\r\n})\r\n\r\nconst getAdventureName = (adventure: Adventure | null | undefined) => {\r\n if (adventure != null) {\r\n return {adventure.name};\r\n }\r\n return 'an unknown adventure';\r\n}\r\n\r\nconst getPlayerName = (player: PlayerAccount | null | undefined) => player?.displayName ?? \"an unknown player\";\r\nconst getCharacterName = (character: CharacterInitializer | null | undefined) => character?.name ?? \"an unknown character\";","import React, { useMemo } from \"react\"\r\nimport { Toast, TOAST_HELPERS } from \"../../entities/toasts/Toasts\"\r\nimport { ToastActions } from \"../../store/stores/toasts/Toasts.Actions\"\r\nimport { useAppDispatch, useAppSelector } from \"../../store/configureStore\";\r\nimport { AdventureEventComponent } from \"../collection/adventures/adventure-events/AdventureEventComponent\";\r\nimport { LocalAdventure } from \"../../entities/adventures/Adventure\";\r\n\r\ntype Props = {\r\n toast: Toast;\r\n}\r\n\r\nexport const ToastComponent: React.FC = (props: Props) => {\r\n const { id, type, message } = props.toast;\r\n const adventures = useAppSelector(app => app.adventure.adventures);\r\n const { characters, otherPlayerCharacters } = useAppSelector(app => app.character);\r\n const { me, players } = useAppSelector(app => app.player);\r\n const library = useAppSelector(app => app.library);\r\n\r\n let adventure: LocalAdventure | undefined;\r\n const dispatch = useAppDispatch();\r\n if (TOAST_HELPERS.messageIsAdventureEvent(message)) {\r\n adventure = adventures.find(a => a.id == message.adventureId);\r\n }\r\n return (\r\n
    \r\n \r\n {TOAST_HELPERS.messageIsString(message) && \r\n
    {message}
    \r\n }\r\n {TOAST_HELPERS.messageIsAdventureEvent(message)\r\n && adventure\r\n && me\r\n && \r\n }\r\n \r\n
    \r\n );\r\n}","import './toasts.scss';\r\nimport React from \"react\";\r\nimport { IToastableApp } from \"../../store/stores/toasts/Toasts.State\";\r\nimport { ToastComponent } from \"./Toast\";\r\nimport { useAppSelector } from '../../store/configureStore';\r\n\r\nexport const ToastContainer = () => {\r\n const toasts = useAppSelector((app: IToastableApp) => app.toast.toasts);\r\n return (\r\n
    \r\n {toasts.map(toast => )}\r\n
    \r\n )\r\n}","export type RedirectPayload = [string, string] | [];\r\nexport type RedirectionUrlState = {\r\n cryptoText: string;\r\n}\r\n\r\nconst isRedirectUrlState = (obj: any): obj is RedirectionUrlState => {\r\n return typeof (obj?.cryptoText ?? undefined) == \"string\";\r\n}\r\n\r\nexport const RedirectionHelpers = Object.freeze({\r\n redirectionKey: \"redirection\",\r\n isRedirectUrlState\r\n})","import { useAuth0 } from \"@auth0/auth0-react\";\r\nimport React from \"react\";\r\nimport { STRING_UTILS } from \"../../../utils/StringUtilities\";\r\nimport { useLocalStorage } from \"@uidotdev/usehooks\";\r\nimport { RedirectionHelpers, RedirectPayload } from \"../../../entities/site/RedirectPayload\";\r\n\r\nexport const AccountNavButton: React.FC = () => {\r\n const { isAuthenticated, isLoading, logout, loginWithRedirect } = useAuth0();\r\n const [_, setRedirectTo] = useLocalStorage(RedirectionHelpers.redirectionKey);\r\n if(isLoading) {\r\n return null;\r\n }\r\n //TODO: Reset state\r\n const login = () => {\r\n const cryptoText = STRING_UTILS.generateCryptoString(16);\r\n let search = \"\";\r\n if (window.location.search != null && window.location.search != \"\") {\r\n search = `?${window.location.search}`;\r\n }\r\n setRedirectTo([cryptoText, `${window.location.pathname}${window.location.hash}${search}`]);\r\n loginWithRedirect({\r\n authorizationParams: {\r\n prompt: \"consent\",\r\n redirect_uri: `${window.location.protocol}//${window.location.host}`\r\n },\r\n appState: { cryptoText }\r\n });\r\n }\r\n return isAuthenticated\r\n ? logout({ logoutParams: { returnTo: `${window.location.protocol}//${window.location.host}` } })}>Log Out\r\n : Log In\r\n}","import { useAuth0 } from \"@auth0/auth0-react\";\r\nimport React from \"react\";\r\nimport { AccountNavButton } from \"./AccountNavButton\";\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const AccountNav: React.FC = () => {\r\n const { user, isAuthenticated } = useAuth0();\r\n const currentUser = useAppSelector((app: ApplicationState) => app.player.me);\r\n return (\r\n <>\r\n {isAuthenticated && currentUser && (\r\n \r\n {currentUser.displayName == \"\" ? user!.name : currentUser.displayName}\r\n )}\r\n \r\n \r\n );\r\n}","import * as React from 'react';\r\nimport { AccountNav } from './AccountNav';\r\nimport { useAuth0 } from '@auth0/auth0-react';\r\nimport { useRef, useState } from 'react';\r\nimport { MenuIcon } from '../../icons';\r\nimport { ExternalClickDetector } from '../../../utils/events/ExternalClickDetector';\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const SiteNavigation: React.FC = (): JSX.Element => {\r\n const [showHamburgerMenu, setHamburgerMenu] = useState(false);\r\n const buttonRef = useRef(null);\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst NavLinks: React.FC = () => {\r\n return (\r\n <>\r\n 500 AC\r\n \r\n Setting\r\n Rules\r\n GM Guide\r\n Library\r\n \r\n );\r\n}\r\n\r\nconst AuthenticatedLinks: React.FC = () => {\r\n const { isAuthenticated } = useAuth0();\r\n if (!isAuthenticated) {\r\n return null;\r\n }\r\n return (\r\n <>\r\n My Adventures\r\n My Characters\r\n \r\n )\r\n}","import { ThemedButton } from \"../inputs/buttons/ThemedButton\";\r\nimport \"./splash.scss\";\r\nimport React from \"react\";\r\nimport { useAuth0 } from \"@auth0/auth0-react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const Splash: React.FC = () => {\r\n const { loginWithRedirect } = useAuth0();\r\n const login = () => {\r\n loginWithRedirect({\r\n authorizationParams: {\r\n redirect_uri: window.location.href\r\n }\r\n });\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n

    500 AC

    \r\n

    (After Cataclysm)

    \r\n

    \r\n An upcoming post-apocalyptic TTRPG where players\r\n
    \r\n twist fate to create a brighter future.\r\n

    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    What Is 500 AC?

    \r\n

    \r\n 500 AC is a new and innovative take on how to play post-apocalyptic games and TTRPGs in general. Unlike most games where you roll to see if you get to do what you want, in 500 AC you choose from the available outcomes and it. just. happens. Your destiny is your own.\r\n

    \r\n

    \r\n Roll your dice and form poker hands by cleverly rerolling to rewrite fate with the *Cataclysm System*.\r\n

    \r\n \r\n \r\n \r\n View The Rulebook For Free\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n

    \r\n Use our character sheet tool or download them for yourself.\r\n
    \r\n What are you waiting for?\r\n

    \r\n
    \r\n \r\n
    \r\n Download the Character Sheet\r\n
    \r\n
    \r\n
    \r\n *We've noticed people with cookies disabled can have issues creating an account. We are working to resolve this issue but in the meantime, if you feel up to it, you can allow cookies from this site.\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import React from \"react\"\r\n\r\nexport const ComingSoon = () => (\r\n
    \r\n
    \r\n

    Coming Soon

    \r\n

    \r\n This feature isn't complete yet! Come back later.\r\n

    \r\n
    \r\n
    \r\n);","import React from \"react\";\r\nimport { Die } from \"../../figures/Die\";\r\nimport { RulesFiguresConfig } from \"./RulesFigures\";\r\n\r\nexport const CrossCountryTravelTable = () => {\r\n const { headerSpan } = RulesFiguresConfig;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Cross Country Travel Table
    Roll123456
    Outcome (Normal Pace)Major ComplicationMinor ComplicationMinor ComplicationNothing HappensNothing HappensMinor Boon
    Outcome (Fast Pace)Major ComplicationMajor ComplicationMinor ComplicationMinor ComplicationMinor ComplicationNothing Happens
    \r\n )\r\n}\r\n\r\nexport const CrossCountryMajorComplicationDetailsList = () => (\r\n
    \r\n
    Endemic Enemies Attack!
    \r\n
    Enemies native to the area attack the party. The type of enemy will be dependent on where you're traveling through.
    \r\n\r\n
    Bandits / Highwaymen
    \r\n
    A gang of bandits, highwaymen, or any other group of people attack you.
    \r\n\r\n
    You Stumble On A Fight!
    \r\n
    \r\n Two groups are fighting, and the party isn't one of them! The party will have to navigate between the two groups of NPCs and decide to either side with one, try to bring peace to the situation, or side with neither!\r\n
    \r\n\r\n
    Environmental Emergency!
    \r\n
    \r\n An incredible smogstorm appears overhead, boulders come smashing down the ravine, or the nearby dam bursts, releasing a raging river at your party! You'll need to react quickly to get everyone to safety or mitigate the problem.\r\n
    \r\n\r\n
    Sidequest!
    \r\n
    \r\n Give players a puzzle, challenge, or promise of wealth via some grim sign. A dead pilgrim's body has a mysterious map pointing elsewhere, a lone knapsack with only a name and a chest sealed tight, whatever hook there is, give the players an incentive to take a risk and deviate from the current path.\r\n
    \r\n
    \r\n)\r\n\r\nexport const CrossCountryMajorComplicationsTable = () => {\r\n const { headerSpan } = RulesFiguresConfig;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Major Complications
    Roll123456
    Major ComplicationEndemic Enemies Attack!Endemic Enemies Attack!Bandits / Highwaymen Attack!You Stumble On A Fight!Environmental Emergency!Sidequest!
    \r\n )\r\n}\r\n\r\nexport const CrossCountryMinorComplicationsTable = () => {\r\n const { headerSpan } = RulesFiguresConfig;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Minor Complications
    Roll123456
    Minor ComplicationPath BlockedLostRougher Than ExpectedRougher Than ExpectedRougher Than ExpectedStranger(s) Approach
    \r\n )\r\n}\r\n\r\nexport const CrossCountryMinorComplicationsDetailsList = () => (\r\n
    \r\n
    Path Blocked
    \r\n
    \r\n The party can't leave this terrain the way they wanted as the path is obstructed, they must pick a different direction or go back the way they came. Player competencies may mitigate or outright prevent this from being a problem depending on what blocks their path. They can also spend a full day to circumvent or unblock the path, but must perform all rolls for the day as normal.\r\n
    \r\n\r\n
    Lost
    \r\n
    \r\n The party has to roll a d6 to determine which hex they navigate to. If they can't travel there, they roll again until they do. Player competencies may mitigate or outright prevent this from being a problem depending on the nature of the party's misfortune.\r\n
    \r\n\r\n
    Rougher Than Expected
    \r\n
    \r\n The path forward isn't clear; maybe the terrain is rugged or the river nearby has flooded. It will cost an additional movement to pass through this terrain. Player competencies may mitigate or outright prevent this from being a problem.\r\n
    \r\n\r\n
    Strangers Approach
    \r\n
    \r\n A group of strangers arrives. Depending on their disposition, saying the wrong thing may start a fight, saying the right thing might benefit you with valuable information or resources.\r\n
    \r\n
    \r\n)\r\n\r\nexport const CrossCountryEnvironmentalComplicationsTable = () => {\r\n const { headerSpan } = RulesFiguresConfig;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Environmental Complications
    Roll123456
    ComplicationLight Rain / Snow / Dust StormLight Rain/ Snow / Dust StormLight Rain/ Snow / Dust StormLight SmogstormLight SmogstormHeavy Fog / Ash
    \r\n )\r\n}\r\n\r\nexport const CrossCountryEnvironmentalComplicationsDetailsList = () => (\r\n
    \r\n
    Light Rain / Snow / Dust Storm
    \r\n
    \r\n It begins to lightly rain or an alternative weather condition that's appropriate to the region. Continuing to travel in average or poor spirits costs an additional hex of movement.\r\n
    \r\n\r\n
    Light Smogstorm
    \r\n
    \r\n
    \r\n)\r\n\r\nexport const CrossCountryMoraleDetailsList = () => (\r\n
    \r\n
    Good Spirits
    \r\n
    \r\n Being in Good Spirits means the party is optimistic about what lies ahead; you venture into the unknown confident that you'll be able to handle whatever is in your way. When the party is in Good Spirits, once per scene, characters in the party may give themselves advantage on a challenge or action scene roll. Parties are in good spirits whenever they leave a settlement well supplied and rested.\r\n
    \r\n\r\n
    Average Spirits
    \r\n
    \r\n Being in Average Spirits means the party is about neutral with regards to the challenges they'll face in the future.\r\n
    \r\n\r\n
    Poor Spirits
    \r\n
    \r\n Being in Poor Spirits means the party feels as though their travels will not be good or actively harmful. When the Party is in Poor Spirits, they have disadvantage on the first challenge or action scene roll they perform each scene.\r\n
    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { CrossCountryMajorComplicationDetailsList, CrossCountryEnvironmentalComplicationsTable, CrossCountryMajorComplicationsTable, CrossCountryMinorComplicationsTable, CrossCountryTravelTable, CrossCountryMinorComplicationsDetailsList, CrossCountryEnvironmentalComplicationsDetailsList, CrossCountryMoraleDetailsList } from \"../../rules/figures/GuideCrossCountryFigures\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const CrossCountryGuideLink = new ArticleNavLink({\r\n name: \"Going Cross Country\",\r\n path: \"#CrossCountry\",\r\n render: () => \r\n});\r\n\r\nconst CrossCountryGuide = () => (\r\n
    \r\n

    {CrossCountryGuideLink.name}

    \r\n

    \r\n Before reading this guide, be sure to read the rules chapter on cross country travel first! This section will provide you with resources and ideas about how to create an engaging cross country adventure for your play group.\r\n

    \r\n\r\n

    \r\n Below is a table of events to occur when the party is traveling. Roll at d6 at the start of each day. The result on the roll determines what special event or complication occurs that day. Where and when the party encounters the complication (if any) for the day is at your discretion. You may also decide not to determine what occurs on a given day randomly: it may make more sense to decide in advance what, if anything, occurs to your adventurers.\r\n

    \r\n \r\n\r\n

    \r\n Below is a table of major complications that may occur when you roll a 1 on the above table (at normal travel pace).\r\n

    \r\n \r\n\r\n

    Major Complications

    \r\n \r\n\r\n

    \r\n As GM, you are always in control of what major adventure events occur. However, below you will find a table of possible minor complications you might find useful. Roll for or choose one of the options below:\r\n

    \r\n \r\n\r\n\r\n

    Minor Complications

    \r\n \r\n\r\n

    \r\n Here are some options for environmental complications:\r\n

    \r\n \r\n\r\n\r\n

    Environmental Complications

    \r\n \r\n\r\n

    Party Morale

    \r\n

    \r\n Keeping in good spirits will make traveling easier. Unfortunately, that's not always possible with the stress of travel. There are three different levels of morale the party can be in:\r\n

    \r\n \r\n
    \r\n)","import React from \"react\";\r\nimport { RulesFiguresConfig } from \"./RulesFigures\";\r\n\r\nexport const ChipValueByLevelTable = () => {\r\n const { headerSpan } = RulesFiguresConfig;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Character Level
    12345678910
    Total Chip Value1002005001,0002,0005,00015,00020,00030,00050,000
    \r\n )\r\n}","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { ChipValueByLevelTable } from \"../../rules/figures/GuideTreasureFigures\";\r\n\r\nexport const TreasureGuideLink = new ArticleNavLink({\r\n name: \"Treasure\",\r\n path: \"#Treasure\",\r\n render: () => \r\n})\r\n\r\nconst AccessToItemsGuide = () => (\r\n
    \r\n

    {TreasureGuideLink.name}

    \r\n

    \r\n Knowing when to hand out loot is important to pacing the adventures you create. This chapter will describe how many chips and gear to make accessible to your players.\r\n

    \r\n

    Chip Availability

    \r\n

    \r\n You can use the table below to determine the total value of items and chips available to your players:\r\n

    \r\n \r\n

    \r\n The table above is just a guideline. If you find your players have a little more or less than the total chip value for their level, it's not the end of the world. You'll also need to take into account other factors such as what sort of feeling you want your players to have when receiving loot and the amount of effort they've put into acquiring things.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { DungeonDelvingRoomDetailsList, DungeonRoomTable } from \"../../rules/figures/GuideDungeonDelvingFigures\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const DungeonDelvingGuideLink = new ArticleNavLink({\r\n name: \"Dungeon Delving\",\r\n path: \"#DungeonDelving\"\r\n})\r\n\r\nconst DungeonDelvingGuide = () => (\r\n
    \r\n

    {DungeonDelvingGuideLink.name}

    \r\n

    \r\n Before reading this guide, be sure to read the rules chapter on dungeon delving first! This chapter will help you generate dungeons for your players to explore when they leave the wilds of the wasteland. Below is a table for generating rooms in your dungeon when appropriate:\r\n

    \r\n \r\n \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { BookIcon } from \"../icons\";\r\n\r\nexport const GuideRoot = new ArticleNavLink({\r\n path: \"/Guide\",\r\n name: <> Table of Contents\r\n})","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { RulesArticle } from \"../../rules/RulesArticle\";\r\nimport { ArticleProps } from \"../../articles/ArticleProps\";\r\nimport { GuideLinks } from \"..\";\r\nimport { CrossCountryGuideLink } from \"./CrossCountryGuide\";\r\nimport { TreasureGuideLink } from \"./Treasure\";\r\nimport { DungeonDelvingGuideLink } from \"./DungeonDelvingGuide\";\r\nimport { GuideRoot } from \"../GuideRoot\";\r\n\r\nexport const ExplorationGuideLink = new ArticleNavLink({\r\n path: \"Exploration\",\r\n name: \"Exploration\",\r\n render: (index?: number) => ,\r\n sublinks: [\r\n CrossCountryGuideLink,\r\n DungeonDelvingGuideLink,\r\n TreasureGuideLink\r\n ]\r\n})\r\n\r\nconst ExplorationGuide = (props: ArticleProps) => (\r\n \r\n

    \r\n Exploration is a great way to get players to reach out into the world and see what comes their way.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const WhatDoIDoGuideLink = new ArticleNavLink({\r\n name: \"What Do I Do?\",\r\n path: \"#WhatDoIDo\",\r\n render: () => \r\n})\r\n\r\nconst WhatDoIDoGuide = () => (\r\n
    \r\n

    {WhatDoIDoGuideLink.name}

    \r\n

    \r\n \r\n

    \r\n
    \r\n)","import React from \"react\"\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\"\r\nimport { ArticleProps } from \"../../articles/ArticleProps\"\r\nimport { GuideLinks } from \"..\"\r\nimport { ArticleNavigation } from \"../../articles/navigation/article-navigation/ArticleNavigation\"\r\nimport { PageNavigation } from \"../../articles/navigation/PageNavigation\"\r\nimport { GuideRoot } from \"../GuideRoot\"\r\nimport { WhatDoIDoGuideLink } from \"./WhatDoIDo\"\r\n\r\nexport const GuideIntroductionLink = new ArticleNavLink({\r\n path: \"Introduction\",\r\n name: \"Introduction\",\r\n render: (index?: number) => ,\r\n sublinks: [WhatDoIDoGuideLink]\r\n})\r\n\r\nconst GMIntroduction = (props: ArticleProps) => {\r\n const next = props.index != null\r\n ? props.siblings[props.index + 1]\r\n : undefined;\r\n return (\r\n <>\r\n \r\n {GuideIntroductionLink.name}\r\n \r\n
    \r\n \r\n
    \r\n

    Game Master's Guide

    \r\n

    \r\n This guide exists to help *you* create and manage adventures in the 500 AC role playing game. As the game master, you are guiding the other players through challenges and taking control of the game itself. In video game terms, you are taking on the role the computer normally serves.\r\n

    \r\n
    \r\n
    \r\n \r\n )\r\n}","import React from \"react\"\r\nimport { RulesFiguresConfig } from \"./RulesFigures\";\r\n\r\nexport const ComplicationsTable = () => {\r\n const { headerSpan } = RulesFiguresConfig;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Complications Available By Hand\r\n
    HandMinor ComplicationsMajor ComplicationsLegendary Complications
    Bust000
    Pair000
    Two-Pair000
    Triple100
    Small Straight200
    Flush110
    Full House020
    Big Straight120
    Quad111
    Jackpot!021
    \r\n );\r\n}\r\n\r\nexport const EnemyEmpowermentTable = () => {\r\n const { headerSpan } = RulesFiguresConfig;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n Enemy Action Empowerment Roll\r\n
    Roll123456
    EmpowermentDisempoweredDisempoweredUnempoweredUnempoweredEmpoweredEmpowered
    \r\n )\r\n}","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { DiceBoonsPerLevelTable } from \"../../rules/figures/DiceBoonFigures\";\r\nimport { ComplicationsTable, EnemyEmpowermentTable } from \"../../rules/figures/GuideCombatFigures\";\r\n\r\nexport const RollingForEnemiesGuideLink = new ArticleNavLink({\r\n name: \"Rolling For Enemies\",\r\n path: \"#RollingForEnemies\",\r\n render: () => \r\n})\r\n\r\nconst RollingForEnemiesGuide = () => (\r\n
    \r\n

    {RollingForEnemiesGuideLink.name}

    \r\n

    \r\n Similar to players, enemies take their turns simultaneously, so it is entirely up to you as the GM to determine what actions the enemies take and in what order they take them. Unlike with players though, all of the enemies will use the same roll to determine what actions they can take and what complications can arise during that round of combat.\r\n

    \r\n

    \r\n To determine the dice boons you can use on the roll, you can use the following table based on the median (most common) level amongst your players, also known as the Party Level, seen below:\r\n

    \r\n \r\n\r\n

    Complications

    \r\n

    \r\n Based on your roll, you will gain access to different complications that can occur for your players. Complications are listed on an enemy stat block or event block. Complications can only be used once, and they are lost at the end of the round whether or not they were used. There are three types of complications in order from least impactful to more impactful:\r\n

    \r\n
      \r\n
    • Minor
    • \r\n
    • Major
    • \r\n
    • Legendary
    • \r\n
    \r\n

    \r\n You can always use a more impactful complication in place of a less impactful one when available. Below you will find the number and type of complications available to you based on your GM roll:\r\n

    \r\n \r\n\r\n

    Individual Rolls

    \r\n

    \r\n To introduce some variance into the damage enemies deal, you can also roll a single d6 when performing an action with an enemy to determine if that action is empowered or not. The table below indicates when a roll causes an enemy's action to be empowered or disempowered:\r\n

    \r\n \r\n

    \r\n When empowering an enemy attack, you use the empowerment bonus on its stat block. An empowered attack deals additional damage equal to the enemy's empowerment, an unempowered attack deals normal damage, and a disempowered attack deals 1 less damage than normal.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Enemy } from \"../../../entities/library/enemies/Enemy\";\r\nimport { StatBlock } from \"../../../entities/library/enemies/StatBlock\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const StatBlocksGuideLink = new ArticleNavLink({\r\n name: \"Stat Blocks\",\r\n path: \"#StatBlocks\",\r\n render: () => \r\n});\r\n\r\nconst ExampleEnemy: Enemy = {\r\n id: '0',\r\n name: 'Cyber Wolf',\r\n description: 'Vicious and relentless, cyberwolves are a fairly common danger to travelers in the wastes.',\r\n level: 2,\r\n health: 22,\r\n healthScale: 5,\r\n armor: 1,\r\n resilience: 1,\r\n empowerment: 1,\r\n movement: 7,\r\n tags: ['Beast', 'Robot'],\r\n activeAbilities: [\r\n {\r\n id: '1',\r\n name: \"Bite\",\r\n description: \"The cyberwolf bites with its large fangs.\",\r\n type: 'Attack',\r\n abilityType: 'ActiveAbility',\r\n cost: 'None',\r\n range: 1,\r\n juices: false,\r\n dejuices: false,\r\n skillsUsed: [],\r\n damageSuite: [\r\n {\r\n quantity: 5,\r\n damageType: 'Percussive'\r\n }\r\n ],\r\n customDamageTexts: [],\r\n tags: []\r\n },\r\n {\r\n id: '2',\r\n name: \"Dogpile\",\r\n description: \"The cyberwolf dogpiles on the target, dealing 2 additional kinetic damage for each cyberwolf adjacent to the target.\",\r\n type: 'Attack',\r\n abilityType: 'ActiveAbility',\r\n cost: 'None',\r\n range: 1,\r\n juices: false,\r\n dejuices: false,\r\n skillsUsed: [],\r\n damageSuite: [\r\n {\r\n quantity: 3,\r\n damageType: 'Percussive'\r\n }\r\n ],\r\n customDamageTexts: [],\r\n tags: []\r\n },\r\n {\r\n id: '3',\r\n name: \"Leap\",\r\n description: \"The cyberwolf leaps to a target up to 3 hexes away and can immediately use its bite on it.\",\r\n type: 'Attack',\r\n abilityType: 'ActiveAbility',\r\n cost: 'Small',\r\n range: 3,\r\n juices: false,\r\n dejuices: false,\r\n skillsUsed: [],\r\n damageSuite: [],\r\n customDamageTexts: [],\r\n tags: []\r\n },\r\n {\r\n id: '4',\r\n name: \"Laser\",\r\n description: \"The cyberwolf uses its laser to blast an enemy.\",\r\n type: 'Attack',\r\n abilityType: 'ActiveAbility',\r\n cost: 'Big',\r\n range: 6,\r\n juices: false,\r\n dejuices: false,\r\n skillsUsed: [],\r\n damageSuite: [\r\n {\r\n quantity: 5,\r\n damageType: 'Electromagnetic'\r\n }\r\n ],\r\n customDamageTexts: [],\r\n tags: []\r\n }\r\n ],\r\n commonActiveAbilities: [],\r\n reactiveAbilities: [],\r\n commonReactiveAbilities: [],\r\n passiveAbilities: [],\r\n commonPassiveAbilities: []\r\n}\r\n\r\nconst StatBlocksGuide = () => (\r\n
    \r\n

    {StatBlocksGuideLink.name}

    \r\n

    \r\n Before you start controlling enemies, what is an enemy? In game terms, enemies can be identified by Stat Blocks which explain what an enemy is capable of. Below is an example of a Stat Block:\r\n

    \r\n
    \r\n \r\n
    \r\n An example stat block for a cyberwolf.\r\n
    \r\n
    \r\n

    \r\n As you can see, enemies share many similar traits with player characters. You'll notice the following important bits on the stat block:\r\n

    \r\n
      \r\n
    • The enemy's name.
    • \r\n
    • The enemy's base difficulty level*.
    • \r\n
    • The enemy's creature types.
    • \r\n
    • A description of the enemy.
    • \r\n
    • The enemy's health.
    • \r\n
    • The enemy's base health.
    • \r\n
    • The enemy's health when scaled up to higher levels.*
    • \r\n
    • The enemy's movement.
    • \r\n
    • The enemy's armor.
    • \r\n
    • The enemy's resilience.
    • \r\n
    • The enemy's empowerment rating.*
    • \r\n
    \r\n

    \r\n * Level, health scaling, and empowerment are covered below.\r\n

    \r\n \r\n

    Level & Difficulty

    \r\n

    \r\n An enemy's level indicates about how difficult it is at a base line. Using an enemy's level to generate action scene encounters of certain difficulties is covered in greater detail in the chapter on Creating Action Scenes.\r\n

    \r\n \r\n

    Health Scaling

    \r\n

    \r\n When you increase an enemy's level to boost its difficulty, its health scaling indicates how much health you should increase the enemy's health by for each level you increase.\r\n

    \r\n \r\n

    Empowerment

    \r\n

    \r\n Similar to players, enemies can be empowered too. That is covered later in this chapter, but an enemy's empowerment bonus indicates how much you should increase the enemy's damage by on an attack when their attack die is empowered.\r\n

    \r\n\r\n

    Enemies In Combat

    \r\n

    \r\n When controlling enemies as GM, you can split their movement and actions in any order you please.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Hazard } from \"../../../entities/library/hazards/Hazard\";\r\nimport { HazardBlock } from \"../../../entities/library/hazards/HazardBlock\";\r\n\r\nexport const EnvironmentalHazardsGuideLink = new ArticleNavLink({\r\n name: \"Environmental Hazards\",\r\n path: \"#EnvironmentalHazards\",\r\n render: () => \r\n})\r\n\r\nconst ExampleHazard: Hazard = {\r\n id: \"\",\r\n name: \"Sticky Substance\",\r\n description: \"Occupies any amount of space. Characters within the sticky substance are unable to move by normal means and must generate sufficient thrust or destroy the substance to escape.\",\r\n rough: true,\r\n solutions: [\r\n \"Generate thrust to escape the substance.\",\r\n \"Destroy the substance chemically or mechanically, removing the hazard.\"\r\n ],\r\n tags: [\"Movement\"]\r\n}\r\n\r\nconst EnvironmentalHazardsGuide = () => (\r\n
    \r\n

    {EnvironmentalHazardsGuideLink.name}

    \r\n

    \r\n Hazards are environmental effects that pose some harm to the party. Hazards can be recognized by Hazard Blocks which detail what the hazard is and what the intended solutions are.\r\n

    \r\n
    \r\n \r\n
    \r\n An example hazard block for a sticky substance.\r\n
    \r\n
    \r\n

    \r\n An environmental action scene can contain multiple hazards, so players may have to navigate multiple problems at once.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\n\r\nexport const CreatingActionScenesGuideLink = new ArticleNavLink({\r\n name: \"Creating Action Scenes\",\r\n path: \"#CreatingActionScenes\",\r\n render: () => \r\n})\r\n\r\nconst CreatingActionScenesGuide = () => (\r\n
    \r\n

    {CreatingActionScenesGuideLink.name}

    \r\n

    \r\n This chapter will cover two main types of action scenes: combat based and environmental based action. Combat based action is resolved by the party overcoming one or more enemies by force or submission. Environmental based action is resolved by nullifying some sort of threat posed by the area the party finds themselves.\r\n

    \r\n\r\n

    Creating Combat Action Scenes

    \r\n

    \r\n To create a combat scene, you should select enemies that might be found in the party's location. If they are in a criminal compound, it is likely they will be facing off against gang members or bandits. If the party is in an ogre lair, they will likely be facing off against ogres and other aberrations. The game is designed so that a party should be capable of partaking in 3 fights before resting, with each fight containing enemies whose total level is equal to the total of each player's level in the party.\r\n

    \r\n \r\n Consider your party has three level 3 characters. The party's total level is 9 (3 + 3 + 3). A fair fight might include three Cyberwolves (level 2) and a Cyberwolf Alpha (level 3) who also have a total level of 9 (2 + 2 + 2 + 3).\r\n \r\n\r\n

    Creating Environmental Action Scenes

    \r\n

    \r\n Environmental action scenes have a bit more leeway in their setup. Whether browsing through the pregenerated environmental hazards or creating your own, the only requirement for environmental action scenes is that they be solveable for your players. There are a few guidelines though for keeping environmental action scenes exciting:\r\n

    \r\n
      \r\n
    • \r\n Reward players for using abilities and skill checks that require a roll. If players can solve a problem by expending resources or by taking risks, consider shortcutting some of the other parts of the challenge or rewarding the players with treasure.\r\n
    • \r\n
    • \r\n Be flexible when accepting solutions. Environmental checks are definitely more about going with what feels like it works rather than attempting to strictly follow the rules.\r\n
    • \r\n
    • \r\n Don't be afraid to alter existing hazards to match the theme of the party's environment.\r\n
    • \r\n
    \r\n \r\n

    Combining Combat & Hazards

    \r\n

    \r\n You can use hazards and enemies together to make exciting and engaging encounters! Consider how hazards might enhance the abilities of enemies to really get your players thinking. Forcing players to make tough decisions between using their resources to pacify enemies or neutralize hazards can make your play sessions more interesting: a flooding room is one thing, but a flooding room with enemies shooting at you from the grating above will feel even more dangerous!\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { ArticleProps } from \"../../articles/ArticleProps\";\r\nimport { GuideLinks } from \"..\";\r\nimport { RulesArticle } from \"../../rules/RulesArticle\";\r\nimport { RollingForEnemiesGuideLink } from \"./RollingForEnemies\";\r\nimport { StatBlocksGuideLink } from \"./StatBlocks\";\r\nimport { EnvironmentalHazardsGuideLink } from \"./EnvironmentalHazards\";\r\nimport { CreatingActionScenesGuideLink } from \"./CreatingActionScenes\";\r\nimport { GuideRoot } from \"../GuideRoot\";\r\n\r\nexport const ActionScenesGuideLink = new ArticleNavLink({\r\n path: \"ActionScenes\",\r\n name: \"Action Scenes\",\r\n render: (index?: number) => ,\r\n sublinks: [\r\n StatBlocksGuideLink,\r\n RollingForEnemiesGuideLink,\r\n EnvironmentalHazardsGuideLink,\r\n CreatingActionScenesGuideLink,\r\n ]\r\n})\r\n\r\nconst ActionScenesGuide = (props: ArticleProps) => (\r\n \r\n

    \r\n Enemies are the most common conflict your players will encounter in the wasteland. This chapter of the GM Guide will help you navigate how to take control of enemies and what is different between the rules for enemies and the rules for players.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\n\r\nexport const CreatingAdventuresGuideLink = new ArticleNavLink({\r\n name: \"Creating Adventures\",\r\n path: \"#CreatingAdventures\",\r\n render: () => \r\n});\r\n\r\nconst CreatingAdventuresGuide = () => (\r\n
    \r\n

    {CreatingAdventuresGuideLink.name}

    \r\n

    \r\n The first step to creating an adventure is to think about a big narrative goal that gives your players' characters motivation to go forth and accomplish the task at hand. You can choose one of the official published adventures or craft your own.\r\n

    \r\n\r\n

    Choosing a Published Adventure

    \r\n

    \r\n Published adventures are official adventures that have been designed and playtested for use with the 500 A.C. system. Published adventures are great for getting play started quickly or when you're just starting out and aren't sure how to create your own adventures just yet.\r\n

    \r\n

    \r\n Published adventures will provide you with key locations, NPCs, and objects that your players will interact with, along with major plot points and contingencies for what happens when players make certain decisions. You'll still need to improvise a bit and accommodate for your players' decisions: no adventure can account for every possible action someone could take.\r\n

    \r\n\r\n

    An Adventure of Your Own

    \r\n

    \r\n Creating your own adventure can be a fun endeavor all its own! Maybe you feel like telling your own tale, or you know your players are looking for something original, this section will give you tools and ideas for creating your own adventure.\r\n

    \r\n\r\n

    Creating Conflict

    \r\n

    \r\n A good adventure has some sort of conflict that motivates the characters within to act. A conflict could be very clear and obvious like there is an upstart warlord who has been expanding his territory violently, or it could be revealed to the characters only after solving a mystery to unravel the greater conspiracy. Every adventure has this conflict to drive the plot and actions of the characters within.\r\n

    \r\n\r\n

    Creating Nodes (Places of Interest)

    \r\n

    \r\n You will never be able to build every place your players will venture beforehand, but it is important to establish a few key places of interest, known as Nodes, which serve as focal points for the adventure's plot to advance. Keep in mind that not every node has to be accessible to players right away: maybe they won't be able to venture to an island settlement until they get a boat or the local ferry is fixed.\r\n

    \r\n

    \r\n Nodes are important for giving players free access to different locations which provide them with different access to resources to advance the plot. A rebel base in the hills may serve as a safe haven and source of information early in the adventure, but become a series of combat encounters when the antagonist learns of its location after confronting the party earlier.\r\n

    \r\n

    \r\n Nodes also give players the chance to approach problems in ways you hadn't intended. If the players are investigating a mystery and there are important clues at two different nodes, the information at one node might lead the players to investigate the second node. Or, approaching the problem in the opposite direction, the players might go to the second node, use that information to get to their target, but realize they need the context of the first node, requiring them to backtrack there.\r\n

    \r\n \r\n Your party is searching for a thief. They know that he has stolen from the local village and the nearby dam. At the village, the party will find evidence implicating Jayce. At the dam, they will find evidence that the thief had accomplices they disagreed with. Putting the two together gives the party information that Jayce might be coerced or working with others purely out of necessity. That will give them more leads on who else he is working with, such as the local gang. \r\n \r\n\r\n

    Creating Key NPCs

    \r\n

    \r\n Having important people for your players to meet is just as important as giving them interesting places to go. Creating interseting characters involves giving them motivations and roles within the narrative. Below are some ideas for NPC roles:\r\n

    \r\n
      \r\n
    • \r\n Helper. This NPC will provide consistent help to the players in achieving their goals.\r\n
    • \r\n
    • \r\n Obstructor. This NPC exists primarily to oppose or limit the NPCs when attempting to accomplish their goals.\r\n
    • \r\n
    • \r\n Antagonist. This NPC violently opposes the party.\r\n
    • \r\n
    • \r\n Revealer. This NPC exists primarily to give the NPCs information important to some plot point in the adventure.\r\n
    • \r\n
    • \r\n Red Herring. This NPC serves to lead the NPCs into believing something false. They may be a fake villain or they could push a false narrative on the NPCs for some personal reason.\r\n
    • \r\n
    • \r\n Indirect. This NPC is never interacted with directly, but their actions have impacted the adventure or other characters within the adventure. They could be an important political figure whose decisions affect the party or they could be a historical figure about whom legends were told.\r\n
    • \r\n
    \r\n

    \r\n When creating characters, it's important to make them feel like a real person. Think about this character and give them motivations, consider their relationships with other characters, and how their skillsets have impacted their life.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const AdventureStructureGuideLink = new ArticleNavLink({\r\n name: \"Structuring an Adventure\",\r\n path: \"#StructureAdventures\",\r\n render: () => \r\n})\r\n\r\nconst AdventureStructureGuide = () => (\r\n
    \r\n

    {AdventureStructureGuideLink.name}

    \r\n

    \r\n When creating your adventure, it helps to break it up. Adventures in 500 A.C. are designed to be broken up into Acts which are themselves composed of Scenes:\r\n

    \r\n
    \r\n
    Scene
    \r\n
    \r\n Scenes are arbitrary units of time determined by you, the GM. Scenes should generally take place within a consistent location and a mostly consistent group of character (usually at least the party). There are several different types of scenes you can create, each with different emphasis and utility. A scene might consist of the party asking a local the location of a bandit hideout or moving quickly to put out a series of fires.\r\n
    \r\n\r\n
    Act
    \r\n
    \r\n An act is a series of scenes which create a miniature narrative within the greater adventure. An act might be the players trying to break into a secret compound for documents they'll need later. It could also be them slaying one of a series of monsters they've been contracted to kill. Characters level up at the end of an act.\r\n
    \r\n\r\n
    Adventure
    \r\n
    \r\n An adventure consists of one or more acts to form a greater narrative. An adventure might involve the party attempting to foil the plans of an upstart warlord or questing to retrieve a stolen artifact. Adventures usually have larger themes that will seek to challenge players on a narrative and, potentially, an emotional level.\r\n
    \r\n
    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport const CreatingActsGuideLink = new ArticleNavLink({\r\n name: \"Creating Acts\",\r\n path: \"#CreatingActs\",\r\n render: () => \r\n});\r\n\r\nconst CreatingActsGuide = () => (\r\n
    \r\n

    {CreatingActsGuideLink.name}

    \r\n

    \r\n Once you've figured out the overarching narrative for your adventure, it's time to break it up into acts. Some adventures can consist of only a single act (so your job is already done!) but many consist of two or more. Acts serve as narrative breaks within the adventure and represent your players' characters becoming stronger by leveling up.\r\n

    \r\n

    \r\n Each act consists of a collection of scenes. You don't need to figure out all the scenes in advance - and it's almost always a bad idea - because you can create scenes on the fly to address what your party wants to do. If you haven't already, check out the rules chapter on scenes. There are several types of scenes you have to work with; each with an example of how you as the GM might introduce these scenes:\r\n

    \r\n
    \r\n
    Establishing Scene
    \r\n
    \r\n An establishing scene sets the mood and provides a description to the players of where they are and what lies ahead. Establishing scenes should be very brief: they exist solely to communicate an idea to the party without any interaction.\r\n
    \r\n \r\n GM (You): \"You find yourselves dizzy and dehydrated on the sandy shoreline. The sun pours over you like the hot wax of a wilting candle. Apart from the dense forest and cliffs, only a lone shipwreck is visible near the edge of the horizon.\"\"\r\n \r\n\r\n
    Dramatic Scenes
    \r\n
    \r\n Dramatic Scenes are the most common type of scene. Dramatic Scenes involve conversations between characters, both players and you as the NPCs. They can involve skill checks, actions, or anything else that the players or NPCs could plausibly do. Dramatic scenes are a free flow back and forth between you representing NPCs and the world and your players roleplaying.\r\n
    \r\n \r\n GM (You): As you approach, a guard shouts down from the gate laser at the ready.\r\n
    \r\n Guard #1 (You): Halt strangers; announce your business in Hargrove and we'll have no quarrel.\r\n
    \r\n\r\n
    Action Scenes
    \r\n
    \r\n Action Scenes are highly regimented to keep a consistent time. Whenever more exact timing is needed to establish what happens, you should enter an action scene. Action Scenes include combat and environmental hazards: events which require the players to react in a more regulated way.\r\n
    \r\n \r\n GM (You): The raiders don't seem swayed by your words. Action!\r\n
    \r\n (Follow the rules in the chapter on action to see how the battle plays out!)\r\n
    \r\n\r\n
    Montages
    \r\n
    \r\n Montages are similar to Dramatic Scenes in that they are free-flowing. Unlike Dramatic Scenes though, Montages don't contain any dialogue and are a way to \"fast forward\" through time by having players describe what they do over the course of the montage and you briefly describe what happens over the same time frame. Just like how Action Scenes are useful for more precise timing, Montages are useful for imprecise timing.\r\n
    \r\n \r\n GM (You): The train is about a day's ride. So you have you've got time to do whatever you want that's possible on this train.\r\n \r\n
    \r\n\r\n

    \r\n Feel free to break up or introduce scenes as you see fit to keep the narrative flowing. Scenes are, first and foremost, a tool to use to facilitate roleplaying. Don't let scenes get in the way of good gameplay! Be dynamic with your scenes when needed.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { Example } from \"../../directives/Directives\";\r\n\r\nexport const DesigningForYourPlayersGuideLink = new ArticleNavLink({\r\n name: \"Designing For Your Players\",\r\n path: \"#DesigningForPlayers\",\r\n render: () => \r\n})\r\n\r\nconst DesigningForYourPlayersGuide = () => (\r\n
    \r\n

    {DesigningForYourPlayersGuideLink.name}

    \r\n

    \r\n Every party is different, this guide will help you tweak adventures and adapt them to your players.\r\n

    \r\n\r\n

    Consider Content

    \r\n

    \r\n Not all players will feel comfortable with every topic or setting. For example, some players may not feel comfortable with graphic descriptions of gore and violence. Others may not feel comfortable with content that is too similar to something that has happened in their past. It's a good idea to inform your players about the type of content you intend to expose them to in the adventure and to ask them to let you know in private if there's anything they'd prefer to not to experience.\r\n

    \r\n\r\n

    Account for Choices

    \r\n

    \r\n While the game's content is designed for all types of parties and character builds, it's not possible to ensure that the content is equally engaging for each of these possibilities. Consider keeping track of the following to get a better idea of how to keep the adventure fun for everyone involved:\r\n

    \r\n
      \r\n
    • \r\n Ask your players before the adventure begins what they want to do. Knowing in advance what your players are looking might inspire you to write an entire act that explores that topic! \r\n
    • \r\n
    • \r\n Try to get a gauge of which players are participating who want to, and how much time each is getting to roleplay. If one player is taking up a lot of the spotlight, it could be that you're designing challenges that cater to their character. It could also mean that they are hogging roleplay time, in which case you may want to talk with them in private if it's preventing everyone from getting a chance to participate who wants to.\r\n
    • \r\n
    • \r\n Keep track of which characters are falling behind in combat and challenge utility. Try giving players who are underperforming more challenges and enemies that cater to them. For example, if a character who does a lot of fire damage is underperforming, consider introducing more enemies which have low resilience.\r\n
    • \r\n
    • \r\n Note how your players react to things. If players are excited about something, think about ways you might be able to reintroduce that event or character later! If they are unenthused or groaning, try to avoid those types of challenges in the future.\r\n
    • \r\n
    \r\n\r\n

    React To Backgrounds

    \r\n

    \r\n You should always consider your player character's backgrounds and try to make them a part of the story. Your players will be more engaged with your adventure if their backgrounds are woven into the plot.\r\n

    \r\n \r\n If one of your player characters is searching for their sibling's murderer, then you should try to incorporate that into the adventure. Think about important characters already present who could be the murderer, or creating and introducing the murderer as part of an act.\r\n \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const StartingTheAdventureGuideLink = new ArticleNavLink({\r\n name: \"Starting the Adventure\",\r\n path: \"#StartingTheAdventure\",\r\n render: () => \r\n})\r\n\r\nconst StartingTheAdventureGuide = () => (\r\n
    \r\n

    {StartingTheAdventureGuideLink.name}

    \r\n

    \r\n Starting a new adventure is challenging; this chapter will assist you in getting the ball rolling. This advice is especially useful if you have never played an RPG before or if you have never been a GM before!\r\n

    \r\n\r\n

    Session Zero

    \r\n

    \r\n In some other RPGs, they'll refer to many of the following sections as part of a Session Zero or Session 0. A Session Zero is an initial play session before the adventure begins where the GM and the players will work together to generate characters and discuss the nature of the advneture. Feel free to use that terminology here too, but each section will stand alone to let you decide how you want to get started. You also don't need to have an actual separate session just to create characters and review the adventure: sometimes it's okay to let players build their characters in advance.\r\n

    \r\n\r\n

    Who's Playing Who?

    \r\n

    \r\n Before beginning any adventure, you'll need to know who is playing and what characters those players are playing as. This means you should be informed of what characters will be in the adventure, what those characters are capable of doing, and who they are: you want to know their backgrounds, motivations, and existing relationships.\r\n

    \r\n\r\n

    Getting the Party Together

    \r\n

    \r\n It won't always make sense for player characters to know each other: in fact it's quite unlikely! There are several common tropes you can use to introduce the party to one another, some ideas are listed below:\r\n

    \r\n
      \r\n
    • \r\n Each of the player characters has received a letter from a someone (perhaps a mysterious someone) requesting their presence at a known location.\r\n
    • \r\n
    • \r\n The player characters are all captive together at the start of the adventure.\r\n
    • \r\n
    • \r\n The player characters all happen to be in a common area when a noteworthy event occurs.\r\n
    • \r\n
    \r\n
    \r\n)","import React from \"react\";\r\nimport { GuideLinks } from \"..\";\r\nimport { ArticleProps } from \"../../articles/ArticleProps\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { RulesArticle } from \"../../rules/RulesArticle\";\r\nimport { GuideRoot } from \"../GuideRoot\";\r\nimport { CreatingAdventuresGuideLink } from \"./CreatingAdventures\";\r\nimport { AdventureStructureGuideLink } from \"./AdventureStructure\";\r\nimport { CreatingActsGuideLink } from \"./CreatingActs\";\r\nimport { DesigningForYourPlayersGuideLink } from \"./DesigningForYourPlayers\";\r\nimport { StartingTheAdventureGuideLink } from \"./StartingTheAdventure\";\r\n\r\nexport const AdventuresGuideLink = new ArticleNavLink({\r\n path: \"Adventures\",\r\n name: \"Adventures\",\r\n render: (index?: number) => ,\r\n sublinks: [\r\n AdventureStructureGuideLink,\r\n CreatingAdventuresGuideLink,\r\n CreatingActsGuideLink,\r\n StartingTheAdventureGuideLink,\r\n DesigningForYourPlayersGuideLink,\r\n ]\r\n})\r\n\r\nconst AdventureGuide = (props: ArticleProps) => (\r\n \r\n

    \r\n Adventuring is the core gameplay in 500 After Cataclysm and this part of the GM Guide will give you the tools necessary to craft a compelling adventure for your players.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const CustomEnemiesGuideLink = new ArticleNavLink({\r\n name: \"Custom Enemies\",\r\n path: \"#CustomEnemies\",\r\n render: () => \r\n})\r\n\r\nconst CustomEnemiesGuide = () => (\r\n
    \r\n

    {CustomEnemiesGuideLink.name}

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const CustomHazardsGuideLink = new ArticleNavLink({\r\n name: \"Custom Hazards\",\r\n path: \"#CustomHazards\",\r\n render: () => \r\n})\r\n\r\nconst CustomHazardsGuide = () => (\r\n
    \r\n

    {CustomHazardsGuideLink.name}

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const CustomItemsGuideLink = new ArticleNavLink({\r\n name: \"Custom Items\",\r\n path: \"#CustomItems\",\r\n render: () => \r\n})\r\n\r\nconst CustomItemsGuide = () => (\r\n
    \r\n

    {CustomItemsGuideLink.name}

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const CustomModsGuideLink = new ArticleNavLink({\r\n name: \"Custom Mods\",\r\n path: \"#CustomMods\",\r\n render: () => \r\n})\r\n\r\nconst CustomModsGuide = () => (\r\n
    \r\n

    {CustomModsGuideLink.name}

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\n\r\nexport const CustomAnythingGuideLink = new ArticleNavLink({\r\n name: \"Custom Anything?\",\r\n path: \"#CustomAnything\",\r\n render: () => \r\n})\r\n\r\nconst CustomAnythingGuide = () => (\r\n
    \r\n

    {CustomAnythingGuideLink.name}

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { RulesArticle } from \"../../rules/RulesArticle\";\r\nimport { ArticleProps } from \"../../articles/ArticleProps\";\r\nimport { GuideLinks } from \"..\";\r\nimport { GuideRoot } from \"../GuideRoot\";\r\nimport { CustomEnemiesGuideLink } from \"./CustomEnemies\";\r\nimport { CustomHazardsGuideLink } from \"./CustomHazards\";\r\nimport { CustomItemsGuideLink } from \"./CustomItems\";\r\nimport { CustomModsGuideLink } from \"./CustomMods\";\r\nimport { CustomAnythingGuideLink } from \"./CustomizeAnything\";\r\n\r\nexport const CustomizationGuideLink = new ArticleNavLink({\r\n path: \"Customization\",\r\n name: \"Customization\",\r\n render: (index?: number) => ,\r\n sublinks: [\r\n CustomEnemiesGuideLink,\r\n CustomHazardsGuideLink,\r\n CustomItemsGuideLink,\r\n CustomModsGuideLink,\r\n CustomAnythingGuideLink,\r\n ]\r\n})\r\n\r\nconst ExplorationGuide = (props: ArticleProps) => (\r\n \r\n

    \r\n The rules and guide exist primarily to inspire you to craft a fun play experience, but you shouldn't feel restricted by them. This chapter will give you advice for creating custom enemies, hazards, mods, items, and more!\r\n

    \r\n
    \r\n)","import './copyable-text.scss';\r\nimport React, { useRef } from 'react';\r\nimport { ToastConfig } from '../../../config/ToastConfig';\r\nimport { ToastActions } from '../../../store/stores/toasts/Toasts.Actions';\r\nimport { CopyIcon } from '../../icons';\r\nimport { useAppDispatch } from '../../../store/configureStore';\r\n\r\ntype Props = {\r\n children: string;\r\n description?: React.ReactNode;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const CopyableText: React.FC = (props: Props) => {\r\n const { children, description, disabled } = props;\r\n const dispatch = useAppDispatch();\r\n const textRef = useRef(null);\r\n const copyToClipboard = async (): Promise => {\r\n if (disabled || textRef.current == null) {\r\n return;\r\n }\r\n const permissionName = 'clipboard-write' as PermissionName; //fixes incorrect typing\r\n const result = await navigator.permissions.query({ name: permissionName });\r\n if (result?.state == 'granted' || result?.state == 'prompt') {\r\n navigator.clipboard.writeText(textRef.current.innerText);\r\n dispatch(ToastActions.toastInfo(\"Copied to Clipboard\", ToastConfig.QuickDuration));\r\n }\r\n else {\r\n dispatch(ToastActions.toastError(\"Unable to Copy to Clipboard\", ToastConfig.QuickDuration));\r\n }\r\n };\r\n return (\r\n
    \r\n
    \r\n {children}\r\n \r\n
    \r\n
    {description}
    \r\n
    \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { ThemedButton } from \"../../../../inputs/buttons/ThemedButton\";\r\nimport { CopyableText } from \"../../../../theming/clipboard/CopyableText\";\r\nimport { RollableTable } from \"../RollableTable\";\r\n\r\n//100\r\nconst MasculineFirstNames = [\r\n \"Aero\", \"Adrion\", \"Attom\", \"Aleksander\", \"Armani\", \"Apparatis\", \"Autto\",\r\n \"Barthas\", \"Blue\", \"Boyle\", \"Broccolini\",\r\n \"Cam\", \"Caulian\", \"Carlton\", \"Chip\", \"Chronos\", \"Clestus\", \"Cobalt\", \"Combusto\", \"Copernicus\", \"Cosmo\", \"Crag\",\r\n \"Damien\", \"Dane\", \"Deimos\", \"Dryll\", \"Dynamo\",\r\n \"Eathon\", \"Elias\", \"Everett\", \"Ezra\",\r\n \"Forrestt\", \"Franko\",\r\n \"Gajett\", \"Garrik\", \"Ganymede\", \"Grady\", \"Greysonne\", \"Gyro\",\r\n \"Harlan\", \"Harvee\", \"Hudsen\", \"Hyperion\",\r\n \"Imperius\", \"Isaak\",\r\n \"Jaxon\", \"Jakob\", \"Jaydon\", \"Jonne\", \"Josiah\", \"Justinian\",\r\n \"Kolton\", \"Kristof\", \"Krypton\",\r\n \"Landon\", \"Leonardo\", \"Levver\", \"Lookan\", \"Lookas\",\r\n \"Mayson\", \"Matte\", \"Medius\", \"Meter\", \"Mikel\", \"Miles\",\r\n \"Nero\", \"Neutron\", \"Nickelas\", \"Nucleas\",\r\n \"Octavias\", \"Owenn\",\r\n \"Petron\", \"Phobos\", \"Proteus\",\r\n \"Quasar\",\r\n \"Ratio\", \"Redd\", \"Roman\", \"Rudolph\",\r\n \"Sage\", \"Saladan\", \"Solder\", \"Somnian\", \"Sylas\", \"Sprock\",\r\n \"Tek\", \"Theodias\", \"Titus\", \"Tomcat\", \"Troye\", \"Turbo\",\r\n \"Ulysses\",\r\n \"Vyral\",\r\n \"Welldon\", \"Willix\", \"Wyatt\",\r\n \"Xavian\", \"Xerxes\",\r\n \"Zendell\", \"Zorro\"\r\n];\r\nexport const MasculineFirstNamesTable = () => \r\n\r\n//101\r\nconst FeminineFirstNames = [\r\n \"Alkalynne\", \"Agensie\", \"Angeline\", \"Andromeda\", \"Antonella\", \"Atrissen\", \"Awbrie\",\r\n \"Batteri\", \"Baylee\", \"Benzene\", \"Biologie\", \"Brook\",\r\n \"Cam\", \"Callisto\", \"Carla\", \"Chelle\", \"Chlo\", \"Corona\", \"Clariss\", \"Codeine\", \"Combusta\", \"Curie\",\r\n \"Dakota\", \"Dalia\",\r\n \"Ellipse\", \"Eureka\", \"Evelin\", \"Everette\",\r\n \"Fiona\", \"Fissia\", \"Flu\", \"Florine\", \"Fusia\",\r\n \"Galaxi\", \"Gamma\", \"Gaya\", \"Glora\", \"Ginger\", \"Gwenn\",\r\n \"Harper\", \"Hayle\", \"Heidi\", \"Helena\", \"Helical\", \"Hydraulia\",\r\n \"Jasmynte\", \"Jemimah\", \"Jellona\", \"Joella\", \"Joulia\",\r\n \"Karma\", \"Karani\", \"Katrina\", \"Kaylani\", \"Kendell\", \"Kira\",\r\n \"Kale\", \"Kaleesee\", \"Karinna\",\r\n \"Leighton\", \"Lillian\", \"Loane\", \"Luna\",\r\n \"Malani\", \"Magnesia\", \"Marlee\", \"Maya\", \r\n \"Nancie\", \"Nebula\", \"Neena\", \"Nilah\", \"Nova\", \"Nukie\",\r\n \"Olidia\", \"Oscilla\",\r\n \"Petrolia\", \"Piper\", \"Plasma\", \"Pressia\", \"Proxima\",\r\n \"Quinn\",\r\n \"Raygan\", \"Rotora\", \"Roserie\",\r\n \"Seismi\", \"Shannoth\", \"Siloh\", \"Skye\", \"Solder\", \"Stardust\", \"Stylla\",\r\n \"Talia\", \"Turbina\",\r\n \"Vanessa\", \"Verra\", \"Vivianne\",\r\n \"Willow\", \"Witnee\", \"Wynter\",\r\n \"Xenon\",\r\n \"Zealda\",\r\n];\r\nexport const FeminineFirstNamesTable = () => \r\n\r\n//100\r\nconst Surnames = [\r\n \"Aidewell\", \"Actuater\", \"Anchorman\", \"Argon\", \"Appwell\", \"Audiopipe\", \"Autopilot\", \"Axlebolt\",\r\n \"Barman\", \"Blockbuster\", \"Bitrate\", \"Blogson\", \"Bolter\", \"Brakewell\", \"Broadband\", \"Browser\",\r\n \"Carbide\", \"Cellspire\", \"Charmwell\", \"Choppah\", \"Clubber\", \"Cogmettal\", \"Compressor\",\r\n \"Diesel\", \"Drivetrane\", \"Downlode\", \"Dunerigger\",\r\n \"Emaile\", \"Ethernet\",\r\n \"Fissilemats\", \"Foodie\", \"Foxwell\", \"Fueler\",\r\n \"Gamble\", \"Gearbox\", \"Greengarden\", \"Gigawatt\",\r\n \"Hidef\", \"Horsepower\", \"Hypertext\",\r\n \"Impressor\", \"Influenser\",\r\n \"Jetmann\", \"Jones\",\r\n \"Keene\", \"Kiloton\", \"Konkrete\",\r\n \"Leednozzle\", \"Lewerpryce\", \"Lightyear\",\r\n \"Maneline\", \"Megahertz\", \"Memer\", \"Missyl\",\r\n \"Naylegunner\", \"Neon\", \"Nitro\", \"Nucleus\",\r\n \"Opiate\", \"Overload\",\r\n \"Palmer\", \"Password123\", \"Paywall\", \"Pilot\", \"Plumbob\", \"Pystonne\",\r\n \"Radjammer\", \"Radon\", \"Reebar\", \"Rocketeer\",\r\n \"Sayle\", \"Searlan\", \"Semiconductor\", \"Servo\", \"Skyscraper\", \"Slotto\", \"Sonar\", \"Stargazer\", \"Steele\", \"Streamer\", \"Sneakers\", \"Spawncamper\",\r\n \"Televisor\", \"Terabyte\", \"Transmission\", \"Trendsetter\", \"Thermoflux\", \"Turbofanne\",\r\n \"Underpass\", \"Uranite\",\r\n \"Veeate\", \"Viewcount\",\r\n \"Wifi\", \"Wyre\",\r\n \"Xaust\",\r\n \"Yachtly\", \"Yeeter\", \"Yellowcake\",\r\n \"Zappah\", \"Zydwidth\"\r\n];\r\n\r\nexport const SurnamesTable = () => ;\r\n\r\n\r\ntype Gender = \"Masculine\" | \"Feminine\";\r\n\r\nexport const CharacterNameGenerator = () => {\r\n const [name, setName] = useState(\"\");\r\n const [genderText, setGenderText] = useState(\"\");\r\n const generate = (gender: Gender) => {\r\n setGenderText(`(${gender})`);\r\n\r\n const firstNames = gender == \"Masculine\"\r\n ? MasculineFirstNames\r\n : FeminineFirstNames;\r\n\r\n const firstNameIndex = Math.floor(Math.random() * firstNames.length);\r\n const firstName = firstNames[firstNameIndex];\r\n\r\n const surnameIndex = Math.floor(Math.random() * Surnames.length);\r\n const surname = Surnames[surnameIndex];\r\n\r\n setName(`${firstName} ${surname}`);\r\n }\r\n return (\r\n
    \r\n Complete Character Name Generator\r\n generate(\"Masculine\")}>Generate Masculine Name\r\n  or \r\n generate(\"Feminine\")}>Generate Feminine Name\r\n \r\n {name &&
    {name} {genderText}
    }\r\n \r\n
    \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { FeminineFirstNamesTable, MasculineFirstNamesTable, CharacterNameGenerator, SurnamesTable } from \"../../rules/figures/generation/adventures/NamingFigures\";\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\";\r\n\r\nexport const CreatingNPCsGuideLink = new ArticleNavLink({\r\n path: \"#CreatingNPCs\",\r\n name: \"Creating NPCs\",\r\n render: () => \r\n})\r\n\r\nconst CreatingNPCsGuide = ()=> (\r\n
    \r\n

    {CreatingNPCsGuideLink.name}

    \r\n

    \r\n Oftentimes you will want to introduce custom NPCs for your players to interact with. This section contains tables and tools that will help you generate those NPCs. You can either use the automatic generator below, or manually roll from the tables at the end of this section.\r\n

    \r\n\r\n \r\n\r\n

    \r\n Alternatively, you can create your own name. Names are typically variations of contemporary names, preferring less common names or inspired by something that had an impact on the past (present day real life). Generally names should be somewhat comedic.\r\n

    \r\n\r\n\r\n

    \r\n For each of the tables below, droll a d100 / percentile dice (two d10's are often used, each representing one of the digits).\r\n

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { RulesArticle } from \"../../rules/RulesArticle\";\r\nimport { ArticleProps } from \"../../articles/ArticleProps\";\r\nimport { GuideRoot } from \"../GuideRoot\";\r\nimport { GuideLinks } from \"..\";\r\nimport { CreatingNPCsGuideLink } from \"./CreatingNPCs\";\r\n\r\nexport const BuildingAWorldGuideLink = new ArticleNavLink({\r\n path: \"CreatingAWorld\",\r\n name: \"Creating A World\",\r\n render: (index?: number) => ,\r\n sublinks: [\r\n CreatingNPCsGuideLink,\r\n ]\r\n})\r\n\r\nconst BuildingAWorldGuide = (props: ArticleProps) => (\r\n \r\n

    \r\n This section of the guide will provide you with tools for generating new, random content for your players.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { EnemyTypeRollTable, HumanoidEnemyMotivationsRollTable } from \"../../rules/figures/generation/encounters/CombatGenerationFigures\";\r\n\r\nexport const CreatingEncountersGuideLink = new ArticleNavLink({\r\n name: \"Creating Encounters and Antagonists\",\r\n path: \"#CreatingEncounters\",\r\n render: () => null\r\n})\r\n\r\nconst CreatingEncountersGuide = () => (\r\n
    \r\n

    {CreatingEncountersGuideLink.name}

    \r\n

    \r\n The tables below contain information on creating encounters and antagonists for the party to face.\r\n

    \r\n\r\n\r\n

    Enemy Type

    \r\n

    The table below contains various types of enemies that the players might encounter on their adventures.

    \r\n \r\n\r\n\r\n

    Enemy Motivations

    \r\n

    The table below contains different types of motivations for humanoid enemies (humans & goblins) your party may face.

    \r\n \r\n
    \r\n)\r\n","import React from \"react\";\r\nimport { RollableTable } from \"../RollableTable\";\r\n\r\nconst settlementScales = [\r\n \"A hovel, home to an isolated frontier individual or family working a remote job. Could contain some goods if the residence serves as a trading post. Only people familiar with the area likely know about this location. This settlement probably has at most one interesting feature, if any.\",\r\n \"A small village home to a few households. Contains relatively few resources, mostly just what the locals intend to sell to larger markets. Some people may have heard of this area, but only if it was part of a more interesting story. This settlement probably has about one interesting feature.\",\r\n \"A quiet town, perhaps an outlying settlement to a larger city-state. Less common objects might be obtainable here, but specialty items are not generally available. Very common goods are generally accessible. This type of settlement is probably known in the region, though it's also know that it isn't especially important. This settlement has one or two interesting features.\",\r\n \"A moderately sized town. Common items are fairly easy to come by, and even some rarer items might be in stock, but don't count on it. A village of this size might be part of a larger state. Towns of this size are usually fairly reputable, most people in the area have heard of it and can probably list at least one of its features. This settlement likely has about two interesting features.\",\r\n \"A large city. Common items are readily accessible, rarer goods are obtainable, and there is always plenty to do and see. The city is large enough that it likely has multiple criminal gangs competing for resources, complex politics, and a standing army. Anyone educated in statecraft would be familiar with this settlement. This settlement has about three interesting features.\",\r\n \"A metropolis. This is an influential city or keystone city of a larger empire. This city is likely a major player in geopolitics and is the ire of many a would-be conquerer. Only the rarest of goods can't be found in a settlement of this magnitude, but you can probably find a treasure map that can get them. Everyone knows about this city. Even people far away have likely heard tales and legends about it. A settlement of this scale has at least four interesting features.\"\r\n]\r\nexport const SettlementScaleTable = () => \r\n\r\n\r\nconst settlementFeatures = [\r\n \"The settlement contains a notable university or place of higher learning.\",\r\n \"The settlement is home to a famous individual, perhaps a legendary warrior or renouned sorcerer.\",\r\n \"The inhabitants all belong to a cult that worship a great entity from before The Cataclysm\",\r\n \"The settlement is recovering from a large natural disaster such as a Geigernado or a Chlorocane.\",\r\n \"The settlement is currently experiencing economc boom.\",\r\n \"The settlement is currently experiencing economic bust.\",\r\n \"The settlement's youth have been disappearing under mysterious circumstances.\",\r\n \"The inhabitants are currently suffering from a plague.\",\r\n \"A den of ogres have occupied a nearby cave.\",\r\n \"Raiders have moved into the area begun waylaying travelers.\",\r\n \"Strange mutated creatures have been roaming and killing inhabitants and livestock.\",\r\n \"The settlement is located next to an archeological find and some issues have come up with the excavation.\",\r\n \"An infamous outlaw is lodging in town, but nobody has felt brave enough to confront them.\",\r\n \"A child in the area has come across a powerful spellcasting artifact that they cannot control.\",\r\n \"A sorcerer cursed the land many years ago (e.g. used a spell to poison the land with harmful chemicals or radiation) and the inhabitants are desperate for someone to lift the curse (clean up the sorcerer's mess).\",\r\n \"The settlement's primary source of income is being disrupted by raiders, wild beasts, or some other external force.\"\r\n];\r\nexport const SettlementFeaturesTable = () => \r\n\r\n\r\n\r\nconst settlementLeadership = [\r\n \"This settlement has almost no leadership, it's more of a confederation of families than a serious political entity. This isn't likely to work for anything larger than a quiet town.\",\r\n \"This settlement utilizes communal decision making. This is less likely to work for anything larger than a quiet town.\",\r\n \"This settlement is ruled by a warlord or dictator with absolute power.\",\r\n \"This settlement is ruled by a few powerful noble families. This is less likely for small townships with too few families to have an oligarchic elite.\",\r\n \"This settlement is ruled by elected representatives.\",\r\n \"This settlement makes decisions by putting everything to a vote.\",\r\n]\r\nexport const SettlementLeadershipTable = () => \r\n\r\n\r\n\r\nconst settlementPoliticalFeatures = [\r\n \"The settlement is highly corrupt and several officials or powerful individuals are indebted or puppeted by criminal enterprise.\",\r\n \"One or more key residents of the settlement is/are being held for ransom.\",\r\n \"There is large scale political unrest; a large portion of the population is on the verge of rebellion.\",\r\n \"There is relative peace here, the settlement appears to have things mostly under control and the populace is mostly satisfied with life.\",\r\n \"The leadership here is greatly respected, perhaps they are local heroes or have brought prosperity to the settlement.\",\r\n \"This settlement has a rivalry with a different, nearby settlement.\",\r\n \"This settlement's leadership or influential individuals are old fashioned and unpopular, but nobody appears ready to take the reins just yet.\",\r\n \"This settlement's leadership is weak and ineffectual, but nobody else is willing to step up.\",\r\n \"This settlement has an abundance of red tape. Everything you do seems to require a permit of some sort or is simply outright forbidden.\",\r\n \"This settlement features a rigid caste system.\",\r\n]\r\nexport const SettlementPoliticalFeaturesTable = () => \r\n","import React from \"react\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { SettlementFeaturesTable, SettlementPoliticalFeaturesTable, SettlementScaleTable } from \"../../rules/figures/generation/adventures/CreatingSettlementsFigures\";\r\n\r\nexport const CreatingSettlementsGuideLink = new ArticleNavLink({\r\n name: \"Creating Settlements\",\r\n path: \"#CreatingSettlements\",\r\n render: () => \r\n})\r\n\r\nconst CreatingSettlementsGuide = () => (\r\n
    \r\n

    {CreatingSettlementsGuideLink.name}

    \r\n

    \r\n The tables below contain information on creating a settlement or city.\r\n

    \r\n\r\n\r\n

    Scale

    \r\n

    \r\n Not all settlements are the same size! The table below provides differently scaled settlements to fit the feel of your adventure.\r\n

    \r\n \r\n\r\n\r\n

    Features

    \r\n

    \r\n Below are some interesting features to add to a settlement.\r\n

    \r\n \r\n\r\n \r\n

    Leadership

    \r\n

    \r\n Below indicates how the settlement might organize itself politically.\r\n

    \r\n \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleProps } from \"../../articles/ArticleProps\";\r\nimport { ArticleNavLink } from \"../../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { RulesArticle } from \"../../rules/RulesArticle\";\r\nimport { GuideRoot } from \"../GuideRoot\";\r\nimport { GuideLinks } from \"..\";\r\nimport { CreatingEncountersGuideLink } from \"./CreatingEncounters\";\r\nimport { CreatingSettlementsGuideLink } from \"./CreatingSettlements\";\r\n\r\nexport const ContentGenerationGuideLink = new ArticleNavLink({\r\n path: \"GeneratingContent\",\r\n name: \"Generating Content\",\r\n render: (index?: number) => ,\r\n sublinks: [\r\n CreatingEncountersGuideLink,\r\n CreatingSettlementsGuideLink\r\n ]\r\n})\r\n\r\nconst ContentGenerationGuide = (props: ArticleProps) => (\r\n \r\n

    \r\n In this section, you'll find guidelines to help you create adventure content on the fly! Choose options from the tables or let chance take the wheel and roll dice to determine the outcome or use our table tool to randomly select one. Need some more info to improvise and create a cohesive world? You'll also find plenty of information about the world of 500 After Cataclysm and how to incorporate those ideas into your adventures.\r\n

    \r\n
    \r\n)","import React from \"react\"\r\nimport { ArticleNavLink } from \"../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { TableOfContents } from \"../articles/TableOfContents\";\r\nimport { ExplorationGuideLink } from \"./exploration\";\r\nimport { GuideIntroductionLink } from \"./gmintro\";\r\nimport { ActionScenesGuideLink } from \"./action-scenes\";\r\nimport { AdventuresGuideLink } from \"./adventures\";\r\nimport { CustomizationGuideLink } from \"./customization\";\r\nimport { Route, Routes } from \"react-router\";\r\nimport { BuildingAWorldGuideLink } from \"./building-a-world\";\r\nimport { ContentGenerationGuideLink } from \"./generating-content\";\r\n\r\nexport const GuideLinks: ArticleNavLink[] = [];\r\n\r\nexport const GameMasterGuide = () => (\r\n
    \r\n
    \r\n \r\n {GuideLinks.map((route, index) => {\r\n if (route.render != null) {\r\n return (\r\n \r\n );\r\n }\r\n })}\r\n } />\r\n \r\n \r\n
    \r\n
    \r\n);\r\n\r\nGuideLinks.push(\r\n GuideIntroductionLink,\r\n BuildingAWorldGuideLink,\r\n AdventuresGuideLink,\r\n ExplorationGuideLink,\r\n ActionScenesGuideLink,\r\n CustomizationGuideLink,\r\n ContentGenerationGuideLink,\r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { TheCataclysm } from \"../theming/texts\";\r\n\r\nexport const WhatHappenedHereLink = new ArticleNavLink({\r\n path: \"#WhatHappened\",\r\n name: \"What Happened Here?\",\r\n render: () => \r\n})\r\n\r\nconst WhatHappenedHere = () => (\r\n
    \r\n

    {WhatHappenedHereLink.name}

    \r\n

    \r\n The world is ruined. At some point unknown in the future, a series of catastrophic events collectively referred to as took humanity so close to complete collapse that knowledge of the past became fragmented and muddled. Now, 500 years later, magical thinking is once again pervasive amongst the inheritors of the earth. This broken knowledge has spun a new myth. Heroes and adventurers quest the wasteland wielding legendary weapons against foul mutant beasts. Bards travel the highways earning coin playing the keytar. Science is sorcery, the past a myth.\r\n

    \r\n

    \r\n Humanity has started to recover, but the devastation of cannot be overstated. Without the global infrastructure and organization of the past, most pockets of civilization have had to fend for themselves. Raiders, bandits, and highwaymen still prowl the roads. City states vie with one another for resources of the old world.\r\n

    \r\n

    \r\n doesn't happen tomorrow, but sometime in the future. That means some technology out and about is far beyond our current capabilities. Bio-experiments have run rampant, robots are common enforcers, and laser weaponry abounds. You'll find the technology of the wasteland to sometimes be as alien as the society.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { TheCataclysm } from \"../theming/texts\";\r\n\r\nexport const WhatsDifferentLink = new ArticleNavLink({\r\n path: \"#WhatsDifferent\",\r\n name: \"What's Different?\",\r\n render: () => \r\n})\r\n\r\nconst WhatsDifferent = () => (\r\n
    \r\n

    {WhatsDifferentLink.name}

    \r\n

    \r\n The numerous disasters that befell the earth have left it in a scarred and damaged state; a wasteland. In spite of this, mutant beasts and plants have rapidly adapted with exposure to nuclear and chemical contaminants. Cybernetic experiments that were never meant to see the light of day have spread and multiplied. Humans are no longer the sole intelligent species on earth: Goblins have also carved out a slice of the dwindling pie.\r\n

    \r\n\r\n

    Goblins? What Are Goblins!?

    \r\n
    \r\n \r\n
    A goblin of the Cog Clan
    \r\n
    \r\n

    \r\n Created sometime before The Catacylsm from bats and released when all hell broke loose, Goblins now live amongst humans, as a part of traveling caravans, and in secluded enclaves of their own. All goblins hail from a mother clan formed sometime after they escaped during The Catacylsm. A goblin's clan represents their lineage and the heraldry is often tattooed onto their body. Each clan has unique customs and preferred mode of life. Some clans live in complete isolation, others are fully or partially integrated with human cultures.\r\n

    \r\n\r\n

    Anything Else?

    \r\n

    \r\n Compared to real time, isn't due for a while. In that time, several technological advancements have been made. Lasers, experimental drugs, and teleporters are all present alongside technology from the present. Despite all these advancements, classical firearms are still effective so you won't be totally out of your depth exploring the wastes.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavLink } from \"../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { TheCataclysm } from \"../theming/texts\";\r\n\r\nexport const PlacesOfInterestLink = new ArticleNavLink({\r\n path: \"#PlacesOfInterest\",\r\n name: \"Places of Interest\",\r\n render: () => \r\n})\r\n\r\nconst PlacesOfInterest = () => (\r\n
    \r\n

    {PlacesOfInterestLink.name}

    \r\n

    \r\n The exact geography and contents of the wasteland are ultimately up to the Game Master to determine, but there are some notable landmarks and other places of interest that exist.\r\n

    \r\n\r\n

    Tower of Herald

    \r\n

    \r\n The Tower of Herald is home to the eponymous Herald, a mysterious wizard living within a lone, ruined skyscraper in the middle of the desert. Nobody has ever seen Herald nor managed to come back from venturing to his tower alive. A relic from before , Herald is kept alive as effectively a brain in a vat.\r\n

    \r\n

    \r\n From within his tower, Herald controls and manipulates a fleet of spy drones disguised as birds and insects to eavesdrop on the happenings of the wasteland. He spreads this knowledge free of charge, keeping the residents of the wastes informed of the latest news despite being completely oblivious to his true nature. Herald's ambivalence is his greatest strength. Neutral and unassailable in his skyscraper fortress, Herald's motivations are unclear.\r\n

    \r\n\r\n

    Necromancer, and the Army of the Damned

    \r\n

    \r\n They say the Necromancer comes at night, playing a single ominous note before the melody of slaughter. Wielding the mighty Axe of the Damned, a horde of zombies and faithful acolytes - the titular army - await his beck and call. Pillaging small settlements for corpses, the Necromancer's greater motives remain a mystery to wastelanders.\r\n

    \r\n

    \r\n \"Necromancer\" is more of a title than an individual. Ultimately, the Necromancer is simply a vessel for the Axe of the Damned to control rather than a person with his own goals. The Axe hungers for blood: it exists solely to cause misery and mayhem and it targets damaged individuals to become the next Necromancer to sustain its grim legacy.\r\n

    \r\n\r\n

    The Astrozens & Ayasus, the Weeping Star

    \r\n

    \r\n \"Astrozens\", as they call themselves, are the descendents of the astronauts aboard the I.S.S. when wracked the Earth. Safe from the carnage in space and unable to return home, the Astrozens built a new society cloistered far above the ravaged world beneath.\r\n

    \r\n

    \r\n The Astrozens are not entirely localized to the I.S.S. Operating giant semi-autonomous spheres known as \"Reapers\" by wastelanders, small teams on the ground harvest ancient ruins and return their resources to maintain and enhance the station. After so much time, \"I.S.S.\" slowly morphed into the phonetic \"Ayasus\", and the regular reentries to supply their hidden ground teams has caused the space station to be called \"The Weeping Star\" by wastelanders. As the last true bastion of the old ways, the reclusive Astrozen civilization could be a beacon of hope to those mired on the Earth; if only they knew.\r\n

    \r\n\r\n

    The Shogunate

    \r\n

    \r\n The return of civilization and order brought with it criminal enterprise to circumvent the newfound laws. The Shogunate has positioned itself as one of the premier players in black market deals to get around the restrictions of the waste's numerous polities.\r\n

    \r\n

    \r\n Controlled by a man calling himself \"Shogun\", the Shogunate is modeled off a bastardized understanding of Tokugawa's Japan. Its members can be recognized by their slick black suits and crimson ties wearing masks reminiscent of Samurai kabutos. The Shogunate is powerful and controls a large territory; they can never be ignored when smuggling, illicit substances, or violence are involved.\r\n

    \r\n
    \r\n)","import React from \"react\";\r\nimport { ArticleNavigation } from \"../articles/navigation/article-navigation/ArticleNavigation\";\r\nimport { ArticleNavLink } from \"../articles/navigation/article-navigation/ArticleNavLink\";\r\nimport { WhatHappenedHereLink } from \"./WhatHappenedHere\";\r\nimport { WhatsDifferentLink } from \"./WhatsDifferent\";\r\nimport { PlacesOfInterestLink } from \"./PlacesOfInterest\";\r\n\r\nconst SettingLinks: ArticleNavLink[] = [\r\n WhatHappenedHereLink,\r\n WhatsDifferentLink,\r\n PlacesOfInterestLink,\r\n];\r\n\r\nexport const Setting = () => {\r\n return (\r\n
    \r\n
    \r\n \r\n 500 AC\r\n \r\n
    \r\n
    \r\n

    500 AC

    \r\n {SettingLinks.map((link, index) => {\r\n const inner = link.render(index);\r\n if (inner == null) {\r\n return undefined;\r\n }\r\n return (\r\n
    \r\n {inner}\r\n
    \r\n )\r\n })}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import './validation.scss';\r\nimport React from \"react\";\r\nimport { ValidationRequirement } from \"../../../entities/forms/Validation\"\r\nimport { ErrorIcon } from \"../../icons\";\r\n\r\ntype Props = {\r\n validationResults: ValidationRequirement[];\r\n}\r\n\r\nexport const ValidationResultsComponent = (props: Props) => {\r\n const { validationResults } = props;\r\n return (\r\n
    \r\n {validationResults.filter(vr => vr.match).unique(vr => vr.message).map(vr => (\r\n
    \r\n  {vr.message}\r\n
    \r\n ))}\r\n
    \r\n );\r\n}","import React, { useState } from \"react\"\r\nimport { BreakdownWindow } from \"../../theming/breakdown-window\"\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { AdventureActions } from \"../../../store/stores/adventures/AdventureStore.Actions\";\r\nimport { useNavigate } from \"react-router\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\nimport { ValidationResultsComponent } from \"../../inputs/validation/ValidationResults\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\n\r\n\r\nexport const AdventureCreator = () => {\r\n const dispatch = useAppDispatch();\r\n const navigate = useNavigate();\r\n\r\n const { adventures, creating } = useAppSelector(app => app.adventure);\r\n const currentAdventureNames = adventures.map(a => a.name);\r\n const [name, setName] = useState(\"\");\r\n\r\n const nameInvalid = currentAdventureNames.any(adventureName => adventureName == name);\r\n\r\n const postCreateCallback = (id: string) => navigate(`/Adventures/${id}/View`);\r\n\r\n const create = () => {\r\n if (nameInvalid) {\r\n return;\r\n }\r\n dispatch(AdventureActions.createAdventure({name}, postCreateCallback));\r\n }\r\n return (\r\n navigate(\"/Adventures\")} heading={

    Create Adventure

    }>\r\n
    \r\n \r\n setName(e.target.value)} />\r\n \r\n
    \r\n {creating && Creating Adventure}\r\n Create\r\n
    \r\n )\r\n}","import React from \"react\";\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { Link, Route, Routes } from \"react-router-dom\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { ErrorNotification } from \"../../notifications/Notification\";\r\nimport { AdventureCreator } from \"./AdventureCreator\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const AdventureList: React.FC = () => {\r\n const { adventures, loaded, error } = useAppSelector((state: ApplicationState) => state.adventure);\r\n const loadCompleted = loaded && !error;\r\n let unnamedAdventureCount = 0;\r\n return (\r\n <>\r\n

    My Adventures

    \r\n {loadCompleted &&
    \r\n Create New Adventure\r\n \r\n } />\r\n \r\n
    }\r\n\r\n {loadCompleted && !adventures.any() && \"You're not participating in any adventures yet!\"}\r\n {!loaded && !error && Loading Adventures}\r\n {error && There was an error loading your adventures, you can try refreshing the page to fix the issue.}\r\n
      \r\n {adventures.map(adventure => {\r\n const name = adventure.name.trim() == ''\r\n ? `Unnamed Adventure ${++unnamedAdventureCount}`\r\n : adventure.name;\r\n return (\r\n
    • \r\n \r\n {name}\r\n \r\n
    • \r\n )\r\n })}\r\n
    \r\n \r\n );\r\n}","import React, { useEffect, useState } from \"react\"\r\nimport { useParams } from \"react-router\"\r\nimport { AdventureActions } from \"../../../store/stores/adventures/AdventureStore.Actions\";\r\nimport { useNavigate } from \"react-router\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { useAppDispatch } from \"../../../store/configureStore\";\r\n\r\nexport const JoinAdventure: React.FC = () => {\r\n const dispatch = useAppDispatch();\r\n const params = useParams();\r\n const navigate = useNavigate();\r\n const [joinStarted, setJoinStarted] = useState(false);\r\n const inviteId = params[\"inviteId\" as keyof typeof params];\r\n useEffect(() => {\r\n if (inviteId != null && !joinStarted) {\r\n setJoinStarted(true);\r\n dispatch(AdventureActions.join(inviteId, (id: string) => navigate(`/Adventures/${id}/View`), () => navigate(\"/Adventures\")));\r\n }\r\n }, [inviteId]);\r\n \r\n if (inviteId == null) {\r\n navigate(\"/Adventures\");\r\n }\r\n return Joining Adventure...;\r\n}","import './themed-checkbox.scss';\r\nimport React from \"react\"\r\nimport { CheckedIcon, CheckedOutlineIcon, UncheckedIcon, UncheckedOutlineIcon } from \"../../icons\";\r\n\r\ntype Props = {\r\n checked: boolean;\r\n disabled?: boolean;\r\n setChecked: (checked: boolean) => unknown;\r\n suppressBubble?: boolean;\r\n}\r\n\r\nexport const ThemedCheckbox: React.FC = (props: Props) => {\r\n const { checked, disabled, setChecked, suppressBubble } = props;\r\n const onClick = (e: React.MouseEvent) => {\r\n if (disabled) {\r\n return;\r\n }\r\n \r\n setChecked(!checked);\r\n if (suppressBubble) {\r\n e.stopPropagation();\r\n }\r\n }\r\n return (\r\n
    \r\n
    \r\n {checked ? : }\r\n
    \r\n
    \r\n {checked ? : }\r\n
    \r\n \r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { JSXChildProps } from \"../../entities/utils/jsx/Children\"\r\n\r\ntype Props = JSXChildProps;\r\n\r\nexport const Notice: React.FC = (props: Props) => (\r\n
    \r\n {props.children}\r\n
    \r\n)","import React from \"react\";\r\nimport { Adventure } from \"../../../entities/adventures/Adventure\";\r\nimport { AdventureActions } from \"../../../store/stores/adventures/AdventureStore.Actions\";\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { CollapsibleSection } from \"../../articles/CollapsibleSection\";\r\nimport { InfoIcon } from \"../../icons\";\r\nimport { ThemedCheckbox } from \"../../inputs/checkbox/ThemedCheckbox\";\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { Notice } from \"../../theming/Notice\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\n\r\ntype Props = { adventure: Adventure, isOwner: boolean };\r\n\r\nexport const AdventureContent: React.FC = (props: Props) => {\r\n const { adventure, isOwner } = props;\r\n const dispatch = useAppDispatch();\r\n const userState = useAppSelector(app => app.player);\r\n\r\n const ownerName = isOwner\r\n ? 'You'\r\n : userState.players.find(u => u.id == adventure.ownerId)?.displayName ?? \"Owner\";\r\n \r\n const books = useAppSelector((app: ApplicationState) => app.book.books);\r\n \r\n return (\r\n
    \r\n
    \r\n \r\n {ownerName} {isOwner ? 'are' : 'is'} {!adventure.allowsSharedContent && 'not'} sharing content.\r\n \r\n\r\n {isOwner && (\r\n dispatch(AdventureActions.setContentSharing(adventure, !adventure.allowsSharedContent))}>\r\n {adventure.allowsSharedContent ? 'Disable Content Sharing' : 'Enable Content Sharing'}\r\n \r\n )}\r\n
    \r\n \r\n {books.any() && \r\n \r\n {books.map(b => (\r\n
    \r\n \r\n \r\n
    \r\n ))}\r\n
    }\r\n
    \r\n );\r\n}","import React, { useRef, useState } from \"react\"\r\nimport { Adventure } from \"../../../entities/adventures/Adventure\"\r\nimport { AdventureActions } from \"../../../store/stores/adventures/AdventureStore.Actions\";\r\nimport { EditIcon } from \"../../icons\";\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { useNavigate } from \"react-router\";\r\nimport { useAppDispatch } from \"../../../store/configureStore\";\r\n\r\ntype Props = { adventure: Adventure, isOwner: boolean };\r\ntype State = {\r\n editing: boolean;\r\n currentName: string;\r\n}\r\n\r\nexport const AdventureHeader: React.FC = (props: Props) => {\r\n const { adventure, isOwner } = props;\r\n const dispatch = useAppDispatch();\r\n const navigate = useNavigate();\r\n const inputRef = useRef(null);\r\n\r\n const [state, setState] = useState({\r\n editing: false,\r\n currentName: adventure.name\r\n });\r\n\r\n const confirmDeactivate = () => {\r\n if (confirm(\"Are you sure you want to deactivate this adventure?\")) {\r\n dispatch(AdventureActions.deactivate(adventure.id));\r\n }\r\n }\r\n return (\r\n

    \r\n
    \r\n {adventure.name}\r\n setState({ ...state, currentName: e.target.value })}\r\n onBlur={(e) => {\r\n dispatch(AdventureActions.updateName(adventure, state.currentName));\r\n setState({ ...state, editing: false });\r\n }} />\r\n {isOwner && }\r\n
    \r\n {isOwner && Deactivate}\r\n {!isOwner && dispatch(AdventureActions.leave(adventure.id, () => navigate(\"/Adventures\")))}>Leave Adventure}\r\n

    \r\n )\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { Adventure } from \"../../../entities/adventures/Adventure\"\r\nimport { AdventureActions } from \"../../../store/stores/adventures/AdventureStore.Actions\";\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { CopyableText } from \"../../theming/clipboard/CopyableText\";\r\nimport { useAppDispatch } from \"../../../store/configureStore\";\r\n\r\ntype Props = { adventure: Adventure };\r\ntype State = { resettingInviteId: string | null }\r\n\r\nexport const AdventureInvite: React.FC = (props: Props) => {\r\n const { adventure } = props;\r\n const dispatch = useAppDispatch();\r\n const [state, setState] = useState({\r\n resettingInviteId: null\r\n });\r\n\r\n useEffect(() => {\r\n if (state.resettingInviteId != null && state.resettingInviteId != adventure.inviteId) {\r\n setState({ ...state, resettingInviteId: null });\r\n }\r\n }, [adventure, state.resettingInviteId, adventure.inviteId]);\r\n\r\n const onResetInvite = () => {\r\n if (state.resettingInviteId != null) {\r\n return;\r\n }\r\n setState({ resettingInviteId: adventure.inviteId });\r\n dispatch(AdventureActions.resetInvite(adventure));\r\n };\r\n\r\n const resettingInviteId = state.resettingInviteId == adventure.inviteId;\r\n return (\r\n
    \r\n
    \r\n \r\n {`${window.location.origin}/Adventures/${adventure.inviteId}/Join`}\r\n \r\n
    \r\n \r\n Recreate Invite Link\r\n \r\n
    \r\n )\r\n}","import React, { useRef, useState } from \"react\";\r\nimport { Adventure } from \"../../../entities/adventures/Adventure\";\r\nimport { EditIcon } from \"../../icons\";\r\nimport { MarkdownContainer } from \"../../theming/MarkdownContainer\";\r\nimport { AdventureActions } from \"../../../store/stores/adventures/AdventureStore.Actions\";\r\nimport { useAppDispatch } from \"../../../store/configureStore\";\r\n\r\ntype Props = { adventure: Adventure, isOwner: boolean }\r\n\r\nexport const AdventureNotes: React.FC = (props: Props) => {\r\n const { adventure, isOwner } = props;\r\n const [editingPublicNotes, setEditingPublicNotes] = useState(false);\r\n const [editingPrivateNotes, setEditingPrivateNotes] = useState(false);\r\n const [currentPublicNotes, setCurrentPublicNotes] = useState(adventure.publicNotes);\r\n const [currentPrivateNotes, setCurrentPrivateNotes] = useState(adventure.privateNotes);\r\n\r\n const publicEditorRef = useRef(null);\r\n const privateEditorRef = useRef(null);\r\n\r\n const dispatch = useAppDispatch();\r\n const editPublicNotes = () => {\r\n setEditingPublicNotes(true);\r\n setEditingPrivateNotes(false);\r\n publicEditorRef.current?.focus();\r\n }\r\n const editPrivateNotes = () => {\r\n setEditingPublicNotes(false);\r\n setEditingPrivateNotes(true);\r\n privateEditorRef.current?.focus();\r\n }\r\n\r\n const setPublicNotes = (e: React.ChangeEvent) => {\r\n dispatch(AdventureActions.setPublicNotes(adventure, e.target.value));\r\n setEditingPublicNotes(false);\r\n }\r\n const setPrivateNotes = (e: React.ChangeEvent) => {\r\n dispatch(AdventureActions.setPrivateNotes(adventure, e.target.value));\r\n setEditingPrivateNotes(false);\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n

    \r\n Public Notes\r\n {isOwner && }\r\n

    \r\n {!editingPublicNotes && (\r\n
    \r\n {adventure.publicNotes != \"\" ? {currentPublicNotes} : Empty}\r\n
    \r\n )}\r\n {editingPublicNotes && (\r\n \r\n )}\r\n
    \r\n {isOwner && (\r\n
    \r\n

    \r\n Private Notes\r\n \r\n

    \r\n {!editingPrivateNotes && (\r\n
    \r\n {adventure.privateNotes != \"\" ? {currentPrivateNotes} : Empty}\r\n
    \r\n )}\r\n {editingPrivateNotes && (\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { LocalAdventure } from \"../../../entities/adventures/Adventure\"\r\nimport { BreakdownWindow } from \"../../theming/breakdown-window\";\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { AdventureActions } from \"../../../store/stores/adventures/AdventureStore.Actions\";\r\nimport { CharacterInitializer } from \"../../../entities/characters/Character\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\ntype Props = {\r\n adventure: LocalAdventure;\r\n onClose: () => unknown;\r\n}\r\n\r\nexport const AddCharacterMenu = (props: Props) => {\r\n const { adventure, onClose } = props;\r\n const dispatch = useAppDispatch();\r\n const {adventures} = useAppSelector(app => app.adventure);\r\n const {characters} = useAppSelector(app => app.character);\r\n const addCharacterToAdventure = (character: CharacterInitializer) => {\r\n dispatch(AdventureActions.addCharacterToAdventure(adventure, character));\r\n onClose();\r\n }\r\n const charactersAssignedToAdventures = adventures.mapMany(adventure => adventure.characterIds);\r\n return (\r\n Your Characters}>\r\n {!characters.any() && (
    \r\n Looks like you don't have any characters yet, but you can create a character through the link below:\r\n
    )}\r\n Create a New Character\r\n {characters.map(character => {\r\n const alreadyAssigned = charactersAssignedToAdventures.contains(character.id);\r\n return (\r\n
    \r\n {character.name} addCharacterToAdventure(character)}>Add To Adventure\r\n
    \r\n );\r\n })}\r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { Die } from \"./Die\";\r\nimport { AdvantageIcon, DisadvantageIcon } from \"../icons/IndicatorIcons\";\r\nimport { RollType } from \"../../entities/rolls/Roll\";\r\n\r\nexport const RollTypeIndicator = ({rollType}: {rollType?: RollType}) => {\r\n if (rollType == RollType.Advantage) {\r\n return ;\r\n }\r\n if (rollType == RollType.Disadvantage) {\r\n return ;\r\n }\r\n return null;\r\n}\r\nexport const AdvantageIndicator = () => ;\r\nexport const DisadvantageIndicator = () => ","import { CharacterDice, RollRequest } from \"../../../entities/rolls/Roll\"\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport React from \"react\";\r\nimport { Die } from \"../../figures/Die\";\r\nimport { RollTypeIndicator } from \"../../figures/RollTypeIndicators\";\r\nimport { useAppSelector } from \"../../../store/configureStore\";\r\ntype Props = {\r\n dice: CharacterDice,\r\n rollRequest?: RollRequest;\r\n};\r\n\r\nexport const AdventurerDice = (props: Props) => {\r\n const { rollRequest } = props;\r\n const { skillId, actionDice, extraDice, rollType } = props.dice;\r\n const skills = useAppSelector((app: ApplicationState) => app.library.skills);\r\n const skill = skills.find(s => s.id == skillId);\r\n \r\n if (actionDice.length == 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n {actionDice.map((face, index) => (\r\n {face}\r\n ))}\r\n  \r\n {\r\n <>\r\n {extraDice.any() && <>–}\r\n {extraDice.map((face, index) => (\r\n {face}\r\n ))}\r\n \r\n }\r\n \r\n  \r\n {skill && }\r\n
    \r\n )\r\n}\r\n\r\nconst IsRollingDie = (rollRequest: RollRequest | undefined, index: number) => {\r\n if (rollRequest == null) {\r\n return false;\r\n }\r\n return rollRequest.skillId == null || rollRequest.rerollIndices.contains(index);\r\n}","import React, { useState } from \"react\"\r\nimport { LocalAdventure } from \"../../../entities/adventures/Adventure\"\r\nimport { LocalCharacterInitializer } from \"../../../entities/characters/Character\"\r\nimport { PlayerAccount } from \"../../../entities/user/PlayerAccount\"\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\"\r\nimport { AddCharacterMenu } from \"./AddCharacterMenu\"\r\nimport { AdventureActions } from \"../../../store/stores/adventures/AdventureStore.Actions\"\r\nimport { AdventurerDice } from \"./AdventurerDice\"\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\"\r\n\r\ntype Props = { adventure: LocalAdventure }\r\n\r\nexport const Adventurers: React.FC = (props: Props) => {\r\n const { adventure } = props;\r\n const { me, players: users } = useAppSelector(app => app.player);\r\n const { characters, otherPlayerCharacters} = useAppSelector(app => app.character);\r\n \r\n if (me == null) {\r\n return null;\r\n }\r\n const allUsers = [...users, me];\r\n const owner = allUsers.find(u => u.id == adventure.ownerId);\r\n if (owner == null) {\r\n return null;\r\n }\r\n const players = allUsers.filter(u => adventure.playerIds.contains(u.id));\r\n const adventureCharacters = [...characters, ...otherPlayerCharacters].filter(c => adventure.characterIds.contains(c.id));\r\n return (\r\n
    \r\n
    \r\n {owner.displayName}\r\n
    \r\n
    \r\n \r\n {!players.any() && 'No players yet!'}\r\n {players.map(p => )}\r\n
    \r\n
    \r\n )\r\n}\r\n\r\ntype PlayerProps = {\r\n me: PlayerAccount;\r\n player: PlayerAccount;\r\n characters: LocalCharacterInitializer[];\r\n adventure: LocalAdventure;\r\n}\r\nconst AdventurePlayer: React.FC = (props: PlayerProps) => {\r\n const { me, player, characters, adventure } = props;\r\n const dispatch = useAppDispatch();\r\n const [addingCharacter, setAddingCharacter] = useState(false);\r\n const character = characters.find(c => c.ownerId == player.id);\r\n const isPlayer = me.id == player.id;\r\n let displayName: string;\r\n if (isPlayer) {\r\n displayName = \"You\";\r\n }\r\n else {\r\n displayName = player.displayName != \"\" ? player.displayName : 'Anonymous';\r\n }\r\n\r\n const viewAddCharacterMenu = () => {\r\n setAddingCharacter(true);\r\n }\r\n const confirmRemoveCharacter = () => {\r\n if (character != null && confirm(`Are you sure you want to remove ${character.name} from this adventure?`)) {\r\n dispatch(AdventureActions.removeCharacterFromAdventure(adventure, character));\r\n }\r\n }\r\n if (character == null) {\r\n return (\r\n
    \r\n \r\n
    {displayName} {isPlayer ? \"don't\" : \"doesn't\"} have a character for this adventure yet.
    \r\n {isPlayer && Add Character to Adventure}\r\n {addingCharacter && setAddingCharacter(false)} />}\r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n
    lv. {character.level} {character.kinship} {character.className}
    \r\n \r\n {isPlayer && Remove From Adventure}\r\n
    \r\n
    \r\n );\r\n}","import './editable-die.scss';\r\nimport React, { useState } from \"react\";\r\nimport { Die } from '../figures/Die';\r\nimport { DieFace } from '../../entities/rolls/Roll';\r\nimport { ExternalClickDetector } from '../../utils/events/ExternalClickDetector';\r\n\r\ntype OnChangeFunction = (value: DieFace) => void;\r\n\r\ntype Props = {\r\n faceValue: DieFace | null;\r\n onChange: OnChangeFunction;\r\n rolling?: boolean;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const EditableDie = (props: Props) => {\r\n const { faceValue, onChange, rolling, disabled } = props;\r\n const [expanded, setExpanded] = useState(false);\r\n\r\n const uninteractable = rolling || disabled;\r\n const className = `die-picker ${expanded ? 'expanded' : 'constricted'}`;\r\n\r\n const createSelectDieFunction = (value: DieFace) => {\r\n return () => {\r\n if (!uninteractable) {\r\n onChange(value);\r\n setExpanded(false);\r\n }\r\n }\r\n }\r\n \r\n const createDieFace = (value: DieFace) =>
    {value}
    ;\r\n\r\n const onClick = () => {\r\n if (!uninteractable) {\r\n setExpanded(true);\r\n }\r\n }\r\n return (\r\n
    \r\n \r\n {faceValue || '?'}\r\n \r\n setExpanded(false)}>\r\n {createDieFace(1)}\r\n {createDieFace(2)}\r\n {createDieFace(3)}\r\n {createDieFace(4)}\r\n {createDieFace(5)}\r\n {createDieFace(6)}\r\n \r\n
    \r\n )\r\n}\r\n","import React from \"react\";\r\nimport { CommunalDice, LocalAdventure } from \"../../../entities/adventures/Adventure\"\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\";\r\nimport { AdventureActions } from \"../../../store/stores/adventures/AdventureStore.Actions\";\r\nimport { EditableDie } from \"../../inputs/EditableDie\";\r\nimport { DieFace } from \"../../../entities/rolls/Roll\";\r\nimport { useAppDispatch } from \"../../../store/configureStore\";\r\n\r\ntype Props = {\r\n adventure: LocalAdventure;\r\n isOwner: boolean;\r\n}\r\n\r\nexport const AdventureControls = (props: Props) => {\r\n const { adventure, isOwner } = props;\r\n const dispatch = useAppDispatch();\r\n const createDieUpdater = (index: 0 | 1) => {\r\n return (face: DieFace) => {\r\n const dice: CommunalDice = [...adventure.communalDice];\r\n dice.splice(index, 1, face);\r\n dispatch(AdventureActions.setCommunalDice(adventure.id, dice));\r\n }\r\n }\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n {isOwner && dispatch(AdventureActions.rollCommunalDice(adventure.id))}>Roll New Dice}\r\n
    \r\n )\r\n}","import React, { useEffect, useState } from \"react\"\r\nimport { ThemedButton } from \"../../inputs/buttons/ThemedButton\"\r\nimport { BreakdownWindow } from \"../../theming/breakdown-window\";\r\nimport { AdventureActions } from \"../../../store/stores/adventures/AdventureStore.Actions\";\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { Adventure } from \"../../../entities/adventures/Adventure\";\r\nimport { UiConfig } from \"../../../config/UIConfig\";\r\nimport { AdventureEventComponent } from \"./adventure-events/AdventureEventComponent\";\r\nimport { Notice } from \"../../theming/Notice\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\n\r\ntype Props = {\r\n adventure: Adventure\r\n}\r\n\r\nconst DefaultTakeEventCount = 30;\r\n\r\nexport const AdventureLog = (props: Props) => {\r\n const [viewingLog, setViewingLog] = useState(false);\r\n return (\r\n
    \r\n setViewingLog(true)}>View Game Log\r\n {viewingLog && setViewingLog(false)} />}\r\n
    \r\n );\r\n}\r\n\r\ntype ViewProps = Props & {\r\n close: () => unknown;\r\n}\r\n\r\nconst AdventureEventsView = (props: ViewProps) => {\r\n const { adventure, close } = props;\r\n const { adventure: adventureState, player: userState, character: characterState } = useAppSelector(app => app);\r\n const events = adventureState.eventsByAdventureId[adventure.id] ?? [];\r\n const {initialLoadPerformed, loading, done} = adventureState.loadingEvents[adventure.id] ?? {loading: false, done: false};\r\n\r\n const [timeout, setLocalTimeout] = useState(setTimeout(() => {}, 0));\r\n\r\n const dispatch = useAppDispatch();\r\n useEffect(() => {\r\n const noEventsLoaded = !events.any() || !initialLoadPerformed;\r\n if (noEventsLoaded && !loading && !done) {\r\n dispatch(AdventureActions.getAdventureEvents(adventure.id, events.length, DefaultTakeEventCount));\r\n }\r\n }, [adventure.id, events, initialLoadPerformed, loading, done, dispatch]);\r\n\r\n\r\n const onScroll = (e: React.UIEvent) => {\r\n clearTimeout(timeout);\r\n const localTimeout = setTimeout(() => {\r\n const element = e.target as EventTarget & Element;\r\n const scrollOffset = element.scrollHeight - element.scrollTop;\r\n if (scrollOffset >= UiConfig.infiniteScrollThreshold && !loading && !done) {\r\n dispatch(AdventureActions.getAdventureEvents(adventure.id, events.length, DefaultTakeEventCount));\r\n }\r\n }, 250);\r\n setLocalTimeout(localTimeout);\r\n }\r\n\r\n const entities = useAppSelector(app => app.library);\r\n\r\n if (adventure == null) {\r\n throw new Error(\"No adventure found.\");\r\n }\r\n\r\n if (userState.me == null) {\r\n throw new Error(\"Unauthenticated adventure log access.\");\r\n }\r\n \r\n const players = [userState.me, ...userState.players];\r\n const characters = [...characterState.characters, ...characterState.otherPlayerCharacters];\r\n\r\n return (\r\n Adventure Log}>\r\n
    \r\n {loading && !events.any() && Loading Events}\r\n {events.map(event => \r\n \r\n )}\r\n {loading && events.any() && }\r\n
    \r\n
    \r\n )\r\n}","import React, { useEffect, useMemo } from \"react\";\r\nimport { ErrorToast } from \"../../../entities/toasts/Toasts\";\r\nimport { ApplicationState } from \"../../../store/stores/ApplicationState\";\r\nimport { ToastDispatchables } from \"../../../store/stores/toasts/Toasts.Actions\";\r\nimport { AdventureContent } from \"./AdventureContent\";\r\nimport { AdventureHeader } from \"./AdventureHeader\";\r\nimport { AdventureInvite } from \"./AdventureInvite\";\r\nimport { AdventureNotes } from \"./AdventureNotes\";\r\nimport { Adventurers } from \"./Adventurers\";\r\nimport { useParams } from \"react-router\";\r\nimport { Loader } from \"../../theming/loader/Loader\";\r\nimport { UserActions } from \"../../../store/stores/players/PlayerStore.Actions\";\r\nimport { CharacterActions } from \"../../../store/stores/collection/characters/CharacterStore.Actions\";\r\nimport { AdventureControls } from \"./AdventureDice\";\r\nimport { AdventureLog } from \"./AdventureLog\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../store/configureStore\";\r\n\r\nexport const AdventureView = () => {\r\n const appState = useAppSelector((state: ApplicationState) => state);\r\n const { adventures, loaded, leaving } = appState.adventure;\r\n const { me, players } = appState.player;\r\n const dispatch = useAppDispatch();\r\n const params = useParams();\r\n\r\n const id = params[\"id\" as keyof typeof params];\r\n const invalidId = id == null || id == '';\r\n const adventure = adventures.find(c => c.id == id);\r\n \r\n useEffect(() => {\r\n if (adventure == null) {\r\n return;\r\n }\r\n dispatch(CharacterActions.getCharactersByIds(adventure.characterIds));\r\n dispatch(CharacterActions.getCharacters());\r\n }, [dispatch, adventure]);\r\n\r\n useEffect(() => {\r\n if (adventure == null || me == null) {\r\n return;\r\n }\r\n \r\n const allPlayerIds = [...adventure.playerIds, adventure.ownerId];\r\n const otherUserIds = allPlayerIds.filter(id => id != me.id);\r\n dispatch(UserActions.getUsersByIds(...otherUserIds));\r\n }, [dispatch, adventure, me]);\r\n \r\n const leavingAdventure = leaving.contains(id);\r\n const displayLoading = useMemo(() => {\r\n return leavingAdventure || !loaded || me == null;\r\n }, [leavingAdventure, loaded, me]);\r\n if (displayLoading) {\r\n return Loading Adventure...;\r\n }\r\n\r\n if (adventure == null || invalidId) {\r\n console.error('Adventure not found!');\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Adventure not found!\"), dispatch);\r\n throw new Error(\"Adventure not found.\");\r\n }\r\n\r\n const isOwner = adventure.ownerId == me!.id;\r\n const allPlayerIds = [...adventure.playerIds, adventure.ownerId];\r\n const otherUserIds = allPlayerIds.filter(id => id != me!.id);\r\n\r\n if (otherUserIds.any(ouid => !players.any(u => u.id == ouid))) {\r\n return Loading players...;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {isOwner && }\r\n \r\n {adventure.description &&

    {adventure.description}

    }\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}","import './adventures.scss';\r\nimport React, { useEffect } from \"react\";\r\nimport { AdventureActions } from \"../../../store/stores/adventures/AdventureStore.Actions\";\r\nimport { AdventureList } from \"./AdventureList\";\r\nimport { JoinAdventure } from './JoinAdventure';\r\nimport { Route, Routes } from 'react-router';\r\nimport { AdventureView } from './AdventureView';\r\nimport { useAppDispatch } from '../../../store/configureStore';\r\nimport { authorizeComponent } from '../../app/AuthorizeComponent';\r\n\r\nexport const Adventures: React.FC = () => {\r\n authorizeComponent();\r\n const dispatch = useAppDispatch();\r\n useEffect(() => {\r\n dispatch(AdventureActions.getAdventures())\r\n }, [dispatch]);\r\n return (\r\n
    \r\n
    \r\n \r\n } />\r\n } />\r\n } />\r\n \r\n
    \r\n
    \r\n )\r\n}","import { useAuth0 } from \"@auth0/auth0-react\"\r\nimport { useEffect } from \"react\";\r\n\r\nexport const authorizeComponent = () => {\r\n const { isLoading, user, loginWithRedirect } = useAuth0();\r\n useEffect(() => {\r\n if (!isLoading && user == null) {\r\n loginWithRedirect({\r\n authorizationParams: {\r\n prompt: \"consent\",\r\n redirect_uri: `${window.location.protocol}//${window.location.host}`\r\n }\r\n });\r\n }\r\n }, [isLoading, user]);\r\n}","import './item-adder.scss';\r\nimport React, { useEffect } from \"react\";\r\nimport { BreakdownWindow } from \"../../../../../theming/breakdown-window\";\r\nimport { ItemsView } from '../../../../../characters/items/ItemsView';\r\nimport { LocalCharacterInitializer } from '../../../../../../entities/characters/Character';\r\nimport { useAppDispatch, useAppSelector } from '../../../../../../store/configureStore';\r\nimport { LibraryActions } from '../../../../../../store/stores/library/LibraryStore.Actions';\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n visible: boolean;\r\n close: () => void;\r\n}\r\n\r\nexport const ItemAdder: React.FC = (props: Props) => {\r\n const { character, visible, close } = props;\r\n const dispatch = useAppDispatch();\r\n const { allItemsLoaded } = useAppSelector(app => app.library);\r\n\r\n useEffect(() => {\r\n if (!allItemsLoaded) {\r\n dispatch(LibraryActions.loadItems());\r\n }\r\n }, [allItemsLoaded]);\r\n\r\n return (\r\n Add Item to Inventory} visible={visible} close={close}>\r\n \r\n \r\n );\r\n}","import { CharacterHelpers, LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { Kinship } from \"../../../../../entities/characters/Kinships\";\r\nimport { ErrorToast } from \"../../../../../entities/toasts/Toasts\";\r\nimport { AppThunkAction } from \"../../../ApplicationState\";\r\nimport { ApiDefaultState } from \"../../../api/ApiStore.State\";\r\nimport { ToastAction, ToastDispatchables } from \"../../../toasts/Toasts.Actions\";\r\n\r\nexport type CharacterUpdateName = { type: 'CHARACTER_UPDATE_NAME', characterId: string, name: string };\r\nexport type CharacterUpdateKinship = { type: 'CHARACTER_UPDATE_KINSHIP', characterId: string, kinship: Kinship };\r\nexport type CharacterUpdateLevel = { type: 'CHARACTER_UPDATE_LEVEL', characterId: string, level: number };\r\nexport type CharacterUpdateClassName = { type: 'CHARACTER_UPDATE_CLASS_NAME', characterId: string, className: string };\r\nexport type CharacterAdjustMovement = { type: 'CHARACTER_ADJUST_MOVEMENT', characterId: string, movementAdjust: number };\r\nexport type CharacterOverrideMovement = { type: 'CHARACTER_OVERRIDE_MOVEMENT', characterId: string, movementOverride?: number };\r\nexport type CharacterUpdateHealth = { type: 'CHARACTER_UPDATE_HEALTH', characterId: string, currentHealth: number };\r\nexport type CharacterSetJuiced = { type: 'CHARACTER_SET_JUICED', characterId: string, juiced: boolean };\r\nexport type CharacterUpdateMoney = { type: 'CHARACTER_UPDATE_MONEY', characterId: string, money: number };\r\nexport type CharacterPendingProperty = { type: 'CHARACTER_PENDING_PROPERTY', characterId: string, propertyName: string };\r\nexport type CharacterPendingProperties = { type: 'CHARACTER_PENDING_PROPERTIES', characterId: string, propertyNames: string[] };\r\nexport type CharacterSaveProperty = { type: 'CHARACTER_SAVE_PROPERTY', characterId: string, propertyName: string };\r\nexport type CharacterSaveProperties = { type: 'CHARACTER_SAVE_PROPERTIES', characterId: string, propertyNames: string[] };\r\nexport type CharacterSetRuleEnforcement = { type: 'CHARACTER_SET_RULE_ENFORCEMENT', characterId: string, enforceRules: boolean }\r\n\r\ntype CharacterSaveAction = CharacterPendingProperty | CharacterPendingProperties | CharacterSaveProperty | CharacterSaveProperties;\r\n\r\nexport type CharacterPropertyAction = CharacterUpdateName\r\n | CharacterUpdateKinship\r\n | CharacterUpdateLevel\r\n | CharacterUpdateClassName\r\n | CharacterAdjustMovement\r\n | CharacterOverrideMovement\r\n | CharacterUpdateHealth\r\n | CharacterSetJuiced\r\n | CharacterUpdateMoney\r\n | CharacterSaveAction\r\n | CharacterSetRuleEnforcement;\r\n\r\nexport const CharacterPropertyActions = {\r\n updateName: (character: LocalCharacterInitializer, name: string): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const propertyName = \"name\";\r\n const oldVersion = { ...character };\r\n const newVersion = { ...character, name };\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_UPDATE_NAME', characterId: character.id, name: oldVersion.name });\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error updating name.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_UPDATE_NAME', characterId: character.id, name });\r\n dispatch({ type: 'CHARACTER_PENDING_PROPERTY', characterId: character.id, propertyName });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.patchCharacter(oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n updateKinship: (character: LocalCharacterInitializer, kinship: Kinship): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const propertyName = \"kinship\";\r\n const oldVersion = { ...character };\r\n const newVersion = { ...character, kinship };\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_UPDATE_KINSHIP', characterId: character.id, kinship: oldVersion.kinship });\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error updating kinship.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_UPDATE_KINSHIP', characterId: character.id, kinship });\r\n dispatch({ type: 'CHARACTER_PENDING_PROPERTY', characterId: character.id, propertyName });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.patchCharacter(oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n updateLevel: (character: LocalCharacterInitializer, level: number): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const propertyNames = [\"level\", \"currentHealth\"];\r\n if (character.level == level) {\r\n return;\r\n }\r\n const oldVersion = { ...character };\r\n const oldHealth = character.currentHealth;\r\n const oldHealthRatio = character.currentHealth / CharacterHelpers.getMaxHealth(character);\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_UPDATE_LEVEL', characterId: character.id, level: oldVersion.level });\r\n dispatch({ type: 'CHARACTER_UPDATE_HEALTH', characterId: character.id, currentHealth: oldHealth });\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTIES', characterId: character.id, propertyNames });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error updating level.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_UPDATE_LEVEL', characterId: character.id, level });\r\n\r\n character.level = level;\r\n const newHealth = Math.round(CharacterHelpers.getMaxHealth(character) * oldHealthRatio);\r\n const newVersion = { ...character, level, currentHealth: newHealth };\r\n dispatch({ type: 'CHARACTER_UPDATE_HEALTH', characterId: character.id, currentHealth: newHealth });\r\n dispatch({ type: 'CHARACTER_PENDING_PROPERTIES', characterId: character.id, propertyNames });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.patchCharacter(oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTIES', characterId: character.id, propertyNames });\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n \r\n updateClassName: (character: LocalCharacterInitializer, className: string): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const propertyName = \"className\";\r\n const oldVersion = { ...character };\r\n const newVersion = { ...character, className };\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_UPDATE_CLASS_NAME', characterId: character.id, className: oldVersion.className });\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error updating class.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_UPDATE_CLASS_NAME', characterId: character.id, className });\r\n dispatch({ type: 'CHARACTER_PENDING_PROPERTY', characterId: character.id, propertyName });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.patchCharacter(oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n adjustMovement: (character: LocalCharacterInitializer, movementAdjust: number): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const propertyName = \"movementAdjust\";\r\n const oldVersion = { ...character };\r\n const newVersion = { ...character, movementAdjust };\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_ADJUST_MOVEMENT', characterId: character.id, movementAdjust });\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error adjusting movement.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_ADJUST_MOVEMENT', characterId: character.id, movementAdjust });\r\n dispatch({ type: 'CHARACTER_PENDING_PROPERTY', characterId: character.id, propertyName });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.patchCharacter(oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n \r\n overrideMovement: (character: LocalCharacterInitializer, movementOverride: number | undefined): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const propertyName = \"movementOverride\";\r\n const oldVersion = { ...character };\r\n const newVersion = { ...character, movementOverride };\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_OVERRIDE_MOVEMENT', characterId: character.id, movementOverride: oldVersion.movementOverride });\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error overriding movement.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_OVERRIDE_MOVEMENT', characterId: character.id, movementOverride });\r\n dispatch({ type: 'CHARACTER_PENDING_PROPERTY', characterId: character.id, propertyName });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.patchCharacter(oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n updateHealth: (character: LocalCharacterInitializer, newHealth: number): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const propertyName = \"currentHealth\";\r\n const oldVersion = { ...character };\r\n const newVersion = { ...character, currentHealth: newHealth };\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_UPDATE_HEALTH', characterId: character.id, currentHealth: oldVersion.currentHealth });\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error updating health.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_UPDATE_HEALTH', characterId: character.id, currentHealth: newHealth });\r\n dispatch({ type: 'CHARACTER_PENDING_PROPERTY', characterId: character.id, propertyName });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.patchCharacter(oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n setJuiced: (character: LocalCharacterInitializer, juiced: boolean): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const propertyName = \"juiced\";\r\n const oldVersion = { ...character };\r\n const newVersion = { ...character, juiced };\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_SET_JUICED', characterId: character.id, juiced: oldVersion.juiced });\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error updating juice.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_SET_JUICED', characterId: character.id, juiced });\r\n dispatch({ type: 'CHARACTER_PENDING_PROPERTY', characterId: character.id, propertyName });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.patchCharacter(oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n updateMoney: (character: LocalCharacterInitializer, money: number): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const propertyName = \"money\";\r\n const oldVersion = { ...character };\r\n const newVersion = { ...character, money };\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_UPDATE_MONEY', characterId: character.id, money: oldVersion.money });\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error updating money.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_UPDATE_MONEY', characterId: character.id, money: money });\r\n dispatch({ type: 'CHARACTER_PENDING_PROPERTY', characterId: character.id, propertyName });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.patchCharacter(oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n setRuleEnforcement: (character: LocalCharacterInitializer, enforceRules: boolean): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n try {\r\n const propertyName = \"enforceRules\";\r\n dispatch({ type: 'CHARACTER_SET_RULE_ENFORCEMENT', characterId: character.id, enforceRules });\r\n dispatch({ type: 'CHARACTER_PENDING_PROPERTY', characterId: character.id, propertyName });\r\n const result = await ApiDefaultState.characters.patchCharacter(character, { ...character, enforceRules });\r\n if (result.status == 'Error') {\r\n dispatch({ type: 'CHARACTER_SET_RULE_ENFORCEMENT', characterId: character.id, enforceRules: !enforceRules });\r\n }\r\n else {\r\n dispatch({ type: 'CHARACTER_SAVE_PROPERTY', characterId: character.id, propertyName });\r\n }\r\n }\r\n catch (e) {\r\n console.error(e);\r\n dispatch({ type: 'CHARACTER_SET_RULE_ENFORCEMENT', characterId: character.id, enforceRules: !enforceRules})\r\n }\r\n },\r\n}","import React, { useState } from \"react\";\r\nimport { CharacterHelpers, LocalCharacterInitializer } from \"../../../../entities/characters/Character\";\r\nimport { ExternalClickDetector } from \"../../../../utils/events/ExternalClickDetector\";\r\nimport { EditIcon } from \"../../../icons\";\r\nimport { ThemedButton } from \"../../../inputs/buttons/ThemedButton\";\r\nimport { HealthIcon } from \"../../../icons/CharacterIcons\";\r\nimport { useAppDispatch } from \"../../../../store/configureStore\";\r\nimport { CharacterPropertyActions } from \"../../../../store/stores/collection/characters/actions/CharacterPropertyActions\";\r\n\r\ntype Props = { character: LocalCharacterInitializer }\r\n\r\ntype State = {\r\n editing: boolean;\r\n changeBy: number;\r\n}\r\n\r\nexport const HealthIndicator: React.FC = (props: Props) => {\r\n const { character } = props;\r\n const dispatch = useAppDispatch();\r\n const [state, setState] = useState({\r\n editing: false,\r\n changeBy: 0\r\n });\r\n const close = () => setState({ ...state, editing: false, changeBy: 0 });\r\n const onHeal = () => {\r\n const newHealth = character.currentHealth + state.changeBy;\r\n dispatch(CharacterPropertyActions.updateHealth(character, newHealth));\r\n close();\r\n }\r\n const onHurt = () => {\r\n const newHealth = character.currentHealth - state.changeBy;\r\n dispatch(CharacterPropertyActions.updateHealth(character, newHealth));\r\n close();\r\n }\r\n\r\n const onChange = (e: React.ChangeEvent) => {\r\n const changeBy = parseInt(e.target.value);\r\n if (!isNaN(changeBy)) {\r\n setState({ ...state, changeBy });\r\n }\r\n }\r\n return (\r\n
    \r\n
    setState({ ...state, editing: true })} >\r\n \r\n
    \r\n  {character.currentHealth}/{CharacterHelpers.getMaxHealth(character)}\r\n
    \r\n
    \r\n {state.editing &&\r\n \r\n
    \r\n Update Health\r\n
    \r\n
    \r\n \r\n Heal\r\n \r\n \r\n \r\n Hurt\r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../entities/characters/Character\";\r\nimport { ThemedCheckbox } from \"../../../inputs/checkbox/ThemedCheckbox\";\r\nimport { useAppDispatch } from \"../../../../store/configureStore\";\r\nimport { CharacterPropertyActions } from \"../../../../store/stores/collection/characters/actions/CharacterPropertyActions\";\r\nimport { Loader } from \"../../../theming/loader/Loader\";\r\n\r\ntype Props = { character: LocalCharacterInitializer }\r\n\r\nexport const JuiceIndicator: React.FC = (props: Props) => {\r\n const { character } = props;\r\n const dispatch = useAppDispatch();\r\n const juiceDisabled = character.pendingProperties['juiced'] != null;\r\n return ( \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n dispatch(CharacterPropertyActions.setJuiced(character, checked))} />\r\n
    \r\n
    \r\n
    \r\n );\r\n}","import { LocalCharacterInitializer } from \"../../../../../../../entities/characters/Character\"\r\nimport { ModSlot } from \"../../../../../../../entities/library/items/mods/ModSlot\";\r\nimport React from \"react\";\r\nimport { DeleteIcon } from \"../../../../../../icons\";\r\nimport { Loader } from \"../../../../../../theming/loader/Loader\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../../../store/configureStore\";\r\nimport { CharacterItemActions } from \"../../../../../../../store/stores/collection/characters/actions/CharacterItemActions\";\r\nimport { ItemHelpers } from \"../../../../../../../entities/library/items/Item\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n slot: ModSlot;\r\n onClick: () => unknown;\r\n}\r\n\r\nexport const BodySlotPreview = (props: Props) => {\r\n const dispatch = useAppDispatch();\r\n const { character, slot, onClick } = props;\r\n const items = useAppSelector(app => app.library.items);\r\n\r\n const modReference = character.bodyMods.first(m => m.assignedSlotId == slot.id);\r\n const mod = items.find(i => i.id == modReference?.id);\r\n\r\n const canDelete = modReference != null;\r\n const deleteMod = () => {\r\n if (canDelete) {\r\n dispatch(CharacterItemActions.removeBodyMod(character, modReference));\r\n }\r\n }\r\n\r\n const modSaved = modReference != null && character.pendingProperties[modReference.instanceId] == undefined;\r\n\r\n return (\r\n
    \r\n
    \r\n {mod?.name ?? 'Body Mod (Empty)'}\r\n {canDelete && (\r\n \r\n )}\r\n
    \r\n \r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { ModInitializer } from \"../../../../../../../entities/library/items/ItemInitializers\";\r\nimport { ObjectIcons } from \"../../../../../../icons\";\r\n\r\ntype Props = {\r\n mod: ModInitializer;\r\n onClick: () => void;\r\n}\r\n\r\nexport const MiniMod: React.FC = (props: Props) => {\r\n const { mod, onClick } = props;\r\n return (\r\n
    \r\n
    {mod.name}
    \r\n \r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { CharacterHelpers, LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { useState } from \"react\";\r\nimport { ModInitializer, isModInitializer } from \"../../../../../entities/library/items/ItemInitializers\";\r\nimport { IsLegalModForSlot } from \"../../../../../entities/library/items/mods/ModSlot\";\r\nimport { BreakdownWindow } from \"../../../../theming/breakdown-window\";\r\nimport { ItemPreviewHeader } from \"../../character-tools/items/preview/ItemPreviewHeader\";\r\nimport { ItemPreview } from \"../../character-tools/items/preview/ItemPreview\";\r\nimport { CollapsibleSection } from \"../../../../articles/CollapsibleSection\";\r\nimport { MiniMod } from \"../abilities-equipment/item-editor/slots/MiniModComponent\";\r\nimport { ThemedButton } from \"../../../../inputs/buttons/ThemedButton\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../store/configureStore\";\r\nimport { OwnedModReference } from \"../../../../../entities/Ownership\";\r\nimport { ItemHelpers } from \"../../../../../entities/library/items/Item\";\r\nimport { CharacterItemActions } from \"../../../../../store/stores/collection/characters/actions/CharacterItemActions\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n slotId: string;\r\n close: () => unknown;\r\n}\r\n\r\ntype BodyModLocation = \"Inventory\" | \"Available\";\r\n\r\nexport const SheetBodyMods = (props: Props) => {\r\n const { character, slotId, close } = props;\r\n const { bodySlots, bodyMods, enforceRules } = character;\r\n const dispatch = useAppDispatch();\r\n const [filter, setFilter] = useState(\"\");\r\n const [previewSelectionMod, setPreviewSelectionMod] = useState(undefined);\r\n const [previewSelectionModReference, setPreviewSelectionModReference] = useState(undefined);\r\n const clearModPreviews = () => {\r\n setPreviewSelectionMod(undefined);\r\n setPreviewSelectionModReference(undefined);\r\n }\r\n\r\n const [modFrom, setModFrom] = useState(\"Inventory\");\r\n const slot = bodySlots.first(s => s.id == slotId);\r\n\r\n const items = useAppSelector(app => app.library.items);\r\n\r\n if (slot == null) {\r\n throw new Error(\"No slot selected.\");\r\n }\r\n\r\n const allMods = items.filter(isModInitializer);\r\n\r\n const existingModReference = bodyMods.first(m => m.assignedSlotId == slotId);\r\n const existingMod = allMods.find(m => m.id == existingModReference?.id);\r\n const legalModsInInventory = CharacterHelpers.getInventory(character)\r\n .filter(m => {\r\n const mod = allMods.find(am => m.id == am.id);\r\n const modReference = (m as OwnedModReference);\r\n return mod != null\r\n && mod.tags.contains('Body')\r\n && modReference.assignedSlotId == null\r\n && (!enforceRules || IsLegalModForSlot(slot, mod))\r\n && ItemHelpers.filterByName(mod, filter)\r\n && m.id != existingModReference?.id;\r\n });\r\n\r\n const legalModsAvailable = allMods\r\n .filter(m => !legalModsInInventory.any(mii => mii.id == m.id))\r\n .filter(m => m.tags.contains('Body'))\r\n .filter(m => !enforceRules || IsLegalModForSlot(slot, m))\r\n .filter(m => ItemHelpers.filterByName(m, filter))\r\n .filter(m => m.id != existingModReference?.id);\r\n\r\n const inventoryModClick = (clickedMod: ModInitializer, reference: OwnedModReference) => {\r\n setModFrom(\"Inventory\");\r\n setPreviewSelectionMod(clickedMod);\r\n setPreviewSelectionModReference(reference);\r\n }\r\n\r\n const availableModClick = (clickedMod: ModInitializer) => {\r\n setModFrom(\"Available\");\r\n setPreviewSelectionMod(clickedMod);\r\n }\r\n\r\n const onSelectMod = () => {\r\n if (previewSelectionMod == undefined) {\r\n return;\r\n }\r\n if (modFrom == \"Inventory\" && previewSelectionModReference != null) {\r\n dispatch(CharacterItemActions.assignBodyMod(character, previewSelectionModReference, slotId));\r\n }\r\n else if (modFrom == \"Available\") {\r\n dispatch(CharacterItemActions.addAndAssignBodyMod(character, previewSelectionMod, slotId));\r\n }\r\n else {\r\n throw new Error(\"Attempt to assign an inventory mod to body that was not instantiated.\");\r\n }\r\n clearModPreviews();\r\n close();\r\n }\r\n\r\n const closeBodyModWindow = () => {\r\n if (previewSelectionMod == undefined) {\r\n close();\r\n }\r\n }\r\n return (\r\n <>\r\n Body Mods}>\r\n
    \r\n  \r\n setFilter(e.target.value)} />\r\n
    \r\n {existingMod && existingModReference && (\r\n
    \r\n \r\n Currently Assigned: \r\n \r\n \r\n
    \r\n )}\r\n\r\n
    \r\n {legalModsInInventory.any() &&\r\n Mods In Inventory:}\r\n expandedInitially={!legalModsInInventory.any()}\r\n collapsible={legalModsInInventory.any()}>\r\n {legalModsInInventory.map(modReference => {\r\n const mod = allMods.find(m => m.id == modReference.id);\r\n if (mod == null) {\r\n return null;\r\n }\r\n return inventoryModClick(mod, modReference)} />;\r\n })}\r\n }\r\n {legalModsAvailable.any() &&\r\n Mods Not In Inventory}\r\n expandedInitially={!legalModsInInventory.any()}\r\n collapsible={legalModsInInventory.any()}>\r\n {legalModsAvailable.map(mod => availableModClick(mod)} />)}\r\n }\r\n
    \r\n
    \r\n\r\n {previewSelectionMod &&\r\n \r\n \r\n \r\n \r\n Assign {previewSelectionMod.name} to Slot\r\n \r\n \r\n }\r\n \r\n )\r\n}","import './singleselect.scss';\r\nimport React, { createRef } from \"react\";\r\nimport { OptionType, SelectableOption } from \"../SelectableOption\";\r\n\r\ntype Props> = {\r\n options: TOption[];\r\n id?: string;\r\n name?: string;\r\n className?: string;\r\n placeholder?: string;\r\n filterable?: boolean;\r\n allowNull?: boolean;\r\n selection?: TValue | null;\r\n disabled?: boolean;\r\n onChange: (selection: TValue) => unknown;\r\n}\r\n\r\ntype State = {\r\n filter: string;\r\n showingDropdown: boolean;\r\n}\r\n\r\nexport class SingleSelect> extends React.Component, State> {\r\n public constructor(props: Props) {\r\n super(props);\r\n\r\n this.state = {\r\n filter: '',\r\n showingDropdown: false\r\n };\r\n this.componentRef = createRef();\r\n this.textInputRef = createRef();\r\n }\r\n\r\n private readonly componentRef: React.RefObject;\r\n private readonly textInputRef: React.RefObject;\r\n\r\n private get filteredOptions(): TOption[] {\r\n return this.filterOptions(\r\n this.props.options,\r\n this.state.filter\r\n );\r\n }\r\n\r\n private filterOptions = (\r\n options: TOption[],\r\n filter: string\r\n ) => {\r\n return options\r\n .filter((option) => option.name?.toString().toLowerCase().indexOf(filter) == 0);\r\n };\r\n\r\n public componentDidMount(): void {\r\n document.addEventListener('mousedown', this.onClickOutside);\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n document.removeEventListener('mousedown', this.onClickOutside);\r\n }\r\n\r\n private get inputClass(): string {\r\n return `${this.state.showingDropdown ? 'visible' : 'hidden'}`;\r\n }\r\n\r\n private get optionsClass(): string {\r\n const shouldShow = this.state.showingDropdown\r\n && this.filteredOptions.length > 0;\r\n const visibleClass = shouldShow ? 'visible' : 'hidden';\r\n return `options ${visibleClass}`;\r\n }\r\n\r\n private get noResultsClass(): string {\r\n const shouldShow = this.state.showingDropdown\r\n && this.filteredOptions.length <= 0;\r\n const visibleClass = shouldShow ? 'visible' : 'hidden';\r\n return `no-results ${visibleClass}`;\r\n }\r\n\r\n private get emptyOption(): TOption {\r\n return {\r\n name: '--Clear--',\r\n value: null\r\n } as TOption;\r\n }\r\n\r\n private get selectedOption(): SelectableOption | null {\r\n const option = this.props.options.first(option => option.value == this.props.selection);\r\n return option;\r\n }\r\n \r\n private get emptySelection(): JSX.Element | null {\r\n return this.props.allowNull && this.props.selection != null\r\n ? this.renderOption(this.emptyOption)\r\n : null\r\n }\r\n\r\n public render(): JSX.Element {\r\n let className = `singleselect ${this.props.className}`;\r\n const { id, name, selection, disabled, placeholder } = this.props;\r\n if (disabled) {\r\n className += \" disabled\";\r\n }\r\n const shouldTransparentize = this.selectedOption?.name == null && placeholder == null;\r\n const displayContents = this.selectedOption?.name ?? placeholder ?? 'CHROME-FIX';\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {displayContents}\r\n \r\n arrow_drop_down\r\n
    \r\n
    \r\n \r\n
    No results found.
    \r\n
    \r\n {this.emptySelection}\r\n {this.filteredOptions.map((option) =>\r\n this.renderOption(option)\r\n )}\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n public clear(): void {\r\n this.setState((state) => ({ ...state, selections: [] }));\r\n }\r\n\r\n private renderOption(option: TOption): JSX.Element {\r\n const selected = this.props.selection == option.value;\r\n const disabled = selected || option.disabled;\r\n const optionClass = `option ${disabled ? 'disabled' : 'enabled'}`;\r\n const onClick = disabled\r\n ? () => {}\r\n : this.selectValue.bind(this, option);\r\n return (\r\n
    \r\n {option.name ?? option.value}\r\n
    \r\n );\r\n }\r\n\r\n private selectValue(option: TOption): void {\r\n this.props.onChange(option.value);\r\n this.setState({ ...this.state, filter: '', showingDropdown: false });\r\n }\r\n\r\n private toggleDropdown() {\r\n this.setState((state) => ({ ...state, showingDropdown: !state.showingDropdown }));\r\n }\r\n\r\n private checkBlur(event: React.KeyboardEvent) {\r\n if(event.key == 'Escape') {\r\n this.textInputRef.current?.blur();\r\n this.setState((state) => ({ ...state, showingDropdown: false }));\r\n }\r\n }\r\n\r\n private onFilter = (e: React.ChangeEvent) => {\r\n this.setState((state) => {\r\n const filter = e.target.value;\r\n return { ...state, filter };\r\n });\r\n };\r\n\r\n private onClickOutside = (event: globalThis.MouseEvent): void => {\r\n if(this.state.showingDropdown\r\n && event.target instanceof Node\r\n && !this.componentRef.current?.contains(event.target)) {\r\n this.setState((state) => ({ ...state, showingDropdown: false }));\r\n }\r\n };\r\n}","export type Kinship = 'Human'\r\n | 'Goblin';\r\n\r\nexport const Kinships: Kinship[] = [\r\n 'Human',\r\n 'Goblin',\r\n];\r\n\r\nexport const KinshipIds = {\r\n 'Human': '17c027c3-3f9c-4590-a914-34cce19a168a',\r\n 'Goblin': 'cb382173-93fd-4d36-ba39-c8a06eb8067c',\r\n}","import \"./character-sheet-demographics.scss\";\r\nimport React, { useState } from \"react\"\r\nimport { CharacterHelpers, LocalCharacterInitializer } from \"../../../../entities/characters/Character\"\r\nimport { EditIcon } from \"../../../icons\"\r\nimport { HealthIndicator } from \"./HealthIndicator\";\r\nimport { JuiceIndicator } from \"./JuiceIndicator\";\r\nimport { BodySlotPreview } from \"../character-tools/items/preview/mods/BodySlotPreview\";\r\nimport { SheetBodyMods } from \"./body/SheetBodyMods\";\r\nimport { SingleSelect } from \"../../../inputs/selects/singleselect/SingleSelect\";\r\nimport { Kinships } from \"../../../../entities/characters/Kinships\";\r\nimport { ThemedButton } from \"../../../inputs/buttons/ThemedButton\";\r\nimport { Loader } from \"../../../theming/loader/Loader\";\r\nimport { useAppDispatch } from \"../../../../store/configureStore\";\r\nimport { CharacterPropertyActions } from \"../../../../store/stores/collection/characters/actions/CharacterPropertyActions\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n}\r\n\r\nexport const CharacterSheetDemographics: React.FC = (props: Props) => {\r\n const { character } = props;\r\n const dispatch = useAppDispatch();\r\n\r\n const [editing, setEditing] = useState(false);\r\n const [currentName, setCurrentName] = useState(character.name);\r\n const [currentLevel, setCurrentLevel] = useState(character.level);\r\n const [editBodySlot, setEditBodySlot] = useState(null);\r\n\r\n const {pendingProperties} = character;\r\n const namePending = pendingProperties[\"name\"],\r\n levelPending = pendingProperties[\"level\"],\r\n kinshipPending = pendingProperties[\"kinship\"];\r\n return (\r\n <>\r\n
    \r\n {!editing && (\r\n <>\r\n
    \r\n
    \r\n
    \r\n {character.name}\r\n \r\n
    \r\n
    \r\n
    \r\n  \r\n {character.level}\r\n
    \r\n
    \r\n {character.kinship}\r\n
    \r\n
    {character.className}
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {character.bodySlots.map(slot => (\r\n setEditBodySlot(slot.id)} />\r\n ))}\r\n
    \r\n \r\n )}\r\n {editing && (\r\n
    \r\n \r\n
    \r\n
    \r\n setCurrentName(e.target.value)}\r\n onBlur={(e) => dispatch(CharacterPropertyActions.updateName(character, e.target.value))}/>\r\n {namePending && }\r\n
    \r\n  \r\n setEditing(false)}>Done\r\n
    \r\n\r\n \r\n
    \r\n
    \r\n setCurrentLevel(parseInt(e.target.value ?? 1))}\r\n onBlur={(e) => dispatch(CharacterPropertyActions.updateLevel(character, parseInt(e.target.value ?? 1)))} />\r\n {levelPending && }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n ({ name: k, value: k }))}\r\n selection={character.kinship}\r\n onChange={(selection) => dispatch(CharacterPropertyActions.updateKinship(character, selection))} />\r\n {kinshipPending && }\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n\r\n {editBodySlot && setEditBodySlot(null)} slotId={editBodySlot} />}\r\n \r\n \r\n );\r\n}","import \"./character-sheet-metrics.scss\";\r\nimport React, { useState } from \"react\";\r\nimport { CharacterHelpers, LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { ArmorIcon, EditIcon, MoneyIcon, ResilienceIcon } from \"../../../../icons\";\r\nimport { MovementIcon } from \"../../../../icons/CharacterIcons\";\r\nimport { ExternalClickDetector } from \"../../../../../utils/events/ExternalClickDetector\";\r\nimport { ThemedButton } from \"../../../../inputs/buttons/ThemedButton\";\r\nimport { RestrictNumber } from \"../../../../../entities/Utilities\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../store/configureStore\";\r\nimport { CharacterPropertyActions } from \"../../../../../store/stores/collection/characters/actions/CharacterPropertyActions\";\r\nimport { Die } from \"../../../../figures/Die\";\r\nimport { OnDCPassIcon } from \"../../../../icons/IndicatorIcons\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n viewOnMobile: boolean;\r\n}\r\n\r\nexport const CharacterSheetMetrics: React.FC = (props: Props) => {\r\n const { character, viewOnMobile } = props;\r\n const allItems = useAppSelector(app => app.library.items);\r\n const dispatch = useAppDispatch();\r\n const [editingMoney, setEditingMoney] = useState(false);\r\n const [moneyDelta, setMoneyDelta] = useState(0);\r\n const [moneyOverride, setMoneyOverride] = useState(character.money);\r\n\r\n const onAddMoney = () => {\r\n const newMoney = character.money + moneyDelta;\r\n updateMoney(newMoney);\r\n }\r\n\r\n const onRemoveMoney = () => {\r\n const newMoney = character.money - moneyDelta;\r\n updateMoney(newMoney);\r\n }\r\n\r\n const onChangeMoney = (e: React.ChangeEvent) => {\r\n const moneyDelta = parseInt(e.target.value);\r\n if (!isNaN(moneyDelta)){\r\n setMoneyDelta(moneyDelta);\r\n }\r\n }\r\n\r\n const updateMoney = (newMoney: number) => {\r\n newMoney = RestrictNumber(newMoney, 0, Number.MAX_SAFE_INTEGER);\r\n dispatch(CharacterPropertyActions.updateMoney(character, newMoney));\r\n setMoneyDelta(0);\r\n setMoneyOverride(newMoney);\r\n setEditingMoney(false);\r\n }\r\n\r\n const moneyFormatter = Intl.NumberFormat(\"en\", { notation: 'compact' });\r\n\r\n const defensiveItem = CharacterHelpers.getDefensiveItem(character, allItems);\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {defensiveItem?.armor ?? 0}\r\n {defensiveItem?.armorDc ?? 0}\r\n \r\n {defensiveItem?.armorSuccess ?? 0}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {CharacterHelpers.getMovement(character)}\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {defensiveItem?.resilience ?? 0}\r\n {defensiveItem?.resilienceDc ?? 0}\r\n \r\n {defensiveItem?.resilienceSuccess ?? 0}\r\n
    \r\n \r\n
    \r\n
    setEditingMoney(true)} role=\"button\">\r\n
    \r\n {moneyFormatter.format(character.money)}\r\n
    \r\n \r\n
    \r\n
    \r\n {editingMoney && (\r\n setEditingMoney(false)}>\r\n
    \r\n Update Chips\r\n
    \r\n
    \r\n \r\n Add\r\n \r\n \r\n \r\n Remove\r\n \r\n
    \r\n setMoneyOverride(parseInt(e.target.value))} />\r\n updateMoney(moneyOverride)}>\r\n Set Chips\r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n}","import React from 'react';\r\nimport { OwnedSkillReference } from '../../../../../../entities/Ownership';\r\n\r\ntype Props = { reference: OwnedSkillReference }\r\n\r\nexport const BaseSkill: React.FC = (props: Props) => {\r\n const { reference } = props;\r\n return (\r\n
    \r\n \r\n
    {reference.level}
    \r\n
    \r\n );\r\n}","export const ThrottleDelay = 250; //milliseconds\r\n\r\nexport const CreateCompletedPromise = () => {\r\n return new Promise((resolve) => {\r\n resolve();\r\n })\r\n}\r\n\r\nexport const CreateThrottlePromise = () => {\r\n let resolver: () => unknown = () => {};\r\n return [resolver, new Promise((resolve) => {\r\n resolver = resolve;\r\n })];\r\n}\r\n\r\nexport class TimedThrottle {\r\n public constructor(timeoutDelay: number) {\r\n this.timeoutDelay = timeoutDelay;\r\n\r\n const lock = new Promise(resolve => {\r\n this.resolve = resolve;\r\n });\r\n this.lock = lock;\r\n }\r\n\r\n private readonly timeoutDelay: number;\r\n private timeout?: NodeJS.Timeout | number;\r\n private readonly lock: Promise;\r\n private resolve?: () => unknown;\r\n\r\n public scheduleProcess(callback: () => Promise): Promise {\r\n clearTimeout(this.timeout);\r\n this.timeout = setTimeout(async () => {\r\n await callback();\r\n if (this.resolve) {\r\n this.resolve();\r\n }\r\n }, this.timeoutDelay);\r\n return this.lock;\r\n }\r\n}","import { CharacterHelpers, LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { OwnedSkillReference } from \"../../../../../entities/Ownership\";\r\nimport { ErrorToast } from \"../../../../../entities/toasts/Toasts\";\r\nimport { TimedThrottle } from \"../../../../ConcurrencyUtilities\";\r\nimport { ApiDefaultState } from \"../../../api/ApiStore.State\";\r\nimport { AppThunkAction } from \"../../../ApplicationState\";\r\nimport { ToastAction, ToastDispatchables } from \"../../../toasts/Toasts.Actions\";\r\nimport { CharacterUpdateHealth, CharacterSetJuiced } from \"./CharacterPropertyActions\";\r\n\r\nexport type CharacterSaveSkill = { type: 'CHARACTER_SAVE_SKILL', characterId: string, skillId: string }\r\nexport type CharacterUpdateSkill = { type: 'CHARACTER_UPDATE_SKILL', characterId: string, skillId: string, updateBy: number };\r\nexport type CharacterAdjustSkill = { type: 'CHARACTER_ADJUST_SKILL', characterId: string, skillId: string, adjustment: number };\r\nexport type CharacterOverrideSkill = { type: 'CHARACTER_OVERRIDE_SKILL', characterId: string, skillId: string, override?: number };\r\n\r\nexport type CharacterSkillAction = CharacterSaveSkill\r\n | CharacterUpdateSkill\r\n | CharacterAdjustSkill\r\n | CharacterOverrideSkill;\r\n\r\nconst throttleTimer = 500;\r\nconst SkillUpdateThrottles: {\r\n [key: string]: TimedThrottle\r\n} = {};\r\n\r\nexport const CharacterSkillActions = {\r\n updateSkill: (character: LocalCharacterInitializer, reference: OwnedSkillReference, updateBy: number): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n SkillUpdateThrottles[reference.id] = SkillUpdateThrottles[reference.id] ?? new TimedThrottle(throttleTimer);\r\n\r\n const oldVersion = { ...reference };\r\n\r\n const oldHealth = character.currentHealth;\r\n const oldHealthRatio = character.currentHealth / CharacterHelpers.getMaxHealth(character);\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_UPDATE_SKILL', characterId: character.id, skillId: reference.id, updateBy: updateBy * -1 });\r\n dispatch({ type: 'CHARACTER_UPDATE_HEALTH', characterId: character.id, currentHealth: oldHealth });\r\n const skill = getState().library.skills.find(s => s.id == reference.id);\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error updating ${skill?.name ?? \"unknown skill\"}.`), dispatch);\r\n }\r\n\r\n dispatch({ type: 'CHARACTER_UPDATE_SKILL', characterId: character.id, skillId: reference.id, updateBy });\r\n \r\n const copyCharacter = { ...character, skills: [...character.skills.filter(s => s.id != reference.id), { ...reference, level: reference.level + updateBy }] };\r\n const newHealth = Math.round(CharacterHelpers.getMaxHealth(copyCharacter) * oldHealthRatio);\r\n const oldCharacterVersion = { ...character };\r\n const newCharacterVersion = { ...character, currentHealth: newHealth };\r\n dispatch({ type: 'CHARACTER_UPDATE_HEALTH', characterId: character.id, currentHealth: newHealth });\r\n\r\n try {\r\n const callback = async () => {\r\n const patchState = getState();\r\n const patchedCharacter = patchState.character.characters.find(c => c.id == character.id)\r\n if (patchedCharacter == null) {\r\n return;\r\n }\r\n\r\n const newSkillVersion = patchedCharacter.skills.first(s => s.id == reference.id);\r\n if (newSkillVersion == null) {\r\n return;\r\n }\r\n\r\n const [skillResponse, characterResponse] = await Promise.all([\r\n ApiDefaultState.characters.updateSkill(character.id, oldVersion, newSkillVersion),\r\n ApiDefaultState.characters.patchCharacter(oldCharacterVersion, newCharacterVersion)\r\n ]);\r\n if (skillResponse.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(skillResponse.validationResults, dispatch);\r\n }\r\n else if (characterResponse.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(characterResponse.validationResults, dispatch);\r\n }\r\n }\r\n\r\n await SkillUpdateThrottles[reference.id]!.scheduleProcess(callback);\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n adjustSkill: (character: LocalCharacterInitializer, reference: OwnedSkillReference, adjustment: number): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const oldVersion = { ...reference };\r\n const newVersion = { ...reference, adjustment };\r\n\r\n const oldHealth = character.currentHealth;\r\n const oldHealthRatio = character.currentHealth / CharacterHelpers.getMaxHealth(character);\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_ADJUST_SKILL', characterId: character.id, skillId: reference.id, adjustment: oldVersion.adjustment });\r\n dispatch({ type: 'CHARACTER_UPDATE_HEALTH', characterId: character.id, currentHealth: oldHealth });\r\n const skill = getState().library.skills.find(s => s.id == reference.id);\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error adjusting ${skill?.name ?? \"unknown skill\"}.`), dispatch);\r\n }\r\n \r\n dispatch({ type: 'CHARACTER_ADJUST_SKILL', characterId: character.id, skillId: reference.id, adjustment: newVersion.adjustment });\r\n \r\n const newHealth = Math.round(CharacterHelpers.getMaxHealth(character) * oldHealthRatio);\r\n const oldCharacterVersion = { ...character };\r\n const newCharacterVersion = { ...character, currentHealth: newHealth };\r\n dispatch({ type: 'CHARACTER_UPDATE_HEALTH', characterId: character.id, currentHealth: newHealth });\r\n\r\n try {\r\n const [skillResponse, characterResponse] = await Promise.all([\r\n ApiDefaultState.characters.updateSkill(character.id, oldVersion, newVersion),\r\n ApiDefaultState.characters.patchCharacter(oldCharacterVersion, newCharacterVersion)\r\n ]);\r\n if (skillResponse.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(skillResponse.validationResults, dispatch);\r\n }\r\n else if (characterResponse.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(characterResponse.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n overrideSkill: (character: LocalCharacterInitializer, reference: OwnedSkillReference, override: number | undefined): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const oldVersion = { ...reference };\r\n const newVersion = { ...reference, override };\r\n\r\n const oldHealth = character.currentHealth;\r\n const oldHealthRatio = character.currentHealth / CharacterHelpers.getMaxHealth(character);\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_OVERRIDE_SKILL', characterId: character.id, skillId: reference.id, override: reference.override });\r\n dispatch({ type: 'CHARACTER_UPDATE_HEALTH', characterId: character.id, currentHealth: oldHealth });\r\n const skill = getState().library.skills.find(s => s.id == reference.id);\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Server error overriding ${skill?.name ?? \"unknown skill\"}.`), dispatch);\r\n }\r\n\r\n dispatch({ type: 'CHARACTER_OVERRIDE_SKILL', characterId: character.id, skillId: reference.id, override });\r\n\r\n const newHealth = Math.round(CharacterHelpers.getMaxHealth(character) * oldHealthRatio);\r\n const oldCharacterVersion = { ...character };\r\n const newCharacterVersion = { ...character, currentHealth: newHealth };\r\n dispatch({ type: 'CHARACTER_UPDATE_HEALTH', characterId: character.id, currentHealth: newHealth });\r\n\r\n try {\r\n const [skillResponse, characterResponse] = await Promise.all([\r\n ApiDefaultState.characters.updateSkill(character.id, oldVersion, newVersion),\r\n ApiDefaultState.characters.patchCharacter(oldCharacterVersion, newCharacterVersion)\r\n ]);\r\n if (skillResponse.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(skillResponse.validationResults, dispatch);\r\n }\r\n else if (characterResponse.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(characterResponse.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n }\r\n}","import { CharacterInitializer } from \"../../characters/Character\";\r\nimport { Roller } from \"../Roller\";\r\nimport { RhetoricName } from \"./RhetoricMap\";\r\n\r\nexport enum RhetoricPriority {\r\n None = 0,\r\n Primary = 1,\r\n Secondary = 2,\r\n Tertiary = 3\r\n}\r\n\r\nexport type RhetoricInitializer = {\r\n id: string;\r\n name: RhetoricName;\r\n description: string;\r\n}\r\n\r\nexport const DefaultRhetoricInitializer: RhetoricInitializer = {\r\n id: '',\r\n name: 'Charisma',\r\n description: ''\r\n}\r\n\r\nconst getLevel = (rhetoricId: string, character: CharacterInitializer) => {\r\n const reference = character.rhetorics.find(ref => ref.id == rhetoricId);\r\n if (reference == null) {\r\n throw \"No matching rhetoric reference found.\";\r\n }\r\n\r\n if (reference.override) {\r\n return reference.override;\r\n }\r\n\r\n let baseLevel = 0;\r\n switch (reference.priority) {\r\n case RhetoricPriority.Primary:\r\n baseLevel = Math.ceil(character.level * 0.33) + 1;\r\n break;\r\n case RhetoricPriority.Secondary:\r\n baseLevel = Math.ceil(character.level * 0.25) + 1;\r\n break;\r\n case RhetoricPriority.Tertiary:\r\n baseLevel = Math.ceil(character.level * 0.2) + 1;\r\n break;\r\n }\r\n return baseLevel + reference.adjustment;\r\n}\r\n\r\nconst getRoller = (rhetoricId: string, character: CharacterInitializer) => {\r\n const level = getLevel(rhetoricId, character);\r\n return new Roller(level * 2);\r\n}\r\n\r\nexport const RhetoricHelpers = Object.freeze({\r\n getLevel,\r\n getRoller,\r\n minValue: 1,\r\n maxValue: 10,\r\n})","import React from 'react';\r\nimport { SkillHelpers } from '../../../../../../entities/library/skills/Skill';\r\nimport { useAppDispatch } from '../../../../../../store/configureStore';\r\nimport { LocalCharacterInitializer } from '../../../../../../entities/characters/Character';\r\nimport { OwnedSkillReference } from '../../../../../../entities/Ownership';\r\nimport { CharacterSkillActions } from '../../../../../../store/stores/collection/characters/actions/CharacterSkillActions';\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n skill: OwnedSkillReference;\r\n}\r\n\r\nexport const SkillAdjustment: React.FC = (props: Props) => {\r\n const { character, skill } = props;\r\n const dispatch = useAppDispatch(); \r\n const onChange = (e: React.ChangeEvent) => {\r\n const adjustment = parseInt(e.target.value);\r\n dispatch(CharacterSkillActions.adjustSkill(character, skill, adjustment));\r\n };\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n}","import React from 'react';\r\nimport { LocalCharacterInitializer } from '../../../../../../entities/characters/Character';\r\nimport { useAppDispatch } from '../../../../../../store/configureStore';\r\nimport { OwnedSkillReference } from '../../../../../../entities/Ownership';\r\nimport { CharacterSkillActions } from '../../../../../../store/stores/collection/characters/actions/CharacterSkillActions';\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n reference: OwnedSkillReference;\r\n}\r\n\r\nexport const SkillOverride: React.FC = (props: Props) => {\r\n const { character, reference } = props;\r\n const dispatch = useAppDispatch();\r\n const onChange = (e: React.ChangeEvent) => {\r\n const override = parseInt(e.target.value)\r\n dispatch(CharacterSkillActions.overrideSkill(character, reference, override));\r\n }\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n}","import \"./skill-window.scss\";\r\nimport React from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { BreakdownWindow } from \"../../../../../theming/breakdown-window\";\r\nimport { BaseSkill } from \"./BaseSkill\";\r\nimport { SkillAdjustment } from \"./SkillAdjustment\";\r\nimport { SkillOverride } from \"./SkillOverride\";\r\nimport { OwnedSkillReference } from \"../../../../../../entities/Ownership\";\r\nimport { useAppSelector } from \"../../../../../../store/configureStore\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n reference: OwnedSkillReference;\r\n close: () => void;\r\n};\r\n\r\nexport const SkillWindow = (props: Props) => {\r\n const { character, reference, close } = props;\r\n const skills = useAppSelector(app => app.library.skills);\r\n const skill = skills.find(s => s.id == reference.id);\r\n if (skill == null) {\r\n return null;\r\n }\r\n return (\r\n {skill.name}}>\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n
    {reference.level}
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { CharacterHelpers, LocalCharacterInitializer } from \"../../../entities/characters/Character\";\r\nimport { SkillHelpers, SkillInitializer } from \"../../../entities/library/skills/Skill\";\r\nimport { DecreaseIcon, IncreaseIcon } from \"../../icons\";\r\nimport { useAppDispatch } from \"../../../store/configureStore\";\r\nimport { OwnedSkillReference } from \"../../../entities/Ownership\";\r\nimport { CharacterSkillActions } from \"../../../store/stores/collection/characters/actions/CharacterSkillActions\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n reference: OwnedSkillReference;\r\n skill: SkillInitializer;\r\n onClick?: () => void;\r\n}\r\n\r\nexport const SkillComponent: React.FC = (props: Props) => {\r\n const { character, reference, skill, onClick } = props;\r\n const dispatch = useAppDispatch();\r\n const decreaseDisabled = decreaseSkillIsDisabled(reference);\r\n const increaseDisabled = increaseSkillIsDisabled(character, reference);\r\n\r\n if (skill == null) {\r\n return null;\r\n }\r\n\r\n const roller = SkillHelpers.getRoller(reference);\r\n\r\n const decrease = () => {\r\n dispatch(CharacterSkillActions.updateSkill(character, reference, -1));\r\n }\r\n \r\n const increase = () => {\r\n dispatch(CharacterSkillActions.updateSkill(character, reference, 1));\r\n }\r\n\r\n const overrideClick = () => {\r\n if (onClick != null) {\r\n onClick();\r\n }\r\n }\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n\r\n
    {SkillHelpers.getAdjustedLevel(reference)}
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n +{SkillHelpers.getEmpowermentBonus(reference)}\r\n
    \r\n {roller.diceBoons &&
    {roller.diceBoons}
    }\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst increaseSkillIsDisabled = (character: LocalCharacterInitializer, reference: OwnedSkillReference): boolean => {\r\n const skillAdjustedLevel = SkillHelpers.getAdjustedLevel(reference);\r\n const skillMaxed = skillAdjustedLevel >= SkillHelpers.MaxValue;\r\n const atThreshold = skillAdjustedLevel - character.level >= SkillHelpers.MaxSkillDifference;\r\n const outOfPoints = CharacterHelpers.getRemainingSkillPoints(character) <= 0;\r\n\r\n return skillMaxed\r\n || atThreshold\r\n || outOfPoints;\r\n}\r\n\r\nconst decreaseSkillIsDisabled = (reference: OwnedSkillReference): boolean => {\r\n return SkillHelpers.getAdjustedLevel(reference) <= SkillHelpers.MinValue;\r\n}","export type IdentifiableEntity = {\r\n id: string;\r\n}\r\n\r\nexport type AssignedEntity = IdentifiableEntity & { \r\n instanceId: string;\r\n}\r\n\r\nexport type NamedEntity = IdentifiableEntity & {\r\n name: string;\r\n}\r\n\r\nexport type AssignedNamedEntity = NamedEntity & AssignedEntity;\r\n\r\nexport const IsAssignedEntity = (entity: unknown): entity is AssignedEntity => {\r\n return (entity as AssignedEntity).instanceId != null;\r\n}\r\n\r\nexport const NamedEntitySort = (e1: NamedEntity, e2: NamedEntity) => e1.name.localeCompare(e2.name);","import './character-sheet-skills.scss';\r\nimport React, { useState } from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { SkillWindow } from \"./skill-window\";\r\nimport { SkillComponent } from '../../../../characters/skills/SkillComponent';\r\nimport { useAppSelector } from '../../../../../store/configureStore';\r\nimport { NamedEntitySort } from '../../../../../entities/NamedEntity';\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n viewOnMobile: boolean;\r\n}\r\n\r\nexport const SheetSkills: React.FC = (props: Props) => {\r\n const { character, viewOnMobile } = props;\r\n const [activeSkillId, setActiveSkillId] = useState(null);\r\n const activeSkillReference = character.skills.find(s => s.id == activeSkillId);\r\n const skills = useAppSelector(app => app.library.skills);\r\n skills.sort(NamedEntitySort);\r\n return (\r\n
    \r\n

    Skills

    \r\n
    \r\n {skills.map(skill => {\r\n const reference = character.skills.find(ref => ref.id == skill.id);\r\n if (reference == null) {\r\n return null;\r\n }\r\n return setActiveSkillId(reference.id)} />\r\n })}\r\n
    \r\n {activeSkillReference && setActiveSkillId(null)} />}\r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { CharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { RhetoricHelpers } from \"../../../../../entities/library/socials/Rhetoric\";\r\nimport { OwnedRhetoricReference } from \"../../../../../entities/Ownership\";\r\nimport { useAppSelector } from \"../../../../../store/configureStore\";\r\n\r\ntype Props = {\r\n character: CharacterInitializer;\r\n reference: OwnedRhetoricReference;\r\n onClick?: () => void;\r\n}\r\n\r\nexport const RhetoricSheetComponent: React.FC = (props: Props) => {\r\n const { character, reference, onClick } = props;\r\n const rhetorics = useAppSelector(app => app.library.rhetorics);\r\n const rhetoric = rhetorics.find(r => r.id == reference.id);\r\n\r\n if (rhetoric == null) {\r\n throw \"Rhetoric not found.\";\r\n }\r\n\r\n const level = RhetoricHelpers.getLevel(reference.id, character);\r\n const roller = RhetoricHelpers.getRoller(reference.id, character);\r\n return (\r\n
    \r\n \r\n
    \r\n {level != undefined &&
    {level}
    }\r\n {level == undefined && \"Not Set\"}\r\n
    \r\n {level != undefined &&\r\n
    \r\n {roller.diceBoons &&
    {roller.diceBoons}
    }\r\n
    \r\n }\r\n
    \r\n );\r\n}","import { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { RhetoricPriority } from \"../../../../../entities/library/socials/Rhetoric\";\r\nimport { OwnedRhetoricReference } from \"../../../../../entities/Ownership\";\r\nimport { ErrorToast } from \"../../../../../entities/toasts/Toasts\";\r\nimport { ApiDefaultState } from \"../../../api/ApiStore.State\";\r\nimport { AppThunkAction } from \"../../../ApplicationState\";\r\nimport { ToastAction, ToastDispatchables } from \"../../../toasts/Toasts.Actions\";\r\n\r\nexport type CharacterSaveRhetoric = { type: 'CHARACTER_SAVE_RHETORIC', character: LocalCharacterInitializer, rhetoricId: string }\r\nexport type CharacterUpdateRhetoric = { type: 'CHARACTER_UPDATE_RHETORIC_PRIORITY', character: LocalCharacterInitializer, rhetoricId: string, priority: RhetoricPriority };\r\nexport type CharacterAdjustRhetoric = { type: 'CHARACTER_ADJUST_RHETORIC', character: LocalCharacterInitializer, rhetoricId: string, adjustment: number };\r\nexport type CharacterOverrideRhetoric = { type: 'CHARACTER_OVERRIDE_RHETORIC', character: LocalCharacterInitializer, rhetoricId: string, override?: number };\r\n\r\nexport type CharacterRhetoricAction = CharacterSaveRhetoric\r\n | CharacterUpdateRhetoric\r\n | CharacterAdjustRhetoric\r\n | CharacterOverrideRhetoric;\r\n\r\nexport const CharacterRhetoricActions = {\r\n updateRhetoricPriority: (character: LocalCharacterInitializer, reference: OwnedRhetoricReference, priority: RhetoricPriority): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const rhetorics = getState().library.rhetorics;\r\n const rhetoric = rhetorics.find(r => r.id == reference.id);\r\n if (rhetoric == null) {\r\n throw \"Rhetoric not found.\";\r\n }\r\n\r\n const matchingPriorityRhetorics = character.rhetorics.filter(r => r.id != reference.id && r.priority == priority);\r\n\r\n const oldPriority = reference.priority;\r\n \r\n const oldMatchVersions = matchingPriorityRhetorics.map(mpr => ({ ...mpr }));\r\n const newMatchVersions = matchingPriorityRhetorics.map(mpr => ({ ...mpr, priority: oldPriority }));\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_UPDATE_RHETORIC_PRIORITY', character, rhetoricId: reference.id, priority: oldPriority });\r\n for (let oldMatch of oldMatchVersions) {\r\n dispatch({ type: 'CHARACTER_UPDATE_RHETORIC_PRIORITY', character, rhetoricId: oldMatch.id, priority: oldMatch.priority });\r\n }\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error updating ${rhetoric.name}.`), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_UPDATE_RHETORIC_PRIORITY', character, rhetoricId: reference.id, priority });\r\n for (let newMatch of newMatchVersions) {\r\n dispatch({ type: 'CHARACTER_UPDATE_RHETORIC_PRIORITY', character, rhetoricId: newMatch.id, priority: newMatch.priority });\r\n }\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.updateRhetoricPriority(character.id, reference.id, priority);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n adjustRhetoric: (character: LocalCharacterInitializer, reference: OwnedRhetoricReference, adjustment: number): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const rhetorics = getState().library.rhetorics;\r\n const rhetoric = rhetorics.find(r => r.id == reference.id);\r\n if (rhetoric == null) {\r\n throw \"Rhetoric not found.\";\r\n }\r\n\r\n const oldVersion = { ...reference };\r\n const newVersion = { ...reference, adjustment };\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_ADJUST_RHETORIC', character, rhetoricId: reference.id, adjustment: oldVersion.adjustment });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error adjusting ${rhetoric.name}.`), dispatch);\r\n }\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.updateRhetoric(character.id, oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n overrideRhetoric: (character: LocalCharacterInitializer, reference: OwnedRhetoricReference, override: number | undefined): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const rhetorics = getState().library.rhetorics;\r\n const rhetoric = rhetorics.find(r => r.id == reference.id);\r\n if (rhetoric == null) {\r\n throw \"Rhetoric not found.\";\r\n }\r\n\r\n const oldVersion = { ...reference };\r\n const newVersion = { ...reference, override };\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_OVERRIDE_RHETORIC', character, rhetoricId: rhetoric.id, override });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Server error overriding ${rhetoric.name}.`), dispatch);\r\n }\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.updateRhetoric(character.id, oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n }\r\n}","import React, { useState } from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { useAppDispatch } from \"../../../../../../store/configureStore\";\r\nimport { OwnedRhetoricReference } from \"../../../../../../entities/Ownership\";\r\nimport { CharacterRhetoricActions } from \"../../../../../../store/stores/collection/characters/actions/CharacterRhetoricActions\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n reference: OwnedRhetoricReference;\r\n}\r\n\r\nexport const RhetoricAdjustment: React.FC = (props: Props) => {\r\n const { character, reference: rhetoric } = props;\r\n const dispatch = useAppDispatch();\r\n const [adjustment, setAdjustment] = useState(props.reference.adjustment);\r\n\r\n const onChange = (e: React.ChangeEvent) => {\r\n setAdjustment(parseInt(e.target.value));\r\n }\r\n const onBlur = () => dispatch(CharacterRhetoricActions.adjustRhetoric(character, rhetoric, adjustment));\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { RhetoricHelpers } from \"../../../../../../entities/library/socials/Rhetoric\";\r\nimport { useAppDispatch } from \"../../../../../../store/configureStore\";\r\nimport { OwnedRhetoricReference } from \"../../../../../../entities/Ownership\";\r\nimport { CharacterRhetoricActions } from \"../../../../../../store/stores/collection/characters/actions/CharacterRhetoricActions\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n rhetoric: OwnedRhetoricReference;\r\n}\r\n\r\nexport const RhetoricOverride: React.FC = (props: Props) => {\r\n const { character, rhetoric } = props;\r\n const dispatch = useAppDispatch();\r\n const [override, setOverride] = useState(rhetoric.override);\r\n\r\n const onChange = (e: React.ChangeEvent) => {\r\n const setTo = parseInt(e.target.value);\r\n if (setTo > 0) {\r\n setOverride(setTo);\r\n }\r\n else {\r\n setOverride(undefined);\r\n }\r\n }\r\n const onBlur = () => dispatch(CharacterRhetoricActions.overrideRhetoric(character, rhetoric, override));\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { RhetoricHelpers } from \"../../../../../../entities/library/socials/Rhetoric\";\r\nimport { OwnedRhetoricReference } from \"../../../../../../entities/Ownership\";\r\nimport { CharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\n\r\ntype Props = {\r\n character: CharacterInitializer;\r\n rhetoric: OwnedRhetoricReference;\r\n}\r\n\r\nexport const BaseRhetoric: React.FC = (props: Props) => {\r\n const { character, rhetoric } = props;\r\n return (\r\n
    \r\n \r\n
    {RhetoricHelpers.getLevel(rhetoric.id, character)}
    \r\n
    \r\n );\r\n}","import \"./character-sheet-rhetorics.scss\";\r\nimport React, { useState } from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { RhetoricHelpers, RhetoricPriority } from \"../../../../../entities/library/socials/Rhetoric\";\r\nimport { RhetoricSheetComponent } from \"./RhetoricSheetComponent\";\r\nimport { BreakdownWindow } from \"../../../../theming/breakdown-window\";\r\nimport { RhetoricAdjustment } from \"./window/RhetoricAdjustment\";\r\nimport { RhetoricOverride } from \"./window/RhetoricOverride\";\r\nimport { BaseRhetoric } from \"./window/BaseRhetoric\";\r\nimport { CloseIcon, EditIcon } from \"../../../../icons\";\r\nimport { ThemedRadio } from \"../../../../inputs/radio/ThemedRadio\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../store/configureStore\";\r\nimport { OwnedRhetoricReference } from \"../../../../../entities/Ownership\";\r\nimport { CharacterRhetoricActions } from \"../../../../../store/stores/collection/characters/actions/CharacterRhetoricActions\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n viewOnMobile: boolean;\r\n}\r\n\r\ntype RhetoricPriorityOption = {\r\n name: string;\r\n display: string;\r\n priority: RhetoricPriority;\r\n}\r\nconst PrimaryOption: RhetoricPriorityOption = { name: \"Primary\", display: \"1st\", priority: RhetoricPriority.Primary };\r\nconst SecondaryOption: RhetoricPriorityOption = { name: \"Secondary\", display: \"2nd\", priority: RhetoricPriority.Secondary };\r\nconst TertiaryOption: RhetoricPriorityOption = { name: \"Tertiary\", display: \"3rd\", priority: RhetoricPriority.Tertiary };\r\nconst RhetoricPriorityOptions = [\r\n PrimaryOption,\r\n SecondaryOption,\r\n TertiaryOption,\r\n];\r\n\r\nconst GetSelectedRhetoricOption = (rhetoric: OwnedRhetoricReference) => {\r\n switch (rhetoric.priority) {\r\n case RhetoricPriority.Primary:\r\n return PrimaryOption;\r\n case RhetoricPriority.Secondary:\r\n return SecondaryOption;\r\n case RhetoricPriority.Tertiary:\r\n return TertiaryOption;\r\n default:\r\n return undefined;\r\n }\r\n}\r\n\r\nexport const CharacterSheetRhetorics: React.FC = (props: Props) => {\r\n const { character, viewOnMobile } = props;\r\n const rhetorics = useAppSelector(app => app.library.rhetorics);\r\n const [selectedRhetoricId, setSelectedRhetoricId] = useState(null);\r\n const selectedRhetoric = rhetorics.find(r => r.id == selectedRhetoricId);\r\n const selectedReference = character.rhetorics.find(r => r.id == selectedRhetoricId);\r\n\r\n const [editing, setEditing] = useState(false);\r\n const editRhetorics = () => {\r\n setEditing(true);\r\n }\r\n const cancelEdit = () => {\r\n setEditing(false);\r\n }\r\n return (\r\n
    \r\n

    \r\n
    \r\n
    Rhetorics
    \r\n {editing && }\r\n {!editing && }\r\n
    \r\n

    \r\n {editing &&\r\n
    \r\n {character.rhetorics.map(reference => )}\r\n
    \r\n }\r\n {!editing &&\r\n
    \r\n {character.rhetorics.map(reference => (\r\n
    \r\n setSelectedRhetoricId(reference.id)} />\r\n
    \r\n ))}\r\n
    \r\n }\r\n setSelectedRhetoricId(null)}\r\n heading={

    {selectedRhetoric?.name}

    }>\r\n {selectedRhetoric && \r\n (
    \r\n
    \r\n \r\n
    {RhetoricHelpers.getLevel(selectedRhetoricId!, character)}
    \r\n
    \r\n \r\n \r\n \r\n
    )\r\n }\r\n
    \r\n
    \r\n );\r\n}\r\n\r\ntype SingleProps = {\r\n reference: OwnedRhetoricReference;\r\n character: LocalCharacterInitializer;\r\n}\r\n\r\nconst CharacterSheetRhetoric = (props: SingleProps) => {\r\n const { reference, character } = props;\r\n const dispatch = useAppDispatch();\r\n const rhetorics = useAppSelector(app => app.library.rhetorics);\r\n const rhetoric = rhetorics.find(r => r.id == reference.id);\r\n if (rhetoric == null) {\r\n throw \"Rhetoric not found.\";\r\n }\r\n\r\n const update = (option: RhetoricPriorityOption) => {\r\n dispatch(CharacterRhetoricActions.updateRhetoricPriority(character, reference, option.priority));\r\n }\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import { CharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { Personality } from \"../../../../../entities/library/socials/Personality\";\r\nimport { OwnedReference } from \"../../../../../entities/Ownership\";\r\nimport { ErrorToast, InfoToast } from \"../../../../../entities/toasts/Toasts\";\r\nimport { getUniqueIdentifier } from \"../../../../../utils/GUID\";\r\nimport { ApiDefaultState } from \"../../../api/ApiStore.State\";\r\nimport { AppThunkAction } from \"../../../ApplicationState\";\r\nimport { ToastAction, ToastDispatchables } from \"../../../toasts/Toasts.Actions\";\r\n\r\nexport type CharacterSavePersonality = { type: 'CHARACTER_SAVE_PERSONALITY', characterId: string, id: string, instanceId: string }\r\nexport type CharacterAddPersonality = { type: 'CHARACTER_ADD_PERSONALITY', characterId: string, reference: OwnedReference };\r\nexport type CharacterRemovePersonality = { type: 'CHARACTER_REMOVE_PERSONALITY', characterId: string, personalityInstanceId: string };\r\n\r\nexport type CharacterPersonalityAction = CharacterSavePersonality | CharacterAddPersonality | CharacterRemovePersonality;\r\n\r\nexport const CharacterPersonalityActions = {\r\n addPersonality: (character: CharacterInitializer, reference: Personality): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const instanceId = getUniqueIdentifier();\r\n const placeholder = { id: reference.id, instanceId };\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_REMOVE_PERSONALITY', characterId: character.id, personalityInstanceId: instanceId });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error adding ${reference.name}.`), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_ADD_PERSONALITY', characterId: character.id, reference: placeholder });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.addPersonality(character.id, reference.id);\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'CHARACTER_SAVE_PERSONALITY', characterId: character.id, id: reference.id, instanceId: response.payload });\r\n ToastDispatchables.toastLegacy(new InfoToast(`${reference.name} added.`), dispatch);\r\n }\r\n else {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n removePersonality: (character: CharacterInitializer, reference: OwnedReference): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const personalities = getState().library.personalities;\r\n const personality = personalities.find(p => p.id == reference.id);\r\n if (personality == null) {\r\n throw \"Personality not found.\";\r\n }\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_ADD_PERSONALITY', characterId: character.id, reference });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error removing ${personality.name}.`), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_REMOVE_PERSONALITY', characterId: character.id, personalityInstanceId: reference.instanceId });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.removePersonality(character.id, reference.id);\r\n if (response.status == 'Success') {\r\n ToastDispatchables.toastLegacy(new InfoToast(`${personality.name} removed.`), dispatch);\r\n }\r\n else {\r\n undo();\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n }\r\n}","import React from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { Personality } from \"../../../../../entities/library/socials/Personality\";\r\nimport { ThemedCheckbox } from \"../../../../inputs/checkbox/ThemedCheckbox\";\r\nimport { useAppDispatch } from \"../../../../../store/configureStore\";\r\nimport { CharacterPersonalityActions } from \"../../../../../store/stores/collection/characters/actions/CharacterPersonalityActions\";\r\n\r\ntype Props = {\r\n personality: Personality;\r\n character: LocalCharacterInitializer;\r\n}\r\n\r\nexport const PersonalityHeader: React.FC = (props: Props) => {\r\n const { character, personality } = props;\r\n const dispatch = useAppDispatch();\r\n \r\n const personalityReference = character.personalities.find(p => p.id == personality.id);\r\n const alreadySelected = personalityReference != null;\r\n\r\n const toggle = (checked: boolean) => {\r\n if (checked) {\r\n dispatch(CharacterPersonalityActions.addPersonality(character, personality));\r\n }\r\n else {\r\n dispatch(CharacterPersonalityActions.removePersonality(character, personalityReference!));\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {personality.name}\r\n \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { CollapsibleSection } from \"../../../../articles/CollapsibleSection\";\r\nimport { MarkdownContainer } from \"../../../../theming/MarkdownContainer\";\r\nimport { Personality } from \"../../../../../entities/library/socials/Personality\";\r\nimport { PersonalityHeader } from \"./PersonalityHeader\";\r\n\r\ntype Props = {\r\n personality: Personality;\r\n character: LocalCharacterInitializer;\r\n}\r\n\r\nexport const PersonalityOption: React.FC = (props: Props) => {\r\n const { personality } = props;\r\n const header = ;\r\n return (\r\n \r\n {personality.description}\r\n \r\n );\r\n}","import './character-sheet-personalities.scss';\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { Personality } from \"../../../../../entities/library/socials/Personality\";\r\nimport { BreakdownWindow } from '../../../../theming/breakdown-window';\r\nimport { ApplicationState } from '../../../../../store/stores/ApplicationState';\r\nimport { LocalCharacterInitializer } from '../../../../../entities/characters/Character';\r\nimport { LibraryActions } from '../../../../../store/stores/library/LibraryStore.Actions';\r\nimport { useAppDispatch, useAppSelector } from '../../../../../store/configureStore';\r\nimport { PersonalityOption } from './PersonalityOption';\r\nimport { NamedEntitySort } from '../../../../../entities/NamedEntity';\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n viewOnMobile: boolean;\r\n}\r\n\r\ntype State = {\r\n filter: string;\r\n editing: boolean;\r\n}\r\n\r\nexport const SheetPersonalities: React.FC = (props: Props) => {\r\n const { character, viewOnMobile } = props;\r\n\r\n const dispatch = useAppDispatch();\r\n const [state, setState] = useState({\r\n filter: '',\r\n editing: false,\r\n });\r\n\r\n let { personalities, allPersonalitiesLoaded } = useAppSelector((app: ApplicationState) => app.library);\r\n personalities = personalities.filter(p => state.filter == '' || p.name.toLowerCase().indexOf(state.filter.toLowerCase()) > -1);\r\n\r\n useEffect(() => {\r\n if (!allPersonalitiesLoaded) {\r\n dispatch(LibraryActions.loadPersonalities());\r\n }\r\n }, [dispatch, allPersonalitiesLoaded]);\r\n\r\n const positivePersonalities = personalities.filter(p => p.positive);\r\n const negativePersonalities = personalities.filter(p => !p.positive);\r\n\r\n const characterPersonalities = personalities.filter(p => character.personalities.any(ref => ref.id == p.id));\r\n characterPersonalities.sort(NamedEntitySort);\r\n\r\n return (\r\n <>\r\n \r\n\r\n Manage Personalities} visible={state.editing}\r\n close={() => setState({ ...state, editing: false })}>\r\n
    \r\n  \r\n setState({ ...state, filter: e.target.value})} />\r\n
    \r\n

    Positive

    \r\n {mapPersonalities(character, positivePersonalities)}\r\n

    Negative

    \r\n {mapPersonalities(character, negativePersonalities)}\r\n
    \r\n \r\n );\r\n}\r\n\r\nconst mapPersonalities = (character: LocalCharacterInitializer, personalities: Personality[]) => {\r\n return personalities.map(personality => (\r\n \r\n ));\r\n}\r\n\r\ntype PreviewProps = { character: LocalCharacterInitializer, personality: Personality }\r\nconst PersonalityPreview: React.FC = (props: PreviewProps) => {\r\n return (\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { DieFace } from \"../../../../../entities/rolls/Roll\";\r\nimport { EditableDie } from \"../../../../inputs/EditableDie\";\r\nimport { LocalAdventure } from \"../../../../../entities/adventures/Adventure\";\r\nimport { useAppDispatch, } from \"../../../../../store/configureStore\";\r\nimport { CharacterSpecificActions } from \"../../../../../store/stores/collection/characters/actions/CharacterSpecificActions\";\r\nimport { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n adventure: LocalAdventure | null;\r\n}\r\n\r\nexport const CommunalRolls = (props: Props) => {\r\n const { character, adventure } = props;\r\n const dispatch = useAppDispatch();\r\n const {communalDice} = character;\r\n const onChange = (index: number, value: DieFace) => {\r\n if (adventure != null) {\r\n return;\r\n }\r\n communalDice.splice(index, 1, value);\r\n dispatch(CharacterSpecificActions.setCommunalRolls(character, communalDice));\r\n }\r\n const onChangeFirst = (value: DieFace) => onChange(0, value);\r\n const onChangeSecond = (value: DieFace) => onChange(1, value);\r\n\r\n const diceToUse = adventure != null\r\n ? adventure.communalDice\r\n : communalDice;\r\n return (\r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { SingleSelect } from \"../../../../inputs/selects/singleselect/SingleSelect\";\r\nimport { SelectableOption } from \"../../../../inputs/selects/SelectableOption\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../store/configureStore\";\r\nimport { CharacterSpecificActions } from \"../../../../../store/stores/collection/characters/actions/CharacterSpecificActions\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer,\r\n disabled?: boolean\r\n}\r\n\r\nexport const RollActionPicker: React.FC = (props: Props) => {\r\n const { character, disabled } = props;\r\n const dispatch = useAppDispatch();\r\n const {skillId} = character.currentDice;\r\n\r\n const skills = useAppSelector(app => app.library.skills);\r\n\r\n const options: SelectableOption[] = skills.map(skill => ({\r\n value: skill.id,\r\n name: skill.name\r\n }));\r\n\r\n const onChange = (skillId: string) => dispatch(CharacterSpecificActions.setRollSkill(character, skillId));\r\n return (\r\n
    \r\n \r\n  \r\n \r\n
    \r\n );\r\n}","import './roll-tool.scss';\r\nimport React, { useState } from \"react\";\r\nimport { LocalCharacterInitializer } from '../../../../../entities/characters/Character';\r\nimport { RollIcon } from '../../../../icons/CharacterIcons';\r\nimport { BreakdownWindow } from '../../../../theming/breakdown-window';\r\nimport { CommunalRolls } from './CommunalRolls';\r\nimport { RollActionPicker } from './RollActionPicker';\r\nimport { ThemedButton } from '../../../../inputs/buttons/ThemedButton';\r\nimport { ActionDiceCount, ActionRollRequest, BigStraight, Bust, DieFace, Flush, FullHouse, Hand, HandType, HandTypeName, HandTypeValue, Jackpot, Pair, Quad, RerollableIndex, RerollableIndices, RollType, SmallStraight, Triple, TwoPair } from '../../../../../entities/rolls/Roll';\r\nimport { Die } from '../../../../figures/Die';\r\nimport { ThemedRadio } from '../../../../inputs/radio/ThemedRadio';\r\nimport { Loader } from '../../../../theming/loader/Loader';\r\nimport { CharacterActions } from '../../../../../store/stores/collection/characters/CharacterStore.Actions';\r\nimport { useAppDispatch, useAppSelector } from '../../../../../store/configureStore';\r\nimport { CharacterSpecificActions } from '../../../../../store/stores/collection/characters/actions/CharacterSpecificActions';\r\nimport { SkillHelpers } from '../../../../../entities/library/skills/Skill';\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer\r\n}\r\n\r\ntype RollTypeOption = {\r\n name: string,\r\n display: string,\r\n value: RollType,\r\n rerollMod: number;\r\n}\r\n\r\ntype RollStage = \"Initial\" | \"Reroll\" | \"Declaration\";\r\n\r\nconst AdvantageRollOption = {\r\n name: \"Advantage\",\r\n display: \"Advantage\",\r\n value: RollType.Advantage,\r\n rerollMod: 1,\r\n}\r\n\r\nconst NormalRollOption = {\r\n name: \"Normal\",\r\n display: \"Normal\",\r\n value: RollType.Normal,\r\n rerollMod: 0,\r\n}\r\n\r\nconst DisadvantageRollOption = {\r\n name: \"Disadvantage\",\r\n display: \"Disadvantage\",\r\n value: RollType.Disadvantage,\r\n rerollMod: -1,\r\n};\r\n\r\nconst RollTypeOptions = [\r\n AdvantageRollOption,\r\n NormalRollOption,\r\n DisadvantageRollOption\r\n];\r\n\r\nexport const RollTool: React.FC = (props: Props) => {\r\n const { character } = props;\r\n const dispatch = useAppDispatch();\r\n const {adventures, loaded} = useAppSelector(app => app.adventure);\r\n const { currentDice, rollRequest } = character;\r\n const [rollType, setRollType] = useState(NormalRollOption);\r\n const [showWindow, toggleWindow] = useState(false);\r\n const [rerolls, setRerolls] = useState([]);\r\n const [rollStage, setRollStage] = useState(\"Initial\");\r\n const [declaration, setDeclaration] = useState(null);\r\n\r\n const allSkills = useAppSelector(app => app.library.skills);\r\n const adventure = adventures.find(a => a.characterIds.contains(character.id));\r\n\r\n const skillReference = character.skills.find(s => s.id == currentDice.skillId);\r\n\r\n const skill = allSkills.find(s => s.id == skillReference?.id);\r\n\r\n const skillRoller = skillReference == null ? null : SkillHelpers.getRoller(skillReference);\r\n \r\n let maxRerolls = skillRoller?.rerolls ?? 0;\r\n maxRerolls += rollType.rerollMod;\r\n maxRerolls = Math.max(maxRerolls, 0);\r\n\r\n const rerollsRemaining = maxRerolls - rerolls.length;\r\n const extraDiceCount = skillRoller?.extraRolls ?? 0;\r\n const rerollPickDisabled = maxRerolls == 0 || rollStage == \"Declaration\";\r\n const activelyRolling = rollRequest != null;\r\n const onRerollPhase = currentDice.actionDice.any();\r\n\r\n const onRoll = () => {\r\n dispatch(CharacterSpecificActions.rollHand(character, {...ActionRollRequest}));\r\n setRerolls([]);\r\n setRollStage(\"Reroll\");\r\n }\r\n\r\n const onReroll = () => {\r\n if (skillReference == null) {\r\n return;\r\n }\r\n const request = {\r\n skillId: skillReference.id,\r\n rollType: rollType.value,\r\n rerollIndices: rerolls,\r\n }\r\n dispatch(CharacterSpecificActions.rollHand(character, request));\r\n setRerolls([]);\r\n setRollStage(\"Declaration\");\r\n }\r\n\r\n const reset = () => {\r\n dispatch(CharacterSpecificActions.resetHand(character));\r\n setRerolls([]);\r\n setRollStage(\"Initial\");\r\n }\r\n\r\n const onOpen = () => {\r\n reset();\r\n toggleWindow(true);\r\n }\r\n\r\n const createRerollToggle = (index: RerollableIndex) => {\r\n return () => {\r\n if (rerollPickDisabled) {\r\n return;\r\n }\r\n\r\n if (rerolls.contains(index)) {\r\n setRerolls([...rerolls].filter(r => r != index) as RerollableIndices);\r\n }\r\n else if (rerolls.length < maxRerolls) {\r\n setRerolls([...rerolls, index] as RerollableIndices);\r\n }\r\n }\r\n }\r\n\r\n const changeRollType = (selection: RollTypeOption) => {\r\n setRerolls([]);\r\n setRollType(selection);\r\n }\r\n\r\n const createDeclarationMethod = (handType: HandType) => {\r\n return () => {\r\n setDeclaration(handType.name);\r\n dispatch(CharacterActions.declareHand(character.id, handType.value));\r\n }\r\n }\r\n\r\n const rollWindowHeading = adventure == null\r\n ?

    Loading Adventure

    \r\n :

    Roll{skill?.name ?? ''}!

    ;\r\n\r\n if (adventure == null && loaded) {\r\n return null;\r\n }\r\n\r\n let finalHand: Hand | undefined = undefined;\r\n if (adventure != null) {\r\n finalHand = new Hand(...adventure.communalDice, ...currentDice.actionDice, ...currentDice.extraDice);\r\n }\r\n return (\r\n <>\r\n \r\n Roll!\r\n \r\n toggleWindow(false)}\r\n heading={rollWindowHeading}>\r\n \r\n {adventure == null && (\r\n \r\n )}\r\n\r\n {adventure != null && <>\r\n
    \r\n \r\n
    \r\n \r\n\r\n
    \r\n {!currentDice.actionDice.any() && [...Array(ActionDiceCount)].map((_, index) => (\r\n ?\r\n ))}\r\n {currentDice.actionDice.map((die, index) => (\r\n \r\n ))}\r\n
    \r\n\r\n {rollStage == \"Initial\" && (\r\n \r\n Roll\r\n \r\n )}\r\n
    \r\n \r\n {(currentDice.extraDice.any() || extraDiceCount > 0) &&\r\n
    \r\n \r\n \r\n \r\n
    \r\n {!currentDice.extraDice.any() && [...Array(extraDiceCount)].map((_, index) => (\r\n ?\r\n ))}\r\n\r\n {currentDice.extraDice.any() && currentDice.extraDice.map((roll, index) => (\r\n {roll}\r\n ))}\r\n
    \r\n
    \r\n }\r\n
    \r\n {onRerollPhase && !activelyRolling && (<>\r\n
    \r\n \r\n
    \r\n \r\n )} \r\n\r\n {rollStage == \"Reroll\" && (\r\n
    \r\n {maxRerolls > 0 && skillReference != null && (\r\n <>\r\n
    Click on action dice above to reroll them.
    \r\n
    {rerollsRemaining} rerolls remaining.
    \r\n \r\n )}\r\n {maxRerolls <= 0 && skillReference != null &&
    No rerolls available.
    }\r\n \r\n {skillReference != null && (\r\n
    \r\n \r\n {rerolls.any() ? `Reroll ${rerolls.length} ${rerolls.length == 1 ? \"die\" : \"dice\"}` : \"Keep (no rerolls)\"}\r\n \r\n\r\n {extraDiceCount > 0 &&
    You'll also roll {extraDiceCount} extra {extraDiceCount != 1 ? 'dice' : 'die'}.
    }\r\n
    \r\n )}\r\n
    )}\r\n }\r\n\r\n {rollStage == \"Declaration\" && !activelyRolling && finalHand && declaration == null &&\r\n
    \r\n \r\n Bust\r\n {finalHand.isPair && Pair}\r\n {finalHand.isTwoPair && Two Pair}\r\n {finalHand.isTriple && Triple}\r\n {finalHand.isSmallStraight && Small Straight}\r\n {finalHand.isFlush && Flush}\r\n {finalHand.isFullHouse && Full House}\r\n {finalHand.isBigStraight && Big Straight}\r\n {finalHand.isQuad && Quad}\r\n {finalHand.isJackpot && Jackpot!}\r\n
    \r\n }\r\n \r\n {rollStage == \"Declaration\" && !activelyRolling && declaration != null &&\r\n <>\r\n Declared: {declaration}\r\n
    \r\n \r\n Reset\r\n \r\n \r\n }\r\n
    \r\n \r\n );\r\n}\r\n\r\ntype RerollableProps = {\r\n faceValue: DieFace;\r\n selected: boolean;\r\n toggleForReroll: () => unknown;\r\n rolling: boolean;\r\n disabled: boolean;\r\n }\r\n\r\nconst RerollableDie = (props: RerollableProps) => {\r\n const { faceValue, selected, toggleForReroll, rolling, disabled } = props;\r\n return (\r\n \r\n {faceValue}\r\n \r\n );\r\n}","import './quick-access.scss';\r\nimport React, { useMemo, useState } from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { ThemedCheckbox } from \"../../../../inputs/checkbox/ThemedCheckbox\";\r\nimport { RollTool } from \"../roll-tool\";\r\nimport { Loader } from '../../../../theming/loader/Loader';\r\nimport { useAppDispatch, useAppSelector } from '../../../../../store/configureStore';\r\nimport { CharacterPropertyActions } from '../../../../../store/stores/collection/characters/actions/CharacterPropertyActions';\r\nimport { ThemedButton } from '../../../../inputs/buttons/ThemedButton';\r\nimport { BreakdownWindow } from '../../../../theming/breakdown-window';\r\nimport { AdventureActions } from '../../../../../store/stores/adventures/AdventureStore.Actions';\r\nimport { Link } from 'react-router-dom';\r\nimport { Die } from '../../../../figures/Die';\r\n\r\ntype Props = { character: LocalCharacterInitializer }\r\n\r\nexport const SheetQuickAccess: React.FC = (props: Props) => {\r\n const { character } = props;\r\n const [menuOpen, setMenuOpen] = useState(false);\r\n const characters = useAppSelector(app => app.character.characters);\r\n const { adventures, modifyingCharacterOnAdventure } = useAppSelector(app => app.adventure);\r\n const adventure = useMemo(() => adventures.find(a => a.characterIds.contains(character.id)),\r\n [adventures, character.id]);\r\n const { enforceRules, pendingProperties } = character;\r\n const dispatch = useAppDispatch();\r\n const enforceRulesPending = pendingProperties[\"enforceRules\"];\r\n const setChecked = (selected: boolean) => dispatch(CharacterPropertyActions.setRuleEnforcement(character, selected));\r\n return (\r\n
    \r\n setMenuOpen(true)}>Character Settings\r\n {menuOpen && (\r\n setMenuOpen(false)} heading={

    Character Settings

    }>\r\n
    \r\n \r\n \r\n {enforceRulesPending && }\r\n
    \r\n \r\n
    \r\n

    Adventures

    \r\n {modifyingCharacterOnAdventure && }\r\n {adventure && !modifyingCharacterOnAdventure && (\r\n <>\r\n {character.name} is currently assigned to .\r\n
    \r\n {\r\n if (confirm(`Are you sure you want to remove ${character.name} from ${adventure.name}?`)) {\r\n dispatch(AdventureActions.removeCharacterFromAdventure(adventure, character));\r\n }\r\n }}>Remove from {adventure.name}\r\n \r\n )}\r\n\r\n {!adventure && !modifyingCharacterOnAdventure && (\r\n <>\r\n is not currently assigned to any adventures.\r\n {adventures.length > 0 && (<>\r\n
      \r\n {adventures.map(a => {\r\n const disabled = characters.map(c => c.id).intersection(a.characterIds).length > 0;\r\n return (\r\n
    • \r\n {a.name} dispatch(AdventureActions.addCharacterToAdventure(a, character))}>Assign\r\n
    • \r\n );\r\n })}\r\n
    \r\n )}\r\n {adventures.length == 0 && (<>\r\n   You aren't a member of any adventures yet, you can either join an adventure with an invitation link or you can Create Your Own Adventure\r\n )}\r\n \r\n )}\r\n
    \r\n
    \r\n )}\r\n\r\n {adventure && \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {adventure.communalDice[0]}\r\n {adventure.communalDice[1]}\r\n
    \r\n
    \r\n \r\n
    \r\n }\r\n
    \r\n )\r\n}","import React, { useState } from \"react\";\r\nimport { CharacterHelpers, CharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { ThemedButton } from \"../../../../../inputs/buttons/ThemedButton\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../../store/configureStore\";\r\nimport { CharacterItemActions } from \"../../../../../../store/stores/collection/characters/actions/CharacterItemActions\";\r\nimport { ItemHelpers } from \"../../../../../../entities/library/items/Item\";\r\nimport { OwnedItemReference } from \"../../../../../../entities/Ownership\";\r\n\r\ntype Props = {\r\n character: CharacterInitializer;\r\n weapon: OwnedItemReference;\r\n}\r\n\r\ntype State = {\r\n viewReplacements: boolean;\r\n toBeReplaced: OwnedItemReference[];\r\n}\r\n\r\nexport const HeldMover: React.FC = (props: Props) => {\r\n const { character, weapon } = props;\r\n const dispatch = useAppDispatch();\r\n const [state, setState] = useState({\r\n viewReplacements: false,\r\n toBeReplaced: [],\r\n });\r\n\r\n const allItems = useAppSelector(app => app.library.items);\r\n const handsRemaining = CharacterHelpers.MaxHands - state.toBeReplaced.sum(h => ItemHelpers.getTotalHandsUsed(allItems, h));\r\n\r\n const onHoldClick = () => {\r\n if (!character.enforceRules || CharacterHelpers.couldHoldItem(character, allItems, weapon)) {\r\n dispatch(CharacterItemActions.holdItem(character, weapon));\r\n }\r\n else {\r\n setState({ ...state, viewReplacements: true });\r\n }\r\n };\r\n\r\n const onCheckClick = (weapon: OwnedItemReference) => {\r\n if (!state.toBeReplaced.contains(weapon)) {\r\n setState({ ...state, toBeReplaced: [...state.toBeReplaced, weapon]});\r\n }\r\n else {\r\n setState({\r\n ...state,\r\n toBeReplaced: state.toBeReplaced.filter(h => h.instanceId != weapon.instanceId)\r\n });\r\n }\r\n }\r\n\r\n const onReplaceClick = () => {\r\n dispatch(CharacterItemActions.holdItem(character, weapon, state.toBeReplaced));\r\n setState({ ...state, viewReplacements: false, toBeReplaced: [] });\r\n }\r\n \r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n {handsRemaining} hands available.\r\n
    \r\n {character.held.map(held => {\r\n const item = allItems.find(i => i.id == held.id);\r\n if (item == null) {\r\n return null;\r\n }\r\n return (\r\n
    \r\n onCheckClick(held)} />\r\n \r\n
    \r\n )})\r\n }\r\n \r\n Replace\r\n \r\n
    \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { useState } from \"react\";\r\nimport { CharacterHelpers, CharacterInitializer } from \"../../../../../../entities/characters/Character\"\r\nimport { ThemedButton } from \"../../../../../inputs/buttons/ThemedButton\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../../store/configureStore\";\r\nimport { CharacterItemActions } from \"../../../../../../store/stores/collection/characters/actions/CharacterItemActions\";\r\nimport { OwnedItemReference } from \"../../../../../../entities/Ownership\";\r\n\r\ntype Props = { \r\n character: CharacterInitializer;\r\n reference: OwnedItemReference;\r\n}\r\n\r\ntype State = {\r\n viewReplacements: boolean;\r\n toBeReplaced: OwnedItemReference[];\r\n}\r\n\r\nexport const WornMover: React.FC = (props: Props) => {\r\n const { character, reference } = props;\r\n const dispatch = useAppDispatch();\r\n const [state, setState] = useState({\r\n viewReplacements: false,\r\n toBeReplaced: [],\r\n });\r\n\r\n const allItems = useAppSelector(app => app.library.items);\r\n const item = allItems.find(i => i.id == reference.id);\r\n if (item == null) {\r\n throw \"Item not found.\";\r\n }\r\n\r\n const wornCollisions = character.worn\r\n .filter(w => {\r\n const worn = allItems.find(i => i.id == w.id);\r\n if (worn == null) {\r\n return false;\r\n }\r\n return character.enforceRules && worn.wornOn.intersection(item.wornOn).any();\r\n });\r\n const wornCollisionItems = wornCollisions\r\n .map(worn => allItems.find(i => i.id == worn.id))\r\n .filter(worn => worn != null)\r\n \r\n const onWearClick = () => {\r\n if (!character.enforceRules || CharacterHelpers.couldWearItem(character, allItems, reference)) {\r\n dispatch(CharacterItemActions.wearItem(character, reference));\r\n }\r\n else {\r\n setState({ ...state, viewReplacements: true });\r\n }\r\n }\r\n\r\n const onReplaceClick = () => {\r\n dispatch(CharacterItemActions.wearItem(character, reference, state.toBeReplaced));\r\n setState({ ...state, viewReplacements: false });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n
    \r\n Slots to Clear:\r\n
      \r\n {item.wornOn.filter(wo => {\r\n const sum = wornCollisionItems.count(wc => wc.wornOn.includes(wo));\r\n return sum >= CharacterHelpers.getWornLimitForSlot(wo);\r\n })\r\n .map(wo =>
    • {wo}
    • )\r\n }\r\n
    \r\n
    \r\n {wornCollisions.map(wc => {\r\n const item = wornCollisionItems.find(i => i.id == wc.id);\r\n return (\r\n
    \r\n \r\n {item!.name} ({item!.wornOn.join(', ')})\r\n
    \r\n );\r\n })}\r\n \r\n Replace\r\n \r\n
    \r\n \r\n );\r\n}","import './move-item-window.scss';\r\nimport React from \"react\";\r\nimport { CharacterHelpers, CharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { HeldMover } from \"./HeldMover\";\r\nimport { WornMover } from \"./WornMover\";\r\nimport { useAppDispatch, useAppSelector } from '../../../../../../store/configureStore';\r\nimport { CharacterItemActions } from '../../../../../../store/stores/collection/characters/actions/CharacterItemActions';\r\nimport { OwnedItemReference } from '../../../../../../entities/Ownership';\r\nimport { isWeaponInitializer } from '../../../../../../entities/library/items/ItemInitializers';\r\n\r\ntype Props = {\r\n character: CharacterInitializer;\r\n reference: OwnedItemReference;\r\n}\r\n\r\nexport const MoveWindow: React.FC = (props: Props) => {\r\n const dispatch = useAppDispatch();\r\n const { character, reference } = props;\r\n\r\n const items = useAppSelector(app => app.library.items);\r\n const item = items.find(i => i.id == reference.id);\r\n if (item == null) {\r\n throw \"Item not found.\";\r\n }\r\n\r\n const collection = CharacterHelpers.getItemCollection(character, reference);\r\n if (collection == null) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n
    Move to:
    \r\n {collection != 'Held'\r\n && isWeaponInitializer(item)\r\n && }\r\n\r\n {collection != 'Worn'\r\n && item.wornOn.any()\r\n && }\r\n\r\n {collection != 'Loose'\r\n && ()\r\n }\r\n
    \r\n );\r\n}","import './sheet-item.scss';\r\nimport React, { useState } from \"react\"\r\nimport { LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { DeleteIcon, MoveIcon } from '../../../../../icons';\r\nimport { MoveWindow } from './MoveItemWindow';\r\nimport { ExternalClickDetector } from '../../../../../../utils/events/ExternalClickDetector';\r\nimport { Loader } from '../../../../../theming/loader/Loader';\r\nimport { useAppDispatch, useAppSelector } from '../../../../../../store/configureStore';\r\nimport { CharacterSpecificActions } from '../../../../../../store/stores/collection/characters/actions/CharacterSpecificActions';\r\nimport { CharacterItemActions } from '../../../../../../store/stores/collection/characters/actions/CharacterItemActions';\r\nimport { OwnedItemReference } from '../../../../../../entities/Ownership';\r\nimport { ItemHelpers } from '../../../../../../entities/library/items/Item';\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n reference: OwnedItemReference;\r\n}\r\n\r\nexport const SheetItem: React.FC = (props: Props) => {\r\n const { character, reference } = props;\r\n const allItems = useAppSelector(app => app.library.items);\r\n const item = allItems.find(i => i.id == reference.id);\r\n if (item == null) {\r\n throw \"Item not found.\";\r\n }\r\n\r\n const itemSaved = character.pendingProperties[reference.instanceId] == null;\r\n let itemClass = itemSaved ? 'saved' : 'pending';\r\n const dispatch = useAppDispatch();\r\n const [moveOpen, setMoveOpen] = useState(false);\r\n\r\n const onItemClick = () => {\r\n if (itemSaved) {\r\n dispatch(CharacterSpecificActions.setPreviewItem(character, reference.instanceId))\r\n }\r\n }\r\n return (\r\n
    \r\n
    \r\n
    \r\n {!itemSaved && }\r\n {itemSaved && \r\n
    \r\n \r\n {moveOpen && (\r\n setMoveOpen(false)}>\r\n \r\n \r\n )}\r\n
    \r\n }\r\n
    \r\n
    {ItemHelpers.getIcon(item)}
    \r\n
    {ItemHelpers.getName(item, reference)}
    \r\n
    {item.cost}
    \r\n
    {item.weight}
    \r\n
    {ItemHelpers.getTagText(item)}
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { DefaultIcon, DeleteIcon, EditIcon, MoveIcon } from \"../../../../../icons\";\r\n\r\nexport const ColumnNames: React.FC = () => (\r\n
    \r\n
    \r\n
    \r\n
    Name
    \r\n
    Cost
    \r\n
    Weight
    \r\n
    Tags
    \r\n
    \r\n
    \r\n)","import React from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { SheetItem } from \"../../abilities-equipment/sheet-item/SheetItem\";\r\nimport { ColumnNames } from \"../../../character-tools/items/info/ColumnNames\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n}\r\n\r\nexport const HandsEquipped: React.FC = (props: Props) => {\r\n return (\r\n
    \r\n

    Held

    \r\n \r\n
    \r\n );\r\n}\r\n\r\nconst HandContents: React.FC = (props: Props) => {\r\n const hands = props.character.held;\r\n if (hands.length <= 0) {\r\n return
    Nothing in Hand. Wield something to take action.
    ;\r\n }\r\n else {\r\n return (\r\n <>\r\n \r\n {hands.map(weapon => (\r\n \r\n ))}\r\n \r\n );\r\n }\r\n}","import React from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { SheetItem } from \"../../abilities-equipment/sheet-item/SheetItem\";\r\nimport { ColumnNames } from \"../../../character-tools/items/info/ColumnNames\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n}\r\n\r\nexport const InventoryComponent: React.FC = (props: Props) => {\r\n const { character } = props;\r\n const { loose } = character;\r\n return (\r\n
    \r\n

    Inventory

    \r\n {!loose.any() &&
    No Items in Inventory
    }\r\n {loose.any() && }\r\n {loose.map(item => (\r\n \r\n ))}\r\n
    \r\n );\r\n}","import React from \"react\";\r\nimport { CharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { SheetItem } from \"../../abilities-equipment/sheet-item/SheetItem\";\r\nimport { ColumnNames } from \"../../../character-tools/items/info/ColumnNames\";\r\n\r\ntype Props = {\r\n character: CharacterInitializer;\r\n}\r\n\r\nexport const Wearing: React.FC = (props: Props) => (\r\n
    \r\n

    Wearing

    \r\n \r\n
    \r\n)\r\n\r\nconst WearingContents: React.FC = (props: Props) => {\r\n const worn = props.character.worn;\r\n if(worn.length <= 0) {\r\n return
    Nothing Worn
    ;\r\n }\r\n else {\r\n return (\r\n <>\r\n \r\n
    \r\n {worn.map(wornItem => (\r\n \r\n ))}\r\n
    \r\n \r\n );\r\n }\r\n}","import \"./sheet-equipment.scss\";\r\nimport React from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { ThemedButton } from \"../../../../../inputs/buttons/ThemedButton\";\r\nimport { HandsEquipped } from \"./HandsEquipped\";\r\nimport { InventoryComponent } from \"./Inventory\";\r\nimport { Wearing } from \"./Wearing\";\r\nimport { useAppDispatch } from \"../../../../../../store/configureStore\";\r\nimport { CharacterSpecificActions } from \"../../../../../../store/stores/collection/characters/actions/CharacterSpecificActions\";\r\n\r\ntype Props = { character: LocalCharacterInitializer }\r\n\r\nexport const SheetEquipment: React.FC = (props: Props) => {\r\n const { character } = props;\r\n const dispatch = useAppDispatch();\r\n return (\r\n <>\r\n dispatch(CharacterSpecificActions.showItemAdder(character))}>\r\n Add Item\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n );\r\n}","import React from \"react\";\r\nimport { CollapsibleSection } from \"../../../../articles/CollapsibleSection\";\r\nimport { CharacterAbility } from \"../../../../../entities/abilities/Ability\";\r\nimport { MarkdownContainer } from \"../../../../theming/MarkdownContainer\";\r\n\r\ntype Props = {\r\n passives: CharacterAbility[];\r\n}\r\n\r\nexport const Passives = (props: Props) => {\r\n const { passives } = props;\r\n return (\r\n <>\r\n {passives.map(p => {\r\n const header = `${p.name} (${p.source})`;\r\n return (\r\n \r\n \r\n {p.description}\r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n}","import React from \"react\";\r\nimport { CharacterAbilityView } from \"./CharacterAbilityView\";\r\nimport { CharacterAbility } from \"../../../../../entities/abilities/Ability\";\r\nimport { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n reactions: CharacterAbility[];\r\n}\r\n\r\nexport const Reactions = (props: Props) => {\r\n const { character, reactions } = props;\r\n return (\r\n <>\r\n {reactions.unique(r => r.id).map(r => )}\r\n \r\n );\r\n}","import React from \"react\";\r\nimport { BladeIcon, BludgeonIcon, BulletIcon, CellIcon, GrenadeIcon, MineIcon, ShotIcon, SlugIcon, SpikeIcon } from \"../../../../../../icons/items/AmmoIcons\";\r\nimport { JSXChildProps } from \"../../../../../../../entities/utils/jsx/Children\";\r\nimport { ChemistryIcon, ElectronicsIcon, MachineryIcon, MedicineIcon } from \"../../../../../../icons/items/SpellIcons\";\r\n\r\ntype Props = {\r\n tags: string[];\r\n onChange: (tags: string[]) => unknown;\r\n}\r\n\r\nexport const ModEditorTagFilter = (props: Props) => {\r\n const { tags, onChange } = props;\r\n\r\n\r\n const createTagFilterEvent = (tag: string) => {\r\n return () => {\r\n let updatedTags: string[];\r\n if (tags.contains(tag)) {\r\n updatedTags = tags.filter(t => t != tag);\r\n }\r\n else {\r\n updatedTags = [...tags, tag];\r\n }\r\n onChange(updatedTags);\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n  \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n  \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n}\r\n\r\ntype TagButtonProps = {\r\n tag: string;\r\n tags: string[];\r\n createClick: (tag: string) => () => unknown;\r\n} & JSXChildProps;\r\n\r\nconst TagButton = (props: TagButtonProps) => {\r\n const { tag, tags, createClick, children } = props;\r\n const isActiveClass = (tag: string) => tags.contains(tag) ? 'active' : 'inactive';\r\n return (\r\n \r\n )\r\n}","import \"./mod-editor.scss\";\r\nimport React, { useState } from \"react\";\r\nimport { ItemPreviewHeader } from \"../ItemPreviewHeader\";\r\nimport { CharacterHelpers, LocalCharacterInitializer } from \"../../../../../../../entities/characters/Character\";\r\nimport { ItemPreview } from \"../ItemPreview\";\r\nimport { MiniMod } from \"../../../../character-sheet/abilities-equipment/item-editor/slots/MiniModComponent\";\r\nimport { ModInitializer, isModInitializer } from \"../../../../../../../entities/library/items/ItemInitializers\";\r\nimport { BreakdownWindow } from \"../../../../../../theming/breakdown-window\";\r\nimport { CollapsibleSection } from \"../../../../../../articles/CollapsibleSection\";\r\nimport { ThemedButton } from \"../../../../../../inputs/buttons/ThemedButton\";\r\nimport { ModSlotPreview } from \"./ModSlotPreview\";\r\nimport { ModEditorTagFilter } from \"./ModEditorTagFilter\";\r\nimport { RecordStatus } from \"../../../../../../../entities/RecordStatus\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../../../store/configureStore\";\r\nimport { CharacterSpecificActions } from \"../../../../../../../store/stores/collection/characters/actions/CharacterSpecificActions\";\r\nimport { CharacterItemActions } from \"../../../../../../../store/stores/collection/characters/actions/CharacterItemActions\";\r\nimport { OwnedModReference } from \"../../../../../../../entities/Ownership\";\r\nimport { ItemHelpers } from \"../../../../../../../entities/library/items/Item\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n}\r\n\r\ntype State = {\r\n filter: string;\r\n previewSelectionMod?: ModInitializer;\r\n onSelectMod: () => unknown;\r\n}\r\n\r\nexport const ModEditor = (props: Props) => {\r\n const { character } = props;\r\n const dispatch = useAppDispatch();\r\n const [state, setState] = useState({\r\n filter: '',\r\n onSelectMod: () => {}\r\n });\r\n const [filterTags, setFilterTags] = useState([]);\r\n\r\n if (character.previewSlotItemInstanceId == null) {\r\n throw new Error(\"Attempted to render mod editor without item reference to mod.\");\r\n }\r\n\r\n const reference = CharacterHelpers.findItem(character, character.previewSlotItemInstanceId);\r\n if (reference == null) {\r\n throw new Error(\"Item reference to mod could not be found.\");\r\n }\r\n\r\n const allItems = useAppSelector(app => app.library.items);\r\n const item = allItems.find(i => i.id == reference.id);\r\n if (item == null) {\r\n throw \"Backing item not found.\";\r\n }\r\n \r\n const { filter, previewSelectionMod, onSelectMod } = state;\r\n const { previewSlotId, previewSlotItemInstanceId, enforceRules } = character;\r\n\r\n const allMods = allItems.filter(isModInitializer);\r\n const referenceMods = character.activeMods\r\n .filter(m => m.assignedItemId == reference.instanceId);\r\n\r\n const slot = item.slots.first(s => s.id == previewSlotId)\r\n ?? reference.customSlots.first(s => s.id == previewSlotId)\r\n ?? referenceMods\r\n .mapMany(m => {\r\n const mod = allMods.find(om => om.id == m.id);\r\n if (mod == null) {\r\n return [];\r\n }\r\n return mod.slots;\r\n })\r\n .first(s => s.id == previewSlotId);\r\n\r\n if (previewSlotId == null || slot == null || previewSlotItemInstanceId == null || character == null) {\r\n throw new Error(\"Mod editor received nothing to render.\");\r\n }\r\n\r\n const assignedModReference = referenceMods.first(m => m.assignedSlotId == previewSlotId);\r\n const assignedMod = allMods.find(m => m.id == assignedModReference?.id);\r\n\r\n const close = () => {\r\n if (!previewSelectionMod) {\r\n dispatch(CharacterSpecificActions.clearPreviewSlot(character));\r\n }\r\n }\r\n\r\n const modFilter = (mod: ModInitializer) => {\r\n const bodyFilter = !mod.tags.any(t => t == 'Body');\r\n const nameFilter = ItemHelpers.filterByName(mod, filter);\r\n const tagFilter = !filterTags.any() || mod.tags.intersection(filterTags).any();\r\n const legalForCharacter = !enforceRules || CharacterHelpers.isLegalModForCharacter(character, mod);\r\n const legalForSlot = !enforceRules || ItemHelpers.isLegalModForSlot(item, reference, mod, previewSlotId);\r\n const notAlreadyAssigned = mod.id != assignedModReference?.id;\r\n const isPublished = mod.recordStatus == RecordStatus.Published;\r\n\r\n return bodyFilter\r\n && nameFilter\r\n && tagFilter\r\n && legalForCharacter\r\n && legalForSlot\r\n && notAlreadyAssigned\r\n && isPublished;\r\n }\r\n\r\n const legalModsInInventory = CharacterHelpers.getInventory(character)\r\n .filter(m => {\r\n const mod = allMods.find(am => m.id == am.id);\r\n const modReference = (m as OwnedModReference);\r\n return mod != null && modReference.assignedSlotId == null && modFilter(mod);\r\n }) ?? [];\r\n\r\n const createInventoryModClick = (clickedMod: ModInitializer, clickedReference: OwnedModReference) => {\r\n return () => {\r\n setState({\r\n ...state,\r\n previewSelectionMod: clickedMod,\r\n onSelectMod: () => {\r\n close();\r\n dispatch(CharacterItemActions.assignMod(character, reference.instanceId, clickedReference.instanceId, previewSlotId));\r\n }\r\n });\r\n }\r\n }\r\n\r\n const legalModsAvailable = allMods\r\n .filter(m => !legalModsInInventory.any(mii => mii.id == m.id))\r\n .filter(modFilter) ?? [];\r\n\r\n const createAvailableModClick = (clickedMod: ModInitializer) => {\r\n return () => {\r\n setState({\r\n ...state,\r\n previewSelectionMod: clickedMod,\r\n onSelectMod: () => {\r\n close();\r\n dispatch(CharacterItemActions.addAndAssignMod(character, reference, clickedMod, previewSlotId));\r\n }\r\n })\r\n }\r\n }\r\n\r\n const closeModView = () => {\r\n setState({ ...state, previewSelectionMod: undefined });\r\n }\r\n return (\r\n <>\r\n \r\n {assignedModReference && assignedMod &&
    \r\n \r\n Currently Assigned: \r\n \r\n \r\n \r\n
    }\r\n {assignedModReference == undefined && }\r\n \r\n {!slot.slotTypes.any() && setFilterTags(tags)} />}\r\n
    \r\n  \r\n setState({ ...state, filter: e.target.value })} />\r\n
    \r\n\r\n
    \r\n {legalModsInInventory.any() &&\r\n Mods In Inventory}\r\n expandedInitially={legalModsInInventory.any()}\r\n collapsible={legalModsAvailable.any()}>\r\n {legalModsInInventory.map(modReference => {\r\n const mod = allMods.find(m => m.id == modReference.id);\r\n if (mod == null) {\r\n return null;\r\n }\r\n return \r\n })}\r\n }\r\n {legalModsAvailable.any() &&\r\n Mods Not In Inventory}\r\n expandedInitially={!legalModsInInventory.any()}\r\n collapsible={legalModsInInventory.any()}>\r\n {legalModsAvailable.map(modReference => )}\r\n }\r\n
    \r\n
    \r\n \r\n {previewSelectionMod &&\r\n \r\n \r\n \r\n \r\n Assign {previewSelectionMod.name} to Slot\r\n \r\n \r\n }\r\n \r\n )\r\n}","import React from \"react\";\r\nimport { CharacterHelpers, LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { BreakdownWindow } from \"../../../../../theming/breakdown-window\";\r\nimport { ItemPreview } from '../../../character-tools/items/preview/ItemPreview';\r\nimport { ItemPreviewHeader } from '../../../character-tools/items/preview/ItemPreviewHeader';\r\nimport { ModEditor } from '../../../character-tools/items/preview/mods/ModEditor';\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../../store/configureStore\";\r\nimport { CharacterSpecificActions } from \"../../../../../../store/stores/collection/characters/actions/CharacterSpecificActions\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer\r\n}\r\n\r\nexport const ItemEditor: React.FC = (props: Props) => {\r\n const { character } = props;\r\n const dispatch = useAppDispatch();\r\n const { previewItemInstanceId, previewSlotId } = character;\r\n const result = CharacterHelpers.searchItemByInstanceId(character, previewItemInstanceId ?? \"\");\r\n const reference = result?.reference;\r\n\r\n const item = useAppSelector(app => app.library.items.find(i => i.id == reference?.id));\r\n if (item == null || reference == null) {\r\n return null;\r\n }\r\n\r\n const close = () => {\r\n if (previewSlotId == null) {\r\n dispatch(CharacterSpecificActions.clearPreviewItem(character));\r\n }\r\n }\r\n return (\r\n <>\r\n {result && \r\n }\r\n close={close}>\r\n \r\n \r\n }\r\n {result && previewSlotId && previewItemInstanceId &&\r\n \r\n }\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport { DeclarableHands, DeclarableHandType } from \"../../../../../entities/rolls/Roll\";\r\nimport { CollapsibleRegion } from \"../../../../articles/CollapsibleRegion\";\r\nimport { HandTriggerExamplesByName } from \"../../../../figures/Rolls\";\r\nimport { CharacterAbility } from \"../../../../../entities/abilities/Ability\";\r\nimport { CharacterAbilityView } from \"./CharacterAbilityView\";\r\nimport { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n activeAbilities: CharacterAbility[]\r\n}\r\n\r\nexport const ActiveAbilitiesByHandComponent = (props: Props) => {\r\n const { character, activeAbilities } = props;\r\n const declarableHandTypes = Object.values(DeclarableHands);\r\n declarableHandTypes.sort((a, b) => a.value > b.value\r\n ? 1\r\n : a.value < b.value\r\n ? -1\r\n : 0);\r\n return (\r\n <>\r\n {declarableHandTypes.map(dh => )}\r\n \r\n );\r\n}\r\n\r\ntype ActiveAbilitiesForHandProps = {\r\n character: LocalCharacterInitializer;\r\n hand: DeclarableHandType;\r\n activeAbilities: CharacterAbility[];\r\n}\r\n\r\nconst ActiveAbilitiesForHand = (props: ActiveAbilitiesForHandProps) => {\r\n const { character, hand, activeAbilities } = props;\r\n const matchingAbilities = activeAbilities\r\n .filter(saa => saa.handTriggers?.any(ht => ht.handTypes.contains(hand.name)) ?? false)\r\n .unique(saa => saa.id);\r\n if (!matchingAbilities.any()) {\r\n return null;\r\n }\r\n const header = <>{hand.name} (ex. {HandTriggerExamplesByName[hand.name]})\r\n return (\r\n \r\n {matchingAbilities.map(a => )}\r\n \r\n );\r\n}","import { AbilitiesByLevelCollection } from \"../../abilities/AbilitiesByLevelCollection\";\r\nimport { CharacterHelpers, CharacterInitializer } from \"../../characters/Character\";\r\nimport { CreatureType } from \"../../characters/CreatureType\";\r\nimport { OwnedMinionReference } from \"../../Ownership\";\r\n\r\nexport type MinionInitializer = {\r\n id: string;\r\n name: string;\r\n description: string;\r\n creatureTypes: CreatureType[];\r\n baseHealth: number;\r\n healthScale: number;\r\n armor: number;\r\n resilience: number;\r\n featuresByLevel: AbilitiesByLevelCollection[];\r\n}\r\n\r\nexport const DefaultMinionInitializer: MinionInitializer = {\r\n id: '',\r\n name: '',\r\n description: '',\r\n creatureTypes: [],\r\n baseHealth: 1,\r\n healthScale: 1,\r\n armor: 0,\r\n resilience: 0,\r\n featuresByLevel: [],\r\n}\r\n\r\nconst getMaxHealth = (minion: MinionInitializer, character: CharacterInitializer) => {\r\n const reference = character.minions.find(m => m.id == minion.id);\r\n if (reference == null) {\r\n throw \"Minion not found.\";\r\n }\r\n const commandSkillLevel = CharacterHelpers.getSkillLevel(character, 'Command');\r\n return minion.baseHealth + minion.healthScale * commandSkillLevel;\r\n}\r\n\r\nconst getDisplayName = (minion: MinionInitializer, reference: OwnedMinionReference) => {\r\n return reference.customName ?? minion.name;\r\n}\r\n\r\nconst getAcquiredFeatures = (level: number, minion: MinionInitializer) => {\r\n return minion.featuresByLevel.filter(fbl => fbl.level <= level);\r\n}\r\n\r\nconst getActionsForLevel = (minion: MinionInitializer, character: CharacterInitializer) => {\r\n const commandSkillLevel = CharacterHelpers.getSkillLevel(character, 'Command');\r\n return getAcquiredFeatures(commandSkillLevel, minion)\r\n .mapMany(sf => sf.activeAbilities.map(aa => ({ ...aa, source: `${minion.name} ${sf.level}` })));\r\n}\r\n\r\nconst getReactionsForLevel = (minion: MinionInitializer, character: CharacterInitializer) => {\r\n const commandSkillLevel = CharacterHelpers.getSkillLevel(character, 'Command');\r\n return getAcquiredFeatures(commandSkillLevel, minion)\r\n .mapMany(sf => sf.reactiveAbilities.map(aa => ({ ...aa, source: `${minion.name} ${sf.level}` })));\r\n}\r\n\r\nconst getPassivesForLevel = (minion: MinionInitializer, character: CharacterInitializer) => {\r\n const commandSkillLevel = CharacterHelpers.getSkillLevel(character, 'Command');\r\n return getAcquiredFeatures(commandSkillLevel, minion)\r\n .mapMany(sf => sf.passiveAbilities.map(aa => ({ ...aa, source: `${minion.name} ${sf.level}` })));\r\n}\r\n\r\nexport const MinionHelpers = Object.freeze({\r\n getMaxHealth,\r\n getDisplayName,\r\n getActionsForLevel,\r\n getReactionsForLevel,\r\n getPassivesForLevel,\r\n})","import { CharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { MinionHelpers, MinionInitializer } from \"../../../../../entities/library/minions/Minion\";\r\nimport { OwnedMinionReference } from \"../../../../../entities/Ownership\";\r\nimport { ErrorToast, SuccessToast } from \"../../../../../entities/toasts/Toasts\";\r\nimport { getUniqueIdentifier } from \"../../../../../utils/GUID\";\r\nimport { ApiDefaultState } from \"../../../api/ApiStore.State\";\r\nimport { AppThunkAction } from \"../../../ApplicationState\";\r\nimport { ToastAction, ToastDispatchables } from \"../../../toasts/Toasts.Actions\";\r\n\r\nexport type CharacterSaveMinion = { type: 'CHARACTER_SAVE_MINION', characterId: string, oldInstanceId: string, newInstanceId: string }\r\nexport type CharacterUpdateMinion = { type: 'CHARACTER_UPDATE_MINION', characterId: string, reference: OwnedMinionReference }\r\nexport type CharacterAddMinion = { type: 'CHARACTER_ADD_MINION', characterId: string, reference: OwnedMinionReference }\r\nexport type CharacterRemoveMinion = { type: 'CHARACTER_REMOVE_MINION', characterId: string, minionInstanceId: string }\r\n\r\nexport type CharacterMinionAction = CharacterSaveMinion\r\n | CharacterUpdateMinion\r\n | CharacterAddMinion\r\n | CharacterRemoveMinion;\r\n\r\nexport const CharacterMinionActions = {\r\n updateMinionHealth: (character: CharacterInitializer, minion: OwnedMinionReference, newHealth: number): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n\r\n const oldVersion = { ...minion };\r\n const newVersion = { ...minion, currentHealth: newHealth };\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_UPDATE_MINION', characterId: character.id, reference: oldVersion });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error updating minion health.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_UPDATE_MINION', characterId: character.id, reference: newVersion });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.updateMinion(character.id, oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n addMinion: (character: CharacterInitializer, minion: MinionInitializer): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const instanceId = getUniqueIdentifier();\r\n\r\n const commandSkill = character.skills.find(s => s.name == 'Command');\r\n if (commandSkill == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast('Command skill not found!'), dispatch);\r\n return;\r\n }\r\n\r\n const currentHealth = minion.baseHealth + commandSkill.level * minion.healthScale;\r\n const placeholder = { ...minion, instanceId, currentHealth, saved: false };\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_REMOVE_MINION', characterId: character.id, minionInstanceId: instanceId });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error adding minion.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_ADD_MINION', characterId: character.id, reference: placeholder });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.addMinion(character.id, minion.id);\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'CHARACTER_SAVE_MINION', characterId: character.id, newInstanceId: response.payload, oldInstanceId: instanceId });\r\n ToastDispatchables.toastLegacy(new SuccessToast(`${minion.name} recruited.`), dispatch);\r\n }\r\n else {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n removeMinion: (character: CharacterInitializer, reference: OwnedMinionReference): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const minions = getState().library.minions;\r\n const minion = minions.find(m => m.id == reference.id);\r\n if (minion == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"That minion doesn't exist.\"), dispatch);\r\n return;\r\n }\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_ADD_MINION', characterId: character.id, reference });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error removing minion.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_REMOVE_MINION', characterId: character.id, minionInstanceId: reference.instanceId });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.removeMinion(character.id, reference.instanceId);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n else {\r\n ToastDispatchables.toastLegacy(new SuccessToast(`${MinionHelpers.getDisplayName(minion, reference)} removed.`), dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n updateMinionCustomName: (character: CharacterInitializer, reference: OwnedMinionReference, newCustomName: string | undefined): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const oldVersion = { ...reference };\r\n const newVersion = { ...reference, customName: newCustomName };\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_UPDATE_MINION', characterId: character.id, reference: oldVersion });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error updating minion name.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_UPDATE_MINION', characterId: character.id, reference: newVersion });\r\n try {\r\n const response = await ApiDefaultState.characters.updateMinion(character.id, oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n updateMinionCustomNotes: (character: CharacterInitializer, reference: OwnedMinionReference, newCustomNotes: string | undefined): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const oldVersion = { ...reference };\r\n const newVersion = { ...reference, customNotes: newCustomNotes };\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_UPDATE_MINION', characterId: character.id, reference: oldVersion });\r\n ToastDispatchables.toastLegacy(new ErrorToast('Error updating minion notes.'), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_UPDATE_MINION', characterId: character.id, reference: newVersion });\r\n try {\r\n const response = await ApiDefaultState.characters.updateMinion(character.id, oldVersion, newVersion);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n }\r\n}","import \"./minion-listing.scss\";\r\nimport React, { useRef, useState } from \"react\";\r\nimport { CharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { EditIcon } from \"../../../../../icons\";\r\nimport { ExternalClickDetector } from \"../../../../../../utils/events/ExternalClickDetector\";\r\nimport { ThemedButton } from \"../../../../../inputs/buttons/ThemedButton\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../../store/configureStore\";\r\nimport { OwnedMinionReference } from \"../../../../../../entities/Ownership\";\r\nimport { MinionHelpers } from \"../../../../../../entities/library/minions/Minion\";\r\nimport { CharacterMinionActions } from \"../../../../../../store/stores/collection/characters/actions/CharacterMinionActions\";\r\n\r\ntype Props = {\r\n reference: OwnedMinionReference;\r\n character: CharacterInitializer;\r\n onClick?: () => unknown\r\n}\r\n\r\nexport const MinionListing = (props: Props) => {\r\n const { reference, character, onClick } = props;\r\n const minions = useAppSelector(app => app.library.minions);\r\n const enforceRules = useAppSelector(app => app.sheet.enforceRules);\r\n const [editing, setEditing] = useState(false);\r\n const [changeBy, setChangeBy] = useState(0);\r\n\r\n const dispatch = useAppDispatch();\r\n\r\n\r\n const minion = minions.find(m => m.id == reference.id);\r\n if (minion == null) {\r\n throw \"Minion not found.\";\r\n }\r\n\r\n const ref = useRef(null);\r\n const tryClick = (event: React.MouseEvent) => {\r\n const target = event.target;\r\n if (onClick\r\n && target instanceof Node\r\n && !ref.current?.contains(target)) {\r\n onClick();\r\n }\r\n }\r\n\r\n const maintainHealthRange = (newHealth: number) => {\r\n if (enforceRules) {\r\n newHealth = Math.max(newHealth, 0);\r\n newHealth = Math.min(newHealth, MinionHelpers.getMaxHealth(minion, character));\r\n }\r\n return newHealth;\r\n }\r\n\r\n const onHeal = () => {\r\n let newHealth = reference.currentHealth + changeBy;\r\n newHealth = maintainHealthRange(newHealth);\r\n dispatch(CharacterMinionActions.updateMinionHealth(character, reference, newHealth));\r\n setEditing(false);\r\n }\r\n\r\n const onHurt = () => {\r\n let newHealth = reference.currentHealth - changeBy;\r\n newHealth = maintainHealthRange(newHealth);\r\n dispatch(CharacterMinionActions.updateMinionHealth(character, reference, newHealth));\r\n setEditing(false);\r\n }\r\n\r\n const onChange = (e: React.ChangeEvent) => {\r\n const changeBy = parseInt(e.target.value);\r\n if (!isNaN(changeBy)) {\r\n setChangeBy(changeBy);\r\n }\r\n }\r\n\r\n const displayName = reference.customName ?? minion.name;\r\n const displayCreatureTypes = minion.creatureTypes.join(', ');\r\n return (\r\n
    \r\n
    {displayName} ({displayCreatureTypes})
    \r\n
    \r\n \r\n \r\n {reference.currentHealth} / {MinionHelpers.getMaxHealth(minion, character)}\r\n \r\n {editing &&\r\n setEditing(false)}>\r\n
    \r\n Update Health\r\n
    \r\n
    \r\n \r\n Heal\r\n \r\n \r\n \r\n Hurt\r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n )\r\n}","import \"./minion-preview.scss\";\r\nimport React from \"react\";\r\nimport { CharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { CollapsibleRegion } from \"../../../../../articles/CollapsibleRegion\";\r\nimport { CharacterAbilityView } from \"../CharacterAbilityView\";\r\nimport { useAppSelector } from \"../../../../../../store/configureStore\";\r\n\r\ntype Props = {\r\n character: CharacterInitializer;\r\n minionId: string;\r\n expanded?: boolean;\r\n}\r\n\r\nexport const MinionPreview = (props: Props) => {\r\n const { minionId } = props;\r\n const minions = useAppSelector(app => app.library.minions);\r\n const minion = minions.find(m => m.id == minionId);\r\n if (minion == null) {\r\n throw \"Minion not found.\";\r\n }\r\n \r\n const { description, creatureTypes, baseHealth, healthScale,\r\n armor, resilience, featuresByLevel } = minion;\r\n\r\n const hasActionsByLevel = featuresByLevel.mapMany(fbl => fbl.activeAbilities).any();\r\n\r\n const hasReactionsByLevel = featuresByLevel.mapMany(fbl => fbl.reactiveAbilities).any();\r\n\r\n const hasPassivesByLevel = featuresByLevel.mapMany(fbl => fbl.passiveAbilities).any();\r\n\r\n const innateAbilities = featuresByLevel.filter(fbl => fbl.level <= 1);\r\n const leveledAbilities = featuresByLevel.filter(fbl => fbl.level > 1);\r\n return (\r\n
    \r\n
     {creatureTypes.join(\", \")}
    \r\n
     {description}
    \r\n
    \r\n {baseHealth}\r\n {healthScale} per command\r\n {armor}\r\n {resilience}\r\n
    \r\n
    \r\n {hasActionsByLevel && \r\n <>\r\n

    Actions

    \r\n {innateAbilities.mapMany(a => a.activeAbilities.map((aa, index) => ))}\r\n {leveledAbilities.map(abl => (\r\n \r\n {abl.activeAbilities.map(a => )}\r\n \r\n ))}\r\n \r\n }\r\n {hasReactionsByLevel && \r\n <>\r\n

    Reactions

    \r\n {innateAbilities.mapMany(a => a.reactiveAbilities.map((ra, index) => ))}\r\n {leveledAbilities.map(rbl => (\r\n \r\n {rbl.reactiveAbilities.map(a => )}\r\n \r\n ))}\r\n \r\n }\r\n {hasPassivesByLevel && \r\n <>\r\n

    Passive Abilities

    \r\n {innateAbilities.map(a => a.passiveAbilities.map((pa, index) => ))}\r\n {leveledAbilities.map(pbl => (\r\n \r\n {pbl.passiveAbilities.map(p => )}\r\n \r\n ))}\r\n \r\n }\r\n
    \r\n
    \r\n )\r\n}","import React, { useEffect } from \"react\"\r\nimport { CharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { BreakdownWindow } from \"../../../../../theming/breakdown-window\"\r\nimport { LibraryActions } from \"../../../../../../store/stores/library/LibraryStore.Actions\";\r\nimport { MinionPreview } from \"./MinionPreview\";\r\nimport { ThemedButton } from \"../../../../../inputs/buttons/ThemedButton\";\r\nimport { CollapsibleSection } from \"../../../../../articles/CollapsibleSection\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../../store/configureStore\";\r\nimport { CharacterMinionActions } from \"../../../../../../store/stores/collection/characters/actions/CharacterMinionActions\";\r\n\r\ntype Props = {\r\n character: CharacterInitializer;\r\n visible: boolean;\r\n close: () => unknown;\r\n}\r\n\r\nexport const MinionPicker = (props: Props) => {\r\n const { character, visible, close } = props;\r\n const { minions, allMinionsLoaded } = useAppSelector(app => app.library);\r\n const dispatch = useAppDispatch();\r\n\r\n useEffect(() => {\r\n if (!allMinionsLoaded) {\r\n dispatch(LibraryActions.loadMinions());\r\n }\r\n }, [dispatch, allMinionsLoaded]);\r\n\r\n return (\r\n Grow Your Horde}>\r\n {minions.map(m => (\r\n {m.name} ({m.creatureTypes.join(', ')})}>\r\n \r\n {\r\n dispatch(CharacterMinionActions.addMinion(character, m));\r\n close();\r\n }}>\r\n Recruit\r\n \r\n \r\n ))}\r\n \r\n )\r\n}","import React, { useRef, useState } from \"react\";\r\nimport { CharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { EditIcon } from \"../../../../../icons\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../../store/configureStore\";\r\nimport { OwnedMinionReference } from \"../../../../../../entities/Ownership\";\r\nimport { MinionHelpers } from \"../../../../../../entities/library/minions/Minion\";\r\nimport { CharacterMinionActions } from \"../../../../../../store/stores/collection/characters/actions/CharacterMinionActions\";\r\n\r\ntype Props = {\r\n character: CharacterInitializer;\r\n reference: OwnedMinionReference;\r\n}\r\n\r\nexport const MinionPreviewHeader = (props: Props) => {\r\n const { character, reference } = props;\r\n const dispatch = useAppDispatch();\r\n const inputRef = useRef(null);\r\n const [editing, setEditing] = useState(false);\r\n\r\n const minions = useAppSelector(app => app.library.minions);\r\n const minion = minions.find(m => m.id == reference.id);\r\n const [customName, setCustomName] = useState(reference.customName);\r\n if (minion == null) {\r\n throw \"Attempt to preview nonexistent minion.\"\r\n }\r\n return (\r\n
    \r\n {editing && <>\r\n setCustomName(e.target.value)}\r\n onBlur={(e) => {\r\n dispatch(CharacterMinionActions.updateMinionCustomName(character, reference, e.target.value));\r\n setEditing(false);\r\n }} />\r\n  \r\n \r\n }\r\n ({minion.name}) \r\n {MinionHelpers.getDisplayName(minion, reference)} \r\n\r\n \r\n
    \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { CharacterHelpers, LocalCharacterInitializer } from \"../../../../../../entities/characters/Character\";\r\nimport { ThemedButton } from \"../../../../../inputs/buttons/ThemedButton\";\r\nimport { MinionListing } from \"./MinionListing\";\r\nimport { MinionPicker } from \"./MinionPicker\";\r\nimport { BreakdownWindow } from \"../../../../../theming/breakdown-window\";\r\nimport { MinionPreview } from \"./MinionPreview\";\r\nimport { MinionPreviewHeader } from \"./MinionPreviewHeader\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../../../store/configureStore\";\r\nimport { OwnedMinionReference } from \"../../../../../../entities/Ownership\";\r\nimport { CharacterMinionActions } from \"../../../../../../store/stores/collection/characters/actions/CharacterMinionActions\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n references: OwnedMinionReference[];\r\n}\r\n\r\nexport const HordeComponent = (props: Props) => {\r\n const { character, references } = props;\r\n const minions = useAppSelector(app => app.library.minions);\r\n\r\n const [showPicker, setPickerVisibility] = useState(false);\r\n const [previewMinionInstanceId, setPreviewMinionInstanceId] = useState(null);\r\n const dispatch = useAppDispatch();\r\n const close = () => setPreviewMinionInstanceId(null);\r\n const previewMinion = character.minions.find(m => m.instanceId == previewMinionInstanceId);\r\n const removeMinion = () => {\r\n const previewMinion = character.minions.find(m => m.instanceId == previewMinionInstanceId);\r\n if (previewMinion == null) {\r\n return;\r\n }\r\n dispatch(CharacterMinionActions.removeMinion(character, previewMinion));\r\n close();\r\n }\r\n return (\r\n <>\r\n setPickerVisibility(true)}\r\n disabled={references.length >= CharacterHelpers.getMaxHordeSize(character)}>\r\n Add Minion\r\n \r\n {references.map(ref => {\r\n const minion = minions.find(m => m.id == ref.id);\r\n if (minion == null) {\r\n console.error(\"Minion not found.\");\r\n return null;\r\n }\r\n return setPreviewMinionInstanceId(ref.instanceId)} />;\r\n })}\r\n\r\n setPickerVisibility(false)} />\r\n\r\n {previewMinion &&\r\n } close={close}>\r\n \r\n \r\n Remove Minion\r\n \r\n \r\n }\r\n \r\n );\r\n}","import React, { useState } from \"react\";\r\nimport { CharacterAbility } from \"../../../../../entities/abilities/Ability\"\r\nimport { CharacterAbilityView } from \"./CharacterAbilityView\";\r\nimport { ThemedButton } from \"../../../../inputs/buttons/ThemedButton\";\r\nimport { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n abilities: CharacterAbility[];\r\n}\r\n\r\nexport const CharacterAbilitiesView = (props: Props) => {\r\n const { character, abilities } = props;\r\n\r\n const [expandeds, setExpandeds] = useState(abilities.map(_ => false));\r\n const createSetExpanded = (index: number) => {\r\n return (expanded: boolean) => {\r\n expandeds.splice(index, 1, expanded)\r\n setExpandeds([...expandeds]);\r\n }\r\n }\r\n const allExpanded = expandeds.every(e => e)\r\n const toggleAll = () => setExpandeds(abilities.map(_ => !allExpanded));\r\n return (\r\n <>\r\n
    \r\n \r\n {!allExpanded && \"Expand All\"}\r\n {allExpanded && \"Collapse All\"}\r\n \r\n
    \r\n {abilities.map((a, index) => (\r\n \r\n ))}\r\n \r\n )\r\n}","import './sheet-main-section.scss';\r\nimport React, { useState } from \"react\";\r\nimport { CharacterHelpers, LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { DiceHandsIcon, AttacksIcon, SpellsIcon, FeaturesIcon, EquipmentIcon, PassivesIcon, ReactionsIcon, MinionsIcon } from \"../../../../icons\";\r\nimport { ThemedRadio } from \"../../../../inputs/radio/ThemedRadio\";\r\nimport { SheetEquipment } from \"./equipment/SheetEquipment\";\r\nimport { Passives } from \"./Passives\";\r\nimport { Reactions } from \"./Reactions\";\r\nimport { ItemEditor } from '../abilities-equipment/item-editor';\r\nimport { ActiveAbilitiesByHandComponent } from './ActiveAbilitiesByHandComponent';\r\nimport { HordeComponent } from './minions/Horde';\r\nimport { CharacterAbilitiesView } from './CharacterAbilitiesView';\r\nimport { useAppSelector } from '../../../../../store/configureStore';\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n viewOnMobile: boolean;\r\n}\r\n\r\nexport const SheetMainSection: React.FC = (props: Props) => {\r\n const { character, viewOnMobile } = props;\r\n const { items: allItems, perks: allPerks, skills: allSkills } = useAppSelector(app => app.library);\r\n\r\n const EquipmentViewOption = {\r\n name: 'Equipment',\r\n display: \r\n }\r\n \r\n const HandViewOption = {\r\n name: 'Roll Actions',\r\n display: \r\n }\r\n\r\n const actions = CharacterHelpers.getActions(character, allItems, allPerks, allSkills);\r\n const attacks = actions.filter(ca => ca.type == 'Attack');\r\n const spells = actions.filter(ca => ca.type == 'Spell');\r\n const reactions = CharacterHelpers.getReactions(character, allItems, allPerks, allSkills);\r\n const passives = CharacterHelpers.getPassives(character, allItems, allPerks, allSkills);\r\n const features = CharacterHelpers.getFeatures(character, allPerks, allSkills);\r\n \r\n const AttackViewOption = {\r\n name: 'Attacks',\r\n display: ,\r\n disabled: !attacks.any()\r\n }\r\n \r\n const SpellViewOption = {\r\n name: 'Spells',\r\n display: ,\r\n disabled: !spells.any()\r\n }\r\n \r\n const FeaturesViewOption = {\r\n name: 'Features',\r\n display: ,\r\n disabled: !features.any()\r\n }\r\n \r\n const PassivesViewOption = {\r\n name: 'Passives',\r\n display: ,\r\n disabled: !passives.any()\r\n }\r\n \r\n const ReactionsViewOption = {\r\n name: 'Reactions',\r\n display: ,\r\n disabled: !reactions.any()\r\n }\r\n\r\n const MinionsViewOption = {\r\n name: 'Horde',\r\n display: ,\r\n disabled: CharacterHelpers.getMaxHordeSize(character) <= 0\r\n }\r\n \r\n const DisplayOptions = [\r\n EquipmentViewOption,\r\n HandViewOption,\r\n AttackViewOption,\r\n SpellViewOption,\r\n FeaturesViewOption,\r\n ReactionsViewOption,\r\n PassivesViewOption,\r\n MinionsViewOption,\r\n ];\r\n \r\n const [viewStyle, setViewStyle] = useState(EquipmentViewOption.name);\r\n let selected;\r\n for (let element of DisplayOptions) {\r\n if (element.name == viewStyle) {\r\n selected = element;\r\n break;\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n setViewStyle(selected.name)} showName />\r\n\r\n
    \r\n {viewStyle == EquipmentViewOption.name && }\r\n {viewStyle == HandViewOption.name && }\r\n {viewStyle == AttackViewOption.name && }\r\n {viewStyle == SpellViewOption.name && }\r\n {viewStyle == FeaturesViewOption.name && }\r\n {viewStyle == PassivesViewOption.name && }\r\n {viewStyle == ReactionsViewOption.name && }\r\n {viewStyle == MinionsViewOption.name && }\r\n
    \r\n \r\n
    \r\n );\r\n}","import { ErrorToast } from \"../../../../../entities/toasts/Toasts\";\r\nimport { ApiDefaultState } from \"../../../api/ApiStore.State\";\r\nimport { AppThunkAction } from \"../../../ApplicationState\";\r\nimport { ToastAction, ToastDispatchables } from \"../../../toasts/Toasts.Actions\";\r\n\r\nexport type CharacterAddCondition = { type: 'CHARACTER_ADD_CONDITION', characterId: string, conditionId: string }\r\nexport type CharacterRemoveCondition = { type: 'CHARACTER_REMOVE_CONDITION', characterId: string, conditionId: string }\r\n\r\nexport type CharacterConditionAction = CharacterAddCondition | CharacterRemoveCondition;\r\n\r\nexport const CharacterConditionActions = {\r\n addCondition: (characterId: string, conditionId: string): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const conditions = getState().library.conditions;\r\n const condition = conditions.find(c => c.id == conditionId);\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_REMOVE_CONDITION', characterId, conditionId });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error adding ${condition?.name ?? \"unknown condition\"}.`), dispatch);\r\n }\r\n\r\n dispatch({ type: 'CHARACTER_ADD_CONDITION', characterId, conditionId });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.addCondition(characterId, conditionId);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n removeCondition: (characterId: string, conditionId: string): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const conditions = getState().library.conditions;\r\n const condition = conditions.find(c => c.id == conditionId);\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_ADD_CONDITION', characterId, conditionId });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error removing ${condition?.name ?? \"unknown condition\"}.`), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_REMOVE_CONDITION', characterId, conditionId });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.removeCondition(characterId, conditionId);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n }\r\n}","import React, { useEffect } from \"react\";\r\nimport { useState } from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../entities/characters/Character\"\r\nimport { Condition } from \"../../../../entities/characters/Conditions\";\r\nimport { CollapsibleSection } from \"../../../articles/CollapsibleSection\";\r\nimport { BreakdownWindow } from \"../../../theming/breakdown-window\";\r\nimport { ThemedCheckbox } from '../../../inputs/checkbox/ThemedCheckbox';\r\nimport { LibraryActions } from \"../../../../store/stores/library/LibraryStore.Actions\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../store/configureStore\";\r\nimport { CharacterConditionActions } from \"../../../../store/stores/collection/characters/actions/CharacterConditionActions\";\r\nimport { NamedEntitySort } from \"../../../../entities/NamedEntity\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n}\r\n\r\ntype State = {\r\n editing: boolean;\r\n filter: string;\r\n}\r\n\r\nexport const SheetConditions: React.FC = (props: Props) => {\r\n const { character } = props;\r\n const dispatch = useAppDispatch();\r\n const { conditions, allConditionsLoaded } = useAppSelector(app => app.library);\r\n const characterConditions = conditions.filter(c => character.conditions.contains(c.id));\r\n characterConditions.sort(NamedEntitySort);\r\n\r\n useEffect(() => {\r\n if (!allConditionsLoaded) {\r\n dispatch(LibraryActions.loadConditions());\r\n }\r\n }, [dispatch, allConditionsLoaded]);\r\n\r\n const [state, setState] = useState({\r\n filter: '',\r\n editing: false,\r\n });\r\n\r\n return (\r\n
    \r\n \r\n \r\n Manage Conditions} visible={state.editing}\r\n close={() => setState({ ...state, editing: false })}>\r\n
    \r\n  \r\n setState({ ...state, filter: e.target.value })}/>\r\n
    \r\n {conditions.map(c => (\r\n }>\r\n

    {c.description}

    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\ntype HeaderProps = { character: LocalCharacterInitializer, condition: Condition }\r\nconst ConditionHeader: React.FC = (props: HeaderProps) => {\r\n const { character, condition } = props;\r\n const dispatch = useAppDispatch();\r\n const conditionOnCharacter = character.conditions.any(c => c == condition.id);\r\n\r\n const toggle = (checked: boolean) => {\r\n if (checked) {\r\n dispatch(CharacterConditionActions.addCondition(character.id, condition.id));\r\n }\r\n else {\r\n dispatch(CharacterConditionActions.removeCondition(character.id, condition.id));\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n {condition.name}\r\n \r\n \r\n )\r\n}","import { CharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { PerkInitializer } from \"../../../../../entities/library/perks/Perk\";\r\nimport { OwnedReference } from \"../../../../../entities/Ownership\";\r\nimport { ErrorToast, InfoToast } from \"../../../../../entities/toasts/Toasts\";\r\nimport { getUniqueIdentifier } from \"../../../../../utils/GUID\";\r\nimport { ApiDefaultState } from \"../../../api/ApiStore.State\";\r\nimport { AppThunkAction } from \"../../../ApplicationState\";\r\nimport { ToastAction, ToastDispatchables } from \"../../../toasts/Toasts.Actions\";\r\n\r\nexport type CharacterSavePerk = { type: 'CHARACTER_SAVE_PERK', characterId: string, reference: OwnedReference };\r\nexport type CharacterAddPerk = { type: 'CHARACTER_ADD_PERK', characterId: string, reference: OwnedReference };\r\nexport type CharacterRemovePerk = { type: 'CHARACTER_REMOVE_PERK', characterId: string, perkInstanceId: string };\r\n\r\nexport type CharacterPerkAction = CharacterSavePerk | CharacterAddPerk | CharacterRemovePerk;\r\n\r\nexport const CharacterPerkActions = {\r\n addPerk: (character: CharacterInitializer, perk: PerkInitializer): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const instanceId = getUniqueIdentifier();\r\n const placeholder = { ...perk, instanceId };\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_REMOVE_PERK', characterId: character.id, perkInstanceId: instanceId });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error adding ${perk.name}.`), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_ADD_PERK', characterId: character.id, reference: placeholder });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.addPerk(character.id, perk.id);\r\n if (response.status == 'Success') {\r\n dispatch({ type: 'CHARACTER_SAVE_PERK', characterId: character.id, reference: { ...perk, instanceId: response.payload } });\r\n ToastDispatchables.toastLegacy(new InfoToast(`${perk.name} added.`), dispatch);\r\n }\r\n else {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n removePerk: (character: CharacterInitializer, reference: OwnedReference): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const perk = getState().library.perks.find(p => p.id == reference.id);\r\n if (perk == null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(\"Backing perk not found.\"), dispatch);\r\n return;\r\n }\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_ADD_PERK', characterId: character.id, reference });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error removing ${perk.name}.`), dispatch);\r\n }\r\n dispatch({ type: 'CHARACTER_REMOVE_PERK', characterId: character.id, perkInstanceId: reference.instanceId });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.removePerk(character.id, reference.id);\r\n if (response.status == 'Success') {\r\n ToastDispatchables.toastLegacy(new InfoToast(`${perk.name} removed.`), dispatch);\r\n }\r\n else {\r\n undo();\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n }\r\n}","import React, { useEffect, useState } from \"react\";\r\nimport { LocalCharacterInitializer } from \"../../../../entities/characters/Character\";\r\nimport { PerkInitializer } from \"../../../../entities/library/perks/Perk\";\r\nimport { LibraryActions } from \"../../../../store/stores/library/LibraryStore.Actions\";\r\nimport { CollapsibleSection } from \"../../../articles/CollapsibleSection\";\r\nimport { ThemedCheckbox } from \"../../../inputs/checkbox/ThemedCheckbox\";\r\nimport { BreakdownWindow } from \"../../../theming/breakdown-window\";\r\nimport { MarkdownContainer } from \"../../../theming/MarkdownContainer\";\r\nimport { useAppDispatch, useAppSelector } from \"../../../../store/configureStore\";\r\nimport { CharacterPerkActions } from \"../../../../store/stores/collection/characters/actions/CharacterPerkActions\";\r\nimport { NamedEntitySort } from \"../../../../entities/NamedEntity\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n}\r\n\r\ntype State = {\r\n editing: boolean;\r\n filter: string;\r\n}\r\n\r\nexport const SheetPerks = (props: Props) => {\r\n const { character } = props;\r\n const dispatch = useAppDispatch();\r\n const { perks, allPerksLoaded } = useAppSelector(app => app.library);\r\n\r\n const [state, setState] = useState({\r\n editing: false,\r\n filter: ''\r\n });\r\n const { editing, filter } = state;\r\n\r\n useEffect(() => {\r\n if (!allPerksLoaded) {\r\n dispatch(LibraryActions.loadPerks());\r\n }\r\n }, [dispatch, allPerksLoaded]);\r\n\r\n const remainingPerks = Math.max(0, Math.floor(character.level / 2 - character.perks.length));\r\n const perksPlural = remainingPerks != 1;\r\n\r\n const disabled = character.level <= 1;\r\n\r\n const characterPerks = character.perks.map(ref => perks.find(p => p.id == ref.id)).filter(p => p != null);\r\n characterPerks.sort(NamedEntitySort);\r\n return (\r\n
    \r\n \r\n Manage Perks} visible={editing} close={() => setState({ ...state, editing: false })}>\r\n {remainingPerks} perk{perksPlural && 's'} can still be assigned.\r\n
    \r\n  \r\n setState({ ...state, filter: e.target.value })} />\r\n
    \r\n {perks.map(p => (\r\n }>\r\n {p.description}\r\n \r\n ))}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\ntype HeaderProps = {\r\n character: LocalCharacterInitializer;\r\n perk: PerkInitializer;\r\n}\r\n\r\nconst PerkHeader = (props: HeaderProps) => {\r\n const { character, perk } = props;\r\n const dispatch = useAppDispatch();\r\n const reference = character.perks.find(p => p.id == perk.id);\r\n\r\n const toggle = (checked: boolean) => {\r\n if (checked) {\r\n dispatch(CharacterPerkActions.addPerk(character, perk));\r\n }\r\n else {\r\n dispatch(CharacterPerkActions.removePerk(character, reference!));\r\n }\r\n }\r\n\r\n const checked = reference != null;\r\n const noMoreAssignmentsPossible = character.perks.length >= Math.floor(character.level / 2);\r\n return (\r\n <>\r\n {perk.name}\r\n \r\n \r\n );\r\n}","import { CustomCompetencyInitializer, CompetencyHelpers } from \"../../../../../entities/characters/Competencies\";\r\nimport { OwnedCompetencyReference } from \"../../../../../entities/Ownership\";\r\nimport { ErrorToast, SuccessToast } from \"../../../../../entities/toasts/Toasts\";\r\nimport { ApiDefaultState } from \"../../../api/ApiStore.State\";\r\nimport { AppThunkAction } from \"../../../ApplicationState\";\r\nimport { ToastAction, ToastDispatchables } from \"../../../toasts/Toasts.Actions\";\r\nimport { CharacterSetEntityPending } from \"./CharacterSpecificActions\";\r\n\r\nexport type CharacterAddCompetency = { type: 'CHARACTER_ADD_COMPETENCY', characterId: string, reference: OwnedCompetencyReference }\r\nexport type CharacterAddCustomCompetency = { type: 'CHARACTER_ADD_CUSTOM_COMPETENCY', characterId: string, competency: CustomCompetencyInitializer }\r\nexport type CharacterRemoveCompetency = { type: 'CHARACTER_REMOVE_COMPETENCY', characterId: string, competencyId: string }\r\nexport type CharacterSetCompetencyLevel = { type: 'CHARACTER_SET_COMPETENCY_LEVEL', characterId: string, competencyId: string, isExpert: boolean }\r\nexport type CharacterSaveCompetency = { type: 'CHARACTER_SAVE_COMPETENCY', characterId: string, competencyId: string }\r\nexport type CharacterSaveCustomCompetency = { type: 'CHARACTER_SAVE_CUSTOM_COMPETENCY', characterId: string, oldCompetencyId: string, newCompetencyId: string }\r\n\r\nexport type CharacterCompetencyAction = CharacterAddCompetency\r\n | CharacterAddCustomCompetency\r\n | CharacterRemoveCompetency\r\n | CharacterSetCompetencyLevel\r\n | CharacterSaveCompetency\r\n | CharacterSaveCustomCompetency;\r\n\r\nexport const CharacterCompetencyActions = {\r\n addCompetency: (characterId: string, competencyId: string): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const competencies = getState().library.competencies;\r\n const competency = competencies.find(c => c.id == competencyId);\r\n if (competency == null) {\r\n throw \"Attempted to add a non-existent competency to a character.\";\r\n }\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_REMOVE_COMPETENCY', characterId, competencyId });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error adding ${competency.name}.`), dispatch);\r\n }\r\n\r\n const reference: OwnedCompetencyReference = {\r\n id: competencyId,\r\n isExpert: false,\r\n }\r\n dispatch({ type: 'CHARACTER_ADD_COMPETENCY', characterId, reference });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.addCompetency(characterId, competencyId);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n return;\r\n }\r\n dispatch({ type: 'CHARACTER_SAVE_COMPETENCY', characterId, competencyId });\r\n ToastDispatchables.toastLegacy(new SuccessToast(`${competency.name} added.`), dispatch);\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n addCustomCompetency: (characterId: string, competency: CustomCompetencyInitializer): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_REMOVE_COMPETENCY', characterId, competencyId: competency.id });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error adding ${competency.name}.`), dispatch);\r\n }\r\n\r\n dispatch({ type: 'CHARACTER_ADD_CUSTOM_COMPETENCY', characterId, competency });\r\n try {\r\n const response = await ApiDefaultState.characters.addCustomCompetency(characterId, competency);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n return;\r\n }\r\n dispatch({ type: 'CHARACTER_SAVE_CUSTOM_COMPETENCY', characterId: characterId, oldCompetencyId: competency.id, newCompetencyId: response.payload });\r\n ToastDispatchables.toastLegacy(new SuccessToast(`${competency.name} added.`), dispatch);\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n removeCompetency: (characterId: string, competencyId: string): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const characters = getState().character.characters;\r\n const character = characters.find(c => c.id == characterId);\r\n if (character == null) {\r\n throw \"Attempted to remove competency from nonexistent character.\";\r\n }\r\n\r\n const undo = () => {\r\n const customCompetency = character.customCompetencies.find(c => c.id == competencyId);\r\n const reference = character.competencies.find(c => c.id == competencyId);\r\n\r\n if (customCompetency != null) {\r\n dispatch({ type: 'CHARACTER_ADD_CUSTOM_COMPETENCY', characterId, competency: customCompetency });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error removing ${customCompetency.name}.`), dispatch);\r\n return;\r\n }\r\n else if (reference != null) {\r\n const competency = getState().library.competencies.find(c => c.id == competencyId);\r\n dispatch({ type: 'CHARACTER_ADD_COMPETENCY', characterId, reference });\r\n\r\n if (competency != null) {\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error removing ${competency.name}`), dispatch);\r\n }\r\n }\r\n }\r\n\r\n dispatch({ type: 'CHARACTER_REMOVE_COMPETENCY', characterId, competencyId });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.removeCompetency(character.id, competencyId);\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n },\r\n\r\n updateCompetencyLevel: (characterId: string, competencyId: string, isExpert: boolean): AppThunkAction =>\r\n async (dispatch, getState) => {\r\n const characters = getState().character.characters;\r\n const character = characters.find(c => c.id == characterId);\r\n\r\n if (character == null) {\r\n throw \"Attempted to update competency for nonexistent character.\";\r\n }\r\n\r\n const competencies = getState().library.competencies;\r\n const competency = competencies.find(c => c.id == competencyId);\r\n if (competency == null) {\r\n throw \"Attempted to update a nonexistent competency.\";\r\n }\r\n\r\n const reference = character.competencies.find(c => c.id == competencyId);\r\n if (reference == null) {\r\n throw \"Competency not found on character.\";\r\n }\r\n\r\n const customCompetency = character.customCompetencies.find(cc => cc.id == competencyId);\r\n const competencyName = CompetencyHelpers.getName(competency, customCompetency);\r\n\r\n const characterCompetencyReference = character.competencies.find(c => c.id == competencyId);\r\n const oldIsExpert = characterCompetencyReference?.isExpert ?? customCompetency?.isExpert ?? false;\r\n\r\n const undo = () => {\r\n dispatch({ type: 'CHARACTER_SET_COMPETENCY_LEVEL', characterId, competencyId, isExpert: oldIsExpert });\r\n ToastDispatchables.toastLegacy(new ErrorToast(`Error updating ${competencyName}.`), dispatch);\r\n }\r\n\r\n dispatch({ type: 'CHARACTER_SET_COMPETENCY_LEVEL', characterId, competencyId, isExpert });\r\n\r\n try {\r\n const response = await ApiDefaultState.characters.updateCompetency(character.id, reference, { ...reference, isExpert });\r\n if (response.status == 'Error') {\r\n undo();\r\n ToastDispatchables.toastValidationResults(response.validationResults, dispatch);\r\n }\r\n }\r\n catch (e) {\r\n undo();\r\n console.error(e);\r\n }\r\n finally {\r\n dispatch({ type: 'CHARACTER_SET_PENDING', characterId, entityId: reference.id, pending: false });\r\n }\r\n }\r\n}","import React, { useState } from \"react\"\r\nimport { CustomCompetencyInitializer, CompetencyCategory, CompetencyCategoryOptions, DefaultCompetency } from \"../../../../../entities/characters/Competencies\"\r\nimport { ThemedCheckbox } from \"../../../../inputs/checkbox/ThemedCheckbox\";\r\nimport { SingleSelect } from \"../../../../inputs/selects/singleselect/SingleSelect\";\r\nimport { ThemedButton } from \"../../../../inputs/buttons/ThemedButton\";\r\nimport { LocalCharacterInitializer } from \"../../../../../entities/characters/Character\";\r\nimport { getUniqueIdentifier } from \"../../../../../utils/GUID\";\r\nimport { useAppDispatch } from \"../../../../../store/configureStore\";\r\nimport { CharacterCompetencyActions } from \"../../../../../store/stores/collection/characters/actions/CharacterCompetencyActions\";\r\n\r\ntype Props = {\r\n character: LocalCharacterInitializer;\r\n close: () => unknown;\r\n}\r\n\r\nexport const CustomCompetencyCreator = (props: Props) => {\r\n const { character, close } = props;\r\n const dispatch = useAppDispatch();\r\n const [state, setState] = useState({ ...DefaultCompetency, id: getUniqueIdentifier() });\r\n const add = () => {\r\n dispatch(CharacterCompetencyActions.addCustomCompetency(character.id, state));\r\n setState({ ...DefaultCompetency });\r\n close();\r\n }\r\n return (\r\n
    \r\n Add Custom Competency\r\n
    \r\n  \r\n setState({ ...state, name: e.target.value })} />\r\n
    \r\n
    \r\n  \r\n