Skip to content

Commit dd2ed4e

Browse files
committed
get rid of the stuff that didn't work anyway
1 parent c4e8669 commit dd2ed4e

File tree

1 file changed

+5
-62
lines changed

1 file changed

+5
-62
lines changed

BossMod/Modules/Dawntrail/Quest/TheIcingOnTheCake.cs

Lines changed: 5 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -87,74 +87,17 @@ public override void AddAIHints(int slot, Actor actor, PartyRolesConfig.Assignme
8787
class BakeOffAI(BossModule module) : RotationModule<AutoBakeOff>(module);
8888
public class AutoBakeOff(WorldState ws) : UnmanagedRotation(ws, 5)
8989
{
90-
private const float BakeOffRange = 5;
91-
private static readonly Angle BakeOffHalfAngle = 30.Degrees();
92-
9390
protected override void Exec(Actor? primaryTarget)
9491
{
95-
if (Player.FindStatus(SID.Transporting) != null)
96-
return;
97-
if (!Player.InCombat)
98-
return;
99-
100-
var totalCount = Hints.PriorityTargets.Count();
101-
if (totalCount == 0)
102-
return;
103-
10492
if (primaryTarget == null)
105-
{
106-
var best = Hints.PriorityTargets.MinBy(e => (e.Actor.Position - Player.Position).LengthSq());
107-
if (best != null)
108-
{
109-
Hints.ForcedTarget = best.Actor;
110-
Hints.GoalZones.Add(Hints.GoalSingleTarget(best.Actor, BakeOffRange));
111-
}
11293
return;
113-
}
114-
115-
var rangeToTarget = Player.DistanceToHitbox(primaryTarget);
116-
if (rangeToTarget > BakeOffRange + primaryTarget.HitboxRadius + 0.5f)
94+
if (Player.FindStatus(SID.Transporting) != null)
11795
return;
118-
119-
var playerPos = Player.Position;
120-
var currentDir = Player.Rotation.ToDirection();
121-
var inCone = Hints.NumPriorityTargetsInAOECone(playerPos, BakeOffRange, currentDir, BakeOffHalfAngle);
122-
123-
if (inCone == totalCount)
124-
{
125-
UseAction(Roleplay.AID.BakeOff, primaryTarget);
96+
if (!Player.InCombat)
12697
return;
127-
}
128-
129-
Hints.GoalZones.Add(Hints.GoalAOECone(primaryTarget, BakeOffRange, BakeOffHalfAngle));
130-
var bestFacing = BestFacingForAllTargets();
131-
UseAction(Roleplay.AID.BakeOff, primaryTarget, 0, default, bestFacing);
132-
}
133-
134-
private Angle? BestFacingForAllTargets()
135-
{
136-
var playerPos = Player.Position;
137-
var inRange = Hints.PriorityTargets
138-
.Where(e => (e.Actor.Position - playerPos).Length() <= BakeOffRange + e.Actor.HitboxRadius)
139-
.Select(e => (e.Actor.Position - playerPos).ToAngle().Normalized())
140-
.OrderBy(a => a.Rad)
141-
.ToList();
142-
if (inRange.Count == 0)
143-
return null;
144-
if (inRange.Count == 1)
145-
return inRange[0];
146-
147-
var first = inRange[0];
148-
var last = inRange[^1];
149-
var spanForward = last.Rad - first.Rad;
150-
var spanWrap = 2 * MathF.PI - spanForward;
151-
var coneSpan = 2 * BakeOffHalfAngle.Rad;
152-
153-
if (spanForward <= coneSpan)
154-
return first + (last - first) * 0.5f;
155-
if (spanWrap <= coneSpan)
156-
return (last + (spanWrap * 0.5f).Radians()).Normalized();
157-
return first + (last - first) * 0.5f;
98+
// iterate Hints.PriorityTargets and compare against Hints.NumPriorityTargetsInAOECone. Only execute when they're the same.
99+
// If they're not the same, set a goal zone for an area that will hit all of them, then call useaction with the correct facing angle
100+
UseAction(Roleplay.AID.BakeOff, primaryTarget);
158101
}
159102
}
160103

0 commit comments

Comments
 (0)