71853 {
71854
71855
71856
71857
71858
71859
71860
71861
71862
71863
71864
71865
71866
71867
71868
71869
71870
71871
71872
71873
71874
71875
71876
71877
71878
71879
71880
71881
71882
71883
71884
71885
71886
71887
71888
71889
71890
71891
71892
71893
71894
71895
71896
71897
71898
71899
71900
71901
71902
71903
71904
71905
71906
71907
71908
71909
71910
71911
71912
71913
71914
71915
71916
71917
71918
71919
71920
71921
71922
71923
71924
71925
71926
71927
71928
71929
71930
71931
71932
71933
71934
71935
71936
71937
71938
71939
71940
71941
71942
71943
71944
71945
71946
71947
71948
71949
71950
71951
71952
71953
71954
71955
71956
71957
71958
71959
71960
71961
71962
71963
71964
71965
71966
71967
71968
71969
71970
71971
71972
71973
71974
71975
71976
71977
71978
71979
71980
71981
71982
71983
71984
71985
71986
71987
71988
71989
71990
71991
71992
71993
71994
71995
71996
71997
71998
71999
72000
72001
72002
72003
72004
72005
72006
72007
72008
72009
72010
72011
72012
72013
72014
72015
72016
72017
72018
72019
72020
72021
72022
72023
72024
72025
72026
72027
72028
72029
72030
72031
72032
72033
72034
72035
72036
72037
72038
72039
72040
72041
72042
72043
72044
72045
72046
72047
72048
72049
72050
72051
72052
72053
72054
72055
72056
72057
72058
72059
72060
72061
72062
72063
72064
72065
72066
72067
72068
72069
72070
72071
72072
72073
72074
72075
72076
72077
72078
72079
72080
72081
72082
72083
72084
72085
72086
72087
72088
72089
72090
72091
72092
72093
72094
72095
72096
72097
72098
72099
72100
72101
72102
72103
72104
72105
72106
72107
72108
72109
72110
72111
72112
72113
72114
72115
72116
72117
72118
72119
72120
72121
72122
72123
72124
72125
72126
72127
72128
72129
72130
72131
72132
72133
72134
72135
72136
72137
72138
72139
72140
72141
72142
72143
72144
72145
72146
72147
72148
72149
72150
72151
72152
72153
72154
72155
72156
72157
72158
72159
72160
72161
72162
72163
72164
72165
72166
72167
72168
72169
72170
72171
72172
72173
72174
72175
72176
72177
72178
72179
72180
72181
72182
72183
72184
72185
72186
72187
72188
72189
72190
72191
72192
72193
72194
72195
72196
72197
72198
72199
72200
72201
72202
72203
72204
72205
72206
72207
72208
72209
72210
72211
72212
72213
72214
72215
72216
72217
72218
72219
72220
72221
72222
72223
72224
72225
72226
72227
72228
72229
72230
72231
72232
72233
72234
72235
72236
72237
72238
72239
72240
72241
72242
72243
72244
72245
72246
72247
72248
72249
72250
72251
72252
72253
72254
72255
72256
72257
72258
72259
72260
72261
72262
72263
72264
72265
72266
72267
72268
72269
72270
72271
72272
72273
72274
72275
72276
72277
72278
72279
72280
72281
72282
72283
72284
72285
72286
72287
72288
72289
72290
72291
72292
72293
72294
72295
72296
72297
72298
72299
72300
72301
72302
72303
72304
72305
72306
72307
72308
72309
72310
72311
72312
72313
72314
72315
72316
72317
72318
72319
72320
72321
72322
72323
72324
72325
72326
72327
72328
72329
72330
72331
72332
72333
72334
72335
72336
72337
72338
72339
72340
72341
72342
72343
72344
72345
72346
72347
72348
72349
72350
72351
72352
72353
72354
72355
72356
72357
72358
72359
72360
72361
72362
72363
72364
72365
72366
72367
72368
72369
72370
72371
72372
72373
72374
72375
72376
72377
72378
72379
72380
72381
72382
72383
72384
72385
72386
72387
72388
72389
72390
72391
72392
72393
72394
72395
72396
72397
72398
72399
72400
72401
72402
72403
72404
72405
72406
72407
72408
72409
72410
72411
72412
72413
72414
72415
72416
72417
72418
72419
72420
72421
72422
72423
72424
72425
72426
72427
72428
72429
72430
72431
72432
72433
72434
72435
72436
72437
72438
72439
72440
72441
72442
72443
72444
72445
72446
72447
72448
72449
72450
72451
72452
72453
72454
72455
72456
72457
72458
72459
72460
72461
72462
72463
72464
72465
72466
72467
72468
72469
72470
72471
72472
72473
72474
72475
72476
72477
72478
72479
72480
72481
72482
72483
72484
72485
72486
72487
72488
72489
72490
72491
72492
72493
72494
72495
72496
72497
72498
72499
72500
72501
72502
72503
72504
72505
72506
72507
72508
72509
72510
72511
72512
72513
72514
72515
72516
72517
72518
72519
72520
72521
72522
72523
72524
72525
72526
72527
72528
72529
72530
72531
72532
72533
72534
72535
72536
72537
72538
72539
72540
72541
72542
72543
72544
72545
72546
72547
72548
72549
72550
72551
72552
72553
72554
72555
72556
72557
72558
72559
72560
72561
72562
72563
72564
72565
72566
72567
72568
72569
72570
72571
72572
72573
72574
72575
72576
72577
72578
72579
72580
72581
72582
72583
72584
72585
72586
72587
72588
72589
72590
72591
72592
72593
72594
72595
72596
72597
72598
72599
72600
72601
72602
72603
72604
72605
72606
72607
72608
72609
72610
72611
72612
72613
72614
72615
72616
72617
72618
72619
72620
72621
72622
72623
72624
72625
72626
72627
72628
72629
72630
72631
72632
72633
72634
72635
72636
72637
72638
72639
72640
72641
72642
72643
72644
72645
72646
72647
72648
72649
72650
72651
72652
72653
72654
72655
72656
72657
72658
72659
72660
72661
72662
72663
72664
72665
72666
72667
72668
72669
72670
72671
72672
72673
72674
72675
72676
72677
72678
72679
72680
72681
72682
72683
72684
72685
72686
72687
72688
72689
72690
72691
72692
72693
72694
72695
72696
72699 Vector2
vector = player.RotatedRelativePoint(player.MountedCenter);
72703 {
72707 {
72709 }
72711 {
72713 }
72715 {
72717 }
72723 {
72726 }
72729 {
72733 {
72735 }
72736 }
72738 {
72741 {
72743 }
72744 }
72745 if (
ai[1] == 1
f &&
ai[0] != 1
f)
72746 {
72750 for (int i = 0; i < 2; i++)
72751 {
72754 obj.velocity *= 0.66f;
72755 Main.dust[
num66].noGravity =
true;
72756 Main.dust[
num66].scale = 1.4f;
72757 }
72758 }
72760 {
72761 if (player.channel && player.CheckMana(player.inventory[player.selectedItem], -1,
pay:
true) && !player.noItems && !player.CCed)
72762 {
72763 float num77 = player.inventory[player.selectedItem].shootSpeed *
scale;
72765 Vector2 value = Main.screenPosition +
new Vector2((
float)Main.mouseX, (
float)Main.mouseY) -
vector23;
72766 if (player.gravDir == -1
f)
72767 {
72768 value.Y = (float)(Main.screenHeight - Main.mouseY) + Main.screenPosition.Y -
vector23.Y;
72769 }
72770 Vector2
vector34 = Vector2.Normalize(value);
72772 {
72774 }
72777 {
72779 }
72784 for (
int j = 0;
j < 2;
j++)
72785 {
72786 vector23 = base.Center +
new Vector2((
float)Main.rand.Next(-
num3,
num3 + 1), (
float)Main.rand.Next(-
num3,
num3 + 1));
72790 {
72792 }
72794 }
72795 }
72796 else
72797 {
72799 }
72800 }
72801 }
72803 {
72805 {
72808 }
72811 {
72813 }
72815 {
72818 {
72820 }
72821 Vector3
val =
new Vector3(0
f, 1
f, 0.7
f);
72822 Vector3
value5 =
default(Vector3);
72825 if (Vector2.Distance(
vector,
base.Center) >= 30
f)
72826 {
72830 DelegateMethods.v3_1 =
vector35 * 0.8f;
72831 Utils.PlotTileLine(
base.Center -
vector36,
base.Center, 8
f, DelegateMethods.CastLightOpen);
72832 }
72834 }
72835 if (Main.myPlayer ==
owner)
72836 {
72838 {
72840 }
72841 if (!player.channel || player.noItems || player.CCed)
72842 {
72844 }
72846 {
72848 Vector2
value6 = Main.screenPosition +
new Vector2((
float)Main.mouseX, (
float)Main.mouseY) -
vector37;
72849 if (player.gravDir == -1
f)
72850 {
72851 value6.Y = (float)(Main.screenHeight - Main.mouseY) + Main.screenPosition.Y -
vector37.Y;
72852 }
72853 if (Main.tile[
Player.tileTargetX,
Player.tileTargetY].active())
72854 {
72857 }
72860 {
72861 value6 = -Vector2.UnitY;
72862 }
72865 {
72867 }
72868 int tileBoost = player.inventory[player.selectedItem].tileBoost;
72869 int num6 = -Player.tileRangeX - tileBoost + 1;
72870 int num7 = Player.tileRangeX + tileBoost - 1;
72871 int num8 = -Player.tileRangeY - tileBoost;
72872 int num9 = Player.tileRangeY + tileBoost - 1;
72874 bool flag7 =
false;
72876 {
72878 }
72880 {
72882 }
72884 {
72886 }
72888 {
72890 }
72892 {
72896 {
72898 }
72900 {
72902 }
72904 {
72906 }
72908 {
72910 }
72912 }
72914 {
72916 }
72918 }
72919 }
72920 }
72922 {
72926 {
72928 }
72930 {
72932 }
72933 bool flag8 =
false;
72935 if (
ai[0] == 80
f ||
ai[0] == 180
f || (
ai[0] > 180
f &&
ai[0] % 20
f == 0
f))
72936 {
72938 }
72942 {
72944 }
72947 {
72949 }
72951 {
72953 }
72955 {
72957 {
72959 }
72961 float num15 = player.inventory[player.selectedItem].shootSpeed *
scale;
72963 Vector2
value7 = Main.screenPosition +
new Vector2((
float)Main.mouseX, (
float)Main.mouseY) -
vector39;
72964 if (player.gravDir == -1
f)
72965 {
72966 value7.Y = (float)(Main.screenHeight - Main.mouseY) + Main.screenPosition.Y -
vector39.Y;
72967 }
72970 {
72972 }
72975 {
72977 }
72979 }
72981 {
72985 {
72987 }
72988 }
72990 {
72994 for (
int k = 0;
k <
num13 + 1;
k++)
72995 {
72997 float num17 = 0.4f;
72999 {
73002 }
73003 Vector2
vector4 =
vector3 + ((float)Main.rand.NextDouble() * ((float)
Math.PI * 2
f)).ToRotationVector2() * (12
f - (float)(
num13 * 2));
73006 Main.dust[
num18].noGravity =
true;
73008 Main.dust[
num18].customData = player;
73009 }
73010 }
73012 {
73016 for (
int l = 0;
l < 2;
l++)
73017 {
73019 float num20 = 0.35f;
73021 {
73024 }
73025 float num21 = Main.rand.NextFloatDirection();
73030 Main.dust[
num24].noGravity =
true;
73032 Main.dust[
num24].customData = player;
73033 Main.dust[
num24].fadeIn = 0.5f;
73034 }
73035 }
73037 {
73039 flag11 = !
flag8 || player.CheckMana(player.inventory[player.selectedItem], -1,
pay:
true);
73040 if (player.channel &&
flag11 && !player.noItems && !player.CCed)
73041 {
73043 {
73047 {
73049 }
73051 int num26 =
NewProjectile(
GetProjectileSource_FromThis(),
center.X,
center.Y,
vector7.X,
vector7.Y, 461,
num25,
knockBack,
owner, 0
f,
whoAmI);
73054 }
73056 {
73057 Projectile projectile = Main.projectile[(int)
ai[1]];
73058 if (!projectile.active || projectile.type != 461)
73059 {
73061 return;
73062 }
73063 }
73064 else
73065 {
73068 {
73070 }
73071 if (
ai[0] <= 50
f &&
ai[0] % 10
f == 0
f)
73072 {
73074 }
73075 if (
ai[0] >= 80
f &&
ai[0] < 180
f &&
ai[0] % 30
f == 0
f)
73076 {
73078 }
73080 {
73087 {
73089 }
73092 NewProjectile(
GetProjectileSource_FromThis(),
vector8.X,
vector8.Y,
vector9.X,
vector9.Y,
num27,
num30,
knockBack,
owner, 0
f,
num29);
73093 }
73094 }
73095 }
73096 else
73097 {
73099 }
73100 }
73101 }
73103 {
73106 {
73108 }
73110 {
73112 }
73113 damage = (int)player.GetTotalDamage(
DamageClass.
Magic).ApplyTo(player.inventory[player.selectedItem].damage);
73118 {
73120 }
73124 {
73126 }
73128 {
73131 if (Main.myPlayer ==
owner)
73132 {
73133 float num33 = player.inventory[player.selectedItem].shootSpeed *
scale;
73135 Vector2
value8 = Main.screenPosition +
new Vector2((
float)Main.mouseX, (
float)Main.mouseY) -
vector10;
73136 if (player.gravDir == -1
f)
73137 {
73138 value8.Y = (float)(Main.screenHeight - Main.mouseY) + Main.screenPosition.Y -
vector10.Y;
73139 }
73142 {
73143 value9 = -Vector2.UnitY;
73144 }
73148 {
73150 }
73152 }
73153 }
73155 int num35 = ((!(
ai[0] < 120
f)) ? 1 : 4);
73157 {
73160 {
73162 }
73163 }
73165 {
73169 {
73171 }
73172 }
73174 {
73175 bool flag2 =
false;
73176 flag2 = !
flag13 || player.CheckMana(player.inventory[player.selectedItem], -1,
pay:
true);
73177 if (player.channel &&
flag2 && !player.noItems && !player.CCed)
73178 {
73180 {
73184 {
73186 }
73188 for (
int m = 0;
m < 6;
m++)
73189 {
73190 NewProjectile(
GetProjectileSource_FromThis(),
center2.X,
center2.Y,
vector11.X,
vector11.Y, 632,
num36,
knockBack,
owner,
m,
whoAmI);
73191 }
73193 }
73194 }
73195 else
73196 {
73198 }
73199 }
73200 }
73202 {
73205 {
73207 }
73209 {
73211 }
73214 {
73217 }
73218 if (Main.myPlayer ==
owner)
73219 {
73220 if (player.channel && !player.noItems && !player.CCed)
73221 {
73223 if (player.inventory[player.selectedItem].shoot ==
type)
73224 {
73225 num37 = player.inventory[player.selectedItem].shootSpeed *
scale;
73226 }
73227 Vector2
vec = Main.MouseWorld -
vector;
73230 {
73231 vec = Vector2.UnitX * (float)player.direction;
73232 }
73235 {
73237 }
73239 }
73240 else
73241 {
73243 }
73244 }
73247 if (Main.rand.Next(3) == 0)
73248 {
73250 Main.dust[
num38].noGravity =
true;
73253 }
73254 }
73256 {
73259 {
73261 }
73263 {
73265 }
73268 {
73271 }
73272 if (Main.myPlayer ==
owner)
73273 {
73274 if (player.channel && !player.noItems && !player.CCed)
73275 {
73277 if (player.inventory[player.selectedItem].shoot ==
type)
73278 {
73279 num39 = player.inventory[player.selectedItem].shootSpeed *
scale;
73280 }
73283 if (
vec2.HasNaNs())
73284 {
73285 vec2 = Vector2.UnitX * (float)player.direction;
73286 }
73289 {
73291 }
73293 }
73294 else
73295 {
73297 }
73298 }
73301 if (Main.rand.Next(3) == 0)
73302 {
73304 Main.dust[
num40].noGravity =
true;
73307 }
73308 }
73310 {
73315 {
73317 }
73319 num23 = Main.rand.NextFloatDirection() * ((float)
Math.PI * 2
f) * 0.05f;
73322 {
73325 }
73326 if (Main.myPlayer ==
owner)
73327 {
73328 if (player.channel && !player.noItems && !player.CCed)
73329 {
73331 if (player.inventory[player.selectedItem].shoot ==
type)
73332 {
73333 num41 = player.inventory[player.selectedItem].shootSpeed;
73334 }
73337 if (
vec3.HasNaNs())
73338 {
73339 vec3 = Vector2.UnitX * (float)player.direction;
73340 }
73343 {
73345 }
73347 }
73348 else
73349 {
73351 }
73352 }
73353 DelegateMethods.v3_1 =
new Vector3(0.5
f, 0.5
f, 0.5
f);
73354 Utils.PlotTileLine(
base.Center -
velocity,
base.Center +
velocity.SafeNormalize(Vector2.Zero) * 80
f, 16
f, DelegateMethods.CastLightOpen);
73355 }
73357 {
73360 if (Main.myPlayer ==
owner &&
ai[0] == 1
f)
73361 {
73362 float num42 = player.inventory[player.selectedItem].shootSpeed *
scale;
73364 Vector2
value10 = Main.screenPosition +
new Vector2((
float)Main.mouseX, (
float)Main.mouseY) -
vector15;
73365 if (player.gravDir == -1
f)
73366 {
73367 value10.Y = (float)(Main.screenHeight - Main.mouseY) + Main.screenPosition.Y -
vector15.Y;
73368 }
73371 {
73373 }
73376 {
73378 }
73385 {
73387 }
73389 }
73391 {
73393 }
73394 }
73396 {
73397 if (Main.netMode != 2 &&
localAI[0] == 0
f)
73398 {
73400 }
73402 {
73404 }
73407 {
73409 }
73411 {
73413 }
73414 float num46 = ((
localAI[0].ToRotationVector2().X >= 0
f) ? 1 : (-1));
73416 {
73418 }
73420 spinningpoint6.Y *= (float)
Math.Sin(
ai[1]);
73422 {
73423 spinningpoint6.Y *= -1
f;
73424 }
73428 {
73430 }
73431 else
73432 {
73434 }
73435 }
73437 {
73440 {
73442 }
73446 {
73448 }
73450 {
73452 }
73454 {
73456 }
73460 bool flag3 =
false;
73463 {
73467 {
73469 }
73470 }
73473 {
73477 {
73479 }
73480 }
73482 {
73485 {
73487 }
73488 }
73490 {
73491 bool canShoot = player.channel && player.HasAmmo(player.inventory[player.selectedItem],
canUse:
true) && !player.noItems && !player.CCed;
73494 int Damage = player.GetWeaponDamage(player.inventory[player.selectedItem]);
73495 float KnockBack = player.inventory[player.selectedItem].knockBack;
73497 {
73500 KnockBack = player.GetWeaponKnockback(player.inventory[player.selectedItem],
KnockBack);
73501 float num51 = player.inventory[player.selectedItem].shootSpeed *
scale;
73503 Vector2
value11 = Main.screenPosition +
new Vector2((
float)Main.mouseX, (
float)Main.mouseY) -
vector18;
73504 if (player.gravDir == -1
f)
73505 {
73506 value11.Y = (float)(Main.screenHeight - Main.mouseY) + Main.screenPosition.Y -
vector18.Y;
73507 }
73510 {
73512 }
73516 {
73518 }
73520 for (
int n = 0;
n < 1;
n++)
73521 {
73525 {
73527 }
73529 }
73531 {
73535 {
73539 {
73541 }
73543 }
73544 }
73545 }
73546 else
73547 {
73549 }
73550 }
73551 }
73553 {
73556 {
73558 }
73564 bool flag4 =
false;
73567 {
73571 if (
num80 % 7 == 0)
73572 {
73574 }
73576 }
73583 {
73587 {
73589 }
73590 }
73592 {
73595 {
73597 }
73598 }
73600 {
73601 bool canShoot2 = player.channel && player.HasAmmo(player.inventory[player.selectedItem],
canUse:
true) && !player.noItems && !player.CCed;
73604 int Damage2 = player.GetWeaponDamage(player.inventory[player.selectedItem]);
73605 float KnockBack2 = player.inventory[player.selectedItem].knockBack;
73607 {
73609 }
73611 {
73615 float num58 = player.inventory[player.selectedItem].shootSpeed *
scale;
73617 Vector2
value2 = Main.screenPosition +
new Vector2((
float)Main.mouseX, (
float)Main.mouseY) -
vector19;
73618 if (player.gravDir == -1
f)
73619 {
73620 value2.Y = (float)(Main.screenHeight - Main.mouseY) + Main.screenPosition.Y -
vector19.Y;
73621 }
73624 {
73626 }
73630 {
73632 }
73635 {
73639 {
73641 }
73644 {
73646 {
73649 {
73651 }
73653 }
73654 }
73656 {
73657 NewProjectile(
projectileSource_Item_WithPotentialAmmo2,
vector19.X,
vector19.Y,
spinningpoint2.X,
spinningpoint2.Y,
projToShoot2,
Damage2,
KnockBack2,
owner,
num57, 1
f);
73658 }
73659 }
73660 }
73661 else
73662 {
73664 }
73665 }
73666 Vector2
vector21 = base.Center +
velocity.ToRotation().ToRotationVector2() * 40
f;
73668 Color color = Main.hslToRgb(
ai[0] / 90
f % 1
f, 1
f, 0.5
f);
73669 ((Color)(
ref color)).A = 120;
73671 Dust dust = Dust.NewDustPerfect(
vector21,
num61, Vector2.Zero);
73672 dust.color = color;
73673 dust.scale = 0.6f;
73674 dust.fadeIn = 0.9f;
73675 dust.noGravity = true;
73677 dust2.color = color;
73678 dust2.scale = 0.6f;
73679 dust2.fadeIn = 0.7f;
73680 dust2.noGravity = true;
73681 dust2.velocity = -
velocity.RotatedBy(2.094395160675049) / 10
f;
73683 dust3.color = color;
73684 dust3.scale = 0.6f;
73685 dust3.fadeIn = 0.7f;
73686 dust3.noGravity = true;
73687 dust3.velocity = -
velocity.RotatedBy(-2.094395160675049) / 10
f;
73689 {
73693 dust4.color = color;
73694 dust4.scale = 0.6f;
73695 dust4.fadeIn = 0.9f;
73696 dust4.velocity *=
num62;
73697 dust4.noGravity = true;
73700 dust5.color = color;
73701 dust5.scale = 0.6f;
73702 dust5.fadeIn = 0.9f;
73703 dust5.velocity *=
num62;
73704 dust5.noGravity = true;
73707 dust6.color = color;
73708 dust6.scale = 0.6f;
73709 dust6.fadeIn = 0.9f;
73710 dust6.velocity *=
num62;
73711 dust6.noGravity = true;
73712 }
73713 }
73715 {
73718 {
73720 }
73724 {
73726 }
73728 {
73730 }
73732 {
73734 }
73738 bool flag5 =
false;
73740 {
73744 }
73745 bool canShoot3 = player.channel && player.HasAmmo(player.inventory[player.selectedItem],
canUse:
true) && !player.noItems && !player.CCed;
73747 {
73749 }
73751 {
73754 {
73756 }
73758 }
73759 player.phantasmTime = 2;
73761 {
73764 int Damage3 = player.GetWeaponDamage(player.inventory[player.selectedItem]);
73765 float KnockBack3 = player.inventory[player.selectedItem].knockBack;
73767 {
73771 float num67 = player.inventory[player.selectedItem].shootSpeed *
scale;
73773 Vector2
value3 = Main.screenPosition +
new Vector2((
float)Main.mouseX, (
float)Main.mouseY) -
vector24;
73774 if (player.gravDir == -1
f)
73775 {
73776 value3.Y = (float)(Main.screenHeight - Main.mouseY) + Main.screenPosition.Y -
vector24.Y;
73777 }
73780 {
73782 }
73785 {
73787 }
73790 {
73793 {
73795 }
73798 Main.projectile[
num69].noDropItem =
true;
73799 }
73800 }
73801 else
73802 {
73804 }
73805 }
73806 }
73808 {
73811 {
73813 }
73815 int itemAnimationMax = player.itemAnimationMax;
73817 bool flag6 =
false;
73819 {
73820 ai[1] = itemAnimationMax;
73822 }
73823 bool canShoot4 = player.channel && player.HasAmmo(player.inventory[player.selectedItem],
canUse:
true) && !player.noItems && !player.CCed;
73825 {
73827 }
73829 {
73832 {
73834 }
73836 }
73838 {
73841 int Damage4 = player.GetWeaponDamage(player.inventory[player.selectedItem]);
73842 float KnockBack4 = player.inventory[player.selectedItem].knockBack;
73844 float num71 = 1.5f;
73846 {
73851 {
73853 }
73854 if (++player.phantomPhoneixCounter >= 3)
73855 {
73856 player.phantomPhoneixCounter = 0;
73863 }
73864 float num72 = player.inventory[player.selectedItem].shootSpeed *
scale;
73866 Vector2
value4 = Main.screenPosition +
new Vector2((
float)Main.mouseX, (
float)Main.mouseY) -
vector28;
73867 if (player.gravDir == -1
f)
73868 {
73869 value4.Y = (float)(Main.screenHeight - Main.mouseY) + Main.screenPosition.Y -
vector28.Y;
73870 }
73873 {
73875 }
73878 {
73880 }
73883 {
73887 {
73889 }
73892 Main.projectile[
num74].noDropItem =
true;
73893 }
73894 }
73895 else
73896 {
73898 }
73899 }
73900 }
73906 player.heldProj =
whoAmI;
73907 player.SetDummyItemTime(
num12);
73910 {
73911 Vector2
vector32 = Main.OffsetsPlayerOnhand[player.bodyFrame.Y / 56] * 2
f;
73912 if (player.direction != 1)
73913 {
73914 vector32.X = (float)player.bodyFrame.Width -
vector32.X;
73915 }
73916 if (player.gravDir != 1
f)
73917 {
73918 vector32.Y = (float)player.bodyFrame.Height -
vector32.Y;
73919 }
73920 vector32 -=
new Vector2((
float)(player.bodyFrame.Width - player.width), (
float)(player.bodyFrame.Height - 42)) / 2
f;
73922 }
73924 {
73925 position.Y += player.gravDir * 2
f;
73926 }
73928 {
73929 position.Y += player.gravDir * 2
f;
73930 }
73932 {
73934 {
73936 obj4.noGravity = true;
73937 obj4.velocity *= 2
f;
73938 obj4.velocity +=
localAI[0].ToRotationVector2();
73939 obj4.fadeIn = 1.5f;
73940 }
73943 {
73944 if (Main.rand.Next(4) == 0)
73945 {
73948 obj5.noGravity = true;
73949 obj5.fadeIn = 0.5f;
73950 obj5.velocity +=
localAI[0].ToRotationVector2();
73951 obj5.noLight = true;
73952 }
73953 }
73954 }
73956 {
73957 player.itemAnimation =
num12 - (int)
ai[0];
73958 }
73959 }
static SlotId PlaySound(in SoundStyle? style, Vector2? position=null, SoundUpdateCallback? updateCallback=null)
Attempts to play a sound style with the provided sound style (if it's not null), and returns a valid ...
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.
static readonly SoundStyle Item1
static readonly SoundStyle Item132
static readonly SoundStyle Item91
static readonly SoundStyle Item36
static readonly SoundStyle Item5
static readonly SoundStyle Item156
static readonly SoundStyle Item15
static readonly SoundStyle Item116
T:Terraria.ModLoader.DamageClass is used to determine the application of item effects,...
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...
int alpha
How transparent to draw this projectile. 0 to 255. 255 is completely transparent. ExampleBulletsets...
IEntitySource GetProjectileSource_FromThis()
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....
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...
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.
float scale
Scales how large the projectile will be drawn. Will also affect the hitbox (F:Terraria....
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...
This object encapsulates context information about the source of a particular spawning event of an It...