Inheritance: object_base
        public override void InitOutfit()
        {
            Name             = "Haldur the old fisherman";
            Title            = "(Haldur's Bait)";
            CantWalk         = true;
            Body             = 400;
            Female           = false;
            Race             = Race.Human;
            Hue              = 0x83F8;
            HairItemID       = 8253;
            HairHue          = 1150;
            FacialHairItemID = 0;
            FacialHairHue    = 0;

            AddItem(new Server.Items.Boots(1138));
            AddItem(new Server.Items.Shirt(969));
            AddItem(new Server.Items.ShortPants(1118));
            AddItem(new Server.Items.FloppyHat(1138));

            FishingPole fp = new FishingPole();

            fp.Hue  = 1150;
            fp.Name = "Ancient Fishing Pole";
            AddItem(fp);

            Blessed = true;
        }
Esempio n. 2
0
        public OldFisherman()
        {
            Name     = "James";
            Title    = "Quest Giver";
            Body     = 0x190;
            CantWalk = true;
            Hue      = 0x83F8;
            AddItem(new Server.Items.Boots(1138));
            AddItem(new Server.Items.Shirt(969));
            AddItem(new Server.Items.ShortPants(1118));
            AddItem(new Server.Items.FloppyHat(1138));

            FishingPole fp = new FishingPole();

            fp.Hue  = 1150;
            fp.Name = "Ancient Fishing Pole";
            AddItem(fp);


            int hairHue = 1150;

            switch (Utility.Random(1))
            {
            case 0: AddItem(new ShortHair(hairHue)); break;
            }

            Blessed = true;
        }
        public override void OnAfterSpawn()
        {
            base.OnAfterSpawn();
            Server.Misc.TavernPatrons.RemoveSomeGear(this, false);
            Server.Misc.MorphingTime.CheckNecromancer(this);
            Server.Items.EssenceBase.ColorCitizen(this);
            Item pole = new FishingPole();

            pole.Movable = false;
            AddItem(pole);
        }
Esempio n. 4
0
        public override HarvestDefinition GetDefinition(int tileID, Item tool)
        {
            if (tool is FishingPole)
            {
                FishingPole pole = (FishingPole)tool;
                bool usingLavaHook = HasTypeHook(pole, HookType.Lava);

                if (usingLavaHook && ValidateSpecialTile(tileID))
                    return GetDefinitionFromSpecialTile(tileID);
            }

            return base.GetDefinition(tileID, tool);
        }
Esempio n. 5
0
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            int drop = Utility.RandomMinMax(2, 5);

            for (int i = 0; i < drop; i++)
            {
                Type pieType = m_Pies[Utility.Random(m_Pies.Length)];

                Item pie = Loot.Construct(pieType);

                if (pie != null)
                {
                    c.DropItem(pie);
                }
            }

            drop = Utility.RandomMinMax(2, 5);

            for (int i = 0; i < drop; i++)
            {
                Type steakType = m_Steaks[Utility.Random(m_Steaks.Length)];

                Item steak = Loot.Construct(steakType);

                if (steak != null)
                {
                    c.DropItem(steak);
                }
            }

            c.DropItem(new MessageInABottle(c.Map));
            c.DropItem(new SpecialFishingNet());
            c.DropItem(new SpecialFishingNet());
            c.DropItem(new SpecialFishingNet());
            c.DropItem(new SpecialFishingNet());

            FishingPole pole = new FishingPole();

            BaseRunicTool.ApplyAttributesTo(pole, false, 0, Utility.RandomMinMax(2, 5), 50, 100);
            c.DropItem(pole);

            #region TOL
            if (Core.TOL)
            {
                SkillMasteryPrimer.CheckPrimerDrop(this);
            }
            #endregion
        }
        public override void OnDeath(Container c)
        {
            base.OnDeath(c);

            FishingPole pole = new FishingPole();

            BaseRunicTool.ApplyAttributesTo(pole, false, 0, Utility.RandomMinMax(2, 5), 50, 100);
            c.DropItem(pole);

            c.DropItem(new MessageInABottle(c.Map));
            c.DropItem(new SpecialFishingNet());
            c.DropItem(new SpecialFishingNet());

            SkillMasteryPrimer.CheckPrimerDrop(this);
        }
Esempio n. 7
0
        public override bool SpecialHarvest(Mobile from, Item tool, HarvestDefinition def, Map map, Point3D loc)
        {
            PlayerMobile player = from as PlayerMobile;

            Container pack = from.Backpack;

            if (player != null)
            {
                QuestSystem qs = player.Quest;

                if (qs is CollectorQuest)
                {
                    QuestObjective obj = qs.FindObjective(typeof(FishPearlsObjective));

                    if (obj != null && !obj.Completed)
                    {
                        if (Utility.RandomDouble() < 0.5)
                        {
                            player.SendLocalizedMessage(1055086, "", 0x59); // You pull a shellfish out of the water, and find a rainbow pearl inside of it.

                            obj.CurProgress++;
                        }
                        else
                        {
                            player.SendLocalizedMessage(1055087, "", 0x2C); // You pull a shellfish out of the water, but it doesn't have a rainbow pearl.
                        }

                        return(true);
                    }
                }

                if (from.Region.IsPartOf("Underworld"))
                {
                    foreach (BaseQuest quest in player.Quests)
                    {
                        if (quest is SomethingFishy && Utility.RandomDouble() < 0.1)
                        {
                            Item red = new RedHerring();
                            from.AddToBackpack(red);
                            player.SendLocalizedMessage(1095047, "", 0x23); // You pull a shellfish out of the water, but it doesn't have a rainbow pearl.
                            return(true);
                        }

                        if (quest is ScrapingtheBottom && Utility.RandomDouble() < 0.1)
                        {
                            Item mug = new MudPuppy();
                            from.AddToBackpack(mug);
                            player.SendLocalizedMessage(1095064, "", 0x23); // You pull a shellfish out of the water, but it doesn't have a rainbow pearl.
                            return(true);
                        }
                    }
                }

                #region High Seas Charydbis
                if (tool is FishingPole && CharydbisSpawner.SpawnInstance != null && CharydbisSpawner.SpawnInstance.IsSummoned)
                {
                    Item             oracle = from.Backpack.FindItemByType(typeof(OracleOfTheSea));
                    FishingPole      pole   = tool as FishingPole;
                    CharydbisSpawner sp     = CharydbisSpawner.SpawnInstance;

                    if (oracle != null && sp != null)
                    {
                        if (from.Map != sp.Map)
                        {
                            from.SendLocalizedMessage(1150861); //Charybdis have never been seen in these waters, try somewhere else.
                        }
                        else if (pole.BaitType == typeof(Charydbis) && from.Skills[SkillName.Fishing].Value >= 100)
                        {
                            if (sp.Charydbis == null && !sp.HasSpawned && sp.CurrentLocation.Contains(loc))
                            {
                                Server.Multis.BaseBoat boat = Server.Multis.BaseBoat.FindBoatAt(from, from.Map);
                                sp.SpawnCharydbis(from, loc, sp.Map, boat);
                                sp.HasSpawned = true;
                                pole.OnFishedHarvest(from, true);
                                return(true);
                            }
                            else if (sp.LastLocation.Contains(loc))
                            {
                                from.SendLocalizedMessage(1150862); //The charybdis has moved on from this location, consult Oracle Of The Seas again.
                            }
                        }
                        else
                        {
                            from.SendLocalizedMessage(1150858); //You see a few bubbles, but no charybdis.
                        }
                    }
                }
                #endregion
            }

            return(false);
        }
Esempio n. 8
0
        public static EnhanceResult Invoke(Mobile from, CraftSystem craftSystem, ITool tool, Item item, CraftResource resource, Type resType, ref object resMessage)
        {
            if (item == null)
            {
                return(EnhanceResult.BadItem);
            }

            if (item is GargishNecklace || item is GargishEarrings)
            {
                return(EnhanceResult.BadItem);
            }

            if (!item.IsChildOf(from.Backpack))
            {
                return(EnhanceResult.NotInBackpack);
            }

            IResource ires = item as IResource;

            if (!CanEnhance(item) || ires == null)
            {
                return(EnhanceResult.BadItem);
            }

            if (item is IArcaneEquip)
            {
                IArcaneEquip eq = (IArcaneEquip)item;
                if (eq.IsArcane)
                {
                    return(EnhanceResult.BadItem);
                }
            }

            if (item is BaseWeapon && Spells.Mysticism.EnchantSpell.IsUnderSpellEffects(from, (BaseWeapon)item))
            {
                return(EnhanceResult.Enchanted);
            }

            if (CraftResources.IsStandard(resource))
            {
                return(EnhanceResult.BadResource);
            }

            int num = craftSystem.CanCraft(from, tool, item.GetType());

            if (num > 0)
            {
                resMessage = num;
                return(EnhanceResult.None);
            }

            CraftItem craftItem = craftSystem.CraftItems.SearchFor(item.GetType());

            if (IsSpecial(item, craftSystem))
            {
                craftItem = craftSystem.CraftItems.SearchForSubclass(item.GetType());
            }

            if (craftItem == null || craftItem.Resources.Count == 0)
            {
                return(EnhanceResult.BadItem);
            }

            #region Mondain's Legacy
            if (craftItem.ForceNonExceptional)
            {
                return(EnhanceResult.BadItem);
            }
            #endregion

            bool allRequiredSkills = false;
            if (craftItem.GetSuccessChance(from, resType, craftSystem, false, ref allRequiredSkills) <= 0.0)
            {
                return(EnhanceResult.NoSkill);
            }

            CraftResourceInfo info = CraftResources.GetInfo(resource);

            if (info == null || info.ResourceTypes.Length == 0)
            {
                return(EnhanceResult.BadResource);
            }

            CraftAttributeInfo attributes = info.AttributeInfo;

            if (attributes == null)
            {
                return(EnhanceResult.BadResource);
            }

            int resHue = 0, maxAmount = 0;

            if (!craftItem.ConsumeRes(from, resType, craftSystem, ref resHue, ref maxAmount, ConsumeType.None, ref resMessage))
            {
                return(EnhanceResult.NoResources);
            }

            if (!CraftResources.IsStandard(ires.Resource))
            {
                return(EnhanceResult.AlreadyEnhanced);
            }

            if (craftSystem is DefBlacksmithy)
            {
                AncientSmithyHammer hammer = from.FindItemOnLayer(Layer.OneHanded) as AncientSmithyHammer;
                if (hammer != null)
                {
                    hammer.UsesRemaining--;
                    if (hammer.UsesRemaining < 1)
                    {
                        hammer.Delete();
                    }
                }
            }

            int phys = 0, fire = 0, cold = 0, pois = 0, nrgy = 0;
            int dura = 0, luck = 0, lreq = 0, dinc = 0;
            int baseChance = 0;

            bool physBonus = false;
            bool fireBonus = false;
            bool coldBonus = false;
            bool nrgyBonus = false;
            bool poisBonus = false;
            bool duraBonus = false;
            bool luckBonus = false;
            bool lreqBonus = false;
            bool dincBonus = false;

            if (item is BaseWeapon)
            {
                BaseWeapon weapon = (BaseWeapon)item;

                if (weapon.ExtendedWeaponAttributes.AssassinHoned > 0)
                {
                    return(EnhanceResult.BadItem);
                }

                baseChance = 20;

                dura = weapon.MaxHitPoints;
                luck = weapon.Attributes.Luck;
                lreq = weapon.WeaponAttributes.LowerStatReq;
                dinc = weapon.Attributes.WeaponDamage;

                fireBonus = (attributes.WeaponFireDamage > 0);
                coldBonus = (attributes.WeaponColdDamage > 0);
                nrgyBonus = (attributes.WeaponEnergyDamage > 0);
                poisBonus = (attributes.WeaponPoisonDamage > 0);

                duraBonus = (attributes.WeaponDurability > 0);
                luckBonus = (attributes.WeaponLuck > 0);
                lreqBonus = (attributes.WeaponLowerRequirements > 0);
                dincBonus = (dinc > 0);
            }
            else if (item is BaseArmor)
            {
                BaseArmor armor = (BaseArmor)item;

                baseChance = 20;

                phys = armor.PhysicalResistance;
                fire = armor.FireResistance;
                cold = armor.ColdResistance;
                pois = armor.PoisonResistance;
                nrgy = armor.EnergyResistance;

                dura = armor.MaxHitPoints;
                luck = armor.Attributes.Luck;
                lreq = armor.ArmorAttributes.LowerStatReq;

                physBonus = (attributes.ArmorPhysicalResist > 0);
                fireBonus = (attributes.ArmorFireResist > 0);
                coldBonus = (attributes.ArmorColdResist > 0);
                nrgyBonus = (attributes.ArmorEnergyResist > 0);
                poisBonus = (attributes.ArmorPoisonResist > 0);

                duraBonus = (attributes.ArmorDurability > 0);
                luckBonus = (attributes.ArmorLuck > 0);
                lreqBonus = (attributes.ArmorLowerRequirements > 0);
                dincBonus = false;
            }
            else if (item is FishingPole)
            {
                FishingPole pole = (FishingPole)item;

                baseChance = 20;

                luck = pole.Attributes.Luck;

                luckBonus = (attributes.ArmorLuck > 0);
                lreqBonus = (attributes.ArmorLowerRequirements > 0);
                dincBonus = false;
            }

            int skill = from.Skills[craftSystem.MainSkill].Fixed / 10;

            if (skill >= 100)
            {
                baseChance -= (skill - 90) / 10;
            }

            EnhanceResult res = EnhanceResult.Success;

            PlayerMobile user = from as PlayerMobile;

            if (physBonus)
            {
                CheckResult(ref res, baseChance + phys);
            }

            if (fireBonus)
            {
                CheckResult(ref res, baseChance + fire);
            }

            if (coldBonus)
            {
                CheckResult(ref res, baseChance + cold);
            }

            if (nrgyBonus)
            {
                CheckResult(ref res, baseChance + nrgy);
            }

            if (poisBonus)
            {
                CheckResult(ref res, baseChance + pois);
            }

            if (duraBonus)
            {
                CheckResult(ref res, baseChance + (dura / 40));
            }

            if (luckBonus)
            {
                CheckResult(ref res, baseChance + 10 + (luck / 2));
            }

            if (lreqBonus)
            {
                CheckResult(ref res, baseChance + (lreq / 4));
            }

            if (dincBonus)
            {
                CheckResult(ref res, baseChance + (dinc / 4));
            }

            if (user.NextEnhanceSuccess)
            {
                user.NextEnhanceSuccess = false;
                user.SendLocalizedMessage(1149969); // The magical aura that surrounded you disipates and you feel that your item enhancement chances have returned to normal.
                res = EnhanceResult.Success;
            }

            switch (res)
            {
            case EnhanceResult.Broken:
            {
                if (!craftItem.ConsumeRes(from, resType, craftSystem, ref resHue, ref maxAmount, ConsumeType.Half, ref resMessage))
                {
                    return(EnhanceResult.NoResources);
                }

                item.Delete();
                break;
            }

            case EnhanceResult.Success:
            {
                if (!craftItem.ConsumeRes(from, resType, craftSystem, ref resHue, ref maxAmount, ConsumeType.All, ref resMessage))
                {
                    return(EnhanceResult.NoResources);
                }

                if (craftItem.CaddelliteCraft)
                {
                    Caddellite.TryInfuse(from, item, craftSystem);
                }

                if (item is IResource)
                {
                    ((IResource)item).Resource = resource;
                }

                if (item is BaseWeapon)
                {
                    BaseWeapon w = (BaseWeapon)item;
                    w.DistributeMaterialBonus(attributes);

                    int hue = w.GetElementalDamageHue();

                    if (hue > 0)
                    {
                        w.Hue = hue;
                    }
                }
                else if (item is BaseArmor)
                {
                    ((BaseArmor)item).DistributeMaterialBonus(attributes);
                }
                else if (item is FishingPole)
                {
                    ((FishingPole)item).DistributeMaterialBonus(attributes);
                }
                break;
            }

            case EnhanceResult.Failure:
            {
                if (!craftItem.ConsumeRes(from, resType, craftSystem, ref resHue, ref maxAmount, ConsumeType.Half, ref resMessage))
                {
                    return(EnhanceResult.NoResources);
                }

                break;
            }
            }

            return(res);
        }
 public InternalSellInfo()
 {
     Add(typeof(FishingPole), FishingPole.GetSBSellValue());
     //Add(typeof(FishCommissionCompletedDeed), FishCommissionCompletedDeed.GetSBSellValue());
 }
Esempio n. 10
0
 public InternalBuyInfo()
 {
     Add(new GenericBuyInfo("Fishing Pole", typeof(FishingPole), FishingPole.GetSBPurchaseValue(), 50, 0xDC0, 0));
 }
Esempio n. 11
0
            public static void VendorBeg(Mobile m, object targeted, double chance)
            {
                //Console.WriteLine("Chance: {0}", chance);
                Mobile t          = (Mobile)targeted;
                Item   reward     = null;
                string rewardName = "";


                if (chance > .99 && m.Skills.Begging.Base >= 100)     //Vendor Only (1 hour cooldown)
                {
                    int rand = Utility.Random(9);                     //0-9 (10 Total) (40% chance for a item)
                    if (rand == 0)
                    {
                        reward     = new RockArtifact();                     //Rock Artifact
                        rewardName = "A rock";
                    }
                    else if (rand == 2)
                    {
                        reward     = new BeggerCoins(24);                     //Special Coins
                        rewardName = "24 dull slver coins.";
                    }
                    else if (rand == 4)                     //Fur Boots
                    {
                        reward     = new FurBoots();
                        rewardName = "a pair of Fur Boots";
                    }
                    else if (rand == 6)
                    {
                        reward     = new FlowerGarland();
                        rewardName = "a flower Garland";
                    }
                }
                Console.WriteLine("RewardName (1) {0}", reward);
                if (chance > .95 && m.Skills.Begging.Base >= 90 && reward == null)
                {
                    int rand = Utility.Random(9);
                    Console.WriteLine("Random 2 is {0}", rand);
                    if (rand == 0)
                    {
                        reward     = new BegBedRoll();
                        rewardName = "Bedroll";
                    }
                    else if (rand == 1)
                    {
                        reward     = new Cookies();
                        rewardName = "Cookies";
                    }
                    else if (rand == 3)
                    {
                        reward     = new FishSteak();
                        rewardName = "Fish Steaks";
                    }
                    else if (rand == 4)
                    {
                        reward     = new FishingPole();
                        rewardName = "Fishing Pole";
                    }
                    else if (rand == 6)
                    {
                        reward     = new BeggerCoins(12);
                        rewardName = "12 Dull Silver Coins.";
                    }
                    else if (rand == 7)
                    {
                        reward     = new Turnip();
                        rewardName = "Turnip";
                    }
                    else if (rand == 9)
                    {
                        reward     = new CeramicMug();
                        rewardName = "Ceramic Mug";
                    }
                }
                Console.WriteLine("RewardName (2) {0}", reward);
                if (reward == null)
                {
                    JunkBeg(m, t, chance);
                }
                else
                {
                    Reward(m, t, reward, rewardName);
                }
            }
Esempio n. 12
0
        public override void OnDoubleClick(Mobile from)
        {
            if (!from.Alive && from.AccessLevel == AccessLevel.Player)
            {
                from.SendMessage("You must be alive to use this.");
                return;
            }

            if (!from.InRange(Location, 2) && from.AccessLevel == AccessLevel.Player)
            {
                from.SendMessage("You are too far away to activate this.");
                return;
            }

            if (!from.CanBeginAction(typeof(FishingPole)))
            {
                from.SendMessage("You must wait a few moments before attempting to use that again.");
                return;
            }

            if (m_CurrentItem < m_MaxItems)
            {
                bool        hasFishingPole = false;
                FishingPole fishingPole    = from.FindItemOnLayer(Layer.TwoHanded) as FishingPole;

                if (fishingPole != null)
                {
                    hasFishingPole = true;
                }

                from.BeginAction(typeof(FishingPole));

                Timer.DelayCall(TimeSpan.FromSeconds(5), delegate
                {
                    if (from != null)
                    {
                        from.EndAction(typeof(FishingPole));
                    }
                });

                from.Direction = Utility.GetDirection(from.Location, Location);

                if (hasFishingPole)
                {
                    from.SendMessage("You fish around within the fountain's water...");
                    from.Animate(11, 5, 1, true, false, 0);

                    from.RevealingAction();

                    Timer.DelayCall(TimeSpan.FromSeconds(1), delegate
                    {
                        if (this == null)
                        {
                            return;
                        }
                        if (Deleted)
                        {
                            return;
                        }
                        if (from == null)
                        {
                            return;
                        }
                        if (!from.Alive || from.Deleted)
                        {
                            return;
                        }

                        Effects.PlaySound(Location, Map, 0x027);
                    });
                }

                else
                {
                    from.SendMessage("You kneel down and begin searching the fountain's water. You feel, however, that a fishing pole and some skill at fishing would be of great benefit here...");

                    from.RevealingAction();

                    from.Animate(32, 5, 1, true, false, 0); //Bend Down
                    Effects.PlaySound(Location, Map, 0x027);
                }

                int waterCount = Utility.RandomMinMax(1, 2);
                for (int a = 0; a < waterCount; a++)
                {
                    TimedStatic water = new TimedStatic(Utility.RandomList(4650, 4651, 4653, 4654, 4655), 10);
                    water.Name = "foul water";
                    water.Hue  = 1107;

                    Point3D waterLocation = new Point3D(Location.X + Utility.RandomMinMax(-1, 1), Location.Y + Utility.RandomMinMax(-1, 1), Location.Z);

                    SpellHelper.AdjustField(ref waterLocation, Map, 12, false);
                    water.MoveToWorld(waterLocation, Map);
                }

                Timer.DelayCall(TimeSpan.FromSeconds(5), delegate
                {
                    if (from == null)
                    {
                        return;
                    }
                    if (from.Deleted || !from.Alive)
                    {
                        return;
                    }
                    if (this == null)
                    {
                        return;
                    }
                    if (Deleted)
                    {
                        return;
                    }

                    RetrievalAttempt(from, hasFishingPole);
                });
            }

            else
            {
                from.SendMessage("The fountain's water appears to be devoid of life and items.");
            }
        }
Esempio n. 13
0
        public static void CheckTournament(Mobile from, Mobile fisher, Item dropped)
        {
            if (!isRunning)
            {
                // Only giving a extra reward for 10+ fish

                from.SendMessage("A reward has been placed in your bank box.");
                Bag bag = new Bag();
                bag.DropItem(new BankCheck(250 * dropped.Amount));
                bag.DropItem(new Harpoon(Utility.RandomMinMax(2, 5)));

                switch (Utility.Random(2))
                {
                case 0: bag.DropItem(new SpecialFishingNet()); break;

                case 1: bag.DropItem(new MessageInABottle()); break;
                }

                if (dropped.Amount > 19)
                {
                    fisher.Say("Wow! You caught {0}. You should have placed in the tournament! Better luck next time!", dropped.Amount.ToString());
                    bag.DropItem(new PowerScroll(SkillName.Fishing, 105));
                }
                else if (dropped.Amount > 18)
                {
                    fisher.Say("Wow! You caught 19. You were so close! Better luck next time!");
                    bag.DropItem(new FabledFishingNet());
                }
                else if (dropped.Amount > 17)
                {
                    fisher.Say("Wow! You caught 18. You did amazing. Better luck next time!");

                    FloppyHat fh = new FloppyHat();
                    fh.Hue      = Utility.RandomMinMax(2498, 2640);
                    fh.Name     = "a designer fishing hat";
                    fh.LootType = LootType.Blessed;
                    bag.DropItem(fh);
                }
                else if (dropped.Amount > 16)
                {
                    fisher.Say("Wow! You caught 17. Almost... Maybe next time!");

                    Sandals s = new Sandals();
                    s.Hue      = Utility.RandomMinMax(1910, 2040);
                    s.Name     = "a designer fishing sandals";
                    s.LootType = LootType.Blessed;
                    bag.DropItem(s);
                }
                else if (dropped.Amount > 15)
                {
                    fisher.Say("You caught 16. Thats not bad but you could have done better! Maybe next time!");

                    FishingPole fp = new FishingPole();
                    fp.Hue  = Utility.RandomMinMax(1150, 1175);
                    fp.Name = "a painted fishing pole";
                    bag.DropItem(fp);
                }
                else if (dropped.Amount > 14)
                {
                    fisher.Say("You caught 15. Bad luck! Maybe next time!");

                    Item junk = new Item(Utility.RandomList(17784, 17785));
                    junk.Name = "a sea horse statue";
                    bag.DropItem(junk);
                }
                else if (dropped.Amount > 13)
                {
                    fisher.Say("You caught 14. Maybe try different waters next time!");

                    Item junk = new Item(Utility.RandomList(17786, 17787));
                    junk.Name = "a mermaid statue";
                    bag.DropItem(junk);
                }
                else if (dropped.Amount > 12)
                {
                    fisher.Say("You caught 13. Did you bring ale? You have to bring ale!");

                    Spellbook sb = new Spellbook();
                    sb.Name = "Fishing For Dummies";
                    sb.Hue  = 52;
                    bag.DropItem(sb);
                }
                else if (dropped.Amount > 11)
                {
                    fisher.Say("You caught 12. Try different bait next time!");

                    Item junk = new Item(Utility.RandomList(0x1EA3, 0x1EA4, 0x1EA5, 0x1EA6));
                    junk.Name = "a worn fishing net";
                    bag.DropItem(junk);
                }
                else if (dropped.Amount > 10)
                {
                    fisher.Say("You caught 11...");

                    Item junk = new Item(0x154D);
                    junk.Name = "a barrel of fish (Not for shooting)";
                    bag.DropItem(junk);
                }
                else if (dropped.Amount > 9)
                {
                    fisher.Say("You only caught 10. Half way... is still to far!");
                }
                else if (dropped.Amount > 8)
                {
                    fisher.Say("You only caught 9. Half way... is still to far!");
                }
                else if (dropped.Amount > 7)
                {
                    fisher.Say("You only caught 8... How long did you say you have been fishing?");
                }
                else if (dropped.Amount > 6)
                {
                    fisher.Say("You only caught 7... Find a lot of shoes do you?");
                }
                else if (dropped.Amount > 5)
                {
                    fisher.Say("You only caught 6... Ever consider taking up something more productivy like bird watching?");
                }
                else if (dropped.Amount > 4)
                {
                    fisher.Say("You only caught 5... Ever consider taking up something more exciting like... baskit weaving?");
                }
                else if (dropped.Amount > 3)
                {
                    fisher.Say("You caught 4!?! Was your cat on fire?");
                }
                else if (dropped.Amount > 2)
                {
                    fisher.Say("You caught 3!?! Were you sleeping all this time?");
                }
                else if (dropped.Amount > 1)
                {
                    fisher.Say("Two fish? Maybe you should keep them in a tank and hope they multiply!");
                }
                else if (dropped.Amount > 0)
                {
                    fisher.Say("One... One fish? Did someone hand this to you? Did you find this flopping around town? Tell me you didn't fish and catch this one lonely fish?");
                }

                BankBox box = from.BankBox;
                box.DropItem(bag);
                dropped.Delete();
            }
            else if (isRunning)
            {
                if (DateTime.UtcNow.DayOfWeek == TournyOne)
                {
                    BankBox box = from.BankBox;

                    if (from.Backpack.ConsumeTotal(typeof(ToxicTrout), 20) && firstPlace == null)
                    {
                        firstPlace = from.Name;
                        World.Broadcast(0x35, true, "{0} has came in first in todays fishing tournament!", firstPlace);
                        fisher.Say("Congrats! You are the first person to catch twenty toxic trout! Well done!");
                        from.SendMessage("Your reward has been placed into your bank box!");
                        box.DropItem(GiveReward(from, 1));
                    }
                    else if (from.Backpack.ConsumeTotal(typeof(ToxicTrout), 20) && secondPlace == null)
                    {
                        secondPlace = from.Name;
                        World.Broadcast(0x35, true, "{0} has placed 2nd in todays fishing tournament!", firstPlace);
                        fisher.Say("Congrats! You are the second person to catch twenty toxic trout! Well done!");
                        from.SendMessage("Your reward has been placed into your bank box!");
                        box.DropItem(GiveReward(from, 2));
                    }
                    else if (from.Backpack.ConsumeTotal(typeof(ToxicTrout), 20) && thirdPlace == null)
                    {
                        isRunning  = false;
                        thirdPlace = from.Name;
                        World.Broadcast(0x35, true, "{0} has placed 3rd in todays fishing tournament!", firstPlace);
                        World.Broadcast(0x35, true, "The tournament is now over! Congratulations to todays winners!", firstPlace);
                        World.Broadcast(0x35, true, "If you didnt win today bring what fish you gathered and drop them on a tournament master to claim a consolation prize!", firstPlace);
                        fisher.Say("Congrats! You are the third person to catch twenty toxic trout! Well done!");
                        from.SendMessage("Your reward has been placed into your bank box!");
                        box.DropItem(GiveReward(from, 3));
                    }
                    else
                    {
                        fisher.Say("You need to catch and bring me twenty toxic trout before anyone else to win this tournament!");
                        fisher.Say("Why are you standing around here! Go fish!!!");
                    }
                }
                else if (DateTime.UtcNow.DayOfWeek == TournyTwo)
                {
                    BankBox box = from.BankBox;

                    if (from.Backpack.ConsumeTotal(typeof(CottonCandySwordfish), 20) && firstPlace == null)
                    {
                        firstPlace = from.Name;
                        World.Broadcast(0x35, true, "{0} has came in first in todays fishing tournament!", firstPlace);
                        fisher.Say("Congrats! You are the first person to catch twenty cotton candy swordfish! Well done!");
                        from.SendMessage("Your reward has been placed into your bank box!");
                        box.DropItem(GiveReward(from, 1));
                    }
                    else if (from.Backpack.ConsumeTotal(typeof(CottonCandySwordfish), 20) && secondPlace == null)
                    {
                        secondPlace = from.Name;
                        World.Broadcast(0x35, true, "{0} has placed 2nd in todays fishing tournament!", firstPlace);
                        fisher.Say("Congrats! You are the second person to catch twenty cotton candy swordfish! Well done!");
                        from.SendMessage("Your reward has been placed into your bank box!");
                        box.DropItem(GiveReward(from, 2));
                    }
                    else if (from.Backpack.ConsumeTotal(typeof(CottonCandySwordfish), 20) && thirdPlace == null)
                    {
                        isRunning  = false;
                        thirdPlace = from.Name;
                        World.Broadcast(0x35, true, "{0} has placed 3rd in todays fishing tournament!", firstPlace);
                        World.Broadcast(0x35, true, "The tournament is now over! Congratulations to todays winners!", firstPlace);
                        World.Broadcast(0x35, true, "If you didnt win today bring what fish you gathered and drop them on a tournament master to claim a consolation prize!", firstPlace);
                        fisher.Say("Congrats! You are the third person to catch twenty cotton candy swordfish! Well done!");
                        from.SendMessage("Your reward has been placed into your bank box!");
                        box.DropItem(GiveReward(from, 3));
                    }
                    else
                    {
                        fisher.Say("You need to catch and bring me twenty cotton candy swordfish before anyone else to win this tournament!");
                        fisher.Say("Why are you standing around here! Go fish!!!");
                    }
                }
                else if (DateTime.UtcNow.DayOfWeek == TournyThree)
                {
                    BankBox box = from.BankBox;

                    if (from.Backpack.ConsumeTotal(typeof(MalasMoonfish), 20) && firstPlace == null)
                    {
                        firstPlace = from.Name;
                        World.Broadcast(0x35, true, "{0} has came in first in todays fishing tournament!", firstPlace);
                        fisher.Say("Congrats! You are the first person to catch twenty malas moonfish! Well done!");
                        from.SendMessage("Your reward has been placed into your bank box!");
                        box.DropItem(GiveReward(from, 1));
                    }
                    else if (from.Backpack.ConsumeTotal(typeof(MalasMoonfish), 20) && secondPlace == null)
                    {
                        secondPlace = from.Name;
                        World.Broadcast(0x35, true, "{0} has placed 2nd in todays fishing tournament!", firstPlace);
                        fisher.Say("Congrats! You are the second person to catch twenty malas moonfish! Well done!");
                        from.SendMessage("Your reward has been placed into your bank box!");
                        box.DropItem(GiveReward(from, 2));
                    }
                    else if (from.Backpack.ConsumeTotal(typeof(MalasMoonfish), 20) && thirdPlace == null)
                    {
                        isRunning  = false;
                        thirdPlace = from.Name;
                        World.Broadcast(0x35, true, "{0} has placed 3rd in todays fishing tournament!", firstPlace);
                        World.Broadcast(0x35, true, "The tournament is now over! Congratulations to todays winners!", firstPlace);
                        World.Broadcast(0x35, true, "If you didnt win today bring what fish you gathered and drop them on a tournament master to claim a consolation prize!", firstPlace);
                        fisher.Say("Congrats! You are the third person to catch twenty malas moonfish! Well done!");
                        from.SendMessage("Your reward has been placed into your bank box!");
                        box.DropItem(GiveReward(from, 3));
                    }
                    else
                    {
                        fisher.Say("You need to catch and bring me twenty malas moonfish before anyone else to win this tournament!");
                        fisher.Say("Why are you standing around here! Go fish!!!");
                    }
                }
                else                 // Why? Because thats the kinda world we live in...
                {
                    fisher.Say("I am sorry, I musta got my days mixxed up!");
                    isRunning = false;
                }
            }
            else
            {
                if (firstPlace != null && secondPlace != null && thirdPlace != null)
                {
                    fisher.Say("Todays tournament has ended! Todays winners are {0}, {1), and {2}!", firstPlace, secondPlace, thirdPlace);
                }
                else
                {
                    fisher.Say("Todays tournament has ended!");
                }
            }
        }