public BOBLargeSubEntry(LargeBulkEntry lbe) { m_ItemType = lbe.Details.Type; m_AmountCur = lbe.Amount; m_Number = lbe.Details.Number; m_Graphic = lbe.Details.Graphic; }
public LargeTailorBOD() { LargeBulkEntry[] entries; bool useMaterials = false; switch (Utility.Random(14)) { default: case 0: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.Farmer); break; case 1: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.FemaleLeatherSet); useMaterials = true; break; case 2: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.FisherGirl); break; case 3: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.Gypsy); break; case 4: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.HatSet); break; case 5: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.Jester); break; case 6: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.Lady); break; case 7: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.MaleLeatherSet); useMaterials = true; break; case 8: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.Pirate); break; case 9: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.ShoeSet); useMaterials = Core.ML; break; case 10: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.StuddedSet); useMaterials = true; break; case 11: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.TownCrier); break; case 12: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.Wizard); break; case 13: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.BoneSet); useMaterials = true; break; } int hue = 0x483; int amountMax = Utility.RandomList(10, 15, 20, 20); bool reqExceptional = (0.825 > Utility.RandomDouble()); BulkMaterialType material; if (useMaterials) { material = GetRandomMaterial(BulkMaterialType.Spined, m_TailoringMaterialChances); } else { material = BulkMaterialType.None; } this.Hue = hue; this.AmountMax = amountMax; this.Entries = entries; this.RequireExceptional = reqExceptional; this.Material = material; }
public static LargeBulkEntry[] ConvertEntries(LargeBOD owner, SmallBulkEntry[] small) { LargeBulkEntry[] large = new LargeBulkEntry[small.Length]; for (int i = 0; i < small.Length; ++i) { large[i] = new LargeBulkEntry(owner, small[i]); } return(large); }
public LargeSmithBOD() { LargeBulkEntry[] entries; bool useMaterials = true; int rand = Utility.Random(8); switch (rand) { default: case 0: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.LargeRing); break; case 1: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.LargePlate); break; case 2: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.LargeChain); break; case 3: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.LargeAxes); break; case 4: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.LargeFencing); break; case 5: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.LargeMaces); break; case 6: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.LargePolearms); break; case 7: entries = LargeBulkEntry.ConvertEntries(this, LargeBulkEntry.LargeSwords); break; } if (rand > 2 && rand < 8) { useMaterials = false; } int hue = 0x44E; int amountMax = Utility.RandomList(10, 15, 20, 20); bool reqExceptional = (0.825 > Utility.RandomDouble()); BulkMaterialType material; if (useMaterials) { material = GetRandomMaterial(BulkMaterialType.DullCopper, m_BlacksmithMaterialChances); } else { material = BulkMaterialType.None; } this.Hue = hue; this.AmountMax = amountMax; this.Entries = entries; this.RequireExceptional = reqExceptional; this.Material = material; }
private LargeBulkEntry[] ReconstructEntries() { LargeBulkEntry[] entries = new LargeBulkEntry[m_Entries.Length]; for (int i = 0; i < m_Entries.Length; ++i) { entries[i] = new LargeBulkEntry(null, new SmallBulkEntry(m_Entries[i].ItemType, m_Entries[i].Number, m_Entries[i].Graphic)); entries[i].Amount = m_Entries[i].AmountCur; } return(entries); }
public override void Deserialize(GenericReader reader) { base.Deserialize(reader); int version = reader.ReadInt(); switch (version) { case 0: { m_AmountMax = reader.ReadInt(); m_RequireExceptional = reader.ReadBool(); m_Material = (BulkMaterialType)reader.ReadInt(); m_Entries = new LargeBulkEntry[reader.ReadInt()]; for (int i = 0; i < m_Entries.Length; ++i) { m_Entries[i] = new LargeBulkEntry(this, reader); } break; } } if (Weight == 0.0) { Weight = 1.0; } if (Core.AOS && ItemID == 0x14EF) { ItemID = 0x2258; } if (Parent == null && Map == Map.Internal && Location == Point3D.Zero) { Delete(); } }
public LargeBODGump(Mobile from, LargeBOD deed) : base(25, 25) { m_From = from; m_Deed = deed; m_From.CloseGump(typeof(LargeBODGump)); m_From.CloseGump(typeof(SmallBODGump)); LargeBulkEntry[] entries = deed.Entries; AddPage(0); AddBackground(50, 10, 455, 236 + (entries.Length * 24), 5054); AddImageTiled(58, 20, 438, 217 + (entries.Length * 24), 2624); AddAlphaRegion(58, 20, 438, 217 + (entries.Length * 24)); AddImage(45, 5, 10460); AddImage(480, 5, 10460); AddImage(45, 221 + (entries.Length * 24), 10460); AddImage(480, 221 + (entries.Length * 24), 10460); AddHtmlLocalized(225, 25, 120, 20, 1045134, 0x7FFF, false, false); // A large bulk order AddHtmlLocalized(75, 48, 250, 20, 1045138, 0x7FFF, false, false); // Amount to make: AddLabel(275, 48, 1152, deed.AmountMax.ToString()); AddHtmlLocalized(75, 72, 120, 20, 1045137, 0x7FFF, false, false); // Items requested: AddHtmlLocalized(275, 76, 200, 20, 1045153, 0x7FFF, false, false); // Amount finished: int y = 96; for (int i = 0; i < entries.Length; ++i) { LargeBulkEntry entry = entries[i]; SmallBulkEntry details = entry.Details; AddHtmlLocalized(75, y, 210, 20, details.Number, 0x7FFF, false, false); AddLabel(275, y, 0x480, entry.Amount.ToString()); y += 24; } if (deed.RequireExceptional || deed.Material != BulkMaterialType.None) { AddHtmlLocalized(75, y, 200, 20, 1045140, 0x7FFF, false, false); // Special requirements to meet: y += 24; } if (deed.RequireExceptional) { AddHtmlLocalized(75, y, 300, 20, 1045141, 0x7FFF, false, false); // All items must be exceptional. y += 24; } if (deed.Material != BulkMaterialType.None) { AddHtmlLocalized(75, y, 300, 20, GetMaterialNumberFor(deed.Material), 0x7FFF, false, false); // All items must be made with x material. } AddButton(125, 168 + (entries.Length * 24), 4005, 4007, 2, GumpButtonType.Reply, 0); AddHtmlLocalized(160, 168 + (entries.Length * 24), 300, 20, 1045155, 0x7FFF, false, false); // Combine this deed with another deed. AddButton(125, 192 + (entries.Length * 24), 4005, 4007, 1, GumpButtonType.Reply, 0); AddHtmlLocalized(160, 192 + (entries.Length * 24), 120, 20, 1011441, 0x7FFF, false, false); // EXIT }
public void EndCombine(Mobile from, object o) { if (o is Item && ((Item)o).IsChildOf(from.Backpack)) { if (o is SmallBOD) { SmallBOD small = (SmallBOD)o; LargeBulkEntry entry = null; for (int i = 0; entry == null && i < m_Entries.Length; ++i) { if (m_Entries[i].Details.Type == small.Type) { entry = m_Entries[i]; } } if (entry == null) { from.SendLocalizedMessage(1045160); // That is not a bulk order for this large request. } else if (m_RequireExceptional && !small.RequireExceptional) { from.SendLocalizedMessage(1045161); // Both orders must be of exceptional quality. } else if (m_Material >= BulkMaterialType.DullCopper && m_Material <= BulkMaterialType.Valorite && small.Material != m_Material) { from.SendLocalizedMessage(1045162); // Both orders must use the same ore type. } else if (m_Material >= BulkMaterialType.Spined && m_Material <= BulkMaterialType.Barbed && small.Material != m_Material) { from.SendLocalizedMessage(1049351); // Both orders must use the same leather type. } else if (m_AmountMax != small.AmountMax) { from.SendLocalizedMessage(1045163); // The two orders have different requested amounts and cannot be combined. } else if (small.AmountCur < small.AmountMax) { from.SendLocalizedMessage(1045164); // The order to combine with is not completed. } else if (entry.Amount >= m_AmountMax) { from.SendLocalizedMessage(1045166); // The maximum amount of requested items have already been combined to this deed. } else { entry.Amount += small.AmountCur; small.Delete(); from.SendLocalizedMessage(1045165); // The orders have been combined. from.SendGump(new LargeBODGump(from, this)); if (!Complete) { BeginCombine(from); } } } else { from.SendLocalizedMessage(1045159); // That is not a bulk order. } } else { from.SendLocalizedMessage(1045158); // You must have the item in your backpack to target it. } }