Skip to content
This repository has been archived by the owner on Aug 28, 2024. It is now read-only.

Commit

Permalink
fix: fix for moving target choice mistakes.
Browse files Browse the repository at this point in the history
  • Loading branch information
ArchiDog1998 committed Mar 4, 2023
1 parent fc4c49f commit 8346317
Show file tree
Hide file tree
Showing 19 changed files with 34 additions and 32 deletions.
5 changes: 3 additions & 2 deletions RotationSolver/Actions/BaseAction/BaseAction_ActionInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ private bool WillCooldown
}
}

public unsafe virtual bool CanUse(out IAction act, bool mustUse = false, bool emptyOrSkipCombo = false, bool skipDisable = false, uint gcdCountForAbility = 0)
public unsafe virtual bool CanUse(out IAction act, bool mustUse = false, bool emptyOrSkipCombo = false, bool skipDisable = false, uint gcdCountForAbility = 0, bool recordTarget = true)
{
act = this;

Expand Down Expand Up @@ -101,6 +101,7 @@ public unsafe virtual bool CanUse(out IAction act, bool mustUse = false, bool em
if (!skipDisable && RotationCheck != null && !RotationCheck(target)) return false;

Target = target;
if(recordTarget) _targetId = target.ObjectId;
return true;
}

Expand Down Expand Up @@ -137,6 +138,6 @@ public unsafe bool Use()
if (ShouldEndSpecial) RSCommands.ResetSpecial();

return _action.TargetArea ? ActionManager.Instance()->UseActionLocation(ActionType.Spell, ID, Service.ClientState.LocalPlayer.ObjectId, &loc) :
ActionManager.Instance()->UseAction(ActionType.Spell, AdjustedID, Target.ObjectId);
ActionManager.Instance()->UseAction(ActionType.Spell, AdjustedID, _targetId);
}
}
1 change: 1 addition & 0 deletions RotationSolver/Actions/BaseAction/BaseAction_Target.cs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ internal partial class BaseAction
public BattleChara Target { get; private set; } = Service.ClientState.LocalPlayer;

private Vector3 _position = default;
private uint _targetId = Service.ClientState.LocalPlayer.ObjectId;

private Func<IEnumerable<BattleChara>, bool, BattleChara> _choiceTarget = null;
internal Func<IEnumerable<BattleChara>, bool, BattleChara> ChoiceTarget
Expand Down
2 changes: 1 addition & 1 deletion RotationSolver/Actions/IBaseAction.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ internal interface IBaseAction : IAction
/// <param name="skipDisable">Skip the diable for emergency use. Please always set this to false.</param>
/// <param name="gcdCountForAbility">The count of gcd for ability to delay. Only used in BLM right now</paramref>
/// <returns>Should I use.</returns>
bool CanUse(out IAction act, bool mustUse = false, bool emptyOrSkipCombo = false, bool skipDisable = false, uint gcdCountForAbility = 0);
bool CanUse(out IAction act, bool mustUse = false, bool emptyOrSkipCombo = false, bool skipDisable = false, uint gcdCountForAbility = 0, bool recordTarget = true);

#region CoolDown
/// <summary>
Expand Down
2 changes: 1 addition & 1 deletion RotationSolver/Rotations/Basic/BLM_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ internal ElementAction(ActionID actionID, bool isFriendly = false, bool shouldEn
{
}

public override bool CanUse(out IAction act, bool mustUse = false, bool emptyOrSkipCombo = false, bool skipDisable = false, uint gcdCountForAbility = 0)
public override bool CanUse(out IAction act, bool mustUse = false, bool emptyOrSkipCombo = false, bool skipDisable = false, uint gcdCountForAbility = 0, bool recordTarget = true)
{
if (ElementTimeEndAfter(CastTime - 0.1f))
{
Expand Down
2 changes: 1 addition & 1 deletion RotationSolver/Rotations/Basic/BLU_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ internal BLUAction(ActionID actionID, BLUActionType type, bool isFriendly = fals
ActionCheck = t => OnSlot && RightType;
}

public override bool CanUse(out IAction act, bool mustUse = false, bool emptyOrSkipCombo = false, bool skipDisable = false, uint gcdCountForAbility = 0)
public override bool CanUse(out IAction act, bool mustUse = false, bool emptyOrSkipCombo = false, bool skipDisable = false, uint gcdCountForAbility = 0, bool recordTarget = true)
{
act = null;

Expand Down
4 changes: 2 additions & 2 deletions RotationSolver/Rotations/Basic/DNC_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -311,9 +311,9 @@ protected static bool ExcutionStepGCD(out IAction act)
}

[RotationDesc(ActionID.EnAvant)]
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act)
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act, bool recordTarget = true)
{
if (EnAvant.CanUse(out act, emptyOrSkipCombo: true)) return true;
if (EnAvant.CanUse(out act, emptyOrSkipCombo: true, recordTarget: recordTarget)) return true;
return false;
}

Expand Down
4 changes: 2 additions & 2 deletions RotationSolver/Rotations/Basic/DRK_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -218,9 +218,9 @@ private protected override bool EmergencyAbility(byte abilitiesRemaining, IActio
}

[RotationDesc(ActionID.Plunge)]
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act)
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act, bool recordTarget = true)
{
if (Plunge.CanUse(out act, emptyOrSkipCombo: true)) return true;
if (Plunge.CanUse(out act, emptyOrSkipCombo: true, recordTarget: recordTarget)) return true;

return false;
}
Expand Down
4 changes: 2 additions & 2 deletions RotationSolver/Rotations/Basic/GNB_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -236,9 +236,9 @@ private protected override bool EmergencyAbility(byte abilitiesRemaining, IActio
}

[RotationDesc(ActionID.RoughDivide)]
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act)
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act, bool recordTarget = true)
{
if (RoughDivide.CanUse(out act, emptyOrSkipCombo: true)) return true;
if (RoughDivide.CanUse(out act, emptyOrSkipCombo: true, recordTarget: recordTarget)) return true;
return false;
}
}
Expand Down
4 changes: 2 additions & 2 deletions RotationSolver/Rotations/Basic/MNK_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,9 @@ internal abstract class MNK_Base : CustomRotation.CustomRotation
public static IBaseAction RiddleofWind { get; } = new BaseAction(ActionID.RiddleofWind, true);

[RotationDesc(ActionID.Thunderclap)]
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act)
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act, bool recordTarget = true)
{
if (Thunderclap.CanUse(out act, emptyOrSkipCombo: true)) return true;
if (Thunderclap.CanUse(out act, emptyOrSkipCombo: true, recordTarget: recordTarget)) return true;
return false;
}

Expand Down
4 changes: 2 additions & 2 deletions RotationSolver/Rotations/Basic/NIN_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -308,9 +308,9 @@ internal NinAction(ActionID actionID, params IBaseAction[] ninjutsus)
public static INinAction HyoshoRanryu { get; } = new NinAction(ActionID.HyoshoRanryu, Ten, Jin);

[RotationDesc(ActionID.Shukuchi)]
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act)
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act, bool recordTarget = true)
{
if (Shukuchi.CanUse(out act, emptyOrSkipCombo: true)) return true;
if (Shukuchi.CanUse(out act, emptyOrSkipCombo: true, recordTarget: recordTarget)) return true;

return false;
}
Expand Down
4 changes: 2 additions & 2 deletions RotationSolver/Rotations/Basic/PLD_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -218,9 +218,9 @@ private protected override bool EmergencyAbility(byte abilitiesRemaining, IActio
}

[RotationDesc(ActionID.Intervene)]
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act)
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act, bool recordTarget = true)
{
if (Intervene.CanUse(out act, emptyOrSkipCombo: true)) return true;
if (Intervene.CanUse(out act, emptyOrSkipCombo: true, recordTarget: recordTarget)) return true;
return false;
}

Expand Down
4 changes: 2 additions & 2 deletions RotationSolver/Rotations/Basic/RDM_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -227,9 +227,9 @@ private protected sealed override bool HealSingleGCD(out IAction act)
}

[RotationDesc(ActionID.CorpsAcorps)]
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act)
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act, bool recordTarget = true)
{
if (CorpsAcorps.CanUse(out act, emptyOrSkipCombo: true)) return true;
if (CorpsAcorps.CanUse(out act, emptyOrSkipCombo: true, recordTarget: recordTarget)) return true;
return false;
}

Expand Down
4 changes: 2 additions & 2 deletions RotationSolver/Rotations/Basic/RPR_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -307,10 +307,10 @@ internal PRPAction(ActionID actionID, bool isFriendly = false, bool shouldEndSpe
#endregion

[RotationDesc(ActionID.HellsIngress)]
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act)
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act, bool recordTarget = true)
{
//E上去
if (HellsIngress.CanUse(out act, emptyOrSkipCombo: true)) return true;
if (HellsIngress.CanUse(out act, emptyOrSkipCombo: true, recordTarget: recordTarget)) return true;
return false;
}

Expand Down
4 changes: 2 additions & 2 deletions RotationSolver/Rotations/Basic/SAM_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -283,9 +283,9 @@ internal abstract class SAM_Base : CustomRotation.CustomRotation
#endregion

[RotationDesc(ActionID.HissatsuGyoten)]
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act)
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act, bool recordTarget = true)
{
if (HissatsuGyoten.CanUse(out act, emptyOrSkipCombo: true)) return true;
if (HissatsuGyoten.CanUse(out act, emptyOrSkipCombo: true, recordTarget: recordTarget)) return true;
return false;
}

Expand Down
4 changes: 2 additions & 2 deletions RotationSolver/Rotations/Basic/SGE_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -251,10 +251,10 @@ protected static bool AddersgallEndAfterGCD(uint gctCount = 0, uint abilityCount
},
};

private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act)
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act, bool recordTarget = true)
{
//神翼
if (Icarus.CanUse(out act, emptyOrSkipCombo: true)) return true;
if (Icarus.CanUse(out act, emptyOrSkipCombo: true, recordTarget: recordTarget)) return true;
return false;
}
}
4 changes: 2 additions & 2 deletions RotationSolver/Rotations/Basic/WAR_Base.cs
Original file line number Diff line number Diff line change
Expand Up @@ -186,9 +186,9 @@ private protected override bool EmergencyAbility(byte abilitiesRemaining, IActio
}

[RotationDesc(ActionID.Onslaught)]
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act)
private protected sealed override bool MoveForwardAbility(byte abilitiesRemaining, out IAction act, bool recordTarget = true)
{
if (Onslaught.CanUse(out act, emptyOrSkipCombo: true)) return true;
if (Onslaught.CanUse(out act, emptyOrSkipCombo: true, recordTarget: recordTarget)) return true;
return false;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -268,7 +268,7 @@ private protected virtual bool EmergencyAbility(byte abilitiesRemaining, IAction
}

[RotationDesc(DescType.MoveForwardAbility)]
private protected virtual bool MoveForwardAbility(byte abilitiesRemaining, out IAction act)
private protected virtual bool MoveForwardAbility(byte abilitiesRemaining, out IAction act, bool recordTarget = true)
{
act = null; return false;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public bool TryInvoke(out IAction newAction)
return false;
}

MoveTarget = (MoveForwardAbility(1, out var act) && act is BaseAction a) ? a.Target : null;
MoveTarget = (MoveForwardAbility(1, out var act, recordTarget: false) && act is BaseAction a) ? a.Target : null;
UpdateInfo();

newAction = Invoke();
Expand Down
6 changes: 3 additions & 3 deletions RotationSolver/Rotations/Melee/DRG/DRG_Default.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ private protected override IRotationConfigSet CreateConfiguration()
}

[RotationDesc(ActionID.SpineshatterDive, ActionID.DragonfireDive)]
private protected override bool MoveForwardAbility(byte abilityRemain, out IAction act)
private protected override bool MoveForwardAbility(byte abilityRemain, out IAction act, bool recordTarget = true)
{
if (abilityRemain > 1)
{
if (SpineshatterDive.CanUse(out act, emptyOrSkipCombo: true)) return true;
if (DragonfireDive.CanUse(out act, mustUse: true, emptyOrSkipCombo: true)) return true;
if (SpineshatterDive.CanUse(out act, emptyOrSkipCombo: true, recordTarget: recordTarget)) return true;
if (DragonfireDive.CanUse(out act, mustUse: true, emptyOrSkipCombo: true, recordTarget: recordTarget)) return true;
}

act = null;
Expand Down

0 comments on commit 8346317

Please sign in to comment.