Skip to content

Releases: ethanmoffat/EndlessClient

EndlessClient 1.0.507

16 Nov 06:19
0f8a279
Compare
Choose a tag to compare

What's Changed

Full Changelog: build/1.0.490...build/1.0.507

EndlessClient 1.0.490

07 Nov 16:27
8dd3bd2
Compare
Choose a tag to compare
EndlessClient 1.0.490 Pre-release
Pre-release

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

04 Nov 22:25
e5a99d2
Compare
Choose a tag to compare
EndlessClient 1.0.475 Pre-release
Pre-release

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

Full Changelog: build/1.0.472...build/1.0.475

EndlessClient 1.0.472

30 Oct 18:43
1ceb620
Compare
Choose a tag to compare
EndlessClient 1.0.472 Pre-release
Pre-release

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...
Read more

EndlessClient 1.0.208

20 May 08:46
dd688e9
Compare
Choose a tag to compare
EndlessClient 1.0.208 Pre-release
Pre-release

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...
Read more

EndlessClient 0.10.072

19 Nov 01:19
Compare
Choose a tag to compare

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

20 Sep 18:50
86880ba
Compare
Choose a tag to compare

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...
Read more

EndlessClient 0.9.011

27 Apr 15:00
0f2b155
Compare
Choose a tag to compare

Changes:

  • 0f2b155 Merge pull request #188 from ethanmoffat/bard
  • 1335b1c Separate Emote from Attack in CharacterAnimator
  • 512ed1a Ensure CharacterRenderer is not updating textures every single frame
  • aafaa13 Add support for bard music. Player can click to play harp/guitar notes, and notes played by other players will be played.
  • bfb045f Rate limit bard dialog input based on update tick
  • bea0e27 Update instrument attacks to render as ranged weapons instead of melee weapons
  • 3b8b042 Show bard dialog when using the bard spell
  • fc5b486 Add SfxPlayer and loading of SFX files in content provider
  • e13bb5a Merge pull request #185 from ethanmoffat/skillmaster_dialog
  • a8989cb Finish implementing skillmaster dialog
See More
  • ea276ef Packet handling and domain changes for forgetting skill and resetting stats
  • 3a6ff4c Actually show dialog for confirming learning of skill
  • fbe9366 Implement skill learning and packet handling for skill learn error
  • e29ec80 First pass re-implementation of skillmaster dialog (initial state)
  • fbcdbc2 Domain model and packet handling for skillmaster dialogs
  • d12b7a1 Remove GameStateProvider as dependency of TextInputDialog
  • 55b90c2 Fix windows-only code warnings in ReleaseGameRunner
  • 7ca095a Remove unused old ItemTransferDialog
  • 4700b28 Merge pull request #183 from ethanmoffat/spell_casting
  • 6fd8fd0 Fix mouseover for spell panel items while scrolling in panel
  • 18840b8 Fix moving spell while scrolling in panel (no longer hides dragging icon)
  • 914b138 Ensure spell inventory uses preferred slot from config file if it exists
  • d9f835b Reduce character SP when attaccking or casting spells
  • aab32ba Throw if the Packet Handler component is ever removed from the game's components
  • e57aadb Ensure spell cast shout stops when appropriate
  • b48ed13 Make spell cast frame render for slightly longer
  • 59d635b Fix rearranging of spell icons in active spells panel (drag+drop)
  • 094eac5 Fix casting of self target spells and anything bound to F8
  • a5bc32d Check TP/SP requirements before casting a spell
  • ae959e8 Add handling for PK spells
  • 7e2809e Ensure invalid spell targets do not attempt a spell cast
  • 7f45d64 Don't prepare the spell for group target if not in a group. Immediately cast group target spell.
  • 47faba6 Target others with spells
  • 8272314 Fix spell targeting to use NPC index instead of ID
  • 07b9f5e Implement casting for self-cast spells
  • 7550935 Ensure newly added spells don't render rows beyond scroll limit when first logging in to the game
  • bc7aa0b Refactor how spell selection is handled. Use a repository to track which spell is in which slot, which spell is selected, and if the spell is prepared for casting.
  • 7aad651 Merge pull request #182 from ethanmoffat/active_spells
  • 4792118 Implement handler for StatskillTake for learning skills
  • bbe6283 Update selection logic and label/level up property changes for active spells
  • 40bcd01 Packet handling for training a spell
  • d951cb9 Remove old spell icon/panel code
  • e9bd17b Interaction with active spells (except for leveling up)
  • e06e750 Initial display of spell icons in active spells panel
  • 8141961 Move Spell Icon stuff to Old namespace. Prep for rewrite
  • 6f6a54f Fix main character render position when logging in to a sitting character
  • 6e8b354 Update version to 0.9

This list of changes was auto generated.

EndlessClient 0.8.017

11 Apr 00:38
56d71d3
Compare
Choose a tag to compare

Changes:

  • 56d71d3 Merge pull request #179 from ethanmoffat/clickable_map_entities
  • 749a333 Clicking adjacent square no longer walks two squares
  • a3e4d9f Show NPC name in status bar when clicking the NPC
  • 3e0b86e Use Single() in place of erroneous accessor for dialog titles
  • 4fb9f5c Prevent clicks on map NPCs behind context menu items from triggering both context menu and NPC click handler
  • 43de64b Ensure E/Q buttons for HUD use transparent background
  • 8ed1699 Don't reset quest NPC. Fixes title bug where quest shows multiple dialogs
  • 0d3ff9c Ensure clicks don't trigger multiple handlers
  • 0afed66 Ensure clicking a sign does not invoke the MouseCursorRenderer click handler
  • b0e6f14 Add check for clicks based on the bounds of the graphic associated with a map sign
See More
  • 6c05472 Merge pull request #178 from ethanmoffat/bank
  • 8975081 Implement bank account dialog with Withdraw/Deposit/Upgrade actions
  • 96c2cce Packets for bank account open, deposit, withdraw and locker storage upgrade
  • 45b097f Merge pull request #176 from ethanmoffat/locker
  • 04d42e6 Prevent interaction with map stuff when clicking in an open dialog
  • 63b4416 Show/interact with locker dialog
  • 14503ab Move packet handlers for shop out of Interact namespace
  • 9d694e0 Packet structure for locker family of packets
  • e91e102 Extract ChestActions out of MapActions
  • a707282 Merge pull request #175 from ethanmoffat/fix_chest_key_check
  • 36ce0af Make clicking a chest validate keys. Re-use validation code from walking into a chest. Ensure key name is displayed properly.
  • 808a435 Merge pull request #174 from ethanmoffat/chest_dialog
  • 85a0de2 Support add/remove/update of chest
  • de86fa5 Show chest dialog and load initial items
  • c7cdebe Handle packet for opening chest
  • 188b9c0 Refactor UnwalkableTileActions to not send packets directly. Move sending of packets for door/chair into appropriate domain model actions classes.
  • 291e930 Update MapCellState to hold optinal chest key instead of chest object
  • b7f95ee Merge pull request #173 from ethanmoffat/quest_history_progress
  • 750ba3e Add Session EXP dialog
  • 5baee0d Implement display of quest progress/status
  • bf61e2d Add more sizes to ScrollingListDialog (preparation for quest history/progress).
  • 02583ae Render shadows from slightly farther away. Prevents large shadows from suddenly popping in
  • 60e69f5 Fix bug where quest NPC dialog caused a crash because the requested NPC was never set
  • 4037a11 Migrate quest history/progress packet handling to new paradigm
  • 5e344b6 Merge pull request #170 from ethanmoffat/quest_dlg
  • 7924191 Disable click to walk when target cell has a character or npc
  • 927c60d Don't show empty dialogs if there is no response from the server when interacting with an NPC
  • 64511fa Fix click handler for non-hyperlink ListDialogItem
  • e3e0be0 Fix formatting for status label text when earning EXP
  • 096db72 Ensure status label shows message when doing stuff in a quest
  • a8b8a81 Fix quest item change handlers to update inventory correctly when items are added/removed via quest
  • ca9599e Reimplement quest dialog
  • dc51324 Fix ListDialogItem click causing hyperlinks to be clicked twice
  • 722530a Update ScrollingListDialog to support more buttons/sizes. Preparation for supporting smaller scrolling list dialog size.
  • 6397611 Implement network actions for opening quest dialog and responding
  • ca9611f Reimplement Message_Open handler for setting status label from quest
  • 574fb4f Merge pull request #169 from ethanmoffat/shop
  • 97a6e1f Fix logic for picking stuff up
  • 8ff8ad0 Allow drop/junk from inventory if a dialog is open
  • bbd72f1 Add logic for crafting items from shops
  • 89f6d9a Make sure stale shop data isn't shown when opening new shop after previous shop has been opened
  • 5f4eda4 Don't show craft icon if there is nothing to craft in the shop
  • d434e89 Add logic for buy/sell of items from shops
  • 55e231b Update 8.75pt font to be 9pt. Makes text look a little nicer and less blurry.
  • 4bf92a6 First pass of opening/rendering shop dialog. Todo: action for buy/sell/trade items
  • 499c27d Make ShopCraftHandler constructor public
  • 6aa0ff2 Migrate shop packet family to new handlers/actions
  • 8820813 Add packets for requesting shop and handling data about shop
  • 6eddceb Extract paperdoll request into PaperdollActions in new EOLib.Domain.Interact namespace
  • 78bcdcf Update version to 0.8

This list of changes was auto generated.

EndlessClient 0.7.051

01 Apr 23:13
781de8e
Compare
Choose a tag to compare

Changes:

  • 781de8e Merge pull request #167 from ethanmoffat/paperdoll_drag
  • 2162c7d Drag to/from inventory panel to equip/unequip. Follows semantics of original client.
  • 86a0cf9 Implement drag to paperdoll to equip
  • 14188b3 Ensure Paperdoll is not click/dragged when an inventory item is dragged over it
  • 769fa69 Update credit in ChatProcessor
  • a452c4f Ensure dialogs do not stay open when switching away from PlayingTheGame game state
  • ba0b8da Merge pull request #166 from ethanmoffat/emotes
  • 80f6272 Extract drunk/afk emote logic from CharacterAnimator into separate PeriodicEmoteHandler hud control
  • dba8410 Add periodic emote for AFK players
  • a66f9cc Use newly added pub record property for drunk time to set timeout for how long a character stays drunk
See More
  • 1279f47 Test exp reward item type
  • ac42e7c Implement drunk action from using beer types items. Implement drunk text transformation
  • 32d71e5 Show warning when trying to attack with ranged weapon and arrows aren't equipped
  • 0e9e7e1 Fix ranged attack skin rendering on female characters
  • 4601f70 Handle level up emote. Ensure emote plays unconditionally when Recover_Reply is received (with updated level) to emulate original client behavior.
  • 2bcf1ce Implement emotes from client side (face/emote renderer already existed). Remove old emote related code.
  • 2b81c32 Merge pull request #162 from ethanmoffat/139_item_actions
  • 4023c43 Reduce number of inventory items updated to only items with changed amounts
  • 97dfc6c Extract validator services out of InventoryController for drop/equip of items
  • 83727d7 Fix bug where used slots weren't cleared between logins
  • 015b7db Show karma string on stats panel
  • 6f7c952 Implement RecoverReply handler
  • 232cfb1 Test and implement all usable items except beer / exp reward
  • 9ce93e4 Fix PaperdollDialog crash for unset class ID
  • 07d5019 Implement UseItem client action and quest item handlers. Remove old item related network code
  • 1c51aed Implement item junk from inventory
  • 3f6ee12 Implement item drop. Drop supported via drag to map renderer or drop item button.
  • 6cebd7b Add ItemTransferDialog and factory
  • 307fa01 Move equip/unequip to ItemActions. Create InventoryController to reduce scope of InventoryPanel. Method inject InventoryPanel into PaperdollDialogFactory to prevent cyclical dependency via constructor injection.
  • e3ba04a Move UseItem to ItemActions
  • e671401 Set JailMap during login
  • 4491547 Create ItemActions. Move JunkItem from MapActions to ItemActions.
  • 06e6c29 Merge pull request #158 from ethanmoffat/inventory
  • 852ffeb Merge branch 'master' into inventory
  • 8459c42 Fix update of inventory panel weight label
  • ca5dc9d Fix online list packet translator for new InitReply enum values
  • 2ba0c86 Fix inventory save routine to ini file so that it doesn't persist old slot data for a character
  • 1d70706 Rename changed PlayerID property -> SessionID
  • a4b3c85 Merge pull request #156 from sorokya/mapinfo-packets
  • 0e81e93 allow NPCs to still appear while connected to EOSERV/ETHEOS
  • db82164 only clear unknowns if the packet was sent successfully
  • f909bb2 return true instead of false when adding unknowns
  • a4f5f93 remove default constructor from NPCFromPacketFactory
  • 3e5279d Make MapWarpState readonly for provider
  • 0532a5e remove blank lines
  • 4b0758b Add UnknownEntitiesRequester to game
  • b2d72c5 Store unknown Players/NPC in MapState repository
  • 278c31f Request map info for new characters/npcs in the walk reply
  • 2803ca9 Create NPCFromPacketFactory
  • 31cc6d9 Read ClassID in CharacterFromPacketFactory
  • 0ba65eb Rename AutoRefresh to CharacterMapInfo
  • f74780a Merge branch 'master' into inventory
  • 2d113e7 Remove stale inventory-related code
  • b47c2db Implement InventorySpaceValidator
  • 622ce06 Extract repository for inventory slots
  • b7e3540 Extract ItemNameColorService for getting colors for item name labels in inventory/map
  • 5d01f6e Fix render order of inventory item name labels. Fix display of inventory item background outside the bounds of the inventory grid.
  • e5b6c1b First-pass implementation of drag+drop in inventory
  • fa9898d Add Save to IniReader
  • dfe4ec6 Merge pull request #152 from sorokya/select-character-with-keyboard
  • 36ca945 Merge branch 'master' into select-character-with-keyboard
  • f8a2ad0 Merge pull request #150 from sorokya/update-session-id-logic
  • e727b88 Switch to IsKeyPressedOnce
  • cc56416 Do character login by pressing number for character
  • 08a9b2b Overwrite character id with player id when logging in
  • 23b4e49 rename playerID->sessionID
  • 13011a3 remove extra async/await when requesting files from server
  • c7cabc7 remove AddShort overload
  • 546fe80 re-add warp specific map requester
  • 3c7929d Drop sessionID from player info repository
  • 763a76c create overload for AddShort that accepts ushort
  • c7fe494 Update Packet test fixture to use byte for InitReply rather than char
  • 2a700df remove un-needed cast
  • ba4226d implement session id for login actions, warping, and file request service
  • 16b6953 Swapped ClientID to PlayerID
  • e792aff Merge branch 'master' into inventory
  • 8701325 Handle item equip from inventory via double-click
  • bacb8b2 Set paperdoll info for main player on login
  • 02c0245 Remove unused dependencies from LoginActions
  • 4a54404 Remove unused paperdoll repository from LoginActions
  • 4eb4cd0 Merge pull request #153 from sorokya/reset-chat-on-login
  • 8792597 Add TODO commend
  • 483023c Clear all chats unconditionally
  • d2b2961 Clear chat on login
  • 7336c97 Display of items in inventory panel
  • 04d7450 Implement inventory panel skeleton. No inventory items are rendered yet.
  • 5fa705f Merge pull request #123 from ethanmoffat/fix_perf_pregame
  • 8a7a7f3 Update readme/contributing
  • 5343f80 Fix mouse cursor not showing properly on NPC wall tilespecs
  • 44420e8 Direct copy pixel memory from image instead of saving to memory stream
  • 5ee2f46 Load empty character info panels are part of content loading. Reduces delay when switching to LoggedIn game state
  • 4c822df Abstract content manager away from consuming classes
  • 8cbdc19 Merge pull request #122 from ethanmoffat/paperdoll
  • f2bb8a6 Add support for equip/unequip item packets and responses. Unequip items from paperdoll when right-clicked in the dialog.
  • d93c57c Move right-click detection to character renderer. Makes it easier to get a right-click action
  • cf4c2c3 Make PaperdollData into a dictionary keyed on EquipLocation
  • cf4d279 Add context menu renderer. Implement paperdoll, PM, friend, and ignore actions for context menus.
  • 1adb207 Clean up old PaperdollDialogItem controls when updating paperdoll data
  • 97eb1e9 Show paperdoll equipment icons
  • fde266c...
Read more