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