ModernUO/Projects/UOContent/Misc
Kamron Batman 26f784f45d
fix: Overhauls murder system (#1419)
## MAJOR CHANGE (API BREAKING)

Added a player murder system to facilitate reporting murders. This should make it easier to extend to create a bounty system or  other related game content. Player murders will be saved in a folder called _PlayerMurders_.

### Motivation

The motivation was two-fold, performance, and bug fixes.

First, murders are one of two systems that do a pre-world-save check on _every mobile in the game_ to decay kills and set their expiring murders. This is taxing since it freezes the world and makes world saves take longer. Every mobile has ShortTermMurders even though it is a player concept. And next, 90%+ of players are not murderers but had an ever increasing MurderElapse time that was being tracked against GameTime. These properties were also serialized unnecessarily for all mobs.

Second, when I tried to optimize/refactor the code, it was obvious that the system has bugs.

### Major API Changes
- [X] Created a player murder system and moved `ShortTermMurders`, `ShortTermElapse`, and `LongTermElapse` to the system.
- [X] Added convenience property `PlayerMobile.ShortTermMurders`.
- [X] Added convenience properties `PlayerMobile.ShortTermMurderExpiration` and `PlayerMobile.LongTermMurderExpiration`
- [X] Moved ReportMurdererGump.cs
- [X] Adds an `EventSink.PlayerDeleted` event.

### Notes
The system currently does not support NPCs. To support expiring murders on NPCs I highly recommend a different architecture for large servers (500k+ mobs including players). Specifically switching from looping through all MurderContext to a time-order link list.
2023-07-15 22:42:49 -07:00
..
Gifts/Winter2004 fix: Optimizes OPL using string interpolation (#1041) 2022-06-02 10:09:53 -07:00
AccountPrompt.cs fix: Fixes structured logging (#1043) 2022-06-05 01:00:22 -07:00
Animations.cs Removes literal variables (#257) 2020-09-18 18:41:26 -07:00
AOS.cs feat: Adds ability groups, DOT abilities, and combat abilities (#1264) 2022-11-23 12:33:27 -08:00
AttackMessage.cs fix: Fixes crafter deserialize, cleans up bandages, and codegens misc items (#1350) 2023-02-25 00:54:12 -08:00
AutoRestart.cs feat: Adds auto archiving (#794) 2021-09-25 17:22:05 -07:00
Broadcasts.cs Fixes exiting/crash handling/ctrl+c (#237) 2020-09-12 00:05:38 -07:00
BuffIcons.cs fix: Fixes divine fury (#1290) 2022-12-04 12:39:30 -08:00
CharacterCreation.cs fix: Fixes random skill chosen based on expansion (#1139) 2022-08-17 08:52:18 -07:00
Cleanup.cs fix: Fixes structured logging (#1043) 2022-06-05 01:00:22 -07:00
ClientVerification.cs fix: Fixes string interpolation in value string builder (#1339) 2023-02-13 23:09:50 -08:00
CrashGuard.cs fix: Makes logging more consistent (#1246) 2022-11-13 00:36:23 -08:00
DispellableAttribute.cs Formats UO Content (#201) 2020-08-27 18:30:38 -07:00
DispellableFieldAttribute.cs Formats UO Content (#201) 2020-08-27 18:30:38 -07:00
DoorGenerator.cs fix: Update LabelTo, SendMessage, etc to Interpolated Strings (#1283) 2022-11-28 19:58:12 -08:00
Email.cs fix(core): Caches DateTime.NowUtc (#548) 2021-03-13 01:32:04 -08:00
Emitter.cs Fixes brace style (#248) 2020-09-13 21:49:46 -07:00
FoodDecay.cs fix(core): Adds Hashed & Hierarchical Timer Wheel (#655) 2021-07-11 22:42:06 -07:00
Geometry.cs chore: Cleans up pattern checks. (#892) 2021-12-24 15:53:59 -08:00
Guild.cs fix: Update LabelTo, SendMessage, etc to Interpolated Strings (#1283) 2022-11-28 19:58:12 -08:00
HardwareInfo.cs fix: Update LabelTo, SendMessage, etc to Interpolated Strings (#1283) 2022-11-28 19:58:12 -08:00
InhumanSpeech.cs fix(core): Converts healthbar packets (#367) 2020-12-27 23:22:21 -08:00
Keywords.cs fix: Overhauls murder system (#1419) 2023-07-15 22:42:49 -07:00
LanguageStatistics.cs fix: Fixes provocation for pre-pub 16 (#1335) 2023-02-07 23:33:45 -08:00
LightCycle.cs fix: Update LabelTo, SendMessage, etc to Interpolated Strings (#1283) 2022-11-28 19:58:12 -08:00
LoginStats.cs fix: Update LabelTo, SendMessage, etc to Interpolated Strings (#1283) 2022-11-28 19:58:12 -08:00
Loot.cs Cleanup & Fixes for .NET 5 (#309) 2020-11-15 10:03:50 -08:00
LootPack.cs fix: Cleans up string substring (#1018) 2022-05-14 16:56:03 -07:00
MessageHelper.cs fix: Codegens rares and solen items (#1371) 2023-03-11 19:25:48 -08:00
MondainsLegacy.cs Fixes dupe exception (#258) 2020-09-19 15:46:07 -07:00
NameList.cs fix(core): Fixes errors from missing files (#511) 2021-02-14 18:30:53 -08:00
NameVerification.cs fix(core): Optimizes strings / .NET 5 compatibility changes (#354) 2020-12-20 23:21:55 -08:00
Notoriety.cs fix: Fixes young healing each other (#1345) 2023-02-21 18:15:57 -08:00
PacketThrottles.cs fix: Fixes speech throttle (#1387) 2023-04-05 09:21:44 -07:00
Paperdoll.cs fix(core): Converts remaining player packets (#374) 2020-12-30 16:09:51 -08:00
Poison.cs fix: Updates messages with clilocs (#1381) 2023-03-26 00:54:09 -07:00
ProfanityProtection.cs fix(core): Tightens the network stack (#479) 2021-02-07 23:30:56 -08:00
ProfessionInfo.cs fix: Fixes ignoring mobs, champions, party crash, slayer rarity, boat speedhack, etc (#1222) 2022-10-31 22:16:50 -07:00
Profile.cs chore: Cleans up pattern checks. (#892) 2021-12-24 15:53:59 -08:00
RaceDefinitions.cs fix: Updates races to properly support gargoyle equipment. (#744) 2021-08-29 00:43:55 -07:00
RegenRates.cs fix: Removes duplicate CheckTransform static method (#1384) 2023-04-03 23:03:40 -07:00
RenameRequests.cs fix(core): Optimizes strings / .NET 5 compatibility changes (#354) 2020-12-20 23:21:55 -08:00
ResourceInfo.cs fix: Codegens BOD rewards. (#1361) 2023-03-06 19:01:14 -08:00
ServerAccess.cs fix: Fixes structured logging (#1043) 2022-06-05 01:00:22 -07:00
ServerList.cs fix: Fixes structured logging (#1043) 2022-06-05 01:00:22 -07:00
ShardPoller.cs fix: Update LabelTo, SendMessage, etc to Interpolated Strings (#1283) 2022-11-28 19:58:12 -08:00
ShrinkTable.cs fix: Fixes provocation for pre-pub 16 (#1335) 2023-02-07 23:33:45 -08:00
Titles.cs fix: Fixes provocation for pre-pub 16 (#1335) 2023-02-07 23:33:45 -08:00
ToggleItem.cs Removes literal variables (#257) 2020-09-18 18:41:26 -07:00
TreasureMapProtection.cs cleanup: Fixes bugs and cleans up code (#660) 2021-07-19 20:49:59 -07:00
ValidationQueue.cs Fixes brace style (#248) 2020-09-13 21:49:46 -07:00
Weather.cs feat: Adds tidy option for serialization. Codegens ballotbox. Fixes pooled timer leaking (#681) 2021-08-14 03:02:53 -07:00
WeightOverloading.cs fix: Blood Oath, Wraith form, & Strangle (#1153) 2022-09-01 09:19:40 -07:00
WelcomeTimer.cs Removes UOAM vendors. (#241) 2020-09-12 11:56:52 -07:00