Releases: ethanmoffat/EndlessClient
Releases · ethanmoffat/EndlessClient
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...
EndlessClient 0.9.011
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
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
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...