Faction and Town were never converted from RunUO's bare static Parse(string) to IParsable/ISpanParsable, so they had only a 1-arg Parse(string) that returned null on no-match. That made them unreachable through Server.Types' IParsable path (they fell to Convert.ChangeType and failed) and, worse, would have let [set assign null silently on a bad name. Both now implement ISpanParsable<T> (string + span Parse/TryParse, throw-on- failure contract), matching Race/Poison. No external callers depended on the old null-returning Parse. Also documents the convention in dev-docs/runuo-migration-docs/01-foundation-changes.md (new section 15 + checklist item): ModernUO expects any RunUO static Parse(string) to be converted to IParsable<T>/ISpanParsable<T>. Server.Types still binds a legacy Parse(string) by reflection as a safety net. Full suite 535/535. |
||
|---|---|---|
| .. | ||
| 00-overview.md | ||
| 01-foundation-changes.md | ||
| 02-serialization.md | ||
| 03-timers.md | ||
| 04-gumps.md | ||
| 05-packets-networking.md | ||
| 06-property-lists.md | ||
| 07-commands-events.md | ||
| 08-persistence.md | ||
| 09-items-mobiles-creatures.md | ||
| 10-systems-engines.md | ||
| 11-api-reference.md | ||