All pastes #2051665 Raw Edit

Unnamed

public text v1 · immutable
#2051665 ·published 2011-04-28 18:48 UTC
rendered paste body
        void Fish() {
            SetProgressMaxValue(0);
            Cast();
            System.Threading.Thread.Sleep(2000);
            if ((int)FFACE.Player.Status() != 50)
                return;
            SetStatus("Waiting for bite", false);
            while (true) {
                System.Threading.Thread.Sleep(100);

                //nothing caughts
                if (FFACE.Player.Status() == PlayerStatus.LostCatch) {
                    SetStatus("No fish caught", true);
                    consecutiveNoCatchCount++;
                    SetNoCatches();
                    FishLog.noCatchCount++;
                    UpdateLog();
                    WaitUntil(PlayerStatus.Standing);
                    break;
                }

                //fish on the hook, fight if its the accepted fish, release otherwise
                if (FFACE.Player.Status() == PlayerStatus.FishBite) {
                    consecutiveNoCatchCount = 0;
                    string ID1 = FFACE.Fishing.ID1().ToString();
                    string ID2 = FFACE.Fishing.ID2().ToString();
                    string ID3 = FFACE.Fishing.ID3().ToString();
                    string ID4 = FFACE.Fishing.ID4().ToString();
                    bool isNewFish;
                    FishResult fishFightResult;
                    if (FishDB.FishAccepted(out currentFish, out isNewFish, cbCatchUnknown.Checked, lblRod.Text, lblZone.Text, lblBait.Text, ID1, ID2, ID3, ID4)) {
                        fishFightResult = FightFish();
                        currentFish = GetRealFishName(currentFish);

                        if (isNewFish && (currentFish != "Unknown"))
                            //add the fish to the database
                            FishDB.AddNewFish(ref currentFish, lblZone.Text, lblBait.Text, lblRod.Text, ID1, ID2, ID3, ID4, false);

                        switch (fishFightResult) {
                            case FishResult.Success:
                                FishLog.AddFish(FishLog.caughtFishes, currentFish);
                                break;
                            case FishResult.LackSkill:
                                FishLog.AddFish(FishLog.lackSkillFishes, currentFish);
                                break;
                            case FishResult.InventoryProblem:
                                SetStatus("Inventory might be full", true);
                                Stop();
                                break;
                            case FishResult.RodBreak:
                                FishLog.AddFish(FishLog.rodBreakFishes, currentFish);
                                SetStatus("Rod broken", true);
                                Stop();
                                break;
                            case FishResult.Monster:
                                SetStatus("Monster caught", true);
                                Stop();
                                break;
                            case FishResult.LineBreak:
                                FishLog.AddFish(FishLog.lineBreakFishes, currentFish);
                                break;
                            case FishResult.TooSmall:
                                FishLog.AddFish(FishLog.tooSmallFishes, currentFish);
                                break;
                            case FishResult.Released:
                                FishLog.AddFish(FishLog.releasedFishes, currentFish);
                                break;
                        }
                    }
                    else {
                        decimal fakeFightInterval = System.Math.Round((decimal)rnd.NextDouble() * 7, 1);
                        SetStatus(string.Format("Fake fighting {0} for {1}s", currentFish, fakeFightInterval), false);
                        if (cbFakeFighting.Checked)
                            Thread.Sleep((int)fakeFightInterval * 1000);
                        SetNoCatches();
                        FishLog.AddFish(FishLog.releasedFishes, currentFish);
                        Release();
                    }
                    break;
                }
            }
            WaitUntil(PlayerStatus.Standing);
        }