// Decompiled with JetBrains decompiler // Type: Terraria.DataStructures.PlayerDrawSet // Assembly: Terraria, Version=1.4.0.5, Culture=neutral, PublicKeyToken=null // MVID: 67F9E73E-0A81-4937-A22C-5515CD405A83 // Assembly location: C:\Users\mikeyisbaeyt\Downloads\depotdownloader-2.4.5\depots\105601\6707058\Terraria.exe using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using System; using System.Collections.Generic; using Terraria.GameContent.Golf; using Terraria.Graphics.Shaders; using Terraria.ID; namespace Terraria.DataStructures { public struct PlayerDrawSet { public List DrawDataCache; public List DustCache; public List GoreCache; public Player drawPlayer; public float shadow; public Vector2 Position; public int projectileDrawPosition; public Vector2 ItemLocation; public int armorAdjust; public bool missingHand; public bool missingArm; public bool heldProjOverHand; public int skinVar; public bool fullHair; public bool drawsBackHairWithoutHeadgear; public bool hatHair; public bool hideHair; public int hairDyePacked; public int skinDyePacked; public float mountOffSet; public int cHead; public int cBody; public int cLegs; public int cHandOn; public int cHandOff; public int cBack; public int cFront; public int cShoe; public int cWaist; public int cShield; public int cNeck; public int cFace; public int cBalloon; public int cWings; public int cCarpet; public int cPortableStool; public int cFloatingTube; public int cUnicornHorn; public int cLeinShampoo; public SpriteEffects playerEffect; public SpriteEffects itemEffect; public Color colorHair; public Color colorEyeWhites; public Color colorEyes; public Color colorHead; public Color colorBodySkin; public Color colorLegs; public Color colorShirt; public Color colorUnderShirt; public Color colorPants; public Color colorShoes; public Color colorArmorHead; public Color colorArmorBody; public Color colorMount; public Color colorArmorLegs; public Color colorElectricity; public int headGlowMask; public int bodyGlowMask; public int armGlowMask; public int legsGlowMask; public Color headGlowColor; public Color bodyGlowColor; public Color armGlowColor; public Color legsGlowColor; public Color ArkhalisColor; public float stealth; public Vector2 legVect; public Vector2 bodyVect; public Vector2 headVect; public Color selectionGlowColor; public float torsoOffset; public bool hidesTopSkin; public bool hidesBottomSkin; public float rotation; public Vector2 rotationOrigin; public Rectangle hairFrame; public bool backHairDraw; public bool backPack; public Color itemColor; public bool usesCompositeTorso; public bool usesCompositeFrontHandAcc; public bool usesCompositeBackHandAcc; public bool compShoulderOverFrontArm; public Rectangle compBackShoulderFrame; public Rectangle compFrontShoulderFrame; public Rectangle compBackArmFrame; public Rectangle compFrontArmFrame; public Rectangle compTorsoFrame; public float compositeBackArmRotation; public float compositeFrontArmRotation; public bool hideCompositeShoulders; public Vector2 frontShoulderOffset; public Vector2 backShoulderOffset; public WeaponDrawOrder weaponDrawOrder; public bool weaponOverFrontArm; public bool isSitting; public bool isSleeping; public float seatYOffset; public int sittingIndex; public bool drawFrontAccInNeckAccLayer; public Item heldItem; public bool drawFloatingTube; public bool drawUnicornHorn; public Color floatingTubeColor; public Vector2 helmetOffset; public Vector2 Center => new Vector2(this.Position.X + (float) (this.drawPlayer.width / 2), this.Position.Y + (float) (this.drawPlayer.height / 2)); public void BoringSetup( Player player, List drawData, List dust, List gore, Vector2 drawPosition, float shadowOpacity, float rotation, Vector2 rotationOrigin) { this.DrawDataCache = drawData; this.DustCache = dust; this.GoreCache = gore; this.drawPlayer = player; this.shadow = shadowOpacity; this.rotation = rotation; this.rotationOrigin = rotationOrigin; this.heldItem = player.lastVisualizedSelectedItem; this.cHead = this.drawPlayer.cHead; this.cBody = this.drawPlayer.cBody; this.cLegs = this.drawPlayer.cLegs; if (this.drawPlayer.wearsRobe) this.cLegs = this.cBody; this.cHandOn = this.drawPlayer.cHandOn; this.cHandOff = this.drawPlayer.cHandOff; this.cBack = this.drawPlayer.cBack; this.cFront = this.drawPlayer.cFront; this.cShoe = this.drawPlayer.cShoe; this.cWaist = this.drawPlayer.cWaist; this.cShield = this.drawPlayer.cShield; this.cNeck = this.drawPlayer.cNeck; this.cFace = this.drawPlayer.cFace; this.cBalloon = this.drawPlayer.cBalloon; this.cWings = this.drawPlayer.cWings; this.cCarpet = this.drawPlayer.cCarpet; this.cPortableStool = this.drawPlayer.cPortalbeStool; this.cFloatingTube = this.drawPlayer.cFloatingTube; this.cUnicornHorn = this.drawPlayer.cUnicornHorn; this.cLeinShampoo = this.drawPlayer.cLeinShampoo; this.isSitting = this.drawPlayer.sitting.isSitting; this.seatYOffset = 0.0f; this.sittingIndex = 0; Vector2 posOffset1 = Vector2.Zero; this.drawPlayer.sitting.GetSittingOffsetInfo(this.drawPlayer, out posOffset1, out this.seatYOffset); if (this.isSitting) this.sittingIndex = this.drawPlayer.sitting.sittingIndex; if (this.drawPlayer.mount.Active && this.drawPlayer.mount.Type == 17) this.isSitting = true; if (this.drawPlayer.mount.Active && this.drawPlayer.mount.Type == 23) this.isSitting = true; if (this.drawPlayer.mount.Active && this.drawPlayer.mount.Type == 45) this.isSitting = true; this.isSleeping = this.drawPlayer.sleeping.isSleeping; this.Position = drawPosition; if (this.isSitting) { this.torsoOffset = this.seatYOffset; this.Position += posOffset1; } else this.sittingIndex = -1; if (this.isSleeping) { this.rotationOrigin = player.Size / 2f; Vector2 posOffset2; this.drawPlayer.sleeping.GetSleepingOffsetInfo(this.drawPlayer, out posOffset2); this.Position += posOffset2; } this.weaponDrawOrder = WeaponDrawOrder.BehindFrontArm; if (this.heldItem.type == 4952) this.weaponDrawOrder = WeaponDrawOrder.BehindBackArm; if (GolfHelper.IsPlayerHoldingClub(player) && player.itemAnimation > player.itemAnimationMax) this.weaponDrawOrder = WeaponDrawOrder.OverFrontArm; this.projectileDrawPosition = -1; this.ItemLocation = this.Position + (this.drawPlayer.itemLocation - this.drawPlayer.position); this.armorAdjust = 0; this.missingHand = false; this.missingArm = false; this.heldProjOverHand = false; this.skinVar = this.drawPlayer.skinVariant; if (this.drawPlayer.body == 77 || this.drawPlayer.body == 103 || this.drawPlayer.body == 41 || this.drawPlayer.body == 100 || this.drawPlayer.body == 10 || this.drawPlayer.body == 11 || this.drawPlayer.body == 12 || this.drawPlayer.body == 13 || this.drawPlayer.body == 14 || this.drawPlayer.body == 43 || this.drawPlayer.body == 15 || this.drawPlayer.body == 16 || this.drawPlayer.body == 20 || this.drawPlayer.body == 39 || this.drawPlayer.body == 50 || this.drawPlayer.body == 38 || this.drawPlayer.body == 40 || this.drawPlayer.body == 57 || this.drawPlayer.body == 44 || this.drawPlayer.body == 52 || this.drawPlayer.body == 53 || this.drawPlayer.body == 68 || this.drawPlayer.body == 81 || this.drawPlayer.body == 85 || this.drawPlayer.body == 88 || this.drawPlayer.body == 98 || this.drawPlayer.body == 86 || this.drawPlayer.body == 87 || this.drawPlayer.body == 99 || this.drawPlayer.body == 165 || this.drawPlayer.body == 166 || this.drawPlayer.body == 167 || this.drawPlayer.body == 171 || this.drawPlayer.body == 45 || this.drawPlayer.body == 168 || this.drawPlayer.body == 169 || this.drawPlayer.body == 42 || this.drawPlayer.body == 180 || this.drawPlayer.body == 181 || this.drawPlayer.body == 183 || this.drawPlayer.body == 186 || this.drawPlayer.body == 187 || this.drawPlayer.body == 188 || this.drawPlayer.body == 64 || this.drawPlayer.body == 189 || this.drawPlayer.body == 191 || this.drawPlayer.body == 192 || this.drawPlayer.body == 198 || this.drawPlayer.body == 199 || this.drawPlayer.body == 202 || this.drawPlayer.body == 203 || this.drawPlayer.body == 58 || this.drawPlayer.body == 59 || this.drawPlayer.body == 60 || this.drawPlayer.body == 61 || this.drawPlayer.body == 62 || this.drawPlayer.body == 63 || this.drawPlayer.body == 36 || this.drawPlayer.body == 104 || this.drawPlayer.body == 184 || this.drawPlayer.body == 74 || this.drawPlayer.body == 78 || this.drawPlayer.body == 185 || this.drawPlayer.body == 196 || this.drawPlayer.body == 197 || this.drawPlayer.body == 182 || this.drawPlayer.body == 87 || this.drawPlayer.body == 76 || this.drawPlayer.body == 209 || this.drawPlayer.body == 168 || this.drawPlayer.body == 210 || this.drawPlayer.body == 211 || this.drawPlayer.body == 213) this.missingHand = true; this.missingArm = this.drawPlayer.body != 83; if (this.drawPlayer.heldProj >= 0 && (double) this.shadow == 0.0) { switch (Main.projectile[this.drawPlayer.heldProj].type) { case 460: case 535: case 600: this.heldProjOverHand = true; break; } } this.drawPlayer.GetHairSettings(out this.fullHair, out this.hatHair, out this.hideHair, out this.backHairDraw, out this.drawsBackHairWithoutHeadgear); this.hairDyePacked = PlayerDrawHelper.PackShader((int) this.drawPlayer.hairDye, PlayerDrawHelper.ShaderConfiguration.HairShader); if (this.drawPlayer.head == 0 && this.drawPlayer.hairDye == (byte) 0) this.hairDyePacked = PlayerDrawHelper.PackShader(1, PlayerDrawHelper.ShaderConfiguration.HairShader); this.skinDyePacked = player.skinDyePacked; if (this.drawPlayer.isDisplayDollOrInanimate) { Point tileCoordinates = this.Center.ToTileCoordinates(); bool actuallySelected; if (Main.InSmartCursorHighlightArea(tileCoordinates.X, tileCoordinates.Y, out actuallySelected)) { Color color = Lighting.GetColor(tileCoordinates.X, tileCoordinates.Y); int averageTileLighting = ((int) color.R + (int) color.G + (int) color.B) / 3; if (averageTileLighting > 10) this.selectionGlowColor = Colors.GetSelectionGlowColor(actuallySelected, averageTileLighting); } } this.mountOffSet = this.drawPlayer.HeightOffsetVisual; this.Position.Y -= this.mountOffSet; Mount.currentShader = !this.drawPlayer.mount.Active ? 0 : (this.drawPlayer.mount.Cart ? this.drawPlayer.cMinecart : this.drawPlayer.cMount); this.playerEffect = SpriteEffects.None; this.itemEffect = SpriteEffects.FlipHorizontally; this.colorHair = this.drawPlayer.GetImmuneAlpha(this.drawPlayer.GetHairColor(), this.shadow); this.colorEyeWhites = this.drawPlayer.GetImmuneAlpha(Lighting.GetColor((int) ((double) this.Position.X + (double) this.drawPlayer.width * 0.5) / 16, (int) (((double) this.Position.Y + (double) this.drawPlayer.height * 0.25) / 16.0), Color.White), this.shadow); this.colorEyes = this.drawPlayer.GetImmuneAlpha(Lighting.GetColor((int) ((double) this.Position.X + (double) this.drawPlayer.width * 0.5) / 16, (int) (((double) this.Position.Y + (double) this.drawPlayer.height * 0.25) / 16.0), this.drawPlayer.eyeColor), this.shadow); this.colorHead = this.drawPlayer.GetImmuneAlpha(Lighting.GetColor((int) ((double) this.Position.X + (double) this.drawPlayer.width * 0.5) / 16, (int) (((double) this.Position.Y + (double) this.drawPlayer.height * 0.25) / 16.0), this.drawPlayer.skinColor), this.shadow); this.colorBodySkin = this.drawPlayer.GetImmuneAlpha(Lighting.GetColor((int) ((double) this.Position.X + (double) this.drawPlayer.width * 0.5) / 16, (int) (((double) this.Position.Y + (double) this.drawPlayer.height * 0.5) / 16.0), this.drawPlayer.skinColor), this.shadow); this.colorLegs = this.drawPlayer.GetImmuneAlpha(Lighting.GetColor((int) ((double) this.Position.X + (double) this.drawPlayer.width * 0.5) / 16, (int) (((double) this.Position.Y + (double) this.drawPlayer.height * 0.75) / 16.0), this.drawPlayer.skinColor), this.shadow); this.colorShirt = this.drawPlayer.GetImmuneAlphaPure(Lighting.GetColor((int) ((double) this.Position.X + (double) this.drawPlayer.width * 0.5) / 16, (int) (((double) this.Position.Y + (double) this.drawPlayer.height * 0.5) / 16.0), this.drawPlayer.shirtColor), this.shadow); this.colorUnderShirt = this.drawPlayer.GetImmuneAlphaPure(Lighting.GetColor((int) ((double) this.Position.X + (double) this.drawPlayer.width * 0.5) / 16, (int) (((double) this.Position.Y + (double) this.drawPlayer.height * 0.5) / 16.0), this.drawPlayer.underShirtColor), this.shadow); this.colorPants = this.drawPlayer.GetImmuneAlphaPure(Lighting.GetColor((int) ((double) this.Position.X + (double) this.drawPlayer.width * 0.5) / 16, (int) (((double) this.Position.Y + (double) this.drawPlayer.height * 0.75) / 16.0), this.drawPlayer.pantsColor), this.shadow); this.colorShoes = this.drawPlayer.GetImmuneAlphaPure(Lighting.GetColor((int) ((double) this.Position.X + (double) this.drawPlayer.width * 0.5) / 16, (int) (((double) this.Position.Y + (double) this.drawPlayer.height * 0.75) / 16.0), this.drawPlayer.shoeColor), this.shadow); this.colorArmorHead = this.drawPlayer.GetImmuneAlphaPure(Lighting.GetColor((int) ((double) this.Position.X + (double) this.drawPlayer.width * 0.5) / 16, (int) ((double) this.Position.Y + (double) this.drawPlayer.height * 0.25) / 16, Color.White), this.shadow); this.colorArmorBody = this.drawPlayer.GetImmuneAlphaPure(Lighting.GetColor((int) ((double) this.Position.X + (double) this.drawPlayer.width * 0.5) / 16, (int) ((double) this.Position.Y + (double) this.drawPlayer.height * 0.5) / 16, Color.White), this.shadow); this.colorMount = this.colorArmorBody; this.colorArmorLegs = this.drawPlayer.GetImmuneAlphaPure(Lighting.GetColor((int) ((double) this.Position.X + (double) this.drawPlayer.width * 0.5) / 16, (int) ((double) this.Position.Y + (double) this.drawPlayer.height * 0.75) / 16, Color.White), this.shadow); this.floatingTubeColor = this.drawPlayer.GetImmuneAlphaPure(Lighting.GetColor((int) ((double) this.Position.X + (double) this.drawPlayer.width * 0.5) / 16, (int) ((double) this.Position.Y + (double) this.drawPlayer.height * 0.75) / 16, Color.White), this.shadow); this.colorElectricity = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, 100); int num1 = 0; int num2 = 0; int num3 = 0; int num4 = 0; this.headGlowMask = -1; this.bodyGlowMask = -1; this.armGlowMask = -1; this.legsGlowMask = -1; this.headGlowColor = Color.Transparent; this.bodyGlowColor = Color.Transparent; this.armGlowColor = Color.Transparent; this.legsGlowColor = Color.Transparent; switch (this.drawPlayer.head) { case 169: ++num1; break; case 170: ++num2; break; case 171: ++num3; break; case 189: ++num4; break; } switch (this.drawPlayer.body) { case 175: ++num1; break; case 176: ++num2; break; case 177: ++num3; break; case 190: ++num4; break; } switch (this.drawPlayer.legs) { case 110: int num5 = num1 + 1; break; case 111: int num6 = num2 + 1; break; case 112: int num7 = num3 + 1; break; case 130: int num8 = num4 + 1; break; } int num9 = 3; int num10 = 3; int num11 = 3; int num12 = 3; this.ArkhalisColor = this.drawPlayer.underShirtColor; this.ArkhalisColor.A = (byte) 180; if (this.drawPlayer.head == 169) { this.headGlowMask = 15; byte num13 = (byte) (62.5 * (double) (1 + num9)); this.headGlowColor = new Color((int) num13, (int) num13, (int) num13, 0); } else if (this.drawPlayer.head == 216) { this.headGlowMask = 256; byte num14 = 127; this.headGlowColor = new Color((int) num14, (int) num14, (int) num14, 0); } else if (this.drawPlayer.head == 210) { this.headGlowMask = 242; byte num15 = 127; this.headGlowColor = new Color((int) num15, (int) num15, (int) num15, 0); } else if (this.drawPlayer.head == 214) { this.headGlowMask = 245; this.headGlowColor = this.ArkhalisColor; } else if (this.drawPlayer.head == 240) { this.headGlowMask = 273; this.headGlowColor = new Color(230, 230, 230, 60); } else if (this.drawPlayer.head == 170) { this.headGlowMask = 16; byte num16 = (byte) (62.5 * (double) (1 + num10)); this.headGlowColor = new Color((int) num16, (int) num16, (int) num16, 0); } else if (this.drawPlayer.head == 189) { this.headGlowMask = 184; byte num17 = (byte) (62.5 * (double) (1 + num12)); this.headGlowColor = new Color((int) num17, (int) num17, (int) num17, 0); this.colorArmorHead = this.drawPlayer.GetImmuneAlphaPure(new Color((int) num17, (int) num17, (int) num17, (int) byte.MaxValue), this.shadow); } else if (this.drawPlayer.head == 171) { byte num18 = (byte) (62.5 * (double) (1 + num11)); this.colorArmorHead = this.drawPlayer.GetImmuneAlphaPure(new Color((int) num18, (int) num18, (int) num18, (int) byte.MaxValue), this.shadow); } else if (this.drawPlayer.head == 175) { this.headGlowMask = 41; this.headGlowColor = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, 0); } else if (this.drawPlayer.head == 193) { this.headGlowMask = 209; this.headGlowColor = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) sbyte.MaxValue); } else if (this.drawPlayer.head == 109) { this.headGlowMask = 208; this.headGlowColor = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, 0); } else if (this.drawPlayer.head == 178) { this.headGlowMask = 96; this.headGlowColor = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, 0); } if (this.drawPlayer.body == 175) { this.bodyGlowMask = !this.drawPlayer.Male ? 18 : 13; byte num19 = (byte) (62.5 * (double) (1 + num9)); this.bodyGlowColor = new Color((int) num19, (int) num19, (int) num19, 0); } else if (this.drawPlayer.body == 208) { this.bodyGlowMask = !this.drawPlayer.Male ? 247 : 246; this.armGlowMask = 248; this.bodyGlowColor = this.ArkhalisColor; this.armGlowColor = this.ArkhalisColor; } else if (this.drawPlayer.body == 227) { this.bodyGlowColor = new Color(230, 230, 230, 60); this.armGlowColor = new Color(230, 230, 230, 60); } else if (this.drawPlayer.body == 190) { this.bodyGlowMask = !this.drawPlayer.Male ? 186 : 185; this.armGlowMask = 188; byte num20 = (byte) (62.5 * (double) (1 + num12)); this.bodyGlowColor = new Color((int) num20, (int) num20, (int) num20, 0); this.armGlowColor = new Color((int) num20, (int) num20, (int) num20, 0); this.colorArmorBody = this.drawPlayer.GetImmuneAlphaPure(new Color((int) num20, (int) num20, (int) num20, (int) byte.MaxValue), this.shadow); } else if (this.drawPlayer.body == 176) { this.bodyGlowMask = !this.drawPlayer.Male ? 19 : 14; this.armGlowMask = 12; byte num21 = (byte) (62.5 * (double) (1 + num10)); this.bodyGlowColor = new Color((int) num21, (int) num21, (int) num21, 0); this.armGlowColor = new Color((int) num21, (int) num21, (int) num21, 0); } else if (this.drawPlayer.body == 194) { this.bodyGlowMask = 210; this.armGlowMask = 211; this.bodyGlowColor = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) sbyte.MaxValue); this.armGlowColor = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) sbyte.MaxValue); } else if (this.drawPlayer.body == 177) { byte num22 = (byte) (62.5 * (double) (1 + num11)); this.colorArmorBody = this.drawPlayer.GetImmuneAlphaPure(new Color((int) num22, (int) num22, (int) num22, (int) byte.MaxValue), this.shadow); } else if (this.drawPlayer.body == 179) { this.bodyGlowMask = !this.drawPlayer.Male ? 43 : 42; this.armGlowMask = 44; this.bodyGlowColor = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, 0); this.armGlowColor = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, 0); } if (this.drawPlayer.legs == 111) { this.legsGlowMask = 17; byte num23 = (byte) (62.5 * (double) (1 + num10)); this.legsGlowColor = new Color((int) num23, (int) num23, (int) num23, 0); } else if (this.drawPlayer.legs == 157) { this.legsGlowMask = 249; this.legsGlowColor = this.ArkhalisColor; } else if (this.drawPlayer.legs == 158) { this.legsGlowMask = 250; this.legsGlowColor = this.ArkhalisColor; } else if (this.drawPlayer.legs == 210) { this.legsGlowMask = 274; this.legsGlowColor = new Color(230, 230, 230, 60); } else if (this.drawPlayer.legs == 110) { this.legsGlowMask = 199; byte num24 = (byte) (62.5 * (double) (1 + num9)); this.legsGlowColor = new Color((int) num24, (int) num24, (int) num24, 0); } else if (this.drawPlayer.legs == 112) { byte num25 = (byte) (62.5 * (double) (1 + num11)); this.colorArmorLegs = this.drawPlayer.GetImmuneAlphaPure(new Color((int) num25, (int) num25, (int) num25, (int) byte.MaxValue), this.shadow); } else if (this.drawPlayer.legs == 134) { this.legsGlowMask = 212; this.legsGlowColor = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue, (int) sbyte.MaxValue); } else if (this.drawPlayer.legs == 130) { byte num26 = (byte) ((int) sbyte.MaxValue * (1 + num12)); this.legsGlowMask = 187; this.legsGlowColor = new Color((int) num26, (int) num26, (int) num26, 0); this.colorArmorLegs = this.drawPlayer.GetImmuneAlphaPure(new Color((int) num26, (int) num26, (int) num26, (int) byte.MaxValue), this.shadow); } float shadow = this.shadow; this.headGlowColor = this.drawPlayer.GetImmuneAlphaPure(this.headGlowColor, shadow); this.bodyGlowColor = this.drawPlayer.GetImmuneAlphaPure(this.bodyGlowColor, shadow); this.armGlowColor = this.drawPlayer.GetImmuneAlphaPure(this.armGlowColor, shadow); this.legsGlowColor = this.drawPlayer.GetImmuneAlphaPure(this.legsGlowColor, shadow); if (this.drawPlayer.head > 0 && this.drawPlayer.head < 266) { Main.instance.LoadArmorHead(this.drawPlayer.head); int i = ArmorIDs.Head.Sets.FrontToBackID[this.drawPlayer.head]; if (i >= 0) Main.instance.LoadArmorHead(i); } if (this.drawPlayer.body > 0 && this.drawPlayer.body < 235) Main.instance.LoadArmorBody(this.drawPlayer.body); if (this.drawPlayer.legs > 0 && this.drawPlayer.legs < 218) Main.instance.LoadArmorLegs(this.drawPlayer.legs); if (this.drawPlayer.handon > (sbyte) 0 && this.drawPlayer.handon < (sbyte) 22) Main.instance.LoadAccHandsOn((int) this.drawPlayer.handon); if (this.drawPlayer.handoff > (sbyte) 0 && this.drawPlayer.handoff < (sbyte) 14) Main.instance.LoadAccHandsOff((int) this.drawPlayer.handoff); if (this.drawPlayer.back > (sbyte) 0 && this.drawPlayer.back < (sbyte) 30) Main.instance.LoadAccBack((int) this.drawPlayer.back); if (this.drawPlayer.front > (sbyte) 0 && this.drawPlayer.front < (sbyte) 9) Main.instance.LoadAccFront((int) this.drawPlayer.front); if (this.drawPlayer.shoe > (sbyte) 0 && this.drawPlayer.shoe < (sbyte) 25) Main.instance.LoadAccShoes((int) this.drawPlayer.shoe); if (this.drawPlayer.waist > (sbyte) 0 && this.drawPlayer.waist < (sbyte) 17) Main.instance.LoadAccWaist((int) this.drawPlayer.waist); if (this.drawPlayer.shield > (sbyte) 0 && this.drawPlayer.shield < (sbyte) 10) Main.instance.LoadAccShield((int) this.drawPlayer.shield); if (this.drawPlayer.neck > (sbyte) 0 && this.drawPlayer.neck < (sbyte) 11) Main.instance.LoadAccNeck((int) this.drawPlayer.neck); if (this.drawPlayer.face > (sbyte) 0 && this.drawPlayer.face < (sbyte) 16) Main.instance.LoadAccFace((int) this.drawPlayer.face); if (this.drawPlayer.balloon > (sbyte) 0 && this.drawPlayer.balloon < (sbyte) 18) Main.instance.LoadAccBalloon((int) this.drawPlayer.balloon); Main.instance.LoadHair(this.drawPlayer.hair); if (this.drawPlayer.isHatRackDoll) { this.colorLegs = Color.Transparent; this.colorBodySkin = Color.Transparent; this.colorHead = Color.Transparent; this.colorHair = Color.Transparent; this.colorEyes = Color.Transparent; this.colorEyeWhites = Color.Transparent; } if (this.drawPlayer.isDisplayDollOrInanimate) { int localShaderIndex; PlayerDrawHelper.ShaderConfiguration shaderType; PlayerDrawHelper.UnpackShader(this.skinDyePacked, out localShaderIndex, out shaderType); if (shaderType == PlayerDrawHelper.ShaderConfiguration.TilePaintID && localShaderIndex == 31) { this.colorHead = Color.White; this.colorBodySkin = Color.White; this.colorLegs = Color.White; this.colorEyes = Color.White; this.colorEyeWhites = Color.White; this.colorArmorHead = Color.White; this.colorArmorBody = Color.White; this.colorArmorLegs = Color.White; } } if (!this.drawPlayer.isDisplayDollOrInanimate) { if ((this.drawPlayer.head == 78 || this.drawPlayer.head == 79 || this.drawPlayer.head == 80) && this.drawPlayer.body == 51 && this.drawPlayer.legs == 47) { float num27 = (float) ((double) Main.mouseTextColor / 200.0 - 0.300000011920929); if ((double) this.shadow != 0.0) num27 = 0.0f; this.colorArmorHead.R = (byte) ((double) this.colorArmorHead.R * (double) num27); this.colorArmorHead.G = (byte) ((double) this.colorArmorHead.G * (double) num27); this.colorArmorHead.B = (byte) ((double) this.colorArmorHead.B * (double) num27); this.colorArmorBody.R = (byte) ((double) this.colorArmorBody.R * (double) num27); this.colorArmorBody.G = (byte) ((double) this.colorArmorBody.G * (double) num27); this.colorArmorBody.B = (byte) ((double) this.colorArmorBody.B * (double) num27); this.colorArmorLegs.R = (byte) ((double) this.colorArmorLegs.R * (double) num27); this.colorArmorLegs.G = (byte) ((double) this.colorArmorLegs.G * (double) num27); this.colorArmorLegs.B = (byte) ((double) this.colorArmorLegs.B * (double) num27); } if (this.drawPlayer.head == 193 && this.drawPlayer.body == 194 && this.drawPlayer.legs == 134) { float num28 = (float) (0.600000023841858 - (double) this.drawPlayer.ghostFade * 0.300000011920929); if ((double) this.shadow != 0.0) num28 = 0.0f; this.colorArmorHead.R = (byte) ((double) this.colorArmorHead.R * (double) num28); this.colorArmorHead.G = (byte) ((double) this.colorArmorHead.G * (double) num28); this.colorArmorHead.B = (byte) ((double) this.colorArmorHead.B * (double) num28); this.colorArmorBody.R = (byte) ((double) this.colorArmorBody.R * (double) num28); this.colorArmorBody.G = (byte) ((double) this.colorArmorBody.G * (double) num28); this.colorArmorBody.B = (byte) ((double) this.colorArmorBody.B * (double) num28); this.colorArmorLegs.R = (byte) ((double) this.colorArmorLegs.R * (double) num28); this.colorArmorLegs.G = (byte) ((double) this.colorArmorLegs.G * (double) num28); this.colorArmorLegs.B = (byte) ((double) this.colorArmorLegs.B * (double) num28); } if ((double) this.shadow > 0.0) { this.colorLegs = Color.Transparent; this.colorBodySkin = Color.Transparent; this.colorHead = Color.Transparent; this.colorHair = Color.Transparent; this.colorEyes = Color.Transparent; this.colorEyeWhites = Color.Transparent; } } float R = 1f; float G = 1f; float B = 1f; float A = 1f; if (this.drawPlayer.honey && Main.rand.Next(30) == 0 && (double) this.shadow == 0.0) { Dust dust1 = Dust.NewDustDirect(this.Position, this.drawPlayer.width, this.drawPlayer.height, 152, Alpha: 150); dust1.velocity.Y = 0.3f; dust1.velocity.X *= 0.1f; dust1.scale += (float) Main.rand.Next(3, 4) * 0.1f; dust1.alpha = 100; dust1.noGravity = true; dust1.velocity += this.drawPlayer.velocity * 0.1f; this.DustCache.Add(dust1.dustIndex); } if (this.drawPlayer.dryadWard && (double) this.drawPlayer.velocity.X != 0.0 && Main.rand.Next(4) == 0) { Dust dust2 = Dust.NewDustDirect(new Vector2(this.drawPlayer.position.X - 2f, (float) ((double) this.drawPlayer.position.Y + (double) this.drawPlayer.height - 2.0)), this.drawPlayer.width + 4, 4, 163, Alpha: 100, Scale: 1.5f); dust2.noGravity = true; dust2.noLight = true; dust2.velocity *= 0.0f; this.DustCache.Add(dust2.dustIndex); } if (this.drawPlayer.poisoned) { if (Main.rand.Next(50) == 0 && (double) this.shadow == 0.0) { Dust dust3 = Dust.NewDustDirect(this.Position, this.drawPlayer.width, this.drawPlayer.height, 46, Alpha: 150, Scale: 0.2f); dust3.noGravity = true; dust3.fadeIn = 1.9f; this.DustCache.Add(dust3.dustIndex); } R *= 0.65f; B *= 0.75f; } if (this.drawPlayer.venom) { if (Main.rand.Next(10) == 0 && (double) this.shadow == 0.0) { Dust dust4 = Dust.NewDustDirect(this.Position, this.drawPlayer.width, this.drawPlayer.height, 171, Alpha: 100, Scale: 0.5f); dust4.noGravity = true; dust4.fadeIn = 1.5f; this.DustCache.Add(dust4.dustIndex); } G *= 0.45f; R *= 0.75f; } if (this.drawPlayer.onFire) { if (Main.rand.Next(4) == 0 && (double) this.shadow == 0.0) { Dust dust5 = Dust.NewDustDirect(new Vector2(this.Position.X - 2f, this.Position.Y - 2f), this.drawPlayer.width + 4, this.drawPlayer.height + 4, 6, this.drawPlayer.velocity.X * 0.4f, this.drawPlayer.velocity.Y * 0.4f, 100, Scale: 3f); dust5.noGravity = true; dust5.velocity *= 1.8f; dust5.velocity.Y -= 0.5f; this.DustCache.Add(dust5.dustIndex); } B *= 0.6f; G *= 0.7f; } if (this.drawPlayer.dripping && (double) this.shadow == 0.0 && Main.rand.Next(4) != 0) { Vector2 position = this.Position; position.X -= 2f; position.Y -= 2f; if (Main.rand.Next(2) == 0) { Dust dust6 = Dust.NewDustDirect(position, this.drawPlayer.width + 4, this.drawPlayer.height + 2, 211, Alpha: 50, Scale: 0.8f); if (Main.rand.Next(2) == 0) dust6.alpha += 25; if (Main.rand.Next(2) == 0) dust6.alpha += 25; dust6.noLight = true; dust6.velocity *= 0.2f; dust6.velocity.Y += 0.2f; dust6.velocity += this.drawPlayer.velocity; this.DustCache.Add(dust6.dustIndex); } else { Dust dust7 = Dust.NewDustDirect(position, this.drawPlayer.width + 8, this.drawPlayer.height + 8, 211, Alpha: 50, Scale: 1.1f); if (Main.rand.Next(2) == 0) dust7.alpha += 25; if (Main.rand.Next(2) == 0) dust7.alpha += 25; dust7.noLight = true; dust7.noGravity = true; dust7.velocity *= 0.2f; ++dust7.velocity.Y; dust7.velocity += this.drawPlayer.velocity; this.DustCache.Add(dust7.dustIndex); } } if (this.drawPlayer.drippingSlime) { int Alpha = 175; Color newColor = new Color(0, 80, (int) byte.MaxValue, 100); if (Main.rand.Next(4) != 0 && (double) this.shadow == 0.0) { Vector2 position = this.Position; position.X -= 2f; position.Y -= 2f; if (Main.rand.Next(2) == 0) { Dust dust8 = Dust.NewDustDirect(position, this.drawPlayer.width + 4, this.drawPlayer.height + 2, 4, Alpha: Alpha, newColor: newColor, Scale: 1.4f); if (Main.rand.Next(2) == 0) dust8.alpha += 25; if (Main.rand.Next(2) == 0) dust8.alpha += 25; dust8.noLight = true; dust8.velocity *= 0.2f; dust8.velocity.Y += 0.2f; dust8.velocity += this.drawPlayer.velocity; this.DustCache.Add(dust8.dustIndex); } } R *= 0.8f; G *= 0.8f; } if (this.drawPlayer.drippingSparkleSlime) { int Alpha = 100; if (Main.rand.Next(4) != 0 && (double) this.shadow == 0.0) { Vector2 position = this.Position; position.X -= 2f; position.Y -= 2f; if (Main.rand.Next(4) == 0) { Color rgb = Main.hslToRgb((float) (0.699999988079071 + 0.200000002980232 * (double) Main.rand.NextFloat()), 1f, 0.5f); rgb.A /= (byte) 2; Dust dust9 = Dust.NewDustDirect(position, this.drawPlayer.width + 4, this.drawPlayer.height + 2, 4, Alpha: Alpha, newColor: rgb, Scale: 0.65f); if (Main.rand.Next(2) == 0) dust9.alpha += 25; if (Main.rand.Next(2) == 0) dust9.alpha += 25; dust9.noLight = true; dust9.velocity *= 0.2f; dust9.velocity += this.drawPlayer.velocity * 0.7f; dust9.fadeIn = 0.8f; this.DustCache.Add(dust9.dustIndex); } if (Main.rand.Next(30) == 0) { Main.hslToRgb((float) (0.699999988079071 + 0.200000002980232 * (double) Main.rand.NextFloat()), 1f, 0.5f).A /= (byte) 2; Dust dust10 = Dust.NewDustDirect(position, this.drawPlayer.width + 4, this.drawPlayer.height + 2, 43, Alpha: 254, newColor: new Color((int) sbyte.MaxValue, (int) sbyte.MaxValue, (int) sbyte.MaxValue, 0), Scale: 0.45f); dust10.noLight = true; dust10.velocity.X *= 0.0f; dust10.velocity *= 0.03f; dust10.fadeIn = 0.6f; this.DustCache.Add(dust10.dustIndex); } } R *= 0.94f; G *= 0.82f; } if (this.drawPlayer.ichor) B = 0.0f; if (this.drawPlayer.electrified && (double) this.shadow == 0.0 && Main.rand.Next(3) == 0) { Dust dust11 = Dust.NewDustDirect(new Vector2(this.Position.X - 2f, this.Position.Y - 2f), this.drawPlayer.width + 4, this.drawPlayer.height + 4, 226, Alpha: 100, Scale: 0.5f); dust11.velocity *= 1.6f; --dust11.velocity.Y; dust11.position = Vector2.Lerp(dust11.position, this.drawPlayer.Center, 0.5f); this.DustCache.Add(dust11.dustIndex); } if (this.drawPlayer.burned) { if ((double) this.shadow == 0.0) { Dust dust12 = Dust.NewDustDirect(new Vector2(this.Position.X - 2f, this.Position.Y - 2f), this.drawPlayer.width + 4, this.drawPlayer.height + 4, 6, this.drawPlayer.velocity.X * 0.4f, this.drawPlayer.velocity.Y * 0.4f, 100, Scale: 2f); dust12.noGravity = true; dust12.velocity *= 1.8f; dust12.velocity.Y -= 0.75f; this.DustCache.Add(dust12.dustIndex); } R = 1f; B *= 0.6f; G *= 0.7f; } if (this.drawPlayer.onFrostBurn) { if (Main.rand.Next(4) == 0 && (double) this.shadow == 0.0) { Dust dust13 = Dust.NewDustDirect(new Vector2(this.Position.X - 2f, this.Position.Y - 2f), this.drawPlayer.width + 4, this.drawPlayer.height + 4, 135, this.drawPlayer.velocity.X * 0.4f, this.drawPlayer.velocity.Y * 0.4f, 100, Scale: 3f); dust13.noGravity = true; dust13.velocity *= 1.8f; dust13.velocity.Y -= 0.5f; this.DustCache.Add(dust13.dustIndex); } R *= 0.5f; G *= 0.7f; } if (this.drawPlayer.onFire2) { if (Main.rand.Next(4) == 0 && (double) this.shadow == 0.0) { Dust dust14 = Dust.NewDustDirect(new Vector2(this.Position.X - 2f, this.Position.Y - 2f), this.drawPlayer.width + 4, this.drawPlayer.height + 4, 75, this.drawPlayer.velocity.X * 0.4f, this.drawPlayer.velocity.Y * 0.4f, 100, Scale: 3f); dust14.noGravity = true; dust14.velocity *= 1.8f; dust14.velocity.Y -= 0.5f; this.DustCache.Add(dust14.dustIndex); } B *= 0.6f; G *= 0.7f; } if (this.drawPlayer.noItems) { G *= 0.8f; R *= 0.65f; } if (this.drawPlayer.blind) { G *= 0.65f; R *= 0.7f; } if (this.drawPlayer.bleed) { G *= 0.9f; B *= 0.9f; if (!this.drawPlayer.dead && Main.rand.Next(30) == 0 && (double) this.shadow == 0.0) { Dust dust15 = Dust.NewDustDirect(this.Position, this.drawPlayer.width, this.drawPlayer.height, 5); dust15.velocity.Y += 0.5f; dust15.velocity *= 0.25f; this.DustCache.Add(dust15.dustIndex); } } if ((double) this.shadow == 0.0 && this.drawPlayer.palladiumRegen && this.drawPlayer.statLife < this.drawPlayer.statLifeMax2 && Main.instance.IsActive && !Main.gamePaused && this.drawPlayer.miscCounter % 10 == 0 && (double) this.shadow == 0.0) { Vector2 Position; Position.X = this.Position.X + (float) Main.rand.Next(this.drawPlayer.width); Position.Y = this.Position.Y + (float) Main.rand.Next(this.drawPlayer.height); Position.X = (float) ((double) this.Position.X + (double) (this.drawPlayer.width / 2) - 6.0); Position.Y = (float) ((double) this.Position.Y + (double) (this.drawPlayer.height / 2) - 6.0); Position.X -= (float) Main.rand.Next(-10, 11); Position.Y -= (float) Main.rand.Next(-20, 21); this.GoreCache.Add(Gore.NewGore(Position, new Vector2((float) Main.rand.Next(-10, 11) * 0.1f, (float) Main.rand.Next(-20, -10) * 0.1f), 331, (float) Main.rand.Next(80, 120) * 0.01f)); } if ((double) this.shadow == 0.0 && this.drawPlayer.loveStruck && Main.instance.IsActive && !Main.gamePaused && Main.rand.Next(5) == 0) { Vector2 vector2 = new Vector2((float) Main.rand.Next(-10, 11), (float) Main.rand.Next(-10, 11)); vector2.Normalize(); vector2.X *= 0.66f; int index = Gore.NewGore(this.Position + new Vector2((float) Main.rand.Next(this.drawPlayer.width + 1), (float) Main.rand.Next(this.drawPlayer.height + 1)), vector2 * (float) Main.rand.Next(3, 6) * 0.33f, 331, (float) Main.rand.Next(40, 121) * 0.01f); Main.gore[index].sticky = false; Main.gore[index].velocity *= 0.4f; Main.gore[index].velocity.Y -= 0.6f; this.GoreCache.Add(index); } if (this.drawPlayer.stinky && Main.instance.IsActive && !Main.gamePaused) { R *= 0.7f; B *= 0.55f; if (Main.rand.Next(5) == 0 && (double) this.shadow == 0.0) { Vector2 vector2_1 = new Vector2((float) Main.rand.Next(-10, 11), (float) Main.rand.Next(-10, 11)); vector2_1.Normalize(); vector2_1.X *= 0.66f; vector2_1.Y = Math.Abs(vector2_1.Y); Vector2 vector2_2 = vector2_1 * (float) Main.rand.Next(3, 5) * 0.25f; int index = Dust.NewDust(this.Position, this.drawPlayer.width, this.drawPlayer.height, 188, vector2_2.X, vector2_2.Y * 0.5f, 100, Scale: 1.5f); Main.dust[index].velocity *= 0.1f; Main.dust[index].velocity.Y -= 0.5f; this.DustCache.Add(index); } } if (this.drawPlayer.slowOgreSpit && Main.instance.IsActive && !Main.gamePaused) { R *= 0.6f; B *= 0.45f; if (Main.rand.Next(5) == 0 && (double) this.shadow == 0.0) { int Type = Utils.SelectRandom(Main.rand, 4, 256); Dust dust16 = Main.dust[Dust.NewDust(this.Position, this.drawPlayer.width, this.drawPlayer.height, Type, Alpha: 100)]; dust16.scale = (float) (0.800000011920929 + (double) Main.rand.NextFloat() * 0.600000023841858); dust16.fadeIn = 0.5f; dust16.velocity *= 0.05f; dust16.noLight = true; if (dust16.type == 4) dust16.color = new Color(80, 170, 40, 120); this.DustCache.Add(dust16.dustIndex); } if (Main.rand.Next(5) == 0 && (double) this.shadow == 0.0) { int index = Gore.NewGore(this.Position + new Vector2(Main.rand.NextFloat(), Main.rand.NextFloat()) * this.drawPlayer.Size, Vector2.Zero, Utils.SelectRandom(Main.rand, 1024, 1025, 1026), 0.65f); Main.gore[index].velocity *= 0.05f; this.GoreCache.Add(index); } } if (Main.instance.IsActive && !Main.gamePaused && (double) this.shadow == 0.0) { float num29 = (float) this.drawPlayer.miscCounter / 180f; float num30 = 0.0f; float num31 = 10f; int Type = 90; int num32 = 0; for (int index1 = 0; index1 < 3; ++index1) { switch (index1) { case 0: if (this.drawPlayer.nebulaLevelLife >= 1) { num30 = 6.283185f / (float) this.drawPlayer.nebulaLevelLife; num32 = this.drawPlayer.nebulaLevelLife; goto default; } else break; case 1: if (this.drawPlayer.nebulaLevelMana >= 1) { num30 = -6.283185f / (float) this.drawPlayer.nebulaLevelMana; num32 = this.drawPlayer.nebulaLevelMana; num29 = (float) -this.drawPlayer.miscCounter / 180f; num31 = 20f; Type = 88; goto default; } else break; case 2: if (this.drawPlayer.nebulaLevelDamage >= 1) { num30 = 6.283185f / (float) this.drawPlayer.nebulaLevelDamage; num32 = this.drawPlayer.nebulaLevelDamage; num29 = (float) this.drawPlayer.miscCounter / 180f; num31 = 30f; Type = 86; goto default; } else break; default: for (int index2 = 0; index2 < num32; ++index2) { Dust dust17 = Dust.NewDustDirect(this.Position, this.drawPlayer.width, this.drawPlayer.height, Type, Alpha: 100, Scale: 1.5f); dust17.noGravity = true; dust17.velocity = Vector2.Zero; dust17.position = this.drawPlayer.Center + Vector2.UnitY * this.drawPlayer.gfxOffY + ((float) ((double) num29 * 6.28318548202515 + (double) num30 * (double) index2)).ToRotationVector2() * num31; dust17.customData = (object) this.drawPlayer; this.DustCache.Add(dust17.dustIndex); } break; } } } if (this.drawPlayer.witheredArmor && Main.instance.IsActive && !Main.gamePaused) { G *= 0.5f; R *= 0.75f; } if (this.drawPlayer.witheredWeapon && this.drawPlayer.itemAnimation > 0 && this.heldItem.damage > 0 && Main.instance.IsActive && !Main.gamePaused && Main.rand.Next(3) == 0) { Dust dust18 = Dust.NewDustDirect(new Vector2(this.Position.X - 2f, this.Position.Y - 2f), this.drawPlayer.width + 4, this.drawPlayer.height + 4, 272, Alpha: 50, Scale: 0.5f); dust18.velocity *= 1.6f; --dust18.velocity.Y; dust18.position = Vector2.Lerp(dust18.position, this.drawPlayer.Center, 0.5f); this.DustCache.Add(dust18.dustIndex); } if ((double) R != 1.0 || (double) G != 1.0 || (double) B != 1.0 || (double) A != 1.0) { if (this.drawPlayer.onFire || this.drawPlayer.onFire2 || this.drawPlayer.onFrostBurn) { this.colorEyeWhites = this.drawPlayer.GetImmuneAlpha(Color.White, this.shadow); this.colorEyes = this.drawPlayer.GetImmuneAlpha(this.drawPlayer.eyeColor, this.shadow); this.colorHair = this.drawPlayer.GetImmuneAlpha(this.drawPlayer.GetHairColor(false), this.shadow); this.colorHead = this.drawPlayer.GetImmuneAlpha(this.drawPlayer.skinColor, this.shadow); this.colorBodySkin = this.drawPlayer.GetImmuneAlpha(this.drawPlayer.skinColor, this.shadow); this.colorShirt = this.drawPlayer.GetImmuneAlpha(this.drawPlayer.shirtColor, this.shadow); this.colorUnderShirt = this.drawPlayer.GetImmuneAlpha(this.drawPlayer.underShirtColor, this.shadow); this.colorPants = this.drawPlayer.GetImmuneAlpha(this.drawPlayer.pantsColor, this.shadow); this.colorLegs = this.drawPlayer.GetImmuneAlpha(this.drawPlayer.skinColor, this.shadow); this.colorShoes = this.drawPlayer.GetImmuneAlpha(this.drawPlayer.shoeColor, this.shadow); this.colorArmorHead = this.drawPlayer.GetImmuneAlpha(Color.White, this.shadow); this.colorArmorBody = this.drawPlayer.GetImmuneAlpha(Color.White, this.shadow); this.colorArmorLegs = this.drawPlayer.GetImmuneAlpha(Color.White, this.shadow); } else { this.colorEyeWhites = Main.buffColor(this.colorEyeWhites, R, G, B, A); this.colorEyes = Main.buffColor(this.colorEyes, R, G, B, A); this.colorHair = Main.buffColor(this.colorHair, R, G, B, A); this.colorHead = Main.buffColor(this.colorHead, R, G, B, A); this.colorBodySkin = Main.buffColor(this.colorBodySkin, R, G, B, A); this.colorShirt = Main.buffColor(this.colorShirt, R, G, B, A); this.colorUnderShirt = Main.buffColor(this.colorUnderShirt, R, G, B, A); this.colorPants = Main.buffColor(this.colorPants, R, G, B, A); this.colorLegs = Main.buffColor(this.colorLegs, R, G, B, A); this.colorShoes = Main.buffColor(this.colorShoes, R, G, B, A); this.colorArmorHead = Main.buffColor(this.colorArmorHead, R, G, B, A); this.colorArmorBody = Main.buffColor(this.colorArmorBody, R, G, B, A); this.colorArmorLegs = Main.buffColor(this.colorArmorLegs, R, G, B, A); } } if (this.drawPlayer.socialGhost) { this.colorEyeWhites = Color.Transparent; this.colorEyes = Color.Transparent; this.colorHair = Color.Transparent; this.colorHead = Color.Transparent; this.colorBodySkin = Color.Transparent; this.colorShirt = Color.Transparent; this.colorUnderShirt = Color.Transparent; this.colorPants = Color.Transparent; this.colorShoes = Color.Transparent; this.colorLegs = Color.Transparent; if ((int) this.colorArmorHead.A > (int) Main.gFade) this.colorArmorHead.A = Main.gFade; if ((int) this.colorArmorBody.A > (int) Main.gFade) this.colorArmorBody.A = Main.gFade; if ((int) this.colorArmorLegs.A > (int) Main.gFade) this.colorArmorLegs.A = Main.gFade; } if (this.drawPlayer.socialIgnoreLight) { float num33 = 1.2f; this.colorEyeWhites = Color.White * num33; this.colorEyes = this.drawPlayer.eyeColor * num33; this.colorHair = GameShaders.Hair.GetColor((short) this.drawPlayer.hairDye, this.drawPlayer, Color.White); this.colorHead = this.drawPlayer.skinColor * num33; this.colorBodySkin = this.drawPlayer.skinColor * num33; this.colorShirt = this.drawPlayer.shirtColor * num33; this.colorUnderShirt = this.drawPlayer.underShirtColor * num33; this.colorPants = this.drawPlayer.pantsColor * num33; this.colorShoes = this.drawPlayer.shoeColor * num33; this.colorLegs = this.drawPlayer.skinColor * num33; } this.stealth = 1f; if (this.heldItem.type == 3106) { float num34 = this.drawPlayer.stealth; if ((double) num34 < 0.03) num34 = 0.03f; float num35 = (float) ((1.0 + (double) num34 * 10.0) / 11.0); if ((double) num34 < 0.0) num34 = 0.0f; if ((double) num34 >= 1.0 - (double) this.shadow && (double) this.shadow > 0.0) num34 = this.shadow * 0.5f; this.stealth = num35; this.colorArmorHead = new Color((int) (byte) ((double) this.colorArmorHead.R * (double) num34), (int) (byte) ((double) this.colorArmorHead.G * (double) num34), (int) (byte) ((double) this.colorArmorHead.B * (double) num35), (int) (byte) ((double) this.colorArmorHead.A * (double) num34)); this.colorArmorBody = new Color((int) (byte) ((double) this.colorArmorBody.R * (double) num34), (int) (byte) ((double) this.colorArmorBody.G * (double) num34), (int) (byte) ((double) this.colorArmorBody.B * (double) num35), (int) (byte) ((double) this.colorArmorBody.A * (double) num34)); this.colorArmorLegs = new Color((int) (byte) ((double) this.colorArmorLegs.R * (double) num34), (int) (byte) ((double) this.colorArmorLegs.G * (double) num34), (int) (byte) ((double) this.colorArmorLegs.B * (double) num35), (int) (byte) ((double) this.colorArmorLegs.A * (double) num34)); float scale = num34 * num34; this.colorEyeWhites = Color.Multiply(this.colorEyeWhites, scale); this.colorEyes = Color.Multiply(this.colorEyes, scale); this.colorHair = Color.Multiply(this.colorHair, scale); this.colorHead = Color.Multiply(this.colorHead, scale); this.colorBodySkin = Color.Multiply(this.colorBodySkin, scale); this.colorShirt = Color.Multiply(this.colorShirt, scale); this.colorUnderShirt = Color.Multiply(this.colorUnderShirt, scale); this.colorPants = Color.Multiply(this.colorPants, scale); this.colorShoes = Color.Multiply(this.colorShoes, scale); this.colorLegs = Color.Multiply(this.colorLegs, scale); this.colorMount = Color.Multiply(this.colorMount, scale); this.headGlowColor = Color.Multiply(this.headGlowColor, scale); this.bodyGlowColor = Color.Multiply(this.bodyGlowColor, scale); this.armGlowColor = Color.Multiply(this.armGlowColor, scale); this.legsGlowColor = Color.Multiply(this.legsGlowColor, scale); } else if (this.drawPlayer.shroomiteStealth) { float num36 = this.drawPlayer.stealth; if ((double) num36 < 0.03) num36 = 0.03f; float num37 = (float) ((1.0 + (double) num36 * 10.0) / 11.0); if ((double) num36 < 0.0) num36 = 0.0f; if ((double) num36 >= 1.0 - (double) this.shadow && (double) this.shadow > 0.0) num36 = this.shadow * 0.5f; this.stealth = num37; this.colorArmorHead = new Color((int) (byte) ((double) this.colorArmorHead.R * (double) num36), (int) (byte) ((double) this.colorArmorHead.G * (double) num36), (int) (byte) ((double) this.colorArmorHead.B * (double) num37), (int) (byte) ((double) this.colorArmorHead.A * (double) num36)); this.colorArmorBody = new Color((int) (byte) ((double) this.colorArmorBody.R * (double) num36), (int) (byte) ((double) this.colorArmorBody.G * (double) num36), (int) (byte) ((double) this.colorArmorBody.B * (double) num37), (int) (byte) ((double) this.colorArmorBody.A * (double) num36)); this.colorArmorLegs = new Color((int) (byte) ((double) this.colorArmorLegs.R * (double) num36), (int) (byte) ((double) this.colorArmorLegs.G * (double) num36), (int) (byte) ((double) this.colorArmorLegs.B * (double) num37), (int) (byte) ((double) this.colorArmorLegs.A * (double) num36)); float scale = num36 * num36; this.colorEyeWhites = Color.Multiply(this.colorEyeWhites, scale); this.colorEyes = Color.Multiply(this.colorEyes, scale); this.colorHair = Color.Multiply(this.colorHair, scale); this.colorHead = Color.Multiply(this.colorHead, scale); this.colorBodySkin = Color.Multiply(this.colorBodySkin, scale); this.colorShirt = Color.Multiply(this.colorShirt, scale); this.colorUnderShirt = Color.Multiply(this.colorUnderShirt, scale); this.colorPants = Color.Multiply(this.colorPants, scale); this.colorShoes = Color.Multiply(this.colorShoes, scale); this.colorLegs = Color.Multiply(this.colorLegs, scale); this.colorMount = Color.Multiply(this.colorMount, scale); this.headGlowColor = Color.Multiply(this.headGlowColor, scale); this.bodyGlowColor = Color.Multiply(this.bodyGlowColor, scale); this.armGlowColor = Color.Multiply(this.armGlowColor, scale); this.legsGlowColor = Color.Multiply(this.legsGlowColor, scale); } else if (this.drawPlayer.setVortex) { float num38 = this.drawPlayer.stealth; if ((double) num38 < 0.03) num38 = 0.03f; if ((double) num38 < 0.0) num38 = 0.0f; if ((double) num38 >= 1.0 - (double) this.shadow && (double) this.shadow > 0.0) num38 = this.shadow * 0.5f; this.stealth = num38; Color secondColor = new Color(Vector4.Lerp(Vector4.One, new Vector4(0.0f, 0.12f, 0.16f, 0.0f), 1f - num38)); this.colorArmorHead = this.colorArmorHead.MultiplyRGBA(secondColor); this.colorArmorBody = this.colorArmorBody.MultiplyRGBA(secondColor); this.colorArmorLegs = this.colorArmorLegs.MultiplyRGBA(secondColor); float scale = num38 * num38; this.colorEyeWhites = Color.Multiply(this.colorEyeWhites, scale); this.colorEyes = Color.Multiply(this.colorEyes, scale); this.colorHair = Color.Multiply(this.colorHair, scale); this.colorHead = Color.Multiply(this.colorHead, scale); this.colorBodySkin = Color.Multiply(this.colorBodySkin, scale); this.colorShirt = Color.Multiply(this.colorShirt, scale); this.colorUnderShirt = Color.Multiply(this.colorUnderShirt, scale); this.colorPants = Color.Multiply(this.colorPants, scale); this.colorShoes = Color.Multiply(this.colorShoes, scale); this.colorLegs = Color.Multiply(this.colorLegs, scale); this.colorMount = Color.Multiply(this.colorMount, scale); this.headGlowColor = Color.Multiply(this.headGlowColor, scale); this.bodyGlowColor = Color.Multiply(this.bodyGlowColor, scale); this.armGlowColor = Color.Multiply(this.armGlowColor, scale); this.legsGlowColor = Color.Multiply(this.legsGlowColor, scale); } if ((double) this.drawPlayer.gravDir == 1.0) { if (this.drawPlayer.direction == 1) { this.playerEffect = SpriteEffects.None; this.itemEffect = SpriteEffects.None; } else { this.playerEffect = SpriteEffects.FlipHorizontally; this.itemEffect = SpriteEffects.FlipHorizontally; } if (!this.drawPlayer.dead) { this.drawPlayer.legPosition.Y = 0.0f; this.drawPlayer.headPosition.Y = 0.0f; this.drawPlayer.bodyPosition.Y = 0.0f; } } else { if (this.drawPlayer.direction == 1) { this.playerEffect = SpriteEffects.FlipVertically; this.itemEffect = SpriteEffects.FlipVertically; } else { this.playerEffect = SpriteEffects.FlipHorizontally | SpriteEffects.FlipVertically; this.itemEffect = SpriteEffects.FlipHorizontally | SpriteEffects.FlipVertically; } if (!this.drawPlayer.dead) { this.drawPlayer.legPosition.Y = 6f; this.drawPlayer.headPosition.Y = 6f; this.drawPlayer.bodyPosition.Y = 6f; } } switch (this.heldItem.type) { case 3182: case 3184: case 3185: case 3782: this.itemEffect ^= SpriteEffects.FlipHorizontally | SpriteEffects.FlipVertically; break; } this.legVect = new Vector2((float) this.drawPlayer.legFrame.Width * 0.5f, (float) this.drawPlayer.legFrame.Height * 0.75f); this.bodyVect = new Vector2((float) this.drawPlayer.legFrame.Width * 0.5f, (float) this.drawPlayer.legFrame.Height * 0.5f); this.headVect = new Vector2((float) this.drawPlayer.legFrame.Width * 0.5f, (float) this.drawPlayer.legFrame.Height * 0.4f); if ((this.drawPlayer.merman || this.drawPlayer.forceMerman) && !this.drawPlayer.hideMerman) { this.drawPlayer.headRotation = (float) ((double) this.drawPlayer.velocity.Y * (double) this.drawPlayer.direction * 0.100000001490116); if ((double) this.drawPlayer.headRotation < -0.3) this.drawPlayer.headRotation = -0.3f; if ((double) this.drawPlayer.headRotation > 0.3) this.drawPlayer.headRotation = 0.3f; } else if (!this.drawPlayer.dead) this.drawPlayer.headRotation = 0.0f; this.hairFrame = this.drawPlayer.bodyFrame; this.hairFrame.Y -= 336; if (this.hairFrame.Y < 0) this.hairFrame.Y = 0; if (this.hideHair) this.hairFrame.Height = 0; this.hidesTopSkin = this.drawPlayer.body == 82 || this.drawPlayer.body == 83 || this.drawPlayer.body == 93 || this.drawPlayer.body == 21 || this.drawPlayer.body == 22; this.hidesBottomSkin = this.drawPlayer.body == 93 || this.drawPlayer.legs == 20 || this.drawPlayer.legs == 21; this.drawFloatingTube = this.drawPlayer.hasFloatingTube; this.drawUnicornHorn = this.drawPlayer.hasUnicornHorn; this.drawFrontAccInNeckAccLayer = false; if (this.drawPlayer.bodyFrame.Y / this.drawPlayer.bodyFrame.Height == 5) this.drawFrontAccInNeckAccLayer = this.drawPlayer.front > (sbyte) 0 && this.drawPlayer.front < (sbyte) 9 && ArmorIDs.Front.Sets.DrawsInNeckLayer[(int) this.drawPlayer.front]; this.helmetOffset = this.drawPlayer.GetHelmetDrawOffset(); this.CreateCompositeData(); } private void CreateCompositeData() { this.frontShoulderOffset = Vector2.Zero; this.backShoulderOffset = Vector2.Zero; this.usesCompositeTorso = this.drawPlayer.body > 0 && this.drawPlayer.body < 235 && ArmorIDs.Body.Sets.UsesNewFramingCode[this.drawPlayer.body]; this.usesCompositeFrontHandAcc = this.drawPlayer.handon > (sbyte) 0 && this.drawPlayer.handon < (sbyte) 22 && ArmorIDs.HandOn.Sets.UsesNewFramingCode[(int) this.drawPlayer.handon]; this.usesCompositeBackHandAcc = this.drawPlayer.handoff > (sbyte) 0 && this.drawPlayer.handoff < (sbyte) 14 && ArmorIDs.HandOff.Sets.UsesNewFramingCode[(int) this.drawPlayer.handoff]; if (this.drawPlayer.body < 1) this.usesCompositeTorso = true; if (!this.usesCompositeTorso) return; Point pt1 = new Point(1, 1); Point pt2 = new Point(0, 1); Point pt3 = new Point(); Point frameIndex1 = new Point(); Point frameIndex2 = new Point(); int targetFrameNumber = this.drawPlayer.bodyFrame.Y / this.drawPlayer.bodyFrame.Height; this.compShoulderOverFrontArm = true; this.hideCompositeShoulders = false; bool flag1 = true; if (this.drawPlayer.body > 0) flag1 = ArmorIDs.Body.Sets.showsShouldersWhileJumping[this.drawPlayer.body]; bool flag2 = false; if (this.drawPlayer.handon > (sbyte) 0) flag2 = ArmorIDs.HandOn.Sets.UsesOldFramingTexturesForWalking[(int) this.drawPlayer.handon]; bool flag3 = !flag2; switch (targetFrameNumber) { case 0: frameIndex2.X = 2; flag3 = true; break; case 1: frameIndex2.X = 3; this.compShoulderOverFrontArm = false; flag3 = true; break; case 2: frameIndex2.X = 4; this.compShoulderOverFrontArm = false; flag3 = true; break; case 3: frameIndex2.X = 5; this.compShoulderOverFrontArm = true; flag3 = true; break; case 4: frameIndex2.X = 6; this.compShoulderOverFrontArm = true; flag3 = true; break; case 5: frameIndex2.X = 2; frameIndex2.Y = 1; pt3.X = 1; this.compShoulderOverFrontArm = false; flag3 = true; if (!flag1) { this.hideCompositeShoulders = true; break; } break; case 6: frameIndex2.X = 3; frameIndex2.Y = 1; break; case 7: case 8: case 9: case 10: frameIndex2.X = 4; frameIndex2.Y = 1; break; case 11: case 12: case 13: frameIndex2.X = 3; frameIndex2.Y = 1; break; case 14: frameIndex2.X = 5; frameIndex2.Y = 1; break; case 15: case 16: frameIndex2.X = 6; frameIndex2.Y = 1; break; case 17: frameIndex2.X = 5; frameIndex2.Y = 1; break; case 18: case 19: frameIndex2.X = 3; frameIndex2.Y = 1; break; } this.CreateCompositeData_DetermineShoulderOffsets(this.drawPlayer.body, targetFrameNumber); this.backShoulderOffset *= new Vector2((float) this.drawPlayer.direction, this.drawPlayer.gravDir); this.frontShoulderOffset *= new Vector2((float) this.drawPlayer.direction, this.drawPlayer.gravDir); if (this.drawPlayer.body > 0 && ArmorIDs.Body.Sets.shouldersAreAlwaysInTheBack[this.drawPlayer.body]) this.compShoulderOverFrontArm = false; this.usesCompositeFrontHandAcc = flag3; frameIndex1.X = frameIndex2.X; frameIndex1.Y = frameIndex2.Y + 2; this.UpdateCompositeArm(this.drawPlayer.compositeFrontArm, ref this.compositeFrontArmRotation, ref frameIndex2, 7); this.UpdateCompositeArm(this.drawPlayer.compositeBackArm, ref this.compositeBackArmRotation, ref frameIndex1, 8); if (!this.drawPlayer.Male) { pt1.Y += 2; pt2.Y += 2; pt3.Y += 2; } this.compBackShoulderFrame = this.CreateCompositeFrameRect(pt1); this.compFrontShoulderFrame = this.CreateCompositeFrameRect(pt2); this.compBackArmFrame = this.CreateCompositeFrameRect(frameIndex1); this.compFrontArmFrame = this.CreateCompositeFrameRect(frameIndex2); this.compTorsoFrame = this.CreateCompositeFrameRect(pt3); } private void CreateCompositeData_DetermineShoulderOffsets(int armor, int targetFrameNumber) { int num = 0; switch (armor) { case 55: num = 1; break; case 71: num = 2; break; case 101: num = 6; break; case 183: num = 4; break; case 201: num = 5; break; case 204: num = 3; break; case 207: num = 7; break; } switch (num) { case 1: switch (targetFrameNumber) { case 6: this.frontShoulderOffset.X = -2f; return; case 7: case 8: case 9: case 10: this.frontShoulderOffset.X = -4f; return; case 11: case 12: case 13: case 14: this.frontShoulderOffset.X = -2f; return; case 15: return; case 16: return; case 17: return; case 18: case 19: this.frontShoulderOffset.X = -2f; return; default: return; } case 2: switch (targetFrameNumber) { case 6: this.frontShoulderOffset.X = -2f; return; case 7: case 8: case 9: case 10: this.frontShoulderOffset.X = -4f; return; case 11: case 12: case 13: case 14: this.frontShoulderOffset.X = -2f; return; case 15: return; case 16: return; case 17: return; case 18: case 19: this.frontShoulderOffset.X = -2f; return; default: return; } case 3: switch (targetFrameNumber) { case 7: case 8: case 9: this.frontShoulderOffset.X = -2f; return; case 15: case 16: case 17: this.frontShoulderOffset.X = 2f; return; default: return; } case 4: switch (targetFrameNumber) { case 6: this.frontShoulderOffset.X = -2f; return; case 7: case 8: case 9: case 10: this.frontShoulderOffset.X = -4f; return; case 11: case 12: case 13: this.frontShoulderOffset.X = -2f; return; case 14: return; case 15: case 16: this.frontShoulderOffset.X = 2f; return; case 17: return; case 18: case 19: this.frontShoulderOffset.X = -2f; return; default: return; } case 5: switch (targetFrameNumber) { case 7: case 8: case 9: case 10: this.frontShoulderOffset.X = -2f; return; case 15: case 16: this.frontShoulderOffset.X = 2f; return; default: return; } case 6: switch (targetFrameNumber) { case 7: case 8: case 9: case 10: this.frontShoulderOffset.X = -2f; return; case 14: case 15: case 16: case 17: this.frontShoulderOffset.X = 2f; return; default: return; } case 7: switch (targetFrameNumber) { case 6: case 7: case 8: case 9: case 10: this.frontShoulderOffset.X = -2f; return; case 11: case 12: case 13: case 14: this.frontShoulderOffset.X = -2f; return; case 15: return; case 16: return; case 17: return; case 18: case 19: this.frontShoulderOffset.X = -2f; return; default: return; } } } private Rectangle CreateCompositeFrameRect(Point pt) => new Rectangle(pt.X * 40, pt.Y * 56, 40, 56); private void UpdateCompositeArm( Player.CompositeArmData data, ref float rotation, ref Point frameIndex, int targetX) { if (data.enabled) { rotation = data.rotation; switch (data.stretch) { case Player.CompositeArmStretchAmount.Full: frameIndex.X = targetX; frameIndex.Y = 0; break; case Player.CompositeArmStretchAmount.None: frameIndex.X = targetX; frameIndex.Y = 3; break; case Player.CompositeArmStretchAmount.Quarter: frameIndex.X = targetX; frameIndex.Y = 2; break; case Player.CompositeArmStretchAmount.ThreeQuarters: frameIndex.X = targetX; frameIndex.Y = 1; break; } } else rotation = 0.0f; } } }