Simplify custom world result editing controls
This commit is contained in:
@@ -1135,84 +1135,53 @@ export function AdventurePanelOverlays({
|
||||
</div>
|
||||
|
||||
<div className="flex-1 overflow-y-auto p-3 scrollbar-hide">
|
||||
{(() => {
|
||||
if (!activeGoalQuest) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const currentTaskCard = buildCurrentTaskCardCopy({
|
||||
goalStack,
|
||||
goalPulse,
|
||||
journeyBeat,
|
||||
sceneName: statistics.currentSceneName,
|
||||
});
|
||||
if (!currentTaskCard) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return (
|
||||
<TaskTemplateCard
|
||||
eyebrow={currentTaskCard.eyebrow}
|
||||
title={currentTaskCard.title}
|
||||
description={currentTaskCard.description}
|
||||
condition={currentTaskCard.condition}
|
||||
progress={currentTaskCard.progress}
|
||||
reward={activeGoalQuest?.reward ?? null}
|
||||
onRewardItemSelect={
|
||||
activeGoalQuest
|
||||
? itemId => selectQuestRewardItem(activeGoalQuest, itemId)
|
||||
: null
|
||||
}
|
||||
tone="main"
|
||||
/>
|
||||
);
|
||||
})()}
|
||||
|
||||
{quests.length > 0 ? (
|
||||
<div className={`${activeGoalQuest ? 'mt-3' : ''} space-y-2`}>
|
||||
<div className="space-y-2">
|
||||
{sortedQuests.map(quest => (
|
||||
<button
|
||||
<div
|
||||
key={quest.id}
|
||||
type="button"
|
||||
onClick={() => setSelectedQuestId(quest.id)}
|
||||
className="w-full rounded-2xl border border-white/8 bg-black/20 px-3 py-3 text-left transition hover:border-white/15"
|
||||
className="rounded-2xl border border-white/8 bg-black/20 transition hover:border-white/15 focus-within:border-white/15"
|
||||
>
|
||||
<div className="flex flex-wrap items-center justify-between gap-2">
|
||||
<div className="text-[10px] tracking-[0.2em] text-zinc-500">
|
||||
{goalStack.activeGoal?.sourceKind === 'quest' && goalStack.activeGoal.sourceId === quest.id
|
||||
? '当前主任务'
|
||||
: '任务'}
|
||||
<button
|
||||
type="button"
|
||||
onClick={() => setSelectedQuestId(quest.id)}
|
||||
className="w-full px-3 pt-3 text-left focus:outline-none"
|
||||
>
|
||||
<div className="flex flex-wrap items-center justify-between gap-2">
|
||||
<div className="text-[10px] tracking-[0.2em] text-zinc-500">任务</div>
|
||||
<span className={`rounded-full px-2 py-0.5 text-[10px] ${
|
||||
isQuestReadyToClaim(quest)
|
||||
? 'border border-emerald-400/20 bg-emerald-500/10 text-emerald-100'
|
||||
: quest.status === 'turned_in'
|
||||
? 'border border-white/10 bg-white/8 text-zinc-200'
|
||||
: 'border border-sky-400/20 bg-sky-500/10 text-sky-100'
|
||||
}`}>
|
||||
{getQuestStatusLabel(quest.status)}
|
||||
</span>
|
||||
</div>
|
||||
<span className={`rounded-full px-2 py-0.5 text-[10px] ${
|
||||
isQuestReadyToClaim(quest)
|
||||
? 'border border-emerald-400/20 bg-emerald-500/10 text-emerald-100'
|
||||
: quest.status === 'turned_in'
|
||||
? 'border border-white/10 bg-white/8 text-zinc-200'
|
||||
: 'border border-sky-400/20 bg-sky-500/10 text-sky-100'
|
||||
}`}>
|
||||
{getQuestStatusLabel(quest.status)}
|
||||
</span>
|
||||
<div className="mt-2 text-sm font-semibold text-white">
|
||||
{formatTaskTitle(quest.title)}
|
||||
</div>
|
||||
<div className="mt-2 text-xs leading-relaxed text-zinc-400">
|
||||
<span className="text-zinc-500">任务描述:</span>
|
||||
{quest.description || quest.narrativeBinding?.playerHook || quest.summary}
|
||||
</div>
|
||||
<div className="mt-1 text-xs leading-relaxed text-zinc-300">
|
||||
<span className="text-zinc-500">达成条件:</span>
|
||||
{buildQuestConditionText(quest, worldType)}
|
||||
</div>
|
||||
<div className="mt-2 text-[11px] leading-relaxed text-zinc-500">
|
||||
委托人:{quest.issuerNpcName}
|
||||
{` · 任务进度:${getQuestProgressText(quest)}`}
|
||||
</div>
|
||||
</button>
|
||||
<div className="px-3 pb-3">
|
||||
<QuestRewardIconStrip
|
||||
reward={quest.reward}
|
||||
onSelectItem={itemId => selectQuestRewardItem(quest, itemId)}
|
||||
/>
|
||||
</div>
|
||||
<div className="mt-2 text-sm font-semibold text-white">
|
||||
{formatTaskTitle(quest.title)}
|
||||
</div>
|
||||
<div className="mt-2 text-xs leading-relaxed text-zinc-400">
|
||||
<span className="text-zinc-500">任务描述:</span>
|
||||
{quest.description || quest.narrativeBinding?.playerHook || quest.summary}
|
||||
</div>
|
||||
<div className="mt-1 text-xs leading-relaxed text-zinc-300">
|
||||
<span className="text-zinc-500">达成条件:</span>
|
||||
{buildQuestConditionText(quest, worldType)}
|
||||
</div>
|
||||
<div className="mt-2 text-[11px] leading-relaxed text-zinc-500">
|
||||
委托人:{quest.issuerNpcName}
|
||||
{` · 任务进度:${getQuestProgressText(quest)}`}
|
||||
</div>
|
||||
<QuestRewardIconStrip
|
||||
reward={quest.reward}
|
||||
onSelectItem={itemId => selectQuestRewardItem(quest, itemId)}
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
) : (
|
||||
|
||||
Reference in New Issue
Block a user