Files
BreakEscape/js/utils/constants.js
Z. Cliffe Schreuders ef5d85b744 Refactor InkEngine to allow manual control of story continuation; enhance continue method for better text accumulation and logging
Update interactions.js to reference new version of constants

Improve NPCBarkSystem to dynamically import phone-chat minigame and handle fallback UI more gracefully

Modify constants.js to conditionally export GAME_CONFIG based on Phaser availability

Update implementation log for Phone Chat Minigame, detailing completed modules and next steps

Create detailed implementation plan for Phone Chat Minigame, outlining structure, features, and integration points

Add test HTML page for Phone Chat Minigame, including setup, chat tests, and history management functionalities
2025-10-29 19:17:51 +00:00

68 lines
2.5 KiB
JavaScript

// Game constants
export const TILE_SIZE = 32;
export const DOOR_ALIGN_OVERLAP = 32 * 3;
export const GRID_SIZE = 32;
export const MOVEMENT_SPEED = 150;
export const RUN_SPEED_MULTIPLIER = 1.5; // Speed multiplier when holding shift
export const RUN_ANIMATION_MULTIPLIER = 1.5; // Animation speed multiplier when holding shift
export const ARRIVAL_THRESHOLD = 8;
export const PATH_UPDATE_INTERVAL = 500;
export const STUCK_THRESHOLD = 1;
export const STUCK_TIME = 500;
export const INVENTORY_X_OFFSET = 50;
export const INVENTORY_Y_OFFSET = 50;
export const CLICK_INDICATOR_DURATION = 800; // milliseconds
export const CLICK_INDICATOR_SIZE = 20; // pixels
export const PLAYER_FEET_OFFSET_Y = 30; // Adjust based on your sprite's feet position (64px sprite)
// Room visibility settings
export const HIDE_ROOMS_INITIALLY = true;
export const HIDE_ROOMS_ON_EXIT = false;
export const HIDE_NON_ADJACENT_ROOMS = false;
// Interaction constants
export const INTERACTION_CHECK_INTERVAL = 100; // Only check interactions every 100ms
export const INTERACTION_RANGE = 1 * TILE_SIZE; // Half of previous range (32px)
export const INTERACTION_RANGE_SQ = INTERACTION_RANGE * INTERACTION_RANGE;
export const ROOM_CHECK_THRESHOLD = 32; // Only check for room changes when player moves this many pixels
// Bluetooth constants
export const BLUETOOTH_SCAN_RANGE = TILE_SIZE * 2; // 2 tiles range for Bluetooth scanning
export const BLUETOOTH_SCAN_INTERVAL = 200; // Scan every 200ms for more responsive updates
// Game configuration (only available when Phaser is loaded)
export const GAME_CONFIG = typeof Phaser !== 'undefined' ? {
type: Phaser.AUTO,
width: 640, // Classic pixel art base resolution (scales cleanly: 1x=320, 2x=640, 3x=960, 4x=1280)
height: 480, // Classic pixel art base resolution (scales cleanly: 1x=240, 2x=480, 3x=720, 4x=960)
parent: 'game-container',
pixelArt: true,
scale: {
mode: Phaser.Scale.ENVELOP, // Fill entire container while maintaining aspect ratio
autoCenter: Phaser.Scale.CENTER_BOTH,
width: 640,
height: 480,
// Minimum size to ensure playability
min: {
width: 320,
height: 240
},
// Maximum size to prevent excessive scaling
max: {
width: 2560,
height: 1920
},
},
render: {
pixelArt: true,
antialias: false,
roundPixels: true
},
physics: {
default: 'arcade',
arcade: {
gravity: { y: 0 },
debug: true
}
}
} : null;