github binary-knight/usurper-reborn v0.17
Alpha v0.17 - NPC bug fixes and FOSSIL support

latest releases: v1.0.3, v1.0.2, v1.0.1...
6 months ago

Usurper Reborn v0.17.0-alpha - "FOSSIL Support"

Highlights

This release adds FOSSIL/serial port support for improved BBS compatibility, consolidates the news system, and fixes several NPC state tracking bugs.


New Features

FOSSIL/Serial Port Support

  • Added full FOSSIL driver support for BBS systems that use COM port communication

  • New command line options:

    • --fossil <port> - Force FOSSIL/serial mode on specified COM port (e.g., COM1)
    • --com <port> - Alias for --fossil
  • Example for EleBBS and similar systems:
    UsurperReborn --doorsys door.sys --fossil COM1

  • New files: SerialTerminal.cs, ITerminalIO.cs

  • Updated: BBSTerminalAdapter.cs, DoorMode.cs, DropFileParser.cs

Player Notification System

  • Important game events now show a prominent "IMPORTANT NEWS" popup when entering locations
  • Teammates leaving your team now trigger direct notifications instead of just news entries
  • Implemented via GameEngine.PendingNotifications queue

Consolidated News System

  • Simplified news from 5 separate categories (Daily, Royal, Marriage, Birth, Holy) to one unified feed
  • News board now shows all events in chronological order with color-coding by type
  • Removed complex menu system - just view all news in one screen
  • Much cleaner codebase (~330 lines vs ~575 lines)

Quick Commands Improvements

  • Typing / alone now shows the help screen (same as /help)
  • Unknown commands now pause with "Press any key" so errors are readable
  • Removed /t (turns) and /m (map) commands as they weren't useful
  • /g (gold) and /hp (health) commands now pause for readability

Bug Fixes

NPC State Tracking (Critical)

  • Dead NPCs wandering town: GetNPCByName() now filters out dead NPCs by default
  • Can't resurrect partner: ResurrectAlly() now properly checks IsDead flag instead of just IsAlive (HP > 0)
  • Teammates vanishing silently: Player now receives direct notifications when team members leave

Navigation

  • Team Area access: Removed [Z] Team Area from Main Street menu - now only accessible through the Inn

Null Safety

  • Fixed 18+ nullable reference warnings across combat, quest, NPC brain, and monster generation systems

Technical Changes

  • Added System.IO.Ports NuGet package for serial communication
  • Added ComPort field to BBSSessionInfo for FOSSIL support
  • BBSTerminalAdapter now supports both SocketTerminal and SerialTerminal
  • New UIHelper class for standardized box drawing utilities
  • Session summary statistics on logout

Files Changed

  • New Files: SerialTerminal.cs, ITerminalIO.cs, UIHelper.cs, HintSystem.cs
  • Major Changes: NewsSystem.cs, NewsLocation.cs, BaseLocation.cs, DoorMode.cs, BBSTerminalAdapter.cs
  • Bug Fixes: NPCSpawnSystem.cs, HomeLocation.cs, WorldSimulator.cs, NPCMaintenanceEngine.cs

BBS Sysop Notes

For FOSSIL-based BBS systems (EleBBS, etc.):
UsurperReborn --doorsys %f --fossil COM1

For Synchronet (Standard I/O mode):
UsurperReborn --door32 %f --stdio

For Synchronet (Socket I/O mode):
UsurperReborn --door %f

The --fossil flag forces serial mode on the specified COM port, which should match your FOSSIL driver's virtual port.

Don't miss a new usurper-reborn release

NewReleases is sending notifications on new releases.