48944 {
48945
48946
48947
48948
48949
48950
48951
48952
48953
48954
48955
48956
48957
48958
48959
48960
48961
48962
48963
48964
48965
48966
48967
48968
48969
48970
48971
48972
48973
48974
48975
48976
48977
48978
48979
48980
48981
48982
48983
48984
48985
48986
48987
48988
48989
48990
48991
48992
48993
48994
48995
48996
48997
48998
48999
49000
49001
49002
49003
49004
49005
49006
49007
49008
49009
49010
49011
49012
49013
49014
49015
49016
49017
49018
49019
49020
49021
49022 Vector2
vector = Main.player[
owner].RotatedRelativePoint(Main.player[
owner].MountedCenter);
49025 Main.player[
owner].MatchItemTimeToItemAnimation();
49026 position.X = vector.X - (float)(
width / 2);
49027 position.Y = vector.Y - (float)(
height / 2);
49028 bool flag = Main.player[
owner].itemAnimation < Main.player[
owner].itemAnimationMax / 3;
49029 if (!Main.player[
owner].frozen)
49030 {
49032 {
49034 {
49037 }
49039 {
49041 }
49042 else
49043 {
49045 }
49046 }
49047 else if (
type == 105)
49048 {
49050 {
49053 }
49055 {
49057 }
49058 else
49059 {
49061 }
49062 }
49063 else if (
type == 367)
49064 {
49067 {
49070 }
49072 {
49074 }
49075 else
49076 {
49078 }
49079 }
49080 else if (
type == 368)
49081 {
49084 {
49087 }
49089 {
49091 }
49092 else
49093 {
49095 }
49096 }
49097 else if (
type == 222)
49098 {
49100 {
49103 }
49105 {
49108 {
49111 }
49112 }
49113 else
49114 {
49116 }
49117 }
49118 else if (
type == 342)
49119 {
49121 {
49124 }
49126 {
49129 {
49132 {
49134 }
49135 }
49136 }
49137 else
49138 {
49140 }
49141 }
49142 else if (
type == 47)
49143 {
49145 {
49148 }
49150 {
49152 }
49153 else
49154 {
49156 }
49157 }
49158 else if (
type == 153)
49159 {
49162 {
49165 }
49167 {
49169 }
49170 else
49171 {
49173 }
49174 }
49175 else if (
type == 49)
49176 {
49178 {
49181 }
49183 {
49185 }
49186 else
49187 {
49189 }
49190 }
49191 else if (
type == 730)
49192 {
49195 {
49199 {
49203 }
49204 }
49206 {
49208 }
49209 else
49210 {
49212 }
49213 }
49214 else if (
type == 64 ||
type == 215)
49215 {
49218 {
49221 }
49223 {
49225 }
49226 else
49227 {
49229 }
49230 }
49232 {
49235 {
49238 }
49240 {
49242 }
49243 else
49244 {
49246 }
49247 }
49248 else if (
type == 130)
49249 {
49252 {
49255 }
49257 {
49259 }
49260 else
49261 {
49263 }
49264 }
49265 }
49268 {
49269 if (
ai[1] == 0
f ||
ai[1] == 4
f ||
ai[1] == 8
f ||
ai[1] == 12
f ||
ai[1] == 16
f ||
ai[1] == 20
f ||
ai[1] == 24
f)
49270 {
49272 }
49274 }
49275 if (Main.player[
owner].ItemAnimationEndingOrEnded)
49276 {
49278 }
49281 {
49283 }
49285 {
49286 if (Main.rand.Next(5) == 0)
49287 {
49289 }
49291 Main.dust[
num].noGravity =
true;
49292 Main.dust[
num].velocity.X /= 2
f;
49293 Main.dust[
num].velocity.Y /= 2
f;
49295 Main.dust[
num].velocity.X /= 5
f;
49296 Main.dust[
num].velocity.Y /= 5
f;
49297 }
49299 {
49300 if (Main.rand.Next(5) == 0)
49301 {
49303 dust.noGravity = true;
49304 dust.velocity *= 1.4f;
49305 }
49306 if (Main.rand.Next(5) == 0)
49307 {
49309 }
49310 }
49311 else if (
type == 105)
49312 {
49313 if (Main.rand.Next(3) == 0)
49314 {
49319 obj2.velocity *= 0.2f;
49320 }
49321 if (Main.rand.Next(4) == 0)
49322 {
49327 obj4.velocity *= 0.5f;
49328 }
49329 }
49330 else if (
type == 153)
49331 {
49333 Main.dust[
num4].noGravity =
true;
49334 Main.dust[
num4].fadeIn = 1.25f;
49336 obj5.velocity *= 0.25f;
49337 }
49338 }
int whoAmI
The index of this Entity within its specific array. These arrays track the entities in the world....
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...
int damage
This will always be set in Projectile.NewProjectile based on the weapons damage and player stat modif...
float[] ai
An array with 3 slots used for any sort of data storage, which is occasionally synced to the server....
bool netUpdate
Set manually to true in M:Terraria.ModLoader.ModProjectile.AI once to make it sync its current F:Terr...
IEntitySource GetProjectileSource_FromThis()
float[] localAI
Acts like F:Terraria.Projectile.ai, but does not sync to the server. Many vanilla T:Terraria....
float knockBack
This will always be set in Projectile.NewProjectile based on the weapons knockback and player stat mo...
int type
The Projectile ID of this projectile. The Projectile ID is a unique number assigned to each Projectil...
float rotation
Rotation of the projectile. Radians not Degrees. Use T:Microsoft.Xna.Framework.MathHelper if you want...
static int NewProjectile(IEntitySource spawnSource, Vector2 position, Vector2 velocity, int Type, int Damage, float KnockBack, int Owner=-1, float ai0=0f, float ai1=0f, float ai2=0f)
This particular overload uses a Vector2 instead of X and Y to determine the actual spawn position and...