75719 {
75720
75721
75722
75723
75724
75725
75726
75727
75728
75729
75730
75731
75732
75733
75734
75735
75736
75737
75738
75739
75740
75741
75742
75743
75744
75745
75746
75747
75748
75749
75750
75751
75752
75753
75754
75755
75756
75757
75758
75759
75760
75761
75762
75763
75764
75765
75766
75767
75768
75769
75770
75771
75772
75773
75774
75775
75776
75777
75778
75779
75780
75781
75782
75783
75784
75785
75786
75787
75788
75789
75790
75791
75792
75793
75794
75795
75796
75797
75798
75799
75800
75801
75802
75803
75804
75805
75806
75807
75808
75809
75810
75811
75812
75813
75814
75815
75816
75817
75818
75819
75820
75821
75822
75823
75824
75825
75826
75827
75828
75829
75830
75831
75832
75833
75834
75835
75836
75837
75838
75839
75840
75841
75842 if (
ai[1] < 0
f ||
ai[1] > 200
f)
75843 {
75845 return;
75846 }
75849 Vector2
center = nPC.Center + Utils.RotatedBy(
new Vector2((110
f +
num) * (
float)
nPC.spriteDirection, 30
f),
nPC.rotation);
75852 DelegateMethods.v3_1 =
new Vector3(1.2
f, 1
f, 0.3
f);
75855 {
75857 }
75860 {
75862 }
75863 Utils.PlotTileLine(
base.Center +
rotation.ToRotationVector2() * 400
f *
num3, base.Center +
rotation.ToRotationVector2() * 400
f *
num2, 16
f, DelegateMethods.CastLight);
75864 Utils.PlotTileLine(
base.Center +
rotation.ToRotationVector2().RotatedBy(0.19634954631328583) * 400
f *
num3, base.Center +
rotation.ToRotationVector2().RotatedBy(0.19634954631328583) * 400
f *
num2, 16
f, DelegateMethods.CastLight);
75865 Utils.PlotTileLine(
base.Center +
rotation.ToRotationVector2().RotatedBy(-0.19634954631328583) * 400
f *
num3, base.Center +
rotation.ToRotationVector2().RotatedBy(-0.19634954631328583) * 400
f *
num2, 16
f, DelegateMethods.CastLight);
75867 {
75868 for (int i = 0; i < 3; i++)
75869 {
75871 dust.fadeIn = 1.5f;
75872 dust.velocity =
rotation.ToRotationVector2().RotatedBy(Main.rand.NextFloatDirection() * ((float)
Math.PI / 12
f)) * (0.5
f + Main.rand.NextFloat() * 2.5f) * 15
f;
75873 dust.velocity += nPC.velocity * 2
f;
75874 dust.noLight = true;
75875 dust.noGravity = true;
75876 dust.alpha = 200;
75877 }
75878 }
75879 if (Main.rand.Next(5) == 0 &&
ai[0] >= 15
f)
75880 {
75881 Gore gore = Gore.NewGoreDirect(
base.Center +
rotation.ToRotationVector2() * 300
f - Utils.RandomVector2(Main.rand, -20
f, 20
f), Vector2.Zero, 61 + Main.rand.Next(3), 0.5f);
75882 gore.velocity *= 0.3f;
75883 gore.velocity +=
rotation.ToRotationVector2() * 4
f;
75884 }
75885 for (
int j = 0;
j < 1;
j++)
75886 {
75888 dust2.fadeIn = 1.5f;
75889 dust2.scale = 0.4f;
75890 dust2.velocity =
rotation.ToRotationVector2().RotatedBy(Main.rand.NextFloatDirection() * ((float)
Math.PI / 12
f)) * (0.5
f + Main.rand.NextFloat() * 2.5f) * 15
f;
75891 dust2.velocity += nPC.velocity * 2
f;
75892 dust2.velocity *= 0.3f;
75893 dust2.noLight = true;
75894 dust2.noGravity = true;
75895 float num4 = Main.rand.NextFloat();
75897 dust2.position +=
rotation.ToRotationVector2().RotatedBy(1.5707963705062866) * (20
f + 100
f * (
num4 - 0.5f));
75898 }
75902 {
75904 }
75905 }
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.
float[] ai
An array with 3 slots used for any sort of data storage, which is occasionally synced to the server....
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.