fix(ui): select and examine favorite spells like retail
This commit is contained in:
parent
043ab10b3c
commit
3e31b0ac70
23 changed files with 974 additions and 34 deletions
|
|
@ -405,6 +405,39 @@ internal sealed class RetailInteractionRetainedUiCompositionFactory
|
|||
canSend: () => late.Session.IsInWorld);
|
||||
checkpoint(InteractionRetainedUiCompositionPoint.MagicRuntimeCreated);
|
||||
|
||||
uint MagicSkillLevel(MagicSchool school)
|
||||
{
|
||||
static uint SkillId(MagicSchool value) => value switch
|
||||
{
|
||||
MagicSchool.CreatureEnchantment => 0x1Fu,
|
||||
MagicSchool.ItemEnchantment => 0x20u,
|
||||
MagicSchool.LifeMagic => 0x21u,
|
||||
MagicSchool.WarMagic => 0x22u,
|
||||
MagicSchool.VoidMagic => 0x2Bu,
|
||||
_ => 0u,
|
||||
};
|
||||
|
||||
uint skillId = SkillId(school);
|
||||
if (skillId != 0u)
|
||||
return d.LocalPlayer.GetSkill(skillId)?.CurrentLevel ?? 0u;
|
||||
|
||||
uint highest = 0u;
|
||||
foreach (MagicSchool candidate in new[]
|
||||
{
|
||||
MagicSchool.CreatureEnchantment,
|
||||
MagicSchool.ItemEnchantment,
|
||||
MagicSchool.LifeMagic,
|
||||
MagicSchool.WarMagic,
|
||||
MagicSchool.VoidMagic,
|
||||
})
|
||||
{
|
||||
highest = Math.Max(
|
||||
highest,
|
||||
d.LocalPlayer.GetSkill(SkillId(candidate))?.CurrentLevel ?? 0u);
|
||||
}
|
||||
return highest;
|
||||
}
|
||||
|
||||
foreach (IMouse mouse in d.Input.Mice)
|
||||
host.WireMouse(mouse);
|
||||
checkpoint(InteractionRetainedUiCompositionPoint.MouseInputWired);
|
||||
|
|
@ -500,6 +533,8 @@ internal sealed class RetailInteractionRetainedUiCompositionFactory
|
|||
iconComposer.GetSpellComponentIcon,
|
||||
d.Selection,
|
||||
d.MagicCatalog.GetSpellLevel,
|
||||
magic.GetExamineComponents,
|
||||
MagicSkillLevel,
|
||||
guid => d.Selection.Select(guid, SelectionChangeSource.Inventory),
|
||||
guid => late.Session.TryUseItem(guid, d.Log),
|
||||
(tab, position, spellId) =>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue