Task 2: Research Locking - prevent switching topics while study in progress
This commit is contained in:
@@ -267,7 +267,10 @@ export function SkillsTab() {
|
|||||||
const baseCost = def.base * (level + 1) * currentTier;
|
const baseCost = def.base * (level + 1) * currentTier;
|
||||||
const cost = Math.floor(baseCost * studyCostMult);
|
const cost = Math.floor(baseCost * studyCostMult);
|
||||||
|
|
||||||
const canStudy = !maxed && prereqMet && store.rawMana >= cost && !isStudying;
|
// Check if any study is in progress (prevent switching topics)
|
||||||
|
const isAnyStudyInProgress = store.currentAction === 'study' && store.currentStudyTarget;
|
||||||
|
// Can only study if: not maxed, prereqs met, has mana, and either no study in progress or already studying this skill
|
||||||
|
const canStudy = !maxed && prereqMet && store.rawMana >= cost && (!isAnyStudyInProgress || isStudying);
|
||||||
|
|
||||||
const milestoneInfo = hasMilestoneUpgrade(tieredSkillId, level);
|
const milestoneInfo = hasMilestoneUpgrade(tieredSkillId, level);
|
||||||
const nextTierSkill = getNextTierSkill(tieredSkillId);
|
const nextTierSkill = getNextTierSkill(tieredSkillId);
|
||||||
@@ -369,6 +372,9 @@ export function SkillsTab() {
|
|||||||
<Badge className="bg-green-900/50 text-green-300">Maxed</Badge>
|
<Badge className="bg-green-900/50 text-green-300">Maxed</Badge>
|
||||||
) : (
|
) : (
|
||||||
<div className="flex gap-1">
|
<div className="flex gap-1">
|
||||||
|
<TooltipProvider>
|
||||||
|
<Tooltip>
|
||||||
|
<TooltipTrigger asChild>
|
||||||
<Button
|
<Button
|
||||||
size="sm"
|
size="sm"
|
||||||
variant={canStudy ? 'default' : 'outline'}
|
variant={canStudy ? 'default' : 'outline'}
|
||||||
@@ -378,6 +384,14 @@ export function SkillsTab() {
|
|||||||
>
|
>
|
||||||
Study ({fmt(cost)})
|
Study ({fmt(cost)})
|
||||||
</Button>
|
</Button>
|
||||||
|
</TooltipTrigger>
|
||||||
|
{!canStudy && isAnyStudyInProgress && !isStudying && (
|
||||||
|
<TooltipContent>
|
||||||
|
<p>Cannot switch topics while studying {SKILLS_DEF[store.currentStudyTarget?.id || '']?.name || 'another skill'}</p>
|
||||||
|
</TooltipContent>
|
||||||
|
)}
|
||||||
|
</Tooltip>
|
||||||
|
</TooltipProvider>
|
||||||
{/* Parallel Study button */}
|
{/* Parallel Study button */}
|
||||||
{hasParallelStudy &&
|
{hasParallelStudy &&
|
||||||
store.currentStudyTarget &&
|
store.currentStudyTarget &&
|
||||||
|
|||||||
Reference in New Issue
Block a user