Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DrawWhip_RainbowWhip()

static Vector2 Terraria.Main.DrawWhip_RainbowWhip ( Projectile proj,
List< Vector2 > controlPoints )
inlinestatic

Definition at line 33448 of file Main.cs.

33449 {
33452 int height = rectangle.Height;
33453 rectangle.Height -= 2;
33454 Vector2 vector = rectangle.Size() / 2f;
33456 float miscCounterNormalized = player[proj.owner].miscCounterNormalized;
33457 for (int i = 0; i < controlPoints.Count - 1; i++)
33458 {
33459 bool flag = true;
33460 Vector2 origin = vector;
33461 switch (i)
33462 {
33463 case 0:
33464 origin.Y -= 4f;
33465 break;
33466 case 39:
33467 rectangle.Y = height * 4;
33468 break;
33469 default:
33470 flag = i % 2 == 0;
33471 rectangle.Y = height * (1 + i % 3);
33472 break;
33473 }
33476 if (flag)
33477 {
33478 Microsoft.Xna.Framework.Color color = hslToRgb((miscCounterNormalized * 5f + (float)i * 0.05f) % 1f, 1f, 0.5f);
33480 float lerpValue = Utils.GetLerpValue(controlPoints.Count - 10, controlPoints.Count - 2, i, clamped: true);
33481 float num = MathHelper.Lerp(1f, 1f, lerpValue);
33482 color2.A /= 2;
33483 color2.A = (byte)((float)(int)color2.A * lerpValue);
33484 float rotation = vector4.ToRotation() - (float)Math.PI / 2f;
33485 Microsoft.Xna.Framework.Color color3 = Lighting.GetColor(vector3.ToTileCoordinates());
33486 spriteBatch.Draw(value, vector2 - screenPosition, rectangle, Microsoft.Xna.Framework.Color.Lerp(color3, color2, 0.5f), rotation, origin, num, SpriteEffects.None, 0f);
33487 color2.A = 0;
33488 spriteBatch.Draw(value, vector2 - screenPosition, rectangle, color2 * 0.1f, rotation, origin, num * 1.2f, SpriteEffects.None, 0f);
33489 if (i == 39)
33490 {
33491 color2 = color;
33492 color2.A = 127;
33493 spriteBatch.Draw(value, vector2 - screenPosition, rectangle, color2 * 0.3f, rotation, origin, num * 1.4f, SpriteEffects.None, 0f);
33494 }
33495 }
33496 vector2 += vector4;
33497 }
33498 return vector2;
33499 }
static float Lerp(float value1, float value2, float amount)
Definition MathHelper.cs:53
const double PI
Definition Math.cs:16
static Asset< Texture2D >[] Projectile
static SpriteBatch spriteBatch
Definition Main.cs:974
static Vector2 screenPosition
Definition Main.cs:1715
static Microsoft.Xna.Framework.Color hslToRgb(Vector3 hslVector)
Definition Main.cs:44913
static Player[] player
Definition Main.cs:1803
static Color Lerp(Color value1, Color value2, float amount)
Definition Color.cs:491

References System.Collections.Generic.Dictionary< TKey, TValue >.Count, Terraria.Lighting.GetColor(), Terraria.Utils.GetLerpValue(), Terraria.Main.hslToRgb(), System.Text.RegularExpressions.i, Microsoft.Xna.Framework.Color.Lerp(), Microsoft.Xna.Framework.MathHelper.Lerp(), System.Math.PI, Terraria.Main.player, Terraria.GameContent.TextureAssets.Projectile, Terraria.Main.screenPosition, Terraria.Main.spriteBatch, and System.value.

Referenced by Terraria.Main.DrawWhip().