2082 lines
308 KiB
Plaintext
2082 lines
308 KiB
Plaintext
E:\Repos\ai-native-visual-rpg\src\data\characterPresets.ts:344:{ category: '专属品', name: `${character.name}的信物`, quantity: 2 },
|
||
E:\Repos\ai-native-visual-rpg\src\data\characterPresets.ts:1565:description: `${character.title}在此地活动。${character.description}`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\customWorldRuntime.ts:226:const name = `${prefix}${optionSeed || worldSeed}${noun}${index + 1}`;
|
||
E:\Repos\ai-native-visual-rpg\src\data\customWorldRuntime.ts:234:description: `围绕“${profile.playerGoal}”即时生成的${category},适合在 ${profile.name} 中作为掉落、交易或补给资源。`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\customWorldVisuals.ts:12:{ packName: 'Pixel Battle Backgrounds - Pack 1', count: 121 },
|
||
E:\Repos\ai-native-visual-rpg\src\data\customWorldVisuals.ts:13:{ packName: 'Pixel Battle Backgrounds - Pack 2', count: 119 },
|
||
E:\Repos\ai-native-visual-rpg\src\data\customWorldVisuals.ts:14:{ packName: 'Pixel Battle Backgrounds - Pack 3', count: 170 },
|
||
E:\Repos\ai-native-visual-rpg\src\data\customWorldVisuals.ts:26:const filename = `${imageNumber.toString().padStart(3, '0')}.png`;
|
||
E:\Repos\ai-native-visual-rpg\src\data\editorValidation.ts:83:const skillLabel = `${characterId} skill ${skill.id || index + 1}`;
|
||
E:\Repos\ai-native-visual-rpg\src\data\forgeSystem.ts:221:pieceName: 'weapon',
|
||
E:\Repos\ai-native-visual-rpg\src\data\forgeSystem.ts:250:pieceName: 'armor',
|
||
E:\Repos\ai-native-visual-rpg\src\data\forgeSystem.ts:264:description: '为法修、雷法、过载 build 提供资源与爆发补强。',
|
||
E:\Repos\ai-native-visual-rpg\src\data\forgeSystem.ts:281:pieceName: 'relic',
|
||
E:\Repos\ai-native-visual-rpg\src\data\forgeSystem.ts:389:name: item.name.includes('重铸') ? item.name : `${item.name}·重铸`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:213:Boots: { wuxia: "踏云靴", xianxia: "凌霄履", pieceName: "boots", slot: "armor" },
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:214:Chestplate: { wuxia: "护心甲", xianxia: "灵铠", pieceName: "chest", slot: "armor" },
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:215:Gloves: { wuxia: "护腕", xianxia: "灵纹手甲", pieceName: "gloves", slot: "armor" },
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:216:Helmet: { wuxia: "冠盔", xianxia: "灵盔", pieceName: "helm", slot: "armor" },
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:217:Leggings: { wuxia: "行岳腿甲", xianxia: "踏虚护胫", pieceName: "leggings", slot: "armor" },
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:218:Shield: { wuxia: "镇势盾", xianxia: "护界灵盾", pieceName: "shield", slot: "armor" },
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:219:Weapon: { wuxia: "战兵", xianxia: "灵兵", pieceName: "weapon", slot: "weapon" },
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:474:description: `${wuxiaName} / ${xianxiaName} 这件图标物资可在两个世界中以不同风格登场,适合作为${category}基础模板继续扩展。`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:514:const wuxiaName = `${theme.wuxia}${piece.wuxia}${gradeWuxia}`;
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:515:const xianxiaName = `${theme.xianxia}${piece.xianxia}${gradeXianxia}`;
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:519:const setName = `${theme.setWuxia} / ${theme.setXianxia}`;
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:538:description: `${theme.setWuxia} / ${theme.setXianxia} 套装中的 ${piece.pieceName} 位。相邻编号代表同家族不同锻造阶段,适合围绕 ${theme.synergy.join("、")} 组 build。`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:579:const wuxiaName = `${buildGenericTokenName(leadingToken, WorldType.WUXIA)}${baseWuxiaType}`;
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:580:const xianxiaName = `${buildGenericTokenName(leadingToken, WorldType.XIANXIA)}${baseXianxiaType}`;
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:589:description: `${jewelryType} 家族的 ${descriptor.replace(/_/g, " ")} 款式。围绕 ${role} build 提供核心词条,也可以与同角色定位的项链/手镯/戒指拼成饰品流派。`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:602:setName: `${role} 饰品系`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:733:const wuxiaName = `${buildGenericTokenName(token, WorldType.WUXIA)}${/Dust/u.test(filename) ? "碎屑" : /Crystal/u.test(filename) ? "晶魄" : "宝石"}`;
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:734:const xianxiaName = `${buildGenericTokenName(token, WorldType.XIANXIA)}${/Dust/u.test(filename) ? "粉末" : /Crystal/u.test(filename) ? "灵髓" : "灵晶"}`;
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:747:description: `${token} 系晶石适合做强度梯度:粉尘是材料,宝石是中阶插件,晶体是高阶核心件。`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:760:setName: `${token} 晶石谱系`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:820:description: "技能图标类物品会被设计成功法、符印、强化器或秘卷,用于支撑特定流派的 build 想象。",
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:833:setName: `${role} 功法谱`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\itemDesign.ts:906:description: `${readable} 根据视觉和路径被自动归入 ${category} 家族,可作为 ${role} 向 build 的支撑件或素材件。`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\questFlow.ts:83:title: `平定${targetMonsterName}`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\questFlow.ts:84:description: `${issuerNpcName}希望你替他处理盘踞在 ${scene.name} 附近的敌对 NPC ${targetMonsterName}。`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\questFlow.ts:85:summary: `击败 1 名 ${targetMonsterName}`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\questFlow.ts:110:title: `清理${targetMonsterName}`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\questFlow.ts:111:description: `${issuerNpcName}希望你替他处理盘踞在${scene.name}附近的${targetMonsterName}。`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\questFlow.ts:112:summary: `击败 1 次 ${targetMonsterName}`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\questFlow.ts:133:title: `探明${scene.name}的藏宝线索`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\questFlow.ts:134:description: `${issuerNpcName}想知道${scene.name}附近那处宝藏是否安全,拜托你先去查明。`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\questFlow.ts:135:summary: `在 ${scene.name} 完成 1 次宝藏调查`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\questFlow.ts:154:title: `与 ${issuerNpcName} 切磋一场`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\questFlow.ts:155:description: `${issuerNpcName}想先摸摸你的底,如果你愿意,就和他点到为止地切磋一场。`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\questFlow.ts:156:summary: `和 ${issuerNpcName} 完成 1 次切磋`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\sceneEncounterPreviews.ts:33:npcName: 'Treasure',
|
||
E:\Repos\ai-native-visual-rpg\src\data\sceneEncounterPreviews.ts:34:npcDescription: `You spot clues tied to ${treasureHint} ahead. It looks like a cache someone hid on purpose.`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\sceneEncounterPreviews.ts:36:context: 'Treasure',
|
||
E:\Repos\ai-native-visual-rpg\src\data\scenePresets.ts:80:{ packName: 'Pixel Battle Backgrounds - Pack 1', count: 121 },
|
||
E:\Repos\ai-native-visual-rpg\src\data\scenePresets.ts:81:{ packName: 'Pixel Battle Backgrounds - Pack 2', count: 119 },
|
||
E:\Repos\ai-native-visual-rpg\src\data\scenePresets.ts:82:{ packName: 'Pixel Battle Backgrounds - Pack 3', count: 170 },
|
||
E:\Repos\ai-native-visual-rpg\src\data\scenePresets.ts:86:const filename = `${imageNumber.toString().padStart(3, '0')}.png`;
|
||
E:\Repos\ai-native-visual-rpg\src\data\scenePresets.ts:191:description: `${npc.description} 动机:${npc.motivation}`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\scenePresets.ts:219:description: `${character.description} 这名角色属于自定义世界“${profile.name}”的可扮演阵容。`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\scenePresets.ts:230:description: `你在${profile.name}的临时营地整备行装。${profile.summary}`,
|
||
E:\Repos\ai-native-visual-rpg\src\data\stateFunctions.ts:372:description: '朝前方主动喊话试探,可能把藏着的 NPC、怪物或其他动静逼出来。',
|
||
E:\Repos\ai-native-visual-rpg\src\data\stateFunctions.ts:445:description: '主动朝前方喊话试探,可能把附近潜着的 NPC 或怪物直接从远处引出来。',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\battlePlan.test.ts:9:name: 'Test Hero',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\battlePlan.test.ts:10:title: 'Hero',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\battlePlan.test.ts:11:description: 'A test character',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\battlePlan.test.ts:27:name: 'Basic Strike',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\battlePlan.test.ts:97:actionText: 'Attack',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\escapeFlow.test.ts:26:name: 'Hero',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\escapeFlow.test.ts:27:title: 'Wanderer',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\escapeFlow.test.ts:28:description: 'A reliable test hero.',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\escapeFlow.test.ts:49:name: 'Wolf',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\escapeFlow.test.ts:51:description: 'A test wolf.',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\escapeFlow.test.ts:83:npcName: 'Bandit',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\escapeFlow.test.ts:84:npcDescription: 'A bandit',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\escapeFlow.test.ts:86:context: 'bandit',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\escapeFlow.test.ts:127:actionText: 'Run',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\escapeFlow.test.ts:128:text: 'Run',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\resolvedChoice.test.ts:7:name: 'Camp',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\resolvedChoice.test.ts:8:description: 'A quiet camp.',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\resolvedChoice.test.ts:13:name: 'Trail',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\resolvedChoice.test.ts:14:description: 'A mountain trail.',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\resolvedChoice.test.ts:52:name: 'Test Hero',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\resolvedChoice.test.ts:53:title: 'Hero',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\resolvedChoice.test.ts:54:description: 'A test character',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\resolvedChoice.test.ts:70:name: 'Basic Strike',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\resolvedChoice.test.ts:186:name: 'Wolf',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\combat\resolvedChoice.test.ts:188:description: 'A wolf',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\characterChat.ts:283:error: error instanceof Error ? error.message : 'Unknown AI error',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\npcEncounterActions.ts:277:resultText: `Victory reward: ${lootText}.`,
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\npcEncounterActions.ts:389:setAiError(error instanceof Error ? error.message : 'NPC dialogue AI is unavailable.');
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\npcInteraction.ts:320:runtime.setAiError(error instanceof Error ? error.message : '未知 AI 错误');
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\npcInteraction.ts:402:runtime.setAiError(error instanceof Error ? error.message : '未知 AI 错误');
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\storyGenerationState.test.ts:7:name: 'Camp',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\storyGenerationState.test.ts:8:description: 'A quiet camp.',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\storyGenerationState.test.ts:17:name: 'Trail',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\storyGenerationState.test.ts:18:description: 'A mountain trail.',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\storyGenerationState.test.ts:57:name: 'Hero',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\storyGenerationState.test.ts:58:title: 'Wanderer',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\storyGenerationState.test.ts:59:description: 'A reliable test hero.',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\storyGenerationState.test.ts:81:description: `${name} description`,
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\storyGenerationState.test.ts:94:npcName: 'Trader Lin',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\storyGenerationState.test.ts:95:npcDescription: 'A traveling merchant.',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\storyGenerationState.test.ts:97:context: 'merchant',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\storyGenerationState.ts:137:const travelResultText = `You leave ${state.currentScenePreset?.name ?? 'your current position'} and head toward ${targetScene.name}.`;
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\story\storyGenerationState.ts:141:actionText: `Travel to ${targetScene.name}`,
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:576:actionText: 'Travel to ' + sceneName,
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:577:text: 'Travel to ' + sceneName,
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:578:detailText: 'Leave camp and head toward ' + sceneName + '.',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:654:const actionText = `Speak with ${encounter.npcName}`;
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:659:detailText: 'Focus on the person in front of you first, then decide how to respond.',
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:827:const openingActionText = `Exchange an opening judgment with ${encounter.npcName} at camp`;
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:1097:const actionText = 'Begin the adventure';
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:1212:setAiError(error instanceof Error ? error.message : '未知 AI 错误');
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:1264:setAiError(error instanceof Error ? error.message : '未知 AI 错误');
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:1297:const actionText = `Exchange an opening judgment with ${encounter.npcName} at camp`;
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:1374:setAiError(error instanceof Error ? error.message : 'Unknown AI error');
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:1407:setAiError(error instanceof Error ? error.message : '未知 AI 错误');
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:1508:setAiError(error instanceof Error ? error.message : '未知 AI 错误');
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:1794:setAiError(storyError instanceof Error ? storyError.message : 'Unknown AI error');
|
||
E:\Repos\ai-native-visual-rpg\src\hooks\useStoryGeneration.ts:1855:setAiError(error instanceof Error ? error.message : '未知 AI 错误');
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:181:<div className="mt-3 rounded-xl border border-dashed border-white/10 bg-black/20 px-3 py-4 text-center text-xs text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:188:<div className="mt-3 flex flex-wrap gap-2.5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:202:<div className="absolute inset-0 bg-[radial-gradient(circle_at_top,rgba(255,255,255,0.12),transparent_55%)] opacity-0 transition group-hover:opacity-100" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:206:className="relative z-[1] h-8 w-8 drop-shadow-[0_6px_10px_rgba(0,0,0,0.35)] sm:h-9 sm:w-9"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:208:<span className="absolute bottom-1 right-1 rounded-full border border-black/35 bg-black/70 px-1.5 py-0.5 text-[10px] font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:230:className="grid gap-1.5"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:259:<div className="rounded-2xl border border-amber-300/15 bg-[radial-gradient(circle_at_top,rgba(251,191,36,0.14),transparent_65%),rgba(0,0,0,0.24)] p-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:260:<div className="flex items-start justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:262:<div className="text-[10px] tracking-[0.24em] text-amber-200/80">奖励缓存</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:263:<div className="mt-1 text-[11px] leading-relaxed text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:267:<ScrollText className="h-4 w-4 text-amber-200/70" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:270:<div className="mt-3 grid grid-cols-2 gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:271:<div className="rounded-xl border border-rose-300/18 bg-rose-500/10 px-3 py-2.5 text-rose-50">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:272:<div className="flex items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:273:<Heart className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:274:<span className="text-sm font-semibold">+{quest.reward.affinityBonus}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:276:<div className="mt-1 text-[10px] uppercase tracking-[0.2em] text-rose-100/70">好感度</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:278:<div className="rounded-xl border border-amber-300/18 bg-amber-500/10 px-3 py-2.5 text-amber-50">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:279:<div className="flex items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:280:<Coins className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:281:<span className="text-sm font-semibold">{formatCurrency(quest.reward.currency, worldType)}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:283:<div className="mt-1 text-[10px] uppercase tracking-[0.2em] text-amber-100/70">货币</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:312:<div className="flex items-center justify-between gap-3 border-b border-white/10 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:314:<div className="text-[10px] tracking-[0.24em] text-white/70">{presentation.eyebrow}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:315:<div className="mt-1 text-sm font-semibold text-white">{presentation.primaryLabel}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:322:<div className="grid gap-3 p-3 sm:grid-cols-[minmax(0,0.95fr)_minmax(0,1.05fr)]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:323:<div className="relative overflow-hidden rounded-2xl border border-white/10 bg-black/30 p-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:324:<div className="absolute inset-x-0 bottom-0 h-12 bg-gradient-to-t from-black/40 to-transparent" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:325:<div className="flex h-36 items-end justify-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:327:<div className="rounded-full bg-[radial-gradient(circle,rgba(248,113,113,0.18),transparent_70%)] p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:331:className="origin-bottom scale-150 sm:scale-[1.85]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:338:className="flex h-24 w-24 items-center justify-center rounded-3xl border border-white/10 bg-black/35"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:341:<PixelIcon src={presentation.iconSrc} alt={presentation.primaryLabel} className="h-14 w-14" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:348:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:349:<div className="grid gap-2 sm:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:350:<div className="rounded-xl border border-white/10 bg-black/25 px-3 py-2.5 text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:351:<div className="text-[10px] uppercase tracking-[0.18em] text-zinc-500">目标</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:352:<div className="mt-2 text-sm font-medium text-white">{presentation.primaryLabel}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:354:<div className="rounded-xl border border-white/10 bg-black/25 px-3 py-2.5 text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:355:<div className="flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:356:<MapPinned className="h-3.5 w-3.5" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:359:<div className="mt-2 text-sm font-medium text-white">{presentation.secondaryLabel}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:363:<div className="rounded-xl border border-white/10 bg-black/25 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:364:<div className="flex items-center justify-between gap-3 text-[10px] uppercase tracking-[0.18em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:366:<span className="text-white/70">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:370:<div className="mt-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:374:activeClassName="border-emerald-300/30 bg-emerald-400/85"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:429:className="fixed inset-0 z-[75] flex items-center justify-center bg-black/72 p-3 backdrop-blur-sm sm:p-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:437:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(88vh,36rem)] w-full max-w-md flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:441:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:442:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:443:<div className="text-sm font-semibold text-white">冒险设置</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:444:<div className="mt-1 text-[11px] text-zinc-500">调整音乐音量,查看统计数据,或保存并退出。</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:449:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:451:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:455:<div className="min-h-0 flex-1 space-y-4 overflow-y-auto p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:456:<div className="rounded-2xl border border-white/10 bg-[radial-gradient(circle_at_top,rgba(56,189,248,0.14),transparent_65%),rgba(0,0,0,0.24)] p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:457:<div className="flex items-start justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:459:<div className="text-[10px] tracking-[0.24em] text-sky-200/80">音频</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:460:<div className="mt-2 text-sm font-semibold text-white">音乐音量</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:462:<Volume2 className="h-4 w-4 text-sky-200/75" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:465:<div className="mt-4 flex items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:473:className="h-2 w-full cursor-pointer accent-sky-400"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:475:<div className="min-w-[3rem] rounded-full border border-white/10 bg-black/30 px-2 py-1 text-center text-xs text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:484:className="w-full rounded-2xl border border-white/10 bg-black/25 px-4 py-3 text-left transition hover:border-white/20"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:486:<div className="flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:488:<div className="text-sm font-semibold text-white">运行统计</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:489:<div className="mt-1 text-[11px] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:493:<BarChart3 className="h-4 w-4 text-amber-200/75" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:512:<div className="flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:514:<div className="text-sm font-semibold">保存并退出</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:515:<div className="mt-1 text-[11px] text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:519:<LogOut className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:524:<div className="rounded-xl border border-dashed border-white/10 bg-black/18 px-3 py-3 text-[11px] leading-relaxed text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:540:className="fixed inset-0 z-[76] flex items-center justify-center bg-black/76 p-3 backdrop-blur-sm sm:p-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:548:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(90vh,42rem)] w-full max-w-2xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:552:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:553:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:554:<div className="text-sm font-semibold text-white">冒险统计</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:555:<div className="mt-1 text-[11px] text-zinc-500">当前区域: {statistics.currentSceneName}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:560:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:562:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:566:<div className="min-h-0 flex-1 space-y-4 overflow-y-auto p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:567:<div className="rounded-2xl border border-amber-300/15 bg-[radial-gradient(circle_at_top,rgba(251,191,36,0.14),transparent_65%),rgba(0,0,0,0.24)] p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:568:<div className="text-[10px] tracking-[0.24em] text-amber-200/80">冒险总览</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:569:<div className="mt-2 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:574:<div className="grid gap-3 sm:grid-cols-2 xl:grid-cols-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:581:className="rounded-2xl border border-white/10 bg-black/22 px-4 py-3"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:583:<div className="flex items-center justify-between gap-3 text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:584:<span className="text-[10px] tracking-[0.18em]">{card.label}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:585:<Icon className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:587:<div className="mt-3 text-lg font-semibold text-white">{card.value}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:588:<div className="mt-1 text-[11px] leading-relaxed text-zinc-500">{card.detail}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:605:className="fixed inset-0 z-[68] flex items-center justify-center bg-black/72 p-3 backdrop-blur-sm sm:p-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:616:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(82vh,38rem)] w-full max-w-sm flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:620:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:621:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:622:<div className="text-sm font-semibold text-white">任务日志</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:623:<div className="mt-1 text-[11px] text-zinc-500">总任务数: {quests.length}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:631:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:633:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:637:<div className="flex-1 overflow-y-auto p-3 scrollbar-hide">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:639:<div className="space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:645:className="w-full rounded-xl border border-white/8 bg-black/20 px-3 py-2.5 text-left transition hover:border-white/15"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:647:<div className="flex items-start justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:648:<div className="min-w-0 flex-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:649:<div className="truncate text-sm font-semibold text-white">{quest.title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:650:<div className="mt-1 text-[11px] text-zinc-500">{quest.issuerNpcName}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:651:<div className="mt-1 text-xs leading-relaxed text-zinc-400">{quest.summary}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:667:<div className="rounded-xl border border-dashed border-white/10 bg-black/20 px-4 py-6 text-center text-sm text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:683:className="fixed inset-0 z-[69] flex items-center justify-center bg-black/72 p-3 backdrop-blur-sm sm:p-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:691:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(86vh,48rem)] w-full max-w-2xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:695:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:696:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:697:<div className="truncate text-sm font-semibold text-white">{selectedQuest.title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:698:<div className="mt-1 text-[11px] text-zinc-500">{selectedQuest.issuerNpcName}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:703:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:705:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:709:<div className="min-h-0 flex-1 space-y-4 overflow-y-auto p-4 scrollbar-hide sm:p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:710:<div className="rounded-2xl border border-white/8 bg-black/20 px-4 py-3.5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:711:<div className="text-[10px] tracking-[0.24em] text-zinc-500">任务简介</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:712:<div className="mt-2 text-sm leading-relaxed text-zinc-300">{selectedQuest.description}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:715:<div className="grid gap-3 lg:grid-cols-[minmax(0,1.25fr)_minmax(0,0.75fr)]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:735:<div className="flex justify-end">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:746:className="pixel-nine-slice pixel-pressable px-4 py-2 text-xs text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:765:className="fixed inset-0 z-[70] flex items-center justify-center bg-black/70 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:776:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,32rem)] w-full max-w-sm flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:780:<div className="min-h-0 flex-1 space-y-3 overflow-y-auto px-5 py-5 text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:781:<div className="text-[11px] tracking-[0.24em] text-emerald-300">任务完成</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:782:<div className="text-lg font-semibold text-white">奖励已准备</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:783:<div className="text-sm text-zinc-300">{completionNoticeQuest.title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:784:<div className="rounded-xl border border-emerald-400/15 bg-emerald-500/10 px-3 py-3 text-sm text-emerald-50">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:787:<div className="flex justify-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:795:className="pixel-nine-slice pixel-pressable px-4 py-2 text-xs text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:813:className="fixed inset-0 z-[71] flex items-center justify-center bg-black/72 p-3 backdrop-blur-sm sm:p-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:825:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,42rem)] w-full max-w-lg flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:829:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:830:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:831:<div className="text-sm font-semibold text-white">Quest reward claimed</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:832:<div className="mt-1 text-[11px] text-zinc-500">{rewardQuest.title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:841:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:843:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:847:<div className="min-h-0 flex-1 overflow-y-auto p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:870:className="fixed inset-0 z-[73] flex items-center justify-center bg-black/72 p-3 backdrop-blur-sm sm:p-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:881:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,44rem)] w-full max-w-lg flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:885:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:886:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:887:<div className="text-sm font-semibold text-white">战斗奖励</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:888:<div className="mt-1 text-[11px] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:898:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:900:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:904:<div className="min-h-0 flex-1 space-y-4 overflow-y-auto p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:905:<div className="rounded-2xl border border-emerald-300/15 bg-[radial-gradient(circle_at_top,rgba(16,185,129,0.14),transparent_65%),rgba(0,0,0,0.24)] p-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:906:<div className="text-[10px] tracking-[0.24em] text-emerald-200/80">战斗结束</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:907:<div className="mt-2 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:910:<div className="mt-3 flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:914:className="rounded-full border border-emerald-300/20 bg-emerald-500/10 px-3 py-1 text-xs text-emerald-50"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:922:<div className="rounded-2xl border border-amber-300/15 bg-[radial-gradient(circle_at_top,rgba(251,191,36,0.14),transparent_65%),rgba(0,0,0,0.24)] p-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:923:<div className="flex items-start justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:925:<div className="text-[10px] tracking-[0.24em] text-amber-200/80">战利品</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:926:<div className="mt-1 text-[11px] leading-relaxed text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:932:<PackageOpen className="h-4 w-4 text-amber-200/70" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:958:className="fixed inset-0 z-[74] flex items-center justify-center bg-black/72 p-3 backdrop-blur-sm sm:p-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:970:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,36rem)] w-full max-w-sm flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:974:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:975:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:976:<div className="truncate text-sm font-semibold text-white">{selectedRewardItem.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:977:<div className="mt-1 text-[11px] text-zinc-500">{selectedRewardItem.category}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:986:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:988:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:992:<div className="min-h-0 flex-1 space-y-4 overflow-y-auto p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:993:<div className="flex items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:995:<PixelIcon src={getQuestRewardItemIcon(selectedRewardItem)} className="h-10 w-10" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:997:<div className="min-w-0 flex-1 space-y-1 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:1005:<div className="rounded-xl border border-white/8 bg-black/20 px-3 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:1010:<div className="rounded-xl border border-emerald-400/15 bg-emerald-500/10 px-3 py-3 text-xs text-emerald-50">
|
||
E:\Repos\ai-native-visual-rpg\src\components\adventure-panel\AdventurePanelOverlays.tsx:1015:<div className="rounded-xl border border-white/8 bg-black/20 px-3 py-3 text-xs text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEffectLayer.tsx:114:className="pointer-events-none absolute"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEffectLayer.tsx:127:className="h-full w-full object-contain"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEffectLayer.tsx:165:className="pointer-events-none absolute"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEffectLayer.tsx:176:className="h-full w-full object-contain"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:123:className="absolute"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:146:<div className="relative">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:148:className="absolute"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:161:className="relative flex w-28 flex-col items-center"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:164:<div className="absolute -top-2 left-1/2 -translate-x-1/2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:170:className="h-full w-full"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:194:className="absolute"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:212:<div className="relative">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:214:<div className="absolute -top-2 left-1/2 -translate-x-1/2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:221:className="relative block"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:223:<div className="relative" style={{transform: effectivePlayerFacing === 'left' ? 'scaleX(-1)' : undefined}}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:235:<div className="absolute -top-9 right-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:273:className="absolute"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:288:className="relative flex w-28 flex-col items-center"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:292:className="absolute left-1/2 -translate-x-1/2"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:312:className="scale-[1.82] origin-bottom"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:318:className="origin-bottom drop-shadow-[0_8px_14px_rgba(0,0,0,0.38)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:330:className="scale-[1.82] origin-bottom"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:335:<div className="absolute -top-9 left-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:377:className="absolute"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:401:className="relative flex w-28 flex-col items-center"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:405:<div className="flex h-20 w-20 items-center justify-center rounded-2xl border border-amber-400/30 bg-amber-500/15 shadow-[0_0_20px_rgba(255,255,255,0.12)]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:409:className="h-12 w-12 object-contain"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:424:className="scale-[1.82] origin-bottom"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:429:className="drop-shadow-[0_8px_14px_rgba(0,0,0,0.38)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasEntityLayer.tsx:436:<div className="absolute -top-9 left-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasOverlayLayer.tsx:10:<div className="pointer-events-none absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-black/20" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasOverlayLayer.tsx:14:className="pointer-events-none absolute inset-0"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasOverlayLayer.tsx:20:className="pointer-events-none absolute inset-x-0 top-4 text-center"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasOverlayLayer.tsx:28:<span className="rounded-full border border-sky-300/30 bg-sky-950/65 px-3 py-1 text-[10px] font-bold tracking-[0.25em] text-sky-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasRuntime.tsx:143:<div ref={stageRef} className="relative h-full w-full overflow-hidden bg-black">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasSceneLayer.tsx:38:className="absolute inset-0 h-full w-full object-cover"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasSceneLayer.tsx:44:className="absolute inset-0"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasSceneLayer.tsx:56:<div className="pointer-events-none absolute inset-0 opacity-10 mix-blend-overlay [background-image:radial-gradient(circle_at_20%_20%,rgba(255,255,255,0.14),transparent_20%),radial-gradient(circle_at_80%_30%,rgba(255,255,255,0.08),transparent_18%),radial-gradient(circle_at_50%_80%,rgba(255,255,255,0.06),transparent_22%)]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasSceneLayer.tsx:63:className="pointer-events-none absolute bottom-[9%] left-1/2 z-[1] w-[min(92%,980px)] -translate-x-1/2 object-contain opacity-95"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasSceneLayer.tsx:72:<div className="absolute left-1/2 top-3 z-20 -translate-x-1/2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasSceneLayer.tsx:78:className="pointer-events-none absolute left-0 top-1/2 -translate-x-[46%] -translate-y-1/2"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasSceneLayer.tsx:82:className="h-[2.35rem] w-[2.35rem] opacity-95"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasSceneLayer.tsx:91:className="pointer-events-none absolute right-0 top-1/2 translate-x-[46%] -translate-y-1/2"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasSceneLayer.tsx:95:className="h-[2.35rem] w-[2.35rem] opacity-95"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasSceneLayer.tsx:102:className="pixel-nine-slice pixel-pressable relative z-10 min-w-[168px] max-w-[min(68vw,320px)] text-center text-[11px] font-bold tracking-[0.18em] text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasSceneLayer.tsx:105:<span className="block overflow-hidden" style={{perspective: '480px'}}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasSceneLayer.tsx:106:<span className="relative block h-[1.1rem] overflow-hidden leading-[1.1rem]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasSceneLayer.tsx:114:className="absolute inset-0 flex items-center justify-center whitespace-nowrap"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasShared.tsx:110:<div className="w-11">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasShared.tsx:111:<div className="h-1 overflow-hidden rounded-full border border-white/10 bg-black/55 shadow-[0_1px_4px_rgba(0,0,0,0.35)]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasShared.tsx:223:<div className="h-full w-full" style={{transform: facing === 'left' ? 'scaleX(-1)' : undefined}}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-canvas\GameCanvasShared.tsx:257:className="pointer-events-none"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:261:<div className="flex h-full min-h-0 flex-col">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:262:<div className="mb-3 flex justify-start">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:266:className="rounded-full border border-white/10 bg-black/18 px-3 py-1.5 text-[11px] text-zinc-300 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:271:<div className="mb-4 text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:272:<div className="text-2xl font-black text-white sm:text-[2rem]">选择你的角色</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:273:<div className="mt-1 text-[11px] tracking-[0.14em] text-zinc-500">左右滑动浏览角色</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:279:className="character-carousel scrollbar-hide flex-[1_1_auto]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:299:<span className="character-carousel__cover">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:304:className="character-carousel__portrait character-carousel__portrait--animated"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:307:<img src={character.portrait} alt={meta.name} className="character-carousel__portrait" style={{imageRendering: 'pixelated'}} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:312:<span className="character-carousel__selected-name">{meta.name}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:313:<span className="character-carousel__meta character-carousel__meta--selected">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:314:<span className="character-carousel__title character-carousel__title--selected">{meta.title}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:318:<span className="character-carousel__meta">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:319:<span className="character-carousel__name">{meta.name}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:320:<span className="character-carousel__title">{meta.title}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:329:<div className="mt-3 grid gap-2 md:grid-cols-[0.85fr_1.15fr]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:330:<div className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(UI_CHROME.statsPanel, {paddingX: 12, paddingY: 10})}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:331:<div className="mb-2 flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:332:<div className="text-xs font-bold text-white">角色属性</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:333:<div className="flex items-center gap-2 text-[10px] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:335:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-0.5 text-[9px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:340:<div className="grid grid-cols-4 gap-1 text-[11px] text-zinc-300 sm:gap-1.5 sm:text-[13px]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:342:<div key={key} className="rounded-lg border border-white/6 bg-black/20 px-2 py-1.5 text-center sm:px-2.5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:350:className="pixel-nine-slice pixel-panel character-backstory-panel flex flex-col"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:353:<div className="mb-2 flex items-start justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:354:<div className="character-backstory-title text-xs font-bold text-white">背景故事</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:358:className="rounded-full border border-sky-300/20 bg-sky-500/10 px-3 py-1 text-[10px] text-sky-100 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:363:<div className="flex flex-1 flex-col text-[13px] leading-6 text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:365:<div className="mt-auto flex items-end justify-between gap-3 pt-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:366:<div className="min-w-0 flex flex-wrap gap-1.5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:368:<span key={tag} className="rounded-full border border-white/10 bg-black/20 px-2 py-0.5 text-[10px] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:377:className="shrink-0 text-[11px] font-medium text-sky-200 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:386:<div className="mt-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:390:className="pixel-nine-slice pixel-pressable mx-auto block w-full max-w-[16rem] text-left"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:393:<div className="flex items-center justify-between gap-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:394:<span className="text-sm font-semibold text-white">进入营地</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:395:<span className="text-white/60">开始</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\CharacterSelectionFlow.tsx:404:subtitle="Character Details"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellLoaders.tsx:12:className="fixed inset-0 z-[90] flex items-center justify-center bg-black/70 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellLoaders.tsx:16:className="pixel-nine-slice pixel-modal-shell flex min-h-40 w-full max-w-md items-center justify-center px-6 py-8 text-center text-sm text-zinc-300 shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellLoaders.tsx:32:<div className="pixel-nine-slice flex min-h-0 flex-1 items-center justify-center px-4 py-6 text-center text-xs uppercase tracking-[0.24em] text-zinc-500" style={getNineSliceStyle(UI_CHROME.modalPanel)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellOverlays.tsx:138:className="fixed inset-0 z-[65] flex items-center justify-center bg-black/70 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellOverlays.tsx:146:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,60rem)] w-full max-w-5xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellOverlays.tsx:150:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellOverlays.tsx:151:<div className="min-w-0 pr-10 text-sm font-semibold text-white">{overlayPanel === 'character' ? '闃熶紞' : '鑳屽寘'}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellOverlays.tsx:155:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellOverlays.tsx:157:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellOverlays.tsx:160:<div className="flex min-h-0 flex-1 p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellOverlays.tsx:261:<Suspense fallback={<ModalLoadingFallback label="姝e湪鍔犺浇 NPC 浜や簰..." />}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellRuntime.tsx:188:className="fusion-pixel-app pixel-root-shell flex h-screen max-h-screen flex-col overflow-hidden font-sans text-zinc-100"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellRuntime.tsx:197:<div className="absolute inset-0 flex items-center justify-center bg-[radial-gradient(circle_at_top,rgba(255,255,255,0.14),transparent_40%),linear-gradient(180deg,rgba(8,10,14,0.2),rgba(8,10,14,0.82))]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellRuntime.tsx:198:<div className="text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellRuntime.tsx:199:<div className="text-5xl font-black tracking-[0.14em] text-white sm:text-6xl">叙世</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellRuntime.tsx:200:<div className="mt-3 text-sm tracking-[0.44em] text-zinc-300 sm:text-base">GENARRATIVE</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellRuntime.tsx:263:className="flex h-full min-h-0 flex-col"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellRuntime.tsx:278:<motion.div key="story-flow" initial={{opacity: 0}} animate={{opacity: 1}} className="flex h-full min-h-0 flex-col">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellStoryPanels.tsx:112:<div className="story-top-tabs mb-3 grid grid-cols-3 gap-2 sm:gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellStoryPanels.tsx:118:<span className="pixel-tab-button__inner">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellStoryPanels.tsx:123:<span className="pixel-tab-button__label">闃熶紞</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellStoryPanels.tsx:131:<span className="pixel-tab-button__inner">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellStoryPanels.tsx:136:<span className="pixel-tab-button__label">鍐掗櫓</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellStoryPanels.tsx:144:<span className="pixel-tab-button__inner">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\GameShellStoryPanels.tsx:149:<span className="pixel-tab-button__label">鑳屽寘</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:48:{ label: 'QQ Group', value: '1094580241' },
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:49:{ label: 'WeChat', value: 'bzh253518756' },
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:269:className="flex h-full w-full items-center justify-center"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:271:<div className="flex h-full w-full max-w-sm flex-col gap-5 py-4 sm:py-6">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:272:<div className="flex min-h-0 flex-1 items-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:273:<div className="flex w-full flex-col gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:278:className="pixel-nine-slice pixel-pressable w-full text-left"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:284:<div className="flex items-center justify-between">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:285:<span className="text-base font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:288:<span className="text-white/60">开始</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:303:className="pixel-nine-slice pixel-pressable w-full text-left"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:309:<div className="flex items-center justify-between">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:310:<span className="text-base font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:313:<span className="text-white/60">开始</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:319:className="pixel-nine-slice pixel-pressable w-full text-left"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:325:<div className="flex items-center justify-between">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:326:<span className="text-base font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:329:<span className="text-white/60">查看</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:335:className="pixel-nine-slice pixel-panel w-full"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:341:<div className="text-[10px] font-bold tracking-[0.2em] text-emerald-200/75">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:344:<div className="mt-3 space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:348:className="flex items-center justify-between gap-3 rounded-xl border border-white/8 bg-black/20 px-3 py-2 text-sm text-zinc-200"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:350:<span className="text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:353:<span className="font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:370:className="flex h-full min-h-0 flex-col"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:372:<div className="mb-4 flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:373:<div className="text-sm font-bold tracking-[0.2em] text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:382:className="rounded-full border border-white/10 bg-black/18 px-3 py-1.5 text-[11px] text-zinc-300 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:388:<div className="min-h-0 flex-1 overflow-y-auto pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:389:<div className="grid gap-3 pb-1 md:grid-cols-2 xl:grid-cols-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:395:className="pixel-nine-slice pixel-pressable order-2 relative flex min-h-[12.5rem] flex-col items-start justify-between overflow-hidden text-left"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:405:className="absolute inset-0 h-full w-full object-cover opacity-25"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:409:<div className="absolute inset-0 bg-[linear-gradient(180deg,rgba(8,10,14,0.12),rgba(8,10,14,0.82))]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:410:<div className="absolute right-3 top-3 flex h-9 w-9 items-center justify-center rounded-full border border-white/10 bg-black/25">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:413:className="h-5 w-5 opacity-95"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:416:<div className="relative z-10 flex h-full w-full flex-col">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:417:<div className="flex items-start justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:418:<div className="rounded-full border border-white/10 bg-black/24 px-3 py-1 text-[10px] tracking-[0.2em] text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:423:className="h-10 w-10 opacity-95"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:426:<div className="mt-auto">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:427:<div className="text-3xl font-black text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:430:<div className="mt-2 flex items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:431:<span className="rounded-full border border-emerald-400/20 bg-emerald-500/10 px-3 py-1 text-[10px] text-emerald-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:434:<span className="rounded-full border border-white/10 bg-black/24 px-2.5 py-1 text-[10px] text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:450:className="pixel-nine-slice pixel-pressable order-1 relative flex min-h-[12.5rem] flex-col items-start justify-between overflow-hidden text-left"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:460:className="absolute inset-0 h-full w-full object-cover opacity-25"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:464:<div className="absolute inset-0 bg-[linear-gradient(180deg,rgba(8,10,14,0.14),rgba(8,10,14,0.84))]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:465:<div className="relative z-10 flex h-full w-full flex-col">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:466:<div className="flex items-start justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:467:<div className="rounded-full border border-sky-300/20 bg-sky-500/10 px-3 py-1 text-[10px] tracking-[0.2em] text-sky-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:470:<div className="rounded-full border border-white/10 bg-black/24 px-2.5 py-1 text-[10px] text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:476:<div className="mt-auto">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:477:<div className="text-2xl font-black text-white sm:text-[1.7rem]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:480:<div className="mt-2 line-clamp-2 max-w-[18rem] text-xs leading-5 text-zinc-200/90">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:483:<div className="mt-3 flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:484:<span className="rounded-full border border-emerald-400/20 bg-emerald-500/10 px-3 py-1 text-[10px] text-emerald-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:487:<span className="rounded-full border border-white/10 bg-black/24 px-2.5 py-1 text-[10px] text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:504:className="pixel-nine-slice pixel-pressable order-first relative flex min-h-[12.5rem] flex-col items-start justify-between overflow-hidden text-left"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:510:<div className="absolute inset-0 bg-[radial-gradient(circle_at_top_left,rgba(125,211,252,0.18),transparent_42%),linear-gradient(180deg,rgba(8,10,14,0.18),rgba(8,10,14,0.82))]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:511:<div className="absolute right-3 top-3 flex h-9 w-9 items-center justify-center rounded-full border border-sky-300/20 bg-sky-500/10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:514:className="h-5 w-5 opacity-95"
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:517:<div className="relative z-10 flex h-full w-full flex-col">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:518:<div className="rounded-full border border-sky-300/20 bg-sky-500/10 px-3 py-1 text-[10px] tracking-[0.2em] text-sky-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:521:<div className="mt-auto">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:522:<div className="text-3xl font-black text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:525:<div className="mt-2 max-w-[16rem] text-sm leading-6 text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\game-shell\PreGameSelectionFlow.tsx:544:className="flex h-full min-h-0 flex-col"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:92:errorMessage: 'Failed to save character preset overrides.',
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:149:return <EditorEmptyState message="No character presets are available." />;
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:220:name: 'New Skill',
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:261:<div className="grid gap-6 xl:grid-cols-[360px_1fr_420px]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:264:title="Characters"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:265:description="Browse the character roster and edit preset data."
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:266:selectLabel="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:275:label: `${optionCharacter.name} 闂?${optionCharacter.title}`,
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:279:saveLabel="Save Character Overrides"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:284:<div className="mt-4 rounded-xl border border-white/10 bg-white/5 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:286:<div className="flex items-start gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:288:<div className="flex h-20 w-20 shrink-0 items-center justify-center overflow-hidden rounded-xl border border-white/10 bg-black/30">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:293:className="h-full w-full scale-125 object-contain"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:297:<div className="min-w-0 flex-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:299:<div className="text-sm font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:302:<div className="mt-1 text-[11px] uppercase tracking-[0.22em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:305:<div className="mt-2 text-xs leading-relaxed text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:312:<div className="space-y-6">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:315:title="Character Details"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:316:description="Edit the core character profile and preview settings."
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:319:<div className="mb-4 grid gap-3 md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:322:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:337:<div className="mb-5 flex min-h-[320px] items-center justify-center rounded-2xl border border-white/10 bg-[radial-gradient(circle_at_top,rgba(16,185,129,0.14),transparent_45%),linear-gradient(180deg,#161922,#0c0f15)] p-6">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:339:<div className="relative flex h-[260px] w-[220px] items-end justify-center overflow-hidden rounded-2xl border border-white/5 bg-black/20">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:341:<div className="absolute inset-x-0 bottom-0 h-20 bg-[radial-gradient(circle_at_center,rgba(16,185,129,0.16),transparent_65%)]" />{' '}
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:345:className="h-[210px] w-[210px] scale-[1.15] origin-bottom"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:349:<div className="grid gap-4 lg:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:351:<div className="rounded-xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:353:<div className="mb-3 text-xs font-semibold uppercase tracking-[0.22em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:356:<div className="space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:361:className="rounded-lg border border-white/5 bg-white/[0.03] px-3 py-2 text-sm text-zinc-200"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:364:<div className="text-[11px] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:367:<div className="mt-1">{item.item}</div>{' '}
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:368:<div className="mt-1 text-[11px] text-amber-200/80">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:375:<div className="rounded-xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:377:<div className="mb-3 text-xs font-semibold uppercase tracking-[0.22em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:380:<div className="space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:386:className="rounded-lg border border-white/5 bg-white/[0.03] px-3 py-2 text-sm text-zinc-200"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:389:<div className="text-[11px] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:392:<div className="mt-1">{item.name}</div>{' '}
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:393:<div className="mt-1 text-[11px] text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:404:title="Skill Preview"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:405:description="Preview ranged skills for the selected character."
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:408:<div className="space-y-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:409:<div className="grid gap-3 md:grid-cols-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:411:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:420:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:429:label="Preview Monster"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:444:<div className="rounded-xl border border-white/10 bg-black/20 px-4 py-4 text-sm text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:450:title="Skill Setup"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:451:description="Configure the selected character's skills."
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:454:<div className="space-y-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:456:<div className="flex items-center justify-between">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:458:<div className="text-xs uppercase tracking-[0.22em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:464:className="inline-flex items-center gap-2 rounded-lg border border-emerald-400/20 bg-emerald-500/10 px-3 py-1.5 text-xs text-emerald-100 transition hover:bg-emerald-500/20"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:467:<Plus className="h-3.5 w-3.5" /> <span>Add Skill</span>{' '}
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:473:className="rounded-xl border border-white/10 bg-black/20 p-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:476:<div className="mb-3 flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:478:<div className="text-sm font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:484:className="rounded-lg border border-rose-400/20 bg-rose-500/10 p-2 text-rose-100 transition hover:bg-rose-500/20"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:487:<Trash2 className="h-4 w-4" />{' '}
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:490:<div className="grid gap-3 md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:493:label="閹垛偓閼?ID"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:498:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:503:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:514:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:529:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:535:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:541:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:549:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:557:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:574:<div className="text-xs uppercase tracking-[0.22em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:577:<div className="grid gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:582:className="rounded-xl border border-white/10 bg-black/20 p-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:585:<div className="mb-3 text-sm font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:588:<div className="grid gap-3 md:grid-cols-2 xl:grid-cols-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:591:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:598:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:605:label="Start Frame"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:613:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:627:<div className="space-y-6">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:629:<SectionCard title="Section" description="Editor section.">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:631:<div className="grid gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:634:label="鐟欐帟澹?ID"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:640:label="Name"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:645:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:650:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:655:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:660:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:670:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:675:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:687:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:697:title="Attributes"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:698:description="Adjust the core character attributes."
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:701:<div className="grid gap-3 md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:704:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:710:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:716:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:722:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:729:<SectionCard title="Section" description="Editor section.">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:731:<div className="space-y-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:736:className="rounded-xl border border-white/10 bg-black/20 p-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:739:<div className="mb-3 text-sm font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:742:<div className="grid gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:745:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:755:{ label: 'Unset', value: '' },
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\CharacterPresetPanel.tsx:763:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\LazyEditorFallback.tsx:3:<div className="rounded-2xl border border-white/10 bg-black/20 p-6 text-sm text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:50:errorMessage: 'Failed to save monster overrides.',
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:57:<div className="rounded-2xl border border-white/10 bg-black/20 p-6 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:121:<div className="grid gap-6 xl:grid-cols-[340px_1fr_400px]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:124:title="Section"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:125:description="Editor section."
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:126:selectLabel="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:135:label: `${WORLD_LABELS[monster.worldType]} 闂?${optionMonster.name}`,
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:139:saveLabel="Save Monster Overrides"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:144:<div className="mt-4 rounded-xl border border-white/10 bg-white/5 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:146:<div className="text-sm font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:149:<div className="mt-1 text-xs text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:152:<div className="mt-2 text-xs leading-relaxed text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:158:title="Monster Override Preview"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:159:description="Editor section."
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:162:<div className="mb-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:165:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:178:<div className="flex min-h-[360px] items-center justify-center rounded-2xl border border-white/10 bg-[radial-gradient(circle_at_top,rgba(250,204,21,0.12),transparent_40%),linear-gradient(180deg,#1a1711,#0f0d09)] p-6">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:180:<div className="flex h-[240px] w-[240px] items-end justify-center rounded-2xl border border-white/5 bg-black/20">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:185:className="scale-[2.5] origin-bottom"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:189:<div className="mt-4 grid gap-3 md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:191:<div className="rounded-xl border border-white/10 bg-black/20 p-3 text-sm text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:194:<div className="rounded-xl border border-white/10 bg-black/20 p-3 text-sm text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:197:<div className="rounded-xl border border-white/10 bg-black/20 p-3 text-sm text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:200:<div className="rounded-xl border border-white/10 bg-black/20 p-3 text-sm text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:205:<div className="space-y-6">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:207:<SectionCard title="Section" description="Editor section.">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:209:<div className="grid gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:212:label="Monster ID"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:218:label="Name"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:223:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:228:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:234:label="Intro Action"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:240:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:248:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:256:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:262:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:268:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:275:<SectionCard title="Section" description="Editor section.">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:277:<div className="grid gap-3 md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:280:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:287:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:294:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:300:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:307:<SectionCard title="Section" description="Editor section.">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:309:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:318:className="rounded-xl border border-white/10 bg-black/20 p-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:321:<div className="mb-3 text-sm font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:324:<div className="grid gap-3 md:grid-cols-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:327:label="Field"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\MonsterPresetPanel.tsx:343:label="FPS"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:127:successMessage: 'Saved NPC overrides.',
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:128:errorMessage: 'Failed to save NPC overrides.',
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:159:return <EditorEmptyState message="No NPC presets are available." />;
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:174:<div className="grid gap-6 xl:grid-cols-[340px_1fr_400px]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:177:title="NPC Library"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:178:description="Browse and select an NPC preset."
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:179:selectLabel="NPC ID"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:188:label: `${optionNpc.name} (${item.sceneNames.join(' / ')})`,
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:192:saveLabel="Save NPC Overrides"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:197:<div className="mt-4 rounded-xl border border-white/10 bg-white/5 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:199:<div className="text-sm font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:202:<div className="mt-1 text-xs text-zinc-400">{effectiveNpc.role}</div>{' '}
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:203:<div className="mt-3 flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:208:className="rounded-full border border-white/10 bg-black/20 px-2 py-1 text-[11px] text-zinc-300"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:215:<div className="mt-3 text-xs leading-relaxed text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:221:title="Skill Preview"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:222:description="Preview ranged skills from the linked character."
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:225:<div className="space-y-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:226:<div className="grid gap-3 md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:228:label="Skill"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:237:label="World"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:257:<div className="rounded-xl border border-white/10 bg-black/20 px-4 py-4 text-sm text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:264:title="Visual Preview"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:272:<div className="flex min-h-[420px] items-center justify-center rounded-2xl border border-white/10 bg-[radial-gradient(circle_at_top,rgba(244,63,94,0.16),transparent_45%),linear-gradient(180deg,#17131a,#0d0a0f)] p-6">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:274:<div className="relative flex h-[340px] w-[260px] items-end justify-center overflow-hidden rounded-2xl border border-white/5 bg-black/20">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:276:<div className="absolute inset-0 opacity-10 [background-image:linear-gradient(rgba(255,255,255,0.16)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.16)_1px,transparent_1px)] [background-size:20px_20px]" />{' '}
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:277:<div className="mb-8 drop-shadow-[0_18px_24px_rgba(0,0,0,0.45)]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:282:className="scale-[2.4] origin-bottom"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:290:<div className="mt-4 rounded-xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:292:<div className="mb-3 text-xs uppercase tracking-[0.22em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:295:<div className="flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:300:className="rounded-full border border-white/10 bg-white/[0.03] px-3 py-1 text-xs text-zinc-200"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:310:title="NPC Details"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:311:description="Edit the selected NPC preset."
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:314:<div className="grid gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:317:label="NPC ID"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:323:label="Name"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:328:label="Role"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:333:label="Avatar"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:338:label="Linked Character ID"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:344:label="Monster Preset ID"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:351:label="Initial Affinity"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:356:label="Description"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:361:<div className="rounded-xl border border-white/10 bg-black/20 px-3 py-3 text-xs leading-relaxed text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:368:<div className="xl:col-span-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:371:title="Visual Editor"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:377:className="p-6"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\SceneNpcPresetPanel.tsx:381:<div className="rounded-xl border border-white/10 bg-black/20 px-4 py-4 text-sm text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:52:successMessage: 'Saved scene overrides.',
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:53:errorMessage: 'Failed to save scene overrides.',
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:61:<div className="rounded-2xl border border-white/10 bg-black/20 p-6 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:105:npcName: 'Treasure Ahead',
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:108:context: 'Treasure',
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:130:<div className="grid gap-6 xl:grid-cols-[340px_1fr_400px]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:132:title="Scene Library"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:133:description="Browse and select a scene preset."
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:136:label="Scene"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:145:label: `${WORLD_LABELS[scene.worldType]} - ${optionScene.name}`,
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:150:<div className="mt-4 rounded-xl border border-white/10 bg-white/5 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:151:<div className="text-sm font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:154:<div className="mt-1 text-xs text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:157:<div className="mt-2 text-xs leading-relaxed text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:162:saveLabel="Save"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:170:title="Scene Preview"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:171:description="Preview monsters, NPCs, and treasure for the selected scene."
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:173:<div className="mb-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:175:label="Preview Mode"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:179:{ label: 'Monster Preview', value: 'monster' },
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:180:{ label: 'NPC Preview', value: 'npc' },
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:181:{ label: 'Treasure Preview', value: 'treasure' },
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:182:{ label: 'Empty', value: 'empty' },
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:186:<div className="h-[420px] overflow-hidden rounded-2xl border border-white/10 bg-black">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:204:<div className="mt-4 grid gap-3 md:grid-cols-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:205:<div className="rounded-xl border border-white/10 bg-black/20 p-3 text-sm text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:206:<div className="text-[11px] uppercase tracking-[0.22em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:209:<div className="mt-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:213:<div className="rounded-xl border border-white/10 bg-black/20 p-3 text-sm text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:214:<div className="text-[11px] uppercase tracking-[0.22em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:217:<div className="mt-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:221:<div className="rounded-xl border border-white/10 bg-black/20 p-3 text-sm text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:222:<div className="text-[11px] uppercase tracking-[0.22em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:225:<div className="mt-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:233:title="Scene Details"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:234:description="Edit the selected scene preset."
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:236:<div className="grid gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:238:label="Scene ID"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:244:label="World"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:250:label="Name"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:255:label="Description"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:261:label="Image Source"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:266:label="Forward Scene"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:271:options={[{ label: 'Unset', value: '' }, ...sceneOptions]}
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:274:label="Connected Scene IDs"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:282:label="Monster IDs"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:290:label="Treasure Hints"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:297:<div className="rounded-xl border border-white/10 bg-black/20 p-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:298:<div className="mb-2 text-xs font-medium text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:301:<div className="flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\ScenePresetPanel.tsx:305:className="rounded-full border border-white/10 bg-white/[0.03] px-3 py-1 text-xs text-zinc-200"
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\shared.ts:42:{ id: 'characters', label: 'Characters', icon: User },
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\shared.ts:43:{ id: 'npcs', label: 'NPC', icon: Users },
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\shared.ts:44:{ id: 'scenes', label: 'Scenes', icon: MapIcon },
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\shared.ts:45:{ id: 'monsters', label: 'Monsters', icon: Sword },
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\shared.ts:46:{ id: 'items', label: 'Items', icon: Package },
|
||
E:\Repos\ai-native-visual-rpg\src\components\preset-editor\shared.ts:47:{ id: 'functions', label: 'Functions', icon: Braces },
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:206:<div className="space-y-3 rounded-xl border border-sky-400/12 bg-sky-500/6 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:207:<div className="flex items-center justify-between gap-3 text-[10px] uppercase tracking-[0.16em] text-sky-100/80">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:209:<span className="text-zinc-400">{'\u70b9\u51fb\u6807\u7b7e\u67e5\u770b\u8d21\u732e\u8ba1\u7b97'}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:211:<div className="flex justify-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:212:<div className="w-full max-w-[12rem] rounded-xl border border-white/8 bg-black/20 px-3 py-2 text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:213:<div className="text-[10px] uppercase tracking-[0.16em] text-zinc-500">{'\u603b\u4fee\u6b63\u500d\u6570'}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:214:<div className="mt-1 text-sm font-semibold tabular-nums text-emerald-100">x{breakdown.totalContributionMultiplier.toFixed(2)}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:218:<div className="flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:224:className="min-w-[6.25rem] rounded-xl border px-3 py-2 text-left text-[10px] text-white transition-transform hover:-translate-y-0.5"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:228:<div className="flex items-center justify-between gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:229:<span className="font-medium">{row.label}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:230:<span className="text-[11px] font-semibold tabular-nums text-current/80">{row.product.toFixed(2)}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:232:<div className="mt-2 h-1.5 overflow-hidden rounded-full bg-black/35">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:233:<div className="h-full rounded-full" style={getContributionTrackStyle(row.product, weakestProduct, strongestProduct)} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:239:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-1 text-[10px] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:340:<div className="space-y-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:341:<div className="flex items-center justify-between gap-3 text-[10px] uppercase tracking-[0.16em] text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:343:<span className="text-zinc-200">{current} / {max}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:345:<div className="h-2 overflow-hidden rounded-full border border-white/10 bg-black/45">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:362:<div className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(chrome)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:363:<div className="mb-3 text-xs font-bold text-white">{title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:375:<div className="grid grid-cols-2 gap-2 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:377:<div key={key} className="rounded-lg border border-white/5 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:378:<div className="text-[10px] uppercase tracking-[0.18em] text-zinc-500">{ATTRIBUTE_LABELS[key]}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:379:<div className="mt-1 text-base text-white">{value}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:394:<div className="grid gap-2 sm:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:402:<div className="flex items-center justify-between gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:403:<div className="font-semibold text-white">{skill.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:404:<span className="rounded-full border border-white/10 bg-white/6 px-2 py-0.5 text-[10px] text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:408:<div className="mt-2 grid grid-cols-2 gap-2 text-[11px] text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:415:<div className="mt-3 flex items-center justify-between text-[10px] tracking-[0.16em] text-sky-200/85">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:432:<div className="space-y-2 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:436:className="flex items-center justify-between rounded-lg border border-white/5 bg-black/20 px-3 py-2"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:438:<div className="flex items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:439:<PixelIcon src={getEquipmentSlotIcon(item.slot)} className="h-8 w-8" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:441:<div className="text-[10px] tracking-[0.2em] text-zinc-500">{item.slot}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:445:<span className="rounded-full border border-amber-500/20 bg-amber-500/10 px-2 py-0.5 text-[10px] text-amber-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:466:accentClassName: 'border-white/12 bg-white/8 text-zinc-100',
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:472:accentClassName: 'border-sky-300/20 bg-sky-500/10 text-sky-100',
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:478:accentClassName: 'border-emerald-300/20 bg-emerald-500/10 text-emerald-100',
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:484:accentClassName: 'border-amber-300/20 bg-amber-500/10 text-amber-100',
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:490:accentClassName: 'border-rose-300/22 bg-rose-500/12 text-rose-100',
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:509:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:510:<div className="rounded-xl border border-white/8 bg-black/20 px-4 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:511:<div className="flex flex-wrap items-start justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:513:<div className="text-[10px] tracking-[0.18em] text-zinc-500">好感等级</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:514:<div className="mt-2 flex flex-wrap items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:518:<span className="text-sm font-semibold text-white">当前好感 {affinity}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:521:<div className="text-right text-[10px] tracking-[0.16em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:525:<div className="mt-1 text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:531:<div className="text-zinc-200">已达最高节点</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:532:<div className="mt-1">继续提升可稳固关系优势</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:537:<p className="mt-3 text-sm leading-relaxed text-zinc-300">{currentLevel.description}</p>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:540:<div className="rounded-xl border border-white/8 bg-black/20 px-3 py-3 sm:px-4 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:541:<div className="text-[10px] tracking-[0.18em] text-zinc-500">好感进度</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:542:<div className="mt-1 text-[11px] leading-relaxed text-zinc-500">节点数值表示进入对应等级所需的好感度。</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:544:<div className="relative mt-4 pt-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:545:<div className="absolute left-0 right-0 top-5 h-px bg-gradient-to-r from-transparent via-white/18 to-transparent" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:546:<div className="absolute left-0 right-0 top-[1.02rem] h-2 rounded-full border border-white/8 bg-gradient-to-b from-white/[0.08] via-white/[0.03] to-black/35 shadow-[inset_0_1px_0_rgba(255,255,255,0.05)]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:548:className="absolute left-0 top-[1.02rem] h-2 rounded-full bg-gradient-to-r from-sky-300 via-amber-300 to-rose-300 shadow-[0_0_16px_rgba(251,191,36,0.16)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:562:className="absolute top-0"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:568:<div className="relative flex h-9 w-4 items-end justify-center sm:h-11 sm:w-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:570:<div className="absolute bottom-0 h-8 w-3 rounded-full bg-sky-300/20 blur-[6px] sm:h-10 sm:w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:573:<div className="absolute bottom-0 h-6 w-2.5 rounded-full bg-amber-300/10 blur-[4px] sm:h-7" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:584:<div className="absolute inset-x-0 top-0 h-1/3 bg-white/20" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:591:<div className="grid grid-cols-5 gap-1 pt-10 sm:gap-2 sm:pt-12">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:596:<div key={`affinity-label-${level.value}`} className="text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:755:className="fixed inset-0 z-[72] flex items-center justify-center bg-black/72 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:763:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,60rem)] w-full max-w-4xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:767:<div className="flex items-center justify-between border-b border-white/10 px-5 py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:768:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:769:<div className="text-[10px] tracking-[0.22em] text-sky-300/80">实体详情</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:770:<div className="mt-1 text-sm font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:780:className="rounded-full border border-white/10 bg-black/20 p-2 text-zinc-400 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:782:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:786:<div className="min-h-0 flex-1 overflow-y-auto p-4 sm:p-5 lg:overflow-hidden">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:788:<div className="grid min-h-0 gap-4 lg:grid-cols-[minmax(0,0.82fr)_minmax(0,1.18fr)] lg:overflow-hidden">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:789:<div className="space-y-4 lg:max-h-full lg:overflow-y-auto lg:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:791:<div className="flex flex-col items-center text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:792:<div className="flex h-40 w-full max-w-[16rem] items-center justify-center overflow-hidden rounded-2xl border border-white/10 bg-black/20">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:796:className="h-full w-full"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:797:imageClassName="object-bottom"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:801:<div className="mt-3 rounded-full border border-amber-400/25 bg-amber-500/10 px-3 py-1 text-[10px] tracking-[0.18em] text-amber-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:804:<div className="mt-3 text-base font-bold text-white">{playerCharacter.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:805:<div className="mt-1 flex items-center justify-center gap-2 text-[10px] tracking-[0.2em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:807:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-0.5 text-[9px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:811:<p className="mt-3 text-sm leading-relaxed text-zinc-300">{playerCharacter.description}</p>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:816:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:829:<div className="space-y-4 lg:min-h-0 lg:overflow-y-auto lg:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:834:<div className="rounded-xl border border-white/8 bg-black/18 px-4 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:839:<div className="rounded-xl border border-white/8 bg-black/18 px-4 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:862:<div className="grid min-h-0 gap-4 lg:grid-cols-[minmax(0,0.82fr)_minmax(0,1.18fr)] lg:overflow-hidden">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:863:<div className="space-y-4 lg:max-h-full lg:overflow-y-auto lg:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:865:<div className="flex flex-col items-center text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:866:<div className="flex h-40 w-full max-w-[16rem] items-center justify-center overflow-hidden rounded-2xl border border-white/10 bg-black/20">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:870:className="h-full w-full"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:871:imageClassName="object-bottom"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:875:<div className="mt-3 rounded-full border border-sky-400/25 bg-sky-500/10 px-3 py-1 text-[10px] tracking-[0.18em] text-sky-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:878:<div className="mt-3 text-base font-bold text-white">{companionCharacter.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:879:<div className="mt-1 flex items-center justify-center gap-2 text-[10px] tracking-[0.2em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:881:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-0.5 text-[9px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:885:<p className="mt-3 text-sm leading-relaxed text-zinc-300">{companionCharacter.description}</p>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:890:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:892:label="HP"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:898:label="MP"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:911:<div className="mt-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:916:<div className="hidden mt-4 grid grid-cols-2 gap-2 text-xs text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:917:<div className="rounded-lg border border-white/5 bg-black/20 px-3 py-2">好感:{companionNpcState.affinity}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:918:<div className="rounded-lg border border-white/5 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:926:<div className="space-y-4 lg:min-h-0 lg:overflow-y-auto lg:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:931:<div className="rounded-xl border border-white/8 bg-black/18 px-4 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:936:<div className="rounded-xl border border-white/8 bg-black/18 px-4 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:959:<div className="grid min-h-0 gap-4 lg:grid-cols-[minmax(0,0.78fr)_minmax(0,1.22fr)] lg:overflow-hidden">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:960:<div className="space-y-4 lg:max-h-full lg:overflow-y-auto lg:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:962:<div className="flex flex-col items-center text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:963:<div className="flex h-40 w-full items-end justify-center overflow-hidden rounded-2xl border border-white/10 bg-black/20">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:965:<div className="flex h-full w-full items-end justify-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:975:<div className="text-sm text-zinc-500">无可用立绘</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:978:<div className="mt-3 rounded-full border border-emerald-400/25 bg-emerald-500/10 px-3 py-1 text-[10px] tracking-[0.18em] text-emerald-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:981:<div className="mt-3 text-base font-bold text-white">{selection.monster.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:982:<p className="mt-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:989:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:992:<div className="mt-4 rounded-xl border border-white/8 bg-black/18 px-4 py-3 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:998:<div className="space-y-4 lg:min-h-0 lg:overflow-y-auto lg:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1000:<div className="grid grid-cols-2 gap-2 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1001:<div className="rounded-lg border border-white/5 bg-black/20 px-3 py-2">动画:{getMonsterAnimationLabel(selection.monster.animation)}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1002:<div className="rounded-lg border border-white/5 bg-black/20 px-3 py-2">攻击距离:{selection.monster.attackRange}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1003:<div className="rounded-lg border border-white/5 bg-black/20 px-3 py-2">速度:{selection.monster.speed}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1004:<div className="rounded-lg border border-white/5 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1013:<div className="rounded-xl border border-white/8 bg-black/18 px-4 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1019:<div className="flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1023:className="rounded-full border border-white/10 bg-black/20 px-3 py-1 text-xs text-zinc-300"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1032:<div className="space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1036:className="flex items-center justify-between gap-3 rounded-xl border border-white/8 bg-black/20 px-3 py-2.5 text-sm text-zinc-300"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1038:<div className="flex min-w-0 items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1039:<div className="flex h-10 w-10 items-center justify-center rounded-xl border border-white/10 bg-black/25">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1040:<PixelIcon src={getRewardItemIcon(entry.item)} className="h-6 w-6" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1042:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1043:<div className="truncate font-medium text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1047:<div className="mt-1 text-[10px] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1052:<span className="shrink-0 rounded-full border border-amber-300/20 bg-amber-500/10 px-2.5 py-1 text-[10px] tracking-[0.16em] text-amber-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1059:<div className="rounded-xl border border-dashed border-white/10 bg-black/20 px-4 py-3 text-sm leading-relaxed text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1071:<div className="grid min-h-0 gap-4 [&>div:last-child>:first-child]:hidden lg:grid-cols-[minmax(0,0.82fr)_minmax(0,1.18fr)] lg:overflow-hidden">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1072:<div className="space-y-4 lg:max-h-full lg:overflow-y-auto lg:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1073:<Section title="NPC 信息">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1074:<div className="flex flex-col items-center text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1075:<div className="flex h-40 w-full max-w-[16rem] items-end justify-center overflow-hidden rounded-2xl border border-white/10 bg-black/20">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1080:className="h-full w-full"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1081:imageClassName="object-bottom"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1086:className="flex h-full w-full items-end justify-center"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1097:className="flex h-full w-full items-end justify-center"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1104:className="origin-bottom shrink-0"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1110:<div className="mt-3 rounded-full border border-rose-400/25 bg-rose-500/10 px-3 py-1 text-[10px] tracking-[0.18em] text-rose-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1113:<div className="mt-3 text-base font-bold text-white">{npcContext.encounter.npcName}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1114:<div className="mt-1 flex items-center justify-center gap-2 text-[10px] tracking-[0.2em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1116:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-0.5 text-[9px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1120:<p className="mt-3 text-sm leading-relaxed text-zinc-300">{npcContext.encounter.npcDescription}</p>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1125:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1141:<div className="max-h-72 space-y-2 overflow-y-auto pr-1 scrollbar-hide">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1148:className="group flex w-full items-center justify-between rounded-lg border border-white/5 bg-black/20 px-3 py-2 text-left text-sm text-zinc-300 transition hover:border-amber-300/25 hover:bg-white/[0.05]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1150:<div className="flex min-w-0 items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1151:<PixelIcon src={getRewardItemIcon(item)} className="h-8 w-8 shrink-0" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1152:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1153:<div className="truncate text-white">{item.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1154:<div className="mt-0.5 flex items-center gap-2 text-[10px] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1155:<span className="truncate">{item.category}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1156:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-0.5 text-[9px] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1162:<div className="shrink-0 text-right">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1163:<div className="text-xs text-zinc-200">x{item.quantity}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1164:<div className="mt-1 text-[10px] uppercase tracking-[0.16em] text-amber-200/80 transition group-hover:text-amber-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1175:<div className="space-y-4 lg:min-h-0 lg:overflow-y-auto lg:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1177:<div className="space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1179:<div key={`${option.functionId}-${option.actionText}`} className="rounded-xl border border-white/8 bg-black/20 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1180:<div className="text-sm font-semibold text-white">{option.actionText}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1182:<div className="mt-1 text-xs leading-relaxed text-zinc-400">{getCompactOptionDetailText(option)}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1195:<div className="rounded-xl border border-white/8 bg-black/18 px-4 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1200:<div className="rounded-xl border border-white/8 bg-black/18 px-4 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1235:className="fixed inset-0 z-[79] flex items-center justify-center bg-black/72 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1243:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(88vh,40rem)] w-full max-w-xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1247:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1248:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1249:<div className="text-[10px] tracking-[0.22em] text-sky-300/80">{'\u4f24\u5bb3\u4fee\u6b63\u8d21\u732e\u89e3\u6790'}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1250:<div className="mt-1 truncate text-sm font-semibold text-white">{selectedContributionRow.label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1251:<div className="mt-1 text-[10px] tracking-[0.18em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1258:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1260:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1264:<div className="space-y-4 overflow-y-auto p-4 sm:p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1266:className="rounded-xl border px-4 py-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1273:<div className="flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1274:<div className="text-sm font-semibold">{selectedContributionRow.label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1275:<div className="text-sm font-semibold">{'\u4f24\u5bb3\u4fee\u6b63\u8d21\u732e'} {selectedContributionRow.product.toFixed(2)}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1277:<div className="mt-3 h-2 overflow-hidden rounded-full bg-black/35">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1279:className="h-full rounded-full"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1289:<div className="rounded-xl border border-white/8 bg-black/20 px-4 py-3 text-sm leading-6 text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1290:<div className="font-medium text-white">{'\u4f24\u5bb3\u4fee\u6b63\u8d21\u732e = 1 \u00d7 \u6bcf\u4e2a\u5173\u8054\u6807\u7b7e\u6362\u7b97\u540e\u7684\u8d21\u732e\u767e\u5206\u6bd4'}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1291:<div className="mt-1 text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1294:<div className="mt-2 font-medium text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1300:<div className="space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1305:<div key={`${selectedContributionRow.label}-${factor.otherTag}`} className="rounded-xl border border-white/8 bg-black/20 px-4 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1306:<div className="flex items-center justify-between gap-3 text-sm text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1310:<div className="mt-1 text-[11px] leading-5 text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1313:<div className="mt-2 h-1.5 overflow-hidden rounded-full bg-black/35">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1314:<div className="h-full rounded-full" style={getContributionTrackStyle(factor.percent)} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1320:<div className="rounded-xl border border-white/8 bg-black/20 px-4 py-3 text-sm leading-6 text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1334:className="fixed inset-0 z-[80] flex items-center justify-center bg-black/78 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1342:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,60rem)] w-full max-w-5xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.6)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1346:<div className="flex items-center justify-between border-b border-white/10 px-5 py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1347:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1348:<div className="text-[10px] tracking-[0.22em] text-sky-300/80">技能详情</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1349:<div className="mt-1 truncate text-sm font-semibold text-white">{selectedSkill.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1350:<div className="mt-1 flex items-center gap-2 text-[10px] tracking-[0.18em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1352:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-0.5 text-[9px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1355:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-0.5 text-[9px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1363:className="rounded-full border border-white/10 bg-black/20 p-2 text-zinc-400 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1365:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1369:<div className="grid min-h-0 flex-1 gap-4 overflow-y-auto p-4 sm:p-5 xl:grid-cols-[minmax(0,1.08fr)_minmax(0,0.92fr)] xl:overflow-hidden">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1370:<div className="space-y-4 xl:max-h-full xl:overflow-y-auto xl:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1381:<div className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(UI_CHROME.panel)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1382:<div className="text-sm font-semibold text-white">技能效果预览</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1383:<div className="mt-2 rounded-xl border border-white/8 bg-black/18 px-4 py-3 text-sm leading-relaxed text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1391:<div className="space-y-4 xl:min-h-0 xl:overflow-y-auto xl:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1392:<div className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(UI_CHROME.panel)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1393:<div className="mb-3 text-xs font-bold text-white">基础信息</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1394:<div className="grid grid-cols-2 gap-2 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1395:<div className="rounded-lg border border-white/5 bg-black/20 px-3 py-2">伤害:{selectedSkill.damage}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1396:<div className="rounded-lg border border-white/5 bg-black/20 px-3 py-2">法力:{selectedSkill.manaCost}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1397:<div className="rounded-lg border border-white/5 bg-black/20 px-3 py-2">冷却:{selectedSkill.cooldownTurns} 回合</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1398:<div className="rounded-lg border border-white/5 bg-black/20 px-3 py-2">距离:{selectedSkill.range}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1412:className="fixed inset-0 z-[82] flex items-center justify-center bg-black/78 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1420:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,42rem)] w-full max-w-lg flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1424:<div className="flex items-center justify-between border-b border-white/10 px-5 py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1425:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1426:<div className="text-[10px] tracking-[0.22em] text-amber-200/80">物品详情</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1427:<div className="mt-1 truncate text-sm font-semibold text-white">{selectedNpcItem.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1428:<div className="mt-1 text-[11px] text-zinc-500">{npcContext?.encounter.npcName ?? 'NPC 背包'}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1433:className="rounded-full border border-white/10 bg-black/20 p-2 text-zinc-400 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1435:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1439:<div className="min-h-0 flex-1 space-y-4 overflow-y-auto p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1440:<div className="flex items-start gap-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1444:className="h-14 w-14 drop-shadow-[0_6px_10px_rgba(0,0,0,0.35)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1447:<div className="min-w-0 flex-1 space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1448:<div className="flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1449:<span className="rounded-full border border-white/10 bg-white/6 px-2 py-1 text-[10px] uppercase tracking-[0.16em] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1452:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-1 text-[10px] uppercase tracking-[0.16em] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1456:<div className="text-sm text-zinc-300">数量: {selectedNpcItem.quantity}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1457:<div className="text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1460:<div className="text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1463:<div className="text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1469:<div className="rounded-xl border border-white/8 bg-black/20 px-4 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1473:<div className="grid grid-cols-2 gap-2 text-xs text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1474:<div className="rounded-lg border border-white/8 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1477:<div className="rounded-lg border border-white/8 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1480:<div className="rounded-lg border border-white/8 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1483:<div className="rounded-lg border border-white/8 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1486:<div className="col-span-2 rounded-lg border border-white/8 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1492:<div className="rounded-lg border border-sky-400/15 bg-sky-500/10 px-3 py-2 text-xs text-sky-50">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1498:<div className="rounded-lg border border-emerald-400/15 bg-emerald-500/10 px-3 py-2 text-xs text-emerald-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1503:<div className="flex justify-end">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventureEntityModal.tsx:1507:className="pixel-nine-slice pixel-pressable px-4 py-2 text-xs text-zinc-200"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:83:<div className="fixed inset-0 z-[74] flex items-center justify-center bg-black/72 p-4 backdrop-blur-sm">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:85:className="pixel-nine-slice pixel-modal-shell flex min-h-32 w-full max-w-sm items-center justify-center px-5 py-6 text-center text-[11px] uppercase tracking-[0.24em] text-zinc-400 shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:235:<div className="mt-3 rounded-xl border border-dashed border-white/10 bg-black/20 px-3 py-4 text-center text-xs text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:242:<div className="mt-3 flex flex-wrap gap-2.5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:256:<div className="absolute inset-0 bg-[radial-gradient(circle_at_top,rgba(255,255,255,0.12),transparent_55%)] opacity-0 transition group-hover:opacity-100" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:260:className="relative z-[1] h-8 w-8 drop-shadow-[0_6px_10px_rgba(0,0,0,0.35)] sm:h-9 sm:w-9"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:262:<span className="absolute bottom-1 right-1 rounded-full border border-black/35 bg-black/70 px-1.5 py-0.5 text-[10px] font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:295:secondaryLabel: 'Inspect the hidden reward site',
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:327:className="grid gap-1.5"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:356:<div className="rounded-2xl border border-amber-300/15 bg-[radial-gradient(circle_at_top,rgba(251,191,36,0.14),transparent_65%),rgba(0,0,0,0.24)] p-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:357:<div className="flex items-start justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:359:<div className="text-[10px] tracking-[0.24em] text-amber-200/80">奖励物品</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:360:<div className="mt-1 text-[11px] leading-relaxed text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:364:<ScrollText className="h-4 w-4 text-amber-200/70" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:367:<div className="mt-3 grid grid-cols-2 gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:368:<div className="rounded-xl border border-rose-300/18 bg-rose-500/10 px-3 py-2.5 text-rose-50">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:369:<div className="flex items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:370:<Heart className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:371:<span className="text-sm font-semibold">+{quest.reward.affinityBonus}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:373:<div className="mt-1 text-[10px] uppercase tracking-[0.2em] text-rose-100/70">好感度</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:375:<div className="rounded-xl border border-amber-300/18 bg-amber-500/10 px-3 py-2.5 text-amber-50">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:376:<div className="flex items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:377:<Coins className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:378:<span className="text-sm font-semibold">{formatCurrency(quest.reward.currency, worldType)}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:380:<div className="mt-1 text-[10px] uppercase tracking-[0.2em] text-amber-100/70">货币</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:410:<div className="flex items-center justify-between gap-3 border-b border-white/10 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:412:<div className="text-[10px] tracking-[0.24em] text-white/70">{presentation.eyebrow}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:413:<div className="mt-1 text-sm font-semibold text-white">{presentation.primaryLabel}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:420:<div className="grid gap-3 p-3 sm:grid-cols-[minmax(0,0.95fr)_minmax(0,1.05fr)]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:421:<div className="relative overflow-hidden rounded-2xl border border-white/10 bg-black/30 p-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:422:<div className="absolute inset-x-0 bottom-0 h-12 bg-gradient-to-t from-black/40 to-transparent" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:423:<div className="flex h-36 items-end justify-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:425:<div className="rounded-full bg-[radial-gradient(circle,rgba(248,113,113,0.18),transparent_70%)] p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:429:className="origin-bottom scale-150 sm:scale-[1.85]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:436:className="flex h-24 w-24 items-center justify-center rounded-3xl border border-white/10 bg-black/35"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:439:<PixelIcon src={presentation.iconSrc} alt={presentation.primaryLabel} className="h-14 w-14" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:441:<AccentIcon className="h-11 w-11 text-white/85" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:448:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:449:<div className="grid gap-2 sm:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:450:<div className="rounded-xl border border-white/10 bg-black/25 px-3 py-2.5 text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:451:<div className="flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:452:<AccentIcon className="h-3.5 w-3.5" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:455:<div className="mt-2 text-sm font-medium text-white">{presentation.primaryLabel}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:457:<div className="rounded-xl border border-white/10 bg-black/25 px-3 py-2.5 text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:458:<div className="flex items-center gap-2 text-[10px] uppercase tracking-[0.18em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:459:<MapPinned className="h-3.5 w-3.5" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:462:<div className="mt-2 text-sm font-medium text-white">{presentation.secondaryLabel}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:466:<div className="rounded-xl border border-white/10 bg-black/25 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:467:<div className="flex items-center justify-between gap-3 text-[10px] uppercase tracking-[0.18em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:469:<span className="text-white/70">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:473:<div className="mt-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:477:activeClassName="border-emerald-300/30 bg-emerald-400/85"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:720:<div className="relative flex min-h-0 flex-1 flex-col">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:726:className="fixed z-[26] flex min-h-[2.75rem] min-w-[2.75rem] items-center justify-center border-0 bg-transparent p-0 shadow-none transition duration-150 hover:-translate-y-px hover:brightness-110 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-amber-200/60"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:732:<PixelIcon src={CHROME_ICONS.settings} className="h-[1.8rem] w-[1.8rem] drop-shadow-[0_4px_10px_rgba(0,0,0,0.45)]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:737:className="fixed right-0 z-[26] flex min-w-[3.1rem] flex-col items-center gap-1 rounded-l-xl border border-r-0 border-white/10 bg-black/78 pl-2 pr-1.5 py-2 text-[10px] text-zinc-200 shadow-[0_8px_18px_rgba(0,0,0,0.35)] backdrop-blur-md transition hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:743:className="absolute -left-1 top-1 h-3.5 w-3.5 rounded-full border border-red-200/45 bg-red-500 shadow-[0_0_14px_rgba(239,68,68,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:746:<PixelIcon src={CHROME_ICONS.map} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:747:<span className="leading-none">任务</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:748:<span className="rounded-full border border-white/10 bg-white/10 px-1.5 py-0.5 text-[9px] text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:754:<div className="pixel-nine-slice pixel-panel mb-3 text-xs text-amber-100" style={getNineSliceStyle(UI_CHROME.panel)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:761:className="pixel-nine-slice pixel-panel mb-3 min-h-0 flex-1 overflow-y-auto pr-1 scrollbar-hide"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:765:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:770:<div className="sr-only">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:773:<div className="mb-1 text-[10px] tracking-[0.18em] text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:781:<div className="flex justify-start">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:782:<div className="rounded-2xl border border-white/10 bg-black/20 px-3 py-2 text-sm text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:789:<p className="font-serif text-sm italic leading-relaxed text-zinc-300">{currentStory.text}</p>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:793:<div className="mt-auto shrink-0 pb-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:794:<div className="mb-2 flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:795:<div className="flex items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:800:className="inline-flex h-8 items-center gap-1.5 rounded-md border border-white/10 bg-black/20 px-2 text-zinc-300 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:802:<PixelIcon src={TAB_ICONS.character.active} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:803:<span className="text-xs leading-none">刷新</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:809:className="inline-flex h-8 items-center gap-1.5 rounded-md border border-white/10 bg-black/20 px-2 text-zinc-300 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:811:<PixelIcon src={TAB_ICONS.inventory.active} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:812:<span className="text-xs leading-none">背包</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:821:className="inline-flex h-8 items-center gap-1.5 rounded-md border border-white/10 bg-black/20 px-2 text-zinc-300 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:823:<PixelIcon src={CHROME_ICONS.refreshOptions} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:824:<span className="text-xs leading-none">刷新</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:829:<div className="space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:831:<div className="flex items-center justify-center space-x-2 p-4 text-zinc-600">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:832:<Loader2 className="h-4 w-4 animate-spin" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:833:<span className="text-xs uppercase tracking-widest">剧情推演中...</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:836:<div className="flex items-center justify-center p-4 text-[11px] tracking-[0.18em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:862:className="pixel-nine-slice pixel-pressable pixel-choice-button group w-full text-left"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:865:<div className="flex items-center justify-between">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:867:<PixelIcon src={CHROME_ICONS.optionArrow} className="h-3 w-3 opacity-70 transition-opacity group-hover:opacity-100" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:869:<div className="mt-1 text-[10px] leading-relaxed text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:881:className="pixel-nine-slice pixel-pressable pixel-choice-button group w-full text-left"
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:884:<div className="flex items-center justify-between">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:886:<PixelIcon src={CHROME_ICONS.optionArrow} className="h-3 w-3 opacity-70 transition-opacity group-hover:opacity-100" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:889:<div className="mt-1 text-[10px] leading-relaxed text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\AdventurePanel.tsx:894:<div className="mt-1 text-[10px] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterAnimator.tsx:76:const resolvedImageClassName = `h-full w-full object-contain pixelated ${imageClassName ?? ''}`.trim();
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:39:className="fixed inset-0 z-[85] flex items-center justify-center bg-black/76 p-3 backdrop-blur-sm sm:p-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:47:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,56rem)] w-full max-w-3xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.6)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:51:<div className="flex items-center justify-between border-b border-white/10 px-4 py-4 sm:px-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:52:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:53:<div className="text-[10px] tracking-[0.22em] text-sky-300/80">角色聊天</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:54:<div className="mt-1 truncate text-sm font-semibold text-white">{modal.target.character.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:55:<div className="mt-1 text-[11px] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:62:className="rounded-full border border-white/10 bg-black/20 p-2 text-zinc-400 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:64:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:68:<div className="grid min-h-0 flex-1 gap-4 overflow-y-auto p-4 sm:grid-cols-[minmax(0,0.88fr)_minmax(0,1.12fr)] sm:overflow-hidden sm:p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:69:<div className="space-y-4 sm:max-h-full sm:overflow-y-auto sm:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:70:<div className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(UI_CHROME.panel)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:71:<div className="mb-2 text-xs font-bold text-white">角色状态</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:72:<div className="space-y-2 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:73:<div className="rounded-xl border border-white/8 bg-black/18 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:76:<div className="rounded-xl border border-white/8 bg-black/18 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:79:<div className="rounded-xl border border-white/8 bg-black/18 px-3 py-2 text-xs leading-relaxed text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:85:<div className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(UI_CHROME.panel)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:86:<div className="mb-2 text-xs font-bold text-white">聊天总结</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:87:<div className="rounded-xl border border-white/8 bg-black/18 px-3 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:93:<div className="flex min-h-0 flex-col">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:96:className="pixel-nine-slice pixel-panel min-h-[20rem] flex-1 space-y-3 overflow-y-auto pr-1 scrollbar-hide"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:112:<div className="mb-1 text-[10px] tracking-[0.18em] text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:120:<div className="rounded-2xl border border-dashed border-white/10 bg-black/18 px-4 py-6 text-sm leading-relaxed text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:126:<div className="mt-4 space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:127:<div className="flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:128:<div className="text-xs font-bold text-white">帮你回复</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:143:<div className="grid gap-2 sm:grid-cols-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:162:<div className="rounded-xl border border-amber-400/20 bg-amber-500/10 px-3 py-2 text-xs leading-relaxed text-amber-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:168:className="space-y-3"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:180:className="w-full rounded-2xl border border-white/10 bg-black/25 px-4 py-3 text-sm leading-relaxed text-zinc-100 outline-none transition focus:border-sky-300/35"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterChatModal.tsx:182:<div className="flex justify-end">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:60:<section className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(chrome, { paddingX: 14, paddingY: 14 })}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:61:<div className="mb-3 text-xs font-bold tracking-[0.16em] text-zinc-200">{title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:85:<div className="text-[10px] tracking-[0.18em] text-white/60">{label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:86:<div className="mt-1 text-sm font-semibold">{value}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:93:<div className="grid gap-2 sm:grid-cols-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:95:<div key={`${item.slot}-${item.item}`} className="rounded-2xl border border-white/8 bg-black/20 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:96:<div className="text-[10px] tracking-[0.16em] text-zinc-500">{item.slot}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:97:<div className="mt-1 text-sm font-semibold text-white">{item.item}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:98:<div className="mt-1 text-xs text-zinc-400">{item.rarity}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:107:<div className="grid gap-2 sm:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:109:<div key={`${item.category}-${item.name}-${item.quantity}`} className="rounded-2xl border border-white/8 bg-black/20 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:110:<div className="text-[10px] tracking-[0.16em] text-zinc-500">{item.category}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:111:<div className="mt-1 text-sm font-semibold text-white">{item.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:112:<div className="mt-1 text-xs text-zinc-400">数量 x{item.quantity}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:127:<div className="space-y-2.5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:129:<div key={skill.id} className="rounded-2xl border border-white/8 bg-black/20 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:130:<div className="flex flex-wrap items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:131:<div className="text-sm font-semibold text-white">{skill.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:132:<span className="rounded-full border border-amber-400/20 bg-amber-500/10 px-2 py-0.5 text-[10px] text-amber-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:136:<div className="mt-2 grid gap-1 text-xs text-zinc-400 sm:grid-cols-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:169:className="fixed inset-0 z-[72] flex items-center justify-center bg-black/78 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:177:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,60rem)] w-full max-w-5xl flex-col overflow-hidden shadow-[0_28px_90px_rgba(0,0,0,0.58)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:181:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:182:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:183:<div className="text-sm font-semibold text-white">{character.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:184:<div className="mt-1 text-[11px] tracking-[0.18em] text-zinc-500">{subtitle}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:189:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:192:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:196:<div className="grid min-h-0 flex-1 gap-4 overflow-y-auto p-5 lg:grid-cols-[minmax(0,0.82fr)_minmax(0,1.18fr)] lg:overflow-hidden">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:197:<div className="space-y-4 lg:max-h-full lg:overflow-y-auto lg:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:199:<div className="flex flex-col items-center text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:200:<div className="flex h-44 w-full max-w-[16rem] items-center justify-center overflow-hidden rounded-2xl border border-white/10 bg-black/20">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:204:className="h-full w-full"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:205:imageClassName="object-bottom"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:209:<div className="mt-3 rounded-full border border-sky-400/25 bg-sky-500/10 px-3 py-1 text-[10px] tracking-[0.18em] text-sky-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:212:<div className="mt-3 text-base font-bold text-white">{character.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:213:<div className="mt-1 flex flex-wrap items-center justify-center gap-2 text-[10px] tracking-[0.18em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:215:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-0.5 text-[9px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:219:<p className="mt-3 text-sm leading-relaxed text-zinc-300">{character.description}</p>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:224:<div className="grid gap-2 sm:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:228:<div className="mt-3 grid grid-cols-2 gap-2 text-sm sm:grid-cols-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:230:<div key={key} className="rounded-2xl border border-white/8 bg-black/20 px-3 py-3 text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:231:<div className="text-[10px] tracking-[0.16em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:234:<div className="mt-1 font-semibold text-white">{value}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:242:<div className="space-y-2 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:243:<div className="rounded-2xl border border-white/8 bg-black/20 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:244:<div className="text-[10px] tracking-[0.16em] text-zinc-500">原因</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:245:<div className="mt-1">{opening.reason}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:247:<div className="rounded-2xl border border-white/8 bg-black/20 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:248:<div className="text-[10px] tracking-[0.16em] text-zinc-500">目标</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:249:<div className="mt-1">{opening.goal}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:256:<div className="space-y-4 lg:min-h-0 lg:overflow-y-auto lg:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:257:<Section title="Skills">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:270:<div className="rounded-2xl border border-white/8 bg-black/20 px-4 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterDetailModal.tsx:276:<div className="rounded-2xl border border-white/8 bg-black/20 px-4 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:93:<div className="space-y-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:94:<div className="flex items-center justify-between gap-3 text-[10px] uppercase tracking-[0.16em] text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:96:<span className="text-zinc-200">{current} / {max}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:98:<div className="h-2 overflow-hidden rounded-full border border-white/10 bg-black/45">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:109:const formulaText = '\u603b\u4fee\u6b63\u500d\u6570 = \u6240\u6709\u6807\u7b7e\u589e\u76ca\u4e4b\u548c';
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:115:<div className="space-y-2 rounded-xl border border-sky-400/12 bg-sky-500/6 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:116:<div className="flex items-center justify-between gap-3 text-[10px] uppercase tracking-[0.16em] text-sky-100/80">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:121:<div className="grid grid-cols-[auto_1fr_auto_1fr_auto] items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:122:<span className="rounded-full border border-white/10 bg-black/25 px-2 py-1 text-[10px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:125:<div className="h-px bg-white/12" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:126:<span className="rounded-full border border-sky-400/20 bg-sky-500/10 px-2 py-1 text-[10px] text-sky-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:129:<div className="h-px bg-white/12" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:130:<span className="rounded-full border border-emerald-400/20 bg-emerald-500/10 px-2 py-1 text-[10px] text-emerald-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:134:<div className="h-2 overflow-hidden rounded-full border border-white/10 bg-black/40">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:136:className="h-full bg-gradient-to-r from-sky-500 via-cyan-300 to-emerald-200"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:140:<div className="rounded-lg border border-white/8 bg-black/20 px-3 py-2 text-[11px] leading-5 text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:141:<div className="font-medium text-white">{formulaText}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:142:<div className="mt-1 text-zinc-400">{currentFormulaText}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:143:<div className="mt-1 text-zinc-500">{'\u5355\u6807\u7b7e\u589e\u76ca = 1 \u00d7 \u5176\u4ed6\u5173\u8054\u6807\u7b7e\u6362\u7b97\u540e\u7684\u8d21\u732e\u767e\u5206\u6bd4\u8fde\u4e58\u3002'}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:145:<div className="flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:149:className="rounded-full border border-sky-400/20 bg-sky-500/10 px-2 py-1 text-[10px] text-sky-100"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:154:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-1 text-[10px] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:217:<div className="space-y-3 rounded-xl border border-sky-400/12 bg-sky-500/6 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:218:<div className="flex items-center justify-between gap-3 text-[10px] uppercase tracking-[0.16em] text-sky-100/80">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:220:<span className="text-zinc-400">{'\u70b9\u51fb\u6807\u7b7e\u67e5\u770b\u8d21\u732e\u8ba1\u7b97'}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:222:<div className="flex justify-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:223:<div className="w-full max-w-[12rem] rounded-xl border border-white/8 bg-black/20 px-3 py-2 text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:224:<div className="text-[10px] uppercase tracking-[0.16em] text-zinc-500">{'\u603b\u4fee\u6b63\u500d\u6570'}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:225:<div className="mt-1 text-sm font-semibold tabular-nums text-emerald-100">x{breakdown.totalContributionMultiplier.toFixed(2)}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:229:<div className="flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:235:className="min-w-[6.25rem] rounded-xl border px-3 py-2 text-left text-[10px] text-white transition-transform hover:-translate-y-0.5"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:239:<div className="flex items-center justify-between gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:240:<span className="font-medium">{row.label}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:241:<span className="text-[11px] font-semibold tabular-nums text-current/80">{row.product.toFixed(2)}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:243:<div className="mt-2 h-1.5 overflow-hidden rounded-full bg-black/35">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:244:<div className="h-full rounded-full" style={getContributionTrackStyle(row.product, weakestProduct, strongestProduct)} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:250:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-1 text-[10px] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:405:<div className="flex min-h-0 flex-1 flex-col">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:406:<div className="pixel-nine-slice pixel-panel min-h-0 flex-1" style={getNineSliceStyle(UI_CHROME.panel, { paddingX: 14, paddingY: 12 })}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:408:<div className="mb-3 rounded-xl border border-sky-400/15 bg-sky-500/8 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:409:<div className="mb-2 text-xs font-bold text-sky-100">当前委托</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:410:<div className="space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:412:<div key={quest.id} className="rounded-lg border border-white/6 bg-black/18 px-3 py-2 text-sm text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:413:<div className="font-semibold text-white">{quest.title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:414:<div className="mt-1 text-xs text-zinc-400">{quest.summary}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:421:<div className="mb-3 text-xs font-bold text-white">队伍成员</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:422:<div className="grid max-h-[calc(100vh-14rem)] grid-cols-1 gap-3 overflow-y-auto pr-1 scrollbar-hide sm:max-h-[calc(100vh-18rem)] md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:428:className="w-full px-0 py-1 text-left transition-opacity hover:opacity-90"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:430:<div className="flex items-start gap-3 rounded-xl border border-white/6 bg-black/18 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:431:<div className="flex h-14 w-14 shrink-0 items-center justify-center overflow-hidden rounded-xl bg-transparent sm:h-16 sm:w-16">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:435:className="h-full w-full scale-125 object-contain object-bottom"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:440:<div className="min-w-0 flex-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:441:<div className="flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:442:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:443:<div className="truncate text-sm font-semibold text-white">{member.character.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:444:<div className="truncate text-[10px] tracking-[0.16em] text-zinc-500">{member.character.title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:450:<div className="mt-2.5 space-y-2.5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:454:<div className="mt-2 flex items-center justify-end gap-2 text-[11px] text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:455:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-0.5 text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:458:<span className="rounded-full border border-emerald-400/20 bg-emerald-500/10 px-2 py-0.5 text-emerald-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:476:className="fixed inset-0 z-[75] flex items-center justify-center bg-black/72 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:484:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(88vh,40rem)] w-full max-w-xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:488:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:489:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:490:<div className="text-[10px] tracking-[0.22em] text-sky-300/80">伤害修正贡献解析</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:491:<div className="mt-1 truncate text-sm font-semibold text-white">{selectedContributionRow.label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:492:<div className="mt-1 text-[10px] tracking-[0.18em] text-zinc-500">{selectedMember.character.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:497:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:499:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:503:<div className="space-y-4 overflow-y-auto p-4 sm:p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:504:<div className="rounded-xl border px-4 py-4" style={getContributionVisualStyle(selectedContributionRow.product, selectedContributionMinProduct, selectedContributionMaxProduct)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:505:<div className="flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:506:<div className="text-sm font-semibold">{selectedContributionRow.label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:507:<div className="text-sm font-semibold">伤害修正贡献 {selectedContributionRow.product.toFixed(2)}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:509:<div className="mt-3 h-2 overflow-hidden rounded-full bg-black/35">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:510:<div className="h-full rounded-full" style={getContributionTrackStyle(selectedContributionRow.product, selectedContributionMinProduct, selectedContributionMaxProduct)} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:514:<div className="rounded-xl border border-white/8 bg-black/20 px-4 py-3 text-sm leading-6 text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:515:<div className="font-medium text-white">伤害修正贡献 = 1 × 每个关联标签换算后的贡献百分比</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:516:<div className="mt-1 text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:519:<div className="mt-2 font-medium text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:525:<div className="space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:530:<div key={`${selectedContributionRow.label}-${factor.otherTag}`} className="rounded-xl border border-white/8 bg-black/20 px-4 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:531:<div className="flex items-center justify-between gap-3 text-sm text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:535:<div className="mt-1 text-[11px] leading-5 text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:538:<div className="mt-2 h-1.5 overflow-hidden rounded-full bg-black/35">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:539:<div className="h-full rounded-full" style={getContributionTrackStyle(factor.percent)} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:545:<div className="rounded-xl border border-white/8 bg-black/20 px-4 py-3 text-sm leading-6 text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:561:className="fixed inset-0 z-[70] flex items-center justify-center bg-black/72 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:569:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,56rem)] w-full max-w-3xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:573:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:574:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:575:<div className="text-[10px] tracking-[0.22em] text-sky-300/80">角色详情</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:576:<div className="mt-1 truncate text-sm font-semibold text-white">{selectedMember.character.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:577:<div className="mt-1 flex items-center gap-2 text-[10px] tracking-[0.2em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:579:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-0.5 text-[9px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:587:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:589:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:593:<div className="grid min-h-0 flex-1 gap-4 overflow-y-auto p-4 sm:p-5 lg:grid-cols-[minmax(0,0.82fr)_minmax(0,1.18fr)] lg:overflow-hidden">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:594:<div className="space-y-4 lg:max-h-full lg:overflow-y-auto lg:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:595:<div className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(UI_CHROME.panel)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:596:<div className="flex flex-col items-center text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:597:<div className="flex h-36 w-full max-w-[15rem] items-end justify-center overflow-hidden rounded-2xl border border-white/10 bg-black/20 sm:h-40">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:601:className="h-full w-full"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:602:imageClassName="object-bottom"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:606:<div className="mt-3 text-base font-bold text-white">{selectedMember.character.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:607:<div className="mt-1 text-[10px] tracking-[0.2em] text-zinc-500">{selectedMember.character.title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:608:<p className="mt-3 text-sm leading-relaxed text-zinc-300">{selectedMember.character.description}</p>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:612:<div className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(UI_CHROME.statsPanel)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:613:<div className="mb-3 text-xs font-bold text-white">状态</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:614:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:624:<div className="mt-4 grid grid-cols-2 gap-2 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:626:<div key={key} className="rounded-lg border border-white/5 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:634:<div className="space-y-4 lg:min-h-0 lg:overflow-y-auto lg:pr-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:635:<div className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(UI_CHROME.panel)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:636:<div className="mb-3 text-xs font-bold text-white">背景故事</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:637:<div className="rounded-xl border border-white/8 bg-black/18 px-4 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:642:<div className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(UI_CHROME.panel)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:643:<div className="mb-3 text-xs font-bold text-white">性格</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:644:<div className="rounded-xl border border-white/8 bg-black/18 px-4 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:649:<div className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(UI_CHROME.panel)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:650:<div className="mb-3 text-xs font-bold text-white">装备</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:651:<div className="space-y-2 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:655:className="flex items-center justify-between rounded-lg border border-white/5 bg-black/20 px-3 py-2"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:657:<div className="flex items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:658:<PixelIcon src={getEquipmentSlotIcon(item.slotLabel)} className="h-8 w-8" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:660:<div className="text-[10px] tracking-[0.2em] text-zinc-500">{item.slotLabel}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CharacterPanel.tsx:664:<span className="rounded-full border border-amber-500/20 bg-amber-500/10 px-2 py-0.5 text-[10px] text-amber-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:28:<div className="rounded-full border border-white/10 bg-black/20 px-2 py-1 text-[10px] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:118:className="fixed inset-0 z-[72] flex items-center justify-center bg-black/72 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:126:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,58rem)] w-full max-w-5xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:130:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:131:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:132:<div className="text-sm font-semibold text-white">营地编成</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:133:<div className="mt-1 text-[11px] tracking-[0.18em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:140:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:142:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:146:<div className="grid min-h-0 flex-1 gap-4 overflow-y-auto p-5 lg:grid-cols-[1.05fr_0.95fr] lg:overflow-hidden">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:147:<section className="rounded-2xl border border-white/10 bg-black/18 p-4 lg:min-h-0 lg:overflow-y-auto">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:148:<div className="mb-3 flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:150:<div className="text-xs font-bold text-white">当前上阵</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:151:<div className="mt-1 text-xs text-zinc-400">可直接切换为待命;队伍已满时,先选择一个替换位再让后备同行上阵。</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:156:<div className="mb-3 rounded-xl border border-amber-400/20 bg-amber-500/10 px-3 py-2 text-xs text-amber-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:161:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:169:<div className="flex items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:170:<div className="flex h-16 w-16 shrink-0 items-center justify-center overflow-hidden rounded-xl border border-white/10 bg-black/25">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:171:<img src={character.portrait} alt={character.name} className="h-full w-full scale-125 object-contain" style={{ imageRendering: 'pixelated' }} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:173:<div className="min-w-0 flex-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:174:<div className="text-sm font-semibold text-white">{character.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:175:<div className="text-[10px] tracking-[0.18em] text-zinc-500">{character.title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:176:<div className="mt-2 flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:177:<StatusPill label="HP" value={`${companion.hp}/${companion.maxHp}`} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:178:<StatusPill label="MP" value={`${companion.mana}/${companion.maxMana}`} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:183:<div className="mt-3 flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:204:<div className="rounded-xl border border-dashed border-white/10 bg-black/20 px-4 py-6 text-sm text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:211:<section className="rounded-2xl border border-white/10 bg-black/18 p-4 lg:min-h-0 lg:overflow-y-auto">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:212:<div className="mb-3 flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:214:<div className="text-xs font-bold text-white">待命列表</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:215:<div className="mt-1 text-xs text-zinc-400">这里保存已经招募、但暂不上阵的同行。</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:220:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:224:<div key={companion.npcId} className="rounded-xl border border-white/8 bg-black/20 px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:225:<div className="flex items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:226:<div className="flex h-16 w-16 shrink-0 items-center justify-center overflow-hidden rounded-xl border border-white/10 bg-black/25">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:227:<img src={character.portrait} alt={character.name} className="h-full w-full scale-125 object-contain" style={{ imageRendering: 'pixelated' }} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:229:<div className="min-w-0 flex-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:230:<div className="text-sm font-semibold text-white">{character.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:231:<div className="text-[10px] tracking-[0.18em] text-zinc-500">{character.title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:232:<div className="mt-2 flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:233:<StatusPill label="HP" value={`${companion.hp}/${companion.maxHp}`} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:234:<StatusPill label="MP" value={`${companion.mana}/${companion.maxMana}`} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:254:<div className="rounded-xl border border-dashed border-white/10 bg-black/20 px-4 py-6 text-sm text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:262:<div className="border-t border-white/10 px-5 py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:263:<div className="mb-3 text-xs font-bold text-white">营地动静</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:264:<div className="grid gap-3 md:grid-cols-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CompanionCampModal.tsx:266:<div key={moment} className="rounded-xl border border-white/8 bg-black/18 px-4 py-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:25:{ id: 'story', label: 'NPC' },
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:41:<div className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(UI_CHROME.panel, { paddingX: 14, paddingY: 12 })}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:42:<div className="flex items-start justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:43:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:44:<div className="text-xs font-bold tracking-[0.16em] text-white">{title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:45:{subtitle ? <div className="mt-1 text-xs leading-6 text-zinc-500">{subtitle}</div> : null}
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:49:<div className="mt-3">{children}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:90:<div className="rounded-2xl border border-white/10 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:95:className="w-full bg-transparent text-sm text-zinc-100 outline-none placeholder:text-zinc-500"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:115:<img src={src} alt={alt} className="h-full w-full object-cover" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:117:<div className="flex h-full w-full items-center justify-center px-4 text-center text-sm font-semibold tracking-[0.18em] text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:127:<div className="rounded-2xl border border-dashed border-white/12 bg-black/20 px-5 py-6 text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:128:<div className="text-sm text-zinc-300">{title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:222:<div className="h-full min-h-0 space-y-3 overflow-y-auto overscroll-contain pr-1 scrollbar-hide">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:223:<div className="px-1 pb-1 text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:224:<div className="text-[11px] font-bold tracking-[0.28em] text-zinc-500">WORLD DOSSIER</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:225:<div className="mt-2 text-3xl font-black text-white sm:text-[2.2rem]">{profile.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:226:<div className="mt-2 text-sm tracking-[0.18em] text-zinc-400">{profile.subtitle}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:229:<div className="sticky top-0 z-10 -mx-1 space-y-3 bg-[linear-gradient(180deg,rgba(8,10,17,0.98)_0%,rgba(8,10,17,0.95)_75%,rgba(8,10,17,0)_100%)] px-1 pb-3 pt-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:230:<div className="flex gap-2 overflow-x-auto pb-1 scrollbar-hide">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:238:<div className="font-semibold">{tab.label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:239:<div className="mt-1 text-[10px] tracking-[0.16em] text-white/55">{counts[tab.id]}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:246:<div className="flex items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:247:<div className="min-w-0 flex-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:260:<div className="space-y-3 text-sm leading-7 text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:262:<div className="rounded-2xl border border-amber-300/12 bg-amber-500/8 px-3 py-3 text-amber-100">主线目标:{profile.playerGoal}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:263:<div className="rounded-2xl border border-white/8 bg-black/20 px-3 py-3">世界基调:{profile.tone}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:264:<div className="rounded-2xl border border-white/8 bg-black/20 px-3 py-3 text-zinc-400">原始设定:{profile.settingText}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:268:<Section title="档案规模" subtitle="结果页只保留角色、NPC 与场景档案,预设物品已从自定义世界中移除。">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:269:<div className="grid grid-cols-1 gap-2 text-center text-[11px] text-zinc-300 sm:grid-cols-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:270:<div className="rounded-xl border border-white/8 bg-black/20 px-2 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:271:<div className="text-xl font-black text-white">{profile.playableNpcs.length}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:274:<div className="rounded-xl border border-white/8 bg-black/20 px-2 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:275:<div className="text-xl font-black text-white">{profile.storyNpcs.length}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:278:<div className="rounded-xl border border-white/8 bg-black/20 px-2 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:279:<div className="text-xl font-black text-white">{profile.landmarks.length}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:283:<div className="mt-3 rounded-2xl border border-sky-300/14 bg-sky-500/8 px-4 py-3 text-sm leading-6 text-sky-50/90">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:291:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:292:<div className="rounded-2xl border border-white/8 bg-black/20 px-4 py-3 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:307:<div className="flex items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:313:<div className="flex flex-col gap-3 sm:flex-row">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:314:<div className="flex h-28 w-28 shrink-0 items-end justify-center overflow-hidden rounded-2xl border border-white/10 bg-black/35">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:316:<CharacterAnimator state={AnimationState.RUN} character={previewCharacter} className="h-full w-full" imageClassName="object-bottom" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:319:<div className="min-w-0 flex-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:320:<div className="text-sm leading-6 text-zinc-300">{role.description}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:321:<div className="mt-2 text-xs leading-6 text-zinc-400">{role.backstory}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:322:<div className="mt-3 grid gap-2 sm:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:323:<div className="rounded-xl border border-white/8 bg-black/20 px-3 py-2 text-xs leading-6 text-zinc-300">性格:{role.personality}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:324:<div className="rounded-xl border border-white/8 bg-black/20 px-3 py-2 text-xs leading-6 text-zinc-300">战斗:{role.combatStyle}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:326:<div className="mt-3 flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:328:<span key={`${role.id}-${tag}`} className="rounded-full border border-white/10 bg-black/20 px-2.5 py-1 text-[10px] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:344:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:345:<div className="rounded-2xl border border-white/8 bg-black/20 px-4 py-3 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:349:<EmptyState title="当前没有符合搜索条件的 NPC。" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:357:<div className="flex items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:363:<div className="grid gap-4 sm:grid-cols-[7rem_minmax(0,1fr)]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:372:className="aspect-square"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:375:<div className="min-w-0 space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:376:<div className="text-sm leading-6 text-zinc-300">{npc.description}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:377:<div className="rounded-2xl border border-white/8 bg-black/20 px-3 py-3 text-sm leading-6 text-zinc-300">动机:{npc.motivation}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:378:<div className="flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:380:<span key={`${npc.id}-${hook}`} className="rounded-full border border-white/10 bg-black/20 px-2.5 py-1 text-[10px] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:395:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:396:<div className="rounded-2xl border border-white/8 bg-black/20 px-4 py-3 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:407:<div className="flex items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:413:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityCatalog.tsx:415:<div className="text-sm leading-7 text-zinc-300">{landmark.description}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:70:panelClassName = 'sm:max-w-2xl',
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:71:overlayClassName = 'z-[98]',
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:89:<div className="flex items-center justify-between gap-3 border-b border-white/10 px-4 py-4 sm:px-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:90:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:91:<div className="truncate text-sm font-semibold text-white">{title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:92:{subtitle ? <div className="mt-1 text-xs leading-6 text-zinc-400">{subtitle}</div> : null}
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:94:<button type="button" onClick={onClose} className="rounded-full border border-white/10 bg-black/20 p-2 text-zinc-400 transition-colors hover:text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:95:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:111:<label className="block">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:112:<div className="mb-2 text-[11px] font-bold tracking-[0.14em] text-zinc-300">{label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:135:className="w-full rounded-2xl border border-white/10 bg-black/25 px-4 py-3 text-sm text-zinc-100 outline-none transition-colors placeholder:text-zinc-500 focus:border-sky-300/35"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:157:className="w-full rounded-2xl border border-white/10 bg-black/25 px-4 py-3 text-sm leading-7 text-zinc-100 outline-none transition-colors placeholder:text-zinc-500 focus:border-sky-300/35"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:175:className="w-full rounded-2xl border border-white/10 bg-black/25 px-4 py-3 text-sm text-zinc-100 outline-none transition-colors focus:border-sky-300/35"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:202:<img src={src} alt={alt} loading="lazy" className="h-full w-full object-cover" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:204:<div className="flex h-full w-full items-center justify-center px-4 text-center text-sm font-semibold tracking-[0.18em] text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:208:{children ? <div className="pointer-events-none absolute inset-0">{children}</div> : null}
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:233:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:234:<div className="text-[11px] font-bold tracking-[0.14em] text-zinc-300">{label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:242:placeholder="支持填写项目内图片路径或外链 URL"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:298:<div className="absolute inset-0 bg-[linear-gradient(180deg,rgba(8,10,17,0.02)_0%,rgba(8,10,17,0.08)_42%,rgba(8,10,17,0.68)_100%)]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:299:<div className="absolute left-3 top-3 rounded-full border border-white/12 bg-black/46 px-3 py-1 text-[10px] font-bold tracking-[0.18em] text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:302:<div className="absolute left-1/2 top-[58%] h-16 w-16 -translate-x-1/2 -translate-y-1/2 rounded-full bg-amber-300/30 blur-2xl animate-pulse" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:303:<div className="absolute inset-x-0 bottom-0 h-20 bg-[linear-gradient(180deg,rgba(8,10,17,0)_0%,rgba(8,10,17,0.72)_100%)]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:304:<div className="absolute inset-x-0 bottom-0 flex items-end justify-between px-2 pb-1 sm:px-4 sm:pb-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:305:<div className="flex flex-col items-center gap-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:306:<div className="rounded-full border border-sky-300/20 bg-black/48 px-2.5 py-0.5 text-[10px] text-sky-50">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:309:<div className="h-24 w-24 sm:h-28 sm:w-28">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:313:className="h-full w-full"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:314:imageClassName="object-bottom drop-shadow-[0_10px_18px_rgba(0,0,0,0.45)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:319:<div className="mb-10 rounded-full border border-amber-300/24 bg-amber-400/12 px-3 py-1 text-[10px] font-semibold tracking-[0.18em] text-amber-50">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:323:<div className="flex flex-col items-center gap-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:324:<div className="rounded-full border border-rose-300/20 bg-black/48 px-2.5 py-0.5 text-[10px] text-rose-50">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:327:<div className="h-24 w-24 scale-x-[-1] sm:h-28 sm:w-28">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:331:className="h-full w-full"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:332:imageClassName="object-bottom drop-shadow-[0_10px_18px_rgba(0,0,0,0.45)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:358:<div className="mb-4 rounded-2xl border border-white/8 bg-black/20 px-4 py-3 text-sm leading-6 text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:361:<div className="grid grid-cols-2 gap-3 sm:grid-cols-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:378:<div className="relative aspect-[16/9] overflow-hidden">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:379:<img src={src} alt={`Scene preset ${index + 1}`} loading="lazy" className="h-full w-full object-cover" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:380:<div className="absolute inset-x-0 bottom-0 bg-[linear-gradient(180deg,rgba(8,10,17,0)_0%,rgba(8,10,17,0.82)_100%)] px-3 py-2 text-[11px] text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:384:<div className="absolute right-2 top-2 rounded-full border border-sky-200/40 bg-black/55 px-2 py-0.5 text-[10px] font-semibold text-sky-50">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:408:<div className="space-y-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:409:<div className="rounded-3xl border border-white/10 bg-[radial-gradient(circle_at_top,rgba(56,189,248,0.18),transparent_55%),linear-gradient(180deg,rgba(19,24,39,0.96),rgba(8,10,17,0.92))] px-6 py-10 text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:410:<div className="whitespace-pre-line text-2xl font-black tracking-[0.2em] text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:414:<div className="flex justify-end">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:430:<div className="flex flex-col-reverse gap-3 pt-2 sm:flex-row sm:justify-end">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:431:<button type="button" onClick={onClose} className="rounded-full border border-white/10 bg-black/20 px-4 py-2 text-sm text-zinc-300 transition-colors hover:text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:434:<button type="button" onClick={onSave} className="pixel-nine-slice pixel-pressable text-left" style={getNineSliceStyle(UI_CHROME.choiceButton, { paddingX: 16, paddingY: 10 })}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:435:<div className="flex items-center justify-between gap-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:436:<span className="text-sm font-semibold text-white">保存修改</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:437:<span className="text-white/60">→</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:460:subtitle="在独立面板中组合 MedievalFantasyCharacters 角色形象,左侧预览会保持吸顶。"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:462:panelClassName="sm:max-w-6xl"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:463:overlayClassName="z-[99]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:478:title="AI生成NPC形象"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:479:subtitle="NPC 形象 AI 生成功能仍在开发中。"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:500:<div className="space-y-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:545:<div className="space-y-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:547:<div className="grid gap-4 rounded-2xl border border-white/8 bg-black/20 p-4 sm:grid-cols-[7rem_minmax(0,1fr)]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:548:<div className="overflow-hidden rounded-2xl border border-white/10 bg-black/30">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:549:<img src={selectedTemplate.portrait} alt={selectedTemplate.name} className="h-28 w-full object-cover object-top" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:551:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:552:<div className="text-[11px] tracking-[0.18em] text-zinc-500">当前外观模板</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:553:<div className="mt-2 text-base font-semibold text-white">{selectedTemplate.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:554:<div className="mt-1 text-sm text-zinc-400">{selectedTemplate.title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:555:<div className="mt-3 text-sm leading-6 text-zinc-300">{selectedTemplate.description}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:566:label: `${character.name} / ${character.title}`,
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:632:subtitle="NPC 形象编辑已拆分到独立面板,当前页面只保留档案信息与预览。"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:635:<div className="space-y-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:636:<div className="rounded-3xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:637:<div className="grid gap-4 sm:grid-cols-[10rem_minmax(0,1fr)] sm:items-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:638:<div className="flex justify-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:647:className="aspect-square w-full max-w-[9.5rem]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:651:<div className="min-w-0 space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:653:<div className="text-[11px] font-bold tracking-[0.18em] text-zinc-300">NPC 形象预览</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:654:<div className="mt-2 text-sm leading-6 text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:658:<div className="flex flex-wrap gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:717:<div className="space-y-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:727:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:728:<div className="flex flex-wrap gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:730:<ActionButton label="AI生成" onClick={() => setIsAiGenerateOpen(true)} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:732:<div className="rounded-2xl border border-white/8 bg-black/20 px-4 py-3 text-sm leading-6 text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:758:title="AI生成场景"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:759:subtitle="场景图片 AI 生成功能仍在开发中。"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:774:name: `自定义角色${profile.playableNpcs.length + 1}`,
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:789:name: `自定义NPC${profile.storyNpcs.length + 1}`,
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldEntityEditorModal.tsx:811:name: `自定义场景${profile.landmarks.length + 1}`,
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:103:<div className="absolute inset-0 opacity-10 [background-image:linear-gradient(rgba(255,255,255,0.18)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.18)_1px,transparent_1px)] [background-size:10px_10px]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:104:<div className="relative z-[1] flex items-center justify-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:150:return <div className="text-[10px] font-semibold text-zinc-500">无</div>;
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:175:<div className="text-[10px] font-semibold tracking-[0.08em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:189:<PreviewFrame className="h-14 w-14">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:193:className="origin-center"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:221:<div className="flex items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:223:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:224:<div className="text-sm font-semibold leading-5">{label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:241:<section className="space-y-3 rounded-3xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:243:<div className="text-[11px] font-bold tracking-[0.18em] text-zinc-200">{title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:244:{subtitle ? <div className="mt-1 text-xs leading-5 text-zinc-500">{subtitle}</div> : null}
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:246:<div className="grid gap-3 sm:grid-cols-2 xl:grid-cols-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:292:<div className="absolute inset-0 opacity-10 [background-image:linear-gradient(rgba(255,255,255,0.16)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.16)_1px,transparent_1px)] [background-size:16px_16px]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:293:<div className="relative flex h-full min-h-[7rem] items-center justify-center p-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:297:className="origin-center drop-shadow-[0_12px_18px_rgba(0,0,0,0.38)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:379:<div className="grid gap-5 lg:grid-cols-[12rem_minmax(0,1fr)]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:380:<div className="self-start lg:sticky lg:top-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:381:<div className="mx-auto w-full max-w-[9.5rem] space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:385:className="aspect-square"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:388:<div className="rounded-2xl border border-white/10 bg-black/25 px-3 py-3 text-center text-xs leading-5 text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:391:<div className="flex flex-col gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:393:<ActionButton label="AI生成" onClick={onAiGenerate} tone="sky" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldNpcVisualEditor.tsx:398:<div className="space-y-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:93:<div className="flex h-full min-h-0 flex-col">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:94:<div className="mb-4 flex justify-start">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:105:<div className="min-h-0 flex-1 overflow-hidden">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:119:<div className="mt-3 rounded-2xl border border-sky-400/18 bg-sky-500/10 px-4 py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:120:<div className="flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:121:<div className="text-sm font-semibold text-white">{progressLabel}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:122:<div className="text-xs text-sky-100">{Math.round(progress)}%</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:124:<div className="mt-3 h-3 overflow-hidden rounded-full border border-white/10 bg-black/35">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:126:className="h-full bg-[linear-gradient(90deg,#38bdf8_0%,#67e8f9_48%,#fef08a_100%)] transition-[width] duration-300"
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:134:<div className="mt-3 rounded-2xl border border-rose-400/18 bg-rose-500/10 px-4 py-3 text-sm leading-6 text-rose-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:139:<div className="mt-4 flex flex-col gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:140:<div className="flex items-center justify-end gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:150:<div className="flex items-center justify-between gap-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:151:<span className="text-sm font-semibold text-white">保存并进入世界</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\CustomWorldResultView.tsx:152:<span className="text-white/60">→</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\DeveloperTeamModal.tsx:24:className="fixed inset-0 z-[74] flex items-center justify-center bg-black/78 p-3 sm:p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\DeveloperTeamModal.tsx:32:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,48rem)] w-full max-w-[min(96vw,42rem)] flex-col overflow-hidden shadow-[0_28px_90px_rgba(0,0,0,0.58)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\DeveloperTeamModal.tsx:36:<div className="flex items-center justify-between gap-3 border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\DeveloperTeamModal.tsx:37:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\DeveloperTeamModal.tsx:38:<div className="mt-1 text-sm font-semibold text-white">{'\u5f00\u53d1\u56e2\u961f'}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\DeveloperTeamModal.tsx:43:className="rounded-full border border-white/10 bg-black/20 p-2 text-zinc-400 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\DeveloperTeamModal.tsx:44:aria-label="Close developer team modal"
|
||
E:\Repos\ai-native-visual-rpg\src\components\DeveloperTeamModal.tsx:46:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\DeveloperTeamModal.tsx:50:<div className="min-h-0 flex-1 overflow-y-auto p-4 sm:p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\DeveloperTeamModal.tsx:52:className="pixel-nine-slice pixel-panel flex flex-col items-center gap-5"
|
||
E:\Repos\ai-native-visual-rpg\src\components\DeveloperTeamModal.tsx:55:<div className="whitespace-pre-line text-center text-sm leading-7 text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameCanvas.tsx:24:<div className="relative h-full w-full overflow-hidden bg-black">
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameCanvas.tsx:25:<div className="absolute inset-0 bg-[radial-gradient(circle_at_top,rgba(255,255,255,0.08),transparent_38%),linear-gradient(180deg,rgba(12,16,24,0.96),rgba(3,5,10,1))]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameCanvas.tsx:27:<div className="absolute left-1/2 top-3 -translate-x-1/2 rounded-full border border-white/10 bg-black/45 px-4 py-1 text-[10px] uppercase tracking-[0.2em] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameCanvas.tsx:31:<div className="absolute inset-0 flex items-center justify-center text-[11px] uppercase tracking-[0.3em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:156:className="fixed inset-0 z-[90] flex items-center justify-center bg-black/70 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:160:className="pixel-nine-slice pixel-modal-shell flex min-h-40 w-full max-w-md items-center justify-center px-6 py-8 text-center text-sm text-zinc-300 shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:176:<div className="pixel-nine-slice flex min-h-0 flex-1 items-center justify-center px-4 py-6 text-center text-xs uppercase tracking-[0.24em] text-zinc-500" style={getNineSliceStyle(UI_CHROME.modalPanel)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:353:className="fusion-pixel-app pixel-root-shell flex h-screen max-h-screen flex-col overflow-hidden font-sans text-zinc-100"
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:362:<div className="absolute inset-0 flex items-center justify-center bg-[radial-gradient(circle_at_top,rgba(255,255,255,0.14),transparent_40%),linear-gradient(180deg,rgba(8,10,14,0.2),rgba(8,10,14,0.82))]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:363:<div className="text-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:364:<div className="text-5xl font-black tracking-[0.14em] text-white sm:text-6xl">鍙欎笘</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:365:<div className="mt-3 text-sm tracking-[0.44em] text-zinc-300 sm:text-base">GENARRATIVE</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:428:className="flex h-full min-h-0 flex-col"
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:443:<motion.div key="story-flow" initial={{opacity: 0}} animate={{opacity: 1}} className="flex h-full min-h-0 flex-col">
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:444:<div className="story-top-tabs mb-3 grid grid-cols-3 gap-2 sm:gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:450:<span className="pixel-tab-button__inner">
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:455:<span className="pixel-tab-button__label">队伍</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:463:<span className="pixel-tab-button__inner">
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:468:<span className="pixel-tab-button__label">冒险</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:476:<span className="pixel-tab-button__inner">
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:481:<span className="pixel-tab-button__label">背包</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:584:className="fixed inset-0 z-[65] flex items-center justify-center bg-black/70 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:592:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,60rem)] w-full max-w-5xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:596:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:597:<div className="min-w-0 pr-10 text-sm font-semibold text-white">{overlayPanel === 'character' ? '队伍' : '背包'}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:601:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:603:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:606:<div className="flex min-h-0 flex-1 p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\GameShell.tsx:707:<Suspense fallback={<ModalLoadingFallback label="正在加载 NPC 交互..." />}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:157:<div className="flex min-h-0 flex-1 flex-col">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:158:<div className="flex-1 overflow-y-auto scrollbar-hide">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:159:<div className="grid grid-cols-4 gap-2 sm:grid-cols-5 lg:grid-cols-6 xl:grid-cols-7">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:165:className="aspect-square rounded-xl border border-dashed border-white/8 bg-black/12"
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:178:<div className="flex h-full items-center justify-center">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:181:className="h-9 w-9 drop-shadow-[0_4px_8px_rgba(0,0,0,0.35)] sm:h-11 sm:w-11"
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:184:<div className="absolute bottom-1 right-1 rounded-full border border-black/30 bg-black/65 px-1.5 py-0.5 text-[10px] font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:192:<div className="mt-4 rounded-2xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:193:<div className="mb-2 flex items-center justify-between gap-3 text-xs uppercase tracking-[0.2em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:195:<span className="text-emerald-200/80">{formatCurrency(playerCurrency, worldType)}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:197:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:201:className="rounded-xl border border-white/8 bg-black/20 p-3"
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:203:<div className="flex items-start justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:204:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:205:<div className="text-sm font-semibold text-white">{recipe.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:206:<div className="mt-1 text-xs text-zinc-400">{recipe.description}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:207:<div className="mt-2 text-xs text-emerald-200/80">产物:{recipe.resultLabel}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:208:<div className="mt-1 text-[11px] text-zinc-500">花费:{recipe.currencyText}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:230:<div className="mt-2 flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:256:className="fixed inset-0 z-[60] flex items-center justify-center bg-black/72 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:264:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,42rem)] w-full max-w-md flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)] sm:max-w-lg"
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:268:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:269:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:270:<div className="text-[10px] uppercase tracking-[0.2em] text-zinc-500">{selectedItem.category}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:271:<div className="mt-1 truncate text-sm font-semibold text-white">{selectedItem.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:276:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:278:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:282:<div className="min-h-0 flex-1 space-y-4 overflow-y-auto p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:283:<div className="flex items-center gap-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:287:className="h-14 w-14 drop-shadow-[0_6px_10px_rgba(0,0,0,0.35)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:290:<div className="min-w-0 flex-1 space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:291:<div className="rounded-full border border-white/10 bg-white/6 px-2 py-1 text-[10px] uppercase tracking-[0.16em] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:294:<div className="text-sm text-zinc-300">数量:{selectedItem.quantity}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:295:<div className="text-sm text-zinc-300">持有者:{playerCharacter.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:296:<div className="text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:299:<div className="text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:302:<div className="text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:306:<div className="text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:313:<div className="pixel-nine-slice pixel-panel" style={getNineSliceStyle(UI_CHROME.infoPanel)}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:314:<div className="grid grid-cols-2 gap-2 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:315:<div className="rounded-lg border border-white/6 bg-black/20 px-3 py-2">类型:{selectedItem.category}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:316:<div className="rounded-lg border border-white/6 bg-black/20 px-3 py-2">标签:{selectedItem.tags.length}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:318:<div className="mt-3 text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:322:<div className="mt-3 flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:326:className="rounded-full border border-sky-400/20 bg-sky-500/10 px-2 py-1 text-[10px] text-sky-100"
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:333:<div className="mt-3 flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:338:className="rounded-full border border-white/10 bg-black/20 px-2 py-1 text-[10px] text-zinc-300"
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:344:<span className="rounded-full border border-white/10 bg-black/20 px-2 py-1 text-[10px] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:351:<div className="flex justify-end gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\InventoryPanel.tsx:416:className="pixel-nine-slice pixel-pressable px-4 py-2 text-xs text-zinc-200"
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:87:return <div className="mb-1 text-xs font-medium text-zinc-300">{children}</div>;
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:107:className="w-full rounded-lg border border-white/10 bg-black/30 px-3 py-2 text-sm text-white outline-none transition focus:border-emerald-400/40 disabled:cursor-not-allowed disabled:opacity-60"
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:126:className="w-full rounded-lg border border-white/10 bg-black/30 px-3 py-2 text-sm leading-relaxed text-white outline-none transition focus:border-emerald-400/40"
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:144:className="w-full rounded-lg border border-white/10 bg-black/30 px-3 py-2 text-sm text-white outline-none transition focus:border-emerald-400/40"
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:442:<div className="rounded-2xl border border-white/10 bg-black/20 p-6 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:450:<div className="rounded-2xl border border-rose-400/20 bg-rose-500/10 p-6 text-sm text-rose-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:457:<div className="grid gap-6 xl:grid-cols-[360px_1fr_420px]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:458:<Section title="物品列表" description="基于 public/Icons 下的全部 png 素材自动构建物品目录,可按名称、路径、分类和稀有度筛选。">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:459:<div className="grid gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:468:<div className="grid gap-3 md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:480:<div className="mt-4 rounded-xl border border-white/10 bg-white/[0.03] px-3 py-2 text-xs text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:484:<div className="mt-4 max-h-[70vh] space-y-2 overflow-y-auto pr-1 scrollbar-hide">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:499:<div className="flex h-12 w-12 shrink-0 items-center justify-center rounded-lg border border-white/10 bg-black/35">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:500:<PixelIcon src={item.iconSrc} className="h-9 w-9" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:502:<div className="min-w-0 flex-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:503:<div className="truncate text-sm font-semibold text-white">{item.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:504:<div className="mt-1 truncate text-[10px] text-zinc-500">{item.sourcePath}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:505:<div className="mt-1 flex flex-wrap gap-1.5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:506:<span className="rounded-full border border-white/10 bg-white/[0.04] px-2 py-0.5 text-[10px] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:509:<span className="rounded-full border border-white/10 bg-white/[0.04] px-2 py-0.5 text-[10px] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:513:<span className="rounded-full border border-amber-400/20 bg-amber-500/10 px-2 py-0.5 text-[10px] text-amber-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:527:<div className="space-y-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:528:<div className="grid gap-4 lg:grid-cols-[220px_1fr]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:529:<div className="flex min-h-[240px] items-center justify-center rounded-2xl border border-white/10 bg-[radial-gradient(circle_at_top,rgba(255,255,255,0.12),transparent_45%),linear-gradient(180deg,#171a22,#0d1016)] p-6">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:530:<PixelIcon src={selectedItem.iconSrc} className="h-40 w-40" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:533:<div className="space-y-3 rounded-2xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:535:<div className="text-xs uppercase tracking-[0.2em] text-zinc-500">{selectedItem.category}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:536:<div className="mt-1 text-xl font-semibold text-white">{selectedItem.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:537:<div className="mt-1 text-xs text-zinc-500">{selectedItem.sourcePath}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:540:<div className="max-w-[12rem]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:552:<div className="flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:553:<span className="rounded-full border border-white/10 bg-white/[0.04] px-2 py-1 text-[11px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:556:<span className="rounded-full border border-white/10 bg-white/[0.04] px-2 py-1 text-[11px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:559:<span className="rounded-full border border-white/10 bg-white/[0.04] px-2 py-1 text-[11px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:562:<span className="rounded-full border border-white/10 bg-white/[0.04] px-2 py-1 text-[11px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:565:<span className="rounded-full border border-white/10 bg-white/[0.04] px-2 py-1 text-[11px] text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:570:<p className="text-sm leading-relaxed text-zinc-300">{selectedItem.description}</p>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:572:<div className="rounded-xl border border-white/10 bg-white/[0.03] px-3 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:573:<div className="text-[11px] uppercase tracking-[0.18em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:576:<div className="mt-1 text-sm font-semibold text-white">{worldProfile.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:577:<div className="mt-2 text-sm leading-relaxed text-zinc-300">{worldProfile.description}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:581:<div className="flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:585:className="rounded-full border border-white/10 bg-black/25 px-2 py-1 text-[10px] text-zinc-300"
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:590:<span className="rounded-full border border-white/10 bg-black/25 px-2 py-1 text-[10px] text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:598:<div className="grid gap-4 lg:grid-cols-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:599:<div className="rounded-2xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:600:<div className="mb-2 text-xs font-semibold uppercase tracking-[0.2em] text-zinc-500">属性设计</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:601:<div className="space-y-1 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:609:<div className="rounded-2xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:610:<div className="mb-2 text-xs font-semibold uppercase tracking-[0.2em] text-zinc-500">使用效果</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:612:<div className="space-y-1 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:619:<div className="text-sm text-zinc-500">无即时使用效果</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:623:<div className="rounded-2xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:624:<div className="mb-2 text-xs font-semibold uppercase tracking-[0.2em] text-zinc-500">构筑 / 套装</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:626:<div className="space-y-1 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:635:<div className="text-sm text-zinc-500">无构筑信息</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:640:<div className="rounded-2xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:641:<div className="mb-3 text-xs font-semibold uppercase tracking-[0.2em] text-zinc-500">背包卡片预览</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:642:<div className="flex items-center gap-4 rounded-2xl border border-white/10 bg-black/25 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:643:<div className="relative flex h-24 w-24 shrink-0 items-center justify-center rounded-2xl border border-white/10 bg-white/[0.04]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:644:<PixelIcon src={selectedItem.iconSrc} className="h-14 w-14" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:645:<div className="absolute bottom-2 right-2 rounded-full border border-black/30 bg-black/65 px-1.5 py-0.5 text-[10px] font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:649:<div className="min-w-0 flex-1 space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:650:<div className="text-base font-semibold text-white">{selectedItem.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:651:<div className="text-sm text-zinc-400">{selectedItem.category} / {RARITY_LABELS[selectedItem.rarity]}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:653:<div className="text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:658:<div className="text-sm text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:667:<div className="rounded-xl border border-white/10 bg-black/20 px-4 py-6 text-sm text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:673:<Section title="物品字段" description="编辑当前物品的覆盖字段。未修改的字段不会写入 override,重置后会恢复自动生成值。">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:675:<div className="space-y-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:694:<div className="grid gap-4 md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:721:<div className="mt-1 text-xs text-zinc-500">支持逗号或换行分隔。</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:733:<div className="grid gap-4 md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:764:<div className="grid gap-4 md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:797:<div className="grid gap-4 md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:862:<div className="rounded-xl border border-white/10 bg-white/[0.03] px-3 py-2 text-xs text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:866:<div className="flex flex-wrap items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:871:className="rounded-lg bg-emerald-500 px-4 py-2 text-sm font-medium text-black transition hover:bg-emerald-400 disabled:cursor-not-allowed disabled:opacity-60"
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:887:{saveMessage && <div className="text-xs text-zinc-400">{saveMessage}</div>}
|
||
E:\Repos\ai-native-visual-rpg\src\components\ItemCatalogEditor.tsx:891:<div className="rounded-xl border border-white/10 bg-black/20 px-4 py-6 text-sm text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\LazySkillEffectPreview.tsx:15:<div className="rounded-2xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\LazySkillEffectPreview.tsx:16:<div className="mb-3 space-y-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\LazySkillEffectPreview.tsx:17:<div className="h-4 w-28 rounded bg-white/10" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\LazySkillEffectPreview.tsx:18:<div className="h-3 w-40 rounded bg-white/5" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\LazySkillEffectPreview.tsx:20:<div className="overflow-hidden rounded-2xl border border-white/10 bg-black">
|
||
E:\Repos\ai-native-visual-rpg\src\components\LazySkillEffectPreview.tsx:21:<div className="h-[300px] animate-pulse bg-[radial-gradient(circle_at_top,rgba(255,255,255,0.08),transparent_42%),linear-gradient(180deg,rgba(255,255,255,0.05),rgba(255,255,255,0.02))]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:51:className="pixel-nine-slice map-room-cell h-full min-h-[3.25rem] opacity-40"
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:73:<button type="button" onClick={onClick} className="block h-full w-full text-left">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:147:className="fixed inset-0 z-50 flex items-center justify-center bg-black/70 p-3 sm:p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:155:className="pixel-nine-slice pixel-modal-shell relative flex max-h-[min(92vh,62rem)] w-full max-w-[min(96vw,64rem)] flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:160:className="pointer-events-none absolute inset-0"
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:163:<div className="pointer-events-none absolute inset-0 bg-[linear-gradient(180deg,rgba(2,6,23,0.18),rgba(2,6,23,0.68))]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:164:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:165:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:166:<div className="inline-flex items-center gap-2 text-[10px] tracking-[0.22em] text-emerald-300/75">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:167:<PixelIcon src={CHROME_ICONS.map} className="h-3.5 w-3.5" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:174:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:176:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:180:<div className="relative grid min-h-0 flex-1 gap-4 overflow-y-auto p-4 sm:p-5 md:grid-cols-[minmax(15rem,18rem)_minmax(0,1fr)] md:overflow-hidden">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:182:className="pixel-nine-slice pixel-panel min-w-0 font-mono text-[11px] leading-relaxed text-emerald-100/85 md:max-h-full md:self-start md:overflow-y-auto"
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:185:<div className="text-emerald-200/75">当前位置</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:186:<div className="mt-1 text-sm text-white">{currentScenePreset.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:187:<div className="mt-2 text-zinc-300">{currentScenePreset.description}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:189:<div className="mt-2 space-y-1.5 text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:198:<div className="min-h-0 p-1 font-mono md:overflow-y-auto">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:199:<div className="md:hidden">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:200:<div className="grid grid-cols-[minmax(0,0.9fr)_2rem_minmax(0,1.1fr)] items-start gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:201:<div className="w-full max-w-[7.5rem] justify-self-start" style={{ minHeight: `${destinationStackHeightPx}px` }}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:204:<div className="relative" style={{ minHeight: `${destinationStackHeightPx}px` }}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:206:<svg className="absolute inset-0 h-full w-full" preserveAspectRatio="none">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:221:<div className="space-y-3" style={{ minHeight: `${destinationStackHeightPx}px` }}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:236:<div className="hidden md:block">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:237:<div className="grid grid-cols-[minmax(0,12rem)_4rem_minmax(0,1fr)] items-start gap-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:238:<div className="w-full max-w-[9rem] justify-self-start" style={{ minHeight: `${destinationStackHeightPx}px` }}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:241:<div className="relative" style={{ minHeight: `${destinationStackHeightPx}px` }}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:243:<svg className="absolute inset-0 h-full w-full" preserveAspectRatio="none">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:258:<div className="space-y-3" style={{ minHeight: `${destinationStackHeightPx}px` }}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:281:className="fixed inset-0 z-[60] flex items-center justify-center bg-black/45 p-4 backdrop-blur-[2px]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:292:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,36rem)] w-full max-w-md flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.6)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:296:<div className="relative border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:297:<div className="min-w-0 pr-10">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:298:<div className="text-[10px] tracking-[0.22em] text-amber-200/80">场景切换</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:299:<div className="mt-1 truncate text-sm font-semibold text-white">{pendingScene.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:304:className="absolute right-4 top-3 p-1 text-zinc-400 transition-colors hover:text-white sm:right-5 sm:top-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:306:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:310:<div className="min-h-0 flex-1 space-y-4 overflow-y-auto p-4 sm:p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:311:<div className="rounded-xl border border-amber-400/20 bg-amber-500/10 px-4 py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:312:<div className="text-[10px] tracking-[0.18em] text-amber-200/75">目标场景</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:313:<div className="mt-2 text-base font-semibold text-white">{pendingScene.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:314:<div className="mt-2 text-sm leading-relaxed text-zinc-300">{pendingScene.description}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:317:<div className="grid gap-3 sm:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:318:<div className="rounded-xl border border-white/8 bg-black/20 px-4 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:319:<div className="text-[10px] tracking-[0.18em] text-zinc-500">当前</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:320:<div className="mt-2 text-sm font-semibold text-white">{currentScenePreset.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:322:<div className="rounded-xl border border-white/8 bg-black/20 px-4 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:323:<div className="text-[10px] tracking-[0.18em] text-zinc-500">前往</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:324:<div className="mt-2 text-sm font-semibold text-white">{pendingScene.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:328:<div className="flex justify-end gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\MapModal.tsx:332:className="rounded-lg border border-white/10 bg-black/20 px-3 py-2 text-xs text-zinc-200"
|
||
E:\Repos\ai-native-visual-rpg\src\components\MedievalNpcAnimator.tsx:118:npcName: '预览 NPC',
|
||
E:\Repos\ai-native-visual-rpg\src\components\MedievalNpcAnimator.tsx:119:npcDescription: '用于预览的 NPC 外形。',
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:68:<div className="flex items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:69:<div className="flex h-11 w-11 shrink-0 items-center justify-center rounded-lg border border-white/10 bg-black/35">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:70:<PixelIcon src={getItemVisualSrc(item)} className="h-7 w-7" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:72:<div className="min-w-0 flex-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:73:<div className="truncate text-sm font-medium text-white">{item.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:74:<div className="mt-1 text-[10px] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:78:<div className="rounded-full border border-white/10 bg-black/25 px-2 py-0.5 text-[10px] text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:97:<div className="flex items-center justify-between rounded-xl border border-white/8 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:99:<div className="text-[10px] uppercase tracking-[0.18em] text-zinc-500">数量</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:100:<div className="mt-1 text-xs text-zinc-400">最大 {safeMax}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:102:<div className="flex items-center gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:115:<div className="min-w-[3rem] text-center text-sm font-semibold text-white">{quantity}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:196:className="fixed inset-0 z-[75] flex items-center justify-center bg-black/70 p-3 backdrop-blur-sm sm:p-4"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:203:className="pixel-nine-slice pixel-modal-shell flex w-full max-w-4xl max-h-[min(92vh,48rem)] flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:207:<div className="flex items-center justify-between border-b border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:208:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:209:<div className="text-sm font-semibold text-white">交易</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:210:<div className="mt-1 text-xs text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:217:className="rounded-full border border-white/10 bg-black/20 p-2 text-zinc-400 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:219:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:223:<div className="flex-1 overflow-y-auto px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:224:<div className="grid gap-3 lg:grid-cols-[minmax(0,1.2fr)_minmax(18rem,0.8fr)]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:225:<div className="min-h-0 space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:226:<div className="grid grid-cols-2 gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:251:<div className="flex items-center justify-between rounded-xl border border-white/8 bg-black/20 px-3 py-2 text-xs text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:256:<div className="max-h-[42vh] space-y-2 overflow-y-auto pr-1 scrollbar-hide">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:272:<div className="rounded-xl border border-dashed border-white/10 bg-black/20 px-4 py-6 text-sm text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:279:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:280:<div className="rounded-xl border border-white/8 bg-black/20 p-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:282:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:289:<div className="rounded-xl border border-white/8 bg-black/20 px-3 py-3 text-sm text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:290:<div className="flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:292:<span className="font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:297:<div className="mt-2 text-xs text-rose-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:304:<div className="px-2 py-8 text-center text-sm text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:313:<div className="flex items-center justify-end gap-3 border-t border-white/10 px-4 py-3 sm:px-5 sm:py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:317:className="pixel-nine-slice pixel-pressable px-4 py-2 text-xs text-zinc-200"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:341:className="fixed inset-0 z-[76] flex items-center justify-center bg-black/78 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:348:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,42rem)] w-full max-w-lg flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:352:<div className="flex items-center justify-between border-b border-white/10 px-5 py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:354:<div className="text-sm font-semibold text-white">物品详情</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:355:<div className="mt-1 text-xs text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:362:className="rounded-full border border-white/10 bg-black/20 p-2 text-zinc-400 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:364:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:368:<div className="min-h-0 flex-1 space-y-4 overflow-y-auto p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:369:<div className="flex items-start gap-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:370:<div className="flex h-20 w-20 shrink-0 items-center justify-center rounded-2xl border border-white/10 bg-black/25">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:371:<PixelIcon src={getItemVisualSrc(tradeDetailItem)} className="h-12 w-12" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:373:<div className="min-w-0 flex-1">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:374:<div className="text-base font-semibold text-white">{tradeDetailItem.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:375:<div className="mt-1 text-xs text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:378:<div className="mt-2 space-y-1 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:390:<p className="text-sm leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:394:<div className="grid grid-cols-2 gap-2 text-xs text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:395:<div className="rounded-lg border border-white/8 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:398:<div className="rounded-lg border border-white/8 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:401:<div className="col-span-2 rounded-lg border border-white/8 bg-black/20 px-3 py-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:407:<div className="rounded-lg border border-emerald-400/15 bg-emerald-500/10 px-3 py-2 text-xs text-emerald-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:412:<div className="flex justify-end">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:416:className="pixel-nine-slice pixel-pressable px-4 py-2 text-xs text-zinc-200"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:432:className="fixed inset-0 z-[75] flex items-center justify-center bg-black/70 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:439:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,48rem)] w-full max-w-3xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:443:<div className="flex items-center justify-between border-b border-white/10 px-5 py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:445:<div className="text-sm font-semibold text-white">送礼面板</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:446:<div className="mt-1 text-xs text-zinc-500">{npcUi.giftModal.encounter.npcName}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:448:<button type="button" onClick={npcUi.closeGiftModal} className="rounded-full border border-white/10 bg-black/20 p-2 text-zinc-400 transition-colors hover:text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:449:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:453:<div className="min-h-0 flex-1 space-y-2 overflow-y-auto p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:461:<div className="flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:462:<div className="flex items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:463:<PixelIcon src={getItemVisualSrc(candidate.item)} className="h-8 w-8" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:465:<div className="text-sm text-white">{candidate.item.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:466:<div className="mt-1 text-[10px] text-zinc-500">{candidate.item.category} / {getRarityLabel(candidate.item.rarity)}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:469:<div className="rounded-full border border-rose-500/20 bg-rose-500/10 px-2 py-0.5 text-[10px] text-rose-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:477:<div className="flex justify-end gap-3 px-5 pb-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:478:<button type="button" onClick={npcUi.closeGiftModal} className="pixel-nine-slice pixel-pressable px-4 py-2 text-xs text-zinc-200" style={getNineSliceStyle(UI_CHROME.choiceButton, { paddingX: 14, paddingY: 8 })}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:494:className="fixed inset-0 z-[75] flex items-center justify-center bg-black/70 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:501:className="pixel-nine-slice pixel-modal-shell flex max-h-[min(92vh,42rem)] w-full max-w-2xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:505:<div className="flex items-center justify-between border-b border-white/10 px-5 py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:507:<div className="text-sm font-semibold text-white">当前上阵已满</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:508:<div className="mt-1 text-xs text-zinc-500">请选择一名要转入待命列表的同伴,再邀请新同伴入队。</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:510:<button type="button" onClick={npcUi.closeRecruitModal} className="rounded-full border border-white/10 bg-black/20 p-2 text-zinc-400 transition-colors hover:text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:511:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:515:<div className="min-h-0 flex-1 space-y-2 overflow-y-auto p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:526:<div className="text-sm text-white">{character.name}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:527:<div className="mt-1 text-[10px] text-zinc-500">{character.title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:533:<div className="flex justify-end gap-3 px-5 pb-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcModals.tsx:534:<button type="button" onClick={npcUi.closeRecruitModal} className="pixel-nine-slice pixel-pressable px-4 py-2 text-xs text-zinc-200" style={getNineSliceStyle(UI_CHROME.choiceButton, { paddingX: 14, paddingY: 8 })}>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:199:<label className="block">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:200:<div className="mb-1 text-xs font-medium text-zinc-300">{label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:205:className="w-full rounded-lg border border-white/10 bg-black/30 px-3 py-2 text-sm text-white outline-none transition focus:border-emerald-400/40 disabled:cursor-not-allowed disabled:opacity-60"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:462:<div className="rounded-2xl border border-white/10 bg-black/20 p-6 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:539:setSaveMessage(error instanceof Error ? error.message : 'Save failed');
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:700:<div className="mb-8">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:701:<div className="text-xs uppercase tracking-[0.3em] text-emerald-400/70">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:704:<h1 className="mt-2 text-3xl font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:707:<p className="mt-2 max-w-4xl text-sm leading-relaxed text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:713:<div className="grid gap-6 lg:grid-cols-[360px_1fr]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:714:<div className="rounded-2xl border border-white/10 bg-white/5 p-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:716:<div className="mb-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:718:label="当前 NPC"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:723:label: `${option.encounter.npcName} (${option.sceneNames.join(' / ')})`,
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:729:<div className="mb-4 rounded-xl border border-white/10 bg-black/20 px-4 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:730:<div className="text-sm font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:733:<div className="mt-1 text-xs text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:736:<div className="mt-2 text-xs leading-relaxed text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:741:<div className="grid gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:940:<div className="mt-5 flex flex-wrap items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:944:className="inline-flex items-center gap-2 rounded-lg bg-emerald-500 px-4 py-2 text-sm font-medium text-black transition hover:bg-emerald-400 disabled:cursor-not-allowed disabled:opacity-60"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:946:<Save className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:952:className="inline-flex items-center gap-2 rounded-lg border border-emerald-400/30 bg-emerald-500/10 px-4 py-2 text-sm font-medium text-emerald-100 transition hover:bg-emerald-500/20 disabled:cursor-not-allowed disabled:opacity-60"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:954:<Move className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:960:className="inline-flex items-center gap-2 rounded-lg border border-white/10 bg-black/20 px-4 py-2 text-sm font-medium text-zinc-200 transition hover:bg-white/10 disabled:cursor-not-allowed disabled:opacity-40"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:962:<RotateCcw className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:971:<div className="rounded-2xl border border-white/10 bg-[radial-gradient(circle_at_top,rgba(16,185,129,0.16),transparent_40%),linear-gradient(180deg,#10131a,#090b0f)] p-6">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:972:<div className="mb-4 flex items-center justify-between gap-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:974:<div className="text-sm font-semibold text-white">布局预览</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:975:<div className="mt-1 text-xs text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:979:<div className="rounded-lg border border-white/10 bg-black/20 px-3 py-2 text-xs text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:981:<span className="ml-1 text-emerald-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:987:<div className="mb-4 flex flex-wrap gap-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:999:<div className="flex min-h-[520px] items-center justify-center rounded-2xl border border-white/10 bg-[linear-gradient(180deg,#21242a,#111317)] p-6">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:1000:<div className="relative flex h-[420px] w-[320px] items-end justify-center overflow-hidden rounded-xl bg-[linear-gradient(180deg,#2a2f39,#16191f)] shadow-[inset_0_0_0_1px_rgba(255,255,255,0.04)]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:1001:<div className="absolute inset-0 opacity-10 [background-image:linear-gradient(rgba(255,255,255,0.16)_1px,transparent_1px),linear-gradient(90deg,rgba(255,255,255,0.16)_1px,transparent_1px)] [background-size:20px_20px]" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:1007:className="mb-10 drop-shadow-[0_18px_24px_rgba(0,0,0,0.45)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:1012:<div className="mt-4 grid grid-cols-2 gap-3 md:grid-cols-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:1020:<div className="mt-1 font-mono">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:1027:<div className="mt-4 rounded-xl border border-white/10 bg-black/20 px-4 py-3 text-xs leading-relaxed text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:1028:Current loadout:<span className="ml-2 text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:1036:<span className="mx-2 text-zinc-600">/</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:1037:<span className="text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:1045:<span className="mx-2 text-zinc-600">/</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\NpcVisualEditor.tsx:1046:<span className="text-zinc-200">
|
||
E:\Repos\ai-native-visual-rpg\src\components\npcVisualEditorPersistence.ts:31:saveMessage: 'Saved NPC visual overrides to src/data/npcVisualOverrides.json.',
|
||
E:\Repos\ai-native-visual-rpg\src\components\npcVisualEditorPersistence.ts:50:saveMessage: 'Saved shared NPC layout config.',
|
||
E:\Repos\ai-native-visual-rpg\src\components\PresetEditor.tsx:61:<div className="min-h-screen bg-[#0b0d11] text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\PresetEditor.tsx:62:<div className="mx-auto max-w-[1600px] px-6 py-8">
|
||
E:\Repos\ai-native-visual-rpg\src\components\PresetEditor.tsx:63:<div className="mb-8">
|
||
E:\Repos\ai-native-visual-rpg\src\components\PresetEditor.tsx:64:<div className="text-xs uppercase tracking-[0.3em] text-emerald-400/70">
|
||
E:\Repos\ai-native-visual-rpg\src\components\PresetEditor.tsx:67:<h1 className="mt-2 text-3xl font-semibold text-white">
|
||
E:\Repos\ai-native-visual-rpg\src\components\PresetEditor.tsx:70:<p className="mt-2 max-w-4xl text-sm leading-relaxed text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\PresetEditor.tsx:75:<div className="mb-6 flex flex-wrap gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\PresetEditor.tsx:91:<Icon className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:53:className="fixed inset-0 z-[90] flex items-center justify-center bg-black/72 p-4 backdrop-blur-sm"
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:61:className="pixel-nine-slice pixel-modal-shell flex w-full max-w-2xl flex-col overflow-hidden shadow-[0_24px_80px_rgba(0,0,0,0.55)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:65:<div className="flex items-center justify-between border-b border-white/10 px-5 py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:66:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:67:<div className="text-sm font-semibold text-white">{title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:69:<div className="mt-1 text-xs leading-relaxed text-zinc-400">{subtitle}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:78:<PixelIcon src={CHROME_ICONS.close} className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:81:<div className="p-5">{children}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:107:<div className="space-y-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:108:<label className="block">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:109:<div className="mb-3 text-xs font-bold tracking-[0.16em] text-white">世界设定文本</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:115:className="min-h-[22rem] w-full resize-none rounded-[1.75rem] border border-transparent bg-black/18 px-5 py-4 text-sm leading-7 text-zinc-100 outline-none transition-[background-color,box-shadow] placeholder:text-zinc-500 focus:bg-black/24 focus:shadow-[inset_0_0_0_1px_rgba(125,211,252,0.22)]"
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:120:<div className="rounded-2xl border border-sky-400/18 bg-sky-500/10 px-4 py-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:121:<div className="flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:122:<div className="text-sm font-semibold text-white">{progressLabel}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:123:<div className="text-xs text-sky-100">{Math.round(progress)}%</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:125:<div className="mt-3 h-3 overflow-hidden rounded-full border border-white/10 bg-black/35">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:127:className="h-full bg-[linear-gradient(90deg,#38bdf8_0%,#67e8f9_48%,#fef08a_100%)] transition-[width] duration-300"
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:135:<div className="rounded-2xl border border-rose-400/18 bg-rose-500/10 px-4 py-3 text-sm leading-6 text-rose-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:140:<div className="flex justify-end gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:156:<div className="flex items-center justify-between gap-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:157:<span className="text-sm font-semibold text-white">{isGenerating ? '正在生成世界...' : '确认并开始生成'}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:158:<span className="text-white/60">{isGenerating ? '...' : '→'}</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:185:<div className="space-y-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:186:<div className="rounded-2xl border border-white/8 bg-black/18 px-4 py-3 text-sm leading-7 text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:190:<label className="block">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:191:<div className="mb-2 text-xs font-bold tracking-[0.14em] text-white">角色名称</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:196:className="w-full rounded-2xl border border-white/10 bg-black/25 px-4 py-3 text-sm text-zinc-100 outline-none transition-colors placeholder:text-zinc-500 focus:border-sky-300/35"
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:200:<label className="block">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:201:<div className="mb-2 text-xs font-bold tracking-[0.14em] text-white">角色背景故事</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:206:className="min-h-44 w-full rounded-2xl border border-white/10 bg-black/25 px-4 py-3 text-sm leading-7 text-zinc-100 outline-none transition-colors placeholder:text-zinc-500 focus:border-sky-300/35"
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:211:<div className="rounded-2xl border border-rose-400/18 bg-rose-500/10 px-4 py-3 text-sm leading-6 text-rose-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:216:<div className="flex justify-end gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:220:className="rounded-full border border-white/10 bg-black/20 px-4 py-2 text-sm text-zinc-300 transition-colors hover:text-white"
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:227:className="pixel-nine-slice pixel-pressable text-left"
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:230:<div className="flex items-center justify-between gap-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:231:<span className="text-sm font-semibold text-white">保存修改</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\SelectionCustomizationModals.tsx:232:<span className="text-white/60">→</span>
|
||
E:\Repos\ai-native-visual-rpg\src\components\SkillEffectPreview.tsx:219:<div className="rounded-2xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SkillEffectPreview.tsx:220:<div className="mb-3 flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SkillEffectPreview.tsx:222:<div className="text-sm font-semibold text-white">{skill?.name ?? '未选择技能'}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\SkillEffectPreview.tsx:223:<div className="mt-1 text-xs text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SkillEffectPreview.tsx:231:className="inline-flex items-center gap-2 rounded-lg border border-white/10 bg-black/30 px-3 py-2 text-xs text-zinc-200 transition hover:border-white/20 hover:text-white disabled:cursor-not-allowed disabled:opacity-50"
|
||
E:\Repos\ai-native-visual-rpg\src\components\SkillEffectPreview.tsx:233:<RotateCcw className="h-3.5 w-3.5" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\SkillEffectPreview.tsx:238:<div className="overflow-hidden rounded-2xl border border-white/10 bg-black">
|
||
E:\Repos\ai-native-visual-rpg\src\components\SkillEffectPreview.tsx:239:<div className="h-[300px]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:106:{value: 'monster', label: '敌对NPC'},
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:107:{value: 'npc', label: 'NPC'},
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:131:<label className="block">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:132:<div className="mb-1 text-xs font-medium text-zinc-300">{label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:138:className="w-full rounded-lg border border-white/10 bg-black/30 px-3 py-2 text-sm text-white outline-none transition focus:border-emerald-400/40 disabled:cursor-not-allowed disabled:opacity-60"
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:160:<label className="block">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:161:<div className="mb-1 text-xs font-medium text-zinc-300">{label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:168:className="w-full rounded-lg border border-white/10 bg-black/30 px-3 py-2 text-sm leading-relaxed text-white outline-none transition focus:border-emerald-400/40 disabled:cursor-not-allowed disabled:opacity-60"
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:188:<label className="block">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:189:<div className="mb-1 text-xs font-medium text-zinc-300">{label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:194:className="w-full rounded-lg border border-white/10 bg-black/30 px-3 py-2 text-sm text-white outline-none transition focus:border-emerald-400/40 disabled:cursor-not-allowed disabled:opacity-60"
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:224:<label className="block">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:225:<div className="mb-1 text-xs font-medium text-zinc-300">{label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:243:className="w-full rounded-lg border border-white/10 bg-black/30 px-3 py-2 text-sm text-white outline-none transition focus:border-emerald-400/40 disabled:cursor-not-allowed disabled:opacity-60"
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:310:npcName: '预览 NPC',
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:313:context: 'Preview',
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:325:context: 'Treasure',
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:803:setPlayError(error instanceof Error ? error.message : 'Failed to play preview');
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:833:<div className="mb-4 flex flex-wrap items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:834:<div className="rounded-xl border border-white/10 bg-black/20 px-4 py-3 text-xs leading-relaxed text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:836:<div className="mt-1">模式:{getExecutionModelHint(executionMode)}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:841:className="rounded-lg border border-emerald-400/20 bg-emerald-500/10 px-4 py-2 text-sm text-emerald-100 transition hover:bg-emerald-500/20"
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:848:<div className="mb-4 rounded-xl border border-rose-400/20 bg-rose-500/10 px-4 py-3 text-sm text-rose-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:853:<div className="overflow-hidden rounded-2xl border border-white/10 bg-black">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:854:<div className="border-b border-white/10 bg-white/[0.03] px-4 py-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:855:<div className="text-sm font-semibold text-white">{isPlaying ? '预览播放中' : '预览就绪'}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:856:<div className="mt-1 text-xs text-zinc-400">{resolvedOption?.detailText ?? definition.description}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:858:<div className="h-[360px]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:881:<div className="mt-4 grid gap-3 md:grid-cols-2 xl:grid-cols-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:882:<div className="rounded-xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:883:<div className="text-[11px] uppercase tracking-[0.22em] text-zinc-500">实时玩家</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:884:<div className="mt-2 space-y-1 text-sm text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:889:<div className="text-xs text-zinc-400">当前原始值:{gameState.animationState} / {gameState.playerActionMode}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:892:<div className="rounded-xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:893:<div className="text-[11px] uppercase tracking-[0.22em] text-zinc-500">实时场景</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:894:<div className="mt-2 space-y-1 text-sm text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:896:<div className="text-xs text-zinc-400">{gameState.currentScenePreset?.id ?? '-'}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:900:<div className="rounded-xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:901:<div className="text-[11px] uppercase tracking-[0.22em] text-zinc-500">解析计划</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:902:<div className="mt-2 space-y-1 text-sm text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:908:<div className="rounded-xl border border-white/10 bg-black/20 p-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:909:<div className="text-[11px] uppercase tracking-[0.22em] text-zinc-500">战斗快照</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:911:<div className="mt-2 space-y-1 text-sm text-zinc-100">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:913:<div className="text-xs text-zinc-400">动画:{predictedSkill?.animation ?? displayAnimation}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:914:<div className="text-xs text-zinc-400">释放:{predictedSkill?.delivery ?? displayActionMode}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:915:<div className="text-xs text-zinc-400">伤害:{predictedSkill?.estimatedDamage ?? 'n/a'}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:916:<div className="text-xs text-zinc-400">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:921:<div className="mt-2 text-sm text-zinc-400">当前预览中尚未发出任何战斗动画。</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:969:return <div className="rounded-2xl border border-white/10 bg-black/20 p-6 text-sm text-zinc-300">无可选行为可用。</div>;
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1064:setSaveMessage(error instanceof Error ? error.message : 'Failed to save option behavior overrides');
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1080:<div className="grid gap-6 xl:grid-cols-[320px_1fr_420px]">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1081:<div className="space-y-6">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1083:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1098:<div className="flex items-center justify-between gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1099:<div className="min-w-0">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1100:<div className="truncate text-sm font-semibold">{definition.text}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1101:<div className="mt-1 font-mono text-[11px] text-zinc-500">{definition.id}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1103:{isCustomized && <span className="shrink-0 rounded-full border border-emerald-400/30 bg-emerald-500/10 px-2 py-0.5 text-[10px] uppercase tracking-[0.2em] text-emerald-100">自定义</span>}
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1105:<div className="mt-3 flex flex-wrap gap-2 text-[11px] uppercase tracking-[0.18em] text-zinc-500">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1113:<div className="mt-5 flex flex-wrap items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1114:<button type="button" onClick={saveOverrides} disabled={isSaving} className="inline-flex items-center gap-2 rounded-lg bg-emerald-500 px-4 py-2 text-sm font-medium text-black transition hover:bg-emerald-400 disabled:cursor-not-allowed disabled:opacity-60">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1115:<Save className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1118:<button type="button" onClick={resetCurrentBehavior} disabled={!overrideMap[selectedDefinition.id]} className="inline-flex items-center gap-2 rounded-lg border border-white/10 bg-black/20 px-4 py-2 text-sm font-medium text-zinc-200 transition hover:bg-white/10 disabled:cursor-not-allowed disabled:opacity-40">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1119:<RotateCcw className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1122:{saveMessage && <div className="text-xs text-zinc-400">{saveMessage}</div>}
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1127:<div className="space-y-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1129:<div className="flex flex-wrap gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1130:<button type="button" onClick={() => applyTemplate(false)} disabled={!selectedTemplateId} className="rounded-lg border border-emerald-400/20 bg-emerald-500/10 px-4 py-2 text-sm text-emerald-100 transition hover:bg-emerald-500/20 disabled:cursor-not-allowed disabled:opacity-40">应用结构</button>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1131:<button type="button" onClick={() => applyTemplate(true)} disabled={!selectedTemplateId} className="rounded-lg border border-white/10 bg-black/20 px-4 py-2 text-sm text-zinc-200 transition hover:bg-white/10 disabled:cursor-not-allowed disabled:opacity-40">应用文本</button>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1137:<div className="space-y-6">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1138:<SectionCard title="选项行为预览" description="下方预览会重建本地 GameState,并回放真实选项流程,包括战斗、逃跑、移动和空闲逻辑。">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1139:<div className="mb-4 grid gap-3 md:grid-cols-2 xl:grid-cols-5">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1143:<SelectField label="敌对NPC资源" value={selectedMonster.id} onChange={setSelectedMonsterId} options={monsterOptions.map(monster => ({value: monster.id, label: monster.name}))} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1146:{!executable && <div className="mb-4 rounded-xl border border-amber-400/20 bg-amber-500/10 px-4 py-3 text-sm text-amber-100">当前预览上下文下,这个状态/分类组合不可执行。</div>}
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1147:<div className="mb-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1160:<div className="space-y-6">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1162:<div className="grid gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1163:<TextField label="行为 ID" value={selectedDefinition.id} onChange={() => undefined} disabled />
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1184:<div className="grid gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1187:<OptionalNumberField label="玩家 Y 偏移" value={selectedDefinition.visual.playerOffsetY} onChange={value => updateVisual('playerOffsetY', value)} step={1} disabled={playerVisualFieldsDisabled} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1190:<TextAreaField label="敌对NPC反应文案" value={selectedDefinition.visual.monsterActionTemplate ?? ''} onChange={value => updateVisual('monsterActionTemplate', value || undefined)} rows={3} placeholder="可使用 {monster} 占位符" disabled={monsterVisualFieldsDisabled} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1191:<SelectField label="敌对NPC反应动画" value={selectedDefinition.visual.monsterAnimation ?? ''} onChange={value => updateVisual('monsterAnimation', (value || undefined) as FunctionVisualConfig['monsterAnimation'])} options={[{value: '', label: '无'}, ...MONSTER_ANIMATION_OPTIONS.map(value => ({value, label: value === 'idle' ? '待机' : value === 'move' ? '移动' : value === 'attack' ? '攻击' : value}))]} disabled={monsterVisualFieldsDisabled} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1192:<OptionalNumberField label="敌对NPC反应位移" value={selectedDefinition.visual.monsterMoveMeters} onChange={value => updateVisual('monsterMoveMeters', value)} step={0.1} disabled={monsterVisualFieldsDisabled} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1197:<div className="grid gap-3 md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1206:<OptionalNumberField label="敌对NPC追击起始滞后" value={selectedDefinition.effect.monsterLagStart} onChange={value => updateEffect('monsterLagStart', value)} step={0.01} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1207:<OptionalNumberField label="敌对NPC追击结束滞后" value={selectedDefinition.effect.monsterLagEnd} onChange={value => updateEffect('monsterLagEnd', value)} step={0.01} />
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1212:<div className="mt-4">
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1213:<div className="mb-3 text-xs font-medium uppercase tracking-[0.22em] text-zinc-500">技能权重</div>
|
||
E:\Repos\ai-native-visual-rpg\src\components\StateFunctionEditor.tsx:1214:<div className="grid gap-3 md:grid-cols-2">
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\EditorEmptyState.tsx:3:<div className="rounded-2xl border border-white/10 bg-black/20 p-6 text-sm text-zinc-300">
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:33:<label className="block">
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:34:<div className="mb-1 text-xs font-medium text-zinc-300">{label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:40:className="w-full rounded-lg border border-white/10 bg-black/30 px-3 py-2 text-sm text-white outline-none transition focus:border-emerald-400/40 disabled:cursor-not-allowed disabled:opacity-60"
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:60:<label className="block">
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:61:<div className="mb-1 text-xs font-medium text-zinc-300">{label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:68:className="w-full rounded-lg border border-white/10 bg-black/30 px-3 py-2 text-sm text-white outline-none transition focus:border-emerald-400/40"
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:90:<label className="block">
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:91:<div className="mb-1 text-xs font-medium text-zinc-300">{label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:98:className="w-full rounded-lg border border-white/10 bg-black/30 px-3 py-2 text-sm leading-relaxed text-white outline-none transition focus:border-emerald-400/40 disabled:cursor-not-allowed disabled:opacity-60"
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:118:<label className="block">
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:119:<div className="mb-1 text-xs font-medium text-zinc-300">{label}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:124:className="w-full rounded-lg border border-white/10 bg-black/30 px-3 py-2 text-sm text-white outline-none transition focus:border-emerald-400/40 disabled:cursor-not-allowed disabled:opacity-60"
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:148:<div className="mt-5 flex flex-wrap items-center gap-3">
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:153:className="inline-flex items-center gap-2 rounded-lg bg-emerald-500 px-4 py-2 text-sm font-medium text-black transition hover:bg-emerald-400 disabled:cursor-not-allowed disabled:opacity-60"
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\FormFields.tsx:155:<Save className="h-4 w-4" />
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\jsonClient.test.ts:11:message: 'Detailed failure',
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\jsonClient.ts:29:export async function fetchJson<T>(url: string, fallbackMessage = 'Request failed'): Promise<T> {
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\jsonClient.ts:43:fallbackMessage = 'Save failed',
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\SectionCard.tsx:18:<div className="mb-4">
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\SectionCard.tsx:19:<div className="text-sm font-semibold text-white">{title}</div>
|
||
E:\Repos\ai-native-visual-rpg\src\editor\shared\SectionCard.tsx:21:<div className="mt-1 text-xs leading-relaxed text-zinc-400">
|