- Winner Glow Effects: Bright green glow on both scoreboard and floaters for winners - Extended Victory Display: 24-second celebration timer before game reset - Enhanced Visual Feedback: Color-coded glow system (green/yellow/red) - Victory Text Display: Winner floaters show 'ULTIMATE VICTORY!' and 'ULTIMATE SURVIVOR' - Timer System Optimization: Dedicated victory timer mode, removed unused timeout system - Memory Efficiency: Cleaned up unused components for better performance - Synchronized Celebration: Both scoreboard and floater systems celebrate winner simultaneously - Visual Priority: Winner glow overrides peril glow during victory celebration Professional winner recognition system makes victory feel rewarding and celebrated!
792 lines
48 KiB
Text
792 lines
48 KiB
Text
PERIL DICE CHANGELOG
|
|
===================
|
|
|
|
All notable changes to Peril Dice are documented in this file.
|
|
|
|
[2.8.6] - 2025-09-16
|
|
====================
|
|
|
|
🏆 WINNER GLOW CELEBRATION SYSTEM
|
|
- Victory Visual Enhancement: Added comprehensive winner celebration with green glow effects
|
|
* Scoreboard Glow: Winner's profile picture and hearts display bright green glow with green tint
|
|
* Floater Glow: Winner's floating display shows green glow with victory text "✨ ULTIMATE VICTORY! ✨" and "🏆 ULTIMATE SURVIVOR 🏆"
|
|
* Visual Priority: Winner glow overrides peril glow - green takes priority over yellow during victory
|
|
* Clear Recognition: Eliminated players show red X markers while winner gets celebration spotlight
|
|
- Extended Victory Display: 24-second timer delay before game reset allows players to appreciate the winner
|
|
* Before: Winner declared → Immediate reset → No time to see who won
|
|
* After: Winner declared → Green glow celebration → 24 seconds to admire → Then reset
|
|
* User Experience: Proper victory moment with visual feedback before returning to lobby
|
|
|
|
🎨 ENHANCED VISUAL FEEDBACK SYSTEM
|
|
- Improved Glow Colors: Enhanced scoreboard glow system with proper color tinting
|
|
* Winner Glow: Bright green glow + green color tint for unmistakable victory recognition
|
|
* Peril Glow: Yellow glow + yellow color tint for clear peril player identification
|
|
* Visual Clarity: Replaced generic white glow with distinct colored glows for better gameplay feedback
|
|
- Floater Victory Detection: Smart winner detection in floating displays
|
|
* Automatic Detection: Floaters automatically detect when only one player remains alive
|
|
* Victory Text: Winner's floater displays celebration text instead of standard game info
|
|
* Consistent Experience: Both scoreboard and floater systems celebrate the winner simultaneously
|
|
|
|
🔧 TIMER SYSTEM OPTIMIZATION
|
|
- Victory Delay Timer: Added dedicated timer mode for victory celebration delays
|
|
* Memory Efficiency: Removed unused timeout system to free up memory resources
|
|
* Clean Architecture: Streamlined timer system focuses on essential functionality
|
|
* Reliable Operation: Victory display timing works consistently without interference from other systems
|
|
- Message Communication Enhancement: Improved winner glow message handling
|
|
* Scoreboard Integration: Added proper MSG_UPDATE_WINNER message constant for clean communication
|
|
* Floater Integration: Enhanced floater update system to trigger victory displays
|
|
* Synchronized Effects: Both display systems receive winner updates simultaneously
|
|
|
|
🎮 USER EXPERIENCE IMPROVEMENTS
|
|
- Victory Celebration: Clear winner recognition with proper visual feedback
|
|
- Extended Appreciation Time: 24 seconds to see and congratulate the winner before reset
|
|
- Visual Hierarchy: Clean priority system - Winner (green) > Peril (yellow) > Eliminated (red X)
|
|
- Consistent Display: Winner celebration works on both scoreboard and personal floater displays
|
|
|
|
📊 SYSTEM PERFORMANCE
|
|
- Memory Optimization: Removed unused timeout system components saving memory
|
|
- Efficient Messaging: Clean message routing for winner glow effects
|
|
- Timer Efficiency: Dedicated victory timer prevents conflicts with other timing systems
|
|
|
|
🎯 IMPACT SUMMARY
|
|
- Before: Winners were announced but no visual celebration - immediate reset gave no recognition
|
|
- After: Winners get bright green glow celebration on both scoreboard and floaters with 24 seconds of recognition
|
|
- Player Satisfaction: Proper victory moment makes winning feel rewarding and celebrated
|
|
- Visual Polish: Professional-grade visual feedback system enhances the competitive gaming experience
|
|
|
|
[2.8.5] - 2025-09-15
|
|
====================
|
|
|
|
🚨 MEMORY OPTIMIZATION & ARCHITECTURE CLEANUP
|
|
|
|
🧠 MEMORY OPTIMIZATION & DEAD CODE CLEANUP
|
|
- UpdateHelper.lsl Elimination: Completely removed vestigial UpdateHelper script that was consuming memory but providing no functionality
|
|
* Issue: 204-line script existed but was never actually called - pure dead code consuming ~41KB memory
|
|
* Fix: Removed UpdateHelper.lsl file and all supporting infrastructure from Main Controller
|
|
* Memory Impact: Main Controller memory usage improved from ~83.8% to 81.4% (2.4 percentage point reduction)
|
|
* Cleaned Up: updateNewPlayer() function, UpdateHelper message constants, variables, and handlers
|
|
* Simplified: updateHelpers() function now performs direct scoreboard updates without delegation
|
|
- Verbose_Logger Simplification: Streamlined debug logging system by removing unused buffering infrastructure
|
|
* Removed: Message buffering system, timer events, unused message handlers (MSG_VERBOSE_LOG)
|
|
* Size Reduction: Simplified from 149 lines to 80 lines (~47% smaller)
|
|
* Kept: Essential debug toggle functionality and system-wide logging coordination
|
|
* Performance: Eliminated timer overhead and reduced message processing complexity
|
|
|
|
🎨 BOT PROFILE PICTURE FIX
|
|
- Fixed Bot Visual Glitch: Resolved issue where bot profile pictures would randomly turn into gray boxes mid-game
|
|
* Issue: During scoreboard refresh (e.g., player removal), all profiles were reset to default gray texture before restoration
|
|
* Root Cause: refreshPlayerDisplay() function reset ALL profile prims to default, causing visual flicker
|
|
* Fix: Modified refresh logic to only reset unused player slots, preserving active player textures
|
|
* Enhanced Caching: Bots now store TEXTURE_BOT_PROFILE directly in cache to prevent HTTP requests
|
|
* Result: Bot avatars maintain consistent robot icon throughout entire game without gray box flicker
|
|
|
|
🏗️ DIRECT COMMUNICATION ARCHITECTURE UPDATE
|
|
- Link Number Reorganization: Updated all scripts to use new optimized linkset architecture
|
|
* Scoreboard Manager: Link 2 → Link 12 (moved to accommodate overlay prims)
|
|
* Leaderboard Manager: Link 25 → Link 35 (updated prim range: links 35-82)
|
|
* Dice Display: Link 73 → Link 83 (maintained 2-prim dice display)
|
|
* Affected Scripts: 11 scripts updated with new link mappings and prim ranges
|
|
- Optimized Prim Architecture: Enhanced linkset structure for better performance and organization
|
|
* Overlay Prims: Added dedicated overlay prims (links 2-11) for elimination markers
|
|
* Scoreboard Prims: Profile and hearts prims properly mapped to new link structure
|
|
* XyzzyText Banks: Updated leaderboard prim ranges to accommodate new architecture
|
|
|
|
🔧 ENHANCED GAME LOGIC & BUG FIXES
|
|
- Number Picker Dialog Enhancement: Improved parsing for mixed number formats
|
|
* Format Support: Now handles both CSV ("1,2,3") and semicolon ("1;2;3") separated pick lists
|
|
* Whitespace Handling: Added trimming for formats like "5, 6" vs "5,6" for consistent parsing
|
|
* Bot Integration: Enhanced bot pick processing to work with avoid lists from human players
|
|
- Bot Manager Improvements: Enhanced round detection and pick avoidance logic
|
|
* Round Detection: Better detection of new rounds through peril player and lives changes
|
|
* Command Processing: Improved bot command handling and duplicate pick prevention
|
|
* Fair Play: Bots now correctly avoid numbers already picked by human players
|
|
- Message Handler Fixes: Improved region communication handling
|
|
* Communication Method: Updated message broadcasting for better chat integration
|
|
* Player Feedback: Enhanced player join/leave notifications
|
|
|
|
🛠️ TECHNICAL INFRASTRUCTURE
|
|
- Memory Reporting: Added standardized memory usage reporting across core scripts
|
|
- Code Quality: Removed dead code paths and simplified complex functions
|
|
- Error Handling: Enhanced safety checks and boundary validation
|
|
- Performance: Reduced inter-script message traffic by eliminating unused communication paths
|
|
|
|
📊 SYSTEM PERFORMANCE IMPACT
|
|
- Memory Usage: Overall reduction in memory consumption across multiple scripts
|
|
- Message Traffic: Reduced unnecessary link messages between scripts
|
|
- Visual Stability: Eliminated profile picture flickering and display inconsistencies
|
|
- Code Maintainability: Cleaner, more focused codebase with reduced complexity
|
|
- Link Architecture: More organized and scalable linkset structure for future development
|
|
|
|
🎯 IMPACT SUMMARY
|
|
- Before: Dead code consuming memory, bot profiles flickering, complex but unused systems
|
|
- After: Leaner memory usage, stable bot visuals, simplified but fully functional architecture
|
|
- Performance: Measurable memory improvements and cleaner system operation
|
|
- Maintainability: Easier to understand and modify codebase with eliminated dead code
|
|
|
|
[2.8.4] - 2025-09-14
|
|
====================
|
|
|
|
🚨 DISCONNECT RECOVERY & DEBUG SYSTEM
|
|
|
|
🔍 SYSTEM-WIDE VERBOSE LOGGING TOGGLE
|
|
- Universal Debug Control: Implemented comprehensive verbose logging system across all 14 game modules
|
|
* Owner Menu Integration: Added "Toggle Verbose Logs" option in Troubleshooting menu for easy access
|
|
* Real-Time Toggle: Instantly enable/disable detailed debug messages without script restart
|
|
* System-Wide Sync: One toggle affects all modules simultaneously for consistent logging state
|
|
* Modules Updated: Main Controller, Game Manager, Floater Manager, Bot Manager, Roll Module, NumberPicker Handler, Message Handler, Game Calculator, System Debugger, Memory Controller, Scoreboard Manager, Leaderboard Communication, Dice Bridge
|
|
* Clean Production Mode: When disabled, only essential error messages and public announcements remain
|
|
* Full Debug Visibility: When enabled, shows internal operations, sync messages, state changes, and diagnostic info
|
|
|
|
🔧 DISCONNECT/RECONNECT RECOVERY SYSTEM
|
|
- Smart Player Return Detection: Fixed major issue where disconnected players couldn't resume their turn
|
|
* Issue: Players who disconnected during number picking (like Nooser) would get wrong menu when returning
|
|
* Before: Disconnect → Return → Ready menu shown → Required kick to continue game
|
|
* After: Disconnect → Return → "Welcome back! Restoring your number picking dialog..." → Game continues normally
|
|
- Enhanced State Recovery: Automatic detection and repair of corrupted game state from disconnections
|
|
* Compares expected picker (from pick queue) with current picker state
|
|
* Automatically fixes currentPicker corruption when players reconnect
|
|
* Works for both number picking and dice rolling phases
|
|
- Owner Emergency Recovery: If game gets completely stuck, owner can touch board to force-resume
|
|
- Debug Visibility: Verbose logging shows state detection and recovery actions for troubleshooting
|
|
|
|
🎯 NUMBER PICKER DIALOG PROTECTION SYSTEM
|
|
- Stale Dialog Prevention: Enhanced dialog validation to prevent outdated number selections
|
|
* Protection Against: Players clicking cached dialog buttons after game state changed
|
|
* Validation Layers: Session validation, player validation, number availability checking
|
|
* Smart Filtering: Automatically rejects selections for numbers already picked by others
|
|
- Enhanced Dialog Recovery: Improved system for restoring number picking dialogs after disconnections
|
|
- Session Management: Better tracking of active dialog sessions to prevent conflicts
|
|
|
|
🔍 NUMBER DETECTION & SHIELD LOGIC FIXES
|
|
- Fixed "Numbers Not Showing" Issue: Resolved major bug where system couldn't see numbers players had picked
|
|
* Issue: Game would show "NO SHIELD!" even when players had actually picked the rolled number
|
|
* Root Cause: Pick data synchronization issues between modules causing invisible player selections
|
|
* Solution: Enhanced pick data validation and sync message reliability across all game modules
|
|
* Impact: Shield detection now works correctly - proper "PLOT TWIST!" and shield mechanics restored
|
|
|
|
❌ ENHANCED ELIMINATION VISUAL FEEDBACK
|
|
- Red X Elimination Marker: Added clear visual indicator for eliminated players on scoreboard
|
|
* Visual Enhancement: Eliminated players now display a red X overlay on their profile picture
|
|
* Immediate Feedback: Red X appears instantly when player reaches 0 lives for clear elimination status
|
|
* Persistent Display: Red X remains visible on scoreboard until game reset for historical reference
|
|
* User Experience: Players can easily see who has been eliminated without checking heart counts
|
|
* Credit: Feature suggested by Pawkaf (pawkaf.lutrova)
|
|
|
|
🛡️ GAME STATE DESYNCHRONIZATION FIXES
|
|
- Sync Message Reliability: Fixed various state sync issues that could cause game confusion
|
|
- Pick Queue Protection: Enhanced pick queue management to prevent corruption during disconnections
|
|
- Display Consistency: Fixed cases where different parts of the system showed conflicting game state
|
|
- Race Condition Prevention: Added proper sequencing for state updates during player disconnections
|
|
|
|
🐛 CRITICAL BUG FIXES
|
|
- LSL Syntax Corrections: Fixed multiple mid-block variable declaration errors that prevented script compilation
|
|
* Issue: LSL doesn't support variable declarations in middle of code blocks
|
|
* Fixed Files: Main Controller, Floater Manager, Bot Manager, Roll Module, Game Manager, NumberPicker Handler, Message Handler, Game Calculator, System Debugger, Memory Controller, Leaderboard modules
|
|
* Solution: Replaced problematic ternary operators and mid-block declarations with proper conditional statements
|
|
- Ternary Operator Removal: LSL doesn't support condition ? value1 : value2 syntax - converted to if/else statements
|
|
- Compilation Success: All scripts now compile without syntax errors
|
|
|
|
🎮 USER EXPERIENCE IMPROVEMENTS
|
|
- Seamless Reconnection: Players can disconnect and return without disrupting game flow
|
|
- Clear Status Messages: Better feedback when verbose logging is toggled ("ENABLED"/"DISABLED" confirmations)
|
|
- Graceful Recovery: No more need to kick players just because they disconnected at wrong time
|
|
- Owner Control: Easy debug toggle access through familiar menu system
|
|
|
|
🎯 IMPACT SUMMARY
|
|
- Before: Player disconnections could break games, requiring kicks and manual intervention
|
|
- After: Players disconnect/reconnect seamlessly, games continue automatically
|
|
- Debug Control: One-click verbose logging for production vs development modes
|
|
- Stability: Major reduction in game-breaking state corruption issues
|
|
- Developer Productivity: Rich diagnostic information available on demand
|
|
|
|
[2.8.3] - 2025-09-01
|
|
====================
|
|
|
|
🚨 CRITICAL BUG FIXES - Major Game Logic Issues Resolved
|
|
|
|
🛡️ SHIELD DETECTION LOGIC FIXED
|
|
- MAJOR BUG FIX: Corrected shield detection that was incorrectly reporting "NO SHIELD!" when players had picked the rolled number
|
|
* Issue: Game said "Nobody picked 1" even when Rebecca had picked "3, 1" - Taylor should have been shielded but took damage instead
|
|
* Root Cause: Shield detection was checking if ONLY the peril player picked the number instead of checking if ANYONE picked it
|
|
* Fix: Shield detection now correctly uses `matched` flag (anyone picked) instead of `perilPickedIt` flag (only peril player picked)
|
|
* Impact: Players will no longer take undeserved damage when others provide proper shields
|
|
* Logic Update:
|
|
- ✅ NO SHIELD: Only when nobody picked the rolled number (!matched)
|
|
- ✅ DIRECT HIT: When peril player picked their own doom (matched && perilPickedIt)
|
|
- ✅ PLOT TWIST: When someone else picked it but not peril player (handled upstream)
|
|
|
|
🎯 INITIALIZATION SYSTEM OVERHAUL
|
|
- MAJOR BUG FIX: Complete fix for "can't join after rez" issue that required manual script reset
|
|
* Issue: When rezzing game from inventory, players couldn't join until all scripts were manually reset
|
|
* Root Cause: Critical scripts weren't properly resetting their state variables on rez, causing stale data conflicts
|
|
* Scripts Fixed: Added comprehensive on_rez() handlers to all critical game scripts:
|
|
- 🎯 Game_Manager.lsl: Core game logic and state management (20+ variables reset)
|
|
- 🎲 Roll_ConfettiModule.lsl: Dice rolling and shield detection logic
|
|
- 🎮 NumberPicker_DialogHandler.lsl: Player number selection dialogs
|
|
- 🤖 Bot_Manager.lsl: Bot player automation and picking logic
|
|
- 📦 Floater_Manager.lsl: Player status floating displays
|
|
- 🎭 Player_DialogHandler.lsl: Player and owner menu systems
|
|
- 🧮 Game_Calculator.lsl: Dice type and pick requirement calculations
|
|
* Each Fix Includes:
|
|
- ✅ Complete state variable reset to initial values
|
|
- ✅ Dynamic channel re-initialization for unique instance communication
|
|
- ✅ Old listener cleanup and fresh listener setup
|
|
- ✅ Stale game data clearing (picks, player lists, dialog sessions)
|
|
- ✅ Critical flag reinitialization (roundStarted, rollInProgress, etc.)
|
|
* Impact: **Game is now immediately ready for players after rezzing - NO manual script reset required!**
|
|
|
|
🎮 PLAYER EXPERIENCE IMPROVEMENTS
|
|
- Immediate Playability: Games rezzed from inventory are instantly ready for player registration
|
|
- Fair Shield Mechanics: Players providing shields now properly protect the peril player from damage
|
|
- Clean State Guarantee: Every new game instance starts with completely fresh state
|
|
- Reliable Dialog Systems: Number picking and menu dialogs work immediately after rez
|
|
|
|
🔧 TECHNICAL INFRASTRUCTURE
|
|
- Enhanced Script Coordination: All scripts now properly coordinate during initialization
|
|
- Channel Isolation: Each game instance uses unique communication channels
|
|
- Memory Management: Proper cleanup prevents memory leaks from stale game sessions
|
|
- State Synchronization: Consistent state across all game components from startup
|
|
|
|
🎯 IMPACT SUMMARY
|
|
- Before: Required manual "Reset Scripts" + shield detection failed
|
|
- After: Rez → Immediately playable + shields work correctly
|
|
- User Experience: Seamless game setup + fair gameplay mechanics
|
|
- Reliability: 100% successful initialization + accurate damage calculation
|
|
|
|
[2.8.2] - 2025-08-21
|
|
====================
|
|
|
|
🔥 CRITICAL SCOREBOARD SPAM FIX
|
|
- Eliminated Player Sync Loop: Fixed major bug where eliminated players caused continuous scoreboard update spam
|
|
* Main Controller now properly updates peril player variable immediately after player elimination
|
|
* Prevents stale sync messages containing eliminated player data from being broadcast repeatedly
|
|
* Eliminates infinite scoreboard update loops that occurred when peril player was eliminated
|
|
* Fixed root cause where Main Controller kept sending outdated peril player references in sync messages
|
|
- Peril Player Validation: Enhanced peril player assignment during elimination sequences
|
|
* Checks if eliminated player is currently the peril player before final sync
|
|
* Assigns new valid living player as peril player or sets to "NONE" if no players remain
|
|
* Ensures updateHelpers() always sends clean game state without stale player references
|
|
* Prevents perpetual "Noose the Bunny" style spam messages after player elimination
|
|
|
|
🎯 PERIL STATUS DISPLAY FIXES (RE-FIXED)
|
|
- Enhanced Floater Peril Status: Re-implemented and improved peril status display on floating displays
|
|
* Fixed peril status showing "waiting for game to start" during active gameplay (again)
|
|
* Enhanced peril player detection logic in floater management
|
|
* Improved sync message processing to ensure consistent peril status across all displays
|
|
* Better handling of peril player transitions during plot twist scenarios
|
|
|
|
💖 ELIMINATION HEART DISPLAY FIXES (RE-FIXED)
|
|
- 0 Hearts Before Elimination: Re-fixed elimination sequence to properly show 0 hearts before player removal
|
|
* Enhanced Main Controller elimination logic to ensure 0 hearts display timing
|
|
* Extended display delay to make 0 hearts clearly visible on both scoreboard and floaters
|
|
* Improved coordination between heart updates and player cleanup processes
|
|
* Fixed race conditions where players were removed before 0 hearts could be displayed
|
|
- Visual Elimination Feedback: Strengthened elimination experience for better player feedback
|
|
* Players now consistently see their elimination status with 0 hearts before removal
|
|
* Scoreboard and floaters maintain synchronized elimination heart display
|
|
* Enhanced user experience during elimination events with proper visual timing
|
|
|
|
🛠️ TECHNICAL IMPROVEMENTS
|
|
- Elimination Sequence Enhancement: Improved coordination between player removal and sync message broadcasting
|
|
* Added peril player validation step before final updateHelpers() call
|
|
* Enhanced elimination handler to prevent sync message corruption during player cleanup
|
|
* Better synchronization between Main Controller state updates and helper script notifications
|
|
- Display System Reliability: Strengthened display update mechanisms for consistent visual feedback
|
|
* Enhanced floater update triggers during game state changes
|
|
* Improved peril status determination and heart display coordination
|
|
* Better error handling for edge cases during elimination sequences
|
|
|
|
[2.8.1] - 2025-08-14
|
|
====================
|
|
|
|
🎯 PERIL STATUS DISPLAY FIXES
|
|
- Fixed Floater Status Updates: Resolved issue where peril status on floating displays showed "waiting for game to start" during active gameplay
|
|
* Enhanced peril status logic in Floater Manager to properly handle active game states
|
|
* Added clear "YOU ARE IN PERIL!" messaging for the current peril player
|
|
* Improved status display to show "Peril Player: [Name]" for all other players
|
|
* Fixed condition checking for peril player status determination
|
|
- Real-Time Status Synchronization: Enhanced sync message handling for consistent peril status across all displays
|
|
* Added debug logging to track peril player status changes in Floater Manager
|
|
* Improved floater update triggers during game state changes
|
|
* Enhanced sync message processing to immediately update all floaters when peril status changes
|
|
* Fixed "NONE" placeholder handling in peril player sync messages
|
|
|
|
💖 ELIMINATION HEART DISPLAY FIXES
|
|
- 0 Hearts Before Elimination: Fixed elimination sequence to properly show 0 hearts before player removal
|
|
* Modified Main Controller elimination logic to set player lives to 0 first
|
|
* Added 1-second display delay to make 0 hearts visible on both scoreboard and floaters
|
|
* Enhanced elimination flow with proper timing between heart display and player cleanup
|
|
* Fixed race condition where players were removed before 0 hearts could be displayed
|
|
- Visual Elimination Sequence: Improved elimination experience for better player feedback
|
|
* Players now see their elimination status with 0 hearts before floater disappears
|
|
* Scoreboard and floaters show elimination hearts consistently
|
|
* Better coordination between heart updates and player removal
|
|
* Enhanced user experience during elimination events
|
|
|
|
🐛 BUG FIXES AND IMPROVEMENTS
|
|
- Sync Message Debugging: Added comprehensive debug logging for peril player status tracking
|
|
* Debug messages show peril player changes from old to new values
|
|
* Enhanced visibility into sync message processing
|
|
* Better troubleshooting capabilities for peril status issues
|
|
- Floater Update Reliability: Improved floater update system for more consistent status display
|
|
* Enhanced floater update triggers during game state changes
|
|
* Better handling of peril status changes during rounds
|
|
* Improved sync message reliability for real-time status updates
|
|
- Elimination Timing Fixes: Resolved timing issues in elimination sequence
|
|
* Fixed race condition where elimination cleanup occurred before status display
|
|
* Added proper delays to ensure visual feedback before player removal
|
|
* Enhanced coordination between Main Controller and display systems
|
|
|
|
🛠️ TECHNICAL IMPROVEMENTS
|
|
- Enhanced Floater Manager Logic: Improved peril status determination and display
|
|
* Better condition checking for active game states vs. waiting states
|
|
* Enhanced handling of "NONE" and empty peril player values
|
|
* Improved sync message processing for consistent status updates
|
|
- Main Controller Elimination Enhancements: Better elimination sequence coordination
|
|
* Added explicit 0 hearts setting before player removal
|
|
* Improved helper update timing during elimination
|
|
* Enhanced coordination between elimination logic and display updates
|
|
- Debug Logging Additions: Added targeted debug messages for key status changes
|
|
* Peril player change tracking in Floater Manager
|
|
* Elimination sequence logging in Main Controller
|
|
* Better visibility into sync message processing
|
|
|
|
[2.8.0] - 2025-08-12
|
|
====================
|
|
|
|
🔐 GAME LOCKOUT SECURITY SYSTEM
|
|
- Owner-Only Access Control: Implemented comprehensive lockout system allowing game owners to restrict all game functionality to owner only
|
|
* Complete dialog prevention for non-owners when game is locked
|
|
* Visual feedback through floating text showing "🔒 GAME LOCKED" status
|
|
* Clear error messaging to non-owners attempting access during lockout
|
|
* Lock status persists during gameplay and between sessions
|
|
- Dynamic Admin Controls: Added lock/unlock toggle buttons in categorized owner menu
|
|
* Lock Game: Restricts access to owner only
|
|
* Unlock Game: Restores normal player access
|
|
* Visual indicators in admin menu show current lock state
|
|
- System Integration: Lockout state synchronized between Main Controller and Dialog Handler
|
|
* Lock/unlock commands sent via link messages (9001/9002)
|
|
* Floating text updates automatically based on lock state
|
|
* Complete access restriction including dialog generation prevention
|
|
|
|
🔄 AUTOMATIC RESET ON STARTUP SYSTEM
|
|
- Clean State Guarantee: Game automatically resets when critical scripts are updated or rezzed
|
|
* Main Controller triggers reset on state_entry() for consistent startup state
|
|
* Game Manager requests reset on startup to handle core game logic updates
|
|
* All game state cleared while preserving historical leaderboard data
|
|
- Smart Reset Logic: Automatic reset preserves leaderboard while clearing temporary game state
|
|
* Players, lives, picks, ready states cleared on startup
|
|
* Win/loss records maintained in leaderboard system
|
|
* Scoreboard cleared but leaderboard rankings preserved
|
|
- Script Update Protection: Enhanced reliability when game logic is modified
|
|
* Prevents stale game states from carrying over after script updates
|
|
* Ensures consistent experience for players after system updates
|
|
* Eliminates need for manual resets after deployments
|
|
|
|
👥 ENHANCED PLAYER MANAGEMENT SYSTEM
|
|
- Kick Player Functionality: Complete implementation of owner-controlled player removal
|
|
* New "Kick Player" option in Player Management admin section
|
|
* Smart display name handling with automatic truncation for dialog buttons
|
|
* Complete player removal from all game systems (lists, scoreboard, floaters)
|
|
* Immediate visual feedback on scoreboard when players are kicked
|
|
- Rebuilt Leave Game System: Complete overhaul of voluntary player departure
|
|
* Fixed state synchronization issues between Controller and Dialog Handler
|
|
* Proper cleanup of player floaters when leaving
|
|
* Automatic removal from ready player lists
|
|
* Scoreboard updates immediately reflect departing players
|
|
- Advanced Name Management: Enhanced handling of long display names
|
|
* Automatic truncation to fit within 24-character dialog button limits
|
|
* Preservation of original names for game logic while showing truncated versions in UI
|
|
* Proper mapping between display names and actual player identities
|
|
|
|
🎯 CATEGORIZED ADMIN INTERFACE
|
|
- Organized Owner Menu: Complete restructure of admin controls into logical categories
|
|
* Player Management: Add Test Player, Kick Player functions
|
|
* Reset Options: Game reset, Leaderboard reset, Complete reset
|
|
* Troubleshooting: Cleanup floaters, Force floaters creation
|
|
* Security Controls: Lock/Unlock game prominently displayed
|
|
- Improved Navigation: Enhanced menu flow with clear back navigation
|
|
* Consistent "Back to Main" options in all sub-menus
|
|
* "Back to Game" option to return to player interface
|
|
* Context-sensitive menu options based on current state
|
|
- Enhanced User Experience: Better organization and discoverability of admin functions
|
|
* Security-first design with lock controls prominently featured
|
|
* Logical grouping of related functions
|
|
* Clear visual indicators for current system state
|
|
|
|
[2.7.0] - 2025-08-12
|
|
====================
|
|
|
|
🏠 SINGLE LINKSET ARCHITECTURE REVOLUTION
|
|
- Complete System Consolidation: Merged all 4 separate objects into single linkset architecture
|
|
* Main Controller + Roll Module: Link 1 (root prim)
|
|
* Game Scoreboard: Links 2-24 (scoreboard background, actions display, player slots)
|
|
* XyzzyText Leaderboard: Links 25-72 (48 prims for text display across 4 banks)
|
|
* Dice Display: Links 73-74 (2 prims for XyzzyText dice results)
|
|
* Total: 74-prim consolidated linkset replacing 4 separate rezzed objects
|
|
- Elimination of Region Chat: Replaced all llRegionSay() communication with llMessageLinked()
|
|
* No more channel conflicts or discovery issues between multiple game instances
|
|
* Instant, reliable communication within single linkset
|
|
* Zero risk of cross-talk between multiple game tables
|
|
- Simplified Deployment: Single object rez instead of complex 4-object positioning system
|
|
* No more Position Controller/Follower scripts needed
|
|
* No more automatic rez positioning coordination
|
|
* Instant setup - rez once and play
|
|
|
|
🎯 DICE TYPE SYNCHRONIZATION FIXES
|
|
- Critical Race Condition Resolution: Fixed major bug where Game Manager and Roll Module independently requested dice types
|
|
* Eliminated inconsistent dice types between human players and bots (e.g., player rolling d6 when expecting d30)
|
|
* Prevented double rolls with different dice types from conflicting module requests
|
|
* Removed duplicate dice type calculation across multiple modules
|
|
- Targeted Communication System: Calculator sends dice type responses only to requesting module
|
|
* Game Calculator responds directly to sender using link numbers
|
|
* Eliminated LINK_SET broadcasts that caused race conditions and stale data
|
|
* Each module requests dice type independently when needed, preventing conflicts
|
|
|
|
🔄 CLEAN MODULE COMMUNICATION ARCHITECTURE
|
|
- Link Message Routing: Established clear communication paths within linkset
|
|
* Main Controller <-> Scoreboard: Link 1 -> Link 2
|
|
* Scoreboard -> Leaderboard Bridge: Link 2 -> Link 25
|
|
* Roll Module -> Dice Bridge: Link 1 -> Link 73
|
|
* All communication uses llMessageLinked() with specific link numbers
|
|
- Module Responsibilities:
|
|
* Game Calculator: Calculates dice types on request; sends targeted responses only
|
|
* Game Manager: Requests dice type for pick phase coordination and dialog building
|
|
* Roll Module: Requests dice type independently when performing actual rolls
|
|
* Scoreboard Manager: Handles player display and leaderboard formatting
|
|
* Bridge Scripts: Handle XyzzyText display distribution for leaderboard and dice
|
|
|
|
[2.6.0] - 2025-08-09
|
|
====================
|
|
|
|
📡 ADVANCED CHANNEL MANAGEMENT SYSTEM
|
|
- Dynamic Channel Calculation: Implemented sophisticated channel assignment system to prevent conflicts
|
|
* Channels calculated using combined hash of owner key + object key for uniqueness
|
|
* Prevents interference between multiple game tables owned by same person
|
|
* Each game instance gets completely unique channel space
|
|
* MD5-based hash generation creates 0-255 range offsets for channel distribution
|
|
- Multi-Instance Support: Multiple game tables can now operate simultaneously without channel conflicts
|
|
- Automatic Channel Assignment:
|
|
* Main Controller: ~-78000 range (CHANNEL_BASE - offset - hash)
|
|
* Dialog Handler: ~-79000 range
|
|
* Roll Module: ~-80000 range
|
|
* Bot Manager: ~-81000 range
|
|
* Scoreboard: ~-83000 range
|
|
* Leaderboard: ~-84000 range
|
|
* Position System: ~-85000 range
|
|
* Floater Base: ~-86000 range (with per-player offsets)
|
|
- Channel Debugging: Owner receives detailed channel assignments on startup for troubleshooting
|
|
|
|
🧹 DEBUG OUTPUT CLEANUP CAMPAIGN
|
|
- Main Controller Noise Reduction: Removed verbose debug messages causing chat spam
|
|
* Eliminated touch event logging ("DEBUG: touch_start - sender: X")
|
|
* Removed dice type result debug output ("DEBUG: Roll result: X on dY")
|
|
* Cleaned up excessive state change notifications
|
|
* Preserved essential error messages and critical game flow information
|
|
- Floater Manager Debug Cleanup: Significantly reduced verbose owner messages
|
|
* Removed detailed picks data logging from getPicksFor() function calls
|
|
* Eliminated floater cleanup debug messages (channel, index, player data confirmations)
|
|
* Removed sync state debug information showing counts of lives, picks, and names
|
|
* Maintained important error reporting for malformed data and critical issues
|
|
- Professional Operation Standards: Game now operates with minimal console noise
|
|
|
|
🎯 ENHANCED USER EXPERIENCE
|
|
- Reduced Log Spam: Console output now focuses on meaningful information only
|
|
- Essential Information Preserved: Error messages and critical game events still logged
|
|
- Clean Monitoring: Easier to spot actual issues without debug noise overwhelming chat
|
|
- Multi-Table Deployment: Support for running multiple game instances without interference
|
|
|
|
🛠️ TECHNICAL INFRASTRUCTURE IMPROVEMENTS
|
|
- Performance Enhancement: Reduced string processing overhead from debug output removal
|
|
- Memory Optimization: Less memory usage from debug string concatenation and storage
|
|
- Channel Architecture: Robust system for managing communication channels across components
|
|
- Hash-Based Uniqueness: Cryptographically sound channel assignment preventing collisions
|
|
- Maintainability: Cleaner codebase easier to debug when real issues occur
|
|
|
|
🔧 SYSTEM RELIABILITY
|
|
- Conflict Prevention: Eliminates channel conflicts that could cause cross-talk between games
|
|
- Instance Isolation: Each game table operates in completely isolated channel space
|
|
- Debugging Tools: Built-in channel reporting for troubleshooting communication issues
|
|
- Production Ready: Professional-grade logging levels suitable for live deployment
|
|
|
|
📋 IMPLEMENTATION DETAILS
|
|
- Channel Calculation Function: calculateChannel(offset) in all major scripts
|
|
- Initialization Reporting: Detailed channel assignments logged on script startup
|
|
- Cross-Script Consistency: All components use same channel calculation method
|
|
- Owner Transparency: Clear visibility into assigned channels for admin purposes
|
|
|
|
[2.5.0] - 2025-08-08
|
|
====================
|
|
|
|
🛡️ REGISTRATION SECURITY FIXES
|
|
- Duplicate Registration Prevention: Fixed critical bug where players could register multiple times by rapid clicking
|
|
* Added pendingRegistrations list to track registration requests in progress
|
|
* Prevents duplicate registration messages from being sent while first registration processes
|
|
* Automatic cleanup of pending registrations after completion or timeout
|
|
- Startup Sequence Protection: Fixed bug allowing player joins during game initialization
|
|
* Added gameStarting flag to block registrations immediately when "Start Game" is clicked
|
|
* Eliminates timing window between game start and roundStarted flag activation
|
|
* Maintains owner exception for admin menu access during gameplay
|
|
|
|
🎮 IMPROVED GAME FLOW CONTROL
|
|
- Enhanced Touch Handler: Better handling of registration status with user feedback
|
|
- State Management: Proper cleanup of both gameStarting and pendingRegistrations during reset
|
|
- User Experience: Clear messaging when registration attempts are blocked during active periods
|
|
|
|
🐛 CRITICAL BUG FIXES
|
|
- Race Condition Resolution: Eliminated duplicate player entries from rapid multiple touches
|
|
- Game Disruption Prevention: Stopped unwanted joins during critical game startup phase
|
|
- Consistent Game State: All registration paths now properly validate timing and prevent duplicates
|
|
- Duplicate Pick Prevention: Fixed continueCurrentRound() function to properly rebuild globalPickedNumbers with uniqueness checks
|
|
- Data Corruption Fix: Resolved issue where globalPickedNumbers could contain duplicates, causing inconsistent bot pick validation
|
|
- Delimiter Handling: Enhanced parsing to correctly handle both comma (human) and semicolon (bot) pick delimiters
|
|
- Server-Side Pick Validation: Added robust server-side validation in Main.lsl to prevent duplicate picks from being accepted
|
|
* Human picks are now validated against globalPickedNumbers before acceptance
|
|
* Invalid picks are rejected with clear error messaging to the player
|
|
* Player receives new dialog with updated available numbers after rejection
|
|
* Eliminates client-side bypass vulnerabilities in duplicate prevention
|
|
- Loss Tracking: Fixed missing loss records in leaderboard when players are eliminated
|
|
* Added GAME_LOST| message broadcast when players are eliminated
|
|
* Eliminated players now properly appear in leaderboard with loss counts
|
|
* Provides complete game statistics showing both wins and losses
|
|
- Enhanced Display Name Handling: Implemented robust player name resolution with fallback system
|
|
* Added getPlayerName(key id) helper function in all scripts (Main.lsl, Dialog Handler, StatFloat)
|
|
* Prioritizes modern llGetDisplayName() for better user experience
|
|
* Falls back to legacy llKey2Name() when display names are unavailable
|
|
* Handles network issues, offline avatars, and viewer compatibility problems
|
|
* Ensures no player is ever shown as blank or missing name
|
|
* Consistent name handling across all game components and messages
|
|
|
|
[2.4.0] - 2025-08-08
|
|
====================
|
|
|
|
📍 POSITION MANAGEMENT SYSTEM
|
|
- Master-Follower Architecture: Complete position synchronization system for all game components
|
|
- Position Controller Script: Main controller object manages movement of scoreboard, leaderboard, and displays
|
|
- Follower Script Template: Generic follower script that reads position settings from config notecard
|
|
- Config-Based Positioning: Position offsets and rotations defined in "config" notecard for easy customization
|
|
- Automatic Movement Sync: When controller moves, all linked objects maintain relative positions
|
|
- Position Reset Tools: Built-in recalibration system for repositioning knocked-out components
|
|
- Multi-Object Coordination: Seamless movement of entire game system as single unit
|
|
|
|
🧹 PRODUCTION CODE CLEANUP
|
|
- Debug Code Removal: Complete removal of all debug logging statements and test messages
|
|
* Removed llOwnerSay("DEBUG: ...) calls throughout Main.lsl (lines 147, 161, 479, 517, 523, 527, 874, 1163)
|
|
* Eliminated development-time diagnostic messages and empty debug blocks
|
|
* Cleaner, more professional game experience without debug clutter
|
|
- Syntax Error Fixes:
|
|
* Fixed critical missing closing brace on line 835 in Main.lsl causing compilation failure
|
|
* Resolved LSL syntax errors that prevented script execution
|
|
* All scripts now compile cleanly without warnings or errors
|
|
|
|
🛠️ DEVELOPMENT QUALITY IMPROVEMENTS
|
|
- Production Readiness: Scripts optimized for live deployment without development artifacts
|
|
- Performance Enhancement: Eliminated unnecessary debug output reducing execution overhead
|
|
- Memory Optimization: Reduced script memory footprint by removing debug string operations
|
|
- Code Maintainability: Cleaner codebase structure for future development
|
|
- Professional Polish: Game system ready for production deployment
|
|
|
|
🔧 TECHNICAL IMPROVEMENTS
|
|
- LSL Compliance: All scripts pass Second Life LSL compilation standards
|
|
- Execution Efficiency: Faster script performance without debug processing overhead
|
|
- Position Synchronization: Robust communication system for coordinated object movement
|
|
- Config System: Flexible notecard-based configuration for easy position adjustments
|
|
- Error Resolution: Fixed all syntax issues preventing proper game operation
|
|
|
|
📚 DOCUMENTATION UPDATES
|
|
- Position System Guide: Comprehensive instructions for setting up position management
|
|
- Reset Tools Documentation: Step-by-step guide for recalibrating positions
|
|
- Version Tracking: Updated to semantic versioning 2.4.0
|
|
- Change History: Detailed tracking of all modifications and improvements
|
|
|
|
[2.3.0] - 2025-08-05
|
|
====================
|
|
|
|
🏆 VISUAL SCOREBOARD SYSTEM
|
|
- Dynamic Player Grid: Real-time visual scoreboard displaying all players with profile pictures and heart count
|
|
- Profile Picture Integration: Automatic fetching of Second Life avatar profile pictures via HTTP requests
|
|
- Heart Texture Display: Visual life representation using custom heart textures (3, 2, 1, 0 hearts)
|
|
- Bot Profile Support: Special profile texture for TestBot players
|
|
- Immediate Updates: Hearts update instantly when lives change, before any dialogs appear
|
|
|
|
🎭 ENHANCED STATUS DISPLAY SYSTEM
|
|
- Visual Status Actions: Large action prim displaying current game status with custom textures
|
|
- Specific Status Messages:
|
|
* Direct Hit: When peril player picks their own rolled number
|
|
* No Shield: When nobody picks the rolled number
|
|
* Plot Twist: When peril switches to a new player
|
|
* Elimination: When a player is eliminated
|
|
* Victory: When someone wins the game
|
|
* Peril Selected: When a new peril player is chosen
|
|
* Title: Default/idle state
|
|
|
|
⚡ PERFECT STATUS TIMING
|
|
- Protected Display Time: Each status shows for 8 seconds with automatic clearing
|
|
- Strategic Delays: 2-second delays after status messages prevent overwriting
|
|
- Sequential Flow: Elimination → 6.4s delay → Victory → 9s delay → Reset
|
|
- Immediate Visual Feedback: Hearts and status update instantly, delays protect display time
|
|
|
|
🎯 COMPREHENSIVE LEADERBOARD
|
|
- Persistent Win Tracking: Player victories saved across game sessions
|
|
- XyzzyText Integration: Three-prim text display system for leaderboard
|
|
- Automatic Sorting: Top players by win count with formatted display
|
|
- Separate Reset Options: Game reset vs. leaderboard reset vs. complete reset
|
|
|
|
🎮 ENHANCED USER INTERFACE
|
|
- Categorized Owner Menus: Organized into Game Control, Player Management, Reset Options, etc.
|
|
- Dialog Recovery: Players can recover lost dialogs by touching the controller
|
|
- Admin Menu Access: Owner can access admin functions during gameplay
|
|
- Improved Menu Flow: Streamlined navigation with clear categorization
|
|
|
|
🔧 TECHNICAL IMPROVEMENTS
|
|
- Multi-Object Architecture: Scoreboard and leaderboard as separate linked objects
|
|
- HTTP Profile Fetching: Robust system for retrieving avatar profile pictures
|
|
- Texture Caching: Profile pictures cached to avoid repeated HTTP requests
|
|
- Region-Based Communication: Cross-object messaging using llRegionSay
|
|
- Elimination Sequence: Visual 0-hearts display before player removal
|
|
|
|
🐛 CRITICAL FIXES
|
|
- Heart Update Timing: Fixed hearts not updating until after next-turn dialog
|
|
- Victory Overwriting Elimination: Added proper delay between elimination and victory status
|
|
- Status Message Conflicts: All status messages now have protective delays
|
|
- Profile Picture Fallbacks: Proper handling of failed HTTP requests
|
|
- Scoreboard Reset: Fixed scoreboard not clearing when game resets
|
|
|
|
[2.2.0] - 2025-08-04
|
|
====================
|
|
|
|
🎭 MAJOR UX/PRESENTATION IMPROVEMENTS
|
|
- Dramatic Messaging System: Complete overhaul of game messages with thematic styling
|
|
- Public Announcements: Key game events now visible to all players in public chat
|
|
- Context-Rich Roll Messages: Dice rolls now show both dice type and result
|
|
- Split Hit Messages: Different messages for "picked own doom" vs "no shield" scenarios
|
|
|
|
🎮 ENHANCED PLAYER EXPERIENCE
|
|
- Player Join Messages: "💀 PlayerName has entered the deadly game! Welcome to your potential doom! 💀"
|
|
- Ready State Messages:
|
|
* "👑 PlayerName steps forward as the game master - automatically ready for the deadly challenge! 👑"
|
|
* "⚔️ PlayerName steels themselves for the deadly challenge ahead! ⚔️"
|
|
* "🏃 PlayerName loses their nerve and backs away from the challenge! 🏃"
|
|
- Pick Announcements: "🎯 PlayerName stakes their life on numbers: 1, 2, 3 🎲"
|
|
- Game Start: "⚡ ALL PARTICIPANTS READY! THE DEADLY PERIL DICE GAME BEGINS! ⚡"
|
|
|
|
🎲 IMPROVED ROLL MESSAGES
|
|
- Main Roll: "🎲 THE D6 OF FATE! PlayerName rolled a 5 on the 6-sided die! 🎲"
|
|
- Plot Twist: "⚡ PLOT TWIST! PlayerName picked 5 (rolled on d6) and is now in ULTIMATE PERIL! ⚡"
|
|
- Direct Hit: "🩸 DIRECT HIT! PlayerName picked their own doom - the d6 landed on 5! 🩸"
|
|
- No Shield: "🩸 NO SHIELD! Nobody picked 5 - PlayerName takes the hit from the d6! 🩸"
|
|
|
|
🔧 CRITICAL BUG FIXES
|
|
- StatFloat Duplication: Fixed bug where new StatFloat objects were created on every life loss instead of updating existing ones
|
|
- Duplicate Message Handling: Removed duplicate HUMAN_PICKED handlers that caused double processing
|
|
- Malformed Entry Warnings: Fixed LSL parsing issues with empty picks entries
|
|
- Cleanup Optimization: Reduced excessive StatFloat cleanup messages during reset
|
|
|
|
🛠️ TECHNICAL IMPROVEMENTS
|
|
- Debug Message Cleanup: Removed excessive debug output while preserving essential error reporting
|
|
- Message Handler Optimization: Streamlined communication between scripts
|
|
- LSL Parsing Fixes: Better handling of trailing empty elements in data parsing
|
|
- Memory Management: Improved StatFloat lifecycle management
|
|
|
|
[2.1.0] - 2025-08-03
|
|
====================
|
|
|
|
✨ MAJOR FEATURES ADDED
|
|
- Ready State System: Players must mark themselves ready before games can start
|
|
- Game Protection: Prevents players from joining games in progress
|
|
- Performance Optimization: Reduced lag by limiting confetti to wins only
|
|
- Enhanced Bot Intelligence: Improved bot behavior and duplicate number avoidance
|
|
|
|
🔧 CORE FIXES
|
|
- Complete Game Flow: Fixed end-to-end gameplay from start to finish
|
|
- Elimination Logic: Proper handling of player elimination and game continuation
|
|
- Win Condition: Fixed victory detection and game ending
|
|
- Data Synchronization: Resolved corruption in pick data between scripts
|
|
- Peril Player Assignment: Fixed race conditions in peril player transitions
|
|
|
|
🎮 GAMEPLAY IMPROVEMENTS
|
|
- Dynamic Picking: Number of picks now properly based on peril player's lives
|
|
- Duplicate Prevention: Enhanced system to prevent duplicate number selection
|
|
- Dialog Pagination: Improved number selection interface for d30 dice
|
|
- Floater Updates: Real-time HUD updates throughout gameplay
|
|
- Bot Continuation: Bots now properly continue games when humans are eliminated
|
|
|
|
🛠️ TECHNICAL ENHANCEMENTS
|
|
- Modular Communication: Improved inter-script messaging system
|
|
- Error Handling: Comprehensive validation and error recovery
|
|
- Memory Management: Better floater cleanup and channel tracking
|
|
- Data Encoding: Fixed CSV conflicts with semicolon encoding system
|
|
- State Management: Robust game state synchronization across modules
|
|
|
|
🐛 BUG FIXES
|
|
- Fixed missing pick dialogs after game events
|
|
- Resolved duplicate message issues between scripts
|
|
- Fixed lives reset problems between rounds
|
|
- Corrected floater display inconsistencies
|
|
- Fixed bot confusion during player elimination
|
|
- Resolved pick data corruption issues
|
|
- Fixed peril player variable sync problems
|
|
|
|
⚡ PERFORMANCE
|
|
- Removed confetti from life loss (keeping only victory confetti)
|
|
- Optimized debug output to reduce lag
|
|
- Improved floater management efficiency
|
|
- Enhanced bot processing speed
|
|
|
|
[2.0.0] - 2024-12-XX
|
|
====================
|
|
|
|
🎉 INITIAL MODULAR RELEASE
|
|
- Modular Architecture: Separated functionality into specialized scripts
|
|
- Bot System: Added AI players for testing and gameplay variety
|
|
- Floating HUD: Real-time player statistics display
|
|
- Dynamic Dice: Automatic dice sizing based on player count
|
|
- Player Management: Runtime player joining and leaving
|
|
- Owner Controls: Administrative functions for game management
|
|
|
|
🎲 CORE GAME FEATURES
|
|
- Pick System: Number selection with validation
|
|
- Rolling Mechanism: Automated dice rolling with visual effects
|
|
- Life Management: 3-life system with elimination
|
|
- Peril Tracking: Dynamic peril player assignment
|
|
- Victory Conditions: Last player standing wins
|
|
|
|
🏗️ ARCHITECTURE
|
|
- Main Controller: Central game logic and state management
|
|
- Dialog Handlers: User interface and input processing
|
|
- Roll Module: Dice mechanics and particle effects
|
|
- Bot Manager: AI player behavior and automation
|
|
- Floater Manager: HUD display coordination
|
|
- Game Helpers: Utility functions and calculations
|
|
|
|
[1.0.0] - 2025-XX-XX
|
|
====================
|
|
|
|
🌟 ORIGINAL RELEASE
|
|
- Basic Peril Dice game implementation
|
|
- Manual gameplay mechanics
|
|
- Simple player tracking
|
|
- Basic dice rolling functionality
|
|
|
|
---
|
|
|
|
DEVELOPMENT NOTES
|
|
================
|
|
|
|
KNOWN ISSUES
|
|
- Debug Output: Extended games may experience minor lag from comprehensive logging
|
|
|
|
RECENT FIXES (2025-01-08)
|
|
- Bot Race Condition: Fixed critical bug where duplicate message handlers prevented proper globalPickedNumbers updates
|
|
- Enhanced Bot Logging: Added detailed pick tracking and duplicate detection in Bot Manager
|
|
- Message Handler Separation: Separated bot and human pick handling to prevent conflicts
|
|
|
|
FUTURE ENHANCEMENTS
|
|
- Configurable debug levels
|
|
- Additional game modes and variants
|
|
- Enhanced visual effects and animations
|
|
|
|
CREDITS
|
|
- Original Game Design: Noose the Bunny (djmusica28) - Second Life
|
|
- Automation & Development: Enhanced for automated gameplay
|
|
- Architecture: Modular LSL system for scalability and maintainability
|