Files
novafarma/docs/guides/test_accessibility.js
2025-12-12 22:46:38 +01:00

181 lines
6.7 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* INPUT REMAPPING & SUBTITLE SYSTEM - QUICK TEST SCRIPT
*
* Copy-paste this into browser console (F12) to test all features
* Make sure the game is running first!
*/
console.log('🎮 Starting Input Remapping & Subtitle System Test Suite...\n');
// Get systems
const visualCues = game.scene.scenes[1].visualSoundCues;
const inputSystem = game.scene.scenes[1].inputRemapping;
// ========== SUBTITLE SIZE TESTING ==========
console.log('📏 Test 1: Subtitle Sizes');
setTimeout(() => {
console.log('Testing SMALL size...');
visualCues.setSubtitleSize('small');
visualCues.showSubtitle('This is SMALL text', 2000, 'System');
}, 1000);
setTimeout(() => {
console.log('Testing MEDIUM size...');
visualCues.setSubtitleSize('medium');
visualCues.showSubtitle('This is MEDIUM text', 2000, 'System');
}, 3500);
setTimeout(() => {
console.log('Testing LARGE size...');
visualCues.setSubtitleSize('large');
visualCues.showSubtitle('This is LARGE text', 2000, 'System');
}, 6000);
setTimeout(() => {
console.log('Testing VERY LARGE size...');
visualCues.setSubtitleSize('very-large');
visualCues.showSubtitle('This is VERY LARGE text', 2000, 'System');
}, 8500);
setTimeout(() => {
console.log('Resetting to MEDIUM...');
visualCues.setSubtitleSize('medium');
}, 11000);
// ========== INPUT REMAPPING TESTING ==========
console.log('\n🎮 Test 2: Input Remapping');
setTimeout(() => {
console.log('\n=== DEFAULT PROFILE ===');
console.log('Move Up:', inputSystem.getBindingDisplay('move_up'));
console.log('Move Down:', inputSystem.getBindingDisplay('move_down'));
console.log('Move Left:', inputSystem.getBindingDisplay('move_left'));
console.log('Move Right:', inputSystem.getBindingDisplay('move_right'));
console.log('Interact:', inputSystem.getBindingDisplay('interact'));
console.log('Attack:', inputSystem.getBindingDisplay('attack'));
console.log('Inventory:', inputSystem.getBindingDisplay('inventory'));
console.log('Sprint:', inputSystem.getBindingDisplay('sprint'));
}, 12000);
setTimeout(() => {
console.log('\n=== SWITCHING TO LEFT-HANDED PROFILE ===');
inputSystem.switchProfile('left-handed');
console.log('Move Up:', inputSystem.getBindingDisplay('move_up'));
console.log('Move Down:', inputSystem.getBindingDisplay('move_down'));
console.log('Move Left:', inputSystem.getBindingDisplay('move_left'));
console.log('Move Right:', inputSystem.getBindingDisplay('move_right'));
console.log('Interact:', inputSystem.getBindingDisplay('interact'));
}, 14000);
setTimeout(() => {
console.log('\n=== SWITCHING TO ARROWS PROFILE ===');
inputSystem.switchProfile('arrows');
console.log('Move Up:', inputSystem.getBindingDisplay('move_up'));
console.log('Move Down:', inputSystem.getBindingDisplay('move_down'));
console.log('Move Left:', inputSystem.getBindingDisplay('move_left'));
console.log('Move Right:', inputSystem.getBindingDisplay('move_right'));
}, 16000);
setTimeout(() => {
console.log('\n=== BACK TO DEFAULT PROFILE ===');
inputSystem.switchProfile('default');
console.log('Current profile:', inputSystem.getCurrentProfile());
}, 18000);
// ========== CONTROLLER TESTING ==========
setTimeout(() => {
console.log('\n🎮 Test 3: Controller Detection');
const isConnected = inputSystem.isControllerConnected();
console.log('Controller connected:', isConnected);
if (isConnected) {
const info = inputSystem.getControllerInfo();
console.log('Controller info:', info);
console.log('A button:', inputSystem.getControllerButtonName('A'));
console.log('Start button:', inputSystem.getControllerButtonName('START'));
} else {
console.log(' No controller detected. Connect a controller to test.');
}
}, 20000);
// ========== EXPORT/IMPORT TESTING ==========
setTimeout(() => {
console.log('\n💾 Test 4: Export/Import Bindings');
const exported = inputSystem.exportBindings();
console.log('Exported bindings (first 200 chars):', exported.substring(0, 200) + '...');
// Test import
const success = inputSystem.importBindings(exported);
console.log('Import success:', success);
}, 22000);
// ========== PROFILE LISTING ==========
setTimeout(() => {
console.log('\n📋 Test 5: Available Profiles');
const profiles = inputSystem.getProfiles();
console.log('All profiles:', profiles);
console.log('Current profile:', inputSystem.getCurrentProfile());
}, 24000);
// ========== COMBINED TEST ==========
setTimeout(() => {
console.log('\n🎨 Test 6: Combined Features');
// Large subtitles with speaker
visualCues.setSubtitleSize('large');
visualCues.showSubtitle('Testing large subtitles with speaker!', 3000, 'NPC', 'left');
console.log('Subtitle size: LARGE');
console.log('Speaker: NPC (yellow)');
console.log('Direction: LEFT (arrow)');
}, 26000);
setTimeout(() => {
// Very large subtitles
visualCues.setSubtitleSize('very-large');
visualCues.showSubtitle('VERY LARGE TEXT!', 3000, 'System', 'both');
console.log('Subtitle size: VERY LARGE');
console.log('Direction: BOTH (arrows)');
}, 29500);
setTimeout(() => {
// Reset to medium
visualCues.setSubtitleSize('medium');
}, 33000);
// ========== REBINDING DEMO ==========
setTimeout(() => {
console.log('\n🔧 Test 7: Rebinding Demo');
console.log(' To test rebinding, run this command:');
console.log(' inputSystem.startRebinding("interact", (action, key) => {');
console.log(' console.log(`Rebound ${action} to ${key}`);');
console.log(' });');
console.log('Then press any key to rebind, or ESC to cancel.');
}, 34000);
// ========== FINAL SUMMARY ==========
setTimeout(() => {
console.log('\n✅ Test Suite Complete!');
console.log('\n📋 Summary:');
console.log(' - Subtitle Sizes (4 sizes): ✅');
console.log(' - Input Remapping: ✅');
console.log(' - Profile Switching: ✅');
console.log(' - Controller Detection: ✅');
console.log(' - Export/Import: ✅');
console.log(' - One-Handed Layouts: ✅');
console.log('\n🎉 All features working correctly!');
console.log('\n📖 See testing guides for detailed instructions:');
console.log(' - CLOSED_CAPTIONS_TESTING.md');
console.log(' - INPUT_REMAPPING_TESTING.md');
console.log('\n🎮 Quick Commands:');
console.log(' visualCues.setSubtitleSize("small|medium|large|very-large")');
console.log(' inputSystem.switchProfile("default|left-handed|arrows")');
console.log(' inputSystem.getBindingDisplay("action_name")');
console.log(' inputSystem.startRebinding("action_name", callback)');
}, 36000);
console.log('\n⏱ Test will run for ~40 seconds. Watch the screen and console!\n');