main v0.7.0.137-beta

v0.7.0.137-beta Apr 12, 2022 4:10 PM

v0.7.0.136-beta Apr 4, 2022 6:05 AM

0c5d0ad7646211a03f0fb2995666d92476d9fe96 Apr 3, 2022 4:51 PM

Fix 1174 (#1175)

* fix: Daywalkr - Fix for guild bank OOBs

* fix: Daywalkr - Add migration to prevent possible guilds having too many bank slots after change; fix event command for adding guild bank slots

* chore: Daywalkr - 1174 code review

* chore: Review; cleanup weird contextmodelsnahpshot change

v0.7.0.135-beta Mar 30, 2022 10:15 AM

v0.7.0.134-beta Mar 28, 2022 11:52 PM

1c47c419cf8a4ebb47ca73ab69e60aa165a4b800 Mar 8, 2022 10:20 AM

Fix: removes hardcoded ComboBox sound effects (#1098)

* Removes default hardcoded values of ComboBox sound effects.

Explanation: ComboBox sound effects shouldn't be overwritten by default hardcoded values, they should consider the user's input from the Json files, it doesn't matter if the value is null or the established sound effect doesn't exists since this isn't an issue for Gwen.

5b7c37f1ac0dce2ba7fcaffb136f4f143c1e27bb Feb 25, 2022 12:42 AM

[GWEN] FIX #1031: Control Base now keeps track of sound instance it plays (#1032)

* Daywalkr: Gwen Control Base now keeps track of sound instance it plays; resolves 1031

* Daywalkr: Update to support multiple sound playback in Gwen elements

* Daywalkr: Delegated sound playing to the canvas class, as per Cheshire's suggestion

* Daywalkr: Remove dead code

32f0575c19318a56c78c1ae4aaca536634e3100c Feb 25, 2022 12:41 AM

Inventory Stack limit respected when pulling out of bank (#1075)

* Alex: Fix bug where you could withdraw a larger stack than the inventory stack limit allowed

* Alex: Add myself to authors :>

* Alex: Nevermind not yet

ee2c9b0fb74cb2255fef36dbbba435e2c1ee500e Feb 25, 2022 12:38 AM

Fix: "Player is Busy" on Party Invite. (#1084)

* Fix: "Player is Busy" on Party Invite.

* Should resolve #1083

* Review Changes

* We already had a method for IsBusy(), so i've moved in: Trading.Requester, PartyRequester and FriendRequester.

* IsBusy() had a Inconsistent body style: changed it to expression body.

* IsBusy() is only used within the Player class, so i've made it private.

* Replaced the checks for Trading.Requester, PartyRequester and FriendRequester by !IsBusy()

* Moved the the FriendRequester nullifier to the right place in the friendrequest packet handler, which fixes the "isbusy" issue with party invites.

v0.7.0.133-beta Mar 28, 2022 1:16 PM

af1f72f0d774389b25386fc187aa4df73b6a5a07 Mar 8, 2022 10:20 AM

Fix: removes hardcoded ComboBox sound effects (#1098)

* Removes default hardcoded values of ComboBox sound effects.

Explanation: ComboBox sound effects shouldn't be overwritten by default hardcoded values, they should consider the user's input from the Json files, it doesn't matter if the value is null or the established sound effect doesn't exists since this isn't an issue for Gwen.

f18286e7ab8764670717d9abc91a0d8d3df0fd44 Feb 25, 2022 12:42 AM

[GWEN] FIX #1031: Control Base now keeps track of sound instance it plays (#1032)

* Daywalkr: Gwen Control Base now keeps track of sound instance it plays; resolves 1031

* Daywalkr: Update to support multiple sound playback in Gwen elements

* Daywalkr: Delegated sound playing to the canvas class, as per Cheshire's suggestion

* Daywalkr: Remove dead code

478848bf1e208960e6f6bc38c587555c75a500ba Feb 25, 2022 12:41 AM

Inventory Stack limit respected when pulling out of bank (#1075)

* Alex: Fix bug where you could withdraw a larger stack than the inventory stack limit allowed

* Alex: Add myself to authors :>

* Alex: Nevermind not yet

469055a875a090b6905f508ba81058ce257e7d84 Feb 25, 2022 12:38 AM

Fix: "Player is Busy" on Party Invite. (#1084)

* Fix: "Player is Busy" on Party Invite.

* Should resolve #1083

* Review Changes

* We already had a method for IsBusy(), so i've moved in: Trading.Requester, PartyRequester and FriendRequester.

* IsBusy() had a Inconsistent body style: changed it to expression body.

* IsBusy() is only used within the Player class, so i've made it private.

* Replaced the checks for Trading.Requester, PartyRequester and FriendRequester by !IsBusy()

* Moved the the FriendRequester nullifier to the right place in the friendrequest packet handler, which fixes the "isbusy" issue with party invites.

v0.7.0.132-beta Mar 28, 2022 6:05 AM

v0.7.0.131-beta Mar 26, 2022 2:49 PM

eef13f898453749d6dc33340ab50651726a6a559 Feb 14, 2021 12:17 PM

Updated README.md (#540)

* Updated README.md

Updated the source code compilation information (which was outdated, VS 2017 isn't capable to build the current solution anymore).

The URL linked to the "Getting Started" documentation has been updated as well.

* Update README.md

* Update AUTHORS.md

Added myself as contributor.

Real Name: Fernando Arzola Lagos.

AKA: Arufonsu - https://github.com/Arufonsu

d1f2015edaa8c523fd19c01df7ca85934681591d Mar 9, 2022 7:24 PM

chore: documentation updates (#1105)

* chore: delete maintainers.md and update authors.md

* chore: document versioning

* chore: document security procedures

* chore: document contribution guidelines

4147d7f8ba309aa88f37021b5a362c57b1b460cf Feb 14, 2021 12:17 PM

Updated README.md (#540)

* Updated README.md

Updated the source code compilation information (which was outdated, VS 2017 isn't capable to build the current solution anymore).

The URL linked to the "Getting Started" documentation has been updated as well.

* Update README.md

* Update AUTHORS.md

Added myself as contributor.

Real Name: Fernando Arzola Lagos.

AKA: Arufonsu - https://github.com/Arufonsu

0441506e2273f84234fead947e0ea3e5e4b0725e Jul 17, 2021 6:22 PM

fix: exclude isf binary from targets

Intersect.Server.Framework.dll was being copied into the build directory when it should not have been

Add targets directory to the solution so it's easier to edit them in the IDE

37b32e0e8ccc0eee717208f1f11ab96dddd40366 Jul 17, 2021 5:30 PM

feat: add packet sending for client plugins (#878)

* feat: enable sending packets from client plugins

* fix: packet handler is null until after start

* feat: add local package deploy to package script

04d82465644df8a9243d604ae15a218360a3d963 Jul 12, 2021 4:53 PM

Added lifecycle Update event for Client (#856)

* Added lifecycle Update event

* Renamed "LifecycleUpdate" to "GameUpdate" to disambiguate from "LifecycleChangeState"

8afbdb1dcf2594f03b440983855778e2ee76e6c0 Jul 3, 2021 10:15 PM

Add Common Event Triggers to Crafting Items (#813)

* Initial Commit

Added Event field to Craft Editor - Works but doesn't trigger on successful craft.

* StartCommonEvent Trigger Added

Can now start the common event when a craft is successful

* Potential Issue fixed

Added if case to check if Craft HAS an event to begin with.

* DB Migration Integrated

Not 100% sure if this actually works as intended but worked on my end.

* Added Localization as per Cheshire

* Update Strings.cs

* Renamed Function and Moved Above Line 454

As per JC's request

* Update frmCrafts.cs

Co-authored-by: JC Snider <jcsnider@users.noreply.github.com>

d549cd923b1cecdc2bd031813ceb29c5fcfc8b30 Jul 3, 2021 12:30 PM

Shop & Crafting Table list sorting (#838)

* Allow sorting of sold items in shops

* Allow sorting of crafting table item list

* Added null value handler to Strings.CraftingTableEditor

* Added null value handling to Strings.ShopEditor

d1816c675a6368d5217d491d6145fb641a2ae5d8 Jul 3, 2021 12:24 PM

Fix 807 by render crafting item and ingredient color hues (#831)

Also uses the craft name in the crafting list instead of the item name.

In cases where the craft might make multiple quantities or something we give more control over the listing names to the developers.

e71b7ac5b643a6b568037e59ee54ea06b0fd2c63 Jul 3, 2021 7:51 AM

Bonify XP Party for Each Member (#773)

* Bonify XP Party for Each Member

Its Resolves: #749

Percentage configured on the gain server.

Ex: 10 = 10%

Monster gives 1000 XP.

1 player, alone, without a party, will win 1000 by killing him.

2 players in a party, will kill this monster.

The Exp that will be divided will be +20%

Then, the monster will now divide 1200 XP, totaling a division of 600 XP for each member.

In short, for each additional member in a group you will gain + 10% xp on top of the xp to be divided for EVERYONE.

The particular EXP I cannot change because there is already a configuration in the items that can add XP individual bonus for each one.

* Changed BonusExperiencePercentPerMember...

Changed to BonusExperiencePercentPerMember for more clarity

* Changed name var

Changed to: bonusExp

* Update Player.cs

Co-authored-by: JC Snider <jcsnider@users.noreply.github.com>

abf450bf2f22d8d60f33a485aec48d27d9054728 Jul 3, 2021 7:51 AM

Resolves 794 by allowing items to be picked up from the map even if you cannot hold the entire amount (#795)

* Resolves 794 by allowing items to be picked up from the map until the inventory is full (even if you don't grab the entire stack)

* Thanks Joyce -_-

* Retain error message

524fa1ef94eaa92ab2693ccd1d10d382cde0a57d Jul 2, 2021 11:21 PM

FIXES AscensionGameDev/Intersect-Engine#798: Healthbar Scaling Fix (#785)

* Daywalkr: Fixed a bug where health/shield bars did not render at the correct width when tile sizes were configured to be different.

* #798: Updated so that shield bars also scale correctly across tile sizes.

Co-authored-by: JC Snider <jcsnider@users.noreply.github.com>

adf5f28b0d2d6219373e6440613bbd7c1b5ad666 Jun 30, 2021 1:46 AM

Fix index out of range crash when checking equipment stats (#802)

* Fix index out of range crash when checking equipment stats for equipment that has changed/been removed

* Update Player.cs

c39ccb7b1c4d87da89c7b64350068d1d6169ac02 Jul 2, 2021 11:18 PM

Hide quantity on single-stackable items (#805)

* AV: Resolves issue 804

* 804: Remove the config option for hiding stacks < 2 in size

* 804: Added 'hidestack at 1' logic to bags as well; updated logic to include negative/0 quantities

* 804: Updated logic to appear in loot and trade windows as well

a880348ef0385bf1471fe37aa73069c996045bd0 Jun 7, 2021 7:01 AM

Option to Loss Exp When Die (#748)

* Option to Loss Exp When Die

Resolves: #722

* Removed Boolean of XP Loss

* Changing condition to check if player will loss XP

* Update ExpLoss variable

* ExpLossOnDeathPercent variable replaced...

* Add option to decide how the exp will be take.

Thanks for suggestions,

* Check condition of xp loss mode

This will check if the percentage is above 0, then it will check the XP loss mode, if based on the total XP, or current XP acquired.

* Add line break

* Addes tabs every line

* Add line break before function

82d5858a7bb84990dee671ba9a3bc7c83bef55d4 Jun 2, 2021 3:52 PM

Hotkey for Guild Window (#738)

* Enabled ESC to Close Guild Window

Resolves #729

* Revert "Enabled ESC to Close Guild Window"

This reverts commit 221ac220c816712a91a123f570819cb94bc331a5.

* Enabled Hotkey for Guild

Added hotkey entry for opening the Guild Window.

Not 100% sure about the JSON generation but tested in game with an edited OptionsMenu.json.

* Reordered Things

As requested by JC

* Update Strings.cs

Co-authored-by: JC Snider <jcsnider@users.noreply.github.com>

8db4733a32a50c883107f4d3e6432c09a8e2b365 Jun 2, 2021 3:50 PM

Guild logging and endpoints (#739)

* Added regex filters to check for valid guild names

* Added logging of guild chat messages

* Added api endpoints for renaming guilds, viewing guild members/banks, and managing guild members/ranks

* Add guild history/activity logging

59cfc61db3790dd743f477b629f46d0353793df2 May 19, 2021 4:59 AM

Trade logging and endpoints (#732)

* Fix a bug where traded items do not retain the stats of the items offered.

* Added trade logging and api endpoints to view/query trades from the logging db

0149decd210dae2b7dee0f022589571b4d2bfe0c May 15, 2021 3:03 AM

Add item stack caps (#728)

* Add Inventory Item Stack Caps

* Rewrite the bank logic to function closer to the inventory logic and take advantage of stack limits.

* Add editor portion, fix bug that allowed item duping

c54f50869965db732715c803f6e2c9735224486c May 12, 2021 4:19 PM

Make item binding options more granular (#720)

* Make item binding options more granular

Added the following options to replace Bound:

- CanDrop

- CanDropOnDeath

- CanTrade

- CanSell

- CanBank

- CanBag

* Replace CanDropOnDeath with item specific drop chances, defaulting to server config on new items

* Fix an issue with downgrading

* Move bankable check outside of bank lock

ef4c11c7817ffdd37bddae691298b09a782635b8 May 11, 2021 1:55 AM

Fix resource editor & event editor icon (#712)

* Populate common events and tool types on resource editor load

* Also fix event editor icon while we're here

d476afb9b0ab8bb411a943549174de32736a2bf9 May 10, 2021 4:52 AM

Guilds v1 (#689)

* Guilds V1

* Removed partial guild classes and merged with existing base engine classes.

* Make the lowest rank Newbie instead of Probationary so it fits in the guild guild ui

* Fix demotion options showing up for users

* Fixed a bug where clients would crash trying to pickup/gather items when inventories were full

d463368bd1fdc4bf41a80b670a17a7296e4d69ec May 3, 2021 12:53 AM

Client performance tweaks (#663)

* Fix excessive disk usage loading assets when sprites haven't changed

* Only set the interface count debug label when opening the window, because the linq query takes a lot of processing time

* Tweaks to shaders & lighting so we can batch lights with matching settings and improve rendering performance.

d621d9cdcf4471585f3fceae0e99c383cff51c9f May 3, 2021 12:53 AM

Reduce and/or remove resx dependencies (#671)

A lot of these had duplicated info for form icons, and other duplicate resources which are not needed. Cutting down on these files should reduce merge conflicts going forward.

64ddb60d916a238740a9141eb50bea2dc2cd281b May 3, 2021 12:52 AM

Added partials to most classes that mods would want to expand on (#675)

* Added partials to most classes that mods would want to expand on, and would benefit from doing so in different/clean files to avoid merge conflicts

* I guess these forgot to save -_- (this commit will be squashed away)

21943d581fc7912c5f7da2e69d7660451a4a0e0c May 3, 2021 12:52 AM

Small UI Tweaks (#673)

* Move chatbox text cursor to end of line when auto inputting text

* Allow naming ui menus so their properties can be loaded from json files

* Menu name parameter should be optional

* Cache loaded json ui files so reading them later is instant (ie for loading banks)

a3ee02ff1887148f1f88b62a4741acc57cc230fe Apr 27, 2021 7:55 AM

New common event triggers! (#658)

On Equip/Unequip

On Player Variable Change (specific variable selected in common event editor)

On Server Variable Change (specific variable selected in common event editor)

52ea897b9db892e8b4c2e66b87777039119da846 Apr 27, 2021 7:54 AM

Batch movement, action message, and animation packets (#657)

* Batch entity movements and send them with each map update

* Update PacketSender.cs

* Batch and send groups of action messages together

* Update MapActionMessages.cs

* Batch animation packets, added packet batching options to server config

c6f106b8f45466b38560636511807b044b36c61f Apr 24, 2021 9:17 PM

Added options to ignore cooldown reduction for items & spells. (#641)

If ignore cdr is checked then cdr will not be applied for the group when that particular item/spell is used.

456f21bbd8c50483639964e4e36e6f885a8ef603 Apr 24, 2021 7:53 PM

Added more npc reset options (#645)

ContinuouslyResetVitalsAndStatuses (true/false) will determine whether the npc restores hp/resets statuses while they work their way back to their reset point.

AllowEngagingWhileResetting (true/false) will determine if a npc that is resetting can be engaged again if their new attacker is within the reset radius.

c8d5696b34721ff0e5616a94b681b8b174c4b83d Apr 24, 2021 7:53 PM

Added option in the npc editor to drop individualized loot for all attackers (#642)

* Added option in the npc editor to drop individualized loot for all attackers

Otherwise default loot drop behavior is in effect.

There is a server config option so that if you are using the individualized loot option for an npc a killers party members can automatically be included in the loot drops.

* Added the db migration and a semicolon

bacb2e6e900f3f17f5a025a3629636bd0ffd9184 Apr 24, 2021 7:50 PM

Track game stats & metrics + api reporting (#630)

* Server performance, networking, etc metrics tracking

* Better/less stressful way to calculate autorun events in play

* Whoops, forgot this.

* Added commands to enable/disable metrics collection via the command line, reduced some metrics on packet handling

* Stop all potentially expensive metric operations when metrics collection is disabled.

* Reduce number of queries to DateTime.UtcNow by only checking when Environment.TickCount changes.

* Clear metrics snapshot when disabling metrics

* Track top 10 most sent and received network packets for each collection window

* Added more metrics tracking to threadpools, and more configuration for the .net managed threadpool

* Update MetricsRoot.cs

* Stat/metric tracking performance is much better with our own histogram class instead of using AppMetrics

* Delete metrics2.patch

* Rename player save threads to just database threads. Stop saving server variables in realtime, instead update the db at an interval or server shutdown.

* Update UserActivityHistory.cs

* Save chat history using the database thread pool

* Update LogicService.LogicThread.cs

269492ed3ca206d52097992e92d01d202357b178 Apr 18, 2021 8:01 AM

Add Chat Logging & Logging Api Endpoints (#627)

* Working chat logging, thanks Marsh!

* Whoops, committed this to the wrong branch

* Add logs endpoint to the API, allow fetching of chat logs, ip logs, and activity logs from the api

bed3df3549c85ede49dd0273795d56566e6f2edc Apr 18, 2021 8:00 AM

Extended API Endpoints (#602)

* Added searching and sorting to Users.List()

Cannot use compiled queries entirely for this yet. Maybe if we upgrade to EF Core 5... sorting would have to be done by referencing properties (like User.Name) with EF.Property<string>(User, "Name") BUT then the order is off due to not handling case sensitivity correctly which can potentially be resolved by specifying collations which isn't supported until EF Core 5.

* Sorting/searching of players. Doing all logic within context usings.

* Fixed errors with listing users/players and added slim parameter to players list so you don't get inventory and other heavy data.

* Include class name and map names with players.

* Removing slim parameter because it doesn't do anything.

* Include item, spell, and variable names in api query returns

* Api bug fixes, and error handling when sending emails fail

* API endpoints for name changes and deleting players/accounts

* API endpoints for setting player levels and classes

* Speed up listing/querying by not trying to filter on IEnumerables

EF hashes and caches queries automatically anyways.

* Add config/stats endpoint so that we can get combat stats from the server

* Serialized cached friends as just friends for players

148fe37ecf6bea0a9929994bf070a02f3dbd9b82 Apr 18, 2021 7:58 AM

Reimplementing cps lock (#606)

* Reimplemented cps lock/unlock due to thread.sleep precision (at best) being 15ms.

Locked will be fine 90% of the time but if the server is under extreme load or has insanely large worlds then that 15ms precision could be a problem.

* Load CpsLock property from server config and persist the setting when saved via the cps command

562ac054b2df91b85b9ce9a8fcab6cf04eff3b42 Mar 20, 2021 3:04 PM

Bug fixes that should be in Prerelease and not stuck in Dev (#605)

* Send quest progress upon quest completion via event. (#575)

* Stop events from getting stuck while changing resolutions with bank/shop/trade/crafting open (#576)

d7a5016ccd919dbce60bee1ccb860306b8bf15d0 Feb 19, 2021 3:12 PM

Fix cpu burning by sleeping instead of yielding on the main server loop (#564)

No need for the loop to iterate 1.8 million times a second for something that only divys out work to other threads.

d5c9641f56202623c6c18dff5da1fe9d46d06616 Feb 18, 2021 10:52 PM

Fix server crashes due to deleting characters that remain online and in combat (#553)

* Prevent deleting of online characters.

* Fixed a spelling mishap, and the characters button not working to return to character select

* Disable the characters button on the escape menu while in combat.

* Upon login, instantly load into characters that have been kept online due to combat timers

* Fix user/player/client attachments when logging back into an account that has remained in game due to comabt

* Update Client.cs

e3ddd60ef3c63c1f5bb0c6bc5d55eaf65d8db563 Feb 18, 2021 2:56 PM

Resolves 517 by making spell cast canceling via movement optional (#557)

Enhancement was unintentionally pulled in while merging changes made to Leafling, allowing it as an option (disabled by default) seems to be the best move forward.

0b381f505cc2c3e5dda1889428f20d7ae0fef2e9 Feb 18, 2021 2:55 PM

Fix control mappings so the same key cannot be mapped for multiple controls (#556)

Also reduces control setting time to 3 seconds before being set to None.. 5 seconds felt way too long.

5edf1f37655e4e457155caecc5381228c0990673 Feb 18, 2021 2:53 PM

Show target out of range errors (if configured) on warp to spells (#554)

* Fix warp to target spells not being validated by range checks upon cast.

* Show target out of range errors (if configured) on warp to spells

a9cafd7c2e509f2c8d46039c7ae41b263837ea1f Feb 9, 2021 5:47 PM

Fix animation rendering so that if improper frame counts are provided it cannot render out of bounds textures when using texture packing.

d018aabb71d550f16daf145ce53dd98141d7dde3 Jan 30, 2021 5:35 AM

Reduce packet sizes by wrapping packets into a class that saves the type as an integer.

Intead of prefixing every packet with a full type name such as the one here:

"Intersect.Network.Packets.Client.AdminActionPacket, Intersect Core, Version=0.7.0.0, Culture=neutral, PublicKeyToken=null"

b30832591becea711011da421043bdf65eb4b833 Jan 30, 2021 5:35 AM

Reduce packet sizes by wrapping packets into a class that saves the type as an integer.

Intead of prefixing every packet with a full type name such as the one here:

"Intersect.Network.Packets.Client.AdminActionPacket, Intersect Core, Version=0.7.0.0, Culture=neutral, PublicKeyToken=null"

9e3c5b026e0153af09efa295cbe51d3387d1231a Jan 26, 2021 8:15 PM

Combat, NPC Logic (Loot Maps!) and Threading Updates

Using more concurrent dictionaries with cached arrays for quicker/threadsafe access.

Stat Calc Fixes

Npc Logic Updates

Disabling Combat Messages

Hotbar Auto Cast if Held Down

8f6de5b84318e19425c7a59a2b509b1a34c0e32c Jan 26, 2021 6:12 PM

Instanced Entity Framework Contexts

- Fixes memory leak where player context would grow forever

- Quicker saving/loading of player and game data

ca04fb61aef0ac3467f001b03960b811c6fae796 Jan 26, 2021 5:33 PM

Client QoL & Performance Updates (#476)

* Lidgren upgrades, error surpression, auto mtu negotiation, and using other transmission modes to reduce flooding of reliable channels.

* Map Items Upgrades (ConcurrentDictionary, Loot from Distance, Remove json from packets)

Also upgraded bags so items can be drug into specific slots.

* Event, Npc, and Options Updates

- Change name event command

- Reset Radius for NPCs

- Movement Static for NPCs (Does not allow any movement ever -- target dummies?)

- Remove Max Stat from Options

* Client QoL & Performance Updates

- Auto Target

- Sticky Target

- GWEN Fix (No infinite tooltip elements)

- Static Entity Box

- UI Updates

-- Entity Box Static

-- Enter to nav through event dialogue

-- Esc to close windows

-- Debug Menu update

-- Etc

ba55d31f2be91639fa49e51251b8777cdda6aa25 Jan 26, 2021 5:25 PM

Event, Npc, and Options Updates (#475)

* Lidgren upgrades, error surpression, auto mtu negotiation, and using other transmission modes to reduce flooding of reliable channels.

* Map Items Upgrades (ConcurrentDictionary, Loot from Distance, Remove json from packets)

Also upgraded bags so items can be drug into specific slots.

* Event, Npc, and Options Updates

- Change name event command

- Reset Radius for NPCs

- Movement Static for NPCs (Does not allow any movement ever -- target dummies?)

- Remove Max Stat from Options

b64a2dd628fd1a76ba6be8acec142fe60a5af107 Jan 26, 2021 5:24 PM

Map Items Upgrades (ConcurrentDictionary, Loot from Distance, Remove json from item update packets) (#474)

* Lidgren upgrades, error surpression, auto mtu negotiation, and using other transmission modes to reduce flooding of reliable channels.

* Map Items Upgrades (ConcurrentDictionary, Loot from Distance, Remove json from packets)

Also upgraded bags so items can be drug into specific slots.

724d208a87bff376614bd3e9ef60f2cc31e5088e Jan 20, 2021 7:26 PM

Merging 6.2 fixes into B7 (#461)

* Don't send cooldown to npcs!

* Bad logic is bad.

* Update Authors.md link to my profile

* Force WorldPos height/width to the Tile Size when no graphic is available

* Force waiting for a server response upon selecting a character.

* Disable the button and re-enable it when no longer waiting for a server response.

* Changes batch 1

* Changes batch 2

* Also disable logout button while waiting for a server response.

* Fix some comment mishaps.

* Do not generate keys on every build

Co-authored-by: Cheshire <azurebeats@hotmail.nl>

Co-authored-by: Robert Lodico <lodico.rj@gmail.com>

902fce69d82ab683956c3db2495a8085adcb00f1 Jan 20, 2021 6:36 PM

Asset compression, encryption and packing changes (#308)

* Add Gzip Compression to Texture Packs.

* Add a basic level of encryption to the compression class.

* Cleaned up some leftover references.

* We should all get more A(ES) in our lives.

I wanted to be rid of the bloody DES warning, and this key is much more fun.

* Add the ability to also encrypt and package up sounds.

* Forgot to include a cache update.

* Add updater support for the new sound packages. Renamed graphics packages to be in line.

* Fix a dumbdumb, add music packing support and some general fixing up

* Comments and a small dispose fix on AssetPacker.

* Make checking for files in an Asset Pack more straightforward, fixed an issue that would stop non-lowercase music to not load from asset packs

* Make asset packing a configurable option with settings in the editor, rather than its own menu option

* Fixing possible case sensitivity issues.

* Fixed a few small issues that were preventing compilation. Stopped creating useless empty directories if packing.

Co-authored-by: JC Snider <jcsnider@users.noreply.github.com>

Co-authored-by: JC Snider <jcsnider3@gmail.com>

b4bb689abf5c113d93bc3238d75d49b716279186 Jan 18, 2021 9:56 PM

Dynamic Map Layers & Extendable Attributes (#379)

* Dynamic Map Layers & Extendable Attributes!

* Custom rendering of the map layer icons based on the dynamic layer config.

* Minor cleanup

* Localize all the config options!

* Localization dictionaries expect the keys to be lowercase it seems.

* Fix error when trying to copy/paste with current layer only enabled

* Resolve double returns

* Interpolation is better than concatenation.

* Use nameof instead of explicit strings for reserved layer names

* It compiles now!

Co-authored-by: Cheshire <azurebeats@hotmail.nl>

3fb876657036bb1744127a39fae0d86534a07760 Jan 3, 2021 1:51 AM

feat: add networking to plugins

Removed JetBrains.Annotations from all core projects

Added plugin networking as needed to projects

- Note: Editor required some changes because of shared interfaces

with the client, but it does not have plugins still

d75e6f7e883b5e7d8f77781b41bb0eb03028ad5f Sep 26, 2020 2:15 AM

Set chat channel depending on tab, remember user set channel for All and System tabs. Fix a potential localization crash should none exist.

a4eae0e7ecb026c268d755e5dc6f13c203ec6465 Dec 20, 2020 6:18 PM

Item/Spell Cooldown Groups + Configurable Global Cooldown (#355)

* Add cooldown groups to items and enable them

* Fixed cooldown display and non-group items going on cooldown.

* I don't even know anymore, just end me.

* Changed Cooldown Groups to work like Item/Resource folders do

* Functionality changes

- Added two configuration options to determine whether cooldowns in a cooldown group should match or not. And which cooldown to use when matched. (highest vs current used item)

- Made it so that items not found in the player's inventory also go on cooldown when in the same cooldown group.

* Fix some minor review issues

* Add Spell Cooldown Groups + Group Sharing for Items/Spells

* Adds a configurable global cooldown to items and spells.

* Documentation

* Add option to ignore Global Cooldown for spells/items. Fix migration oopsies.

* Disable Global Cooldown by default to not change game mechanics upon version upgrades

* Fix editor layout

Co-authored-by: lodicolo <lodico.rj@gmail.com>

0bee67571b30dc0a6508a3c66c2b3fab78fdd749 Dec 20, 2020 12:56 AM

Add ARGB Color options to Entities and Items (#402)

* Proof of Concept

* Database Migration, Entity prep and NPC Editor changes.

* Add ARGB to items, move Color to Entity class for expandability

* Add event command to change player Color

* Fix color display on CharacterWindow and EntityBox

* Changing to use nameof()

Co-authored-by: lodicolo <lodico.rj@gmail.com>

2b27c334b0f3dae4c626368e98308bc0a2082eb9 Dec 20, 2020 12:55 AM

Map item rework, drawing names on mouse over and a loot window. (#385)

* Add basic map item name drawing

* Fix the render order and generalized some code.

* Only show map items we're mousing over.

* Comment that for some reason didn't count towards the last commit.

* Forgot to add these to make it work on multi-map areas.

* Unnecessary loops are bad M'Kay.

* Completely rewrote MapItem handling to be location based.

* Removed a piece of old test code.

* Add a loot window on the client

* Get rid of some copy/pasta leftovers.

* Abbreviate item name quantities and display them a little different.

* Simplify Loot All, finish up loot window.

* Make display of window configurable, as well as the item count.

* Update MapInstance.cs

* Update PacketHandler.cs

* Fix potential NRE and a small logic error

* Fix a crash when trying to render more items than we're allowed.

* Fix potential issue with equipment and bag drops. Consolidate new drops to existing stacks when configured.

Co-authored-by: JC Snider <jcsnider@users.noreply.github.com>

f17324869e956209522929cb55a243a4b5790a03 Dec 20, 2020 12:55 AM

Item event enhancements + Give Experience event enhancement (#384)

* Add Variable support to ChangeItemCommand

* Add Variable support to GiveExperienceCommand

* Add Variable support to Conditionals HasItem and HasFreeInventorySlots

* Fix an order issue with getting Server Variables by data type

7e441bf7e32835d3cc726e82f7a65fa1e50cb2fe Aug 23, 2020 11:43 PM

fix 268: check if ban expired

Realized mutes will have the same issue, and fixed those as well

After a ban/mute is selected by user or IP, it is checked to see if it

is expired. If it has been expired, null is returned and it is removed.

2b8d9c2132e3e24ac671904487a1bdfcd49d1424 Jul 30, 2020 1:11 PM

Plugin fixes

- Removed --plugin-development

- Added copy plugin DLL to named directory to targets (not complete fix)

note: not complete because it won't copy non-redundant dependencies, a real solution requires making assembly loading detect and resolve collisions

- Removed redundant includes from targets

- Updated server targets

- Fixed bug in example plugin keeping discord button on all screens

- Added mismatched Assembly detection to manifest loader