Initial setup of frontend and backend
This commit is contained in:
1
frontend/src/types/index.ts
Normal file
1
frontend/src/types/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export * from './rules'
|
||||
96
frontend/src/types/rules.ts
Normal file
96
frontend/src/types/rules.ts
Normal 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',
|
||||
},
|
||||
]
|
||||
Reference in New Issue
Block a user