Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Summoner Ruin/Outburst Combos #263

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion XIVComboPlugin/Configuration/CustomComboPreset.cs
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,10 @@ public enum CustomComboPreset : long

[CustomComboInfo("ES Painflare", "Change Painflare into Energy Syphon when out of Aetherflow stacks", 27)]
SummonerESPainflareCombo = 1L << 40,


[CustomComboInfo("Ruin/Outburst", "Change Ruin/Outburst into Topaz/Emerald/Ruby Ruin/Outburst while attuned", 27)]
SummonerRuinOutburstCombo = 1L << 41,

// SCHOLAR
[CustomComboInfo("Seraph Fey Blessing/Consolation", "Change Fey Blessing into Consolation when Seraph is out", 28)]
ScholarSeraphConsolationFeature = 1L << 29,
Expand Down
74 changes: 74 additions & 0 deletions XIVComboPlugin/IconReplacer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -632,6 +632,80 @@ private ulong GetIconDetour(byte self, uint actionID)
return SMN.Painflare;
}

// Change Ruin/Outburst into Topaz/Emerald/Ruby Ruin/Outburst
if (Configuration.ComboPresets.HasFlag(CustomComboPreset.SummonerRuinOutburstCombo))
{
if (actionID == SMN.Ruin1)
Copy link

@RaphaelDDL RaphaelDDL Jun 1, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I liked this change so while isn't merged or anything, I checked out the PR, built and tested in lv90 SMN. Didn't test on lower levels yet.
The outburst part worked, even by dragging tri-disaster (the upgrade) from actions.

Now, SMN ruin goes 1, 2, 3 so testing for ruin1 as you added should've worked I guess? But I'm confused, it didn't for a lv90 SMN which has Ruin3 and at level 90, you can only drag Ruin3 from actions.

I did a quick change on the debug build to test for SMN to if (actionID == SMN.Ruin3 || actionID == SMN.Ruin1) and now it replaces Ruin3 correctly /shrug

I have no idea where to get the actionID for Ruin2 in order to add it to JobActions/SMN.cs and then add actionID == SMN.Ruin2 to the if and see if works.

I still gotta test lower levels but I hope @attickdoor does merge this (after the fixes) as it checks out all 3 rules of #119 : The actions, while can be cast during an egi summon phase, are in fact mutually exclusive (when during summon, there's no reason to go for tri and ruin), they save 2 slots to enabling other actions more nearby and is a 0 IQ non-whacky change xD

{
if (XIVComboPlugin.JobGauges.Get<SMNGauge>().IsTitanAttuned)
switch (level)
{
case >= 72:
return SMN.TopazRite;
case >= 54:
return SMN.TopazRuin3;
case >= 30:
return SMN.TopazRuin2;
default:
return SMN.TopazRuin;
}
if (XIVComboPlugin.JobGauges.Get<SMNGauge>().IsGarudaAttuned)
switch (level)
{
case >= 72:
return SMN.EmeraldRite;
case >= 54:
return SMN.EmeraldRuin3;
case >= 30:
return SMN.EmeraldRuin2;
default:
return SMN.EmeraldRuin;
}
if (XIVComboPlugin.JobGauges.Get<SMNGauge>().IsIfritAttuned)
switch (level)
{
case >= 72:
return SMN.RubyRite;
case >= 54:
return SMN.RubyRuin3;
case >= 30:
return SMN.RubyRuin2;
default:
return SMN.RubyRuin;
}
}
if (actionID == SMN.Outburst)
{
switch (level)
{
case >= 82:
if (XIVComboPlugin.JobGauges.Get<SMNGauge>().IsTitanAttuned)
return SMN.TopazCatastrophe;
if (XIVComboPlugin.JobGauges.Get<SMNGauge>().IsGarudaAttuned)
return SMN.EmeraldCatastrophe;
if (XIVComboPlugin.JobGauges.Get<SMNGauge>().IsIfritAttuned)
return SMN.RubyCatastrophe;
break;
case >= 74:
if (XIVComboPlugin.JobGauges.Get<SMNGauge>().IsTitanAttuned)
return SMN.TopazDisaster;
if (XIVComboPlugin.JobGauges.Get<SMNGauge>().IsGarudaAttuned)
return SMN.EmeraldDisaster;
if (XIVComboPlugin.JobGauges.Get<SMNGauge>().IsIfritAttuned)
return SMN.RubyDisaster;
break;
default:
if (XIVComboPlugin.JobGauges.Get<SMNGauge>().IsTitanAttuned)
return SMN.TopazOutburst;
if (XIVComboPlugin.JobGauges.Get<SMNGauge>().IsGarudaAttuned)
return SMN.EmeraldOutburst;
if (XIVComboPlugin.JobGauges.Get<SMNGauge>().IsIfritAttuned)
return SMN.RubyOutburst;
break;
}
}
}

// SCHOLAR

// Change Fey Blessing into Consolation when Seraph is out.
Expand Down
27 changes: 26 additions & 1 deletion XIVComboPlugin/JobActions/SMN.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,31 @@ public const uint
Fester = 181,
EnergyDrain = 16508,
Painflare = 3578,
EnergySyphon = 16510;
EnergySyphon = 16510,
Gemshine = 25883,
RubyRuin = 25808,
RubyRuin2 = 25811,
RubyRuin3 = 25817,
TopazRuin = 25809,
TopazRuin2 = 25812,
TopazRuin3 = 25818,
EmeraldRuin = 25810,
EmeraldRuin2 = 25813,
EmeraldRuin3 = 25819,
RubyRite = 25823,
TopazRite = 25824,
EmeraldRite = 25825,
Outburst = 16511,
RubyOutburst = 25814,
TopazOutburst = 25815,
EmeraldOutburst = 25816,
AstralImpulse = 25820,
TriDisaster = 25826,
RubyDisaster = 25827,
TopazDisaster = 25828,
EmeraldDisaster = 25829,
RubyCatastrophe = 25832,
TopazCatastrophe = 25833,
EmeraldCatastrophe = 25834;
}
}