Commit graph

1612 commits

Author SHA1 Message Date
Kamron Batman
6f64cddd0b
feat: Optimizes HTML Escape (#2273)
### Summary

Optimizes HTML escaping by using a vectorized search.
2025-11-16 10:32:29 -08:00
Bohica
ee1a40bb51
fix: Fixes movement pathing while in combat (#2271) 2025-11-16 10:14:06 -08:00
Bohica
051f22ff93
fix: Fixes vendor look spam (#2269) 2025-11-16 10:12:12 -08:00
Bohica
5e65f9f0b2
fix: Fixes descending comparer in admin gump (#2272) 2025-11-16 10:09:44 -08:00
Bohica
6cabac5a4f
fix: Fixes pets from attacking themselves (Again) (#2267) 2025-11-15 14:21:18 -08:00
Bohica
5667017874
fix: Fixes pets from attacking themselves (#2265)
### Summary

Stops pets from attacking themselves.
2025-11-15 10:15:10 -08:00
Kamron Batman
6f5b7f7a6b
fix: Fixes SpanWriter/SpanReader tests (#2263) 2025-11-13 00:00:19 -08:00
Kamron Batman
68caaab92c
fix: Makes SpanWriter/SpanReader exceptions clearer (#2262) 2025-11-12 23:34:13 -08:00
Bohica
c308a3baad
fix: Fixes timer leak in BaseCamp (#2259) 2025-11-12 09:49:35 -08:00
Kamron Batman
3a3f5ee518
feat: Adds .NET 10 / C# 14 support. (#2258)
### Summary
* Adds .NET 10 support
* Bumps to C# 14
2025-11-11 11:26:34 -08:00
Copilot
fbf8497c59
fix: Fix PlantSystem serialization of LeftSeeds and LeftResources at zero (#2255)
* Initial plan

* Add SerializableFieldDefault attributes for LeftSeeds and LeftResources

This fixes the serialization bug where _leftSeeds and _leftResources were initialized to 8 in the constructor but didn't serialize when their value was 0. Upon deserialization, the constructor would run again and reset these values back to 8.

The SerializableFieldDefault attributes tell the serialization system that the default value is 8, so it will properly serialize 0 values and maintain the correct state across server restarts.

Co-authored-by: kamronbatman <3953314+kamronbatman@users.noreply.github.com>

* Update ShouldSerialize methods to check against default value

Changed ShouldSerializeLeftSeeds() and ShouldSerializeLeftResources() to check if the value is != 8 (the default) instead of != 0. This ensures that only non-default values are serialized, following the same pattern used in BaseWeapon.cs and other classes with SerializableFieldDefault attributes.

Co-authored-by: kamronbatman <3953314+kamronbatman@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kamronbatman <3953314+kamronbatman@users.noreply.github.com>
2025-10-31 00:53:47 -07:00
Kamron Batman
df171926bb
fix: Fixes potential notoriety caching issue in Mobile.cs (#2251)
Replaces the 2D packet cache with a simpler one outlining the packet flag changes
2025-09-11 06:32:48 -07:00
Kamron Batman
641a3eb1f8
fix: Updates BOB/BOD gumps to the new API (#2250)
### Summary

* Moves BOBGump to DynamicGump.
* BOBGump no longer creates a whole new gump context object on every send.
* Moves BODBuyGump to StaticGump.
2025-09-07 12:50:20 -07:00
Kamron Batman
340acafcb3
fix: Fixes mining/lumberjacking multi-harvest (#2249) 2025-08-20 15:30:04 -07:00
Kamron Batman
bbb7dc2294
fix: Fixes dropping a stack of scrolls on a spellbook (#2248) 2025-08-09 20:55:36 -07:00
Bohica
d6bb8316d0
feat: Refactors A* Movement to use PriorityQueue (#2244)
### Summary

* Replaces the node chain with a PriorityQueue.
* Performance difference is up to 3x faster.

### Benchmarks
```cs
| Method              | Mean     | Error     | StdDev    | Gen0   | Allocated |
|-------------------- |---------:|----------:|----------:|-------:|----------:|
| FastAStar_PQueue    | 2.112 us | 0.0186 us | 0.0165 us | 0.0038 |      64 B |
| FastAStar_NodeChain | 6.430 us | 0.0800 us | 0.1807 us |      - |      64 B |
```

### Video

https://github.com/user-attachments/assets/3edd2524-5146-4775-be45-3516f0b01c27
2025-07-26 15:53:06 -07:00
Bohica
6938735113
fix: fixes movement jitter for non-AOS (#2245) 2025-07-26 10:21:36 -07:00
Bohica
f59605190c
fix: fixes mobiles pathing home after combat (#2246) 2025-07-26 10:11:31 -07:00
Kamron Batman
fa0b67ec29
fix: Optimizes items to use default weights. (Part 4) (#2243) 2025-07-24 23:29:29 -07:00
Kamron Batman
40ba85d7b8
fix: Optimizes items to use default weights. (Part 3) (#2242) 2025-07-24 16:21:27 -07:00
Kamron Batman
2c5441731e
fix: Optimizes items to use default weights. (Part 2) (#2241) 2025-07-24 15:41:44 -07:00
Kamron Batman
2eba2868a6
fix: Optimizes items to use default weights. (Part 1) (#2240) 2025-07-24 14:44:39 -07:00
Kamron Batman
c2e44a58f6
fix: Moves container enumerables to Item. (#2238) 2025-07-24 14:26:35 -07:00
Kamron Batman
1e2f4b1171
fix: Fixes tentacles not getting removed from harrower's list (#2239) 2025-07-24 14:18:16 -07:00
Kamron Batman
2df62fba5a
chore: Bumps various dependencies (#2237) 2025-07-22 16:04:04 -07:00
Bohica
173037ae77
fix: Prevents recursion in BaseCreature.DoHarmful() (#2202) 2025-07-22 16:01:56 -07:00
Kamron Batman
8a118170e7
fix: Fixes treasure map chest crash from null guardians (#2236) 2025-07-22 16:01:27 -07:00
Kamron Batman
aab731ed96
feat: Overhauls AI (Speech/Movement) (#2232)
### Summary

* Refactors AI so it is easier to read and maintain
* Fixes NPC speed issues
* Fixes pet sector AI issue that was causing stuttering
* Fixes direction snapping for Melee/Mage AI
* Refactors pet orders
* Refactors speech commands
* Removes scale speed by dex for HS+ (it was a stupid feature anyways)
2025-07-18 22:39:57 -07:00
Kamron Batman
f89150735e
fix: Consolidates debug check messages for AI and adds debounce (#2235) 2025-07-18 18:08:03 -07:00
Kamron Batman
8f88de68a7
fix: Standardizes the variables for AI (#2234) 2025-07-18 17:50:32 -07:00
Kamron Batman
416e1be735
fix: Adds GetDistanceToSqrt for Point3D and centralizes all the calls (#2233) 2025-07-18 09:24:41 -07:00
Bohica
2086e9b292
fix: Fixes direction snapping when pathing to combatant for MeleeAI (#2187)
* fix: Fixes direction snapping when pathing to combatant

* Fixes speed when exiting out of flee action
2025-07-16 21:55:47 -07:00
Bohica
c1af2ade83
fix: Fixes pet validation for resurrection spell (#2197) 2025-07-16 21:34:43 -07:00
Bohica
5f0561b7fc
feat: New Jail System (#2215)
New Jail System for MUO
----------------------------

Commands:
[jail [player] [reason] - Jail with time escalation per offense (5 to 120 minutes, GM only)
[unjail [player] - Manual release from jail regardless of time (GM only)
[jailinfo [player] - Check jail status and history (GM only)
[jailrecord - Checks their own jail record stats (player access)

Jail/Unjail can be found in the client view of a player in Admin Gump
![Screenshot 2025-06-12 030226](https://github.com/user-attachments/assets/a9f1a736-0316-464c-8958-c589ea0a1dcb)

Jail record gump, invoked with [jailrecord (30 second cooldown)
![Screenshot 2025-06-12 030320](https://github.com/user-attachments/assets/c19b3e76-3042-48ae-a00d-c70ef564bc84)
2025-07-16 20:41:21 -07:00
Bohica
c2c486c06e
fix: Adds body parts to headless one loot (#2225) 2025-07-07 18:54:18 -07:00
Felipe Maya Muniz
4209f7ea16
fix: Add properties for crafting ranged weapons with colored logs (#2222) 2025-07-07 18:51:08 -07:00
Kamron Batman
55d653d752
fix: Fixes skill cooldown for some target skills (#2231)
### Summary

Stealing, Detect Hidden, and Begging will now give credit for the time it took the player to use the targeter against the total skill cooldown. So if the player takes longer than 10s to target, then they can use a skill again immediately.

> [!NOTE]
> This does not change the requirement that players can no longer stack target these skills.
2025-07-06 22:50:40 -07:00
Felipe Maya Muniz
c0948fd0e2
feat: Adds ClearXY command (#2229) 2025-07-06 20:15:50 -07:00
Kamron Batman
edf16effa0
fix: Fixes container not properly consuming in some cases (#2230) 2025-07-06 10:23:37 -07:00
Bohica
8997130e57
fix: fixes death explosion trigger on death (#2228) 2025-07-03 09:47:52 -07:00
Bohica
35faba5087
fix: fixes the id for farmable cabbage (#2227) 2025-07-02 15:04:48 -07:00
Felipe Maya Muniz
c6b5dba83b
fix: Adds colored logs to fletching (#2223) 2025-06-28 17:32:13 -07:00
mdodkins
f83fc94b05
fix: Do not add an extraneous Open Paperdoll context menu entry (#2224) 2025-06-28 17:30:18 -07:00
Felipe Maya Muniz
aadcd6db70
fix: Withdraw should have positive amount to work (#2221) 2025-06-28 11:42:43 -07:00
Kamron Batman
a37481ea93
fix: Fixes control target not reset when giving pet order from context menu (#2220) 2025-06-25 23:31:51 -07:00
Kamron Batman
7d748491d0
fix: Fixes empty/missing bank box prevent withdraw from account gold (#2219) 2025-06-24 10:37:59 -07:00
Bohica
d3e4606050
fix: Fixes SpanReader.Read to fix bounds checks and now returns bytes written (#2211) 2025-06-12 17:25:32 -07:00
Kamron Batman
006c5ed037
fix: Fixes boat decay calculation (#2216) 2025-06-12 16:32:00 -07:00
Kamron Batman
a286e282a9
fix: Fixes fist disarm (pre-aos) (#2214) 2025-06-07 18:22:54 -07:00
Kamron Batman
c8d489b72b
fix: Fixes detect hidden skill cooldown (#2213) 2025-06-07 14:05:49 -07:00