* Implement ServerFullPacket including server side handling and a place holder client side.
* Making suggested edits to move to an empty packet
Co-authored-by: Stephen Horan <steve.horan@theatsgroup.com>
* Return errors for #790
* Fixing lint issues
* Returning nil instead of empty struct pointer
* Removed new hero stat calls as new player requires stats to be passed in. These were using defaults regardless of the save file.
* Removed override on the default to health/mana/experience. These should now result is proper values.
* Removed new hero stat calls as new player requires stats to be passed in. These were using defaults regardless of the save file.
* Removed override on the default to health/mana/experience. These should now result is proper values.
* saving of player should be done on the server. That's also where the loading happens.
* refactor nearly everything, but this time it looks not that bad...
* MAke Linter happy
* Typo... uuups
* d2player/skilltree: Add label for skillpoints
this also darkens the skillicon if no skillpoint was invested yet.
* d2player/gamecontrols: learnskills <class> should only learn class
specific skills
the character would learn skills of enemies as well, like DiabWall. I
wasn't expecting the command to do that.
* My brain hurts, here is a broken dedicated server
* somewhat stablised the server
* Made it less shouty, and added channel
* Split the DS functionallity from the main.go file
* Split the DS functionallity from the main.go file, and remembered to add the server file
* My brain hurts, here is a broken dedicated server
* somewhat stablised the server
* Made it less shouty, and added channel
* Split the DS functionallity from the main.go file
* Split the DS functionallity from the main.go file, and remembered to add the server file
* Added Stable Dedicated Server Functionallity
Co-authored-by: gravestench <dknuth0101@gmail.com>
* d2ui: Add tooltip class
we reimplemented tooltips in several places
(inventory/skill_select_panel). Let's make it its own ui element.
* d2player: Refactor skill_select_panel to use the tooltip class
* d2player: Refactor inventory to use the tooltip class
* Make linter happy
* Make golangci-lint 1.27.0 happy as well
* tooltip: Remove const and rather disable linter
* d2records/: suppressing function legnth lint errors for record loaders
* d2gamescreen/character_select.go: broke up OnLoad method to reduce complexity
* d2ui/button.go: suppressing funlen lint error, can't reduce function size
* d2player/inventory.go: fixed gocyclo error, broke up render method to smaller methods
* d2client/game_client.go: suppressing gocyclo error for OnPacketReceived, doesnt make sense to split
* d2remoteclient/remote_client_connection.go: suppressing gocyclo error for decodeToPacket, doesnt make sense to split
* d2dcc/dcc_direction.go: suppressing gocyclo error in generateFrames
* suppressing the magic number lint errors in mapgen, it will get a heavy refactor soon, hopefully...
* adding string token constants for SkillClass
* adding panic on error to left/right skill select render
* fixed cuddle lint error
* fixed unnecessary conversion, unused func param lint errors in dcc_animation.go
* adding comment for skill class tokens
* fixed typo in comment
* removed unused parameter in dcc/dc6 animations
* supress warning about Object.setMode always being passed direction value of 0
* fixed all invalid golint directives
* fixed a couple gocritic lint errors
* removed dupl lint errors in d2compression/huffman.go
* remove duplicate code for set/unique item properties
This is a more involved edit. I've added a `PropertyDescriptor`
which is a common struct that should have existed already. The
`PropertyDescriptor` is used to generate property instances, and is common
to item affixes, set items, sets, unique items, and runewords.
This was all to remove duplicate code in d2item/
* removed duplicate code for rare item affixes
* removed the rest of the magic number errors from d2game
* hotfix for bug i added in map engine test
* removed all TODO's in project, made issues on github for each one
* d2player/panels: Add close button to hero/inventory/skilltree panel
we require a OnClose callback here, as we need to update the perspective
of the view which is handled by gamecontrols.updateLayout().
* d2player/skilltree: Fix using the same tab label for all tabs
* d2player/game_controls: Fix wrong position of left/right menu
the character would not detect that a click was in a menu and start
walking.
* removed the rest of the magic number errors from d2game
* hotfix for bug i added in map engine test
* removed TODO's from d2mapengine/engine.go, added link to github issue
* removed TODO's and made issues and other minor lint work
* lint cleanup, mostly removing TODO's and putting links to their issues on github
* d2game/d2player/inventory.go: magic number lint cleanup
* d2game/d2player/mini_panel.go: magic number lint cleanup
* d2game/d2player/skill_select_panel.go: lint cleanup
* d2game/d2player/skilltree.go: removed all lint errors
* removed the rest of the magic number errors from d2game
* hotfix for bug i added in map engine test
* all magic numbers removed (excluding mapgen)
* minor refactor of hero_stats_panel to clean up lint errors
* minor edit to skill_select_panel.go
* major refactor of d2game/d2player/game_controls.go, removed most lint errors.
- Clicking the active left/right skill now opens a skill select panel.
Only the available skills for the hero, which are valid for the panel type are shown.
Clicking on a skill from the skill select panel makes it the new active skill for the hero.
- Hovering a skill in the skill select panel shows the skill name +
skill description.
- New command which learns all skills for a specific
class(not persisted to a save file yet) - e.g. `learnskills ama` will learn
skills for the Amazon class.
- Initialize HeroSkill.shallowHeroSkill struct in the hero state factory, so we can use it
when we serialize the HeroSkill to packets/game save files.
- The parsed Skill.ListRow is now a number instead of string.
Co-authored-by: Presiyan Ivanov <presiyan-ivanov@users.noreply.github.com>