Kamron Batman
91b2912ee4
fix: Cleans up potential memory leak in monster abilities. ( #2185 )
2025-05-15 19:42:54 -07:00
mdodkins
0f3d984efc
fix: Fixes craft gump non-cliloc label offsets. ( #2182 )
2025-05-11 18:13:00 -07:00
Kamron Batman
18903ee17b
fix: Fixes props gump for interfaces again ( #2180 )
2025-05-09 15:44:32 -07:00
Kamron Batman
05825a11e2
fix: Fixes props for interfaces and adds account manipulation ( #2179 )
2025-05-09 15:39:47 -07:00
Kamron Batman
f95b3a8b3b
fix: Streamlines event scheduler API. Adds months to weekly recurrence ( #2178 )
2025-05-07 22:42:44 -07:00
Kamron Batman
990e86b983
fix: Fixes guard infinite loop, and streamlines call methods ( #2175 )
2025-05-06 23:54:13 -07:00
Kamron Batman
f02403a374
feat: Adds yearly calendared events with recurrences ( #2177 )
2025-05-06 23:52:49 -07:00
Kamron Batman
f0f7d44d4d
fix: Fixes polymorph spell ( #2173 )
2025-05-04 09:31:32 -07:00
Kamron Batman
da517f56c4
chore: Fixes variable types for possible performance issues ( #2172 )
2025-05-01 21:54:41 -07:00
Kamron Batman
6d43f2549c
fix: Adjusts spell ranges to match OSI ( #2171 )
...
### Summary
Adjusts spell ranges according to OSI. Specifically, the [April 14, 1999 patch](https://uo.com/wiki/ultima-online-wiki/technical/previous-publishes/1999-2/1999-06-14th-april/ ) changed spell ranges to 10 tiles, and 15 tiles for fields.
2025-05-01 20:03:56 -07:00
Kamron Batman
1eeeabb729
fix: Fixes weekly interval schedules for multiple weeks (biweekly) ( #2169 )
2025-04-30 17:12:29 -07:00
Kamron Batman
415c7a6bfd
fix: Optimizes EventScheduler by using PriorityQueue ( #2167 )
2025-04-30 16:33:59 -07:00
Kamron Batman
21a4092dd8
fix: Changes EventScheduler API so it is more explicit ( #2164 )
...
### Summary
Refactors ScheduledEvent and EventScheduler API to use TimeOnly so recurrence offset is explicit.
API:
```cs
public ScheduledEvent(
DateTime startAfter,
DateTime endOn,
TimeOnly time,
IRecurrencePattern recurrence,
TimeZoneInfo timeZone = null
)
```
Example:
```cs
// Schedule a daily event at 8:00 AM UTC
EventScheduler.DailyAt(
new DateTime(2024, 6, 1, 8, 0, 0, DateTimeKind.Utc),
() => Console.WriteLine("Daily event triggered!")
);
// Schedule a custom recurring event at 3:30 PM UTC every Monday
var recurrence = new WeeklyRecurrencePattern(1, DaysOfWeek.Monday);
EventScheduler.Shared.ScheduleEvent(
DateTime.UtcNow,
new TimeOnly(15, 30),
() => Console.WriteLine("Weekly Monday event!"),
recurrence
);
```
2025-04-28 16:16:33 -07:00
Kamron Batman
f89b2be653
fix: Fixes major bug with BoBEntries removal ( #2165 )
2025-04-27 22:05:07 -07:00
Kamron Batman
78feea86b4
feat: Adds scheduler with wallclock timer ( #2163 )
...
### Summary
* Adds an event scheduler.
* Adds conveniences for hourly, daily, weekly, biweekly, monthly, ordinal monthly, and yearly recurrences
Example:
```cs
var tz = TimeZoneInfo.FindSystemTimeZoneById("America/New_York");
// Specify the time of the day, and the day of the week you want it to occur. Make sure it is translated into Utc.
// The next occurrence will be _after_ the specified date/time.
var scheduledEvent = EventScheduler.WeeklyAt(new DateTime(2025, 04, 26, 17, 00, 00), StartEvent, tz);
void StartEvent()
{
World.Broadcast(0x30, false, "The event has started!");
}
Console.WriteLine("Event starts on {0}", scheduledEvent.NextOccurrence);
```
In this example, on _Saturday, May 3rd, 2025 @ 5pm ET_, the message "The event has started!" will be broadcasted.
2025-04-26 22:27:08 -07:00
Kamron Batman
4e25c74cdf
fix: Fixes magical barrier NPE and an edge case ( #2162 )
2025-04-22 17:52:09 -07:00
Kamron Batman
47b03f5d62
fix: Fixes NPCs not able to equip armor/clothing/weapons ( #2161 )
2025-04-21 14:01:08 -07:00
Kamron Batman
4aa272d429
feat: Adds an Item/Mobile memory leak detector. Fixes minor leak in doors. ( #2159 )
...
### Summary
Adds the command [TrackLeaks to enable tracking item/mobiles that have been deleted but still have dangling references. Requires adding the _TRACK_LEAKS_ define constant during build.
2025-04-15 19:14:45 -07:00
Kamron Batman
61d074213b
chore(deps): Updates MailKit to 4.11.0 and Microsoft deps to 9.0.4 ( #2156 )
2025-04-12 12:54:40 -07:00
Kamron Batman
a94814a7ef
fix: Fixes and optimizes NameVerification and ProfanityProtection ( #2153 )
...
### Summary
Significantly improves the performance of NameVerification & ProfanityProtection:
```cs
| Method | Mean | Error | StdDev |
|--------------- |----------:|----------:|----------:|
| ValidateName | 728.34 ns | 13.244 ns | 11.059 ns |
| ValidateNameSV | 26.62 ns | 0.233 ns | 0.207 ns |
```
2025-04-12 02:26:10 -07:00
Kamron Batman
0ce2a62a76
fix: Use vectorized search for username-password validation. ( #2152 )
...
### Summary
Optimizes account validation:
```cs
| Method | Mean | Error | StdDev |
|-------------------- |-----------:|----------:|----------:|
| ForLoopUsernameSafe | 158.536 ns | 1.6247 ns | 1.5198 ns |
| SVUsernameSafe | 2.859 ns | 0.0581 ns | 0.0796 ns |
```
2025-04-11 22:40:06 -07:00
Kamron Batman
0a4579f298
fix: Fixes duping bags ( #2148 )
...
### Summary
Fixes duping items in a container not working properly.
2025-04-07 22:27:41 -07:00
Kamron Batman
2c6f1854fa
fix: Fixes guards attacking mobs ( #2145 )
...
### Summary
- Fixes infinite teleport from guard refactor for spawners
- Fixes guards not attacking Always Murderer creatures
- Fixes crash when calling guards due to map modification while enumeration
2025-03-12 16:45:39 -07:00
Kamron Batman
47da961a37
fix: Fixes spawning guards. Adds back non-lethal with config ( #2140 )
2025-03-12 13:08:14 -07:00
mark1145
0024d53739
fix: Fixes edge cases where a leader resigns and becomes promoted in their new guild. ( #2136 )
2025-03-05 17:59:07 -08:00
Kamron Batman
56e3086ed1
fix: Makes hairdye gump static ( #2138 )
2025-03-04 15:55:05 -08:00
Kamron Batman
49fd5f210d
fix: Fixes removing virtue when player is deleted ( #2135 )
2025-03-02 17:50:18 -08:00
Kamron Batman
2a8c62e8be
fix: Fixes TCPServer accept async, makes Firewall/IP Limiter multithreaded ( #2134 )
2025-02-27 22:19:38 -08:00
Kamron Batman
bcab91255a
fix: Fixes EVs/BSs attacking players in Pre-AOS ( #2132 )
2025-02-26 18:43:49 -08:00
Voxpire
b8a8bfd1a9
fix: Fixes console clobbering when prompted to add an owner account ( #2133 )
...
### Summary
- Updates AccountPrompt to use `logger` to avoid console clobbering
### Screenshot

2025-02-26 18:43:20 -08:00
Kamron Batman
d10b32aed3
fix: Fixes dead plant serialization ( #2128 )
2025-02-19 15:23:49 -08:00
Kamron Batman
525112943c
fix: Changes Chyloth gump to static ( #2126 )
2025-02-14 00:18:38 -08:00
Kamron Batman
2e08eda8cb
feat: Standardizes South/East selection gumps ( #1839 )
2025-02-14 00:15:14 -08:00
Kamron Batman
279b10dd0f
feat: Replaces params array with params ReadOnlySpan ( #2125 )
2025-02-13 21:19:02 -08:00
Kamron Batman
90059c5e74
feat: Adds convenience methods to GumpStringsBuilder ( #2124 )
2025-02-13 19:58:46 -08:00
Kamron Batman
6d7b1b8bee
fix: Adds missing string interpolation handler for SetStringSlot ( #2123 )
2025-02-13 19:30:47 -08:00
Kamron Batman
899146dcb7
fix: Fixes static gumps sending too much data. ( #2122 )
2025-02-13 19:12:28 -08:00
Kamron Batman
3cf1bd0f7d
fix: Fixes AddLabelPlaceholder on StaticGump ( #2121 )
2025-02-13 18:53:24 -08:00
Kamron Batman
41e909cd22
fix: Fixes serialization generator issue with arrays ( #2120 )
2025-02-12 22:30:46 -08:00
Kamron Batman
af027cdac6
Bumps dependencies. Fixes bugs with serialization generator ( #2119 )
2025-02-12 20:50:28 -08:00
Kamron Batman
2d0957119e
feat: Adds BaseGump.GetGumpOffsetForItemGraphic ( #2116 )
2025-02-10 19:53:47 -08:00
Kamron Batman
40479c946a
feat: Adds item graphic size to Bounds.bin and makes item graphic offset available to gumps ( #2115 )
2025-02-10 19:31:39 -08:00
Bohica
772511d1e8
fix: Reverts GetProtOffset, Adds PreT2A Weapon Damage & PreUOR Armor Durability ( #2114 )
2025-02-06 01:27:40 -08:00
Bohica
51367df0d2
fix: Fixes AR/Durability/Tool Uses for Pre-UOR and LBR ( #2113 )
2025-02-05 19:54:56 -08:00
Kamron Batman
d407847fc4
fix: Fixes axes not working when equipped or in backpack ( #2112 )
2025-02-04 22:11:29 -08:00
Bohica
1c5fa824d6
fix: Fixes all summon spells so they use summoned variation of monster ( #2106 )
2025-02-03 23:44:51 -08:00
Bohica
de12f8cb02
fix: Fixes turning to target on spellcast ( #2107 )
2025-02-03 17:38:07 -08:00
Kamron Batman
2c806cb072
fix: Converts house placement gumps to dynamic ( #2100 )
2025-02-02 13:25:05 -08:00
Kamron Batman
1264302ee0
fix: Converts barkeep and house foundation commit gumps to dynamic ( #2099 )
2025-01-27 21:36:56 -08:00
Kamron Batman
cbae44ef20
fix: Updates SummonFamiliar & Tracking gumps to static ( #2098 )
2025-01-27 17:57:25 -08:00