Skip to content

Commit

Permalink
Merge pull request #391 from FFXIV-CombatReborn/chobo
Browse files Browse the repository at this point in the history
Update Chocobo code and update ScholarRotation checks
  • Loading branch information
LTS-FFXIV authored Sep 21, 2024
2 parents 3f44a0e + 3bcb87f commit f8bb205
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 14 deletions.
27 changes: 21 additions & 6 deletions RotationSolver.Basic/DataCenter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -531,15 +531,30 @@ public static bool HasPet
}
}

public static unsafe bool HasCompanion => (IntPtr)Player.BattleChara != IntPtr.Zero
&& (IntPtr)CharacterManager.Instance()->LookupBuddyByOwnerObject(
Player.BattleChara) != IntPtr.Zero;
public static unsafe bool HasCompanion
{
get
{
var playerBattleChara = Player.BattleChara;
if (playerBattleChara == null) return false;

var characterManager = CharacterManager.Instance();
if (characterManager == null) return false;

var companion = characterManager->LookupBuddyByOwnerObject(playerBattleChara);
return (IntPtr)companion != IntPtr.Zero;
}
}

public static unsafe BattleChara* GetCompanion()
{
if(HasCompanion)
return CharacterManager.Instance()->LookupBuddyByOwnerObject(Player.BattleChara);
return null;
var playerBattleChara = Player.BattleChara;
if (playerBattleChara == null) return null;

var characterManager = CharacterManager.Instance();
if (characterManager == null) return null;

return characterManager->LookupBuddyByOwnerObject(playerBattleChara);
}

#region HP
Expand Down
8 changes: 5 additions & 3 deletions RotationSolver.Basic/Helpers/ObjectHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -166,12 +166,14 @@ internal static bool IsParty(this IGameObject gameObject)
if (Svc.Party.Any(p => p.GameObject?.GameObjectId == gameObject.GameObjectId)) return true;
if (gameObject.SubKind == 9) return true;

//Add Player Chocobo Companion to Party List
// Add Player Chocobo Companion to Party List
unsafe
{
BattleChara? CompanionChocobo = *DataCenter.GetCompanion();
if (CompanionChocobo != null)
BattleChara* companionChocobo = DataCenter.GetCompanion();
if (companionChocobo != null)
{
return true;
}
}

if (Service.Config.FriendlyBattleNpcHeal && gameObject.GetNameplateKind() == NameplateKind.FriendlyBattleNPC) return true;
Expand Down
10 changes: 5 additions & 5 deletions RotationSolver.Basic/Rotations/Basic/ScholarRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ static partial void ModifyResurrectionPvE(ref ActionSetting setting)

static partial void ModifyWhisperingDawnPvE_16537(ref ActionSetting setting)
{
setting.ActionCheck = () => DataCenter.HasPet;
setting.ActionCheck = () => DataCenter.HasPet && !Player.HasStatus(true, StatusID.Dissipation);
setting.IsFriendly = true;
setting.CreateConfig = () => new ActionConfig()
{
Expand Down Expand Up @@ -109,9 +109,9 @@ static partial void ModifyRuinIiPvE(ref ActionSetting setting)

}

static partial void ModifyFeyIlluminationPvE(ref ActionSetting setting)
static partial void ModifyFeyIlluminationPvE_16538(ref ActionSetting setting)
{
setting.ActionCheck = () => DataCenter.HasPet;
setting.ActionCheck = () => DataCenter.HasPet && !Player.HasStatus(true, StatusID.Dissipation);
setting.CreateConfig = () => new ActionConfig()
{
AoeCount = 1,
Expand Down Expand Up @@ -243,7 +243,7 @@ static partial void ModifyRecitationPvE(ref ActionSetting setting)

static partial void ModifyFeyBlessingPvE(ref ActionSetting setting)
{
setting.ActionCheck = () => SeraphTime <= 0 && DataCenter.HasPet;
setting.ActionCheck = () => SeraphTime <= 0 && DataCenter.HasPet && !Player.HasStatus(true, StatusID.Dissipation);
setting.IsFriendly = true;
}

Expand Down Expand Up @@ -312,7 +312,7 @@ static partial void ModifyConcitationPvE(ref ActionSetting setting)

static partial void ModifySeraphismPvE(ref ActionSetting setting)
{
setting.ActionCheck = () => DataCenter.HasPet && InCombat;
setting.ActionCheck = () => DataCenter.HasPet && InCombat && !Player.HasStatus(true, StatusID.Dissipation);
setting.IsFriendly = true;
}

Expand Down

0 comments on commit f8bb205

Please sign in to comment.