public override Type MutateType(Type type, Mobile from, Item tool, HarvestDefinition def, Map map, Point3D loc, HarvestResource resource) { bool deepWater = SpecialFishingNet.FullValidation(map, loc.X, loc.Y); double skillBase = from.Skills[SkillName.Fishing].Base; double skillValue = from.Skills[SkillName.Fishing].Value; for (int i = 0; i < m_MutateTable.Length; ++i) { MutateEntry entry = m_MutateTable[i]; if (!deepWater && entry.m_DeepWater) { continue; } if (skillBase >= entry.m_ReqSkill) { double chance = (skillValue - entry.m_MinSkill) / (entry.m_MaxSkill - entry.m_MinSkill); if (chance > Utility.RandomDouble()) { return(entry.m_Types[Utility.Random(entry.m_Types.Length)]); } } } return(type); }
public override Type MutateType(Type type, Mobile from, Item tool, HarvestDefinition def, Map map, Point3D loc, HarvestResource resource) { bool deepWater = SpecialFishingNet.FullValidation(map, loc.X, loc.Y); double skillBase = from.Skills[SkillName.Fishing].Base; double skillValue = from.Skills[SkillName.Fishing].Value; for (int i = 0; i < m_MutateTable.Length; ++i) { // Determine the chance to fish up the Mutate Table items, and... // pick the *first* Type that passes the random chance test MutateEntry entry = m_MutateTable[i]; if (!deepWater && entry.m_DeepWater) { continue; } if (skillBase >= entry.m_ReqSkill) { double chance = (skillValue - entry.m_MinSkill) / (entry.m_MaxSkill - entry.m_MinSkill); if (chance > Utility.RandomDouble()) { return(entry.m_Types[Utility.Random(entry.m_Types.Length)]); } // This checks Net/BF/Map/MIB chances first, before doing easy items } } return(type); }
//this generates an item from what is stored in the entry. Note no exception handling public override Item GenerateItem() { //this allows for derived classes of fishing net to fit into this entry. SpecialFishingNet net = (SpecialFishingNet)Activator.CreateInstance(_Type); //note: gump hue display is shifted by 1 for some crazy reason net.Hue = _Hue + 1; net.LootType = _LootType; net.Insured = _Insured; return(net); }
public override Type MutateType(Type type, Mobile from, Item tool, HarvestDefinition def, Map map, Point3D loc, HarvestResource resource) { bool deepWater = SpecialFishingNet.FullValidation(map, loc.X, loc.Y); if (deepWater && CheckDock(from.Location, from.Map)) { deepWater = false; } double skillBase = from.Skills[SkillName.Fishing].Base; double skillValue = from.Skills[SkillName.Fishing].Value; BaseBoat ownerBoat = BaseBoat.FindBoatAt(from.Location, from.Map); double chanceModifier = 1; for (int i = 0; i < m_MutateTable.Length; ++i) { MutateEntry entry = m_MutateTable[i]; if (!deepWater && entry.m_DeepWater) { continue; } if (skillBase >= entry.m_ReqSkill) { double chance = (skillValue - entry.m_MinSkill) / (entry.m_MaxSkill - entry.m_MinSkill); chance *= chanceModifier; if (from.AccessLevel >= AccessLevel.GameMaster) { string typename = "null"; if (entry.m_Types[0] != null) { typename = entry.m_Types[0].Name.ToLower(); } from.SendMessage(0x22, String.Format("{0} : {1:P2} chance", typename, chance)); } if (chance > Utility.RandomDouble()) { return(entry.m_Types[Utility.Random(entry.m_Types.Length)]); } } } return(type); }
public override Type MutateType(Type type, Mobile from, Item tool, HarvestDefinition def, Map map, Point3D loc, HarvestResource resource) { if (FishInfo.IsRareFish(type)) { return(type); } bool deepWater = SpecialFishingNet.FullValidation(map, loc.X, loc.Y); bool junkproof = HasTypeHook(tool, HookType.JunkProof); double skillBase = from.Skills[SkillName.Fishing].Base; double skillValue = from.Skills[SkillName.Fishing].Value; var table = Siege.SiegeShard ? m_SiegeMutateTable : m_MutateTable; for (int i = 0; i < table.Length; ++i) { MutateEntry entry = m_MutateTable[i]; // RedHerring / MudPuppy if (i == 6 && (from.Region == null || !from.Region.IsPartOf("Underworld"))) { continue; } if (junkproof && i == 5 && 0.80 >= Utility.RandomDouble()) { continue; } if (!deepWater && entry.m_DeepWater) { continue; } if (skillBase >= entry.m_ReqSkill) { double chance = (skillValue - entry.m_MinSkill) / (entry.m_MaxSkill - entry.m_MinSkill); if (chance > Utility.RandomDouble()) { return(entry.m_Types[Utility.Random(entry.m_Types.Length)]); } } } return(type); }
public override bool CheckHarvestSkill(Map map, Point3D loc, Mobile from, HarvestResource res, HarvestDefinition def) { bool deepWater = SpecialFishingNet.ValidateDeepWater(map, loc.X, loc.Y); double value = from.Skills[SkillName.Fishing].Value; if (deepWater && value < 75.0) // can't fish here yet { return(from.Skills[def.Skill].Value >= res.ReqSkill); } if (!deepWater && value >= 75.0) // you can fish, but no gains! { return(true); } return(base.CheckHarvestSkill(map, loc, from, res, def)); }
public override Type MutateType(Type type, Mobile from, Item tool, HarvestDefinition def, Map map, Point3D loc, HarvestResource resource) { #region SA Quests PlayerMobile pm = from as PlayerMobile; if (pm != null && pm.Region.IsPartOf("Underworld")) { if (QuestHelper.HasQuest <ScrapingTheBottomQuest>(pm) && 5 > Utility.Random(100)) { return(typeof(MudPuppy)); } if (QuestHelper.HasQuest <SomethingFishyQuest>(pm) && 5 > Utility.Random(100)) { return(typeof(RedHerring)); } } #endregion bool deepWater = SpecialFishingNet.FullValidation(map, loc.X, loc.Y); double skillBase = from.Skills[SkillName.Fishing].Base; double skillValue = from.Skills[SkillName.Fishing].Value; for (int i = 0; i < m_MutateTable.Length; ++i) { MutateEntry entry = m_MutateTable[i]; if (!deepWater && entry.m_DeepWater) { continue; } if (skillBase >= entry.m_ReqSkill) { double chance = (skillValue - entry.m_MinSkill) / (entry.m_MaxSkill - entry.m_MinSkill); if (chance > Utility.RandomDouble()) { return(entry.m_Types[Utility.Random(entry.m_Types.Length)]); } } } return(type); }
public override Type MutateType(Type type, Mobile from, Item tool, HarvestDefinition def, Map map, Point3D loc, HarvestResource resource) { bool deepWater = SpecialFishingNet.FullValidation(map, loc.X, loc.Y); double skillBase = from.Skills[SkillName.Fishing].Base; double skillValue = from.Skills[SkillName.Fishing].Value; for (int i = 0; i < m_MutateTable.Length; ++i) { MutateEntry entry = m_MutateTable[i]; // no deepwater check if you are in a fishing hotspot if (GoodFishingHere(from, new Point2D(loc)) == false) { if (!deepWater && entry.m_DeepWater) { continue; } } if (skillBase >= entry.m_ReqSkill) { double chance = (skillValue - entry.m_MinSkill) / (entry.m_MaxSkill - entry.m_MinSkill); // check for sea quest bonus if (GoodFishingHere(from, new Point2D(loc))) { chance *= GoodFishingBonus(from, new Point2D(loc)); } if (chance > Utility.RandomDouble()) { return(entry.m_Types[Utility.Random(entry.m_Types.Length)]); } } } return(type); }
public override void GenerateLoot() { if (Utility.Random(100) < 20) { Lantern lantern = new Lantern(); lantern.Hue = Utility.RandomMinMax(2113, 2118); PackItem(lantern); } if (Utility.Random(100) < 10) { Item item; switch (Utility.Random(111)) { case 0: item = new Tapestry6W(); break; case 1: item = new MetalChest(); break; case 2: item = new MetalGoldenChest(); break; case 3: item = new MetalBox(); break; case 4: item = new AniLargeVioletFlask(); break; case 5: item = new AniRedRibbedFlask(); break; case 6: item = new AniSmallBlueFlask(); break; case 7: item = new BlueBeaker(); break; case 8: item = new BlueCurvedFlask(); break; case 9: item = new EmptyVial(); break; case 10: item = new EmptyVialsWRack(); break; case 11: item = new LargeFlask(); break; case 12: item = new LargeVioletFlask(); break; //case 13: item = new HourGlass(); break; //case 14: item = new HourGlassAni(); break; case 15: item = new DecorativeDAxeWest(); break; case 16: item = new DecorativeDAxeNorth(); break; case 17: item = new DecorativeBowWest(); break; case 18: item = new DecorativeBowNorth(); break; case 19: item = new DecorativeAxeWest(); break; case 20: item = new DecorativeAxeNorth(); break; case 21: item = new DecorativeShieldSword2West(); break; case 22: item = new DecorativeShieldSword2North(); break; case 23: item = new DecorativeShieldSword1West(); break; case 24: item = new DecorativeShieldSword1North(); break; case 25: item = new DecorativeShield11(); break; case 26: item = new DecorativeShield10(); break; case 27: item = new DecorativeShield9(); break; case 28: item = new DecorativeShield8(); break; case 29: item = new DecorativeShield7(); break; case 30: item = new DecorativeShield6(); break; case 31: item = new DecorativeShield5(); break; case 32: item = new DecorativeShield4(); break; case 33: item = new DecorativeShield3(); break; case 34: item = new DecorativeShield2(); break; case 35: item = new DecorativeShield1(); break; case 36: item = new Whip(); break; case 37: item = new SilverWire(); break; case 38: item = new Rope(); break; case 39: item = new PaintsAndBrush(); break; case 40: item = new IronWire(); break; case 41: item = new GoldWire(); break; case 42: item = new CopperWire(); break; case 43: item = new WoodDebris(); break; case 44: item = new RuinedPainting(); break; case 45: item = new RuinedFallenChairB(); break; case 46: item = new FullVialsWRack(); break; case 47: item = new FullJar(); break; case 48: item = new FullJars2(); break; case 49: item = new FullJars3(); break; case 50: item = new FullJars4(); break; case 51: item = new GreenBeaker(); break; case 52: item = new GreenBottle(); break; case 53: item = new VioletStemmedBottle(); break; case 54: item = new SpinningHourglass(); break; case 55: item = new ArcheryButte(); break; case 56: item = new PhillipsWoodenSteed(); break; case 57: item = new PileOfGlacialSnow(); break; case 58: item = new RedPoinsettia(); break; case 59: item = new RoseOfTrinsic(); break; case 60: item = new RaiseSwitch(); break; case 61: item = new SpecialFishingNet(); break; case 62: item = new SpecialHairDye(); break; case 63: item = new SpecialBeardDye(); break; case 64: item = new SnowPile(); break; case 65: item = new StatueEast2(); break; case 66: item = new StatuePegasus2(); break; case 67: item = new StatueSouth2(); break; case 68: item = new StatueSouthEast(); break; case 69: item = new StatuetteDyeTub(); break; case 70: item = new StatueWest(); break; case 71: item = new TapestryOfSosaria(); break; case 72: item = new WhitePoinsettia(); break; case 73: item = new WindChimes(); break; case 74: item = new ZoogiFungus(); break; case 75: item = new RuinedFallenChairA(); break; case 76: item = new RuinedDrawers(); break; case 77: item = new RuinedClock(); break; case 78: item = new RuinedChair(); break; case 79: item = new RuinedBooks(); break; case 80: item = new RuinedBookcase(); break; case 81: item = new RuinedArmoire(); break; case 82: item = new SmallStretchedHideSouthDeed(); break; case 83: item = new SmallStretchedHideEastDeed(); break; case 84: item = new PolarBearRugSouthDeed(); break; case 85: item = new PolarBearRugEastDeed(); break; case 86: item = new MediumStretchedHideSouthDeed(); break; case 87: item = new MediumStretchedHideEastDeed(); break; case 88: item = new LightFlowerTapestrySouthDeed(); break; case 89: item = new LightFlowerTapestryEastDeed(); break; case 90: item = new DarkFlowerTapestrySouthDeed(); break; case 91: item = new DarkFlowerTapestryEastDeed(); break; case 92: item = new BrownBearRugSouthDeed(); break; case 93: item = new BrownBearRugEastDeed(); break; case 94: item = new WallSconce(); break; case 95: item = new WallTorch(); break; case 96: item = new CandleShort(); break; case 97: item = new CandleLarge(); break; case 98: item = new DecorativeSwordNorth(); break; case 99: item = new DecorativeSwordWest(); break; case 100: item = new Tapestry1N(); break; case 101: item = new Tapestry2N(); break; case 102: item = new Tapestry2W(); break; case 103: item = new Tapestry3N(); break; case 104: item = new Tapestry3W(); break; case 105: item = new Tapestry4N(); break; case 106: item = new Tapestry4W(); break; case 107: item = new Tapestry5N(); break; case 108: item = new Tapestry5W(); break; case 109: item = new Tapestry6N(); break; default: item = new CandleSkull(); break; } item.LootType = LootType.Regular; item.Movable = true; PackItem(item); } }
private static void HarvestBonusEffect(Mobile harvester, Item tool) { if (Utility.Random(70) >= 5) { return; } if (Utility.Random(100) < 2 && harvester.ShilCheckSkill(SkillName.Fishing, 110, 200)) { var sosBottle = new MessageInABottle(); harvester.AddToBackpack(sosBottle); return; } var chance = Utility.Random(1, 10); Item item = null; var message = ""; switch (chance) { case 1: { item = new SpecialFishingNet(); message = "You just found a special fishing net."; break; } case 2: { if (Utility.Random(10) < 4 && !Region.Find(harvester.Location, harvester.Map) .GetRegion <GuardedRegion>()?.IsDisabled() == false) { SpawnCreature(harvester, typeof(WaterElemental)); message = "You attract the attention of a water elemental"; } break; } case 3: { if (Utility.Random(10) < 4) { SpawnCreature(harvester, typeof(Walrus)); message = "A walrus comes by to see what you're doing"; } break; } case 4: { item = new TreasureMap(2, Map.Felucca); message = "You find a tattered old map!"; break; } case 5: { item = new Backpack(); item.AddItem(new Gold(Utility.Random(300) + 100)); message = "You find an old backpack!"; break; } case 6: { item = new Seaweed(); message = "You find some seaweed!"; break; } case 8: { item = GetRandomShell(harvester); message = "You find something valuable!"; break; } } if (item != null) { var cont = harvester.Backpack; if (cont.TryDropItem(harvester, item, false)) { if (message.Length > 0) { harvester.SendSuccessMessage(message); } } else if (message.Length > 0) { harvester.SendFailureMessage(message); } } else if (message.Length > 0) { harvester.SendSuccessMessage(message); } }
private bool IsDeepWater(Point3D p, Map map) { return(SpecialFishingNet.ValidateDeepWater(map, p.X, p.Y) && (map == Map.Trammel || map == Map.Felucca || map == Map.Tokuno)); }
public override void GenerateLoot() { if (Utility.Random(100) <= 20) { int hue = Utility.RandomMinMax(1, 1001); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 10) { int hue = Utility.RandomMinMax(1, 1001); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 5) { int hue = Utility.RandomMinMax(1, 1001); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 5) { int hue = Utility.RandomMinMax(1201, 1255); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 2) { int hue = Utility.RandomMinMax(2101, 2130); Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(100) <= 1) { int hue = 2936; Sandals sandals = new Sandals(); sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(1000) <= 2) { int hue; Sandals sandals = new Sandals(); switch (Utility.Random(7)) { case 0: hue = 1155; break; case 1: hue = 1156; break; case 2: hue = 1157; break; case 3: hue = 1158; break; case 4: hue = 1160; break; case 5: hue = 1172; break; default: hue = 1175; break; } sandals.Hue = hue; PackItem(sandals); } if (Utility.Random(1000) <= 2) { int hue; Sandals sandals = new Sandals(); switch (Utility.Random(5)) { case 0: hue = 1176; break; case 1: hue = 1171; break; case 2: hue = 1159; break; case 3: hue = 1170; break; default: hue = 1161; break; } sandals.Hue = hue; PackItem(sandals); } double chance = Utility.RandomDouble(); if (chance <= 0.10) { Seed seed; PlantType type; switch (Utility.Random(17)) { case 0: type = PlantType.CampionFlowers; break; case 1: type = PlantType.Poppies; break; case 2: type = PlantType.Snowdrops; break; case 3: type = PlantType.Bulrushes; break; case 4: type = PlantType.Lilies; break; case 5: type = PlantType.PampasGrass; break; case 6: type = PlantType.Rushes; break; case 7: type = PlantType.ElephantEarPlant; break; case 8: type = PlantType.Fern; break; case 9: type = PlantType.PonytailPalm; break; case 10: type = PlantType.SmallPalm; break; case 11: type = PlantType.CenturyPlant; break; case 12: type = PlantType.WaterPlant; break; case 13: type = PlantType.SnakePlant; break; case 14: type = PlantType.PricklyPearCactus; break; case 15: type = PlantType.BarrelCactus; break; default: type = PlantType.TribarrelCactus; break; } PlantHue hue; switch (Utility.Random(19)) { case 0: hue = PlantHue.Plain; break; case 1: hue = PlantHue.Red; break; case 2: hue = PlantHue.Blue; break; case 3: hue = PlantHue.Yellow; break; case 4: hue = PlantHue.BrightRed; break; case 5: hue = PlantHue.BrightBlue; break; case 6: hue = PlantHue.BrightYellow; break; case 7: hue = PlantHue.Purple; break; case 8: hue = PlantHue.Green; break; case 9: hue = PlantHue.Orange; break; case 10: hue = PlantHue.BrightPurple; break; case 11: hue = PlantHue.BrightGreen; break; case 12: hue = PlantHue.BrightOrange; break; case 13: hue = PlantHue.Black; break; case 14: hue = PlantHue.White; break; case 15: hue = PlantHue.Pink; break; case 16: hue = PlantHue.Magenta; break; case 17: hue = PlantHue.Aqua; break; default: hue = PlantHue.FireRed; break; } seed = new Seed(type, hue, false); PackItem(seed); if (Utility.Random(500) == 1) { PackItem(new BlackDyeTub()); } if (Utility.Random(100) < 15) { Item item; switch (Utility.Random(111)) { case 0: item = new Tapestry6W(); break; case 1: item = new MetalChest(); break; case 2: item = new MetalGoldenChest(); break; case 3: item = new MetalBox(); break; case 4: item = new AniLargeVioletFlask(); break; case 5: item = new AniRedRibbedFlask(); break; case 6: item = new AniSmallBlueFlask(); break; case 7: item = new BlueBeaker(); break; case 8: item = new BlueCurvedFlask(); break; case 9: item = new EmptyVial(); break; case 10: item = new EmptyVialsWRack(); break; case 11: item = new LargeFlask(); break; case 12: item = new LargeVioletFlask(); break; //case 13: item = new HourGlass(); break; //case 14: item = new HourGlassAni(); break; case 15: item = new DecorativeDAxeWest(); break; case 16: item = new DecorativeDAxeNorth(); break; case 17: item = new DecorativeBowWest(); break; case 18: item = new DecorativeBowNorth(); break; case 19: item = new DecorativeAxeWest(); break; case 20: item = new DecorativeAxeNorth(); break; case 21: item = new DecorativeShieldSword2West(); break; case 22: item = new DecorativeShieldSword2North(); break; case 23: item = new DecorativeShieldSword1West(); break; case 24: item = new DecorativeShieldSword1North(); break; case 25: item = new DecorativeShield11(); break; case 26: item = new DecorativeShield10(); break; case 27: item = new DecorativeShield9(); break; case 28: item = new DecorativeShield8(); break; case 29: item = new DecorativeShield7(); break; case 30: item = new DecorativeShield6(); break; case 31: item = new DecorativeShield5(); break; case 32: item = new DecorativeShield4(); break; case 33: item = new DecorativeShield3(); break; case 34: item = new DecorativeShield2(); break; case 35: item = new DecorativeShield1(); break; case 36: item = new Whip(); break; case 37: item = new SilverWire(); break; case 38: item = new Rope(); break; case 39: item = new PaintsAndBrush(); break; case 40: item = new IronWire(); break; case 41: item = new GoldWire(); break; case 42: item = new CopperWire(); break; case 43: item = new WoodDebris(); break; case 44: item = new RuinedPainting(); break; case 45: item = new RuinedFallenChairB(); break; case 46: item = new FullVialsWRack(); break; case 47: item = new FullJar(); break; case 48: item = new FullJars2(); break; case 49: item = new FullJars3(); break; case 50: item = new FullJars4(); break; case 51: item = new GreenBeaker(); break; case 52: item = new GreenBottle(); break; case 53: item = new VioletStemmedBottle(); break; case 54: item = new SpinningHourglass(); break; case 55: item = new ArcheryButte(); break; case 56: item = new PhillipsWoodenSteed(); break; case 57: item = new PileOfGlacialSnow(); break; case 58: item = new RedPoinsettia(); break; case 59: item = new RoseOfTrinsic(); break; case 60: item = new RaiseSwitch(); break; case 61: item = new SpecialFishingNet(); break; case 62: item = new SpecialHairDye(); break; case 63: item = new SpecialBeardDye(); break; case 64: item = new SnowPile(); break; case 65: item = new StatueEast2(); break; case 66: item = new StatuePegasus2(); break; case 67: item = new StatueSouth2(); break; case 68: item = new StatueSouthEast(); break; case 69: item = new StatuetteDyeTub(); break; case 70: item = new StatueWest(); break; case 71: item = new TapestryOfSosaria(); break; case 72: item = new WhitePoinsettia(); break; case 73: item = new WindChimes(); break; case 74: item = new ZoogiFungus(); break; case 75: item = new RuinedFallenChairA(); break; case 76: item = new RuinedDrawers(); break; case 77: item = new RuinedClock(); break; case 78: item = new RuinedChair(); break; case 79: item = new RuinedBooks(); break; case 80: item = new RuinedBookcase(); break; case 81: item = new RuinedArmoire(); break; case 82: item = new SmallStretchedHideSouthDeed(); break; case 83: item = new SmallStretchedHideEastDeed(); break; case 84: item = new PolarBearRugSouthDeed(); break; case 85: item = new PolarBearRugEastDeed(); break; case 86: item = new MediumStretchedHideSouthDeed(); break; case 87: item = new MediumStretchedHideEastDeed(); break; case 88: item = new LightFlowerTapestrySouthDeed(); break; case 89: item = new LightFlowerTapestryEastDeed(); break; case 90: item = new DarkFlowerTapestrySouthDeed(); break; case 91: item = new DarkFlowerTapestryEastDeed(); break; case 92: item = new BrownBearRugSouthDeed(); break; case 93: item = new BrownBearRugEastDeed(); break; case 94: item = new WallSconce(); break; case 95: item = new WallTorch(); break; case 96: item = new CandleShort(); break; case 97: item = new CandleLarge(); break; case 98: item = new DecorativeSwordNorth(); break; case 99: item = new DecorativeSwordWest(); break; case 100: item = new Tapestry1N(); break; case 101: item = new Tapestry2N(); break; case 102: item = new Tapestry2W(); break; case 103: item = new Tapestry3N(); break; case 104: item = new Tapestry3W(); break; case 105: item = new Tapestry4N(); break; case 106: item = new Tapestry4W(); break; case 107: item = new Tapestry5N(); break; case 108: item = new Tapestry5W(); break; case 109: item = new Tapestry6N(); break; default: item = new CandleSkull(); break; } item.LootType = LootType.Regular; item.Movable = true; PackItem(item); } if (Utility.Random(100) < 10) { Item item; switch (Utility.Random(111)) { case 0: item = new Tapestry6W(); break; case 1: item = new MetalChest(); break; case 2: item = new MetalGoldenChest(); break; case 3: item = new MetalBox(); break; case 4: item = new AniLargeVioletFlask(); break; case 5: item = new AniRedRibbedFlask(); break; case 6: item = new AniSmallBlueFlask(); break; case 7: item = new BlueBeaker(); break; case 8: item = new BlueCurvedFlask(); break; case 9: item = new EmptyVial(); break; case 10: item = new EmptyVialsWRack(); break; case 11: item = new LargeFlask(); break; case 12: item = new LargeVioletFlask(); break; //case 13: item = new HourGlass(); break; //case 14: item = new HourGlassAni(); break; case 15: item = new DecorativeDAxeWest(); break; case 16: item = new DecorativeDAxeNorth(); break; case 17: item = new DecorativeBowWest(); break; case 18: item = new DecorativeBowNorth(); break; case 19: item = new DecorativeAxeWest(); break; case 20: item = new DecorativeAxeNorth(); break; case 21: item = new DecorativeShieldSword2West(); break; case 22: item = new DecorativeShieldSword2North(); break; case 23: item = new DecorativeShieldSword1West(); break; case 24: item = new DecorativeShieldSword1North(); break; case 25: item = new DecorativeShield11(); break; case 26: item = new DecorativeShield10(); break; case 27: item = new DecorativeShield9(); break; case 28: item = new DecorativeShield8(); break; case 29: item = new DecorativeShield7(); break; case 30: item = new DecorativeShield6(); break; case 31: item = new DecorativeShield5(); break; case 32: item = new DecorativeShield4(); break; case 33: item = new DecorativeShield3(); break; case 34: item = new DecorativeShield2(); break; case 35: item = new DecorativeShield1(); break; case 36: item = new Whip(); break; case 37: item = new SilverWire(); break; case 38: item = new Rope(); break; case 39: item = new PaintsAndBrush(); break; case 40: item = new IronWire(); break; case 41: item = new GoldWire(); break; case 42: item = new CopperWire(); break; case 43: item = new WoodDebris(); break; case 44: item = new RuinedPainting(); break; case 45: item = new RuinedFallenChairB(); break; case 46: item = new FullVialsWRack(); break; case 47: item = new FullJar(); break; case 48: item = new FullJars2(); break; case 49: item = new FullJars3(); break; case 50: item = new FullJars4(); break; case 51: item = new GreenBeaker(); break; case 52: item = new GreenBottle(); break; case 53: item = new VioletStemmedBottle(); break; case 54: item = new SpinningHourglass(); break; case 55: item = new ArcheryButte(); break; case 56: item = new PhillipsWoodenSteed(); break; case 57: item = new PileOfGlacialSnow(); break; case 58: item = new RedPoinsettia(); break; case 59: item = new RoseOfTrinsic(); break; case 60: item = new RaiseSwitch(); break; case 61: item = new SpecialFishingNet(); break; case 62: item = new SpecialHairDye(); break; case 63: item = new SpecialBeardDye(); break; case 64: item = new SnowPile(); break; case 65: item = new StatueEast2(); break; case 66: item = new StatuePegasus2(); break; case 67: item = new StatueSouth2(); break; case 68: item = new StatueSouthEast(); break; case 69: item = new StatuetteDyeTub(); break; case 70: item = new StatueWest(); break; case 71: item = new TapestryOfSosaria(); break; case 72: item = new WhitePoinsettia(); break; case 73: item = new WindChimes(); break; case 74: item = new ZoogiFungus(); break; case 75: item = new RuinedFallenChairA(); break; case 76: item = new RuinedDrawers(); break; case 77: item = new RuinedClock(); break; case 78: item = new RuinedChair(); break; case 79: item = new RuinedBooks(); break; case 80: item = new RuinedBookcase(); break; case 81: item = new RuinedArmoire(); break; case 82: item = new SmallStretchedHideSouthDeed(); break; case 83: item = new SmallStretchedHideEastDeed(); break; case 84: item = new PolarBearRugSouthDeed(); break; case 85: item = new PolarBearRugEastDeed(); break; case 86: item = new MediumStretchedHideSouthDeed(); break; case 87: item = new MediumStretchedHideEastDeed(); break; case 88: item = new LightFlowerTapestrySouthDeed(); break; case 89: item = new LightFlowerTapestryEastDeed(); break; case 90: item = new DarkFlowerTapestrySouthDeed(); break; case 91: item = new DarkFlowerTapestryEastDeed(); break; case 92: item = new BrownBearRugSouthDeed(); break; case 93: item = new BrownBearRugEastDeed(); break; case 94: item = new WallSconce(); break; case 95: item = new WallTorch(); break; case 96: item = new CandleShort(); break; case 97: item = new CandleLarge(); break; case 98: item = new DecorativeSwordNorth(); break; case 99: item = new DecorativeSwordWest(); break; case 100: item = new Tapestry1N(); break; case 101: item = new Tapestry2N(); break; case 102: item = new Tapestry2W(); break; case 103: item = new Tapestry3N(); break; case 104: item = new Tapestry3W(); break; case 105: item = new Tapestry4N(); break; case 106: item = new Tapestry4W(); break; case 107: item = new Tapestry5N(); break; case 108: item = new Tapestry5W(); break; case 109: item = new Tapestry6N(); break; default: item = new CandleSkull(); break; } item.LootType = LootType.Regular; item.Movable = true; PackItem(item); } } }
public override Type MutateType(Type type, Mobile from, Item tool, HarvestDefinition def, Map map, Point3D loc, HarvestResource resource) { bool deepWater = SpecialFishingNet.FullValidation(map, loc.X, loc.Y); bool dungeon = false; Region region = from.Region; if (region is DungeonRegion) { dungeon = true; } double skillBase = from.Skills[SkillName.Fishing].Base; double skillValue = from.Skills[SkillName.Fishing].Value; if (FSHSR.HSRTournamentSystem.TournamentRunning() && skillValue > 60.0) { double chance = (skillValue - 60.0) / 300; // Default 20% chance at 120 / 13% chance at 100 if (DateTime.UtcNow.DayOfWeek == FSHSR.HSRTournamentSystem.TournyOne && dungeon == true && chance > Utility.RandomDouble()) { return(typeof(ToxicTrout)); } else if (DateTime.UtcNow.DayOfWeek == FSHSR.HSRTournamentSystem.TournyTwo && deepWater == true && chance > Utility.RandomDouble()) { return(typeof(CottonCandySwordfish)); } else if (DateTime.UtcNow.DayOfWeek == FSHSR.HSRTournamentSystem.TournyThree && from.Map == Map.Malas && chance > Utility.RandomDouble()) { return(typeof(MalasMoonfish)); } } for (int i = 0; i < m_MutateTable.Length; ++i) { MutateEntry entry = m_MutateTable[i]; if (!deepWater && entry.m_DeepWater) { continue; } if (!dungeon && entry.m_RequiresDungeon) { continue; } if (entry.m_RequiredRegion != null && region.Name != entry.m_RequiredRegion) { continue; } if (entry.m_RequiredMap != null && map != entry.m_RequiredMap) { continue; } if (skillBase >= entry.m_ReqSkill) { double chance = (skillValue - entry.m_MinSkill) / (entry.m_MaxSkill - entry.m_MinSkill); if (chance > Utility.RandomDouble()) { return(entry.m_Types[Utility.Random(entry.m_Types.Length)]); } } } return(type); }