Example #1
0
 public Treasure(DataRow data, Treasure parent = null)
 {
     Parent = parent;
     Name = data["treasureClass"].ToString();
     NoDrop = 100 - (float) data["noDrop"];
     PickType = (PickTypes) data["pickType"];
     SpawnCondition = (Bitmask01) data["spawnCondition"];
     Difficulty = (int) data["gameModeRestriction1"];
     for (var i = 0; i < 8; i++)
         Drops.Add(GetDropClass(data, i + 1));
 }
Example #2
0
 public Treasure(DataRow data, Treasure parent = null)
 {
     Parent         = parent;
     Name           = data["treasureClass"].ToString();
     NoDrop         = 100 - (float)data["noDrop"];
     PickType       = (PickTypes)data["pickType"];
     SpawnCondition = (Bitmask01)data["spawnCondition"];
     Difficulty     = (int)data["gameModeRestriction1"];
     for (var i = 0; i < 8; i++)
     {
         Drops.Add(GetDropClass(data, i + 1));
     }
 }
Example #3
0
 internal override bool Draw(SpriteBatch3D sb, Vector3 drawPosition, MouseOverList molist, PickTypes pickType, int maxAlt)
 {
     return base.Draw(sb, drawPosition, molist, pickType, maxAlt);
 }
Example #4
0
 internal override bool Draw(SpriteBatch3D sb, Vector3 drawPosition, MouseOverList molist, PickTypes pickType, int maxAlt)
 {
     m_draw_Y = (int)(Z * 4) + m_draw_height - 44;
     if (m_noDraw)
         return false;
     return base.Draw(sb, drawPosition, molist, pickType, maxAlt);
 }
        private bool Draw3DStretched(SpriteBatch3D sb, Vector3 drawPosition, MouseOverList molist, PickTypes pickType, int maxAlt)
        {
            // this is an isometric stretched tile and needs a specialized draw routine.
            _vertexBufferAlternate[0].Position = drawPosition + _vertex0_yOffset;
            _vertexBufferAlternate[1].Position = drawPosition + _vertex1_yOffset;
            _vertexBufferAlternate[2].Position = drawPosition + _vertex2_yOffset;
            _vertexBufferAlternate[3].Position = drawPosition + _vertex3_yOffset;

            if (!sb.Draw(_draw_texture, _vertexBufferAlternate))
                return false;

            if ((pickType & _pickType) == _pickType)
                if (molist.IsMouseInObjectIsometric(_vertexBufferAlternate))
                {
                    MouseOverItem item = new MouseOverItem(_draw_texture, _vertexBufferAlternate[0].Position, this);
                    item.Vertices = new Vector3[4] { _vertexBufferAlternate[0].Position, _vertexBufferAlternate[1].Position, _vertexBufferAlternate[2].Position, _vertexBufferAlternate[3].Position };
                    molist.Add2DItem(item);
                }

            return true;
        }
 internal override bool Draw(SpriteBatch3D sb, Vector3 drawPosition, MouseOverList molist, PickTypes pickType, int maxAlt)
 {
     if (_noDraw || _mustUpdateSurroundings || !IsometricRenderer.DrawTerrain)
         return false;
     if (!_draw_3DStretched)
         return base.Draw(sb, drawPosition, molist, pickType, 255);
     else
         return Draw3DStretched(sb, drawPosition, molist, pickType, 255);
 }
Example #7
0
 internal override bool Draw(SpriteBatch3D sb, Vector3 drawPosition, MouseOverList molist, PickTypes pickType, int maxAlt)
 {
     sb.Draw(_texture, Vertices);
     return false;
 }
Example #8
0
        internal virtual bool Draw(SpriteBatch3D sb, Vector3 drawPosition, MouseOverList molist, PickTypes pickType, int maxAlt)
        {
            VertexPositionNormalTextureHue[] vertexBuffer;

            if (Z >= maxAlt)
                return false;

            if (m_draw_flip)
            {
                // 2   0
                // |\  |
                // |  \|
                // 3   1
                vertexBuffer = VertexPositionNormalTextureHue.PolyBufferFlipped;
                vertexBuffer[0].Position = drawPosition;
                vertexBuffer[0].Position.X += m_draw_X + 44;
                vertexBuffer[0].Position.Y -= m_draw_Y;

                vertexBuffer[1].Position = vertexBuffer[0].Position;
                vertexBuffer[1].Position.Y += m_draw_height;

                vertexBuffer[2].Position = vertexBuffer[0].Position;
                vertexBuffer[2].Position.X -= m_draw_width;

                vertexBuffer[3].Position = vertexBuffer[1].Position;
                vertexBuffer[3].Position.X -= m_draw_width;
            }
            else
            {
                // 0---1
                //    /
                //  /
                // 2---3
                vertexBuffer = VertexPositionNormalTextureHue.PolyBuffer;
                vertexBuffer[0].Position = drawPosition;
                vertexBuffer[0].Position.X -= m_draw_X;
                vertexBuffer[0].Position.Y -= m_draw_Y;

                vertexBuffer[1].Position = vertexBuffer[0].Position;
                vertexBuffer[1].Position.X += m_draw_width;

                vertexBuffer[2].Position = vertexBuffer[0].Position;
                vertexBuffer[2].Position.Y += m_draw_height;

                vertexBuffer[3].Position = vertexBuffer[1].Position;
                vertexBuffer[3].Position.Y += m_draw_height;
            }

            if (vertexBuffer[0].Hue != m_draw_hue)
                vertexBuffer[0].Hue = vertexBuffer[1].Hue = vertexBuffer[2].Hue = vertexBuffer[3].Hue = m_draw_hue;

            if (!sb.Draw(m_draw_texture, vertexBuffer))
            {
                return false;
            }

            if (m_draw_IsometricOverlap)
            {
                drawIsometricOverlap(sb, vertexBuffer, new Vector2(drawPosition.X, drawPosition.Y - (Z * 4)));
            }

            if ((pickType & m_pickType) == m_pickType)
            {
                if (((!m_draw_flip) && molist.IsMouseInObject(vertexBuffer[0].Position, vertexBuffer[3].Position)) ||
                    ((m_draw_flip) && molist.IsMouseInObject(vertexBuffer[2].Position, vertexBuffer[1].Position)))
                {
                    MouseOverItem item;
                    if (!m_draw_flip)
                    {
                        item = new MouseOverItem(m_draw_texture, vertexBuffer[0].Position, this);
                        item.Vertices = new Vector3[4] { vertexBuffer[0].Position, vertexBuffer[1].Position, vertexBuffer[2].Position, vertexBuffer[3].Position };
                    }
                    else
                    {
                        item = new MouseOverItem(m_draw_texture, vertexBuffer[2].Position, this);
                        item.Vertices = new Vector3[4] { vertexBuffer[2].Position, vertexBuffer[0].Position, vertexBuffer[3].Position, vertexBuffer[1].Position };
                    }
                    molist.Add2DItem(item);
                }
            }

            return true;
        }
Example #9
0
        internal override bool Draw(SpriteBatch3D sb, Vector3 drawPosition, MouseOverList molist, PickTypes pickType, int maxAlt)
        {
            m_draw_width = m_draw_texture.Width;
            m_draw_height = m_draw_texture.Height;
            if (m_draw_flip)
            {
                m_draw_X = m_mobile_drawCenterX - 22 + (int)((Position.X_offset - Position.Y_offset) * 22);
                m_draw_Y = m_mobile_drawCenterY + (int)((Position.Z_offset + Z) * 4) + m_draw_height - 22 - (int)((Position.X_offset + Position.Y_offset) * 22);
            }
            else
            {
                m_draw_X = m_mobile_drawCenterX - 22 - (int)((Position.X_offset - Position.Y_offset) * 22);
                m_draw_Y = m_mobile_drawCenterY + (int)((Position.Z_offset + Z) * 4) + m_draw_height - 22 - (int)((Position.X_offset + Position.Y_offset) * 22);
            }

            if (UltimaVars.EngineVars.LastTarget != null && UltimaVars.EngineVars.LastTarget == OwnerSerial)
                m_draw_hue = new Vector2(((Mobile)OwnerEntity).NotorietyHue - 1, 1);

            // !!! Test highlight code.
            bool isHighlight = false;
            if (isHighlight)
            {
                Vector2 savedHue = m_draw_hue;
                int savedX = m_draw_X, savedY = m_draw_Y;
                m_draw_hue = Utility.GetHueVector(1288);
                int offset = 1;
                m_draw_X = savedX - offset;
                base.Draw(sb, drawPosition, molist, pickType, maxAlt);
                m_draw_X = savedX + offset;
                base.Draw(sb, drawPosition, molist, pickType, maxAlt);
                m_draw_X = savedX;
                m_draw_Y = savedY - offset;
                base.Draw(sb, drawPosition, molist, pickType, maxAlt);
                m_draw_Y = savedY + offset;
                base.Draw(sb, drawPosition, molist, pickType, maxAlt);
                m_draw_hue = savedHue;
                m_draw_X = savedX;
                m_draw_Y = savedY;
            }

            bool isDrawn = base.Draw(sb, drawPosition, molist, pickType, maxAlt);
            return isDrawn;
        }