Commit graph

2292 commits

Author SHA1 Message Date
dependabot[bot]
b4b3af84d4
chore(deps): Bump Serilog from 2.12.0 to 3.0.1 (#1447)
Bumps [Serilog](https://github.com/serilog/serilog) from 2.12.0 to 3.0.1.
- [Release notes](https://github.com/serilog/serilog/releases)
- [Commits](https://github.com/serilog/serilog/compare/v2.12.0...v3.0.1)

---
updated-dependencies:
- dependency-name: Serilog
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-09 08:51:52 -07:00
Kamron Batman
c120783fba
chore: Adds dependabot.yml (#1446) 2023-08-09 08:21:01 -07:00
Kamron Batman
bde5357f89
fix: Removes Moq due to privacy concerns (#1445)
Due to privacy/security concerns, Moq has been removed.

See: https://github.com/moq/moq/issues/1372
2023-08-09 08:12:45 -07:00
Kamron Batman
0fa2e5cedb
fix: Fixes publish architecture parameter (#1444) 2023-08-08 09:15:35 -07:00
Kamron Batman
bd661da81c
fix: Fix sending blockers to GMs (#1441) 2023-08-05 19:44:47 -07:00
Kamron Batman
29ffc9cd52
fix: Fixes champs stop (#1440) 2023-08-03 20:36:01 -07:00
Kamron Batman
4b8e2d407b
fix: Fixes champs start (#1439) 2023-08-01 19:46:54 -07:00
mdodkins
a9a2a89908
feat: Customize expansion and set maps on first boot (#1425) 2023-07-31 20:46:49 -07:00
Kamron Batman
3ffe049e08
fix: Fixes champ spawns using wrong constructor (#1438) 2023-07-31 13:53:24 -07:00
Kamron Batman
56c40fffbd
fix: Fixes RemoveFollowers called twice (#1437) 2023-07-29 15:44:23 -07:00
vexyl
d6ebe67dd8
fix: Fixes untamed creatures not entering houses (#1436) 2023-07-29 15:43:39 -07:00
Kamron Batman
b8df42721f
fix: Fixes inaccessible items. (#1435)
### Summary
- [X] Fighters and Paladins did not have the correct strength to equip certain items in AOS+
- [X] Removed Chaos/Order shields from Fighters
- [X] Moved all item equips so they are done after stats are assigned.
2023-07-28 19:29:06 -07:00
Kamron Batman
6547239fa6
fix: Fixes NPE in champ titles (#1434) 2023-07-28 00:39:10 -07:00
Kamron Batman
51ecee6caa
fix: Overhauls champion titles & codegen champion system (#1430)
## MAJOR CHANGE

Added a champion title system to facilitate the existing champion titles. This should make it easier to extend or create other related game content. Champion titles will be saved in a folder called _ChampionTitles_.

### Motivation

The motivation to refactor was two-folder, but mostly related to performance in two ways.
First, every player had a ChampionTitleInfo object with an array of ChamptionTitleInfo. We want to eliminate the need for this information unless a player actually uses it. This should save a considerable amount of memory.

Second, to facilitate the atrophy mechanic, the champion titles would run atrophy post-world save, adding to the time that the server is frozen. Eliminating this post-world save side effect unlocks our ability to further optimize the world save process since there are no direct side effects.


### Bugs fixed

- [X] Fixed titles getting cut off on the paperdoll
- [X] Fixed champion title not displaying overhead (OPL)

### Screenshots
<img width="216" alt="image" src="https://github.com/modernuo/ModernUO/assets/3953314/8916f895-8d68-4fb0-892e-108a0c43be90">
2023-07-27 21:44:06 -07:00
Kamron Batman
4dddc8d3f1
fix: Fixes NPE in BaseRanged.OnMiss (#1433) 2023-07-27 09:17:52 -07:00
Kamron Batman
72557ffb97
fix (readme): Update README.md (#1432) 2023-07-26 20:54:10 -07:00
Kamron Batman
d9d04f1f38
fix: Adds better arm64 support (#1409) 2023-07-26 20:43:42 -07:00
mdodkins
d366e02251
fix: Fixes missing ordinal string comparisons arguments. (#1431)
---------

Co-authored-by: Kamron Batman <3953314+kamronbatman@users.noreply.github.com>
2023-07-23 20:12:38 -07:00
Kamron Batman
8eb480bdf5
fix: Fixes out of range crash with murder context (#1429) 2023-07-22 09:12:04 -07:00
Kamron Batman
f77dd91811
fix: Overhauls virtue system (#1376)
## MAJOR CHANGE (API BREAKING)

Moved the virtues to it's own system _VirtueSystem_. This should make it easier to extend or remove the virtue system. Virtues will be saved to a new folder called _Virtues_.

### Motivation

The motivation was also two-fold, performance/stability, and to fix bugs.

First, virtues is the second system (first is murders), that has a pre-world-save check on _every mobile in the game_ to atrophy virtue stats. This is taxing since it freexes the world and makes world saves take longer. Every mobile had Gain/Loss dates for each virtue, whether they needed them or not. Most players don't even use the virtue system, so this will increase performance considerably.

Second, when I tried to optimize/refactor the code, I found several bugs that needed to be fixed.

### Major API Changes

- [X] The properties on players related to virtues are gone. Use `pm.GetVirtues()?.<PropertyName>` instead.
- [X] Virtues were removed from non-player Mobiles.
- [X] `pm.JusticeProtectors` was removed. Use `JusticeVirtue.GetProtector()` or `JusticeVirtue.GetProtected()` instead.

### Screenshots

<img width="221" alt="Props-1" src="https://github.com/modernuo/ModernUO/assets/3953314/5c09cb83-b8d5-44a2-b899-a7ed7cd736ac">
<img width="220" alt="props-2" src="https://github.com/modernuo/ModernUO/assets/3953314/aeade4d3-8df0-47bd-955a-a864d0946cf7">
2023-07-19 21:43:47 -07:00
Kamron Batman
063d878276
fix: Cleans up murder system (#1428) 2023-07-16 00:04:30 -07:00
Kamron Batman
95779a27fb
fix: Removes unused RecentlyReported from PlayerMobile (#1427) 2023-07-15 23:15:00 -07:00
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
Mink80
d65e5bb37b
fix: Exclude higher privileged mobiles in AdminGump (#1423)
---------

Co-authored-by: Kamron Batman <3953314+kamronbatman@users.noreply.github.com>
2023-07-15 22:12:38 -07:00
Mink80
e9fa2bf9fa
fix: Prevent setting properties of higher privileged mobiles (#1420)
---------

Co-authored-by: Kamron Batman <3953314+kamronbatman@users.noreply.github.com>
2023-07-15 22:01:33 -07:00
Kamron Batman
8ff105ac46
fix: Fixes NPE in boomerang (#1426) 2023-07-15 10:07:35 -07:00
Mink80
3825b16132
fix: Fixes GetAllSharedAccounts and other list conversions in AdminGump (#1422)
---------

Co-authored-by: Kamron Batman <3953314+kamronbatman@users.noreply.github.com>
2023-07-08 15:20:00 -07:00
Mink80
27e00cc73f
fix: Fixes spellbook not showing SpellCount when added non-empty. (#1424) 2023-07-04 16:14:04 -07:00
Kamron Batman
3b97e8d39c
fix: Fixes stabled, abilities targeting self, and unsummon memory leak (#1418)
## **MAJOR CHANGE**
* `Stabled` has been moved to `PlayerMobile`.
* New methods added, `PlayerMobile.AddStabled` and `PlayerMobile.RemoveStabled`.
* Added `PlayerMobile.AddFollower` and `PlayerMobile.RemoveFollower`.
* `Stabled`, `AutoStabled`, and `AllFollowers` are now `HashSet` and **_CAN BE NULL_**.

### Summary
* Fixes monster abilities causing harm to the monster through reflect
* Adds `CanTriggerAgainstSelf` to override this for healing or some other self-affecting ability
* Fixes a major memory leak where `UnsummonTimer` from animated dead spell lasts up-to 24hrs and therefore holds onto references of dead/deleted mobs.
* Fixes another minor leak where a mob is not unregistered from the animated dead spell list until the next spell cast.
2023-07-03 09:45:22 -07:00
vexyl
d99e72db8f
fix: Fixes drydocking when EffectItem type items are on the deck (#1416) 2023-06-27 18:12:58 -07:00
Kamron Batman
db4b01567f
fix: Fixes crash with antimacro code (#1415) 2023-06-23 17:10:47 -07:00
Kamron Batman
c93fa004a3
chore: Bumps dependencies (#1414) 2023-06-20 22:57:16 -07:00
vexyl
8f26ad4ac1
fix: Fixes mana drain crash on debug builds (#1413) 2023-06-20 21:22:47 -07:00
mark1145
5e16149b81
fix: Explosion doesn't properly cleanup if mobile fails harmful check (#1412) 2023-06-17 19:42:46 -07:00
Kamron Batman
baed849f10
feat: Moves skills to json file (#1411) 2023-06-16 05:55:55 -07:00
Gnai
c18d0d23ff
fix: Fixes NPE crash from "i wish to duel" (#1410) 2023-06-05 22:50:15 +02:00
Kamron Batman
f2d0f6616e
fix: Fixes NPE with effect controller (#1406) 2023-05-21 23:29:16 -07:00
Kamron Batman
a7edba3712
fix: Removes scoped for gump AppendTo (#1405)
### Summary
.NET 6 had a bug that required the `scoped` keyword for the gump AppendTo. It looks like this was fixed since then.
2023-05-21 00:46:25 -07:00
Kamron Batman
35237ff7d1
fix: Fixes leaking/errors caused by categorization (#1404)
### Summary
- [X] Fixes 4 TormentedMinotaur created at `(0, 0, 0) [null]` when `[add` is used.
- [X] Fixes client crash from a bug in HouseRaffleStone when `[add` is used.

Recommend viewing with [_whitespace disabled_](https://github.com/modernuo/ModernUO/pull/1404/files?diff=split&w=1)
2023-05-19 18:41:31 -07:00
Kamron Batman
f92d821168
fix: Fixes timezone issue (#1388)
### Summary
Removes the timezone specific logic in favor of globalization non-invariance. This should fix culture issues too.
2023-05-19 16:40:06 -07:00
Kamron Batman
0a9bfb0558
fix: Drastically simplifies regions (#1400)
### Summary
- [X] Gets rid of the Dtos
- [X] Simplifies the json serializer registration
- [X] Adds a custom `RegionByName` JsonConverter that can look up other regions that have already been registered.


### BREAKING CHANGE
1. **Child regions must appear after their parents in the JSON file**
2. In the regions json file, _"Parent"_ can no longer be just a string. It must be an object that includes the map.
      - ```json
        "Parent": { "Name": "Britain", "Map": "Felucca" }
        ```
2023-05-19 16:39:40 -07:00
Kamron Batman
734d20cbaf
fix: Overhauls antimacro system (#1403)
### Summary
- [X] Moves AntiMacro to it's own system.
- [X] Removes antimacro from PlayerMobile.
- [X] Adds `LastExpiration` to antimacro to easily clear out all antimacro tracking when a player logs out, or during world save.
- [X] Optimizes the code somewhat.
2023-05-19 16:32:51 -07:00
Kamron Batman
372820bb49
fix: Vendors are now invulnerable for LBR+ or by override (#1399)
### Summary

Changes vendors so they are invulnerable with LBR+ era or with the `vendor.isInvulnerable` setting added.
2023-04-28 20:51:39 -07:00
Kamron Batman
4242c446c8
fix: Creates an override for disabling cast paralyze (#1398) 2023-04-28 20:44:30 -07:00
mark1145
55dc4a7da5
fix: Fixes casting by sending ParalyzeFlag to client while animating (#1397) 2023-04-27 23:12:07 -07:00
Kamron Batman
ba4c4627c3
fix: Fixes the limitation on static tiles for harvesting (#1396)
* fix: Fixes the limitation on static tiles for harvesting

* Fixes dirt targeting
2023-04-22 09:14:42 -07:00
Kamron Batman
79c6f0375c
fix: Fixes doors as decorations & optimizes them (#1392) 2023-04-18 19:28:54 -07:00
Kamron Batman
6c09e5a006
fix: Fixes infinite loop in bulletin board cleanup (#1394) 2023-04-18 19:27:40 -07:00
mark1145
5b3ff89e70
fix: Ambiguous AddRes signatures causing bad necro regs display (#1395) 2023-04-18 14:42:01 -07:00
Kamron Batman
cc6fee28d4
feat: Adds hireables (#1393) 2023-04-16 20:24:14 -07:00