Files
dsa-ranger/src/lib/rules/abilities.ts
T
2026-05-16 21:35:35 +02:00

110 lines
1.9 KiB
TypeScript

import type { RangedWeaponId } from '$lib/rules/weapons-ranged';
/** Abilities (Sonderfertigkeiten, extensible); modifiers for melee and ranged combat */
export type AbilityDef = {
id: string;
name: string;
at_mod: number;
pa_mod: number;
fk_mod: number;
/** Nur für Talentspezialisierung: FK-Mod gilt nur für diese Fernkampfwaffe */
weapon_type?: RangedWeaponId;
};
export const ABILITIES: AbilityDef[] = [
{
id: 'evade_1',
name: 'Ausweichen I',
at_mod: 0,
pa_mod: 0,
fk_mod: 0
},
{
id: 'evade_2',
name: 'Ausweichen II',
at_mod: 0,
pa_mod: 0,
fk_mod: 0
},
{
id: 'evade_3',
name: 'Ausweichen III',
at_mod: 0,
pa_mod: 0,
fk_mod: 0
},
{
id: 'sniper',
name: 'Scharfschütze',
at_mod: 0,
pa_mod: 0,
fk_mod: 0
},
{
id: 'marksman',
name: 'Meisterschütze',
at_mod: 0,
pa_mod: 0,
fk_mod: 0
},
{
id: 'fast_reload',
name: 'Schnellladen',
at_mod: 0,
pa_mod: 0,
fk_mod: 0
},
{
id: 'specialize_elven_bow',
name: 'Talentspezialisierung Bogen (Elfenbogen)',
at_mod: 0,
pa_mod: 0,
fk_mod: 2,
weapon_type: 'elven_bow'
},
{
id: 'specialize_composite_bow',
name: 'Talentspezialisierung Bogen (Kompositbogen)',
at_mod: 0,
pa_mod: 0,
fk_mod: 2,
weapon_type: 'composite_bow'
},
{
id: 'specialize_warbow',
name: 'Talentspezialisierung Bogen (Kriegsbogen)',
at_mod: 0,
pa_mod: 0,
fk_mod: 2,
weapon_type: 'warbow'
},
{
id: 'specialize_shortbow',
name: 'Talentspezialisierung Bogen (Kurzbogen)',
at_mod: 0,
pa_mod: 0,
fk_mod: 2,
weapon_type: 'shortbow'
},
{
id: 'specialize_longbow',
name: 'Talentspezialisierung Bogen (Langbogen)',
at_mod: 0,
pa_mod: 0,
fk_mod: 2,
weapon_type: 'longbow'
},
{
id: 'specialize_orc_bow',
name: 'Talentspezialisierung Bogen (Ork. Reiterbogen)',
at_mod: 0,
pa_mod: 0,
fk_mod: 2,
weapon_type: 'orc_bow'
}
];
export function getAbility(id: string): AbilityDef | undefined {
return ABILITIES.find((s) => s.id === id);
}