1554 lines
69 KiB
C#
1554 lines
69 KiB
C#
// 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<DrawData> DrawDataCache;
|
|
public List<int> DustCache;
|
|
public List<int> 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> drawData,
|
|
List<int> dust,
|
|
List<int> 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<int>(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<int>(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;
|
|
}
|
|
}
|
|
}
|