mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2024-09-10 13:34:36 -04:00
- 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>
14 lines
660 B
Go
14 lines
660 B
Go
package d2hero
|
|
|
|
import "github.com/OpenDiablo2/OpenDiablo2/d2core/d2asset"
|
|
|
|
// HydrateSkills will load the SkillRecord & SkillDescriptionRecord from the asset manager, using the skill ID.
|
|
// This is done to avoid serializing the whole record data of HeroSkill to a game save or network packets.
|
|
// We cant do this while unmarshalling because there is no reference to the asset manager.
|
|
func HydrateSkills(skills map[int]*HeroSkill, asset *d2asset.AssetManager) {
|
|
for skillID, skill := range skills {
|
|
skill.SkillRecord = asset.Records.Skill.Details[skillID]
|
|
skill.SkillDescriptionRecord = asset.Records.Skill.Descriptions[skill.SkillRecord.Skilldesc]
|
|
}
|
|
}
|