Exemple #1
0
        public override void OnAfterPlacement(bool initial)
        {
            if (Owner != null)
            {
                foreach (var rowBoat in BaseBoat.Boats.OfType <RowBoat>().Where(rb => rb.Owner == Owner && rb != this && rb.Map != Map.Internal))
                {
                    BaseDockedBoat boat = rowBoat.BoatItem;

                    if (boat == null || boat.Deleted)
                    {
                        boat = rowBoat.DockedBoat;
                    }

                    if (boat == null)
                    {
                        rowBoat.Delete();
                        return;
                    }

                    boat.BoatItem = rowBoat;
                    Owner.AddToBackpack(boat);

                    rowBoat.Refresh();
                    rowBoat.Internalize();
                }
            }
        }
Exemple #2
0
 public InternalTarget(BaseDockedBoat model)
     : base(model.MultiID, model.Offset)
 {
     m_Model = model;
 }
			public InternalTarget( BaseDockedBoat model ) : base( model.MultiID, model.Offset )
			{
				m_Model = model;
			}
Exemple #4
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            int version = reader.ReadInt();

            switch (version)
            {
                case 4:
                    {
                        if (reader.ReadInt() == 1)
                        {
                            m_BoatCourse = new BoatCourse(reader);
                            m_BoatCourse.Boat = this;
                            m_BoatCourse.Map = this.Map;
                        }

                        m_DockedBoat = reader.ReadItem() as BaseDockedBoat;
                        m_VirtualMount = reader.ReadItem() as BoatMountItem;
                        m_Decay = reader.ReadBool();
                        goto case 3;
                    }
                case 3:
                    {
                        m_MapItem = (MapItem)reader.ReadItem();
                        m_NextNavPoint = reader.ReadInt();

                        goto case 2;
                    }
                case 2:
                    {
                        m_Facing = (Direction)reader.ReadInt();

                        goto case 1;
                    }
                case 1:
                    {
                        m_DecayTime = reader.ReadDeltaTime();

                        goto case 0;
                    }
                case 0:
                    {
                        if (version < 3)
                            m_NextNavPoint = -1;

                        if (version < 2)
                        {
                            if (ItemID == NorthID)
                                m_Facing = Direction.North;
                            else if (ItemID == SouthID)
                                m_Facing = Direction.South;
                            else if (ItemID == EastID)
                                m_Facing = Direction.East;
                            else if (ItemID == WestID)
                                m_Facing = Direction.West;
                        }

                        m_Owner = reader.ReadMobile();
                        m_PPlank = reader.ReadItem() as Plank;
                        m_SPlank = reader.ReadItem() as Plank;

                        if (!IsClassicBoat && !(this is RowBoat))
                            m_TillerMan = reader.ReadMobile() as object;
                        else
                            m_TillerMan = reader.ReadItem() as object;

                        m_Hold = reader.ReadItem() as Hold;
                        m_Anchored = reader.ReadBool();
                        m_ShipName = reader.ReadString();

                        m_Anchored = false; //No more anchors[High Seas]

                        if (version < 1)
                            Refresh();

                        break;
                    }
            }

            m_Instances.Add(this);

            if (m_VirtualMount == null)
                m_VirtualMount = new BoatMountItem(this);

            if (version == 6)
            {
                if (m_MapItem != null)
                    Timer.DelayCall(TimeSpan.FromSeconds(10), delegate
                    {
                        BoatCourse = new BoatCourse(this, m_MapItem);
                    });
            }
        }