public void FishingCheck()
{
int index = (int)(Center.X / 16.0);
int j1 = (int)(Center.Y / 16.0);
if (Main.tile[index, j1].liquid < 0)
++j1;
bool flag1 = false;
bool flag2 = false;
int i1 = index;
int i2 = index;
while (i1 > 10 && Main.tile[i1, j1].liquid > 0 && !WorldGen.SolidTile(i1, j1))
--i1;
while (i2 < Main.maxTilesX - 10 && Main.tile[i2, j1].liquid > 0 && !WorldGen.SolidTile(i2, j1))
++i2;
int num1 = 0;
for (int i3 = i1; i3 <= i2; ++i3)
{
int j2 = j1;
while (Main.tile[i3, j2].liquid > 0 && !WorldGen.SolidTile(i3, j2) && j2 < Main.maxTilesY - 10)
{
++num1;
++j2;
if (Main.tile[i3, j2].lava())
flag1 = true;
else if (Main.tile[i3, j2].honey())
flag2 = true;
}
}
if (flag2)
num1 = (int)(num1 * 1.5);
if (num1 < 75)
{
Main.player[owner].displayedFishingInfo = "Not Enough Water!";
}
else
{
int num2 = Main.player[owner].FishingLevel();
if (num2 == 0)
return;
Main.player[owner].displayedFishingInfo = (string)(object)num2 + (object)" Fishing Power";
if (num2 < 0)
{
if (num2 != -1)
return;
Main.player[owner].displayedFishingInfo = "Warning!";
if (index >= 380 && index <= Main.maxTilesX - 380 || (num1 <= 1000 || NPC.AnyNPCs(370)))
return;
ai[1] = (Main.rand.Next(-180, -60) - 100);
localAI[1] = num2;
netUpdate = true;
}
else
{
int num3 = 300;
float num4 = (Main.maxTilesX / 4200);
float num5 = (float)((position.Y / 16.0 - (60.0 + 10.0 * (num4 * num4))) / (Main.worldSurface / 6.0));
if (num5 < 0.25)
num5 = 0.25f;
if (num5 > 1.0)
num5 = 1f;
int num6 = (int)(num3 * num5);
float num7 = num1 / num6;
if (num7 < 1.0)
num2 = (int)(num2 * num7);
float num8 = 1f - num7;
if (num1 < num6)
Main.player[owner].displayedFishingInfo = string.Concat(new object[4]
{
num2,
" (",
-Math.Round(num8 * 100.0),
"%) Fishing Power"
});
int num9 = (num2 + 75) / 2;
if (Main.player[owner].wet || Main.rand.Next(100) > num9)
return;
int Type = 0;
int num10 = j1 >= Main.worldSurface * 0.5 ? (j1 >= Main.worldSurface ? (j1 >= Main.rockLayer ? (j1 >= Main.maxTilesY - 300 ? 4 : 3) : 2) : 1) : 0;
int num11 = 150;
int maxValue1 = num11 / num2;
int maxValue2 = num11 * 2 / num2;
int maxValue3 = num11 * 7 / num2;
int maxValue4 = num11 * 15 / num2;
int maxValue5 = num11 * 30 / num2;
if (maxValue1 < 2)
maxValue1 = 2;
if (maxValue2 < 3)
maxValue2 = 3;
if (maxValue3 < 4)
maxValue3 = 4;
if (maxValue4 < 5)
maxValue4 = 5;
if (maxValue5 < 6)
maxValue5 = 6;
bool flag3 = false;
bool flag4 = false;
bool flag5 = false;
bool flag6 = false;
bool flag7 = false;
if (Main.rand.Next(maxValue1) == 0)
flag3 = true;
if (Main.rand.Next(maxValue2) == 0)
flag4 = true;
if (Main.rand.Next(maxValue3) == 0)
flag5 = true;
if (Main.rand.Next(maxValue4) == 0)
flag6 = true;
if (Main.rand.Next(maxValue5) == 0)
flag7 = true;
int num12 = 10;
if (Main.player[owner].cratePotion)
num12 += 10;
int type = Main.anglerQuestItemNetIDs[Main.anglerQuest];
if (Main.player[owner].HasItem(type))
type = -1;
if (Main.anglerQuestFinished)
type = -1;
if (flag1)
{
if (Main.player[owner].inventory[Main.player[owner].selectedItem].itemId != 2422)
return;
if (flag7)
Type = 2331;
else if (flag6)
Type = 2312;
else if (flag5)
Type = 2315;
}
else if (flag2)
{
if (flag5 || flag4 && Main.rand.Next(2) == 0)
Type = 2314;
else if (flag4 && type == 2451)
Type = 2451;
}
else if (Main.rand.Next(50) > num2 && Main.rand.Next(50) > num2 && num1 < num6)
Type = Main.rand.Next(2337, 2340);
else if (Main.rand.Next(100) < num12)
Type = flag6 || flag7 ? 2336 : (!flag5 || !Main.player[owner].ZoneCorrupt ? (!flag5 || !Main.player[owner].ZoneCrimson ? (!flag5 || !Main.player[owner].ZoneHoly ? (!flag5 || !Main.player[owner].ZoneDungeon ? (!flag5 || !Main.player[owner].ZoneJungle ? (!flag5 || num10 != 0 ? (!flag4 ? 2334 : 2335) : 3206) : 3208) : 3205) : 3207) : 3204) : 3203);
else if (flag7 && Main.rand.Next(5) == 0)
Type = 2423;
else if (flag7 && Main.rand.Next(5) == 0)
Type = 3225;
else if (flag7 && Main.rand.Next(10) == 0)
Type = 2420;
else if (!flag7 && !flag6 && (flag4 && Main.rand.Next(5) == 0))
{
Type = 3196;
}
else
{
bool flag8 = Main.player[owner].ZoneCorrupt;
bool flag9 = Main.player[owner].ZoneCrimson;
if (flag8 && flag9)
{
if (Main.rand.Next(2) == 0)
flag9 = false;
else
flag8 = false;
}
if (flag8)
{
if (flag7 && Main.hardMode && (Main.player[owner].ZoneSnow && num10 == 3) && Main.rand.Next(3) != 0)
Type = 2429;
else if (flag7 && Main.hardMode && Main.rand.Next(2) == 0)
Type = 3210;
else if (flag5)
Type = 2330;
else if (flag4 && type == 2454)
Type = 2454;
else if (flag4 && type == 2485)
Type = 2485;
else if (flag4 && type == 2457)
Type = 2457;
else if (flag4)
Type = 2318;
}
else if (flag9)
{
if (flag7 && Main.hardMode && (Main.player[owner].ZoneSnow && num10 == 3) && Main.rand.Next(3) != 0)
Type = 2429;
else if (flag7 && Main.hardMode && Main.rand.Next(2) == 0)
Type = 3211;
else if (flag4 && type == 2477)
Type = 2477;
else if (flag4 && type == 2463)
Type = 2463;
else if (flag4)
Type = 2319;
else if (flag3)
Type = 2305;
}
else if (Main.player[owner].ZoneHoly)
{
if (flag7 && Main.hardMode && (Main.player[owner].ZoneSnow && num10 == 3) && Main.rand.Next(3) != 0)
Type = 2429;
else if (flag7 && Main.hardMode && Main.rand.Next(2) == 0)
Type = 3209;
else if (num10 > 1 && flag6)
Type = 2317;
else if (num10 > 1 && flag5 && type == 2465)
Type = 2465;
else if (num10 < 2 && flag5 && type == 2468)
Type = 2468;
else if (flag5)
Type = 2310;
else if (flag4 && type == 2471)
Type = 2471;
else if (flag4)
Type = 2307;
}
if (Type == 0 && Main.player[owner].ZoneSnow)
{
if (num10 < 2 && flag4 && type == 2467)
Type = 2467;
else if (num10 == 1 && flag4 && type == 2470)
Type = 2470;
else if (num10 >= 2 && flag4 && type == 2484)
Type = 2484;
else if (num10 > 1 && flag4 && type == 2466)
Type = 2466;
else if (flag3 && Main.rand.Next(12) == 0 || flag4 && Main.rand.Next(6) == 0)
Type = 3197;
else if (flag4)
Type = 2306;
else if (flag3)
Type = 2299;
else if (num10 > 1 && Main.rand.Next(3) == 0)
Type = 2309;
}
if (Type == 0 && Main.player[owner].ZoneJungle)
{
if (Main.hardMode && flag7 && Main.rand.Next(2) == 0)
Type = 3018;
else if (num10 == 1 && flag4 && type == 2452)
Type = 2452;
else if (num10 == 1 && flag4 && type == 2483)
Type = 2483;
else if (num10 == 1 && flag4 && type == 2488)
Type = 2488;
else if (num10 >= 1 && flag4 && type == 2486)
Type = 2486;
else if (num10 > 1 && flag4)
Type = 2311;
else if (flag4)
Type = 2313;
else if (flag3)
Type = 2302;
}
if (Type == 0 && Main.shroomTiles > 200 && (flag4 && type == 2475))
Type = 2475;
if (Type == 0)
{
if (num10 <= 1 && (index < 380 || index > Main.maxTilesX - 380) && num1 > 1000)
{
Type = !flag6 || Main.rand.Next(2) != 0 ? (!flag6 ? (!flag5 || Main.rand.Next(5) != 0 ? (!flag5 || Main.rand.Next(2) != 0 ? (!flag4 || type != 2480 ? (!flag4 || type != 2481 ? (!flag4 ? (!flag3 || Main.rand.Next(2) != 0 ? (!flag3 ? 2297 : 2300) : 2301) : 2316) : 2481) : 2480) : 2332) : 2438) : 2342) : 2341;
}
else
{
int num13 = Main.sandTiles;
}
}
if (Type == 0)
Type = num10 >= 2 || !flag4 || type != 2461 ? (num10 != 0 || !flag4 || type != 2453 ? (num10 != 0 || !flag4 || type != 2473 ? (num10 != 0 || !flag4 || type != 2476 ? (num10 >= 2 || !flag4 || type != 2458 ? (num10 >= 2 || !flag4 || type != 2459 ? (num10 != 0 || !flag4 ? (num10 <= 0 || num10 >= 3 || (!flag4 || type != 2455) ? (num10 != 1 || !flag4 || type != 2479 ? (num10 != 1 || !flag4 || type != 2456 ? (num10 != 1 || !flag4 || type != 2474 ? (num10 <= 1 || !flag5 || Main.rand.Next(5) != 0 ? (num10 <= 1 || !flag7 ? (num10 <= 1 || !flag6 || Main.rand.Next(2) != 0 ? (num10 <= 1 || !flag5 ? (num10 <= 1 || !flag4 || type != 2478 ? (num10 <= 1 || !flag4 || type != 2450 ? (num10 <= 1 || !flag4 || type != 2464 ? (num10 <= 1 || !flag4 || type != 2469 ? (num10 <= 2 || !flag4 || type != 2462 ? (num10 <= 2 || !flag4 || type != 2482 ? (num10 <= 2 || !flag4 || type != 2472 ? (num10 <= 2 || !flag4 || type != 2460 ? (num10 <= 1 || !flag4 || Main.rand.Next(4) == 0 ? (num10 <= 1 || !flag4 && !flag3 && Main.rand.Next(4) != 0 ? (!flag4 || type != 2487 ? (num1 <= 1000 || !flag3 ? 2290 : 2298) : 2487) : (Main.rand.Next(4) != 0 ? 2309 : 2303)) : 2303) : 2460) : 2472) : 2482) : 2462) : 2469) : 2464) : 2450) : 2478) : 2321) : 2320) : 2308) : (!Main.hardMode || Main.rand.Next(2) != 0 ? 2436 : 2437)) : 2474) : 2456) : 2479) : 2455) : 2304) : 2459) : 2458) : 2476) : 2473) : 2453) : 2461;
}
if (Type <= 0)
return;
if (Main.player[owner].sonarPotion)
{
Item newItem = new Item();
newItem.SetDefaults(Type, false);
newItem.position = position;
ItemText.NewText(newItem, 1, true, false);
}
float num14 = num2;
ai[1] = Main.rand.Next(-240, -90) - num14;
localAI[1] = Type;
netUpdate = true;
}
}
}