fix(#165,#166,#167,#168,#169,#171,#172): resolve 7 open bug issues
#172 - Grimoire tab: removed dead 'loaded' state guard that permanently showed loading #169 - Transference Mana Flow: added elements param to checkDisciplinePrerequisites so mana type unlocks are verified #168 - Perk descriptions: wired 4 broken perks (enchant-2, channel-1, golem-2, efficiency-1) with actual bonus effects; fixed enchant-1 interval (5→50); fixed study-mana-enchantments stat (maxMana→maxManaBonus) #171 - Shields: removed all shield equipment (4 types), recipes, category, slot mappings; added 'shields' to AGENTS.md banned list #166 - regenMultiplier: merged disciplineEffects.multipliers.regenMultiplier into computeAllEffects() #165 - Meditation cap: added meditationCap display to ManaStatsSection UI; updated perk description #167 - XP accumulation: added Meditative Mastery base discipline with disciplineXpBonus stat; wired into tick pipeline
This commit is contained in:
@@ -3,7 +3,6 @@ import {
|
||||
Sparkles,
|
||||
Package,
|
||||
Sword,
|
||||
Shield,
|
||||
Shirt,
|
||||
Crown,
|
||||
Wrench
|
||||
@@ -11,7 +10,6 @@ import {
|
||||
|
||||
export const CATEGORY_ICONS: Record<string, typeof Sword> = {
|
||||
caster: Sword,
|
||||
shield: Shield,
|
||||
catalyst: Sparkles,
|
||||
head: Crown,
|
||||
body: Shirt,
|
||||
|
||||
@@ -24,7 +24,7 @@ const BRANCH_RECIPE_IDS = new Set([
|
||||
'oakStaff', 'arcanistStaff', 'battlestaff', 'arcanistCirclet', 'arcanistRobe',
|
||||
'voidCatalyst', 'arcanistPendant',
|
||||
'crystalBlade', 'arcanistBlade', 'voidBlade', 'battleHelm', 'battleRobe',
|
||||
'battleBoots', 'combatGauntlets', 'runicShield', 'manaShield',
|
||||
'battleBoots', 'combatGauntlets',
|
||||
]);
|
||||
|
||||
function isWizardBranch(recipe: FabricatorRecipe): boolean {
|
||||
@@ -34,8 +34,7 @@ function isWizardBranch(recipe: FabricatorRecipe): boolean {
|
||||
|
||||
function isPhysicalBranch(recipe: FabricatorRecipe): boolean {
|
||||
return ['crystalBlade', 'arcanistBlade', 'voidBlade', 'battleHelm',
|
||||
'battleRobe', 'battleBoots', 'combatGauntlets', 'runicShield',
|
||||
'manaShield'].includes(recipe.id);
|
||||
'battleRobe', 'battleBoots', 'combatGauntlets'].includes(recipe.id);
|
||||
}
|
||||
|
||||
function RecipeCard({
|
||||
|
||||
@@ -257,7 +257,7 @@ export const DisciplinesTab: React.FC = () => {
|
||||
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4">
|
||||
{activeTab?.items.map((disc) => {
|
||||
const discState = disciplines[disc.id] ?? { xp: 0, paused: true };
|
||||
const prereqCheck = checkDisciplinePrerequisites(disc, disciplines, ALL_DISCIPLINES);
|
||||
const prereqCheck = checkDisciplinePrerequisites(disc, disciplines, ALL_DISCIPLINES, elements);
|
||||
return (
|
||||
<DisciplineCard
|
||||
key={disc.id}
|
||||
|
||||
@@ -25,7 +25,11 @@ export function StatsTab() {
|
||||
return (
|
||||
<div className="space-y-4">
|
||||
<ManaStatsSection
|
||||
stats={{ ...manaStats, rawMana: manaStats.maxMana }}
|
||||
stats={{
|
||||
...manaStats,
|
||||
rawMana: manaStats.maxMana,
|
||||
meditationCap: manaStats.meditationCap,
|
||||
}}
|
||||
elemMax={elemMax}
|
||||
/>
|
||||
<CombatStatsSection
|
||||
|
||||
@@ -11,6 +11,7 @@ export interface ManaStatsData {
|
||||
effectiveRegen: number;
|
||||
clickMana: number;
|
||||
meditationMultiplier: number;
|
||||
meditationCap: number;
|
||||
upgradeEffects: ComputedEffects;
|
||||
incursionStrength: number;
|
||||
rawMana: number;
|
||||
@@ -124,6 +125,10 @@ export function ManaStatsSection({ stats, elemMax }: ManaStatsSectionProps) {
|
||||
{fmtDec(meditationMultiplier, 2)}x
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex justify-between text-sm">
|
||||
<span style={{ color: 'var(--text-muted)' }}>Meditation Cap:</span>
|
||||
<span style={{ color: 'var(--text-secondary)' }}>{fmtDec(stats.meditationCap, 1)}x</span>
|
||||
</div>
|
||||
<div className="flex justify-between text-sm">
|
||||
<span style={{ color: 'var(--text-muted)' }}>Incursion Strength:</span>
|
||||
<span style={{ color: 'var(--color-danger)' }}>{Math.round(incursionStrength * 100)}%</span>
|
||||
|
||||
Reference in New Issue
Block a user