public virtual void SendSiegeWeaponInterface(GameSiegeWeapon siegeWeapon, int time)
		{
			using (var pak = new GSTCPPacketOut(GetPacketCode(eServerPackets.SiegeWeaponInterface)))
			{
				var flag = (ushort) ((siegeWeapon.EnableToMove ? 1 : 0) | siegeWeapon.AmmoType << 8);
				pak.WriteShort(flag); //byte Ammo,  byte SiegeMoving(1/0)
				pak.WriteByte(0);
				pak.WriteByte(0); // Close interface(1/0)
				pak.WriteByte((byte) (time/10)); //time in 1000ms
				pak.WriteByte((byte) siegeWeapon.Ammo.Count); // external ammo count
				pak.WriteByte((byte) siegeWeapon.SiegeWeaponTimer.CurrentAction);
				pak.WriteByte((byte) siegeWeapon.AmmoSlot);
				pak.WriteShort(siegeWeapon.Effect);
				pak.WriteShort((ushort) time); // time (?)
				pak.WriteInt((uint) siegeWeapon.ObjectID);

                DBLanguageNPC translation = siegeWeapon.GetTranslation(m_gameClient);

                pak.WritePascalString(translation.Name + " (" + siegeWeapon.CurrentState + ")");
				foreach (InventoryItem item in siegeWeapon.Ammo)
				{
					pak.WriteByte((byte) item.SlotPosition);
					pak.WriteByte((byte) item.Level);
					pak.WriteByte((byte) item.DPS_AF);
					pak.WriteByte((byte) item.SPD_ABS);
					pak.WriteByte((byte) (item.Hand*64));
					pak.WriteByte((byte) ((item.Type_Damage*64) + item.Object_Type));
					pak.WriteShort((ushort) item.Weight);
					pak.WriteByte(item.ConditionPercent); // % of con
					pak.WriteByte(item.DurabilityPercent); // % of dur
					pak.WriteByte((byte) item.Quality); // % of qua
					pak.WriteByte((byte) item.Bonus); // % bonus
					pak.WriteShort((ushort) item.Model);
					if (item.Emblem != 0)
						pak.WriteShort((ushort) item.Emblem);
					else
						pak.WriteShort((ushort) item.Color);
					pak.WriteShort((ushort) item.Effect);
					if (item.Count > 1)
						pak.WritePascalString(item.Count + " " + item.Name);
					else
						pak.WritePascalString(item.Name);
				}
				SendTCP(pak);
			}
		}