Initial setup of frontend and backend

This commit is contained in:
Julian Tabel
2026-02-04 17:13:58 +01:00
parent 259c200d93
commit 6ee53a0533
72 changed files with 5687 additions and 0 deletions

View File

@@ -0,0 +1 @@
export * from './rules'

View File

@@ -0,0 +1,96 @@
export interface NuzlockeRules {
// Core rules
firstEncounterOnly: boolean
permadeath: boolean
nicknameRequired: boolean
duplicatesClause: boolean
shinyClause: boolean
// Difficulty modifiers
hardcoreMode: boolean
levelCaps: boolean
setModeOnly: boolean
}
export const DEFAULT_RULES: NuzlockeRules = {
// Core rules - standard Nuzlocke
firstEncounterOnly: true,
permadeath: true,
nicknameRequired: true,
duplicatesClause: true,
shinyClause: true,
// Difficulty modifiers - off by default
hardcoreMode: false,
levelCaps: false,
setModeOnly: false,
}
export interface RuleDefinition {
key: keyof NuzlockeRules
name: string
description: string
category: 'core' | 'difficulty'
}
export const RULE_DEFINITIONS: RuleDefinition[] = [
// Core rules
{
key: 'firstEncounterOnly',
name: 'First Encounter Only',
description:
'You may only catch the first Pokémon encountered in each area. If you fail to catch it, you get nothing from that area.',
category: 'core',
},
{
key: 'permadeath',
name: 'Permadeath',
description:
'If a Pokémon faints, it is considered dead and must be released or permanently boxed.',
category: 'core',
},
{
key: 'nicknameRequired',
name: 'Nickname Required',
description:
'All caught Pokémon must be given a nickname to form a stronger bond.',
category: 'core',
},
{
key: 'duplicatesClause',
name: 'Duplicates Clause',
description:
'If your first encounter is a species you already own (alive or dead), you may skip it and try again until you find something new.',
category: 'core',
},
{
key: 'shinyClause',
name: 'Shiny Clause',
description:
'Shiny Pokémon may always be caught, regardless of whether they are your first encounter.',
category: 'core',
},
// Difficulty modifiers
{
key: 'hardcoreMode',
name: 'Hardcore Mode',
description:
'No items may be used during battle. Held items are still allowed.',
category: 'difficulty',
},
{
key: 'levelCaps',
name: 'Level Caps',
description:
"Your Pokémon cannot exceed the level of the next Gym Leader's highest-level Pokémon before challenging them.",
category: 'difficulty',
},
{
key: 'setModeOnly',
name: 'Set Mode Only',
description:
'The game must be played in "Set" battle style, meaning you cannot switch Pokémon after knocking out an opponent.',
category: 'difficulty',
},
]