From a1243dd7bae48ab10bbb6f78a8ca8a54cd7e2d25 Mon Sep 17 00:00:00 2001 From: sven-n Date: Tue, 29 Aug 2023 17:15:36 +0200 Subject: [PATCH] Fixed master skills in skill list --- src/GameLogic/SkillList.cs | 10 +++++++++- .../RemoteView/Character/SkillListViewPlugIn.cs | 1 + src/SharedAssemblyInfo.cs | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/GameLogic/SkillList.cs b/src/GameLogic/SkillList.cs index ace2b967c..093ea1c62 100644 --- a/src/GameLogic/SkillList.cs +++ b/src/GameLogic/SkillList.cs @@ -87,6 +87,11 @@ public async ValueTask AddLearnedSkillAsync(Skill skill) skillEntry.Skill = skill; skillEntry.Level = 0; await this.AddLearnedSkillAsync(skillEntry).ConfigureAwait(false); + + if (skill.MasterDefinition?.ReplacedSkill is { } replacedSkill) + { + await this._player.InvokeViewPlugInAsync(p => p.RemoveSkillAsync(replacedSkill)).ConfigureAwait(false); + } } /// @@ -137,11 +142,14 @@ private async ValueTask AddLearnedSkillAsync(SkillEntry skill) this._availableSkills.Add(skill.Skill!.Number.ToUnsigned(), skill); this._learnedSkills.Add(skill); - await this._player.InvokeViewPlugInAsync(p => p.AddSkillAsync(skill.Skill)).ConfigureAwait(false); if (skill.Skill.SkillType == SkillType.PassiveBoost) { this.CreatePowerUpForPassiveSkill(skill); } + else + { + await this._player.InvokeViewPlugInAsync(p => p.AddSkillAsync(skill.Skill)).ConfigureAwait(false); + } } private void CreatePowerUpForPassiveSkill(SkillEntry skillEntry) diff --git a/src/GameServer/RemoteView/Character/SkillListViewPlugIn.cs b/src/GameServer/RemoteView/Character/SkillListViewPlugIn.cs index 1edf872dd..713ac699f 100644 --- a/src/GameServer/RemoteView/Character/SkillListViewPlugIn.cs +++ b/src/GameServer/RemoteView/Character/SkillListViewPlugIn.cs @@ -138,6 +138,7 @@ protected void BuildSkillList() { var replacedSkills = skills.Select(entry => entry.Skill?.MasterDefinition?.ReplacedSkill).Where(skill => skill != null); skills.RemoveAll(s => replacedSkills.Contains(s.Skill)); + skills.RemoveAll(s => s.Skill?.SkillType == SkillType.PassiveBoost); } skills.RemoveAll(s => s.Skill?.Number == ForceWaveSkillId); diff --git a/src/SharedAssemblyInfo.cs b/src/SharedAssemblyInfo.cs index 79c41f9b8..3565aeb7d 100644 --- a/src/SharedAssemblyInfo.cs +++ b/src/SharedAssemblyInfo.cs @@ -29,5 +29,5 @@ // // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("0.7.17.0")] -[assembly: AssemblyFileVersion("0.7.17.0")] +[assembly: AssemblyVersion("0.7.18.0")] +[assembly: AssemblyFileVersion("0.7.18.0")]