fix: handle low mana and missing mana gauge

This commit is contained in:
Anna 2024-07-26 03:56:43 -04:00
parent 8fb32e3202
commit cea3113a2e
Signed by: anna
GPG Key ID: D0943384CD9F87D1

View File

@ -281,9 +281,14 @@ public class Plugin : IDalamudPlugin {
var right = (AtkTextNode*) unit.MPGaugeBar->GetTextNodeById(3); var right = (AtkTextNode*) unit.MPGaugeBar->GetTextNodeById(3);
var chara = member.Object; var chara = member.Object;
var hasLeft = left != null;
var hasRight = right != null; var hasRight = right != null;
var hasChara = chara != null; var hasChara = chara != null;
if (!hasLeft) {
return;
}
left->TextColor = new ByteColor { left->TextColor = new ByteColor {
RGBA = 0xFFFFFFFF, RGBA = 0xFFFFFFFF,
}; };
@ -292,8 +297,13 @@ public class Plugin : IDalamudPlugin {
? chara->Mana.ToString(CultureInfo.InvariantCulture) ? chara->Mana.ToString(CultureInfo.InvariantCulture)
: "???"; : "???";
if (hasRight) { if (hasRight) {
left->SetText(manaString[..^2]); if (manaString.Length <= 1) {
right->SetText(manaString[^2..]); left->SetText("");
right->SetText(manaString);
} else {
left->SetText(manaString[..^2]);
right->SetText(manaString[^2..]);
}
} else { } else {
left->SetText(manaString); left->SetText(manaString);
} }
@ -364,13 +374,16 @@ public class Plugin : IDalamudPlugin {
if (this.Config.Mode == MeterMode.Mana) { if (this.Config.Mode == MeterMode.Mana) {
var left = (AtkTextNode*) member.MPGaugeBar->GetTextNodeById(2); var left = (AtkTextNode*) member.MPGaugeBar->GetTextNodeById(2);
var right = (AtkTextNode*) member.MPGaugeBar->GetTextNodeById(3); var right = (AtkTextNode*) member.MPGaugeBar->GetTextNodeById(3);
var hasLeft = left != null;
var hasRight = right != null; var hasRight = right != null;
var hasChara = chara != null; var hasChara = chara != null;
if (!hasLeft) {
return;
}
if (this.Config.Alternate && !this._showDps) { if (this.Config.Alternate && !this._showDps) {
var isCaster = hasChara var isCaster = hasChara && Array.IndexOf(this._manaUsers, chara->ClassJob) != -1;
? Array.IndexOf(this._manaUsers, chara->ClassJob) != -1
: false;
if (!this.Config.ManaModeAlternateOnlyManaUsers || isCaster) { if (!this.Config.ManaModeAlternateOnlyManaUsers || isCaster) {
left->TextColor = new ByteColor { left->TextColor = new ByteColor {
RGBA = 0xFFFFFFFF, RGBA = 0xFFFFFFFF,