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

Commit

Permalink
fix: carding and the move target.
Browse files Browse the repository at this point in the history
  • Loading branch information
ArchiDog1998 committed Feb 19, 2024
1 parent 1c278c8 commit 4aa9e7a
Show file tree
Hide file tree
Showing 13 changed files with 110 additions and 40 deletions.
4 changes: 2 additions & 2 deletions Resources/RotationSolverRecord.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"ClickingCount": 63635,
"SayingHelloCount": 47,
"ClickingCount": 64697,
"SayingHelloCount": 49,
"SaidUsers": []
}
7 changes: 7 additions & 0 deletions RotationSolver.Basic/Actions/ActionTargetInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -535,6 +535,13 @@ private readonly bool CanGetTarget(GameObject target, GameObject subTarget)

BattleChara? FindTargetForMoving()
{
if (!IBaseAction.ActionPreview && !DataCenter.MergedStatus.HasFlag(AutoStatus.MoveForward))
{
var o = gameObjects.MinBy(b => b.DistanceToPlayer());
if (o.DistanceToPlayer() < 1) return o;
return null;
}

const float DISTANCE_TO_MOVE = 3;

if (Service.Config.MoveTowardsScreenCenter)
Expand Down
12 changes: 6 additions & 6 deletions RotationSolver.Basic/Helpers/StatusHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,12 @@ public static class StatusHelper

internal static StatusID[] AstCardStatus { get; } =
[
StatusID.TheArrow,
StatusID.TheBalance,
StatusID.TheBole,
StatusID.TheEwer,
StatusID.TheSpear,
StatusID.TheSpire,
StatusID.TheArrow_1884,
StatusID.TheBalance_1882,
StatusID.TheBole_1883,
StatusID.TheEwer_1886,
StatusID.TheSpear_1885,
StatusID.TheSpire_1887,

StatusID.Weakness,
StatusID.BrinkOfDeath,
Expand Down
5 changes: 5 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/GunbreakerRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,11 @@ protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
return base.EmergencyAbility(nextGCD, out act);
}

static partial void ModifyRoughDividePvE(ref ActionSetting setting)
{
setting.TargetType = TargetType.Move;
}

/// <inheritdoc/>
[RotationDesc(ActionID.RoughDividePvE)]
protected sealed override bool MoveForwardAbility(out IAction? act)
Expand Down
5 changes: 5 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/MonkRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,11 @@ static partial void ModifyRiddleOfFirePvE(ref ActionSetting setting)
};
}

static partial void ModifyThunderclapPvE(ref ActionSetting setting)
{
setting.TargetType = TargetType.Move;
}

/// <inheritdoc/>
[RotationDesc(ActionID.ThunderclapPvE)]
protected sealed override bool MoveForwardAbility(out IAction? act)
Expand Down
5 changes: 5 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/NinjaRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,11 @@ public NinjaRotation()
HyoshoRanryuPvE.Setting.Ninjutsu = [TenPvE, JinPvE];
}

static partial void ModifyShukuchiPvE(ref ActionSetting setting)
{
setting.TargetType = TargetType.Move;
}

/// <inheritdoc/>
[RotationDesc(ActionID.ShukuchiPvE)]
protected sealed override bool MoveForwardAbility(out IAction? act)
Expand Down
2 changes: 1 addition & 1 deletion RotationSolver.Basic/Rotations/Basic/ReaperRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ static partial void ModifyHarpePvE(ref ActionSetting setting)
static partial void ModifyHellsIngressPvE(ref ActionSetting setting)
{
setting.StatusProvide = [StatusID.EnhancedHarpe, StatusID.Bind];
setting.TargetType = TargetType.Move;
}

static partial void ModifyHellsEgressPvE(ref ActionSetting setting)
Expand All @@ -194,7 +195,6 @@ static partial void ModifyHarvestMoonPvE(ref ActionSetting setting)
setting.StatusNeed = [StatusID.Soulsow];
}


/// <inheritdoc/>
[RotationDesc(ActionID.HellsIngressPvE)]
protected sealed override bool MoveForwardAbility(out IAction? act)
Expand Down
5 changes: 5 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/RedMageRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,11 @@ protected sealed override bool HealSingleGCD(out IAction? act)
return base.HealSingleGCD(out act);
}

static partial void ModifyCorpsacorpsPvE(ref ActionSetting setting)
{
setting.TargetType = TargetType.Move;
}

/// <inheritdoc/>
[RotationDesc(ActionID.CorpsacorpsPvE)]
protected sealed override bool MoveForwardAbility(out IAction? act)
Expand Down
4 changes: 4 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/SageRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,10 @@ static partial void ModifyPepsisPvE(ref ActionSetting setting)
};
}

static partial void ModifyIcarusPvE(ref ActionSetting setting)
{
setting.TargetType = TargetType.Move;
}

/// <inheritdoc/>
[RotationDesc(ActionID.IcarusPvE)]
Expand Down
1 change: 1 addition & 0 deletions RotationSolver.Basic/Rotations/Basic/SamuraiRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ static partial void ModifyHissatsuShintenPvE(ref ActionSetting setting)

static partial void ModifyHissatsuGyotenPvE(ref ActionSetting setting)
{
setting.TargetType = TargetType.Move;
setting.ActionCheck = () => Kenki >= 10;
}

Expand Down
6 changes: 6 additions & 0 deletions RotationSolver.Basic/Rotations/Basic/WarriorRotation.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,12 @@ static partial void ModifyChaoticCyclonePvP(ref ActionSetting setting)
{
setting.StatusNeed = [StatusID.NascentChaos_1992];
}

static partial void ModifyOnslaughtPvE(ref ActionSetting setting)
{
setting.TargetType = TargetType.Move;
}

/// <inheritdoc/>
protected override bool EmergencyAbility(IAction nextGCD, out IAction? act)
{
Expand Down
4 changes: 1 addition & 3 deletions RotationSolver.Basic/Rotations/CustomRotation_Ability.cs
Original file line number Diff line number Diff line change
Expand Up @@ -110,16 +110,14 @@ private bool Ability(IAction nextGCD, out IAction? act)
&& ArmsLengthPvE.CanUse(out act)) return true;
}

IBaseAction.TargetOverride = TargetType.Move;
IBaseAction.TargetOverride = null;

IBaseAction.AllEmpty = true;
if (DataCenter.MergedStatus.HasFlag(AutoStatus.MoveForward)
&& Player != null
&& !Player.HasStatus(true, StatusID.Bind)
&& MoveForwardAbility(out act)) return true;

IBaseAction.TargetOverride = null;

if (DataCenter.MergedStatus.HasFlag(AutoStatus.MoveBack)
&& MoveBackAbility(out act)) return true;
IBaseAction.AllEmpty = false;
Expand Down
90 changes: 62 additions & 28 deletions RotationSolver/Localization/Localization.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@
"RotationSolver.Data.UiString.ActionAttack": "Attack",
"RotationSolver.Data.UiString.ActionAbility": "Ability",
"RotationSolver.Data.UiString.ActionFriendly": "Friendly",
"RotationSolver.Data.UiString.SpecialCommandType_MoveForward": "Move Forward",
"RotationSolver.Data.UiString.SpecialCommandType_Start": "Start ",
"RotationSolver.Data.UiString.SpecialCommandType_Smart": "Auto Target ",
"RotationSolver.Data.UiString.SpecialCommandType_EndSpecial": "End Special",
"RotationSolver.Basic.Data.TargetingType.Small": "Small",
"RotationSolver.Data.UiString.SpecialCommandType_Off": "Off",
"RotationSolver.Data.UiString.SpecialCommandType_Cancel": "Cancel",
"RotationSolver.Data.UiString.ConfigWindow_About_Punchline": "Analyses PvE combat information in every frame and finds the best action.",
"RotationSolver.Data.UiString.ConfigWindow_About_Clicking100k": "Well, you must be a lazy player!",
"RotationSolver.Data.UiString.ConfigWindow_About_Clicking500k": "You're tiring RS out, give it a break!",
Expand All @@ -38,35 +45,62 @@
"RotationSolver.Data.UiString.ConfigWindow_About_Compatibility": "Compatibility",
"RotationSolver.Data.UiString.ConfigWindow_About_Supporters": "Supporters",
"RotationSolver.Data.UiString.ConfigWindow_About_Links": "Links",
"RotationSolver.Data.UiString.SpecialCommandType_Smart": "Auto Target ",
"RotationSolver.UI.RotationConfigWindowTab.Rotations": "All rotations that RS has loaded.",
"RotationSolver.Basic.Data.TargetHostileType.TargetsHaveTarget": "Previously engaged targets (engages on countdown timer)",
"RotationSolver.UI.RotationConfigWindowTab.UI": "Settings about the user interface.",
"RotationSolver.UI.RotationConfigWindowTab.Basic": "Basic settings",
"RotationSolver.UI.RotationConfigWindowTab.Auto": "About some general actions usage and conditions.",
"RotationSolver.UI.RotationConfigWindowTab.Extra": "Some features that shouldn't be included in RS but help you.",
"RotationSolver.UI.RotationConfigWindowTab.Debug": "Debug",
"RotationSolver.UI.RotationConfigWindowTab.Target": "The way to find the targets, hostiles or friends.",
"RotationSolver.Data.UiString.ConfigWindow_Basic_Timer": "Timer",
"RotationSolver.Data.UiString.ConfigWindow_Basic_AutoSwitch": "Auto Switch",
"RotationSolver.Data.UiString.ConfigWindow_Basic_NamedConditions": "Named Conditions",
"RotationSolver.Data.UiString.ConfigWindow_Basic_Others": "Others",
"RotationSolver.UI.RotationConfigWindowTab.List": "Some things that have to be lists.",
"RotationSolver.UI.RotationConfigWindowTab.UI": "Settings about the user interface.",
"RotationSolver.Data.UiString.ConfigWindow_UI_Information": "Information",
"RotationSolver.Data.UiString.ConfigWindow_UI_Overlay": "Overlay",
"RotationSolver.Data.UiString.ConfigWindow_UI_Windows": "Windows",
"DrawMeleeOffsetName": "Draw the offset of melee on the screen",
"ShowMoveTargetName": "Show the target of the move action",
"ShowTargetName": "Show Target",
"ShowHostilesIconsName": "Show the hostile target icon",
"TeachingModeName": "Teaching mode",
"UseOverlayWindowName": "Display UI Overlay",
"ShowStateIconName": "Show RS state icon",
"ShowBeneficialPositionsName": "Show beneficial AoE locations.",
"ShowHostilesIconsDescription": "",
"TeachingModeDescription": "",
"ShowTargetDescription": "",
"TargetIconSizeName": "The size of the next ability that will be used icon.",
"TargetIconSizeDescription": "",
"RotationSolver.Data.UiString.ConfigWindow_List_Description": "In this window, you can set the parameters that can be customised using lists.",
"RotationSolver.Data.UiString.ConfigWindow_List_Statuses": "Statuses",
"RotationSolver.Data.UiString.ConfigWindow_List_Actions": "Actions",
"RotationSolver.Data.UiString.ConfigWindow_List_Territories": "Map specific settings",
"RotationSolver.Data.UiString.ConfigWindow_Auto_Description": "Change the way that RS atomatically uses actions.",
"RotationSolver.Data.UiString.ConfigWindow_Auto_ActionUsage": "Action Usage",
"RotationSolver.Data.UiString.ConfigWindow_Auto_ActionCondition": "Action Condition",
"RotationSolver.Data.UiString.ConfigWindow_Auto_StateCondition": "State Condition",
"RotationSolver.Data.UiString.ConfigWindow_Auto_ActionCondition_Description": "This will change the way that Rotation Solver uses actions.",
"MeleeRangeOffsetName": "Melee Range action using offset",
"RotationSolver.Data.UiString.NotInJob": "This option is unavailable while using your current job\n \nRoles or jobs needed:\n{0}",
"InterruptDelayName": "The range of random delay for interrupting hostile targets.",
"InterruptibleMoreCheckName": "Use interrupt abilities if possible.",
"DispelAllName": "Cleanse all dispellable debuffs.",
"HealthForDyingTanksName": "The HP%% for tank to use invulnerability",
"HealthTankRatioName": "Heal tank first if its HP is lower than this.",
"HealthHealerRatioName": "Heal healer first if its HP is lower than this.",
"HealOutOfCombatName": "Heal party members outside of combat.",
"UseHealWhenNotAHealerName": "Use healing abilities when playing a non-healer role",
"OnlyHotOnTanksName": "Use single target healing over time actions only on tanks",
"HealWhenNothingTodoName": "Healing the members with GCD if there is nothing to do in combat.",
"OnlyHealSelfWhenNoHealerName": "Only Heal self When Not a healer",
"AutoBurstName": "Automatically trigger dps burst phase",
"AutoHealName": "Automatic Heal",
"RotationSolver.Data.UiString.ConfigWindow_Auto_ActionUsage_Description": "Which actions Rotation Solver can use.",
"LessMPNoRaiseName": "Never raise player if MP is less than the set value",
"UseTincturesName": "Use Tinctures",
"UseHpPotionsName": "Use HP Potions",
"UseMpPotionsName": "Use MP Potions",
"UseAoeActionName": "Use AoE actions",
"UseAbilityName": "Auto-use abilities",
"AutoHealDescription": "",
"RotationSolver.Data.UiString.NormalTargets": "Normal Targets",
"RotationSolver.Data.UiString.HotTargets": "Targets with HOT",
"RotationSolver.Data.UiString.HpAoe0Gcd": "HP for AoE healing oGCDs",
"RotationSolver.Data.UiString.JobConfigTip": "This config is job specific",
"RotationSolver.Data.UiString.HpAoeGcd": "HP for AoE healing GCDs",
"RotationSolver.Data.UiString.HpSingle0Gcd": "HP for ST healing oGCDs",
"RotationSolver.Data.UiString.HpSingleGcd": "HP for ST healing GCDs",
"RotationSolver.Basic.Attributes.ConfigUnitType.Percent": "Ratio Unit, as percentage.",
"RotationSolver.UI.RotationConfigWindowTab.Extra": "Some features that shouldn't be included in RS but help you.",
"ShowBeneficialPositionsDescription": "",
"UseOverlayWindowDescription": "This top window is used to display some extra information on your game window, such as target's positional, target and sub-target, etc.",
"ShowStateIconDescription": "",
"HostileIconHeightName": "Hostile Icon height from position",
"HostileIconSizeName": "Hostile Icon size",
"HostileIconHeightDescription": "",
"RotationSolver.Basic.Attributes.ConfigUnitType.Pixels": "Display Unit, in pixels.",
"HostileIconSizeDescription": "",
"RotationSolver.UI.RotationConfigWindowTab.Rotations": "All rotations that RS has loaded."
"HealWhenNothingTodoDescription": "",
"HealthHealerRatioDescription": "",
"OnlyHotOnTanksDescription": "",
"HealOutOfCombatDescription": "",
"HealthTankRatioDescription": ""
}

0 comments on commit 4aa9e7a

Please sign in to comment.