Fix image loading and consequence task issues
FIXED IMAGE ISSUES: - Update getRandomImage() to include linked directory images in image pool - Update popupImageManager to use linked images for punishment popups - Store linked images globally as window.linkedImages for component access - Both consequences and popup images now use all available image sources FIXED CONSEQUENCE TASKS: - Update loadConsequenceTask() to use GameDataManager instead of empty gameData.consequenceTasks - Add fallback to legacy system if GameDataManager unavailable - Add safety fallback task if no consequence tasks found - Consequences should now show proper tasks from mainGameData.js instead of 'complete your task' RESULT: Images and consequences now use linked directories + proper task content
This commit is contained in:
parent
8c355ed54e
commit
1e33a465a9
|
|
@ -147,6 +147,9 @@ class TaskChallengeGame {
|
|||
try {
|
||||
const linkedImages = await this.getLinkedImages();
|
||||
|
||||
// Store linked images globally for access by other components
|
||||
window.linkedImages = linkedImages;
|
||||
|
||||
// Separate images into task and consequence categories if needed
|
||||
// For now, use all linked images as task images
|
||||
const taskImages = linkedImages.map(img => img.path);
|
||||
|
|
@ -4836,7 +4839,17 @@ ${usagePercent > 85 ? '⚠️ Storage getting full - consider deleting some imag
|
|||
}
|
||||
|
||||
loadConsequenceTask() {
|
||||
const availableTasks = gameData.consequenceTasks.filter(
|
||||
// Get consequence tasks from GameDataManager or fallback to legacy
|
||||
let consequenceTasks = [];
|
||||
|
||||
if (this.dataManager && this.dataManager.gameDataManager) {
|
||||
consequenceTasks = this.dataManager.gameDataManager.getConsequenceTasksForMode('main') || [];
|
||||
} else {
|
||||
// Fallback to legacy gameData
|
||||
consequenceTasks = gameData.consequenceTasks || [];
|
||||
}
|
||||
|
||||
const availableTasks = consequenceTasks.filter(
|
||||
task => !this.gameState.usedConsequenceTasks.includes(task.id)
|
||||
);
|
||||
|
||||
|
|
@ -4845,12 +4858,23 @@ ${usagePercent > 85 ? '⚠️ Storage getting full - consider deleting some imag
|
|||
this.gameState.usedConsequenceTasks = [];
|
||||
}
|
||||
|
||||
const tasksToChooseFrom = availableTasks.length > 0 ? availableTasks : gameData.consequenceTasks;
|
||||
const randomIndex = Math.floor(Math.random() * tasksToChooseFrom.length);
|
||||
this.gameState.currentTask = {
|
||||
...tasksToChooseFrom[randomIndex],
|
||||
image: this.getRandomImage(true) // true = consequence task image
|
||||
};
|
||||
const tasksToChooseFrom = availableTasks.length > 0 ? availableTasks : consequenceTasks;
|
||||
|
||||
if (tasksToChooseFrom.length === 0) {
|
||||
console.warn('No consequence tasks available, using fallback');
|
||||
this.gameState.currentTask = {
|
||||
id: 'fallback-consequence',
|
||||
text: 'Take a 30 second break and then continue your training',
|
||||
image: this.getRandomImage(true)
|
||||
};
|
||||
} else {
|
||||
const randomIndex = Math.floor(Math.random() * tasksToChooseFrom.length);
|
||||
this.gameState.currentTask = {
|
||||
...tasksToChooseFrom[randomIndex],
|
||||
image: this.getRandomImage(true) // true = consequence task image
|
||||
};
|
||||
}
|
||||
|
||||
this.gameState.isConsequenceTask = true;
|
||||
}
|
||||
|
||||
|
|
@ -4869,6 +4893,12 @@ ${usagePercent > 85 ? '⚠️ Storage getting full - consider deleting some imag
|
|||
usedImagesArray = this.gameState.usedTaskImages;
|
||||
}
|
||||
|
||||
// Add linked images from directories to the pool
|
||||
if (window.linkedImages && Array.isArray(window.linkedImages)) {
|
||||
const linkedImagePaths = window.linkedImages.map(img => img.path);
|
||||
imagePool = [...imagePool, ...linkedImagePaths];
|
||||
}
|
||||
|
||||
// Add custom images to the pool
|
||||
const customImages = this.dataManager.get('customImages') || { task: [], consequence: [] };
|
||||
|
||||
|
|
|
|||
|
|
@ -507,6 +507,12 @@ class PopupImageManager {
|
|||
// Get consequence images from the game's discovery system
|
||||
const discoveredImages = gameData.discoveredConsequenceImages || [];
|
||||
|
||||
// Add linked images from directories
|
||||
let linkedImages = [];
|
||||
if (window.linkedImages && Array.isArray(window.linkedImages)) {
|
||||
linkedImages = window.linkedImages.map(img => img.path);
|
||||
}
|
||||
|
||||
// Get custom consequence images
|
||||
const customImages = this.dataManager.get('customImages') || { task: [], consequence: [] };
|
||||
let customConsequenceImages = [];
|
||||
|
|
@ -519,7 +525,7 @@ class PopupImageManager {
|
|||
const disabledImages = this.dataManager.get('disabledImages') || [];
|
||||
|
||||
// Combine and filter images
|
||||
const allImages = [...discoveredImages, ...customConsequenceImages];
|
||||
const allImages = [...discoveredImages, ...linkedImages, ...customConsequenceImages];
|
||||
const availableImages = allImages.filter(img => {
|
||||
const imagePath = typeof img === 'string' ? img : (img.cachedPath || img.originalName);
|
||||
return !disabledImages.includes(imagePath);
|
||||
|
|
|
|||
Loading…
Reference in New Issue