Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
PlayerDrawSet.cs
Go to the documentation of this file.
1using System;
7using Terraria.ID;
8
10
11public struct PlayerDrawSet
12{
14
16
18
20
21 public float shadow;
22
24
26
28
29 public int armorAdjust;
30
31 public bool missingHand;
32
33 public bool missingArm;
34
35 public bool heldProjOverHand;
36
37 public int skinVar;
38
39 public bool fullHair;
40
42
43 public bool hatHair;
44
45 public bool hideHair;
46
47 public int hairDyePacked;
48
49 public int skinDyePacked;
50
51 public float mountOffSet;
52
53 public int cHead;
54
55 public int cBody;
56
57 public int cLegs;
58
59 public int cHandOn;
60
61 public int cHandOff;
62
63 public int cBack;
64
65 public int cFront;
66
67 public int cShoe;
68
69 public int cFlameWaker;
70
71 public int cWaist;
72
73 public int cShield;
74
75 public int cNeck;
76
77 public int cFace;
78
79 public int cBalloon;
80
81 public int cWings;
82
83 public int cCarpet;
84
85 public int cPortableStool;
86
87 public int cFloatingTube;
88
89 public int cUnicornHorn;
90
91 public int cAngelHalo;
92
93 public int cBeard;
94
95 public int cLeinShampoo;
96
97 public int cBackpack;
98
99 public int cTail;
100
101 public int cFaceHead;
102
103 public int cFaceFlower;
104
105 public int cBalloonFront;
106
108
110
112
114
116
118
120
122
124
126
128
130
132
134
136
138
140
142
143 public int headGlowMask;
144
145 public int bodyGlowMask;
146
147 public int armGlowMask;
148
149 public int legsGlowMask;
150
152
154
156
158
160
161 public float stealth;
162
164
166
168
170
171 public float torsoOffset;
172
173 public bool hidesTopSkin;
174
175 public bool hidesBottomSkin;
176
177 public float rotation;
178
180
182
184
185 public bool backHairDraw;
186
188
190
192
194
196
198
200
202
204
206
208
210
212
214
216
218
220
221 public bool isSitting;
222
223 public bool isSleeping;
224
225 public float seatYOffset;
226
227 public int sittingIndex;
228
230
232
233 public bool drawFloatingTube;
234
235 public bool drawUnicornHorn;
236
237 public bool drawAngelHalo;
238
240
242
244
246
247 public bool hideEntirePlayer;
248
249 public Vector2 Center => new Vector2(Position.X + (float)(drawPlayer.width / 2), Position.Y + (float)(drawPlayer.height / 2));
250
252 {
254 DustCache = dust;
255 GoreCache = gore;
256 drawPlayer = player;
258 this.rotation = rotation;
259 this.rotationOrigin = rotationOrigin;
265 {
266 cLegs = cBody;
267 }
292 isSitting = drawPlayer.sitting.isSitting;
293 seatYOffset = 0f;
294 sittingIndex = 0;
296 drawPlayer.sitting.GetSittingOffsetInfo(drawPlayer, out posOffset, out seatYOffset);
297 if (isSitting)
298 {
299 sittingIndex = drawPlayer.sitting.sittingIndex;
300 }
302 {
303 isSitting = true;
304 }
306 {
307 isSitting = true;
308 }
310 {
311 isSitting = true;
312 }
313 isSleeping = drawPlayer.sleeping.isSleeping;
316 if (isSitting)
317 {
320 }
321 else
322 {
323 sittingIndex = -1;
324 }
325 if (isSleeping)
326 {
327 this.rotationOrigin = player.Size / 2f;
328 drawPlayer.sleeping.GetSleepingOffsetInfo(drawPlayer, out var posOffset2);
330 }
331 weaponDrawOrder = WeaponDrawOrder.BehindFrontArm;
332 if (heldItem.type == 4952)
333 {
334 weaponDrawOrder = WeaponDrawOrder.BehindBackArm;
335 }
336 if (GolfHelper.IsPlayerHoldingClub(player) && player.itemAnimation > player.itemAnimationMax)
337 {
338 weaponDrawOrder = WeaponDrawOrder.OverFrontArm;
339 }
341 ItemLocation = Position + (drawPlayer.itemLocation - drawPlayer.position);
342 armorAdjust = 0;
343 missingHand = false;
344 missingArm = false;
345 heldProjOverHand = false;
347 if (drawPlayer.body == 77 || drawPlayer.body == 103 || drawPlayer.body == 41 || drawPlayer.body == 100 || drawPlayer.body == 10 || drawPlayer.body == 11 || drawPlayer.body == 12 || drawPlayer.body == 13 || drawPlayer.body == 14 || drawPlayer.body == 43 || drawPlayer.body == 15 || drawPlayer.body == 16 || drawPlayer.body == 20 || drawPlayer.body == 39 || drawPlayer.body == 50 || drawPlayer.body == 38 || drawPlayer.body == 40 || drawPlayer.body == 57 || drawPlayer.body == 44 || drawPlayer.body == 52 || drawPlayer.body == 53 || drawPlayer.body == 68 || drawPlayer.body == 81 || drawPlayer.body == 85 || drawPlayer.body == 88 || drawPlayer.body == 98 || drawPlayer.body == 86 || drawPlayer.body == 87 || drawPlayer.body == 99 || drawPlayer.body == 165 || drawPlayer.body == 166 || drawPlayer.body == 167 || drawPlayer.body == 171 || drawPlayer.body == 45 || drawPlayer.body == 168 || drawPlayer.body == 169 || drawPlayer.body == 42 || drawPlayer.body == 180 || drawPlayer.body == 181 || drawPlayer.body == 183 || drawPlayer.body == 186 || drawPlayer.body == 187 || drawPlayer.body == 188 || drawPlayer.body == 64 || drawPlayer.body == 189 || drawPlayer.body == 191 || drawPlayer.body == 192 || drawPlayer.body == 198 || drawPlayer.body == 199 || drawPlayer.body == 202 || drawPlayer.body == 203 || drawPlayer.body == 58 || drawPlayer.body == 59 || drawPlayer.body == 60 || drawPlayer.body == 61 || drawPlayer.body == 62 || drawPlayer.body == 63 || drawPlayer.body == 36 || drawPlayer.body == 104 || drawPlayer.body == 184 || drawPlayer.body == 74 || drawPlayer.body == 78 || drawPlayer.body == 185 || drawPlayer.body == 196 || drawPlayer.body == 197 || drawPlayer.body == 182 || drawPlayer.body == 87 || drawPlayer.body == 76 || drawPlayer.body == 209 || drawPlayer.body == 168 || drawPlayer.body == 210 || drawPlayer.body == 211 || drawPlayer.body == 213)
348 {
349 missingHand = true;
350 }
351 int body = drawPlayer.body;
352 if (body == 83)
353 {
354 missingArm = false;
355 }
356 else
357 {
358 missingArm = true;
359 }
360 if (drawPlayer.heldProj >= 0 && shadow == 0f)
361 {
362 body = Main.projectile[drawPlayer.heldProj].type;
363 if (body == 460 || body == 535 || body == 600)
364 {
365 heldProjOverHand = true;
366 }
367 }
370 if (drawPlayer.head == 0 && drawPlayer.hairDye == 0)
371 {
373 }
376 {
378 }
380 {
381 Point point = Center.ToTileCoordinates();
383 {
384 Color color = Lighting.GetColor(point.X, point.Y);
385 int num = (color.R + color.G + color.B) / 3;
386 if (num > 10)
387 {
389 }
390 }
391 }
393 Position.Y -= mountOffSet;
395 {
396 Mount.currentShader = (drawPlayer.mount.Cart ? drawPlayer.cMinecart : drawPlayer.cMount);
397 }
398 else
399 {
400 Mount.currentShader = 0;
401 }
403 itemEffect = SpriteEffects.FlipHorizontally;
405 colorEyeWhites = drawPlayer.GetImmuneAlpha(Lighting.GetColorClamped((int)((double)Position.X + (double)drawPlayer.width * 0.5) / 16, (int)(((double)Position.Y + (double)drawPlayer.height * 0.25) / 16.0), Color.White), shadow);
406 colorEyes = drawPlayer.GetImmuneAlpha(Lighting.GetColorClamped((int)((double)Position.X + (double)drawPlayer.width * 0.5) / 16, (int)(((double)Position.Y + (double)drawPlayer.height * 0.25) / 16.0), drawPlayer.eyeColor), shadow);
407 colorHead = drawPlayer.GetImmuneAlpha(Lighting.GetColorClamped((int)((double)Position.X + (double)drawPlayer.width * 0.5) / 16, (int)(((double)Position.Y + (double)drawPlayer.height * 0.25) / 16.0), drawPlayer.skinColor), shadow);
408 colorBodySkin = drawPlayer.GetImmuneAlpha(Lighting.GetColorClamped((int)((double)Position.X + (double)drawPlayer.width * 0.5) / 16, (int)(((double)Position.Y + (double)drawPlayer.height * 0.5) / 16.0), drawPlayer.skinColor), shadow);
409 colorLegs = drawPlayer.GetImmuneAlpha(Lighting.GetColorClamped((int)((double)Position.X + (double)drawPlayer.width * 0.5) / 16, (int)(((double)Position.Y + (double)drawPlayer.height * 0.75) / 16.0), drawPlayer.skinColor), shadow);
410 colorShirt = drawPlayer.GetImmuneAlphaPure(Lighting.GetColorClamped((int)((double)Position.X + (double)drawPlayer.width * 0.5) / 16, (int)(((double)Position.Y + (double)drawPlayer.height * 0.5) / 16.0), drawPlayer.shirtColor), shadow);
411 colorUnderShirt = drawPlayer.GetImmuneAlphaPure(Lighting.GetColorClamped((int)((double)Position.X + (double)drawPlayer.width * 0.5) / 16, (int)(((double)Position.Y + (double)drawPlayer.height * 0.5) / 16.0), drawPlayer.underShirtColor), shadow);
412 colorPants = drawPlayer.GetImmuneAlphaPure(Lighting.GetColorClamped((int)((double)Position.X + (double)drawPlayer.width * 0.5) / 16, (int)(((double)Position.Y + (double)drawPlayer.height * 0.75) / 16.0), drawPlayer.pantsColor), shadow);
413 colorShoes = drawPlayer.GetImmuneAlphaPure(Lighting.GetColorClamped((int)((double)Position.X + (double)drawPlayer.width * 0.5) / 16, (int)(((double)Position.Y + (double)drawPlayer.height * 0.75) / 16.0), drawPlayer.shoeColor), shadow);
414 colorArmorHead = drawPlayer.GetImmuneAlphaPure(Lighting.GetColorClamped((int)((double)Position.X + (double)drawPlayer.width * 0.5) / 16, (int)((double)Position.Y + (double)drawPlayer.height * 0.25) / 16, Color.White), shadow);
415 colorArmorBody = drawPlayer.GetImmuneAlphaPure(Lighting.GetColorClamped((int)((double)Position.X + (double)drawPlayer.width * 0.5) / 16, (int)((double)Position.Y + (double)drawPlayer.height * 0.5) / 16, Color.White), shadow);
417 colorArmorLegs = drawPlayer.GetImmuneAlphaPure(Lighting.GetColorClamped((int)((double)Position.X + (double)drawPlayer.width * 0.5) / 16, (int)((double)Position.Y + (double)drawPlayer.height * 0.75) / 16, Color.White), shadow);
418 floatingTubeColor = drawPlayer.GetImmuneAlphaPure(Lighting.GetColorClamped((int)((double)Position.X + (double)drawPlayer.width * 0.5) / 16, (int)((double)Position.Y + (double)drawPlayer.height * 0.75) / 16, Color.White), shadow);
419 colorElectricity = new Color(255, 255, 255, 100);
421 int num2 = 0;
422 int num3 = 0;
423 int num4 = 0;
424 int num5 = 0;
425 headGlowMask = -1;
426 bodyGlowMask = -1;
427 armGlowMask = -1;
428 legsGlowMask = -1;
433 switch (drawPlayer.head)
434 {
435 case 169:
436 num2++;
437 break;
438 case 170:
439 num3++;
440 break;
441 case 171:
442 num4++;
443 break;
444 case 189:
445 num5++;
446 break;
447 }
448 switch (drawPlayer.body)
449 {
450 case 175:
451 num2++;
452 break;
453 case 176:
454 num3++;
455 break;
456 case 177:
457 num4++;
458 break;
459 case 190:
460 num5++;
461 break;
462 }
463 switch (drawPlayer.legs)
464 {
465 case 110:
466 num2++;
467 break;
468 case 111:
469 num3++;
470 break;
471 case 112:
472 num4++;
473 break;
474 case 130:
475 num5++;
476 break;
477 }
478 num2 = 3;
479 num3 = 3;
480 num4 = 3;
481 num5 = 3;
483 ArkhalisColor.A = 180;
484 if (drawPlayer.head == 169)
485 {
486 headGlowMask = 15;
487 byte b = (byte)(62.5f * (float)(1 + num2));
488 headGlowColor = new Color(b, b, b, 0);
489 }
490 else if (drawPlayer.head == 216)
491 {
492 headGlowMask = 256;
493 byte b2 = 127;
494 headGlowColor = new Color(b2, b2, b2, 0);
495 }
496 else if (drawPlayer.head == 210)
497 {
498 headGlowMask = 242;
499 byte b3 = 127;
500 headGlowColor = new Color(b3, b3, b3, 0);
501 }
502 else if (drawPlayer.head == 214)
503 {
504 headGlowMask = 245;
506 }
507 else if (drawPlayer.head == 240)
508 {
509 headGlowMask = 273;
510 headGlowColor = new Color(230, 230, 230, 60);
511 }
512 else if (drawPlayer.head == 267)
513 {
514 headGlowMask = 301;
515 headGlowColor = new Color(230, 230, 230, 60);
516 }
517 else if (drawPlayer.head == 268)
518 {
519 headGlowMask = 302;
520 float num6 = (float)(int)Main.mouseTextColor / 255f;
521 num6 *= num6;
522 headGlowColor = new Color(255, 255, 255) * num6;
523 }
524 else if (drawPlayer.head == 269)
525 {
526 headGlowMask = 304;
527 headGlowColor = new Color(200, 200, 200);
528 }
529 else if (drawPlayer.head == 270)
530 {
531 headGlowMask = 305;
532 headGlowColor = new Color(200, 200, 200, 150);
533 }
534 else if (drawPlayer.head == 271)
535 {
536 headGlowMask = 309;
538 }
539 else if (drawPlayer.head == 170)
540 {
541 headGlowMask = 16;
542 byte b4 = (byte)(62.5f * (float)(1 + num3));
543 headGlowColor = new Color(b4, b4, b4, 0);
544 }
545 else if (drawPlayer.head == 189)
546 {
547 headGlowMask = 184;
548 byte b5 = (byte)(62.5f * (float)(1 + num5));
549 headGlowColor = new Color(b5, b5, b5, 0);
551 }
552 else if (drawPlayer.head == 171)
553 {
554 byte b6 = (byte)(62.5f * (float)(1 + num4));
556 }
557 else if (drawPlayer.head == 175)
558 {
559 headGlowMask = 41;
560 headGlowColor = new Color(255, 255, 255, 0);
561 }
562 else if (drawPlayer.head == 193)
563 {
564 headGlowMask = 209;
565 headGlowColor = new Color(255, 255, 255, 127);
566 }
567 else if (drawPlayer.head == 109)
568 {
569 headGlowMask = 208;
570 headGlowColor = new Color(255, 255, 255, 0);
571 }
572 else if (drawPlayer.head == 178)
573 {
574 headGlowMask = 96;
575 headGlowColor = new Color(255, 255, 255, 0);
576 }
577 if (drawPlayer.body == 175)
578 {
579 if (drawPlayer.Male)
580 {
581 bodyGlowMask = 13;
582 }
583 else
584 {
585 bodyGlowMask = 18;
586 }
587 byte b7 = (byte)(62.5f * (float)(1 + num2));
588 bodyGlowColor = new Color(b7, b7, b7, 0);
589 }
590 else if (drawPlayer.body == 208)
591 {
592 if (drawPlayer.Male)
593 {
594 bodyGlowMask = 246;
595 }
596 else
597 {
598 bodyGlowMask = 247;
599 }
600 armGlowMask = 248;
603 }
604 else if (drawPlayer.body == 227)
605 {
606 bodyGlowColor = new Color(230, 230, 230, 60);
607 armGlowColor = new Color(230, 230, 230, 60);
608 }
609 else if (drawPlayer.body == 237)
610 {
611 float num7 = (float)(int)Main.mouseTextColor / 255f;
612 num7 *= num7;
613 bodyGlowColor = new Color(255, 255, 255) * num7;
614 }
615 else if (drawPlayer.body == 238)
616 {
617 bodyGlowColor = new Color(255, 255, 255);
618 armGlowColor = new Color(255, 255, 255);
619 }
620 else if (drawPlayer.body == 239)
621 {
622 bodyGlowColor = new Color(200, 200, 200, 150);
623 armGlowColor = new Color(200, 200, 200, 150);
624 }
625 else if (drawPlayer.body == 190)
626 {
627 if (drawPlayer.Male)
628 {
629 bodyGlowMask = 185;
630 }
631 else
632 {
633 bodyGlowMask = 186;
634 }
635 armGlowMask = 188;
636 byte b8 = (byte)(62.5f * (float)(1 + num5));
637 bodyGlowColor = new Color(b8, b8, b8, 0);
638 armGlowColor = new Color(b8, b8, b8, 0);
640 }
641 else if (drawPlayer.body == 176)
642 {
643 if (drawPlayer.Male)
644 {
645 bodyGlowMask = 14;
646 }
647 else
648 {
649 bodyGlowMask = 19;
650 }
651 armGlowMask = 12;
652 byte b9 = (byte)(62.5f * (float)(1 + num3));
653 bodyGlowColor = new Color(b9, b9, b9, 0);
654 armGlowColor = new Color(b9, b9, b9, 0);
655 }
656 else if (drawPlayer.body == 194)
657 {
658 bodyGlowMask = 210;
659 armGlowMask = 211;
660 bodyGlowColor = new Color(255, 255, 255, 127);
661 armGlowColor = new Color(255, 255, 255, 127);
662 }
663 else if (drawPlayer.body == 177)
664 {
665 byte b10 = (byte)(62.5f * (float)(1 + num4));
667 }
668 else if (drawPlayer.body == 179)
669 {
670 if (drawPlayer.Male)
671 {
672 bodyGlowMask = 42;
673 }
674 else
675 {
676 bodyGlowMask = 43;
677 }
678 armGlowMask = 44;
679 bodyGlowColor = new Color(255, 255, 255, 0);
680 armGlowColor = new Color(255, 255, 255, 0);
681 }
682 if (drawPlayer.legs == 111)
683 {
684 legsGlowMask = 17;
685 byte b11 = (byte)(62.5f * (float)(1 + num3));
686 legsGlowColor = new Color(b11, b11, b11, 0);
687 }
688 else if (drawPlayer.legs == 157)
689 {
690 legsGlowMask = 249;
692 }
693 else if (drawPlayer.legs == 158)
694 {
695 legsGlowMask = 250;
697 }
698 else if (drawPlayer.legs == 210)
699 {
700 legsGlowMask = 274;
701 legsGlowColor = new Color(230, 230, 230, 60);
702 }
703 else if (drawPlayer.legs == 222)
704 {
705 legsGlowMask = 303;
706 float num8 = (float)(int)Main.mouseTextColor / 255f;
707 num8 *= num8;
708 legsGlowColor = new Color(255, 255, 255) * num8;
709 }
710 else if (drawPlayer.legs == 225)
711 {
712 legsGlowMask = 306;
713 legsGlowColor = new Color(200, 200, 200, 150);
714 }
715 else if (drawPlayer.legs == 226)
716 {
717 legsGlowMask = 307;
718 legsGlowColor = new Color(200, 200, 200, 150);
719 }
720 else if (drawPlayer.legs == 110)
721 {
722 legsGlowMask = 199;
723 byte b12 = (byte)(62.5f * (float)(1 + num2));
724 legsGlowColor = new Color(b12, b12, b12, 0);
725 }
726 else if (drawPlayer.legs == 112)
727 {
728 byte b13 = (byte)(62.5f * (float)(1 + num4));
730 }
731 else if (drawPlayer.legs == 134)
732 {
733 legsGlowMask = 212;
734 legsGlowColor = new Color(255, 255, 255, 127);
735 }
736 else if (drawPlayer.legs == 130)
737 {
738 byte b14 = (byte)(127 * (1 + num5));
739 legsGlowMask = 187;
740 legsGlowColor = new Color(b14, b14, b14, 0);
742 }
743 float alphaReduction = shadow;
749 {
750 Main.instance.LoadArmorHead(drawPlayer.head);
752 if (num9 >= 0)
753 {
754 Main.instance.LoadArmorHead(num9);
755 }
756 }
758 {
759 Main.instance.LoadArmorBody(drawPlayer.body);
760 }
762 {
763 Main.instance.LoadArmorLegs(drawPlayer.legs);
764 }
766 {
767 Main.instance.LoadAccHandsOn(drawPlayer.handon);
768 }
770 {
771 Main.instance.LoadAccHandsOff(drawPlayer.handoff);
772 }
774 {
775 Main.instance.LoadAccBack(drawPlayer.back);
776 }
778 {
779 Main.instance.LoadAccFront(drawPlayer.front);
780 }
782 {
783 Main.instance.LoadAccShoes(drawPlayer.shoe);
784 }
786 {
787 Main.instance.LoadAccWaist(drawPlayer.waist);
788 }
790 {
791 Main.instance.LoadAccShield(drawPlayer.shield);
792 }
794 {
795 Main.instance.LoadAccNeck(drawPlayer.neck);
796 }
798 {
799 Main.instance.LoadAccFace(drawPlayer.face);
800 }
802 {
803 Main.instance.LoadAccBalloon(drawPlayer.balloon);
804 }
806 {
807 Main.instance.LoadAccBack(drawPlayer.backpack);
808 }
810 {
811 Main.instance.LoadAccBack(drawPlayer.tail);
812 }
814 {
815 Main.instance.LoadAccFace(drawPlayer.faceHead);
816 }
818 {
819 Main.instance.LoadAccFace(drawPlayer.faceFlower);
820 }
822 {
823 Main.instance.LoadAccBalloon(drawPlayer.balloonFront);
824 }
826 {
827 Main.instance.LoadAccBeard(drawPlayer.beard);
828 }
829 Main.instance.LoadHair(drawPlayer.hair);
831 {
832 Main.instance.LoadProjectile(238);
833 }
835 {
842 }
844 {
846 {
856 }
857 else
858 {
860 }
861 }
863 {
864 if ((drawPlayer.head == 78 || drawPlayer.head == 79 || drawPlayer.head == 80) && drawPlayer.body == 51 && drawPlayer.legs == 47)
865 {
866 float num10 = (float)(int)Main.mouseTextColor / 200f - 0.3f;
867 if (shadow != 0f)
868 {
869 num10 = 0f;
870 }
871 colorArmorHead.R = (byte)((float)(int)colorArmorHead.R * num10);
872 colorArmorHead.G = (byte)((float)(int)colorArmorHead.G * num10);
873 colorArmorHead.B = (byte)((float)(int)colorArmorHead.B * num10);
874 colorArmorBody.R = (byte)((float)(int)colorArmorBody.R * num10);
875 colorArmorBody.G = (byte)((float)(int)colorArmorBody.G * num10);
876 colorArmorBody.B = (byte)((float)(int)colorArmorBody.B * num10);
877 colorArmorLegs.R = (byte)((float)(int)colorArmorLegs.R * num10);
878 colorArmorLegs.G = (byte)((float)(int)colorArmorLegs.G * num10);
879 colorArmorLegs.B = (byte)((float)(int)colorArmorLegs.B * num10);
880 }
881 if (drawPlayer.head == 193 && drawPlayer.body == 194 && drawPlayer.legs == 134)
882 {
883 float num11 = 0.6f - drawPlayer.ghostFade * 0.3f;
884 if (shadow != 0f)
885 {
886 num11 = 0f;
887 }
888 colorArmorHead.R = (byte)((float)(int)colorArmorHead.R * num11);
889 colorArmorHead.G = (byte)((float)(int)colorArmorHead.G * num11);
890 colorArmorHead.B = (byte)((float)(int)colorArmorHead.B * num11);
891 colorArmorBody.R = (byte)((float)(int)colorArmorBody.R * num11);
892 colorArmorBody.G = (byte)((float)(int)colorArmorBody.G * num11);
893 colorArmorBody.B = (byte)((float)(int)colorArmorBody.B * num11);
894 colorArmorLegs.R = (byte)((float)(int)colorArmorLegs.R * num11);
895 colorArmorLegs.G = (byte)((float)(int)colorArmorLegs.G * num11);
896 colorArmorLegs.B = (byte)((float)(int)colorArmorLegs.B * num11);
897 }
898 if (shadow > 0f)
899 {
906 }
907 }
908 float num12 = 1f;
909 float num13 = 1f;
910 float num14 = 1f;
911 float num15 = 1f;
912 if (drawPlayer.honey && Main.rand.Next(30) == 0 && shadow == 0f)
913 {
915 dust2.velocity.Y = 0.3f;
916 dust2.velocity.X *= 0.1f;
917 dust2.scale += (float)Main.rand.Next(3, 4) * 0.1f;
918 dust2.alpha = 100;
919 dust2.noGravity = true;
920 dust2.velocity += drawPlayer.velocity * 0.1f;
921 DustCache.Add(dust2.dustIndex);
922 }
923 if (drawPlayer.dryadWard && drawPlayer.velocity.X != 0f && Main.rand.Next(4) == 0)
924 {
925 Dust dust3 = Dust.NewDustDirect(new Vector2(drawPlayer.position.X - 2f, drawPlayer.position.Y + (float)drawPlayer.height - 2f), drawPlayer.width + 4, 4, 163, 0f, 0f, 100, default(Color), 1.5f);
926 dust3.noGravity = true;
927 dust3.noLight = true;
928 dust3.velocity *= 0f;
929 DustCache.Add(dust3.dustIndex);
930 }
932 {
933 if (Main.rand.Next(50) == 0 && shadow == 0f)
934 {
935 Dust dust4 = Dust.NewDustDirect(Position, drawPlayer.width, drawPlayer.height, 46, 0f, 0f, 150, default(Color), 0.2f);
936 dust4.noGravity = true;
937 dust4.fadeIn = 1.9f;
938 DustCache.Add(dust4.dustIndex);
939 }
940 num12 *= 0.65f;
941 num14 *= 0.75f;
942 }
943 if (drawPlayer.venom)
944 {
945 if (Main.rand.Next(10) == 0 && shadow == 0f)
946 {
947 Dust dust5 = Dust.NewDustDirect(Position, drawPlayer.width, drawPlayer.height, 171, 0f, 0f, 100, default(Color), 0.5f);
948 dust5.noGravity = true;
949 dust5.fadeIn = 1.5f;
950 DustCache.Add(dust5.dustIndex);
951 }
952 num13 *= 0.45f;
953 num12 *= 0.75f;
954 }
955 if (drawPlayer.onFire)
956 {
957 if (Main.rand.Next(4) == 0 && shadow == 0f)
958 {
959 Dust dust6 = Dust.NewDustDirect(new Vector2(Position.X - 2f, Position.Y - 2f), drawPlayer.width + 4, drawPlayer.height + 4, 6, drawPlayer.velocity.X * 0.4f, drawPlayer.velocity.Y * 0.4f, 100, default(Color), 3f);
960 dust6.noGravity = true;
961 dust6.velocity *= 1.8f;
962 dust6.velocity.Y -= 0.5f;
963 DustCache.Add(dust6.dustIndex);
964 }
965 num14 *= 0.6f;
966 num13 *= 0.7f;
967 }
969 {
970 if (Main.rand.Next(4) == 0 && shadow == 0f)
971 {
972 Dust dust7 = Dust.NewDustDirect(new Vector2(Position.X - 2f, Position.Y - 2f), drawPlayer.width + 4, drawPlayer.height + 4, 6, drawPlayer.velocity.X * 0.4f, drawPlayer.velocity.Y * 0.4f, 100, default(Color), 3f);
973 dust7.noGravity = true;
974 dust7.velocity *= 1.8f;
975 dust7.velocity.Y -= 0.5f;
976 DustCache.Add(dust7.dustIndex);
977 }
978 num14 *= 0.6f;
979 num13 *= 0.7f;
980 }
981 if (drawPlayer.dripping && shadow == 0f && Main.rand.Next(4) != 0)
982 {
983 Vector2 position = Position;
984 position.X -= 2f;
985 position.Y -= 2f;
986 if (Main.rand.Next(2) == 0)
987 {
988 Dust dust8 = Dust.NewDustDirect(position, drawPlayer.width + 4, drawPlayer.height + 2, 211, 0f, 0f, 50, default(Color), 0.8f);
989 if (Main.rand.Next(2) == 0)
990 {
991 dust8.alpha += 25;
992 }
993 if (Main.rand.Next(2) == 0)
994 {
995 dust8.alpha += 25;
996 }
997 dust8.noLight = true;
998 dust8.velocity *= 0.2f;
999 dust8.velocity.Y += 0.2f;
1000 dust8.velocity += drawPlayer.velocity;
1001 DustCache.Add(dust8.dustIndex);
1002 }
1003 else
1004 {
1005 Dust dust9 = Dust.NewDustDirect(position, drawPlayer.width + 8, drawPlayer.height + 8, 211, 0f, 0f, 50, default(Color), 1.1f);
1006 if (Main.rand.Next(2) == 0)
1007 {
1008 dust9.alpha += 25;
1009 }
1010 if (Main.rand.Next(2) == 0)
1011 {
1012 dust9.alpha += 25;
1013 }
1014 dust9.noLight = true;
1015 dust9.noGravity = true;
1016 dust9.velocity *= 0.2f;
1017 dust9.velocity.Y += 1f;
1018 dust9.velocity += drawPlayer.velocity;
1019 DustCache.Add(dust9.dustIndex);
1020 }
1021 }
1023 {
1024 int alpha = 175;
1025 Color newColor = new Color(0, 80, 255, 100);
1026 if (Main.rand.Next(4) != 0 && shadow == 0f)
1027 {
1029 position2.X -= 2f;
1030 position2.Y -= 2f;
1031 if (Main.rand.Next(2) == 0)
1032 {
1033 Dust dust10 = Dust.NewDustDirect(position2, drawPlayer.width + 4, drawPlayer.height + 2, 4, 0f, 0f, alpha, newColor, 1.4f);
1034 if (Main.rand.Next(2) == 0)
1035 {
1036 dust10.alpha += 25;
1037 }
1038 if (Main.rand.Next(2) == 0)
1039 {
1040 dust10.alpha += 25;
1041 }
1042 dust10.noLight = true;
1043 dust10.velocity *= 0.2f;
1044 dust10.velocity.Y += 0.2f;
1045 dust10.velocity += drawPlayer.velocity;
1046 DustCache.Add(dust10.dustIndex);
1047 }
1048 }
1049 num12 *= 0.8f;
1050 num13 *= 0.8f;
1051 }
1053 {
1054 int alpha2 = 100;
1055 if (Main.rand.Next(4) != 0 && shadow == 0f)
1056 {
1058 position3.X -= 2f;
1059 position3.Y -= 2f;
1060 if (Main.rand.Next(4) == 0)
1061 {
1062 Color newColor2 = Main.hslToRgb(0.7f + 0.2f * Main.rand.NextFloat(), 1f, 0.5f);
1063 newColor2.A /= 2;
1065 if (Main.rand.Next(2) == 0)
1066 {
1067 dust11.alpha += 25;
1068 }
1069 if (Main.rand.Next(2) == 0)
1070 {
1071 dust11.alpha += 25;
1072 }
1073 dust11.noLight = true;
1074 dust11.velocity *= 0.2f;
1075 dust11.velocity += drawPlayer.velocity * 0.7f;
1076 dust11.fadeIn = 0.8f;
1077 DustCache.Add(dust11.dustIndex);
1078 }
1079 if (Main.rand.Next(30) == 0)
1080 {
1081 Color color2 = Main.hslToRgb(0.7f + 0.2f * Main.rand.NextFloat(), 1f, 0.5f);
1082 color2.A /= 2;
1083 Dust dust12 = Dust.NewDustDirect(position3, drawPlayer.width + 4, drawPlayer.height + 2, 43, 0f, 0f, 254, new Color(127, 127, 127, 0), 0.45f);
1084 dust12.noLight = true;
1085 dust12.velocity.X *= 0f;
1086 dust12.velocity *= 0.03f;
1087 dust12.fadeIn = 0.6f;
1088 DustCache.Add(dust12.dustIndex);
1089 }
1090 }
1091 num12 *= 0.94f;
1092 num13 *= 0.82f;
1093 }
1094 if (drawPlayer.ichor)
1095 {
1096 num14 = 0f;
1097 }
1098 if (drawPlayer.electrified && shadow == 0f && Main.rand.Next(3) == 0)
1099 {
1100 Dust dust13 = Dust.NewDustDirect(new Vector2(Position.X - 2f, Position.Y - 2f), drawPlayer.width + 4, drawPlayer.height + 4, 226, 0f, 0f, 100, default(Color), 0.5f);
1101 dust13.velocity *= 1.6f;
1102 dust13.velocity.Y -= 1f;
1103 dust13.position = Vector2.Lerp(dust13.position, drawPlayer.Center, 0.5f);
1104 DustCache.Add(dust13.dustIndex);
1105 }
1106 if (drawPlayer.burned)
1107 {
1108 if (shadow == 0f)
1109 {
1110 Dust dust14 = Dust.NewDustDirect(new Vector2(Position.X - 2f, Position.Y - 2f), drawPlayer.width + 4, drawPlayer.height + 4, 6, drawPlayer.velocity.X * 0.4f, drawPlayer.velocity.Y * 0.4f, 100, default(Color), 2f);
1111 dust14.noGravity = true;
1112 dust14.velocity *= 1.8f;
1113 dust14.velocity.Y -= 0.75f;
1114 DustCache.Add(dust14.dustIndex);
1115 }
1116 num12 = 1f;
1117 num14 *= 0.6f;
1118 num13 *= 0.7f;
1119 }
1121 {
1122 if (Main.rand.Next(4) == 0 && shadow == 0f)
1123 {
1124 Dust dust15 = Dust.NewDustDirect(new Vector2(Position.X - 2f, Position.Y - 2f), drawPlayer.width + 4, drawPlayer.height + 4, 135, drawPlayer.velocity.X * 0.4f, drawPlayer.velocity.Y * 0.4f, 100, default(Color), 3f);
1125 dust15.noGravity = true;
1126 dust15.velocity *= 1.8f;
1127 dust15.velocity.Y -= 0.5f;
1128 DustCache.Add(dust15.dustIndex);
1129 }
1130 num12 *= 0.5f;
1131 num13 *= 0.7f;
1132 }
1134 {
1135 if (Main.rand.Next(4) == 0 && shadow == 0f)
1136 {
1137 Dust dust16 = Dust.NewDustDirect(new Vector2(Position.X - 2f, Position.Y - 2f), drawPlayer.width + 4, drawPlayer.height + 4, 135, drawPlayer.velocity.X * 0.4f, drawPlayer.velocity.Y * 0.4f, 100, default(Color), 3f);
1138 dust16.noGravity = true;
1139 dust16.velocity *= 1.8f;
1140 dust16.velocity.Y -= 0.5f;
1141 DustCache.Add(dust16.dustIndex);
1142 }
1143 num12 *= 0.5f;
1144 num13 *= 0.7f;
1145 }
1146 if (drawPlayer.onFire2)
1147 {
1148 if (Main.rand.Next(4) == 0 && shadow == 0f)
1149 {
1150 Dust dust17 = Dust.NewDustDirect(new Vector2(Position.X - 2f, Position.Y - 2f), drawPlayer.width + 4, drawPlayer.height + 4, 75, drawPlayer.velocity.X * 0.4f, drawPlayer.velocity.Y * 0.4f, 100, default(Color), 3f);
1151 dust17.noGravity = true;
1152 dust17.velocity *= 1.8f;
1153 dust17.velocity.Y -= 0.5f;
1154 DustCache.Add(dust17.dustIndex);
1155 }
1156 num14 *= 0.6f;
1157 num13 *= 0.7f;
1158 }
1159 if (drawPlayer.noItems)
1160 {
1161 num13 *= 0.8f;
1162 num12 *= 0.65f;
1163 }
1164 if (drawPlayer.blind)
1165 {
1166 num13 *= 0.65f;
1167 num12 *= 0.7f;
1168 }
1169 if (drawPlayer.bleed)
1170 {
1171 num13 *= 0.9f;
1172 num14 *= 0.9f;
1173 if (!drawPlayer.dead && Main.rand.Next(30) == 0 && shadow == 0f)
1174 {
1176 dust18.velocity.Y += 0.5f;
1177 dust18.velocity *= 0.25f;
1178 DustCache.Add(dust18.dustIndex);
1179 }
1180 }
1182 {
1183 Vector2 position4 = default(Vector2);
1184 position4.X = Position.X + (float)Main.rand.Next(drawPlayer.width);
1185 position4.Y = Position.Y + (float)Main.rand.Next(drawPlayer.height);
1186 position4.X = Position.X + (float)(drawPlayer.width / 2) - 6f;
1187 position4.Y = Position.Y + (float)(drawPlayer.height / 2) - 6f;
1188 position4.X -= Main.rand.Next(-10, 11);
1189 position4.Y -= Main.rand.Next(-20, 21);
1190 int item = Gore.NewGore(position4, 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);
1192 }
1193 if (shadow == 0f && drawPlayer.loveStruck && Main.instance.IsActive && !Main.gamePaused && Main.rand.Next(5) == 0)
1194 {
1195 Vector2 vector = new Vector2(Main.rand.Next(-10, 11), Main.rand.Next(-10, 11));
1196 vector.Normalize();
1197 vector.X *= 0.66f;
1198 int num16 = Gore.NewGore(Position + new Vector2(Main.rand.Next(drawPlayer.width + 1), Main.rand.Next(drawPlayer.height + 1)), vector * Main.rand.Next(3, 6) * 0.33f, 331, (float)Main.rand.Next(40, 121) * 0.01f);
1199 Main.gore[num16].sticky = false;
1200 Main.gore[num16].velocity *= 0.4f;
1201 Main.gore[num16].velocity.Y -= 0.6f;
1203 }
1204 if (drawPlayer.stinky && Main.instance.IsActive && !Main.gamePaused)
1205 {
1206 num12 *= 0.7f;
1207 num14 *= 0.55f;
1208 if (Main.rand.Next(5) == 0 && shadow == 0f)
1209 {
1210 Vector2 vector2 = new Vector2(Main.rand.Next(-10, 11), Main.rand.Next(-10, 11));
1211 vector2.Normalize();
1212 vector2.X *= 0.66f;
1213 vector2.Y = Math.Abs(vector2.Y);
1214 Vector2 vector3 = vector2 * Main.rand.Next(3, 5) * 0.25f;
1215 int num17 = Dust.NewDust(Position, drawPlayer.width, drawPlayer.height, 188, vector3.X, vector3.Y * 0.5f, 100, default(Color), 1.5f);
1216 Main.dust[num17].velocity *= 0.1f;
1217 Main.dust[num17].velocity.Y -= 0.5f;
1219 }
1220 }
1221 if (drawPlayer.slowOgreSpit && Main.instance.IsActive && !Main.gamePaused)
1222 {
1223 num12 *= 0.6f;
1224 num14 *= 0.45f;
1225 if (Main.rand.Next(5) == 0 && shadow == 0f)
1226 {
1227 int type = Utils.SelectRandom<int>(Main.rand, 4, 256);
1229 dust19.scale = 0.8f + Main.rand.NextFloat() * 0.6f;
1230 dust19.fadeIn = 0.5f;
1231 dust19.velocity *= 0.05f;
1232 dust19.noLight = true;
1233 if (dust19.type == 4)
1234 {
1235 dust19.color = new Color(80, 170, 40, 120);
1236 }
1237 DustCache.Add(dust19.dustIndex);
1238 }
1239 if (Main.rand.Next(5) == 0 && shadow == 0f)
1240 {
1241 int num18 = Gore.NewGore(Position + new Vector2(Main.rand.NextFloat(), Main.rand.NextFloat()) * drawPlayer.Size, Vector2.Zero, Utils.SelectRandom<int>(Main.rand, 1024, 1025, 1026), 0.65f);
1242 Main.gore[num18].velocity *= 0.05f;
1244 }
1245 }
1246 if (Main.instance.IsActive && !Main.gamePaused && shadow == 0f)
1247 {
1248 float num19 = (float)drawPlayer.miscCounter / 180f;
1249 float num20 = 0f;
1250 float num21 = 10f;
1251 int type2 = 90;
1252 int num22 = 0;
1253 for (int i = 0; i < 3; i++)
1254 {
1255 switch (i)
1256 {
1257 case 0:
1259 {
1260 continue;
1261 }
1262 num20 = (float)Math.PI * 2f / (float)drawPlayer.nebulaLevelLife;
1264 break;
1265 case 1:
1267 {
1268 continue;
1269 }
1270 num20 = (float)Math.PI * -2f / (float)drawPlayer.nebulaLevelMana;
1272 num19 = (float)(-drawPlayer.miscCounter) / 180f;
1273 num21 = 20f;
1274 type2 = 88;
1275 break;
1276 case 2:
1278 {
1279 continue;
1280 }
1281 num20 = (float)Math.PI * 2f / (float)drawPlayer.nebulaLevelDamage;
1283 num19 = (float)drawPlayer.miscCounter / 180f;
1284 num21 = 30f;
1285 type2 = 86;
1286 break;
1287 }
1288 for (int j = 0; j < num22; j++)
1289 {
1290 Dust dust20 = Dust.NewDustDirect(Position, drawPlayer.width, drawPlayer.height, type2, 0f, 0f, 100, default(Color), 1.5f);
1291 dust20.noGravity = true;
1292 dust20.velocity = Vector2.Zero;
1293 dust20.position = drawPlayer.Center + Vector2.UnitY * drawPlayer.gfxOffY + (num19 * ((float)Math.PI * 2f) + num20 * (float)j).ToRotationVector2() * num21;
1294 dust20.customData = drawPlayer;
1295 DustCache.Add(dust20.dustIndex);
1296 }
1297 }
1298 }
1300 {
1301 num13 *= 0.5f;
1302 num12 *= 0.75f;
1303 }
1304 if (drawPlayer.witheredWeapon && drawPlayer.itemAnimation > 0 && heldItem.damage > 0 && Main.instance.IsActive && !Main.gamePaused && Main.rand.Next(3) == 0)
1305 {
1306 Dust dust21 = Dust.NewDustDirect(new Vector2(Position.X - 2f, Position.Y - 2f), drawPlayer.width + 4, drawPlayer.height + 4, 272, 0f, 0f, 50, default(Color), 0.5f);
1307 dust21.velocity *= 1.6f;
1308 dust21.velocity.Y -= 1f;
1309 dust21.position = Vector2.Lerp(dust21.position, drawPlayer.Center, 0.5f);
1310 DustCache.Add(dust21.dustIndex);
1311 }
1313 if (num12 != 1f || num13 != 1f || num14 != 1f || num15 != 1f)
1314 {
1316 {
1331 {
1333 }
1334 }
1335 else
1336 {
1351 {
1353 }
1354 }
1355 }
1357 {
1368 if (colorArmorHead.A > Main.gFade)
1369 {
1370 colorArmorHead.A = Main.gFade;
1371 }
1372 if (colorArmorBody.A > Main.gFade)
1373 {
1374 colorArmorBody.A = Main.gFade;
1375 }
1376 if (colorArmorLegs.A > Main.gFade)
1377 {
1378 colorArmorLegs.A = Main.gFade;
1379 }
1381 {
1383 }
1384 }
1386 {
1387 float num23 = 1f;
1388 colorEyeWhites = Color.White * num23;
1389 colorEyes = drawPlayer.eyeColor * num23;
1391 colorHead = drawPlayer.skinColor * num23;
1392 colorBodySkin = drawPlayer.skinColor * num23;
1393 colorShirt = drawPlayer.shirtColor * num23;
1394 colorUnderShirt = drawPlayer.underShirtColor * num23;
1395 colorPants = drawPlayer.pantsColor * num23;
1396 colorShoes = drawPlayer.shoeColor * num23;
1397 colorLegs = drawPlayer.skinColor * num23;
1402 {
1403 colorDisplayDollSkin = PlayerDrawHelper.DISPLAY_DOLL_DEFAULT_SKIN_COLOR * num23;
1404 }
1405 }
1407 {
1409 float opacityForAnimation = drawPlayer.opacityForAnimation;
1410 opacityForAnimation *= opacityForAnimation;
1411 colorEyeWhites = Color.White * opacityForAnimation;
1412 colorEyes = drawPlayer.eyeColor * opacityForAnimation;
1413 colorHair = GameShaders.Hair.GetColor(drawPlayer.hairDye, drawPlayer, Color.White) * opacityForAnimation;
1414 colorHead = drawPlayer.skinColor * opacityForAnimation;
1415 colorBodySkin = drawPlayer.skinColor * opacityForAnimation;
1416 colorShirt = drawPlayer.shirtColor * opacityForAnimation;
1417 colorUnderShirt = drawPlayer.underShirtColor * opacityForAnimation;
1418 colorPants = drawPlayer.pantsColor * opacityForAnimation;
1419 colorShoes = drawPlayer.shoeColor * opacityForAnimation;
1420 colorLegs = drawPlayer.skinColor * opacityForAnimation;
1425 {
1426 colorDisplayDollSkin = PlayerDrawHelper.DISPLAY_DOLL_DEFAULT_SKIN_COLOR * opacityForAnimation;
1427 }
1428 }
1429 stealth = 1f;
1430 if (heldItem.type == 3106)
1431 {
1432 float num24 = drawPlayer.stealth;
1433 if ((double)num24 < 0.03)
1434 {
1435 num24 = 0.03f;
1436 }
1437 float num25 = (1f + num24 * 10f) / 11f;
1438 if (num24 < 0f)
1439 {
1440 num24 = 0f;
1441 }
1442 if (!(num24 < 1f - shadow) && shadow > 0f)
1443 {
1444 num24 = shadow * 0.5f;
1445 }
1446 stealth = num25;
1447 colorArmorHead = new Color((byte)((float)(int)colorArmorHead.R * num24), (byte)((float)(int)colorArmorHead.G * num24), (byte)((float)(int)colorArmorHead.B * num25), (byte)((float)(int)colorArmorHead.A * num24));
1448 colorArmorBody = new Color((byte)((float)(int)colorArmorBody.R * num24), (byte)((float)(int)colorArmorBody.G * num24), (byte)((float)(int)colorArmorBody.B * num25), (byte)((float)(int)colorArmorBody.A * num24));
1449 colorArmorLegs = new Color((byte)((float)(int)colorArmorLegs.R * num24), (byte)((float)(int)colorArmorLegs.G * num24), (byte)((float)(int)colorArmorLegs.B * num25), (byte)((float)(int)colorArmorLegs.A * num24));
1450 num24 *= num24;
1467 {
1469 }
1470 }
1472 {
1473 float num26 = drawPlayer.stealth;
1474 if ((double)num26 < 0.03)
1475 {
1476 num26 = 0.03f;
1477 }
1478 float num27 = (1f + num26 * 10f) / 11f;
1479 if (num26 < 0f)
1480 {
1481 num26 = 0f;
1482 }
1483 if (!(num26 < 1f - shadow) && shadow > 0f)
1484 {
1485 num26 = shadow * 0.5f;
1486 }
1487 stealth = num27;
1488 colorArmorHead = new Color((byte)((float)(int)colorArmorHead.R * num26), (byte)((float)(int)colorArmorHead.G * num26), (byte)((float)(int)colorArmorHead.B * num27), (byte)((float)(int)colorArmorHead.A * num26));
1489 colorArmorBody = new Color((byte)((float)(int)colorArmorBody.R * num26), (byte)((float)(int)colorArmorBody.G * num26), (byte)((float)(int)colorArmorBody.B * num27), (byte)((float)(int)colorArmorBody.A * num26));
1490 colorArmorLegs = new Color((byte)((float)(int)colorArmorLegs.R * num26), (byte)((float)(int)colorArmorLegs.G * num26), (byte)((float)(int)colorArmorLegs.B * num27), (byte)((float)(int)colorArmorLegs.A * num26));
1491 num26 *= num26;
1508 {
1510 }
1511 }
1512 else if (drawPlayer.setVortex)
1513 {
1514 float num28 = drawPlayer.stealth;
1515 if ((double)num28 < 0.03)
1516 {
1517 num28 = 0.03f;
1518 }
1519 if (num28 < 0f)
1520 {
1521 num28 = 0f;
1522 }
1523 if (!(num28 < 1f - shadow) && shadow > 0f)
1524 {
1525 num28 = shadow * 0.5f;
1526 }
1527 stealth = num28;
1528 Color secondColor = new Color(Vector4.Lerp(Vector4.One, new Vector4(0f, 0.12f, 0.16f, 0f), 1f - num28));
1532 num28 *= num28;
1549 {
1551 }
1552 }
1553 if (hideEntirePlayer)
1554 {
1555 stealth = 1f;
1557 }
1558 if (drawPlayer.gravDir == 1f)
1559 {
1560 if (drawPlayer.direction == 1)
1561 {
1564 }
1565 else
1566 {
1567 playerEffect = SpriteEffects.FlipHorizontally;
1568 itemEffect = SpriteEffects.FlipHorizontally;
1569 }
1570 if (!drawPlayer.dead)
1571 {
1572 drawPlayer.legPosition.Y = 0f;
1573 drawPlayer.headPosition.Y = 0f;
1574 drawPlayer.bodyPosition.Y = 0f;
1575 }
1576 }
1577 else
1578 {
1579 if (drawPlayer.direction == 1)
1580 {
1581 playerEffect = SpriteEffects.FlipVertically;
1582 itemEffect = SpriteEffects.FlipVertically;
1583 }
1584 else
1585 {
1586 playerEffect = SpriteEffects.FlipHorizontally | SpriteEffects.FlipVertically;
1587 itemEffect = SpriteEffects.FlipHorizontally | SpriteEffects.FlipVertically;
1588 }
1589 if (!drawPlayer.dead)
1590 {
1591 drawPlayer.legPosition.Y = 6f;
1592 drawPlayer.headPosition.Y = 6f;
1593 drawPlayer.bodyPosition.Y = 6f;
1594 }
1595 }
1596 switch (heldItem.type)
1597 {
1598 case 3182:
1599 case 3184:
1600 case 3185:
1601 case 3782:
1602 itemEffect ^= SpriteEffects.FlipHorizontally | SpriteEffects.FlipVertically;
1603 break;
1604 case 5118:
1605 if (player.gravDir < 0f)
1606 {
1607 itemEffect ^= SpriteEffects.FlipHorizontally | SpriteEffects.FlipVertically;
1608 }
1609 break;
1610 }
1611 legVect = new Vector2((float)drawPlayer.legFrame.Width * 0.5f, (float)drawPlayer.legFrame.Height * 0.75f);
1612 bodyVect = new Vector2((float)drawPlayer.legFrame.Width * 0.5f, (float)drawPlayer.legFrame.Height * 0.5f);
1613 headVect = new Vector2((float)drawPlayer.legFrame.Width * 0.5f, (float)drawPlayer.legFrame.Height * 0.4f);
1615 {
1616 drawPlayer.headRotation = drawPlayer.velocity.Y * (float)drawPlayer.direction * 0.1f;
1617 if ((double)drawPlayer.headRotation < -0.3)
1618 {
1619 drawPlayer.headRotation = -0.3f;
1620 }
1621 if ((double)drawPlayer.headRotation > 0.3)
1622 {
1623 drawPlayer.headRotation = 0.3f;
1624 }
1625 }
1626 else if (!drawPlayer.dead)
1627 {
1628 drawPlayer.headRotation = 0f;
1629 }
1630 Rectangle bodyFrame = drawPlayer.bodyFrame;
1631 bodyFrame = drawPlayer.bodyFrame;
1632 bodyFrame.Y -= 336;
1633 if (bodyFrame.Y < 0)
1634 {
1635 bodyFrame.Y = 0;
1636 }
1637 hairFrontFrame = bodyFrame;
1638 hairBackFrame = bodyFrame;
1639 if (hideHair)
1640 {
1641 hairFrontFrame.Height = 0;
1642 hairBackFrame.Height = 0;
1643 }
1644 else if (backHairDraw)
1645 {
1646 int height = 26;
1647 hairFrontFrame.Height = height;
1648 }
1649 hidesTopSkin = drawPlayer.body == 82 || drawPlayer.body == 83 || drawPlayer.body == 93 || drawPlayer.body == 21 || drawPlayer.body == 22;
1650 hidesBottomSkin = drawPlayer.body == 93 || drawPlayer.legs == 20 || drawPlayer.legs == 21;
1651 drawFloatingTube = drawPlayer.hasFloatingTube && !hideEntirePlayer;
1656 {
1657 drawFrontAccInNeckAccLayer = drawPlayer.front > 0 && drawPlayer.front < ArmorIDs.Front.Count && ArmorIDs.Front.Sets.DrawsInNeckLayer[drawPlayer.front];
1658 }
1663 }
1664
1666 {
1667 hideEntirePlayer = true;
1668 weaponDrawOrder = WeaponDrawOrder.BehindBackArm;
1669 Vector2 vector = new Vector2(10 + drawPlayer.direction * 14, 12f);
1671 Position.X -= drawPlayer.direction * 10;
1672 bool flag = drawPlayer.heldProj != -1 || heldItem.useStyle == 5;
1673 bool num = heldItem.useStyle == 2;
1674 bool flag2 = heldItem.useStyle == 9;
1675 bool flag3 = drawPlayer.itemAnimation > 0;
1676 bool flag4 = heldItem.fishingPole != 0;
1677 bool flag5 = heldItem.useStyle == 14;
1678 bool flag6 = heldItem.useStyle == 8;
1679 bool flag7 = heldItem.holdStyle == 1;
1680 bool flag8 = heldItem.holdStyle == 2;
1681 bool flag9 = heldItem.holdStyle == 5;
1682 if (num)
1683 {
1684 ItemLocation += new Vector2(drawPlayer.direction * 14, -4f);
1685 }
1686 else if (!flag4)
1687 {
1688 if (flag2)
1689 {
1690 ItemLocation += (flag3 ? new Vector2(drawPlayer.direction * 18, -4f) : new Vector2(drawPlayer.direction * 14, -18f));
1691 }
1692 else if (flag9)
1693 {
1694 ItemLocation += new Vector2(drawPlayer.direction * 17, -8f);
1695 }
1696 else if (flag7 && drawPlayer.itemAnimation == 0)
1697 {
1698 ItemLocation += new Vector2(drawPlayer.direction * 14, -6f);
1699 }
1700 else if (flag8 && drawPlayer.itemAnimation == 0)
1701 {
1702 ItemLocation += new Vector2(drawPlayer.direction * 17, 4f);
1703 }
1704 else if (flag6)
1705 {
1706 ItemLocation = vector2 + new Vector2(drawPlayer.direction * 12, 2f);
1707 }
1708 else if (flag5)
1709 {
1710 ItemLocation += new Vector2(drawPlayer.direction * 5, -2f);
1711 }
1712 else if (flag)
1713 {
1714 ItemLocation += new Vector2(drawPlayer.direction * 4, -4f);
1715 }
1716 else
1717 {
1718 ItemLocation = vector2;
1719 }
1720 }
1721 }
1722
1723 private void CreateCompositeData()
1724 {
1727 usesCompositeTorso = drawPlayer.body > 0 && drawPlayer.body < ArmorIDs.Body.Count && ArmorIDs.Body.Sets.UsesNewFramingCode[drawPlayer.body];
1728 usesCompositeFrontHandAcc = drawPlayer.handon > 0 && drawPlayer.handon < ArmorIDs.HandOn.Count && ArmorIDs.HandOn.Sets.UsesNewFramingCode[drawPlayer.handon];
1729 usesCompositeBackHandAcc = drawPlayer.handoff > 0 && drawPlayer.handoff < ArmorIDs.HandOff.Count && ArmorIDs.HandOff.Sets.UsesNewFramingCode[drawPlayer.handoff];
1730 if (drawPlayer.body < 1)
1731 {
1732 usesCompositeTorso = true;
1733 }
1734 if (!usesCompositeTorso)
1735 {
1736 return;
1737 }
1738 Point pt = new Point(1, 1);
1739 Point pt2 = new Point(0, 1);
1740 Point pt3 = default(Point);
1741 Point frameIndex = default(Point);
1742 Point frameIndex2 = default(Point);
1743 int num = drawPlayer.bodyFrame.Y / drawPlayer.bodyFrame.Height;
1745 hideCompositeShoulders = false;
1746 bool flag = true;
1747 if (drawPlayer.body > 0)
1748 {
1750 }
1751 bool flag2 = false;
1752 if (drawPlayer.handon > 0)
1753 {
1755 }
1756 bool flag3 = !flag2;
1757 switch (num)
1758 {
1759 case 0:
1760 frameIndex2.X = 2;
1761 flag3 = true;
1762 break;
1763 case 1:
1764 frameIndex2.X = 3;
1766 flag3 = true;
1767 break;
1768 case 2:
1769 frameIndex2.X = 4;
1771 flag3 = true;
1772 break;
1773 case 3:
1774 frameIndex2.X = 5;
1776 flag3 = true;
1777 break;
1778 case 4:
1779 frameIndex2.X = 6;
1781 flag3 = true;
1782 break;
1783 case 5:
1784 frameIndex2.X = 2;
1785 frameIndex2.Y = 1;
1786 pt3.X = 1;
1788 flag3 = true;
1789 if (!flag)
1790 {
1792 }
1793 break;
1794 case 6:
1795 frameIndex2.X = 3;
1796 frameIndex2.Y = 1;
1797 break;
1798 case 7:
1799 case 8:
1800 case 9:
1801 case 10:
1802 frameIndex2.X = 4;
1803 frameIndex2.Y = 1;
1804 break;
1805 case 11:
1806 case 12:
1807 case 13:
1808 frameIndex2.X = 3;
1809 frameIndex2.Y = 1;
1810 break;
1811 case 14:
1812 frameIndex2.X = 5;
1813 frameIndex2.Y = 1;
1814 break;
1815 case 15:
1816 case 16:
1817 frameIndex2.X = 6;
1818 frameIndex2.Y = 1;
1819 break;
1820 case 17:
1821 frameIndex2.X = 5;
1822 frameIndex2.Y = 1;
1823 break;
1824 case 18:
1825 case 19:
1826 frameIndex2.X = 3;
1827 frameIndex2.Y = 1;
1828 break;
1829 }
1834 {
1836 }
1838 frameIndex.X = frameIndex2.X;
1839 frameIndex.Y = frameIndex2.Y + 2;
1842 if (!drawPlayer.Male)
1843 {
1844 pt.Y += 2;
1845 pt2.Y += 2;
1846 pt3.Y += 2;
1847 }
1853 }
1854
1856 {
1857 int num = 0;
1858 switch (armor)
1859 {
1860 case 55:
1861 num = 1;
1862 break;
1863 case 71:
1864 num = 2;
1865 break;
1866 case 204:
1867 num = 3;
1868 break;
1869 case 183:
1870 num = 4;
1871 break;
1872 case 201:
1873 num = 5;
1874 break;
1875 case 101:
1876 num = 6;
1877 break;
1878 case 207:
1879 num = 7;
1880 break;
1881 }
1882 switch (num)
1883 {
1884 case 1:
1885 switch (targetFrameNumber)
1886 {
1887 case 6:
1888 frontShoulderOffset.X = -2f;
1889 break;
1890 case 7:
1891 case 8:
1892 case 9:
1893 case 10:
1894 frontShoulderOffset.X = -4f;
1895 break;
1896 case 11:
1897 case 12:
1898 case 13:
1899 case 14:
1900 frontShoulderOffset.X = -2f;
1901 break;
1902 case 18:
1903 case 19:
1904 frontShoulderOffset.X = -2f;
1905 break;
1906 case 15:
1907 case 16:
1908 case 17:
1909 break;
1910 }
1911 break;
1912 case 2:
1913 switch (targetFrameNumber)
1914 {
1915 case 6:
1916 frontShoulderOffset.X = -2f;
1917 break;
1918 case 7:
1919 case 8:
1920 case 9:
1921 case 10:
1922 frontShoulderOffset.X = -4f;
1923 break;
1924 case 11:
1925 case 12:
1926 case 13:
1927 case 14:
1928 frontShoulderOffset.X = -2f;
1929 break;
1930 case 18:
1931 case 19:
1932 frontShoulderOffset.X = -2f;
1933 break;
1934 case 15:
1935 case 16:
1936 case 17:
1937 break;
1938 }
1939 break;
1940 case 3:
1941 switch (targetFrameNumber)
1942 {
1943 case 7:
1944 case 8:
1945 case 9:
1946 frontShoulderOffset.X = -2f;
1947 break;
1948 case 15:
1949 case 16:
1950 case 17:
1951 frontShoulderOffset.X = 2f;
1952 break;
1953 }
1954 break;
1955 case 4:
1956 switch (targetFrameNumber)
1957 {
1958 case 6:
1959 frontShoulderOffset.X = -2f;
1960 break;
1961 case 7:
1962 case 8:
1963 case 9:
1964 case 10:
1965 frontShoulderOffset.X = -4f;
1966 break;
1967 case 11:
1968 case 12:
1969 case 13:
1970 frontShoulderOffset.X = -2f;
1971 break;
1972 case 15:
1973 case 16:
1974 frontShoulderOffset.X = 2f;
1975 break;
1976 case 18:
1977 case 19:
1978 frontShoulderOffset.X = -2f;
1979 break;
1980 case 14:
1981 case 17:
1982 break;
1983 }
1984 break;
1985 case 5:
1986 switch (targetFrameNumber)
1987 {
1988 case 7:
1989 case 8:
1990 case 9:
1991 case 10:
1992 frontShoulderOffset.X = -2f;
1993 break;
1994 case 15:
1995 case 16:
1996 frontShoulderOffset.X = 2f;
1997 break;
1998 }
1999 break;
2000 case 6:
2001 switch (targetFrameNumber)
2002 {
2003 case 7:
2004 case 8:
2005 case 9:
2006 case 10:
2007 frontShoulderOffset.X = -2f;
2008 break;
2009 case 14:
2010 case 15:
2011 case 16:
2012 case 17:
2013 frontShoulderOffset.X = 2f;
2014 break;
2015 }
2016 break;
2017 case 7:
2018 switch (targetFrameNumber)
2019 {
2020 case 6:
2021 case 7:
2022 case 8:
2023 case 9:
2024 case 10:
2025 frontShoulderOffset.X = -2f;
2026 break;
2027 case 11:
2028 case 12:
2029 case 13:
2030 case 14:
2031 frontShoulderOffset.X = -2f;
2032 break;
2033 case 18:
2034 case 19:
2035 frontShoulderOffset.X = -2f;
2036 break;
2037 case 15:
2038 case 16:
2039 case 17:
2040 break;
2041 }
2042 break;
2043 }
2044 }
2045
2047 {
2048 return new Rectangle(pt.X * 40, pt.Y * 56, 40, 56);
2049 }
2050
2052 {
2053 if (data.enabled)
2054 {
2055 rotation = data.rotation;
2056 switch (data.stretch)
2057 {
2059 frameIndex.X = targetX;
2060 frameIndex.Y = 0;
2061 break;
2062 case Player.CompositeArmStretchAmount.ThreeQuarters:
2063 frameIndex.X = targetX;
2064 frameIndex.Y = 1;
2065 break;
2066 case Player.CompositeArmStretchAmount.Quarter:
2067 frameIndex.X = targetX;
2068 frameIndex.Y = 2;
2069 break;
2071 frameIndex.X = targetX;
2072 frameIndex.Y = 3;
2073 break;
2074 }
2075 }
2076 else
2077 {
2078 rotation = 0f;
2079 }
2080 }
2081}
static double Abs(double value)
const double PI
Definition Math.cs:16
static int PackShader(int localShaderIndex, ShaderConfiguration shaderType)
static int NewDust(Vector2 Position, int Width, int Height, int Type, float SpeedX=0f, float SpeedY=0f, int Alpha=0, Color newColor=default(Color), float Scale=1f)
Definition Dust.cs:73
static Dust NewDustDirect(Vector2 Position, int Width, int Height, int Type, float SpeedX=0f, float SpeedY=0f, int Alpha=0, Color newColor=default(Color), float Scale=1f)
Definition Dust.cs:63
Vector2 Center
Definition Entity.cs:43
Vector2 Size
Definition Entity.cs:151
Vector2 velocity
Definition Entity.cs:16
Vector2 position
Definition Entity.cs:14
static bool IsPlayerHoldingClub(Player player)
static int NewGore(Vector2 Position, Vector2 Velocity, int Type, float Scale=1f)
Definition Gore.cs:1288
static HairShaderDataSet Hair
Definition GameShaders.cs:9
static readonly int Count
Definition ArmorIDs.cs:1668
static readonly int Count
Definition ArmorIDs.cs:2088
static readonly sbyte Count
Definition ArmorIDs.cs:2123
static bool[] showsShouldersWhileJumping
Definition ArmorIDs.cs:643
static bool[] shouldersAreAlwaysInTheBack
Definition ArmorIDs.cs:645
static bool[] UsesNewFramingCode
Definition ArmorIDs.cs:641
static readonly int Count
Definition ArmorIDs.cs:1032
static readonly sbyte Count
Definition ArmorIDs.cs:2036
static readonly int Count
Definition ArmorIDs.cs:1704
static readonly int Count
Definition ArmorIDs.cs:1582
static bool[] UsesOldFramingTexturesForWalking
Definition ArmorIDs.cs:1481
static readonly int Count
Definition ArmorIDs.cs:1536
static readonly int Count
Definition ArmorIDs.cs:587
static readonly int Count
Definition ArmorIDs.cs:1470
static readonly int Count
Definition ArmorIDs.cs:1972
static readonly int Count
Definition ArmorIDs.cs:1943
static readonly int Count
Definition ArmorIDs.cs:1770
static readonly int Count
Definition ArmorIDs.cs:1818
static Color GetSelectionGlowColor(bool isTileSelected, int averageTileLighting)
Definition Colors.cs:127
int damage
Definition Item.cs:167
static Color GetColor(Point tileCoords)
Definition Lighting.cs:182
static Color GetColorClamped(int x, int y, Color oldColor)
Definition Lighting.cs:209
static Gore[] gore
Definition Main.cs:1687
static Microsoft.Xna.Framework.Color buffColor(Microsoft.Xna.Framework.Color newColor, float R, float G, float B, float A)
Definition Main.cs:34690
static bool InSmartCursorHighlightArea(int x, int y, out bool actuallySelected)
Definition Main.cs:3628
static Main instance
Definition Main.cs:283
static Projectile[] projectile
Definition Main.cs:1691
static UnifiedRandom rand
Definition Main.cs:1387
static byte gFade
Definition Main.cs:714
static Microsoft.Xna.Framework.Color hslToRgb(Vector3 hslVector)
Definition Main.cs:44913
static bool gamePaused
Definition Main.cs:1072
static Dust[] dust
Definition Main.cs:1677
bool Active
Definition Mount.cs:345
int nebulaLevelLife
Definition Player.cs:703
bool eyebrellaCloud
Definition Player.cs:1633
sbyte balloonFront
Definition Player.cs:1363
int itemAnimationMax
Definition Player.cs:2567
bool electrified
Definition Player.cs:911
bool loveStruck
Definition Player.cs:905
PlayerSleepingHelper sleeping
Definition Player.cs:2465
bool palladiumRegen
Definition Player.cs:929
bool socialIgnoreLight
Definition Player.cs:1237
bool onFrostBurn2
Definition Player.cs:1897
PlayerSittingHelper sitting
Definition Player.cs:2463
int nebulaLevelDamage
Definition Player.cs:709
float opacityForAnimation
Definition Player.cs:1501
Color underShirtColor
Definition Player.cs:2141
bool drippingSparkleSlime
Definition Player.cs:1917
Vector2 GetHairDrawOffset(int hairID, bool hatHair)
Definition Player.cs:3855
CompositeArmStretchAmount
Definition Player.cs:192
Color shirtColor
Definition Player.cs:2139
void GetHairSettings(out bool fullHair, out bool hatHair, out bool hideHair, out bool backHairDraw, out bool drawsBackHairWithoutHeadgear)
Definition Player.cs:16638
float HeightOffsetVisual
Definition Player.cs:2755
bool hasUnicornHorn
Definition Player.cs:1639
bool isFullbright
Definition Player.cs:1247
bool slowOgreSpit
Definition Player.cs:2009
bool isDisplayDollOrInanimate
Definition Player.cs:1245
Color GetHairColor(bool useLighting=true)
Definition Player.cs:52299
Item lastVisualizedSelectedItem
Definition Player.cs:1261
int nebulaLevelMana
Definition Player.cs:705
bool witheredWeapon
Definition Player.cs:2007
bool witheredArmor
Definition Player.cs:2005
Color skinColor
Definition Player.cs:2135
Color GetImmuneAlpha(Color newColor, float alphaReduction)
Definition Player.cs:50645
Vector2 GetLegsDrawOffset()
Definition Player.cs:3991
Color pantsColor
Definition Player.cs:2143
Color GetImmuneAlphaPure(Color newColor, float alphaReduction)
Definition Player.cs:50669
CompositeArmData compositeFrontArm
Definition Player.cs:1539
bool isHatRackDoll
Definition Player.cs:1249
sbyte faceFlower
Definition Player.cs:1361
bool hasAngelHalo
Definition Player.cs:1641
float MountXOffset
Definition Player.cs:2787
Vector2 GetHelmetDrawOffset()
Definition Player.cs:3869
Rectangle bodyFrame
Definition Player.cs:1373
float headRotation
Definition Player.cs:1273
bool shroomiteStealth
Definition Player.cs:1233
bool drippingSlime
Definition Player.cs:1915
CompositeArmData compositeBackArm
Definition Player.cs:1541
Color shoeColor
Definition Player.cs:2145
Rectangle legFrame
Definition Player.cs:1375
static Color Multiply(Color value, float scale)
Definition Color.cs:513
static Color Transparent
Definition Color.cs:76
static Vector2 Lerp(Vector2 value1, Vector2 value2, float amount)
Definition Vector2.cs:227
static Vector4 Lerp(Vector4 value1, Vector4 value2, float amount)
Definition Vector4.cs:277
void CreateCompositeData_DetermineShoulderOffsets(int armor, int targetFrameNumber)
void BoringSetup(Player player, List< DrawData > drawData, List< int > dust, List< int > gore, Vector2 drawPosition, float shadowOpacity, float rotation, Vector2 rotationOrigin)
void UpdateCompositeArm(Player.CompositeArmData data, ref float rotation, ref Point frameIndex, int targetX)