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)); }
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)); } }
internal override bool Draw(SpriteBatch3D sb, Vector3 drawPosition, MouseOverList molist, PickTypes pickType, int maxAlt) { return base.Draw(sb, drawPosition, molist, pickType, maxAlt); }
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); }
internal override bool Draw(SpriteBatch3D sb, Vector3 drawPosition, MouseOverList molist, PickTypes pickType, int maxAlt) { sb.Draw(_texture, Vertices); return false; }
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; }
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; }