refine ranged combat
This commit is contained in:
@@ -303,28 +303,34 @@ export const RELOAD_STATES: ModifierRow[] = [
|
||||
{ id: 'fast_reload_bow', name: 'Schnellladen', modifier: -1, skill: 'archery' }
|
||||
];
|
||||
|
||||
function resolveModifierRaw(
|
||||
row: ModifierRow,
|
||||
expertise: Expertise
|
||||
): number | string {
|
||||
return expertise === 'master' && row.modifier_master !== undefined
|
||||
? row.modifier_master
|
||||
: expertise === 'expert' && row.modifier_expert !== undefined
|
||||
? row.modifier_expert
|
||||
: row.modifier;
|
||||
}
|
||||
|
||||
/** Anzeige-Label für Dropdown-Optionen (berücksichtigt Scharfschütze/Meisterschütze). */
|
||||
export function formatModifierLabel(row: ModifierRow, expertise: Expertise): string {
|
||||
const m = resolveModifierRaw(row, expertise);
|
||||
return `${row.name} (${m})`;
|
||||
}
|
||||
|
||||
export function resolveNumericModifier(
|
||||
row: ModifierRow | undefined,
|
||||
expertise: Expertise
|
||||
): number | null {
|
||||
if (!row) return null;
|
||||
const raw =
|
||||
expertise === 'master' && row.modifier_master !== undefined
|
||||
? row.modifier_master
|
||||
: expertise === 'expert' && row.modifier_expert !== undefined
|
||||
? row.modifier_expert
|
||||
: row.modifier;
|
||||
const raw = resolveModifierRaw(row, expertise);
|
||||
if (typeof raw === 'number') return raw;
|
||||
return null;
|
||||
}
|
||||
|
||||
export function isStringModifier(row: ModifierRow | undefined, expertise: Expertise): boolean {
|
||||
if (!row) return false;
|
||||
const raw =
|
||||
expertise === 'master' && row.modifier_master !== undefined
|
||||
? row.modifier_master
|
||||
: expertise === 'expert' && row.modifier_expert !== undefined
|
||||
? row.modifier_expert
|
||||
: row.modifier;
|
||||
return typeof raw === 'string';
|
||||
return typeof resolveModifierRaw(row, expertise) === 'string';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user