Releases: ethanmoffat/EndlessClient
Releases · ethanmoffat/EndlessClient
EndlessClient 1.0.524
EndlessClient 1.0.522
This is a fixup release to the previous release.
Changes:
- d74a8a9 Add missing 'break' to BotFramework and ConfigureAwait(false) to ScriptedBot async calls.
This list of changes was auto generated.
EndlessClient 1.0.521
Changes:
- 43f80fa Add retries to connect attempts for EOBot (#407)
- 8b2f936 Properly implement CHEST_CLOSE and DOOR_CLOSE packets (#406)
This list of changes was auto generated.
EndlessClient 1.0.507
What's Changed
- fix: make window resizable in dispatch action to satisfy macos by @MrDanOak in #402
- Official support for macOS by @ethanmoffat in #403
Full Changelog: build/1.0.490...build/1.0.507
EndlessClient 1.0.490
What's Changed
- Remove old config options and logger; Rearrange existing config options by @ethanmoffat in #395
- Add SFX for sit when receiving SIT_REPLY or CHAIR_REPLY packet by @ethanmoffat in #396
- Fix BU login crash and GitHub issue generator by @ethanmoffat in #398
- Draw HealthBarRenderer on top of all other map elements by @ethanmoffat in #399
- Resizable display: Ensure help dialog only opens when panel is toggled on by @ethanmoffat in #400
- Draw overlay layer later in grid square instead of last by @ethanmoffat in #401
Full Changelog: build/1.0.475...build/1.0.490
EndlessClient 1.0.475
Changes:
- e5a99d2 Merge pull request #394 from ethanmoffat/release_fixes
- b886fe2 Update XNAControls to v2.3
- 2fa374f Use MouseDown events for click detection instead of MouseClick
- 18854ab Add "Esc to clear" functionality to all text boxes
- 5be4282 Don't stop playing background music unless transitioning from in-game state to initial control set
- 0920a88 Add sound on keyboard shortcut for selecting character
- 14562ac Re-throw task exceptions in more places. Use shared extension method to throw if task is faulted.
- 654be4b Improve diagnostic message for unhandled exceptions
- c598719 Improve exception handling for Login workflow and error reporting when in-game crashes occur
- b1562a3 Update dotnet tools to latest MonoGame version
- bc04b74 Fix save/load of inventory/spell slot maps from config files
What's Changed
- Fixes for v1 release by @ethanmoffat in #394
Full Changelog: build/1.0.472...build/1.0.475
EndlessClient 1.0.472
Changes:
- 1ceb620 Merge pull request #392 from ethanmoffat/render_bugs
- ad19a8f Cleanup in RoofLayerRenderer
- 4495d93 Fix compilation failure due to updated notifier interface
- 20b7dfb Fix fast NPCs sometimes jumping around
- 86625ef BU Support: avoid crash when NPC mouseover pixel is out of texture bounds
- 116c9ac BU Support: Wrap links in QuestDialog text.
- 04958a1 BU Support: handle rebirth
- 3dc4dc7 Render Overlay layer last
- 06aeb9b Render map items as part of normal map entity renderers
- b77e5ce Render roof layer tiles one row later (except for last row)
See More
- b8ee542 Merge pull request #389 from ethanmoffat/feature/guilds
- 26fec8c Merge branch 'master' into feature/guilds
- 5efbdef Update MonoGame to 3.8.2; update all projects to target net8.0 (#391)
- e4dde4b Update to latest version of eolib-dotnet
- 37838c4 Merge branch 'master' into feature/guilds
- 87445f7 Implement quest switcher (#390)
- 104b668 Fix text drawing off the end of text box in TextInputDialog
- fa657e3 Render guild description list item if the description is empty (prior to first request)
- 0f2969d Use appropriate guild rank defaults. Prevents access to guild management menu items when joining a newly created guild.
- c8c6879 Merge branch 'master' into feature/guilds
- efde12a Implement 'Set Member Rank' and 'Update Guild Ranks' functions in GuildDialog (#388)
- 8deaf27 Implement Kick Member; fixup Guild Accept (#386)
- e486caa Implement disband guild (#385)
- f380b5d Implement guild bank deposit logic (#384)
- e073abf Finish guild chat implementation (#383)
- 4d0562f Add allcaps input mode for text input dialogs. Use for guild tag inputs. (#382)
- fec1280 Guild administration menu (#374)
- 206b88f Implement guild not found message (#381)
- 985c8e4 Guild information UI (#371)
- cdffe68 Implement Player Freeze (Walk Open, Walk Close) (#367)
- 3e09fb0 Modify guild description (#366)
- d37ba3e Chat fixes (#358)
- 5866310 Block character login keyboard shortcut when any dialogs are open (#380) [ #360 ]
- a1ade1d fix: correct name notation in CharacterInfoPanel (#379)
- 269ade8 Update eolib-dotnet to rc3 (#378)
- 98b03c2 Add support MFX on Linux (#377)
- 32b10d8 Add Multi-Line Text Support for Rank Descriptions (#369)
- 69a4c14 Cherry-pick: Dotnet format (#368) (#373) [ #362 ]
- de84cb7 Dotnet format (#368)
- 8e92ead Guild reply join request (#364)
- 3d1912e Add management menu (#365)
- 59fcd7b Guild creation request (#363)
- 2e15e5a Show admin hide effect when player hides/unhides (#357)
- 4c289a3 Send WALK_SPEC for ghost walking (#359)
- 29a08f2 Reboot handler (#362)
- efd8591 Make guild npcs interactable and add Guild_Open handler (#356)
- d5f2181 Merge pull request #353 from ethanmoffat/use_sdk
- 714caf6 Update Barber code to use sdk
- 4568927 Merge branch 'master' into use_sdk
- 7c88f02 Implement Barber Dialog and packets (#355)
- 6e06255 Remove sleep time when the game is inactive
- 002e4cc Implement TRADE_ADMIN handler
- 01a00d1 Implement JUKEBOX_REPLY handler
- 55ada61 Remove unused PacketDecoder project
- cca60c2 Fix tests so they pass (post-SDK migration)
- 031f8e9 Fix EOBot so it compiles (post-sdk migration)
- aae5fd0 Fix trade-related handling issues
- 5d1ccc5 Implement LOCKER_SPEC packet handler
- 817e9d2 Fix Jukebox-related handling issues
- f6230fd Fix Item-related handling issues
- a4228c1 Implement missing ITEM_AGREE packet handler
- 5c797bc Fix timed spikes
- 422564e Remove VisibleSpikeTraps from map state repository
- 8bf739f Don't crash if warp leave effect plays on a non-existent character
- bb4e900 Don't crash when sitting if the mouse cursor is out of view
- b81b488 Play death SFX for all characters
- 2698ea5 Change how updated party members are detected
- 3063295 Update chest handlers to use correct packet types
- 8ba3f1a Reduce allocations/generated garbage in renderers
- cd8be8c Remove map entity TryGetValue from hot paths
- bdde184 Fix event handler leaks in character/npc renderers
- a419a60 Fix crash getting next frame in NPCs
- 21181f8 Fix mini map renderer draw coordinates for entities
- 9af7c94 Fix item drop offset
- bb80214 Return to the main menu if the receive loop crashes for any reason.
- 2690dea Don't crash on packets with no type mapping
- 43260b8 Don't show 0 exp gain. Parity with official client.
- 1a425ac Don't attempt to request player ID 0 from the server
- 7287b10 Use read-only collections in ICurrentMapStateProvider for unknown player/npc indexes
- 86e8cb0 Remove crafting ingredients with item ID of 0 in SHOP_OPEN handler
- 6582873 Use correct packet type/base class for LOCKER_REPLY handler
- 46151a7 Additional fixes for hat/hair clipping
- 212c866 Fix transparency/clipping for all hat bitmaps
- 2bc4975 Reset request timer in UnknownEntitiesRequester
- cd845c1 Ensure that currency is always in inventory on login
- bfab277 Fix Merge function for stats and rename to Apply
- 20001a3 Fix UnknownEntitiesRequester clearing out of range actors
- 6cc0eee Update to latest Moffat.EndlessOnline.Sdk
- 7840e9a Remove logging from NetworkClient
- 341cad2 Welcome fixes
- 3b2bbf3 Fix login reply banned message. Fix character delete workflow.
- 920c325 Allow three login attempts before returning to initial state
- 9c593dc Add missing SFX when showing "banned" message
- a78ca84 Implement missing chair/sit packet handlers
- 91e3c9b Fix reversed condition when detecting change in map file RID
- 33b8431 Fix sitting
- 695a0af Don't use Linq to load checksum from map files
- 057b31a Fix crash loading pub files due to uninitialized checksums
- 45b65af 3/3 checkin migrating to eolib-dotnet
- 87a938c 2/3 checkin migrating to eolib-dotnet
- 70d6a08 1/3 checkin migrating to eolib-dotnet
- 83b3fd4 Implemented PVP Visuals for #342 (#346)
- 7722bc2 Resolved: Missing Sound Effect on Gold Drop Warning #319 (#343)
- 7711215 Out of drop range message (#341)
- 2a35a95 Merge pull request #340 from ethanmoffat/reports
- 49b5715 Add missing sfx to dialog sounds; Don't send report if inputs are empty
- e43b4bf Implement player report
- bc35e80 Merge branch 'master' into reports
- b0bc1f9 Implement speak to admin
- e3dbbe6 Merge pull request #339 from AstralSkies/master
- 05445ee...
EndlessClient 1.0.208
Changes:
- dd688e9 Merge pull request #313 from ethanmoffat/beta_bugfix
- fb00c47 Take NPC walking into account when getting map cell state
- 08ce610 Invoke game state change operations that generate lots of new components on the main update thread.
- 3a3935e Improve in-game exception handling. Any thrown exceptions kick the game back to the main menu, reset the display size, and show a "lost connection" dialog.
- 48f7ad9 Merge pull request #312 from ethanmoffat/jukebox
- e78ed4a Fix title bar not resetting after hard-coded timeout
- a8deb83 Implement Jukebox dialog UI
- ba97243 Don't play music if the configuration has music disabled.
- 853d190 Fix packet handling for jukebox packets. Add missing Jukebox_Agree handler.
- 01789a3 Add handling for Jukebox packets
See More
- 56f2144 Skeleton for opening/showing Jukebox
- 13a9322 Change ScrollingListDialogSize -> DialogType with enum values representing which dialog it actually is
- b7f911f Add jukebox resource IDs to EOResourceID enum
- d5befa2 Merge pull request #310 from ethanmoffat/boards
- d77ee12 Add walk action for opening board when you walk into a board tile
- a6ad514 Fixes for network handling of board packets
- 83325cd Implement Board dialog in UI. Add property for detecting if any of a logged in user's characters have admin permissions.
- e277af5 Add packet handling for Board packets
- 2205483 Add request of board and display of board dialog
- 10491f9 Merge pull request #308 from ethanmoffat/fix_map_entity_perf
- d52b77d Fix EOBot build
- 6d7e377 Fix stat display bug where evade and armor were swapped
- 17763ce Fix NPC death animations not rendering
- faff160 NPC index guards in NPCActions
- 6805bc0 Use MapEntityCollectionHashSet for characters/npcs on map
- 46bc241 Update MapItems to use multi-key collection. Fixes rendering performance issues when trying to look up map items by map coordinate
- c29f700 Fix shop dialog only allowing 1 item per buy when BuyLimit is set
- ed65589 Merge pull request #307 from ethanmoffat/fix_animation
- b206ba6 Fix animation timing for emotes
- bc2dba5 Merge pull request #306 from ethanmoffat/timings_and_perf
- 5ef4c76 Remove DateTimeExtensions
- cc228dc Update trainerbot with new timing mechanisms
- 095f51b Make NPC animation timings slightly slower. More accurate to original client.
- 57e1ca7 Fix death animation happening too quickly
- 859365f Update all animation timing to use tick-based approach. Fixes animation timing issues and makes behavior more consistent with vanilla client
- 2ff8af3 Fix timestamp generation on non-windows
- 8e05a27 Implement LRU cache for NPC sprite data. Prevents large number of NPCs from consuming too much memory.
- 232c38b Cache sprite data for NPCs. Reduces garbage generated from detecting the pixel below the mouse cursor.
- 8df81f2 Fix off-by-one error in map item layer renderer
- f3e7235 Update to PELoaderLib v1.6 and use byte memory directly when constructing textures instead of parsing through SixLabors.ImageSharp
- 1aeff07 Load HUD background once instead of in draw loop. Eliminates massive number of garbage collection events.
- 07547bb Reduce lambda usage in entity renderers. Reduces garbage collections
- 1300e6f Reduce allocations of temporary LibraryGraphicPair objects in NativeGraphicsManager
- 7c5cda4 Convert lambdas in MapRenderer to local functions. Reduces allocations that need to be collected by GC
- 5363746 Make animation timings wrok more consistently. Fixes:
- c795ced Merge pull request #304 from ethanmoffat/use_decompiled_algos
- 06f1b48 Consider inserted characters for additional insertions in drunk text algorithm
- ebcb528 Update algorithm for AFK timer to be accurate to EO main
- 920dafa Update algorithm for drunk text to be accurate to EO main
- 133e2c6 Merge pull request #303 from ethanmoffat/bugfixes
- c339317 Update NPC_PLAYER packet handler to work with game server using 'chunked' approach to packet parsing
- 239c61a In fixed window size mode, remove NPCs/characters that are out of range. Fixes display bugs with GameServer/resoserv.
- 323fb25 Fix refresh request packet to work with GameServer
- 0a01c60 Prevent sitting while otherwise acting. Use map warp backoff when a refresh packet is received.
- 885c425 Fix render location of NPC name labels, using NameLabel metadata property for location instead of arbitrary location based on draw area
- 2d7511f Update chat bubble render position to be closer to character's head
- 3dcc3ae Update character name label position when character sits based on sit state
- ff35d27 Exclusive curse filter now properly filters curses from other players
- e47a425 Fix inventory panel item label draw order when inventory panel has layout stored that is > 200
- fc858f5 Feature parity with vanilla client: making space for inventory items that aren't displayed causes them to appear
- 4dd21ea Center trade dialog when beginning trade. Cancel offer agreement when other party changes offer.
- 0a96d42 Fix startup crash when no pub files are present
- f447949 Fix emote display when sitting
- 4414a6b Fix files always redownloading when switching from a server using split pubs to single pub
- c6b92d1 Don't show health bar when characters use mana potions
- b991303 Merge pull request #298 from ethanmoffat/resizable_display_3
- 1126967 Fix HairClip shader on linux
- 816c8d0 Remove unused stuff
- e04c1e2 Remove todo comment from BaseMapEntityRenderer
- 56d7a3b Shorten map transition time. Reduces length of perf hit for large maps.
- e621a0c Fix render position of context menus for resizable display
- 1f091bc Don't reset dialog height for in-game dialogs when window is resizable
- 18e9bb9 Fix display positioning for other characters when resizing window
- 6475bb7 Fix render position of other characters
- 1df8623 Fix online list panel online player count label position
- 79cfa3b Keep panels from resetting position when window is resized
- abd8f85 Render minimap to render target instead of drawing static objects each draw loop. Improves rendering performance and eliminates frame drops when minimap is enabled
- 0a48caf Store window size and panel draw order in layout config
- 2992431 Fix clicking NPCs that don't have a sprite with visible pixels
- deac6f3 Fix integer overflow errors for values that can get very large
- 0ad9e22 Prioritize map item pickup when clicking on the map. Allow map item click to happen concurrently with clicking other stuff.
- f98bb3a Add persistence for panel state in resizable mode
- 90de46a Fix draw order of inventory item labels in resizable mode
- 687baa9 Ensure panels have no drag+drop functionality if not in resizable mode
- 7d149c4 Removing the InGameWidth and InGameHeight config options now sets resizable mode off
- 212c418 Clicking a panel now brings it to the top
- bbe8760 Fix interaction with friend/ignore button
- 88f899f Update readme with info on resizable mode
- 207f0c3 Add alt+{num} keyboard shortcut to show/hide panels
- 98ed718 Merge branch 'master' into res...
EndlessClient 0.10.072
Changes:
- 25c7322 Update pipeline to run CI/scheduled build on release branches
- f96751d Merge pull request #245 from ethanmoffat/eobot_talk
- b8e51ee Fix argument parsing forcing all passwords to lowercase
- 771b684 Add method for chatting in EOBot
- a46a1ff Merge pull request #244 from ethanmoffat/hotfix
- d444a65 Update host arg to be separate host/port. Remove IPEndpoint usage that didn't work with DNS hostnames.
- f2db780 Reset player state to be not in game when leaving PlayingTheGame state.
- c8223d4 Merge pull request #229 from miou-gh/fix-inventory-drag-item
- 3c7d3c9 Merge branch 'master' into fix-inventory-drag-item
- b21ab37 Merge pull request #227 from miou-gh/minor-alignment-fixes
See More
- c3165df Merge branch 'master' into minor-alignment-fixes
- b2ca533 Merge branch 'master' into fix-inventory-drag-item
- c619c08 InventoryItemPanel refactoring
- 8bcb448 Merge pull request #228 from miou-gh/fix-error-dialog
- a1b59c9 Fix dragged inventory item from being rendered prematurely
- 0d9c855 Show proper error dialog when unable to connect
- dea5baa Fix wrapping of EOMessageBox message label
- ac06227 Fix alignment of EOMessageBox caption
- 50c6544 Fix parsing of host command line argument
- b2b661f Use accurate offsets for InitialControlSet positions
This list of changes was auto generated.
EndlessClient 0.10.058
Changes:
- 86880ba Merge pull request #224 from ethanmoffat/release_bugfixes
- 4d8e64c Update XNAControls to latest version. Set MaxWidth on chat text box so long message don't extend beyoned the edge of the UI
- 227bb8d Fix frame update timing for release builds (limit to 60 updates/second)
- c4d244c Fix map edge rendering in MiniMapRenderer. Fix interaction with Unknown tile specs in MiniMapRenderer and WalkValidationActions.
- 0d30778 Update input handling to back off when completing a warp. Fixes some issues where warping causes the character to jump about weirdly
- c12bd67 Handle dialog open packets that were not initiated client-side
- 5433ead Ensure map renderer does not render the same map coordinate twice. This is a hack since I CBA to figure out why the diagonal rendering loops overlap.
- bdb8ce4 Fix bug in data encoder where MSB of 128 and 0 value bytes was erroneously being flipped
- 6676c84 Increase render distance for Overlay layer. Fixes large overlay tiles popping in
- 478be4e Revert "Render NPCs a little earlier on the map (one row/col higher). Fixes render order bug with NPCs and down-facing walls."
See More
- 3f2b1a3 Fix bug in default panel display
- d968292 Fix mouseover check for irregularly sized NPC texture sets. Fixes bug where mouseover would cause crash when standing frame was sized differently than different direction frames.
- 663e50a Make sure chat panel is set as the default panel if there is no news text
- 41311c8 Ensure empty news text does not show an empty message with the string "Server" if there is no news header
- 3d932d8 Fix email regex for account creation to accept all 2-letter domains. Ensure email validation ignores capitalized characters.
- 7b603e6 Render NPCs a little earlier on the map (one row/col higher). Fixes render order bug with NPCs and down-facing walls.
- 34a159a Ensure walking NPCs are rendered as part of the correct row/col
- 457634c Fix bug where replaying a walk after turning when you would have hit a wall caused the replay to fail and the character to stop. Also simplifies the replay walk code.
- b22aada Jump tiles play SFX when clicking to walk
- ebc8f06 Fix bug where idling at initial screen for a while and then logging in immediately does an afk emote
- f80b3b0 Update README
- 59b71f4 Fix replaying a walk into walls/NPCs bumping the character back
- 42eee0a Extract UnwalkableTileActionsHandler from ArrowKeyController
- 2194fa2 Calculate Top/Bottom pixel of NPCs correctly. Add check for visible pixel to click/hover behavior
- 6428220 Split MESSAGE_ACCEPT single string messages at 68 spaces.
- 255afc1 Make clicking an object after clicking to walk cancel the walk path
- d0db16d Unset selected spell when clicking on a non-target. Make map sign dialogs modal.
- bf737a2 Add door validation for click to open and fix character taking a step when clicking an unwalkable tile.
- 3dcda22 Support clicking to open doors
- 02bb182 Update detection for stacked characters to consider character draw area rather than mouse cursor's cell state
- c47e2d6 Use ConcurrentDictionary in NativeGraphicsManager instead of locking around regular dictionary
- 78f3046 Merge pull request #217 from ethanmoffat/delete_old_code
- 75268bf Remove old code
- d5edeb6 Merge pull request #215 from ethanmoffat/trade
- dc5e49f Remove erroneously added System.Windows.Documents using statement
- 78a2a54 Ensure trade offer updates read the break bytes. Ensure weight never goes below zero after trade completes.
- 23158cc Ensure trade agree is setting agreement for the correct player
- 15e1514 Remove TradeSessionID (this is probably not what the mystery byte is for)
- 363b619 Ensure equality of InventoryItem/TradeOffer is properly defined
- f1c2cd9 Fix various minor display bugs in TradeDialog
- a461571 Wire up trade actions to context menu. Finish implementing trade dialog actions.
- a4524c2 Support drag+drop to add item to trade offer
- fdd97b2 Implement InventorySpaceValidator.ItemsFit
- c0d1145 First-pass implementation of trade dialog.
- 716f636 Update inventory drag+drop to work with bank deposit
- cc295d6 Update base dialog to store a NativeGraphicsManager. Allows trade dialog to hold ListDialogItems
- 64e1ba7 Add check for NPC renderer existence before attempting to show damage counter
- aaa474b Merge branch 'master' into trade
- 7ec1d32 Merge pull request #213 from ethanmoffat/bu_support
- 7ee51e8 Update NativeGraphicsLoaderTest with new expected culture value (default=-1)
- 24b2be0 Add missing methods to interface implementations in EOBot
- 967f279 Ensure renderers are disposed properly. Fixes issues when changing to initial state where chat bubbles and entity name labels would persist
- c4c756c Update mouse cursor renderer to control which character renderers show their name label
- 2881351 Fix level up emote not displaying while attacking/casting
- 6a4a127 Fix bug where other players would not finish casting a spell targeted at NPCs
- 5c0603d Fix showing speech bubble during global chat
- 6be6256 Show "The NPC dropped" message when NPCs drop an item
- ebf5dcc Ensure ground layer draws as part of update loop.
- 3f54196 Fix weapon sounds not playing when multiple weapons in a pub file have the same graphic
- a33c682 Ensure boss NPCs can still be attacked when under siege
- 43c9729 Fix map item text label rendering when the same item is in adjacent tiles
- 1a42a74 Play NPC attack sound
- a15932c Update cached scroll offset for inactive tabs when updating chat text. Fixes bug where inactive tabs wouldn't scroll to the bottom on new chat.
- 482bc66 Implement MESSAGE_ACCEPT handler. Allows for more player commands to work on BU
- 4f9842d Play effect potion sounds when using a nonstandard effect ID
- 8101f4a Add missing return for known potion effects
- a44e8ac Use default implementation for effect potions when values are out of range. Fixes crash on BU for missing effects.
- 6f59e43 Ensure opened doors do not play a sound effect twice.
- 405ed3a Update WallLayerRenderer to use constant offset instead of width-based offset. Fixes render issues with irregularly sized BU graphics.
- 8c7c6c3 Make effects that play via effect packet look slightly more accurate
- 84f6b94 Remove --clonecompat flag in favor of loading first culture in the list as a default when loading GFX
- aa0f957 Reduce timeout for NPC actions. Fixes NPC graphic glitches when moving fast.
- 4f9286e Ensure animated ground tiles have at least 2 full frames before animating them. Fixes rendering issue on slightly oversized ground tiles (e.g. 66x33)
- ea19e68 Update map renderer to render diagonally.
- 17b1a11 Fix version label placement on first screen to support BU gfx
- 03d5ac7 NPC chat bubbles no longer persist between maps or when NPC is out of view.
- 0b7730d Update UnwalkableTileActions to return a list of actions.
- 4acf7af Fix wall layer rendering for fancy chests/lockers
- 0c4272c Fix quest dialog crash when requesting NPC id is missing
- c9bb922 Implement EFFECT_AGREE handler for rendering an effect at given coordinates
- 4be483c Remove crash conditions for unrecognized tile specs. Allows for custom tilespec support (fishing/mining)
- e82157a Update to latest PELoaderLib.
- 414b2ea Paramete...