Underscore76
Cowpoke
Both uses are in FishingRod.DoFunction
For effect of bubbles on catch times:
And for the depth check:
this means you can get particle effects that imply the bubbles are working, but if your bobber is in the top 16/left 16 px of the tile then the depth effect will not be applied due to the 80px offset of the bobber rect.
For effect of bubbles on catch times:
C#:
// FishingRod.DoFunction
Rectangle fishSplashRect = new Rectangle(location.fishSplashPoint.X * 64, location.fishSplashPoint.Y * 64, 64, 64);
if (frenzy)
{
fishSplashRect.Inflate(32, 32);
}
if (new Rectangle((int)this.bobber.X - 32, (int)this.bobber.Y - 32, 64, 64).Intersects(fishSplashRect))
{
this.timeUntilFishingBite /= (frenzy ? 2 : 4);
location.temporarySprites.Add(new TemporaryAnimatedSprite(10, this.bobber.Value - new Vector2(32f, 32f), Color.Cyan));
}
C#:
// FishingRod.DoFunction
bool splashPoint = false;
if (location.fishSplashPoint != null)
{
Rectangle fishSplashRect2 = new Rectangle(location.fishSplashPoint.X * 64, location.fishSplashPoint.Y * 64, 64, 64);
Rectangle bobberRect = new Rectangle((int)this.bobber.X - 80, (int)this.bobber.Y - 80, 64, 64);
splashPoint = fishSplashRect2.Intersects(bobberRect);
}
o = location.getFish(this.fishingNibbleAccumulator, bait?.QualifiedItemId, this.clearWaterDistance + (splashPoint ? 1 : 0), who, baitPotency + (splashPoint ? 0.4 : 0.0), bobberTile);