77261 {
77262
77263
77264
77265
77266
77267
77268
77269
77270
77271
77272
77273
77274
77275
77276
77277
77278
77279
77280
77281
77282
77283
77284
77285
77286
77287
77288
77289
77290
77291
77292
77293
77294
77295
77296
77297
77298
77299
77300
77301
77302
77303
77304
77305
77306
77307
77308
77309
77310
77311
77312
77313
77314
77315
77316
77317
77318
77319
77320
77321
77322
77323
77324
77325
77326
77327
77328
77329
77330
77331
77332
77333
77334
77335
77336
77343 float num8 = 0.08f;
77346 Vector2
vector =
default(Vector2);
77348 if (player.dead)
77349 {
77351 return;
77352 }
77355 {
77356 case 702:
77357 {
77358 if (player.petFlagDD2Ghost)
77359 {
77361 }
77368 if (Main.rand.Next(24) == 0)
77369 {
77371 if (Main.rand.Next(3) != 0)
77372 {
77373 dust2.noGravity = true;
77374 dust2.velocity.Y -= 3
f;
77375 dust2.noLight = true;
77376 }
77377 else if (Main.rand.Next(2) != 0)
77378 {
77379 dust2.noLight = true;
77380 }
77381 dust2.velocity *= 0.5f;
77382 dust2.velocity.Y -= 0.9f;
77383 dust2.scale += 0.1f + Main.rand.NextFloat() * 0.6f;
77384 }
77385 DelegateMethods.v3_1 =
new Vector3(0.3
f, 0.5
f, 1
f);
77386 Utils.PlotTileLine(
base.Center,
base.Center +
velocity * 6
f, 20
f, DelegateMethods.CastLightOpen);
77387 Utils.PlotTileLine(
base.Left,
base.Right, 20
f, DelegateMethods.CastLightOpen);
77388 Utils.PlotTileLine(player.Center, player.Center + player.velocity * 6
f, 40
f, DelegateMethods.CastLightOpen);
77389 Utils.PlotTileLine(player.Left, player.Right, 40
f, DelegateMethods.CastLightOpen);
77390 break;
77391 }
77392 case 703:
77393 if (player.petFlagDD2Gato)
77394 {
77396 }
77402 break;
77403 case 701:
77404 if (player.petFlagDD2Dragon)
77405 {
77407 }
77408 break;
77409 case 764:
77410 {
77416 {
77418 }
77419 localAI[1] += velocity.X * 0.01f;
77421 if (
localAI[1] < (
float)Math.PI * -2
f)
77422 {
77424 }
77426 {
77428 }
77430 {
77432 if (((Vector2)(
ref velocity)).Length() > 0.1
f && Main.rand.Next(30) == 0)
77433 {
77435 dust3.velocity *= 0.3f;
77436 dust3.noLightEmittence = true;
77437 }
77438 }
77439 else
77440 {
77441 Vector2
vector2 =
default(Vector2);
77444 ((Rectangle)(
ref hitbox)).Intersects(Utils.CenteredRectangle(Main.screenPosition +
vector2 / 2
f,
vector2 +
new Vector2(400
f)));
77445 if (Main.rand.Next(15) == 0)
77446 {
77448 }
77449 }
77452 {
77454 }
77456 vector.Y += (float)
Math.Cos(
localAI[0] / 120
f * ((
float)Math.PI * 2
f)) * 2
f;
77457 if (player.petFlagUpbeatStar)
77458 {
77460 }
77461 break;
77462 }
77463 }
77464 if (
flag2 && (player.suspiciouslookingTentacle || player.petFlagDD2Ghost))
77465 {
77466 vector.X += -player.direction * 64;
77467 }
77472 {
77473 base.Center = player.Center +
vector;
77474 }
77477 {
77479 }
77481 {
77483 {
77485 }
77486 else
77487 {
77489 }
77490 }
77492 {
77495 {
77497 {
77499 }
77500 else
77501 {
77503 }
77504 }
77508 {
77511 {
77513 }
77514 }
77515 }
77516 else
77517 {
77519 {
77521 }
77523 {
77525 }
77526 else
77527 {
77529 }
77531 {
77534 {
77536 }
77537 }
77538 }
77540 {
77543 {
77545 }
77546 }
77547 }
Vector2 velocity
The velocity of this Entity in world coordinates per tick.
Vector2 position
The position of this Entity in world coordinates.
int width
The width of this Entity's hitbox, in pixels.
int height
The height of this Entity's hitbox, in pixels.
int owner
The index of the player who owns this projectile. In Multiplayer, Clients "own" projectiles that they...
float[] localAI
Acts like F:Terraria.Projectile.ai, but does not sync to the server. Many vanilla T:Terraria....
int frame
The frame number in the spritesheet that this projectile will be drawn with. Assign in M:Terraria....
int type
The Projectile ID of this projectile. The Projectile ID is a unique number assigned to each Projectil...
int timeLeft
Time in ticks before this projectile will naturally despawn. Each update timeLeft is decreased by 1...
float rotation
Rotation of the projectile. Radians not Degrees. Use T:Microsoft.Xna.Framework.MathHelper if you want...
int frameCounter
Used as a timer to decide when to change F:Terraria.Projectile.frame. Defaults to 0.