fix: resolve all Priority 4 and Priority 3 issues (18 issues total)
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m20s
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m20s
Priority 4 fixes: - #50: getUnlockedAttunements filter now only returns active attunements - #48: doPrestige return type changed from void to boolean - #47: ConfirmDialog now catches and displays async errors from onConfirm - #46: GameStateDebug Fill Mana now uses direct setState instead of loop - #55: DisciplinesTab statBonus/baseValue props verified correct - #56: DisciplinesTab tab filtering verified working Priority 3 fixes: - #45: drain spell description changed from 'life force' to 'vital energy' - #44: removed banned 'ascension' skill category - #43: renamed lifeEssenceDrop to vitalityEssenceDrop - #42: pactMaster achievement requirement changed from 12 to 9 - #40: golems/utils.ts and equipment/utils.ts now import from index - #39: removed duplicate RoomType from constants/rooms.ts - #38: consolidated EquipmentSlot type in types/equipmentSlot.ts - #37: removed duplicate EnchantmentEffectDef from spell-effects/types.ts - #36: renamed RARITY_COLORS in loot-drops.ts to LOOT_RARITY_COLORS
This commit is contained in:
@@ -101,7 +101,7 @@ export const ACHIEVEMENTS: Record<string, AchievementDef> = {
|
||||
name: 'Pact Master',
|
||||
desc: 'Sign all guardian pacts',
|
||||
category: 'progression',
|
||||
requirement: { type: 'pact', value: 12 },
|
||||
requirement: { type: 'pact', value: 9 },
|
||||
reward: { insight: 500, damageBonus: 0.2, title: 'Pact Master' },
|
||||
},
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ export function getAttunementBySlot(slot: AttunementSlot): AttunementDef | undef
|
||||
// Helper function to get all unlocked attunements for a player
|
||||
export function getUnlockedAttunements(attunements: Record<string, { active: boolean; level: number; experience: number }>): AttunementDef[] {
|
||||
return Object.entries(attunements)
|
||||
.filter(([id, state]) => state.active || ATTUNEMENTS_DEF[id]?.unlocked)
|
||||
.filter(([id, state]) => state.active)
|
||||
.map(([id]) => ATTUNEMENTS_DEF[id])
|
||||
.filter(Boolean);
|
||||
}
|
||||
@@ -182,7 +182,7 @@ export function getAvailableSkillCategories(
|
||||
categories.add('mana');
|
||||
categories.add('study');
|
||||
categories.add('research');
|
||||
categories.add('ascension');
|
||||
// categories.add('ascension'); // removed: banned mechanic
|
||||
|
||||
// Add categories from active attunements
|
||||
Object.entries(attunements)
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
// Re-exports all spell effects from modular files
|
||||
|
||||
// Re-export types
|
||||
export type { EnchantmentEffectDef, ALL_CASTER } from './types';
|
||||
export type { EnchantmentEffectDef } from '../../enchantment-types';
|
||||
export { ALL_CASTER } from './types';
|
||||
|
||||
// Import all spell effect groups
|
||||
import { BASIC_SPELL_EFFECTS } from './basic-spells';
|
||||
|
||||
@@ -1,20 +1,8 @@
|
||||
// ─── Spell Enchantment Effects Types ─────────────────
|
||||
import type { EquipmentCategory } from '../../equipment';
|
||||
|
||||
export interface EnchantmentEffectDef {
|
||||
id: string;
|
||||
name: string;
|
||||
description: string;
|
||||
category: string;
|
||||
baseCapacityCost: number;
|
||||
maxStacks: number;
|
||||
allowedEquipmentCategories: string[];
|
||||
effect: {
|
||||
type: string;
|
||||
spellId?: string;
|
||||
stat?: string;
|
||||
value?: number;
|
||||
};
|
||||
}
|
||||
// Re-export canonical type from enchantment-types
|
||||
export type { EnchantmentEffectDef } from '../../enchantment-types';
|
||||
|
||||
// Helper to define allowed equipment categories for each effect type
|
||||
export const ALL_CASTER: string[] = ['caster']
|
||||
export const ALL_CASTER: EquipmentCategory[] = ['caster'];
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// ─── Equipment Types ─────────────────────────────────────────────────
|
||||
|
||||
export type EquipmentSlot = 'mainHand' | 'offHand' | 'head' | 'body' | 'hands' | 'feet' | 'accessory1' | 'accessory2';
|
||||
export type { EquipmentSlot } from '../../types/equipmentSlot';
|
||||
export type EquipmentCategory = 'caster' | 'shield' | 'catalyst' | 'sword' | 'head' | 'body' | 'hands' | 'feet' | 'accessory';
|
||||
|
||||
// All equipment slots in order
|
||||
|
||||
@@ -1,27 +1,7 @@
|
||||
// ─── Equipment Helper Functions ─────────────────────────
|
||||
|
||||
import type { EquipmentType, EquipmentSlot, EquipmentCategory } from './types';
|
||||
import { ACCESSORIES_EQUIPMENT } from './accessories';
|
||||
import { BODY_EQUIPMENT } from './body';
|
||||
import { CASTER_EQUIPMENT } from './casters';
|
||||
import { CATALYST_EQUIPMENT } from './catalysts';
|
||||
import { FEET_EQUIPMENT } from './feet';
|
||||
import { HANDS_EQUIPMENT } from './hands';
|
||||
import { HEAD_EQUIPMENT } from './head';
|
||||
import { SHIELD_EQUIPMENT } from './shields';
|
||||
import { SWORD_EQUIPMENT } from './swords';
|
||||
|
||||
const EQUIPMENT_TYPES: Record<string, EquipmentType> = {
|
||||
...ACCESSORIES_EQUIPMENT,
|
||||
...BODY_EQUIPMENT,
|
||||
...CASTER_EQUIPMENT,
|
||||
...CATALYST_EQUIPMENT,
|
||||
...FEET_EQUIPMENT,
|
||||
...HANDS_EQUIPMENT,
|
||||
...HEAD_EQUIPMENT,
|
||||
...SHIELD_EQUIPMENT,
|
||||
...SWORD_EQUIPMENT,
|
||||
};
|
||||
import { EQUIPMENT_TYPES } from './index';
|
||||
|
||||
export function getEquipmentType(id: string): EquipmentType | undefined {
|
||||
return EQUIPMENT_TYPES[id];
|
||||
|
||||
@@ -1,15 +1,7 @@
|
||||
// ─── Golem Helper Functions ─────────────────────────
|
||||
|
||||
import type { GolemDef, GolemManaCost } from './types';
|
||||
import { BASE_GOLEMS } from './base-golems';
|
||||
import { ELEMENTAL_GOLEMS } from './elemental-golems';
|
||||
import { HYBRID_GOLEMS } from './hybrid-golems';
|
||||
|
||||
const GOLEMS_DEF = {
|
||||
...BASE_GOLEMS,
|
||||
...ELEMENTAL_GOLEMS,
|
||||
...HYBRID_GOLEMS,
|
||||
};
|
||||
import { GOLEMS_DEF } from './index';
|
||||
|
||||
// Get golem slots based on Fabricator attunement level
|
||||
// Level 2 = 1, Level 4 = 2, Level 6 = 3, Level 8 = 4, Level 10 = 5
|
||||
|
||||
@@ -102,9 +102,9 @@ export const LOOT_DROPS: Record<string, LootDrop> = {
|
||||
dropChance: 0.08,
|
||||
amount: { min: 3, max: 10 },
|
||||
},
|
||||
lifeEssenceDrop: {
|
||||
id: 'lifeEssenceDrop',
|
||||
name: 'Life Essence',
|
||||
vitalityEssenceDrop: {
|
||||
id: 'vitalityEssenceDrop',
|
||||
name: 'Vitality Essence',
|
||||
rarity: 'epic',
|
||||
type: 'essence',
|
||||
minFloor: 40,
|
||||
@@ -187,7 +187,7 @@ export const LOOT_DROPS: Record<string, LootDrop> = {
|
||||
};
|
||||
|
||||
// Rarity colors for UI
|
||||
export const RARITY_COLORS: Record<string, { color: string; glow: string }> = {
|
||||
export const LOOT_RARITY_COLORS: Record<string, { color: string; glow: string }> = {
|
||||
common: { color: '#9CA3AF', glow: '#9CA3AF40' },
|
||||
uncommon: { color: '#22C55E', glow: '#22C55E40' },
|
||||
rare: { color: '#3B82F6', glow: '#3B82F640' },
|
||||
|
||||
Reference in New Issue
Block a user