fix: more performant and reset mana
This commit is contained in:
parent
9273763187
commit
528276c414
60
Plugin.cs
60
Plugin.cs
@ -117,6 +117,7 @@ public class Plugin : IDalamudPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var chara = (Character*) player.Address;
|
var chara = (Character*) player.Address;
|
||||||
|
var playerName = player.Name.TextValue;
|
||||||
|
|
||||||
var list = (AddonPartyList*) AtkStage.Instance()->RaptureAtkUnitManager->GetAddonByName("_PartyList");
|
var list = (AddonPartyList*) AtkStage.Instance()->RaptureAtkUnitManager->GetAddonByName("_PartyList");
|
||||||
if (list->HoveredIndex >= 0 || list->TargetedIndex >= 0) {
|
if (list->HoveredIndex >= 0 || list->TargetedIndex >= 0) {
|
||||||
@ -124,7 +125,9 @@ public class Plugin : IDalamudPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var names = new List<string>();
|
var names = new List<string>();
|
||||||
foreach (var member in AgentHUD.Instance()->PartyMembers) {
|
var members = AgentHUD.Instance()->PartyMembers;
|
||||||
|
for (var i = 0; i < members.Length && i < list->PartyMembers.Length; i++) {
|
||||||
|
var member = members[i];
|
||||||
if (member.Name == null) {
|
if (member.Name == null) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -136,31 +139,46 @@ public class Plugin : IDalamudPlugin {
|
|||||||
|
|
||||||
var name = MemoryHelper.ReadStringNullTerminated((nint) member.Name);
|
var name = MemoryHelper.ReadStringNullTerminated((nint) member.Name);
|
||||||
names.Add(name);
|
names.Add(name);
|
||||||
}
|
|
||||||
|
|
||||||
var numPlayers = list->PartyMembers.Length;
|
var lookupName = name == playerName
|
||||||
foreach (var combatant in data.Combatants.Values) {
|
? "YOU"
|
||||||
if (combatant.Name.EndsWith(" (YOU)")) {
|
: name;
|
||||||
var name = combatant.Name[..^6];
|
|
||||||
var chocoboName = UIState.Instance()->Buddy.CompanionInfo.NameString;
|
|
||||||
if (chocoboName == name) {
|
|
||||||
this.UpdateMember(list->Chocobo, data.Encounter, combatant);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var idx = combatant.Name == "YOU"
|
if (!data.Combatants.TryGetValue(lookupName, out var combatant)) {
|
||||||
? 0
|
|
||||||
: names.IndexOf(combatant.Name);
|
|
||||||
if (idx == -1 || idx >= numPlayers) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.UpdateMember(list->PartyMembers[idx], data.Encounter, combatant);
|
this.UpdateMember(list->PartyMembers[i], member.Object, data.Encounter, combatant);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private unsafe void UpdateMember(AddonPartyList.PartyListMemberStruct member, Encounter encounter, Combatant combatant) {
|
// var numPlayers = list->PartyMembers.Length;
|
||||||
|
// foreach (var combatant in data.Combatants.Values) {
|
||||||
|
// if (combatant.Name.EndsWith(" (YOU)")) {
|
||||||
|
// var name = combatant.Name[..^6];
|
||||||
|
// var chocoboName = UIState.Instance()->Buddy.CompanionInfo.NameString;
|
||||||
|
// if (chocoboName == name) {
|
||||||
|
// this.UpdateMember(list->Chocobo, data.Encounter, combatant);
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// var idx = combatant.Name == "YOU"
|
||||||
|
// ? 0
|
||||||
|
// : names.IndexOf(combatant.Name);
|
||||||
|
// if (idx == -1 || idx >= numPlayers) {
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// this.UpdateMember(list->PartyMembers[idx], data.Encounter, combatant);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
private unsafe void UpdateMember(
|
||||||
|
AddonPartyList.PartyListMemberStruct member,
|
||||||
|
BattleChara* chara,
|
||||||
|
Encounter encounter,
|
||||||
|
Combatant combatant
|
||||||
|
) {
|
||||||
member.TargetGlow->ToggleVisibility(true);
|
member.TargetGlow->ToggleVisibility(true);
|
||||||
member.TargetGlow->SetAlpha(128);
|
member.TargetGlow->SetAlpha(128);
|
||||||
member.TargetGlow->SetScaleX(
|
member.TargetGlow->SetScaleX(
|
||||||
@ -178,6 +196,10 @@ public class Plugin : IDalamudPlugin {
|
|||||||
};
|
};
|
||||||
right->TextColor = left->TextColor;
|
right->TextColor = left->TextColor;
|
||||||
|
|
||||||
|
var manaString = chara->Mana.ToString(CultureInfo.InvariantCulture);
|
||||||
|
left->SetText(manaString[..^2]);
|
||||||
|
right->SetText(manaString[^2..]);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user