Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ FishingCheck_RollItemDrop()

void Terraria.Projectile.FishingCheck_RollItemDrop ( ref FishingAttempt fisher)
inlineprivate

Definition at line 17324 of file Projectile.cs.

17325 {
17326 bool flag = Main.player[owner].ZoneCorrupt;
17327 bool flag2 = Main.player[owner].ZoneCrimson;
17328 bool flag3 = Main.player[owner].ZoneJungle;
17329 bool flag4 = Main.player[owner].ZoneSnow;
17330 bool flag5 = Main.player[owner].ZoneDungeon;
17331 if (!NPC.downedBoss3)
17332 {
17333 flag5 = false;
17334 }
17335 if (Main.notTheBeesWorld && !Main.remixWorld && Main.rand.Next(2) == 0)
17336 {
17337 flag3 = false;
17338 }
17339 if (Main.remixWorld && fisher.heightLevel == 0)
17340 {
17341 flag = false;
17342 flag2 = false;
17343 }
17344 else if (flag && flag2)
17345 {
17346 if (Main.rand.Next(2) == 0)
17347 {
17348 flag2 = false;
17349 }
17350 else
17351 {
17352 flag = false;
17353 }
17354 }
17355 if (fisher.rolledEnemySpawn > 0)
17356 {
17357 return;
17358 }
17359 if (fisher.inLava)
17360 {
17361 if (fisher.CanFishInLava)
17362 {
17363 if (fisher.crate && Main.rand.Next(6) == 0)
17364 {
17365 fisher.rolledItemDrop = (Main.hardMode ? 4878 : 4877);
17366 }
17367 else if (fisher.legendary && Main.hardMode && Main.rand.Next(3) == 0)
17368 {
17369 fisher.rolledItemDrop = Main.rand.NextFromList(new short[4] { 4819, 4820, 4872, 2331 });
17370 }
17371 else if (fisher.legendary && !Main.hardMode && Main.rand.Next(3) == 0)
17372 {
17373 fisher.rolledItemDrop = Main.rand.NextFromList(new short[3] { 4819, 4820, 4872 });
17374 }
17375 else if (fisher.veryrare)
17376 {
17377 fisher.rolledItemDrop = 2312;
17378 }
17379 else if (fisher.rare)
17380 {
17381 fisher.rolledItemDrop = 2315;
17382 }
17383 }
17384 return;
17385 }
17386 if (fisher.inHoney)
17387 {
17388 if (fisher.rare || (fisher.uncommon && Main.rand.Next(2) == 0))
17389 {
17390 fisher.rolledItemDrop = 2314;
17391 }
17392 else if (fisher.uncommon && fisher.questFish == 2451)
17393 {
17394 fisher.rolledItemDrop = 2451;
17395 }
17396 return;
17397 }
17398 if (Main.rand.Next(50) > fisher.fishingLevel && Main.rand.Next(50) > fisher.fishingLevel && fisher.waterTilesCount < fisher.waterNeededToFish)
17399 {
17400 fisher.rolledItemDrop = Main.rand.Next(2337, 2340);
17401 if (Main.rand.Next(8) == 0)
17402 {
17403 fisher.rolledItemDrop = 5275;
17404 }
17405 return;
17406 }
17407 if (fisher.crate)
17408 {
17409 bool hardMode = Main.hardMode;
17410 if (fisher.rare && flag5)
17411 {
17412 fisher.rolledItemDrop = (hardMode ? 3984 : 3205);
17413 }
17414 else if (fisher.rare && (Main.player[owner].ZoneBeach || (Main.remixWorld && fisher.heightLevel == 1 && (double)fisher.Y >= Main.rockLayer && Main.rand.Next(2) == 0)))
17415 {
17416 fisher.rolledItemDrop = (hardMode ? 5003 : 5002);
17417 }
17418 else if (fisher.rare && flag)
17419 {
17420 fisher.rolledItemDrop = (hardMode ? 3982 : 3203);
17421 }
17422 else if (fisher.rare && flag2)
17423 {
17424 fisher.rolledItemDrop = (hardMode ? 3983 : 3204);
17425 }
17426 else if (fisher.rare && Main.player[owner].ZoneHallow)
17427 {
17428 fisher.rolledItemDrop = (hardMode ? 3986 : 3207);
17429 }
17430 else if (fisher.rare && flag3)
17431 {
17432 fisher.rolledItemDrop = (hardMode ? 3987 : 3208);
17433 }
17434 else if (fisher.rare && Main.player[owner].ZoneSnow)
17435 {
17436 fisher.rolledItemDrop = (hardMode ? 4406 : 4405);
17437 }
17438 else if (fisher.rare && Main.player[owner].ZoneDesert)
17439 {
17440 fisher.rolledItemDrop = (hardMode ? 4408 : 4407);
17441 }
17442 else if (fisher.rare && fisher.heightLevel == 0)
17443 {
17444 fisher.rolledItemDrop = (hardMode ? 3985 : 3206);
17445 }
17446 else if (fisher.veryrare || fisher.legendary)
17447 {
17448 fisher.rolledItemDrop = (hardMode ? 3981 : 2336);
17449 }
17450 else if (fisher.uncommon)
17451 {
17452 fisher.rolledItemDrop = (hardMode ? 3980 : 2335);
17453 }
17454 else
17455 {
17456 fisher.rolledItemDrop = (hardMode ? 3979 : 2334);
17457 }
17458 return;
17459 }
17460 if (!NPC.combatBookWasUsed && Main.bloodMoon && fisher.legendary && Main.rand.Next(3) == 0)
17461 {
17462 fisher.rolledItemDrop = 4382;
17463 return;
17464 }
17465 if (Main.bloodMoon && fisher.legendary && Main.rand.Next(2) == 0)
17466 {
17467 fisher.rolledItemDrop = 5240;
17468 return;
17469 }
17470 if (fisher.legendary && Main.rand.Next(5) == 0)
17471 {
17472 fisher.rolledItemDrop = 2423;
17473 return;
17474 }
17475 if (fisher.legendary && Main.rand.Next(5) == 0)
17476 {
17477 fisher.rolledItemDrop = 3225;
17478 return;
17479 }
17480 if (fisher.legendary && Main.rand.Next(10) == 0)
17481 {
17482 fisher.rolledItemDrop = 2420;
17483 return;
17484 }
17485 if (!fisher.legendary && !fisher.veryrare && fisher.uncommon && Main.rand.Next(5) == 0)
17486 {
17487 fisher.rolledItemDrop = 3196;
17488 return;
17489 }
17490 bool flag6 = Main.player[owner].ZoneDesert;
17491 if (flag5)
17492 {
17493 flag6 = false;
17494 if (fisher.rolledItemDrop == 0 && fisher.veryrare && Main.rand.Next(7) == 0)
17495 {
17496 fisher.rolledItemDrop = 3000;
17497 }
17498 }
17499 else
17500 {
17501 if (flag)
17502 {
17503 if (fisher.legendary && Main.hardMode && Main.player[owner].ZoneSnow && fisher.heightLevel == 3 && Main.rand.Next(3) != 0)
17504 {
17505 fisher.rolledItemDrop = 2429;
17506 }
17507 else if (fisher.legendary && Main.hardMode && Main.rand.Next(2) == 0)
17508 {
17509 fisher.rolledItemDrop = 3210;
17510 }
17511 else if (fisher.rare)
17512 {
17513 fisher.rolledItemDrop = 2330;
17514 }
17515 else if (fisher.uncommon && fisher.questFish == 2454)
17516 {
17517 fisher.rolledItemDrop = 2454;
17518 }
17519 else if (fisher.uncommon && fisher.questFish == 2485)
17520 {
17521 fisher.rolledItemDrop = 2485;
17522 }
17523 else if (fisher.uncommon && fisher.questFish == 2457)
17524 {
17525 fisher.rolledItemDrop = 2457;
17526 }
17527 else if (fisher.uncommon)
17528 {
17529 fisher.rolledItemDrop = 2318;
17530 }
17531 }
17532 else if (flag2)
17533 {
17534 if (fisher.legendary && Main.hardMode && Main.player[owner].ZoneSnow && fisher.heightLevel == 3 && Main.rand.Next(3) != 0)
17535 {
17536 fisher.rolledItemDrop = 2429;
17537 }
17538 else if (fisher.legendary && Main.hardMode && Main.rand.Next(2) == 0)
17539 {
17540 fisher.rolledItemDrop = 3211;
17541 }
17542 else if (fisher.uncommon && fisher.questFish == 2477)
17543 {
17544 fisher.rolledItemDrop = 2477;
17545 }
17546 else if (fisher.uncommon && fisher.questFish == 2463)
17547 {
17548 fisher.rolledItemDrop = 2463;
17549 }
17550 else if (fisher.uncommon)
17551 {
17552 fisher.rolledItemDrop = 2319;
17553 }
17554 else if (fisher.common)
17555 {
17556 fisher.rolledItemDrop = 2305;
17557 }
17558 }
17559 else if (Main.player[owner].ZoneHallow)
17560 {
17561 if (flag6 && Main.rand.Next(2) == 0)
17562 {
17563 if (fisher.uncommon && fisher.questFish == 4393)
17564 {
17565 fisher.rolledItemDrop = 4393;
17566 }
17567 else if (fisher.uncommon && fisher.questFish == 4394)
17568 {
17569 fisher.rolledItemDrop = 4394;
17570 }
17571 else if (fisher.uncommon)
17572 {
17573 fisher.rolledItemDrop = 4410;
17574 }
17575 else if (Main.rand.Next(3) == 0)
17576 {
17577 fisher.rolledItemDrop = 4402;
17578 }
17579 else
17580 {
17581 fisher.rolledItemDrop = 4401;
17582 }
17583 }
17584 else if (fisher.legendary && Main.hardMode && Main.player[owner].ZoneSnow && fisher.heightLevel == 3 && Main.rand.Next(3) != 0)
17585 {
17586 fisher.rolledItemDrop = 2429;
17587 }
17588 else if (fisher.legendary && Main.hardMode && Main.rand.Next(2) == 0)
17589 {
17590 fisher.rolledItemDrop = 3209;
17591 }
17592 else if (fisher.legendary && Main.hardMode && Main.rand.Next(3) != 0)
17593 {
17594 fisher.rolledItemDrop = 5274;
17595 }
17596 else if (fisher.heightLevel > 1 && fisher.veryrare)
17597 {
17598 fisher.rolledItemDrop = 2317;
17599 }
17600 else if (fisher.heightLevel > 1 && fisher.uncommon && fisher.questFish == 2465)
17601 {
17602 fisher.rolledItemDrop = 2465;
17603 }
17604 else if (fisher.heightLevel < 2 && fisher.uncommon && fisher.questFish == 2468)
17605 {
17606 fisher.rolledItemDrop = 2468;
17607 }
17608 else if (fisher.rare)
17609 {
17610 fisher.rolledItemDrop = 2310;
17611 }
17612 else if (fisher.uncommon && fisher.questFish == 2471)
17613 {
17614 fisher.rolledItemDrop = 2471;
17615 }
17616 else if (fisher.uncommon)
17617 {
17618 fisher.rolledItemDrop = 2307;
17619 }
17620 }
17621 if (fisher.rolledItemDrop == 0 && Main.player[owner].ZoneGlowshroom && fisher.uncommon && fisher.questFish == 2475)
17622 {
17623 fisher.rolledItemDrop = 2475;
17624 }
17625 if (flag4 && flag3 && Main.rand.Next(2) == 0)
17626 {
17627 flag4 = false;
17628 }
17629 if (fisher.rolledItemDrop == 0 && flag4)
17630 {
17631 if (fisher.heightLevel < 2 && fisher.uncommon && fisher.questFish == 2467)
17632 {
17633 fisher.rolledItemDrop = 2467;
17634 }
17635 else if (fisher.heightLevel == 1 && fisher.uncommon && fisher.questFish == 2470)
17636 {
17637 fisher.rolledItemDrop = 2470;
17638 }
17639 else if (fisher.heightLevel >= 2 && fisher.uncommon && fisher.questFish == 2484)
17640 {
17641 fisher.rolledItemDrop = 2484;
17642 }
17643 else if (fisher.heightLevel > 1 && fisher.uncommon && fisher.questFish == 2466)
17644 {
17645 fisher.rolledItemDrop = 2466;
17646 }
17647 else if ((fisher.common && Main.rand.Next(12) == 0) || (fisher.uncommon && Main.rand.Next(6) == 0))
17648 {
17649 fisher.rolledItemDrop = 3197;
17650 }
17651 else if (fisher.uncommon)
17652 {
17653 fisher.rolledItemDrop = 2306;
17654 }
17655 else if (fisher.common)
17656 {
17657 fisher.rolledItemDrop = 2299;
17658 }
17659 else if (fisher.heightLevel > 1 && Main.rand.Next(3) == 0)
17660 {
17661 fisher.rolledItemDrop = 2309;
17662 }
17663 }
17664 if (fisher.rolledItemDrop == 0 && flag3)
17665 {
17666 if (fisher.heightLevel == 1 && fisher.uncommon && fisher.questFish == 2452)
17667 {
17668 fisher.rolledItemDrop = 2452;
17669 }
17670 else if (fisher.heightLevel == 1 && fisher.uncommon && fisher.questFish == 2483)
17671 {
17672 fisher.rolledItemDrop = 2483;
17673 }
17674 else if (fisher.heightLevel == 1 && fisher.uncommon && fisher.questFish == 2488)
17675 {
17676 fisher.rolledItemDrop = 2488;
17677 }
17678 else if (fisher.heightLevel >= 1 && fisher.uncommon && fisher.questFish == 2486)
17679 {
17680 fisher.rolledItemDrop = 2486;
17681 }
17682 else if (fisher.heightLevel > 1 && fisher.uncommon)
17683 {
17684 fisher.rolledItemDrop = 2311;
17685 }
17686 else if (fisher.uncommon)
17687 {
17688 fisher.rolledItemDrop = 2313;
17689 }
17690 else if (fisher.common)
17691 {
17692 fisher.rolledItemDrop = 2302;
17693 }
17694 }
17695 }
17696 if (fisher.rolledItemDrop == 0)
17697 {
17698 if ((Main.remixWorld && fisher.heightLevel == 1 && (double)fisher.Y >= Main.rockLayer && Main.rand.Next(3) == 0) || (fisher.heightLevel <= 1 && (fisher.X < 380 || fisher.X > Main.maxTilesX - 380) && fisher.waterTilesCount > 1000))
17699 {
17700 if (fisher.veryrare && Main.rand.Next(2) == 0)
17701 {
17702 fisher.rolledItemDrop = 2341;
17703 }
17704 else if (fisher.veryrare)
17705 {
17706 fisher.rolledItemDrop = 2342;
17707 }
17708 else if (fisher.rare && Main.rand.Next(5) == 0)
17709 {
17710 fisher.rolledItemDrop = 2438;
17711 }
17712 else if (fisher.rare && Main.rand.Next(3) == 0)
17713 {
17714 fisher.rolledItemDrop = 2332;
17715 }
17716 else if (fisher.uncommon && fisher.questFish == 2480)
17717 {
17718 fisher.rolledItemDrop = 2480;
17719 }
17720 else if (fisher.uncommon && fisher.questFish == 2481)
17721 {
17722 fisher.rolledItemDrop = 2481;
17723 }
17724 else if (fisher.uncommon)
17725 {
17726 fisher.rolledItemDrop = 2316;
17727 }
17728 else if (fisher.common && Main.rand.Next(2) == 0)
17729 {
17730 fisher.rolledItemDrop = 2301;
17731 }
17732 else if (fisher.common)
17733 {
17734 fisher.rolledItemDrop = 2300;
17735 }
17736 else
17737 {
17738 fisher.rolledItemDrop = 2297;
17739 }
17740 }
17741 else if (flag6)
17742 {
17743 if (fisher.uncommon && fisher.questFish == 4393)
17744 {
17745 fisher.rolledItemDrop = 4393;
17746 }
17747 else if (fisher.uncommon && fisher.questFish == 4394)
17748 {
17749 fisher.rolledItemDrop = 4394;
17750 }
17751 else if (fisher.uncommon)
17752 {
17753 fisher.rolledItemDrop = 4410;
17754 }
17755 else if (Main.rand.Next(3) == 0)
17756 {
17757 fisher.rolledItemDrop = 4402;
17758 }
17759 else
17760 {
17761 fisher.rolledItemDrop = 4401;
17762 }
17763 }
17764 }
17765 if (fisher.rolledItemDrop != 0)
17766 {
17767 return;
17768 }
17769 if (fisher.heightLevel < 2 && fisher.uncommon && fisher.questFish == 2461)
17770 {
17771 fisher.rolledItemDrop = 2461;
17772 }
17773 else if (fisher.heightLevel == 0 && fisher.uncommon && fisher.questFish == 2453)
17774 {
17775 fisher.rolledItemDrop = 2453;
17776 }
17777 else if (fisher.heightLevel == 0 && fisher.uncommon && fisher.questFish == 2473)
17778 {
17779 fisher.rolledItemDrop = 2473;
17780 }
17781 else if (fisher.heightLevel == 0 && fisher.uncommon && fisher.questFish == 2476)
17782 {
17783 fisher.rolledItemDrop = 2476;
17784 }
17785 else if (fisher.heightLevel < 2 && fisher.uncommon && fisher.questFish == 2458)
17786 {
17787 fisher.rolledItemDrop = 2458;
17788 }
17789 else if (fisher.heightLevel < 2 && fisher.uncommon && fisher.questFish == 2459)
17790 {
17791 fisher.rolledItemDrop = 2459;
17792 }
17793 else if (fisher.heightLevel == 0 && fisher.uncommon)
17794 {
17795 fisher.rolledItemDrop = 2304;
17796 }
17797 else if (fisher.heightLevel > 0 && fisher.heightLevel < 3 && fisher.uncommon && fisher.questFish == 2455)
17798 {
17799 fisher.rolledItemDrop = 2455;
17800 }
17801 else if (fisher.heightLevel == 1 && fisher.uncommon && fisher.questFish == 2479)
17802 {
17803 fisher.rolledItemDrop = 2479;
17804 }
17805 else if (fisher.heightLevel == 1 && fisher.uncommon && fisher.questFish == 2456)
17806 {
17807 fisher.rolledItemDrop = 2456;
17808 }
17809 else if (fisher.heightLevel == 1 && fisher.uncommon && fisher.questFish == 2474)
17810 {
17811 fisher.rolledItemDrop = 2474;
17812 }
17813 else if (fisher.heightLevel > 1 && fisher.rare && Main.rand.Next(5) == 0)
17814 {
17815 if (Main.hardMode && Main.rand.Next(2) == 0)
17816 {
17817 fisher.rolledItemDrop = 2437;
17818 }
17819 else
17820 {
17821 fisher.rolledItemDrop = 2436;
17822 }
17823 }
17824 else if (fisher.heightLevel > 1 && fisher.legendary && Main.rand.Next(3) != 0)
17825 {
17826 fisher.rolledItemDrop = 2308;
17827 }
17828 else if (fisher.heightLevel > 1 && fisher.veryrare && Main.rand.Next(2) == 0)
17829 {
17830 fisher.rolledItemDrop = 2320;
17831 }
17832 else if (fisher.heightLevel > 1 && fisher.rare)
17833 {
17834 fisher.rolledItemDrop = 2321;
17835 }
17836 else if (fisher.heightLevel > 1 && fisher.uncommon && fisher.questFish == 2478)
17837 {
17838 fisher.rolledItemDrop = 2478;
17839 }
17840 else if (fisher.heightLevel > 1 && fisher.uncommon && fisher.questFish == 2450)
17841 {
17842 fisher.rolledItemDrop = 2450;
17843 }
17844 else if (fisher.heightLevel > 1 && fisher.uncommon && fisher.questFish == 2464)
17845 {
17846 fisher.rolledItemDrop = 2464;
17847 }
17848 else if (fisher.heightLevel > 1 && fisher.uncommon && fisher.questFish == 2469)
17849 {
17850 fisher.rolledItemDrop = 2469;
17851 }
17852 else if (fisher.heightLevel > 2 && fisher.uncommon && fisher.questFish == 2462)
17853 {
17854 fisher.rolledItemDrop = 2462;
17855 }
17856 else if (fisher.heightLevel > 2 && fisher.uncommon && fisher.questFish == 2482)
17857 {
17858 fisher.rolledItemDrop = 2482;
17859 }
17860 else if (fisher.heightLevel > 2 && fisher.uncommon && fisher.questFish == 2472)
17861 {
17862 fisher.rolledItemDrop = 2472;
17863 }
17864 else if (fisher.heightLevel > 2 && fisher.uncommon && fisher.questFish == 2460)
17865 {
17866 fisher.rolledItemDrop = 2460;
17867 }
17868 else if (fisher.heightLevel > 1 && fisher.uncommon && Main.rand.Next(4) != 0)
17869 {
17870 fisher.rolledItemDrop = 2303;
17871 }
17872 else if (fisher.heightLevel > 1 && (fisher.uncommon || fisher.common || Main.rand.Next(4) == 0))
17873 {
17874 if (Main.rand.Next(4) == 0)
17875 {
17876 fisher.rolledItemDrop = 2303;
17877 }
17878 else
17879 {
17880 fisher.rolledItemDrop = 2309;
17881 }
17882 }
17883 else if (fisher.uncommon && fisher.questFish == 2487)
17884 {
17885 fisher.rolledItemDrop = 2487;
17886 }
17887 else if (fisher.waterTilesCount > 1000 && fisher.common)
17888 {
17889 fisher.rolledItemDrop = 2298;
17890 }
17891 else
17892 {
17893 fisher.rolledItemDrop = 2290;
17894 }
17895 }

References Terraria.Main.bloodMoon, Terraria.NPC.combatBookWasUsed, Terraria.NPC.downedBoss3, Terraria.Main.hardMode, Terraria.Main.maxTilesX, Terraria.Main.notTheBeesWorld, Terraria.Projectile.owner, Terraria.Main.player, Terraria.Main.rand, Terraria.Main.remixWorld, and Terraria.Main.rockLayer.

Referenced by Terraria.Projectile.FishingCheck().