fix(ui): restore modern spell formula presentation
Resolve spell-examination component cells through their DAT icon DIDs, project scarab and prismatic-taper formulas when ACE disables component enforcement, and version authored window geometry so stale examination sizes reset once without losing user layout behavior. Co-authored-by: Codex <codex@openai.com>
This commit is contained in:
parent
3e31b0ac70
commit
d4ce64f56b
22 changed files with 307 additions and 41 deletions
|
|
@ -74,6 +74,8 @@ public sealed class SpellComponentRequirementService
|
|||
/// Retail <c>ClientMagicSystem::GetAppropriateSpellFormula</c>
|
||||
/// (0x00567D50): an infused school or a directly carried school focus uses
|
||||
/// the scarab-only formula; otherwise the account-customized formula wins.
|
||||
/// ACE characters with component enforcement disabled use the same modern
|
||||
/// scarab/taper presentation instead of exposing an unusable legacy recipe.
|
||||
/// </summary>
|
||||
public IReadOnlyList<uint> GetAppropriateFormula(uint spellId)
|
||||
{
|
||||
|
|
@ -105,6 +107,9 @@ public sealed class SpellComponentRequirementService
|
|||
ClientObject? player,
|
||||
uint playerGuid)
|
||||
{
|
||||
bool componentsRequired =
|
||||
player?.Properties.GetBool(SpellComponentsRequiredProperty, true)
|
||||
?? true;
|
||||
bool infused = SchoolInfusionProperty(formula.School) is uint propertyId
|
||||
&& player?.Properties.GetInt(propertyId) > 0;
|
||||
bool carriesMagicPack = _magicPackWcidBySchool.TryGetValue(
|
||||
|
|
@ -112,7 +117,7 @@ public sealed class SpellComponentRequirementService
|
|||
&& _objects.Objects.Any(item =>
|
||||
item.ContainerId == playerGuid
|
||||
&& item.WeenieClassId == packWcid);
|
||||
return infused || carriesMagicPack
|
||||
return !componentsRequired || infused || carriesMagicPack
|
||||
? RetailSpellFormula.InqScarabOnlyFormula(formula.ComponentIds)
|
||||
: RetailSpellFormula.CustomizeForAccount(
|
||||
formula.ComponentIds, formula.FormulaVersion, _accountName());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue