public SingleHelm(BaseGalleon galleon, int northItemID, Point3D initOffset)
            : base(galleon, northItemID, initOffset)
        {
			m_Galleon = galleon;
			Name = "Wheel";
		
        }
        public ProfessionalBountyQuest(BaseGalleon galleon)
        {
            m_Galleon = galleon;
			
            AddObjective(new BountyQuestObjective());
            AddReward(new BaseReward(1116712)); //The gold listed on the bulletin board and a special reward from the officer if captured alive.
        }
示例#3
0
        public MerchantCaptain(BaseGalleon galleon)
            : base(galleon, AIType.AI_Melee, FightMode.Aggressor, 1, 10, .2, .4)
        {
            Title = "the merchant captain";
            Hue = Race.RandomSkinHue();

            Item hat;

            if (Utility.RandomBool())
                hat = new WideBrimHat();
            else
                hat = new TricorneHat();

            hat.Hue = Utility.RandomNeutralHue();

            AddItem(new Sandals());
            AddItem(new FancyShirt(Utility.RandomNeutralHue()));
            AddItem(hat);
            AddItem(new Cloak(Utility.RandomNeutralHue()));
            AddItem(new Dagger());

            Utility.AssignRandomHair(this);

            Fame = 22000;
            Karma = -22000;
        }
示例#4
0
        public AccessListGump(Mobile from, BaseGalleon galleon) : base(50, 50, galleon)
        {
            from.CloseGump(typeof(AccessListGump));

            m_Galleon = galleon;
            m_Entry = galleon.SecurityEntry;

            if (m_Entry == null)
            {
                m_Entry = new SecurityEntry(m_Galleon);
                m_Galleon.SecurityEntry = m_Entry;
            }

            AddButton(10, 370, 4005, 4007, 1, GumpButtonType.Reply, 0);
            AddHtmlLocalized(45, 370, 100, 20, 1149777, LabelColor, false, false);  //MAIN MENU

            List<Mobile> list = new List<Mobile>(m_Entry.Manifest.Keys);
            m_UseList = list;

            int pages = (int)Math.Ceiling(list.Count / 10.0);
            int index = 0;

            for (int i = 1; i <= pages; i++)
            {
                int y = 85;
                AddPage(i);

                for (int c = 0; c < 10; c++)
                {
                    if (index >= list.Count)
                        break;

                    Mobile mob = list[index];

                    if (mob == null)
                        continue;

                    string name = mob.Name;
                    SecurityLevel level = m_Entry.GetEffectiveLevel(mob);

                    AddButton(10, y, 4005, 4007, index + 2, GumpButtonType.Reply, 0);
                    AddHtml(45, y, 130, 20, Color(name, "DarkCyan"), false, false);
                    AddHtmlLocalized(180, y, 100, 20, GetLevel(level), GetHue(level), false, false);

                    index++;
                    y += 25;
                }

                if (i < pages)
                {
                    AddButton(310, 390, 4005, 4007, 0, GumpButtonType.Page, i + 1);
                }

                if (i > 1)
                {
                    AddButton(270, 390, 4014, 4016, 0, GumpButtonType.Page, i - 1);
                }
            }
        }
示例#5
0
 public override void Deserialize(GenericReader reader)
 {
     base.Deserialize(reader);
     int version = reader.ReadInt();
     m_Galleon = reader.ReadItem() as BaseGalleon;
     if(version == 0)
         reader.ReadItem();
 }
示例#6
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            m_Galleon = reader.ReadItem() as BaseGalleon;

            if (ItemID == 33648)
                ItemID = 23648;
        }
		public BaseDockedGalleon( int id, Point3D offset, BaseGalleon galleon ) : base( 0x14F4 )
		{
			Weight = 1.0;
			LootType = LootType.Blessed;

			m_MultiID = id;
			m_Offset = offset;

			m_ShipName = galleon.ShipName;
		}
示例#8
0
        public TillerManHS(BaseGalleon galleon, uint keyValue, Point3D initOffset)
            : base()
        {
			Location = initOffset;
			galleon.Embark(this);
			galleon.TillerManMobile = this;
            m_Galleon = galleon;
			m_KeyValue = keyValue;
            CantWalk = true;
			Blessed = true;

            InitStats(31, 41, 51);

            SpeechHue = Utility.RandomDyedHue();

            Hue = Utility.RandomSkinHue();


            if (this.Female = Utility.RandomBool())
            {
                this.Body = 0x191;
                this.Name = NameList.RandomName("female");
                AddItem(new Kilt(Utility.RandomDyedHue()));
                AddItem(new Shirt(Utility.RandomDyedHue()));
                AddItem(new ThighBoots());
                Title = "the tillerman";
            }
            else
            {
                this.Body = 0x190;
                this.Name = NameList.RandomName("male");
                AddItem(new ShortPants(Utility.RandomNeutralHue()));
                AddItem(new Shirt(Utility.RandomDyedHue()));
                AddItem(new Sandals());
                Title = "the tillerman";
            }

            AddItem(new Bandana(Utility.RandomDyedHue()));

            Utility.AssignRandomHair(this);

            Container pack = new Backpack();

            pack.DropItem(new Gold(250, 300));

            pack.Movable = false;

            AddItem(pack);
        }
示例#9
0
        public BaseShipCaptain(BaseGalleon galleon, AIType ai, FightMode fm, int per, int range, double passive, double active)
            : base(ai, fm, per, range, passive, active)
        {
            m_Galleon = galleon;
            m_OnCourse = true;
            m_StopTime = DateTime.MinValue;

            if (this.Female = Utility.RandomBool())
            {
                Body = 0x191;
                Name = NameList.RandomName("female");
                AddItem(new Skirt(Utility.RandomNeutralHue()));
            }
            else
            {
                Body = 0x190;
                Name = NameList.RandomName("male");
                AddItem(new ShortPants(Utility.RandomNeutralHue()));
            }

            SetStr(500, 750);
            SetDex(125, 175);
            SetInt(61, 75);

            SetHits(4500, 5000);

            SetDamage(23, 35);

            SetSkill(SkillName.Fencing, 115.0, 120.0);
            SetSkill(SkillName.Macing, 115.0, 120.0);
            SetSkill(SkillName.MagicResist, 115.0, 120.0);
            SetSkill(SkillName.Swords, 115.0, 120.0);
            SetSkill(SkillName.Tactics, 115.0, 120.0);
            SetSkill(SkillName.Wrestling, 115.0, 120.0);
            SetSkill(SkillName.Anatomy, 115.0, 120.0);

            SetDamageType(ResistanceType.Physical, 100);

            SetResistance(ResistanceType.Physical, 45, 55);
            SetResistance(ResistanceType.Fire, 45, 55);
            SetResistance(ResistanceType.Cold, 45, 55);
            SetResistance(ResistanceType.Poison, 45, 55);
            SetResistance(ResistanceType.Energy, 45, 55);

            if (galleon == null)
                Timer.DelayCall(TimeSpan.FromSeconds(.5), new TimerCallback(SpawnShip));
        }
示例#10
0
        public GalleonPilot(BaseGalleon galleon)
            : base(AIType.AI_Vendor, FightMode.None, 2, 1, 0.5, 2)
        {
            Body = 0x190;
            CantWalk = true;
            m_Galleon = galleon;
            Blessed = true;

            InitBody();
            InitOutfit();

            m_OriginalItems = new List<Item>();
            foreach (Item item in this.Items)
                m_OriginalItems.Add(item);

            SetSkill(SkillName.Cartography, 100.0);
        }
示例#11
0
        public LightShipCannon(int facing, BaseGalleon galleon, int northItemID, Point3D initOffset, SingleCannonPlace targetedSingleCannonPlace, MultiCannonPlace targetedMultiCannonPlace)
			: base(galleon, northItemID, initOffset)
        {
		
			if (targetedSingleCannonPlace != null)
			{
				m_LinkedSingleCannonPlace = targetedSingleCannonPlace;
				targetedSingleCannonPlace.LinkedCannon = this;
				m_SingleCannon = true;
				m_LinkedMultiCannonPlace = null;
			}
			else if (targetedMultiCannonPlace != null)
			{
				m_LinkedSingleCannonPlace = null;
				targetedMultiCannonPlace.LinkedCannon = this;
				m_SingleCannon = false;
				m_LinkedMultiCannonPlace = targetedMultiCannonPlace;
			}
		
            // add the components
            /*for (int i = 0; i < CannonNorth.Length; i++)
            *{
            *    this.AddComponent(new ShipComponent(0, this.Name), 0, 0, 0);
            *}
			*/

            // assign the facing
            if (facing < 0)
                facing = 3;
            if (facing > 3)
                facing = 0;
            this.Facing = facing;

            // set the default props
            this.Name = "Light Ship Cannon";
            this.Weight = 50;


            // and draggable
            //XmlAttach.AttachTo(this, new XmlDrag());

            // undo the temporary hue indicator that is set when the xmlsiege attachment is added
            this.Hue = 0;
        }
示例#12
0
        public ShipSecurityGump(Mobile from, BaseGalleon galleon)
            : base(50, 50, galleon)
        {
            from.CloseGump(typeof(ShipSecurityGump));

            m_From = from;
            m_Galleon = galleon;
            m_Entry = galleon.SecurityEntry;

            if (m_Entry == null)
                m_Galleon.SecurityEntry = new SecurityEntry(m_Galleon);

            PartyAccess pa = m_Entry.PartyAccess;

            AddHtmlLocalized(10, 80, 330, 20, 1149743, LabelColor, false, false); //Party membership modifies access to this ship:

            //Party defaults
            AddButton(60, 100, pa == PartyAccess.Never ? 4006 : 4005, pa == PartyAccess.Never ? 4006 : 4007, 1, GumpButtonType.Reply, 0);
            AddHtmlLocalized(95, 100, 300, 20, 1149778, LabelColor, false, false); //Never

            AddButton(60, 120, pa == PartyAccess.LeaderOnly ? 4006 : 4005, pa == PartyAccess.LeaderOnly ? 4006 : 4007, 2, GumpButtonType.Reply, 0);
            AddHtmlLocalized(95, 120, 300, 20, 1149744, LabelColor, false, false); //When I am Party Leader

            AddButton(60, 140, pa == PartyAccess.MemberOnly ? 4006 : 4005, pa == PartyAccess.MemberOnly ? 4006 : 4007, 3, GumpButtonType.Reply, 0);
            AddHtmlLocalized(95, 140, 300, 20, 1149745, LabelColor, false, false); //When I am a Party Member

            //Default security access
            AddHtmlLocalized(10, 165, 100, 20, 1149731, LabelColor, false, false); //Public Access:
            AddButton(140, 165, 4005, 4007, 4, GumpButtonType.Reply, 0);
            AddHtmlLocalized(175, 165, 100, 20, GetLevel(m_Entry.DefaultPublicAccess), GetHue(m_Entry.DefaultPublicAccess), false, false);

            AddHtmlLocalized(10, 185, 100, 20, 1149732, LabelColor, false, false); //Party Access:
            AddButton(140, 185, 4005, 4007, 5, GumpButtonType.Reply, 0);
            AddHtmlLocalized(175, 185, 100, 20, GetLevel(m_Entry.DefaultPartyAccess), GetHue(m_Entry.DefaultPartyAccess), false, false);

            AddHtmlLocalized(10, 205, 100, 20, 1149733, LabelColor, false, false); //Guild Access:
            AddButton(140, 205, 4005, 4007, 6, GumpButtonType.Reply, 0);
            AddHtmlLocalized(175, 205, 100, 20, GetLevel(m_Entry.DefaultGuildAccess), GetHue(m_Entry.DefaultGuildAccess), false, false);

            AddButton(195, 370, 4005, 4007, 7, GumpButtonType.Reply, 0);
            AddHtmlLocalized(230, 370, 100, 20, 1149734, LabelColor, false, false);  //ACCESS LIST
        }
示例#13
0
        public BaseShipGump(int x, int y, BaseGalleon galleon)
            : base(x, y)
        {
            AddBackground(0, 0, 350, 400, 2620);

            if (Title != null && Title.Number > 0)
                AddHtmlLocalized(0, 15, 350, 20, Title.Number, LabelColor, false, false); //<CENTER>Passenger and Crew Manifest</CENTER>
            else if (Title != null && Title.String != null)
                AddHtml(0, 15, 350, 20, String.Format("<CENTER><BASEFONT COLOR=#FFFFFF>{0}</CENTER>", Title.String), false, false);

            string shipName = "a ship with no name";

            if (galleon.ShipName != null && galleon.ShipName != String.Empty && galleon.ShipName != "")
                shipName = galleon.ShipName;

            AddHtmlLocalized(10, 40, 80, 20, 1149761, LabelColor, false, false);       //Ship:
            AddHtml(90, 40, 250, 20, Color(shipName, "DarkCyan"), false, false);

            AddHtmlLocalized(10, 60, 80, 20, 1149762, LabelColor, false, false);       //Owner:
            AddHtml(90, 60, 250, 20, Color(galleon.Owner != null ? galleon.Owner.Name : "Unknown", "DarkCyan"), false, false);
        }
        public GalleonConfirmDryDockGump(Mobile from, BaseGalleon galleon)
            : base(150, 200)
        {
            m_From = from;
            m_Galleon = galleon;

            m_From.CloseGump(typeof(ConfirmDryDockGump));

            AddPage(0);

            AddBackground(0, 0, 220, 170, 5054);
            AddBackground(10, 10, 200, 150, 3000);

            AddHtmlLocalized(20, 20, 180, 80, 1018319, true, false); // Do you wish to dry dock this boat?

            AddHtmlLocalized(55, 100, 140, 25, 1011011, false, false); // CONTINUE
            AddButton(20, 100, 4005, 4007, 2, GumpButtonType.Reply, 0);

            AddHtmlLocalized(55, 125, 140, 25, 1011012, false, false); // CANCEL
            AddButton(20, 125, 4005, 4007, 1, GumpButtonType.Reply, 0);
        }
示例#15
0
        public static void FillHold(BaseGalleon galleon)
        {
            if (galleon == null)
                return;

            Container hold = galleon.GalleonHold;

            if (hold != null)
            {
                int cnt = Utility.RandomMinMax(7, 14);

                for (int i = 0; i < cnt; i++)
                {
                    Item item = Loot.RandomArmorOrShieldOrWeaponOrJewelry();

                    if (item is BaseWeapon)
                        BaseRunicTool.ApplyAttributesTo((BaseWeapon)item, false, 0, Utility.RandomMinMax(1, 6), 10, 100);
                    else if (item is BaseArmor)
                        BaseRunicTool.ApplyAttributesTo((BaseArmor)item, false, 0, Utility.RandomMinMax(1, 6), 10, 100);
                    else if (item is BaseHat)
                        BaseRunicTool.ApplyAttributesTo((BaseHat)item, false, 0, Utility.RandomMinMax(1, 6), 10, 100);
                    else if (item is BaseJewel)
                        BaseRunicTool.ApplyAttributesTo((BaseJewel)item, false, 0, Utility.RandomMinMax(1, 6), 10, 100);
                    else
                        item.Delete();

                    hold.DropItem(item);
                }

                hold.DropItem(new Swab());
                hold.DropItem(new Ramrod());
                hold.DropItem(new Matches(Utility.RandomMinMax(25, 30)));
                hold.DropItem(new HeavyCannonball(Utility.RandomMinMax(7, 10)));
                hold.DropItem(new LightCannonball(Utility.RandomMinMax(7, 10)));
                hold.DropItem(new HeavyGrapeshot(Utility.RandomMinMax(7, 10)));
                hold.DropItem(new LightGrapeshot(Utility.RandomMinMax(7, 10)));
                hold.DropItem(new HeavyPowderCharge(Utility.RandomMinMax(7, 10)));
                hold.DropItem(new LightPowderCharge(Utility.RandomMinMax(7, 10)));
                hold.DropItem(new Fusecord(Utility.RandomMinMax(7, 10)));

                if (.10 >= Utility.RandomDouble())
                    hold.DropItem(new SmugglersCache());

                if (.10 >= Utility.RandomDouble())
                {
                    FishSteak steaks = new FishSteak(5);
                    switch (Utility.Random(5))
                    {
                        case 0:
                            steaks.Name = "Spiced Salmon";
                            steaks.Hue = 1759;
                            break;
                        case 1:
                            steaks.Name = "Dried Tuna";
                            steaks.Hue = 2108;
                            break;
                        case 2:
                            steaks.Name = "Salted Snapper";
                            steaks.Hue = 1864;
                            break;
                        case 3:
                            steaks.Name = "Salted Herring";
                            steaks.Hue = 2302;
                            break;
                        case 4:
                            steaks.Name = "Spiced Salmon";
                            steaks.Hue = 1637;
                            break;
                    }

                    hold.DropItem(steaks);
                }

                /*if (0.10 > Utility.RandomDouble())
                {
                    Item item = null;
                    switch (Utility.Random(6))
                    {
                        case 0: item = new LightScatterShot(); break;
                        case 1: item = new HeavyScatterShot(); break;
                        case 2: item = new LightFragShot(); break;
                        case 3: item = new HeavyFragShot(); break;
                        case 4: item = new LightHotShot(); break;
                        case 5: item = new HeavyHotShot(); break;
                    }

                    if (item != null)
                    {
                        item.Amount = Utility.RandomMinMax(2, 10);
                        hold.DropItem(item);
                    }
                }*/

                hold.DropItem(new Gold(Utility.RandomMinMax(5000, 25000)));

                if (0.50 > Utility.RandomDouble())
                {
                    switch (Utility.Random(4))
                    {
                        case 0:
                        case 1:
                        case 2: hold.DropItem(new IronWire(Utility.RandomMinMax(1, 5))); break;
                        case 3:
                        case 4:
                        case 5: hold.DropItem(new CopperWire(Utility.RandomMinMax(1, 5))); break;
                        case 6:
                        case 7: hold.DropItem(new SilverWire(Utility.RandomMinMax(1, 5))); break;
                        case 8: hold.DropItem(new GoldWire(Utility.RandomMinMax(1, 5))); break;
                    }
                }

                switch (Utility.Random(8))
                {
                    case 0:
                        if (Utility.RandomBool())
                            hold.DropItem(new IronOre(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new IronIngot(Utility.RandomMinMax(40, 50)));
                        break;
                    case 1:
                        if (Utility.RandomBool())
                            hold.DropItem(new DullCopperOre(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new DullCopperIngot(Utility.RandomMinMax(40, 50)));
                        break;
                    case 2:
                        if (Utility.RandomBool())
                            hold.DropItem(new ShadowIronOre(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new ShadowIronIngot(Utility.RandomMinMax(40, 50)));
                        break;
                    case 3:
                        if (Utility.RandomBool())
                            hold.DropItem(new CopperOre(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new CopperIngot(Utility.RandomMinMax(40, 50)));
                        break;
                    case 4:
                        if (Utility.RandomBool())
                            hold.DropItem(new BronzeOre(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new BronzeIngot(Utility.RandomMinMax(40, 50)));
                        break;
                    case 5:
                        if (Utility.RandomBool())
                            hold.DropItem(new AgapiteOre(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new AgapiteIngot(Utility.RandomMinMax(40, 50)));
                        break;
                    case 6:
                        if (Utility.RandomBool())
                            hold.DropItem(new VeriteOre(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new VeriteIngot(Utility.RandomMinMax(40, 50)));
                        break;
                    case 7:
                        if (Utility.RandomBool())
                            hold.DropItem(new ValoriteOre(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new ValoriteIngot(Utility.RandomMinMax(40, 50)));
                        break;
                }

                switch (Utility.Random(5))
                {
                    case 0:
                        if (Utility.RandomBool())
                            hold.DropItem(new Board(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new Log(Utility.RandomMinMax(40, 50)));
                        break;
                    case 1:
                        if (Utility.RandomBool())
                            hold.DropItem(new OakBoard(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new OakLog(Utility.RandomMinMax(40, 50)));
                        break;
                    case 2:
                        if (Utility.RandomBool())
                            hold.DropItem(new AshBoard(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new AshLog(Utility.RandomMinMax(40, 50)));
                        break;
                    case 3:
                        if (Utility.RandomBool())
                            hold.DropItem(new YewBoard(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new YewLog(Utility.RandomMinMax(40, 50)));
                        break;
                    case 4:
                        if (Utility.RandomBool())
                            hold.DropItem(new BloodwoodBoard(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new BloodwoodLog(Utility.RandomMinMax(40, 50)));
                        break;
                }

                switch (Utility.Random(4))
                {
                    case 0:
                        if (Utility.RandomBool())
                            hold.DropItem(new Leather(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new Hides(Utility.RandomMinMax(40, 50)));
                        break;
                    case 1:
                        if (Utility.RandomBool())
                            hold.DropItem(new SpinedLeather(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new SpinedHides(Utility.RandomMinMax(40, 50)));
                        break;
                    case 2:
                        if (Utility.RandomBool())
                            hold.DropItem(new HornedLeather(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new HornedHides(Utility.RandomMinMax(40, 50)));
                        break;
                    case 3:
                        if (Utility.RandomBool())
                            hold.DropItem(new BarbedLeather(Utility.RandomMinMax(40, 50)));
                        else
                            hold.DropItem(new BarbedHides(Utility.RandomMinMax(40, 50)));
                        break;
                }

                switch (Utility.Random(4))
                {
                    case 0: hold.DropItem(new HeavyCannonball(Utility.RandomMinMax(5, 10))); break;
                    case 1: hold.DropItem(new LightCannonball(Utility.RandomMinMax(5, 10))); break;
                    case 2: hold.DropItem(new HeavyGrapeshot(Utility.RandomMinMax(5, 10))); break;
                    case 3: hold.DropItem(new LightGrapeshot(Utility.RandomMinMax(5, 10))); break;
                }


                //Rares
                if (0.8 > Utility.RandomDouble())
                {
                    if (Utility.RandomBool())
                        hold.DropItem(new HeavyShipCannonDeed());
                    else
                        hold.DropItem(new LightShipCannonDeed());
                }

                if (0.025 > Utility.RandomDouble())
                {
                    if(Utility.RandomBool())
                        hold.DropItem(new WhiteClothDyeTub());
                    else
                        hold.DropItem(PermanentBoatPaint.DropRandom());
                }

                RefinementComponent.Roll(hold, 3, 0.25);
            }
        }
示例#16
0
        public PirateCaptain(BaseGalleon galleon)
            : base(galleon, AIType.AI_Melee, FightMode.Weakest, 25, 1, .2, .4)
        {
            PickRandomName();

            if(m_PirateName > 0 && (m_PirateName == 1116679 || m_PirateName == 1116680 || m_PirateName == 1116683))
                Female = true;

            SpeechHue = Utility.RandomDyedHue();
            Title = "the dread pirate";
            Hue = Race.RandomSkinHue();

            Body = Female ? 0x191 : 0x190;

            AddItem(new ShortPants(Utility.RandomNeutralHue()));

            SetStr(500, 750);
            SetDex(125, 175);
            SetInt(61, 75);

            SetHits(4500, 5000);

            SetDamage(23, 35);

            SetSkill(SkillName.Fencing, 115.0, 120.0);
            SetSkill(SkillName.Macing, 115.0, 120.0);
            SetSkill(SkillName.MagicResist, 115.0, 120.0);
            SetSkill(SkillName.Swords, 115.0, 120.0);
            SetSkill(SkillName.Tactics, 115.0, 120.0);
            SetSkill(SkillName.Wrestling, 115.0, 120.0);
            SetSkill(SkillName.Anatomy, 115.0, 120.0);

            Item hat;
            Item fancyShirt = new FancyShirt();
            Item shirt = new Shirt(GetRandomShirtHue());
            shirt.Layer = Layer.OuterTorso;

            if (Utility.RandomBool())
                hat = new Bandana();
            else
                hat = new TricorneHat();

            hat.Hue = Utility.RandomNeutralHue();

            AddItem(new Boots());
            AddItem(shirt);
            AddItem(fancyShirt);
            AddItem(hat);
            AddItem(new Cloak(Utility.RandomNeutralHue()));

            switch (Utility.Random(7))
            {
                case 0: AddItem(new Longsword()); break;
                case 1: AddItem(new Cutlass()); break;
                case 2: AddItem(new Broadsword()); break;
                case 5: AddItem(new Dagger()); break;
            }

            Utility.AssignRandomHair(this);

            Fame = 22000;
            Karma = -22000;
        }
示例#17
0
		public DockedOrcGalleon( BaseGalleon boat ) : base( 0x20, Point3D.Zero, boat )
		{
		}
示例#18
0
		public DockedGargoyleGalleon( BaseGalleon boat ) : base( 0x2C, Point3D.Zero, boat )
		{
		}
示例#19
0
		public DockedTokunoGalleon( BaseGalleon boat ) : base( 0x30, Point3D.Zero, boat )
		{
		}
示例#20
0
		public DockedBritainGalleon( BaseGalleon boat ) : base( 0x44, Point3D.Zero, boat )
		{
		}
 public override void DoDamageBoat(BaseGalleon galleon)
 {
     DoAreaExplosion();
     base.DoDamageBoat(galleon);
 }
示例#22
0
 public ShipRune(BaseGalleon galleon) : base(0x1F14)
 {
     m_Galleon = galleon;
     Hue = 0x47F;
 }
示例#23
0
       public override void Deserialize( GenericReader reader )
       {
			base.Deserialize(reader);
			int version = reader.ReadEncodedInt();

			m_Pole = reader.ReadItem() as BindingPole;
			m_Rope = reader.ReadItem() as BindingRope;
			m_Captain = reader.ReadMobile();
			m_Galleon = reader.ReadItem() as BaseGalleon;
		 
			int count = reader.ReadInt();
			for (int i = 0; i < count; i++)
			{
				Mobile mob = reader.ReadMobile();
				if (mob != null)
					m_Helpers.Add(mob);
			}
 
            if(m_Rope != null)
               m_Rope.Quest = this;
 
            if (m_Pole != null)
                m_Pole.Quest = this;
            else
                AddPole();
 
            AddReward(new BaseReward(1116712)); //The gold listed on the bulletin board and a special reward from the officer if captured alive.
       }
示例#24
0
 public ShipWheel(BaseGalleon galleon)
 {
     m_Galleon = galleon;
     Movable = false;
 }
示例#25
0
        public virtual void DoDamageBoat(BaseGalleon galleon)
        {
            int damage = Utility.RandomMinMax(MinBoatDamage, MaxBoatDamage);

            galleon.OnTakenDamage(this, damage);

            for (int x = this.X - 2; x <= this.X + 2; x++)
            {
                for (int y = this.Y - 2; y <= this.Y + 2; y++)
                {
                    BaseBoat boat = BaseBoat.FindBoatAt(new Point2D(x, y), this.Map);
                    if (boat != null && boat == galleon)
                    {
                        Direction toPush = Direction.North;
                        if (this.X < x && x - this.X > 1)
                            toPush = Direction.West;
                        else if (this.X > x && this.X - x > 1)
                            toPush = Direction.East;
                        else if (this.Y < y)
                            toPush = Direction.South;
                        else if (this.Y > y)
                            toPush = Direction.North;

                        boat.StartMove(toPush, 1, 0x2, BaseBoat.SlowDriftInterval, true, false);
                        //TODO: Message and Sound?
                    }
                }
            }
        }
示例#26
0
 public RunebookEntry(Point3D loc, Map map, string desc, BaseHouse house, BaseGalleon g = null)
 {
     this.m_Location = loc;
     this.m_Map = map;
     this.m_Description = desc;
     this.m_House = house;
     this.m_Galleon = g;
 }
示例#27
0
 public GalleonHold(BaseGalleon galleon, int itemID) : base(itemID)
 {
     m_Galleon = galleon;
     Movable = false;
 }
示例#28
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
                case 0:
                    {
                        m_Galleon = reader.ReadItem() as BaseGalleon;

                        if (m_Galleon == null)
                            Delete();

                        break;
                    }
            }
        }
示例#29
0
			public SecuritySettingsEntry(Mobile from, BaseGalleon galleon)
				: base(1116567)
			{				
				m_from = from;
				m_Galleon = galleon;
			}
示例#30
0
        public RunebookEntry(GenericReader reader)
        {
            int version = reader.ReadByte();

            switch ( version )
            {
                case 2:
                    {
                        this.m_Galleon = reader.ReadItem() as BaseGalleon;
                        goto case 0;
                    }
                case 1:
                    {
                        this.m_House = reader.ReadItem() as BaseHouse;
                        goto case 0;
                    }
                case 0:
                    {
                        this.m_Location = reader.ReadPoint3D();
                        this.m_Map = reader.ReadMap();
                        this.m_Description = reader.ReadString();

                        break;
                    }
            }
        }
示例#31
0
 public CourseMoveTimer(BaseGalleon galleon, TimeSpan interval, SpeedCode speed, bool single)
     : base(interval, interval, single ? 1 : 0)
 {
     _galleon = galleon;
     Priority = TimerPriority.TwentyFiveMS;
 }