Files
Genarrative/tmp_character_presets_scan.txt
高物 c49c64896a
Some checks failed
CI / verify (push) Has been cancelled
初始仓库迁移
2026-04-04 23:57:06 +08:00

497 lines
41 KiB
Plaintext

src\\data\\characterPresets.ts:1:import { buildThemedSkillName } from '../services/customWorldPresentation';
src\\data\\characterPresets.ts:2:import { detectCustomWorldThemeMode } from '../services/customWorldTheme';
src\\data\\characterPresets.ts:22:} from '../types';
src\\data\\characterPresets.ts:23:import { normalizeBuildTags } from './buildTags';
src\\data\\characterPresets.ts:24:import characterOverridesJson from './characterOverrides.json';
src\\data\\characterPresets.ts:25:import { deriveCustomWorldCharacterCombatTags } from './customWorldBuildTags';
src\\data\\characterPresets.ts:29:} from './customWorldCharacterLoadout';
src\\data\\characterPresets.ts:30:import { getRuntimeCustomWorldProfile, isCustomWorldType } from './customWorldRuntime';
src\\data\\characterPresets.ts:54:if (/直率|强硬|果决|大胆|主动/u.test(text)) return 'blunt';
src\\data\\characterPresets.ts:55:if (/冷静|敏锐|耐心|谨慎|警觉/u.test(text)) return 'wary';
src\\data\\characterPresets.ts:56:if (/圆滑|轻快|机敏|狡黠|试探/u.test(text)) return 'evasive';
src\\data\\characterPresets.ts:57:return 'measured';
src\\data\\characterPresets.ts:61:if (/温和|照应|体贴|柔和/u.test(text)) return 'gentle';
src\\data\\characterPresets.ts:62:if (/轻快|松弛|玩笑|洒脱/u.test(text)) return 'teasing';
src\\data\\characterPresets.ts:63:if (/冷静|冷淡|寡言/u.test(text)) return 'dry';
src\\data\\characterPresets.ts:64:return 'steady';
src\\data\\characterPresets.ts:68:if (/直率|强硬|果决|直接/u.test(text)) return 'direct';
src\\data\\characterPresets.ts:69:if (/敏锐|谨慎|耐心|沉稳|纪律/u.test(text)) return 'fragmented';
src\\data\\characterPresets.ts:70:return 'deflecting';
src\\data\\characterPresets.ts:75:guardStyle: inferGuardStyle(text),
src\\data\\characterPresets.ts:76:warmStyle: inferWarmStyle(text),
src\\data\\characterPresets.ts:77:truthStyle: inferTruthStyle(text),
src\\data\\characterPresets.ts:83:source: 'animation' as const,
src\\data\\characterPresets.ts:101:source: 'asset' as const,
src\\data\\characterPresets.ts:115:name: string;
src\\data\\characterPresets.ts:124:type KnownCharacterGender = Exclude<NonNullable<Character['gender']>, 'unknown'>;
src\\data\\characterPresets.ts:126:export type CharacterPresetOverride = Partial<Omit<Character, 'attributes' | 'skills' | 'animationMap' | 'gender'>> & {
src\\data\\characterPresets.ts:128:attributes?: Partial<Character['attributes']>;
src\\data\\characterPresets.ts:171:actionMode: 'idle',
src\\data\\characterPresets.ts:179:'sword-princess',
src\\data\\characterPresets.ts:180:'archer-hero',
src\\data\\characterPresets.ts:181:'girl-hero',
src\\data\\characterPresets.ts:182:'punch-hero',
src\\data\\characterPresets.ts:183:'fighter-4',
src\\data\\characterPresets.ts:187:'sword-princess': 'female',
src\\data\\characterPresets.ts:188:'archer-hero': 'male',
src\\data\\characterPresets.ts:189:'girl-hero': 'female',
src\\data\\characterPresets.ts:190:'punch-hero': 'male',
src\\data\\characterPresets.ts:191:'fighter-4': 'male',
src\\data\\characterPresets.ts:194:function pickKnownCharacterGender(...candidates: Array<Character['gender'] | undefined>): KnownCharacterGender | null {
src\\data\\characterPresets.ts:196:if (candidate === 'male' || candidate === 'female') {
src\\data\\characterPresets.ts:205:...candidates: Array<Character['gender'] | undefined>
src\\data\\characterPresets.ts:223:encounter: Pick<Encounter, 'characterId' | 'context' | 'npcName'>,
src\\data\\characterPresets.ts:232:return getCharacterById('archer-hero');
src\\data\\characterPresets.ts:235:return getCharacterById('fighter-4');
src\\data\\characterPresets.ts:238:return getCharacterById('punch-hero');
src\\data\\characterPresets.ts:241:return getCharacterById('girl-hero');
src\\data\\characterPresets.ts:244:return getCharacterById('sword-princess');
src\\data\\characterPresets.ts:249:?? 'sword-princess';
src\\data\\characterPresets.ts:257:const toRarityLabel = (rarity: InventoryItem['rarity'] | undefined) => ({
src\\data\\characterPresets.ts:263:}[rarity ?? 'rare']);
src\\data\\characterPresets.ts:279:rarity: toRarityLabel(starterEquipment.relic?.rarity ?? 'epic'),
src\\data\\characterPresets.ts:290:'sword-princess': [
src\\data\\characterPresets.ts:291:{ slot: '武器', item: '王庭剑', rarity: '稀有' },
src\\data\\characterPresets.ts:292:{ slot: '护甲', item: '王庭轻甲', rarity: '稀有' },
src\\data\\characterPresets.ts:293:{ slot: '饰品', item: '皇室徽章', rarity: '史诗' },
src\\data\\characterPresets.ts:295:'archer-hero': [
src\\data\\characterPresets.ts:296:{ slot: '武器', item: '流风弓', rarity: '稀有' },
src\\data\\characterPresets.ts:297:{ slot: '护甲', item: '风行者皮甲', rarity: '稀有' },
src\\data\\characterPresets.ts:298:{ slot: '饰品', item: '鹰眼石', rarity: '史诗' },
src\\data\\characterPresets.ts:300:'girl-hero': [
src\\data\\characterPresets.ts:301:{ slot: '武器', item: '双影刃', rarity: '稀有' },
src\\data\\characterPresets.ts:302:{ slot: '护甲', item: '疾影轻甲', rarity: '稀有' },
src\\data\\characterPresets.ts:303:{ slot: '饰品', item: '敏捷徽章', rarity: '史诗' },
src\\data\\characterPresets.ts:305:'punch-hero': [
src\\data\\characterPresets.ts:306:{ slot: '武器', item: '破军拳套', rarity: '稀有' },
src\\data\\characterPresets.ts:307:{ slot: '护甲', item: '刚岩护甲', rarity: '稀有' },
src\\data\\characterPresets.ts:308:{ slot: '饰品', item: '力量护符', rarity: '史诗' },
src\\data\\characterPresets.ts:310:'fighter-4': [
src\\data\\characterPresets.ts:311:{ slot: '武器', item: '玄甲战刃', rarity: '稀有' },
src\\data\\characterPresets.ts:312:{ slot: '护甲', item: '玄铁甲', rarity: '稀有' },
src\\data\\characterPresets.ts:313:{ slot: '饰品', item: '守护徽章', rarity: '史诗' },
src\\data\\characterPresets.ts:318:{ slot: '未知', item: '空缺', rarity: '普通' },
src\\data\\characterPresets.ts:319:{ slot: '未知', item: '空缺', rarity: '普通' },
src\\data\\characterPresets.ts:320:{ slot: '未知', item: '空缺', rarity: '普通' },
src\\data\\characterPresets.ts:328:name: item.name,
src\\data\\characterPresets.ts:344:{ category: '消耗品', name: worldItem, quantity: 6 },
src\\data\\characterPresets.ts:345:{ category: '消耗品', name: '治疗药水', quantity: 4 },
src\\data\\characterPresets.ts:346:{ category: '稀有品', name: '神秘卷轴', quantity: 1 },
src\\data\\characterPresets.ts:347:{ category: '专属品', name: `${character.name}的信物`, quantity: 2 },
src\\data\\characterPresets.ts:348:{ category: '材料', name: '精炼石', quantity: 9 },
src\\data\\characterPresets.ts:354:id: 'sword-princess',
src\\data\\characterPresets.ts:355:name: '剑之公主',
src\\data\\characterPresets.ts:356:title: '王庭剑姬',
src\\data\\characterPresets.ts:357:gender: 'female',
src\\data\\characterPresets.ts:358:description: '以迅疾剑技和正面压制见长,适合喜欢凌厉推进的玩家。',
src\\data\\characterPresets.ts:360:avatar: 'SP',
src\\data\\characterPresets.ts:361:portrait: '/character/Sword%20Princess/Original/Hero/idle/Idle01.png',
src\\data\\characterPresets.ts:362:assetFolder: 'Sword Princess',
src\\data\\characterPresets.ts:363:assetVariant: 'Original',
src\\data\\characterPresets.ts:366:[AnimationState.IDLE]: { folder: 'idle', prefix: 'Idle', frames: 4 },
src\\data\\characterPresets.ts:367:[AnimationState.ACQUIRE]: { folder: 'acquire', prefix: 'acquire', frames: 1, extension: 'PNG', file: 'acquire.PNG' },
src\\data\\characterPresets.ts:368:[AnimationState.ATTACK]: { folder: 'attack', prefix: 'attack', frames: 6 },
src\\data\\characterPresets.ts:369:[AnimationState.RUN]: { folder: 'run', prefix: 'Run', frames: 8 },
src\\data\\characterPresets.ts:370:[AnimationState.JUMP]: { folder: 'jump', prefix: 'jump', frames: 3 },
src\\data\\characterPresets.ts:371:[AnimationState.DOUBLE_JUMP]: { folder: 'Double Jump', prefix: 'Double Jump', frames: 3 },
src\\data\\characterPresets.ts:372:[AnimationState.JUMP_ATTACK]: { folder: 'jump attack', prefix: 'jump attack', frames: 6 },
src\\data\\characterPresets.ts:373:[AnimationState.DASH]: { folder: 'dash', prefix: 'dash', frames: 2 },
src\\data\\characterPresets.ts:374:[AnimationState.HURT]: { folder: 'hurt', prefix: 'hurt', frames: 2 },
src\\data\\characterPresets.ts:375:[AnimationState.DIE]: { folder: 'die', prefix: 'Die', frames: 8 },
src\\data\\characterPresets.ts:376:[AnimationState.CLIMB]: { folder: 'climb', prefix: 'Climb', frames: 8 },
src\\data\\characterPresets.ts:377:[AnimationState.SKILL1]: { folder: 'skill1', prefix: 'skill1', frames: 7 },
src\\data\\characterPresets.ts:378:[AnimationState.SKILL1_JUMP]: { folder: 'skill1 jump', prefix: 'skill1 jump', frames: 7 },
src\\data\\characterPresets.ts:379:[AnimationState.SKILL2]: { folder: 'skill2', prefix: 'skill2', frames: 5 },
src\\data\\characterPresets.ts:380:[AnimationState.SKILL2_JUMP]: { folder: 'skill2 jump', prefix: 'skill2 jump', frames: 5 },
src\\data\\characterPresets.ts:381:[AnimationState.SKILL3]: { folder: 'skill3', prefix: 'strike', frames: 3 },
src\\data\\characterPresets.ts:382:[AnimationState.WALL_SLIDE]: { folder: 'Wall Slide', prefix: 'Wall Slide', frames: 1 },
src\\data\\characterPresets.ts:386:conversationStyle: conversationStyle({
src\\data\\characterPresets.ts:387:guardStyle: 'blunt',
src\\data\\characterPresets.ts:388:warmStyle: 'dry',
src\\data\\characterPresets.ts:389:truthStyle: 'direct',
src\\data\\characterPresets.ts:410:defineSkill({ id: 'sword-princess-skill1', name: '王庭疾斩', animation: AnimationState.SKILL1, damage: 18, manaCost: 8, cooldownTurns: 1, range: 1.6, style: 'steady' }),
src\\data\\characterPresets.ts:411:defineSkill({ id: 'sword-princess-skill1-jump', name: '凌空追刃', animation: AnimationState.SKILL1_JUMP, damage: 22, manaCost: 12, cooldownTurns: 2, range: 1.9, style: 'mobility' }),
src\\data\\characterPresets.ts:413:id: 'sword-princess-skill2',
src\\data\\characterPresets.ts:414:name: '裂阵横斩',
src\\data\\characterPresets.ts:420:style: 'steady',
src\\data\\characterPresets.ts:423:phase: 'impact',
src\\data\\characterPresets.ts:424:anchor: 'target',
src\\data\\characterPresets.ts:425:sequence: assetSequence('FX/cross', { prefix: 'cross', frames: 2 }),
src\\data\\characterPresets.ts:431:phase: 'impact',
src\\data\\characterPresets.ts:432:anchor: 'target',
src\\data\\characterPresets.ts:433:sequence: assetSequence('FX/cross_explose', { prefix: 'cross_explose', frames: 5 }),
src\\data\\characterPresets.ts:441:id: 'sword-princess-skill2-jump',
src\\data\\characterPresets.ts:442:name: '跃空断锋',
src\\data\\characterPresets.ts:448:style: 'burst',
src\\data\\characterPresets.ts:451:phase: 'impact',
src\\data\\characterPresets.ts:452:anchor: 'target',
src\\data\\characterPresets.ts:453:sequence: assetSequence('FX/cross', { prefix: 'cross', frames: 2 }),
src\\data\\characterPresets.ts:459:phase: 'impact',
src\\data\\characterPresets.ts:460:anchor: 'target',
src\\data\\characterPresets.ts:461:sequence: assetSequence('FX/cross_explose', { prefix: 'cross_explose', frames: 5 }),
src\\data\\characterPresets.ts:469:id: 'sword-princess-skill3',
src\\data\\characterPresets.ts:470:name: '王庭裁决',
src\\data\\characterPresets.ts:476:style: 'finisher',
src\\data\\characterPresets.ts:477:delivery: 'ranged',
src\\data\\characterPresets.ts:481:phase: 'travel',
src\\data\\characterPresets.ts:482:anchor: 'caster',
src\\data\\characterPresets.ts:483:motion: 'projectile',
src\\data\\characterPresets.ts:484:sequence: assetSequence('FX/wolf skill', { prefix: 'wolf skill', frames: 13 }),
src\\data\\characterPresets.ts:491:phase: 'impact',
src\\data\\characterPresets.ts:492:anchor: 'target',
src\\data\\characterPresets.ts:493:sequence: assetSequence('FX/cross', { prefix: 'cross', frames: 2 }),
src\\data\\characterPresets.ts:499:phase: 'impact',
src\\data\\characterPresets.ts:500:anchor: 'target',
src\\data\\characterPresets.ts:501:sequence: assetSequence('FX/cross_explose', { prefix: 'cross_explose', frames: 5 }),
src\\data\\characterPresets.ts:511:id: 'archer-hero',
src\\data\\characterPresets.ts:512:name: '神箭游侠',
src\\data\\characterPresets.ts:513:title: '流风弓卫',
src\\data\\characterPresets.ts:514:gender: 'male',
src\\data\\characterPresets.ts:515:description: '擅长远距离压制与精准射击,节奏灵活,机动性很强。',
src\\data\\characterPresets.ts:517:avatar: 'AH',
src\\data\\characterPresets.ts:518:portrait: '/character/Archer%20Hero/Original/Hero/idle/idle01.png',
src\\data\\characterPresets.ts:519:assetFolder: 'Archer Hero',
src\\data\\characterPresets.ts:520:assetVariant: 'Original',
src\\data\\characterPresets.ts:523:[AnimationState.ACQUIRE]: { folder: 'acquire', prefix: 'acquire', frames: 1 },
src\\data\\characterPresets.ts:524:[AnimationState.IDLE]: { folder: 'idle', prefix: 'idle', frames: 4 },
src\\data\\characterPresets.ts:525:[AnimationState.ATTACK]: { folder: 'attack', prefix: 'attack', frames: 6 },
src\\data\\characterPresets.ts:526:[AnimationState.RUN]: { folder: 'run', prefix: 'run', frames: 8 },
src\\data\\characterPresets.ts:527:[AnimationState.JUMP]: { folder: 'jump', prefix: 'jump', frames: 3 },
src\\data\\characterPresets.ts:528:[AnimationState.DOUBLE_JUMP]: { folder: 'double jump', prefix: 'double jump', frames: 3 },
src\\data\\characterPresets.ts:529:[AnimationState.JUMP_ATTACK]: { folder: 'jump attack', prefix: 'jump attack', frames: 6 },
src\\data\\characterPresets.ts:530:[AnimationState.DASH]: { folder: 'dash', prefix: 'dash', frames: 2 },
src\\data\\characterPresets.ts:531:[AnimationState.HURT]: { folder: 'hurt', prefix: 'hurt', frames: 3 },
src\\data\\characterPresets.ts:532:[AnimationState.DIE]: { folder: 'die', prefix: 'die', frames: 8 },
src\\data\\characterPresets.ts:533:[AnimationState.CLIMB]: { folder: 'climb', prefix: 'Climb', frames: 8 },
src\\data\\characterPresets.ts:534:[AnimationState.SKILL1]: { folder: 'skill1', prefix: 'skill1', frames: 10 },
src\\data\\characterPresets.ts:535:[AnimationState.SKILL1_JUMP]: { folder: 'skill1 jump', prefix: 'skill1 jump', frames: 10 },
src\\data\\characterPresets.ts:536:[AnimationState.SKILL2]: { folder: 'skill2', prefix: 'skill2', frames: 8 },
src\\data\\characterPresets.ts:537:[AnimationState.SKILL2_JUMP]: { folder: 'skill2 jump', prefix: 'skill2 jump', frames: 8 },
src\\data\\characterPresets.ts:538:[AnimationState.SKILL3]: { folder: 'skill3', prefix: 'skill3', frames: 5, startFrame: 1 },
src\\data\\characterPresets.ts:539:[AnimationState.WALL_SLIDE]: { folder: 'wallslide', prefix: 'wallslide', frames: 1 },
src\\data\\characterPresets.ts:543:conversationStyle: conversationStyle({
src\\data\\characterPresets.ts:544:guardStyle: 'wary',
src\\data\\characterPresets.ts:545:warmStyle: 'dry',
src\\data\\characterPresets.ts:546:truthStyle: 'fragmented',
src\\data\\characterPresets.ts:568:id: 'archer-hero-skill1',
src\\data\\characterPresets.ts:569:name: '裂风连矢',
src\\data\\characterPresets.ts:575:style: 'steady',
src\\data\\characterPresets.ts:576:delivery: 'ranged',
src\\data\\characterPresets.ts:580:phase: 'travel',
src\\data\\characterPresets.ts:581:anchor: 'caster',
src\\data\\characterPresets.ts:582:motion: 'projectile',
src\\data\\characterPresets.ts:583:sequence: assetSequence('FX/arrow', { file: 'arrow.PNG' }),
src\\data\\characterPresets.ts:590:phase: 'impact',
src\\data\\characterPresets.ts:591:anchor: 'target',
src\\data\\characterPresets.ts:592:sequence: assetSequence('FX/arrow disappear', { prefix: 'arrow disappear', frames: 5 }),
src\\data\\characterPresets.ts:600:id: 'archer-hero-skill1-jump',
src\\data\\characterPresets.ts:601:name: '腾空散射',
src\\data\\characterPresets.ts:607:style: 'mobility',
src\\data\\characterPresets.ts:608:delivery: 'ranged',
src\\data\\characterPresets.ts:612:phase: 'travel',
src\\data\\characterPresets.ts:613:anchor: 'caster',
src\\data\\characterPresets.ts:614:motion: 'projectile',
src\\data\\characterPresets.ts:615:sequence: assetSequence('FX/arrow', { file: 'arrow.PNG' }),
src\\data\\characterPresets.ts:622:phase: 'impact',
src\\data\\characterPresets.ts:623:anchor: 'target',
src\\data\\characterPresets.ts:624:sequence: assetSequence('FX/arrow disappear', { prefix: 'arrow disappear', frames: 5 }),
src\\data\\characterPresets.ts:632:id: 'archer-hero-skill2',
src\\data\\characterPresets.ts:633:name: '穿云贯射',
src\\data\\characterPresets.ts:639:style: 'projectile',
src\\data\\characterPresets.ts:640:delivery: 'ranged',
src\\data\\characterPresets.ts:644:phase: 'travel',
src\\data\\characterPresets.ts:645:anchor: 'caster',
src\\data\\characterPresets.ts:646:motion: 'projectile',
src\\data\\characterPresets.ts:647:sequence: assetSequence('FX/arrow', { file: 'arrow.PNG' }),
src\\data\\characterPresets.ts:654:phase: 'impact',
src\\data\\characterPresets.ts:655:anchor: 'target',
src\\data\\characterPresets.ts:656:sequence: assetSequence('FX/arrow disappear', { prefix: 'arrow disappear', frames: 5 }),
src\\data\\characterPresets.ts:664:id: 'archer-hero-skill2-jump',
src\\data\\characterPresets.ts:665:name: '踏风落箭',
src\\data\\characterPresets.ts:671:style: 'mobility',
src\\data\\characterPresets.ts:672:delivery: 'ranged',
src\\data\\characterPresets.ts:676:phase: 'travel',
src\\data\\characterPresets.ts:677:anchor: 'caster',
src\\data\\characterPresets.ts:678:motion: 'projectile',
src\\data\\characterPresets.ts:679:sequence: assetSequence('FX/arrow', { file: 'arrow.PNG' }),
src\\data\\characterPresets.ts:686:phase: 'impact',
src\\data\\characterPresets.ts:687:anchor: 'target',
src\\data\\characterPresets.ts:688:sequence: assetSequence('FX/arrow disappear', { prefix: 'arrow disappear', frames: 5 }),
src\\data\\characterPresets.ts:696:id: 'archer-hero-skill3',
src\\data\\characterPresets.ts:697:name: '流星绝射',
src\\data\\characterPresets.ts:703:style: 'finisher',
src\\data\\characterPresets.ts:704:delivery: 'ranged',
src\\data\\characterPresets.ts:708:phase: 'travel',
src\\data\\characterPresets.ts:709:anchor: 'caster',
src\\data\\characterPresets.ts:710:motion: 'projectile',
src\\data\\characterPresets.ts:711:sequence: assetSequence('FX/dog', { prefix: 'dog', frames: 23 }),
src\\data\\characterPresets.ts:718:phase: 'impact',
src\\data\\characterPresets.ts:719:anchor: 'target',
src\\data\\characterPresets.ts:720:sequence: assetSequence('FX/arrow disappear', { prefix: 'arrow disappear', frames: 5 }),
src\\data\\characterPresets.ts:730:id: 'girl-hero',
src\\data\\characterPresets.ts:731:name: '双刃旅者',
src\\data\\characterPresets.ts:732:title: '疾影斥候',
src\\data\\characterPresets.ts:733:gender: 'female',
src\\data\\characterPresets.ts:734:description: '速度快、侵略性强,适合喜欢持续推进和连段压迫的玩家。',
src\\data\\characterPresets.ts:736:avatar: 'GH',
src\\data\\characterPresets.ts:737:portrait: '/character/Girl%20Hero%201/Original/Hero/Idle/Idle01.png',
src\\data\\characterPresets.ts:738:assetFolder: 'Girl Hero 1',
src\\data\\characterPresets.ts:739:assetVariant: 'Original',
src\\data\\characterPresets.ts:742:[AnimationState.ACQUIRE]: { folder: 'acquire', prefix: 'acquire', frames: 1 },
src\\data\\characterPresets.ts:743:[AnimationState.IDLE]: { folder: 'Idle', prefix: 'Idle', frames: 4 },
src\\data\\characterPresets.ts:744:[AnimationState.ATTACK]: { folder: 'attack', prefix: 'attack', frames: 9 },
src\\data\\characterPresets.ts:745:[AnimationState.RUN]: { folder: 'Run', prefix: 'Run', frames: 8 },
src\\data\\characterPresets.ts:746:[AnimationState.JUMP]: { folder: 'Jump', prefix: 'Jump', frames: 4 },
src\\data\\characterPresets.ts:747:[AnimationState.DOUBLE_JUMP]: { folder: 'double jump', prefix: 'double jump', frames: 3 },
src\\data\\characterPresets.ts:748:[AnimationState.JUMP_ATTACK]: { folder: 'jump attack', prefix: 'jump attack', frames: 9 },
src\\data\\characterPresets.ts:749:[AnimationState.DASH]: { folder: 'dash', prefix: 'dash', frames: 2 },
src\\data\\characterPresets.ts:750:[AnimationState.HURT]: { folder: 'hurt', prefix: 'hurt', frames: 3 },
src\\data\\characterPresets.ts:751:[AnimationState.DIE]: { folder: 'die', prefix: 'die', frames: 10 },
src\\data\\characterPresets.ts:752:[AnimationState.CLIMB]: { folder: 'climb', prefix: 'climb', frames: 8 },
src\\data\\characterPresets.ts:753:[AnimationState.SKILL1]: { folder: 'skill1', prefix: 'skill1', frames: 19 },
src\\data\\characterPresets.ts:754:[AnimationState.SKILL2]: { folder: 'skill2', prefix: 'skill2', frames: 8 },
src\\data\\characterPresets.ts:755:[AnimationState.SKILL2_JUMP]: { folder: 'skill2 jump', prefix: 'skill2 jump', frames: 8 },
src\\data\\characterPresets.ts:756:[AnimationState.SKILL3]: { folder: 'skill3', prefix: 'skill4', frames: 6 },
src\\data\\characterPresets.ts:757:[AnimationState.SKILL3_JUMP]: { folder: 'skill3 jump', prefix: 'skill4 jump', frames: 6 },
src\\data\\characterPresets.ts:758:[AnimationState.WALL_SLIDE]: { folder: 'wallslide', prefix: 'wallslide', frames: 1 },
src\\data\\characterPresets.ts:762:conversationStyle: conversationStyle({
src\\data\\characterPresets.ts:763:guardStyle: 'blunt',
src\\data\\characterPresets.ts:764:warmStyle: 'teasing',
src\\data\\characterPresets.ts:765:truthStyle: 'deflecting',
src\\data\\characterPresets.ts:787:id: 'girl-hero-skill1',
src\\data\\characterPresets.ts:788:name: '疾影连割',
src\\data\\characterPresets.ts:794:style: 'steady',
src\\data\\characterPresets.ts:795:delivery: 'ranged',
src\\data\\characterPresets.ts:799:phase: 'travel',
src\\data\\characterPresets.ts:800:anchor: 'caster',
src\\data\\characterPresets.ts:801:motion: 'projectile',
src\\data\\characterPresets.ts:802:sequence: assetSequence('FX/cat', { prefix: 'cat', frames: 4 }),
src\\data\\characterPresets.ts:809:phase: 'impact',
src\\data\\characterPresets.ts:810:anchor: 'target',
src\\data\\characterPresets.ts:811:sequence: assetSequence('FX/cat explosion', { prefix: 'cat explosion', frames: 8 }),
src\\data\\characterPresets.ts:818:defineSkill({ id: 'girl-hero-skill2', name: '交错双锋', animation: AnimationState.SKILL2, damage: 23, manaCost: 13, cooldownTurns: 2, range: 1.8, style: 'burst' }),
src\\data\\characterPresets.ts:819:defineSkill({ id: 'girl-hero-skill2-jump', name: '掠空斩落', animation: AnimationState.SKILL2_JUMP, damage: 26, manaCost: 15, cooldownTurns: 2, range: 2.1, style: 'mobility' }),
src\\data\\characterPresets.ts:820:defineSkill({ id: 'girl-hero-skill3', name: '影袭回环', animation: AnimationState.SKILL3, damage: 30, manaCost: 18, cooldownTurns: 3, range: 2.4, style: 'burst' }),
src\\data\\characterPresets.ts:821:defineSkill({ id: 'girl-hero-skill3-jump', name: '裂空追猎', animation: AnimationState.SKILL3_JUMP, damage: 34, manaCost: 22, cooldownTurns: 4, range: 2.8, style: 'finisher' }),
src\\data\\characterPresets.ts:825:id: 'punch-hero',
src\\data\\characterPresets.ts:826:name: '破军拳师',
src\\data\\characterPresets.ts:827:title: '近战斗修',
src\\data\\characterPresets.ts:828:gender: 'male',
src\\data\\characterPresets.ts:829:description: '以贴身爆发和连续重击见长,适合偏爱近战硬碰硬的玩家。',
src\\data\\characterPresets.ts:831:avatar: 'PH',
src\\data\\characterPresets.ts:832:portrait: '/character/Punch%20Hero%203/Original/Hero/Idle/Idle01.png',
src\\data\\characterPresets.ts:833:assetFolder: 'Punch Hero 3',
src\\data\\characterPresets.ts:834:assetVariant: 'Original',
src\\data\\characterPresets.ts:837:[AnimationState.ACQUIRE]: { folder: 'Aquire', prefix: 'Aquire', frames: 1 },
src\\data\\characterPresets.ts:838:[AnimationState.IDLE]: { folder: 'Idle', prefix: 'Idle', frames: 4 },
src\\data\\characterPresets.ts:839:[AnimationState.ATTACK]: { folder: 'Attack', prefix: 'Attack', frames: 13 },
src\\data\\characterPresets.ts:840:[AnimationState.RUN]: { folder: 'Run', prefix: 'Run', frames: 8 },
src\\data\\characterPresets.ts:841:[AnimationState.JUMP]: { folder: 'Jump', prefix: 'Jump', frames: 3 },
src\\data\\characterPresets.ts:842:[AnimationState.DOUBLE_JUMP]: { folder: 'Double Jump', prefix: 'Double Jump', frames: 2 },
src\\data\\characterPresets.ts:843:[AnimationState.JUMP_ATTACK]: { folder: 'Jump Attack', prefix: 'Jump Attack', frames: 13 },
src\\data\\characterPresets.ts:844:[AnimationState.DASH]: { folder: 'Dash', prefix: 'Dash', frames: 1 },
src\\data\\characterPresets.ts:845:[AnimationState.HURT]: { folder: 'Hurt', prefix: 'Hurt', frames: 2 },
src\\data\\characterPresets.ts:846:[AnimationState.DIE]: { folder: 'Die', prefix: 'Die', frames: 10 },
src\\data\\characterPresets.ts:847:[AnimationState.CLIMB]: { folder: 'Climb', prefix: 'Climb', frames: 8 },
src\\data\\characterPresets.ts:848:[AnimationState.SKILL1]: { folder: 'skill1', prefix: 'skill1', frames: 9 },
src\\data\\characterPresets.ts:849:[AnimationState.SKILL1_JUMP]: { folder: 'skill1 Jump', prefix: 'skill1 Jump', frames: 9 },
src\\data\\characterPresets.ts:850:[AnimationState.SKILL2]: { folder: 'skill2', prefix: 'skill2', frames: 4 },
src\\data\\characterPresets.ts:851:[AnimationState.SKILL3]: { folder: 'skill3', prefix: 'skill3', frames: 13 },
src\\data\\characterPresets.ts:852:[AnimationState.SKILL4]: { folder: 'skill4', prefix: 'skill4', frames: 11 },
src\\data\\characterPresets.ts:853:[AnimationState.WALL_SLIDE]: { folder: 'Wall Slide', prefix: 'Wall Slide', frames: 1 },
src\\data\\characterPresets.ts:857:conversationStyle: conversationStyle({
src\\data\\characterPresets.ts:858:guardStyle: 'blunt',
src\\data\\characterPresets.ts:859:warmStyle: 'steady',
src\\data\\characterPresets.ts:860:truthStyle: 'direct',
src\\data\\characterPresets.ts:882:id: 'punch-hero-skill1',
src\\data\\characterPresets.ts:883:name: '破军连捶',
src\\data\\characterPresets.ts:889:style: 'steady',
src\\data\\characterPresets.ts:892:phase: 'impact',
src\\data\\characterPresets.ts:893:anchor: 'target',
src\\data\\characterPresets.ts:894:sequence: assetSequence('FX/hit', { prefix: 'FX Hit', frames: 2 }),
src\\data\\characterPresets.ts:902:id: 'punch-hero-skill1-jump',
src\\data\\characterPresets.ts:903:name: '腾身砸落',
src\\data\\characterPresets.ts:909:style: 'mobility',
src\\data\\characterPresets.ts:912:phase: 'impact',
src\\data\\characterPresets.ts:913:anchor: 'target',
src\\data\\characterPresets.ts:914:sequence: assetSequence('FX/hit', { prefix: 'FX Hit', frames: 2 }),
src\\data\\characterPresets.ts:922:id: 'punch-hero-skill2',
src\\data\\characterPresets.ts:923:name: '断岳寸劲',
src\\data\\characterPresets.ts:929:style: 'burst',
src\\data\\characterPresets.ts:930:delivery: 'ranged',
src\\data\\characterPresets.ts:934:phase: 'travel',
src\\data\\characterPresets.ts:935:anchor: 'caster',
src\\data\\characterPresets.ts:936:motion: 'projectile',
src\\data\\characterPresets.ts:937:sequence: assetSequence('FX', { file: 'skill2_shoot.PNG' }),
src\\data\\characterPresets.ts:944:phase: 'impact',
src\\data\\characterPresets.ts:945:anchor: 'target',
src\\data\\characterPresets.ts:946:sequence: assetSequence('FX/skill2_fx', { prefix: 'skill2_fx', frames: 5 }),
src\\data\\characterPresets.ts:954:id: 'punch-hero-skill3',
src\\data\\characterPresets.ts:955:name: '千钧破阵',
src\\data\\characterPresets.ts:961:style: 'burst',
src\\data\\characterPresets.ts:962:delivery: 'ranged',
src\\data\\characterPresets.ts:966:phase: 'travel',
src\\data\\characterPresets.ts:967:anchor: 'caster',
src\\data\\characterPresets.ts:968:motion: 'projectile',
src\\data\\characterPresets.ts:969:sequence: assetSequence('FX/skill3_shoot', { prefix: 'skill3_shoot', frames: 4 }),
src\\data\\characterPresets.ts:976:phase: 'impact',
src\\data\\characterPresets.ts:977:anchor: 'target',
src\\data\\characterPresets.ts:978:sequence: assetSequence('FX/skill3_fx', { prefix: 'skill3_fx', frames: 6 }),
src\\data\\characterPresets.ts:986:id: 'punch-hero-skill4',
src\\data\\characterPresets.ts:987:name: '裂地霸拳',
src\\data\\characterPresets.ts:993:style: 'finisher',
src\\data\\characterPresets.ts:994:delivery: 'ranged',
src\\data\\characterPresets.ts:998:phase: 'impact',
src\\data\\characterPresets.ts:999:anchor: 'target',
src\\data\\characterPresets.ts:1000:sequence: assetSequence('FX/skill4_light', { prefix: 'skill4_light', frames: 8 }),
src\\data\\characterPresets.ts:1010:id: 'fighter-4',
src\\data\\characterPresets.ts:1011:name: '玄甲战锋',
src\\data\\characterPresets.ts:1012:title: '重装先锋',
src\\data\\characterPresets.ts:1013:gender: 'male',
src\\data\\characterPresets.ts:1014:description: '攻守兼备,推进稳健,适合喜欢扎实前排风格的玩家。',
src\\data\\characterPresets.ts:1016:avatar: 'F4',
src\\data\\characterPresets.ts:1017:portrait: '/character/Fighter%204/original/Hero/idle/idle01.png',
src\\data\\characterPresets.ts:1018:assetFolder: 'Fighter 4',
src\\data\\characterPresets.ts:1019:assetVariant: 'original',
src\\data\\characterPresets.ts:1022:[AnimationState.ACQUIRE]: { folder: 'acquire', prefix: 'acquire', frames: 1 },
src\\data\\characterPresets.ts:1023:[AnimationState.IDLE]: { folder: 'idle', prefix: 'idle', frames: 4 },
src\\data\\characterPresets.ts:1024:[AnimationState.ATTACK]: { folder: 'attack', prefix: 'attack', frames: 5 },
src\\data\\characterPresets.ts:1025:[AnimationState.RUN]: { folder: 'run', prefix: 'run', frames: 8 },
src\\data\\characterPresets.ts:1026:[AnimationState.JUMP]: { folder: 'jump', prefix: 'jump', frames: 4 },
src\\data\\characterPresets.ts:1027:[AnimationState.DOUBLE_JUMP]: { folder: 'double jump', prefix: 'double jump', frames: 3 },
src\\data\\characterPresets.ts:1028:[AnimationState.JUMP_ATTACK]: { folder: 'jump attack', prefix: 'jump attack', frames: 5 },
src\\data\\characterPresets.ts:1029:[AnimationState.DASH]: { folder: 'dash', prefix: 'dash', frames: 2 },
src\\data\\characterPresets.ts:1030:[AnimationState.HURT]: { folder: 'hurt', prefix: 'hurt', frames: 3 },
src\\data\\characterPresets.ts:1031:[AnimationState.DIE]: { folder: 'die', prefix: 'die', frames: 11 },
src\\data\\characterPresets.ts:1032:[AnimationState.CLIMB]: { folder: 'Climb', prefix: 'Climb', frames: 8 },
src\\data\\characterPresets.ts:1033:[AnimationState.SKILL1]: { folder: 'skill1', prefix: 'skill1', frames: 9 },
src\\data\\characterPresets.ts:1034:[AnimationState.SKILL1_BULLET]: { folder: 'skill1 bullet', prefix: 'skill1 bullet', frames: 3 },
src\\data\\characterPresets.ts:1035:[AnimationState.SKILL1_BULLET_FX]: { folder: 'skill1 bullet FX', prefix: 'skill1 bullet FX', frames: 5 },
src\\data\\characterPresets.ts:1036:[AnimationState.SKILL1_JUMP]: { folder: 'skill1 jump', prefix: 'skill1 jump', frames: 9 },
src\\data\\characterPresets.ts:1037:[AnimationState.SKILL2]: { folder: 'skill2', prefix: 'skill2', frames: 7 },
src\\data\\characterPresets.ts:1038:[AnimationState.SKILL3]: { folder: 'skill3', prefix: 'skill3', frames: 9 },
src\\data\\characterPresets.ts:1039:[AnimationState.SKILL3_BULLET]: { folder: 'skill3 bullet', prefix: 'skill3 bullet', frames: 5 },
src\\data\\characterPresets.ts:1040:[AnimationState.SKILL3_BULLET_FX]: { folder: 'skill3 bullet FX', prefix: 'skill3 bullet FX', frames: 7 },
src\\data\\characterPresets.ts:1041:[AnimationState.WALL_SLIDE]: { folder: 'wallslide', prefix: 'wallslide', frames: 1 },
src\\data\\characterPresets.ts:1045:conversationStyle: conversationStyle({
src\\data\\characterPresets.ts:1046:guardStyle: 'measured',
src\\data\\characterPresets.ts:1047:warmStyle: 'steady',
src\\data\\characterPresets.ts:1048:truthStyle: 'fragmented',
src\\data\\characterPresets.ts:1069:defineSkill({ id: 'fighter-4-skill1', name: '玄甲横扫', animation: AnimationState.SKILL1, damage: 18, manaCost: 8, cooldownTurns: 1, range: 1.6, style: 'steady' }),
src\\data\\characterPresets.ts:1071:id: 'fighter-4-skill1-bullet',
src\\data\\characterPresets.ts:1072:name: '盾锋震射',
src\\data\\characterPresets.ts:1079:style: 'projectile',
src\\data\\characterPresets.ts:1080:delivery: 'ranged',
src\\data\\characterPresets.ts:1084:phase: 'travel',
src\\data\\characterPresets.ts:1085:anchor: 'caster',
src\\data\\characterPresets.ts:1086:motion: 'projectile',
src\\data\\characterPresets.ts:1094:phase: 'impact',
src\\data\\characterPresets.ts:1095:anchor: 'target',
src\\data\\characterPresets.ts:1104:id: 'fighter-4-skill1-bullet-fx',
src\\data\\characterPresets.ts:1105:name: '震射余波',
src\\data\\characterPresets.ts:1112:style: 'projectile',
src\\data\\characterPresets.ts:1113:delivery: 'ranged',
src\\data\\characterPresets.ts:1117:phase: 'travel',
src\\data\\characterPresets.ts:1118:anchor: 'caster',
src\\data\\characterPresets.ts:1119:motion: 'projectile',
src\\data\\characterPresets.ts:1127:phase: 'impact',
src\\data\\characterPresets.ts:1128:anchor: 'target',
src\\data\\characterPresets.ts:1136:defineSkill({ id: 'fighter-4-skill1-jump', name: '跃盾重劈', animation: AnimationState.SKILL1_JUMP, damage: 26, manaCost: 15, cooldownTurns: 2, range: 1.9, style: 'mobility' }),
src\\data\\characterPresets.ts:1137:defineSkill({ id: 'fighter-4-skill2', name: '阵线推进', animation: AnimationState.SKILL2, damage: 28, manaCost: 16, cooldownTurns: 3, range: 2.1, style: 'steady' }),
src\\data\\characterPresets.ts:1138:defineSkill({ id: 'fighter-4-skill3', name: '玄甲断城', animation: AnimationState.SKILL3, damage: 33, manaCost: 20, cooldownTurns: 3, range: 2.5, style: 'burst' }),
src\\data\\characterPresets.ts:1140:id: 'fighter-4-skill3-bullet',
src\\data\\characterPresets.ts:1141:name: '裂阵冲击',
src\\data\\characterPresets.ts:1148:style: 'projectile',
src\\data\\characterPresets.ts:1149:delivery: 'ranged',
src\\data\\characterPresets.ts:1153:phase: 'travel',
src\\data\\characterPresets.ts:1154:anchor: 'caster',
src\\data\\characterPresets.ts:1155:motion: 'projectile',
src\\data\\characterPresets.ts:1163:phase: 'impact',
src\\data\\characterPresets.ts:1164:anchor: 'target',
src\\data\\characterPresets.ts:1173:id: 'fighter-4-skill3-bullet-fx',
src\\data\\characterPresets.ts:1174:name: '城壁崩响',
src\\data\\characterPresets.ts:1181:style: 'finisher',
src\\data\\characterPresets.ts:1182:delivery: 'ranged',
src\\data\\characterPresets.ts:1186:phase: 'travel',
src\\data\\characterPresets.ts:1187:anchor: 'caster',
src\\data\\characterPresets.ts:1188:motion: 'projectile',
src\\data\\characterPresets.ts:1196:phase: 'impact',
src\\data\\characterPresets.ts:1197:anchor: 'target',
src\\data\\characterPresets.ts:1210:'sword-princess': {
src\\data\\characterPresets.ts:1211:[WorldType.WUXIA]: 'wuxia-palace-court',
src\\data\\characterPresets.ts:1212:[WorldType.XIANXIA]: 'xianxia-celestial-corridor',
src\\data\\characterPresets.ts:1214:'archer-hero': {
src\\data\\characterPresets.ts:1215:[WorldType.WUXIA]: 'wuxia-border-camp',
src\\data\\characterPresets.ts:1216:[WorldType.XIANXIA]: 'xianxia-star-vessel',
src\\data\\characterPresets.ts:1218:'girl-hero': {
src\\data\\characterPresets.ts:1219:[WorldType.WUXIA]: 'wuxia-rain-street',
src\\data\\characterPresets.ts:1220:[WorldType.XIANXIA]: 'xianxia-waterfall-cliff',
src\\data\\characterPresets.ts:1222:'punch-hero': {
src\\data\\characterPresets.ts:1223:[WorldType.WUXIA]: 'wuxia-forge-works',
src\\data\\characterPresets.ts:1224:[WorldType.XIANXIA]: 'xianxia-molten-realm',
src\\data\\characterPresets.ts:1226:'fighter-4': {
src\\data\\characterPresets.ts:1227:[WorldType.WUXIA]: 'wuxia-mountain-gate',
src\\data\\characterPresets.ts:1228:[WorldType.XIANXIA]: 'xianxia-thunder-altar',
src\\data\\characterPresets.ts:1233:'sword-princess': {
src\\data\\characterPresets.ts:1234:[WorldType.WUXIA]: ['wuxia-palace-court', 'wuxia-temple-forecourt'],
src\\data\\characterPresets.ts:1235:[WorldType.XIANXIA]: ['xianxia-celestial-corridor', 'xianxia-ancient-ruins'],
src\\data\\characterPresets.ts:1237:'archer-hero': {
src\\data\\characterPresets.ts:1238:[WorldType.WUXIA]: ['wuxia-border-camp', 'wuxia-bamboo-road', 'wuxia-mist-woods'],
src\\data\\characterPresets.ts:1239:[WorldType.XIANXIA]: ['xianxia-star-vessel', 'xianxia-cloud-gate'],
src\\data\\characterPresets.ts:1241:'girl-hero': {
src\\data\\characterPresets.ts:1242:[WorldType.WUXIA]: ['wuxia-rain-street', 'wuxia-ferry-bridge'],
src\\data\\characterPresets.ts:1243:[WorldType.XIANXIA]: ['xianxia-waterfall-cliff', 'xianxia-moon-lake'],
src\\data\\characterPresets.ts:1245:'punch-hero': {
src\\data\\characterPresets.ts:1246:[WorldType.WUXIA]: ['wuxia-forge-works', 'wuxia-mine-depths'],
src\\data\\characterPresets.ts:1247:[WorldType.XIANXIA]: ['xianxia-molten-realm', 'xianxia-thunder-altar'],
src\\data\\characterPresets.ts:1249:'fighter-4': {
src\\data\\characterPresets.ts:1250:[WorldType.WUXIA]: ['wuxia-mountain-gate', 'wuxia-border-camp', 'wuxia-temple-forecourt'],
src\\data\\characterPresets.ts:1251:[WorldType.XIANXIA]: ['xianxia-thunder-altar', 'xianxia-cloud-gate', 'xianxia-celestial-corridor'],
src\\data\\characterPresets.ts:1256:'sword-princess': ['快剑', '突进', '压制'],
src\\data\\characterPresets.ts:1257:'archer-hero': ['远射', '游击', '风行'],
src\\data\\characterPresets.ts:1258:'girl-hero': ['快袭', '连段', '追击'],
src\\data\\characterPresets.ts:1259:'punch-hero': ['重击', '爆发', '压血'],
src\\data\\characterPresets.ts:1260:'fighter-4': ['守御', '护体', '先锋'],
src\\data\\characterPresets.ts:1263:const SKILL_BUILD_BUFFS_BY_ID: Record<string, CharacterSkillDefinition['buildBuffs']> = {
src\\data\\characterPresets.ts:1264:'sword-princess-skill1-jump': [
src\\data\\characterPresets.ts:1265:{ id: 'buff-sword-princess-skill1-jump', sourceType: 'skill', sourceId: 'sword-princess-skill1-jump', name: '凌空追势', tags: ['突进', '追击'], durationTurns: 2 },
src\\data\\characterPresets.ts:1267:'sword-princess-skill2': [
src\\data\\characterPresets.ts:1268:{ id: 'buff-sword-princess-skill2', sourceType: 'skill', sourceId: 'sword-princess-skill2', name: '裂阵剑压', tags: ['快剑', '压制'], durationTurns: 2 },
src\\data\\characterPresets.ts:1270:'archer-hero-skill1': [
src\\data\\characterPresets.ts:1271:{ id: 'buff-archer-hero-skill1', sourceType: 'skill', sourceId: 'archer-hero-skill1', name: '裂风箭势', tags: ['远射', '游击'], durationTurns: 2 },
src\\data\\characterPresets.ts:1273:'archer-hero-skill2': [
src\\data\\characterPresets.ts:1274:{ id: 'buff-archer-hero-skill2', sourceType: 'skill', sourceId: 'archer-hero-skill2', name: '风行拉扯', tags: ['风行', '机动'], durationTurns: 2 },
src\\data\\characterPresets.ts:1276:'girl-hero-skill1': [
src\\data\\characterPresets.ts:1277:{ id: 'buff-girl-hero-skill1', sourceType: 'skill', sourceId: 'girl-hero-skill1', name: '疾影连袭', tags: ['快袭', '连段'], durationTurns: 2 },
src\\data\\characterPresets.ts:1279:'girl-hero-skill3-jump': [
src\\data\\characterPresets.ts:1280:{ id: 'buff-girl-hero-skill3-jump', sourceType: 'skill', sourceId: 'girl-hero-skill3-jump', name: '裂空狩猎', tags: ['追击', '爆发'], durationTurns: 2 },
src\\data\\characterPresets.ts:1282:'punch-hero-skill2': [
src\\data\\characterPresets.ts:1283:{ id: 'buff-punch-hero-skill2', sourceType: 'skill', sourceId: 'punch-hero-skill2', name: '破军重势', tags: ['重击', '爆发'], durationTurns: 2 },
src\\data\\characterPresets.ts:1285:'punch-hero-skill4': [
src\\data\\characterPresets.ts:1286:{ id: 'buff-punch-hero-skill4', sourceType: 'skill', sourceId: 'punch-hero-skill4', name: '压血狂轰', tags: ['压血', '爆发'], durationTurns: 2 },
src\\data\\characterPresets.ts:1288:'fighter-4-skill2': [
src\\data\\characterPresets.ts:1289:{ id: 'buff-fighter-4-skill2', sourceType: 'skill', sourceId: 'fighter-4-skill2', name: '阵线稳推', tags: ['先锋', '压制'], durationTurns: 2 },
src\\data\\characterPresets.ts:1291:'fighter-4-skill3': [
src\\data\\characterPresets.ts:1292:{ id: 'buff-fighter-4-skill3', sourceType: 'skill', sourceId: 'fighter-4-skill3', name: '玄甲护阵', tags: ['守御', '护体'], durationTurns: 2 },
src\\data\\characterPresets.ts:1318:conversationStyle: override.conversationStyle ?? baseCharacter.conversationStyle ?? inferConversationStyleFromText(baseCharacter.personality),
src\\data\\characterPresets.ts:1373:const isRangedSkill = skill.delivery === 'ranged' || skill.style === 'projectile';
src\\data\\characterPresets.ts:1378:const themeDamageBias = themeMode === 'machina' ? 3 : themeMode === 'rift' ? 4 : themeMode === 'arcane' ? 2 : 1;
src\\data\\characterPresets.ts:1379:const themeRangeBias = themeMode === 'arcane' || themeMode === 'rift'
src\\data\\characterPresets.ts:1381:: themeMode === 'machina' || themeMode === 'tide'
src\\data\\characterPresets.ts:1386:const manaShift = (themeMode === 'arcane' || themeMode === 'rift' ? 1 : 0) + rangedBias + Math.max(0, burstBias - 1) - Math.min(2, sustainBias);
src\\data\\characterPresets.ts:1394:name: buildThemedSkillName(profile, baseCharacter, skill, index, role),
src\\data\\characterPresets.ts:1413:].join('\n');
src\\data\\characterPresets.ts:1435:name: role.name,
src\\data\\characterPresets.ts:1436:title: role.title,
src\\data\\characterPresets.ts:1437:description: role.description,
src\\data\\characterPresets.ts:1444:name: role.name,
src\\data\\characterPresets.ts:1445:title: role.title,
src\\data\\characterPresets.ts:1446:description: role.description,
src\\data\\characterPresets.ts:1449:conversationStyle: inferConversationStyleFromText([
src\\data\\characterPresets.ts:1481:throw new Error('Missing preset characters for custom world generation');
src\\data\\characterPresets.ts:1530:return 'custom-scene-camp';
src\\data\\characterPresets.ts:1545:return ['custom-scene-camp'];
src\\data\\characterPresets.ts:1550:return ['custom-scene-camp', firstScene, secondScene];
src\\data\\characterPresets.ts:1568:name: character.name,
src\\data\\characterPresets.ts:1572:description: `${character.title}在此地活动。${character.description}`,