16674 {
16675
16676
16677
16678
16679
16680
16681
16682
16683
16684
16685
16686
16687
16688
16689
16690
16691
16692
16693
16694
16695
16696
16697
16698
16699
16700
16701
16702
16703
16704
16705
16706
16707
16708
16709
16710
16711
16712
16713
16714
16715
16716
16717
16718
16719
16720
16721
16722
16723
16724
16725
16726
16727
16728
16729
16730
16731
16732
16733
16734
16735
16736
16737
16738
16739
16740
16741
16742
16743
16744
16745
16746
16747
16748
16749
16750
16751
16752
16753
16754
16755
16756
16757
16758
16759
16760
16761
16762
16763
16764
16765
16766
16767
16768
16769
16770
16771
16772
16773
16774
16775
16776
16777
16778
16779
16780
16781
16782
16783
16784
16785
16786
16787
16788
16789
16790
16791
16792
16793
16794
16795
16796
16797
16798
16799
16800
16801
16802
16803
16804
16805
16806
16807
16808
16809
16810
16811
16812
16813
16814
16815
16816
16817
16818
16819
16820
16821
16822
16823
16824
16825
16826
16827
16828
16829
16830
16831
16832
16833
16834
16835
16836
16837
16838
16839
16840
16841
16842
16843
16844
16845
16846
16847
16848
16849
16850
16851
16852
16853
16854
16855
16856
16857
16858
16859
16860
16861
16862
16863
16864
16865
16866
16867
16868
16869
16870
16871
16872
16873
16874
16875
16876
16877
16878
16879
16880
16881
16882
16883
16884
16885
16886
16887
16888
16889
16890
16891
16892
16893
16894
16895
16896
16897
16898
16899
16900
16901
16902
16903
16904
16905
16906
16907
16908
16909
16910
16911
16912
16913
16914
16915
16916
16917
16918
16919
16920
16921
16922
16923
16924
16925
16926
16927
16928
16929
16930
16931
16932
16933
16934
16935
16936
16937
16938
16939
16940
16941
16942
16943
16944
16945
16946
16947
16948
16949
16950
16951
16952
16953
16954
16955
16956
16957
16958
16959
16960
16961
16962
16963
16964
16965
16966
16967
16968
16969
16970
16971
16972
16973
16974
16975
16976
16977
16978
16979
16980
16981
16982
16983
16984
16985
16986
16987
16988
16989
16990
16991
16992
16993
16994
16995
16996
16997
16998
16999
17000
17001
17002
17003
17004
17005
17006
17007
17008
17009
17010
17011
17012
17013
17014
17015
17016
17017
17018
17019
17020
17021
17022
17023
17024
17025
17026
17027
17028
17029
17030
17031
17032
17033
17034
17035
17036
17037
17038
17039
17040
17041
17042
17043
17044
17045
17046
17047
17048
17049
17050
17051
17052
17053
17054
17055
17056
17057
17058
17059
17060
17061
17062
17063
17064
17065
17066
17067
17068
17069
17070
17071
17072
17073
17074
17075
17076
17077
17078
17079
17080
17081
17082
17083
17084
17085
17086
17087
17088
17089
17090
17091
17092
17093
17094
17095
17096
17097
17098
17099
17100
17101
17102
17103
17104
17105
17106
17107
17108
17109
17110
17111
17112
17113
17114
17115
17116
17117
17118
17119
17120
17121
17122
17123
17124
17125
17126
17127
17128
17129
17130
17131
17132
17133
17134
17135
17136
17137
17138
17139
17140
17141
17142
17143
17144
17145
17146
17147
17148
17149
17150
17151
17152
17153
17154
17155
17156
17157
17158
17159
17160
17161
17162
17163
17164
17165
17166
17167
17168
17169
17170
17171
17172
17173
17174
17175
17176
17177
17178
17179
17180
17181
17182
17183
17184
17185
17186
17187
17188
17189
17190
17191
17192
17193
17194
17195
17196
17197
17198
17199
17200
17201
17202
17203
17204
17205
17206
17207
17208
17209
17210
17211
17212
17213
17214
17215
17216
17217
17218
17219
17220
17221
17222
17223
17224
17225
17226
17227
17228
17229
17230
17231
17232
17233
17234
17235
17236
17237
17238
17239
17240
17241
17242
17243
17244
17245
17246
17247
17248
17249
17250
17251
17252
17253
17254
17255
17256
17257
17258
17259
17260
17261
17262
17263
17264
17265
17266
17267
17268
17269
17270
17271
17272
17273
17274
17275
17276
17277
17278
17279
17280
17281
17282
17283
17284
17285
17286
17287
17288
17289
17290
17291
17292
17293
17294
17295
17296
17297
17298
17299
17300
17301
17302
17303
17304
17305
17306
17307
17308
17309
17310
17311
17312
17313
17314
17315
17316
17317
17318
17319
17320
17321
17322
17323
17324
17325
17326
17327
17328
17329
17330
17331
17332
17333
17334
17335
17336
17337
17338
17339
17340
17341
17342
17343
17344
17345
17346
17347
17348
17349
17350
17351
17352
17353
17354
17355
17356
17357
17358
17359
17360
17361
17362
17363
17364
17365
17366
17367
17368
17369
17370
17371
17372
17373
17374
17375
17376
17377
17378
17379
17380
17381
17382
17383
17384
17385
17386
17387
17388
17389
17390
17391
17392
17393
17394
17395
17396
17397
17398
17399
17400
17401
17402
17403
17404
17405
17406
17407
17408
17409
17410
17411
17412
17413
17414
17415
17416
17417
17418
17419
17420
17421
17422
17423
17424
17428 bool flag7 =
false;
17430 bool flag9 = flag8.HasValue && !
flag8.Value;
17433 {
17437 if (Main.projPet[
type])
17438 {
17441 {
17443 }
17444 }
17446 {
17448 if (Main.player[
owner].Bottom.Y >
base.Bottom.Y + 4
f)
17449 {
17451 }
17452 }
17454 {
17456 if (Main.player[
owner].Bottom.Y >
base.Bottom.Y + 4
f)
17457 {
17459 }
17460 }
17462 {
17464 }
17466 {
17468 }
17470 {
17472 }
17474 {
17476 }
17478 {
17480 }
17482 {
17484 }
17486 {
17488 }
17490 {
17492 }
17494 {
17495 case 663:
17496 case 665:
17497 case 667:
17498 case 677:
17499 case 678:
17500 case 679:
17501 case 688:
17502 case 689:
17503 case 690:
17504 case 691:
17505 case 692:
17506 case 693:
17508 break;
17509 case 759:
17511 break;
17512 case 1020:
17513 {
17516 break;
17517 }
17518 }
17520 {
17522 }
17524 {
17527 vector =
new Vector2(0.75
f, 0.75
f);
17528 }
17530 {
17533 }
17535 {
17538 vector =
new Vector2(0.75
f, 0.75
f);
17539 }
17541 {
17544 vector =
new Vector2(0.75
f, 0.75
f);
17545 }
17547 {
17550 vector =
new Vector2(0.75
f, 0.75
f);
17551 }
17553 {
17556 }
17558 {
17561 }
17562 else if (
type == 308)
17563 {
17566 }
17568 {
17571 }
17573 {
17577 }
17578 else if (
type == 669 ||
type == 706)
17579 {
17582 }
17583 else if (
type == 261 ||
type == 277)
17584 {
17587 }
17589 {
17592 }
17593 else if (
type == 514)
17594 {
17597 }
17599 {
17602 }
17604 {
17607 }
17609 {
17612 }
17614 {
17617 }
17618 else if (
type == 533 &&
ai[0] >= 6
f)
17619 {
17622 }
17623 else if (
type == 755 &&
ai[0] >= 0
f)
17624 {
17627 }
17628 else if (
type == 759)
17629 {
17631 {
17633 }
17635 {
17637 }
17638 }
17640 {
17643 }
17644 else if (
type == 617)
17645 {
17648 }
17649 else if (
type == 304)
17650 {
17653 }
17655 {
17658 }
17659 else if (
type == 931)
17660 {
17663 }
17668 {
17671 {
17674 {
17676 }
17677 }
17679 {
17681 {
17686 {
17688 }
17690 {
17692 }
17693 }
17695 {
17700 {
17702 }
17704 {
17706 }
17707 }
17708 else
17709 {
17714 {
17716 }
17718 {
17720 }
17721 }
17722 if (!Main.projPet[
type])
17723 {
17727 {
17729 {
17731 }
17733 {
17735 }
17737 position.Y = vector12.Y +
vector24.Y;
17739 }
17740 else
17741 {
17743 {
17745 }
17747 {
17749 }
17751 {
17753 }
17755 {
17757 }
17763 }
17764 }
17765 }
17766 else
17767 {
17770 {
17772 }
17774 {
17776 }
17778 {
17784 {
17786 }
17787 Vector2
zero = Vector2.Zero;
17793 {
17796 {
17797 break;
17798 }
17802 {
17804 }
17810 if (!Main.projPet[
type])
17811 {
17815 {
17817 {
17819 }
17821 {
17823 }
17825 position.Y = vector12.Y +
vector6.Y;
17827 }
17828 else
17829 {
17831 {
17833 }
17835 {
17837 }
17839 {
17841 }
17843 {
17845 }
17851 }
17852 }
17855 {
17857 }
17860 }
17863 {
17865 }
17867 {
17869 }
17870 if (!Main.projPet[
type])
17871 {
17875 {
17877 {
17879 }
17881 {
17883 }
17885 position.Y = vector12.Y +
vector8.Y;
17887 }
17888 else
17889 {
17891 {
17893 }
17895 {
17897 }
17899 {
17901 }
17903 {
17905 }
17911 }
17912 }
17913 }
17914 else
17915 {
17917 if (!Main.projPet[
type])
17918 {
17922 {
17924 {
17926 }
17928 {
17930 }
17932 position.Y = vector12.Y +
vector10.Y;
17934 }
17935 else
17936 {
17938 {
17940 }
17942 {
17944 }
17946 {
17948 }
17950 {
17952 }
17958 }
17959 }
17960 }
17961 }
17962 }
17964 {
17966 }
17968 {
17970 {
17976 {
17978 }
17979 if (
num2 > Main.maxTilesX)
17980 {
17981 num2 = Main.maxTilesX;
17982 }
17984 {
17986 }
17987 if (
num4 > Main.maxTilesY)
17988 {
17989 num4 = Main.maxTilesY;
17990 }
17993 {
17995 {
17997 {
17999 if (Main.netMode != 0)
18000 {
18001 NetMessage.SendData(17, -1, -1,
null, 0, i,
j);
18002 }
18003 }
18004 }
18005 }
18006 }
18008 {
18014 {
18016 }
18017 if (
num6 > Main.maxTilesX)
18018 {
18019 num6 = Main.maxTilesX;
18020 }
18022 {
18024 }
18025 if (
num8 > Main.maxTilesY)
18026 {
18027 num8 = Main.maxTilesY;
18028 }
18031 {
18033 {
18035 {
18037 if (Main.netMode != 0)
18038 {
18039 NetMessage.SendData(17, -1, -1,
null, 0,
k,
l);
18040 }
18041 }
18042 }
18043 }
18044 }
18046 {
18049 {
18052 }
18053 else if (
type == 434)
18054 {
18057 }
18058 else if (
type == 1020)
18059 {
18061 {
18063 }
18065 {
18067 }
18068 }
18069 else if (
type == 601)
18070 {
18071 if (Main.netMode != 2 &&
alpha > 0)
18072 {
18074 {
18076 }
18077 else
18078 {
18080 }
18081 }
18082 if (
owner == Main.myPlayer)
18083 {
18085 }
18088 }
18089 else if (
type == 985)
18090 {
18095 }
18096 else if (
type == 451)
18097 {
18102 }
18103 else if (
type == 645)
18104 {
18108 }
18109 else if (
type == 584)
18110 {
18113 {
18114 velocity.X = lastVelocity.X * -0.75f;
18116 }
18118 {
18119 velocity.Y = lastVelocity.Y * -0.75f;
18121 }
18123 {
18126 {
18128 }
18131 }
18132 }
18133 else if (
type == 532)
18134 {
18137 {
18138 velocity.X = lastVelocity.X * -0.75f;
18140 }
18142 {
18143 velocity.Y = lastVelocity.Y * -0.75f;
18145 }
18147 {
18150 {
18152 }
18156 }
18157 }
18158 else if (
type == 533)
18159 {
18163 {
18164 velocity.X = lastVelocity.X * (0
f -
num11);
18166 }
18168 {
18169 velocity.Y = lastVelocity.Y * (0
f -
num11) * 0.5
f;
18171 }
18173 {
18176 {
18178 }
18180 if (
ai[0] == 7
f && (
double)velocity.Y < -0.1)
18181 {
18182 velocity.Y += 0.1f;
18183 }
18184 if (
ai[0] >= 6
f &&
ai[0] < 9
f)
18185 {
18187 }
18189 }
18190 }
18191 else if (
type == 502)
18192 {
18196 {
18199 }
18200 else
18201 {
18203 {
18205 }
18207 {
18209 }
18210 }
18211 Vector2
spinningpoint = Utils.RotatedByRandom(
new Vector2(0
f, -3
f -
ai[0]), 3.1415927410125732);
18213 Vector2
vector11 =
default(Vector2);
18216 {
18217 int num16 = Dust.NewDust(
base.Center, 0, 0, 66, 0
f, 0
f, 0, Color.Transparent);
18218 Main.dust[
num16].position =
base.Center;
18221 center =
default(Vector2);
18224 Main.dust[
num16].noGravity =
true;
18225 Main.dust[
num16].scale = 1
f +
ai[0] / 3
f;
18226 }
18227 if (Main.myPlayer ==
owner)
18228 {
18242 }
18243 }
18244 else if (
type == 444)
18245 {
18247 {
18249 }
18251 {
18253 }
18255 }
18256 else if (
type == 617)
18257 {
18259 {
18261 }
18263 {
18265 }
18266 }
18268 {
18270 {
18274 }
18275 }
18276 else if (
type == 85)
18277 {
18280 }
18282 {
18284 {
18288 }
18289 }
18290 else if (
type == 851)
18291 {
18293 {
18295 }
18297 {
18299 }
18300 }
18301 else if (
type == 855)
18302 {
18304 {
18306 }
18308 {
18311 {
18312 velocity.Y *= 0.25f;
18313 }
18314 }
18315 }
18317 {
18319 {
18320 velocity.X = lastVelocity.X * -0.6f;
18321 }
18323 {
18324 velocity.Y = lastVelocity.Y * -0.6f;
18325 }
18326 }
18327 else if (
type == 861)
18328 {
18331 {
18333 }
18335 {
18336 velocity.X = lastVelocity.X *
num20;
18337 }
18339 {
18340 velocity.Y = lastVelocity.Y *
num20;
18341 }
18343 {
18345 }
18347 {
18349 }
18351 }
18353 {
18355 {
18357 {
18358 bool flag2 =
false;
18360 {
18362 velocity.X = lastVelocity.X * -1
f;
18363 }
18365 {
18367 velocity.Y = lastVelocity.Y * -1
f;
18368 }
18370 {
18378 {
18380 }
18381 }
18382 }
18383 }
18384 else if (
type == 604)
18385 {
18387 {
18389 }
18391 {
18393 }
18394 }
18395 else if (
type == 379)
18396 {
18398 {
18399 velocity.X = lastVelocity.X * -0.6f;
18400 }
18402 {
18403 velocity.Y = lastVelocity.Y * -0.6f;
18404 }
18405 }
18406 else if (
type == 491)
18407 {
18409 {
18411 }
18413 {
18414 velocity.X = lastVelocity.X * -1
f;
18415 }
18417 {
18418 velocity.Y = lastVelocity.Y * -1
f;
18419 }
18420 }
18422 {
18424 {
18425 velocity.X = lastVelocity.X * -0.9f;
18426 }
18428 {
18429 velocity.Y = lastVelocity.Y * -0.9f;
18430 }
18431 }
18433 {
18435 {
18436 velocity.X = lastVelocity.X * -0.4f;
18437 }
18439 {
18440 velocity.Y = lastVelocity.Y * -0.95f;
18441 }
18443 }
18444 else if (
type == 969)
18445 {
18447 {
18448 velocity.X = lastVelocity.X * -0.75f;
18449 }
18451 {
18452 velocity.Y = lastVelocity.Y * -0.75f;
18453 }
18454 }
18455 else if (
type == 681)
18456 {
18458 }
18459 else if (
type == 409)
18460 {
18462 {
18463 velocity.X = lastVelocity.X * -1
f;
18464 }
18466 {
18467 velocity.Y = lastVelocity.Y * -1
f;
18468 }
18469 }
18470 else if (
type == 254)
18471 {
18473 {
18474 velocity.X = lastVelocity.X * -1
f;
18475 }
18477 {
18478 velocity.Y = lastVelocity.Y * -1
f;
18479 }
18480 }
18481 else if (
type == 225)
18482 {
18485 {
18487 }
18489 {
18491 return;
18492 }
18497 {
18500 Vector2
vector14 = -Vector2.UnitY *
MathHelper.Lerp((
float)
nPC.height * 0.1f, (
float)
nPC.height * 0.5f, Utils.GetLerpValue(0
f, 300
f, t));
18503 }
18504 }
18505 else if (
type == 285)
18506 {
18509 {
18511 }
18513 {
18515 return;
18516 }
18518 {
18519 velocity.X = lastVelocity.X * -1
f;
18520 }
18522 {
18523 velocity.Y = lastVelocity.Y * -1
f;
18524 }
18527 {
18532 }
18533 }
18534 else if (
type == 931)
18535 {
18537 {
18538 velocity.X = lastVelocity.X * -1
f;
18539 }
18541 {
18542 velocity.Y = lastVelocity.Y * -1
f;
18543 }
18544 }
18545 else if (
type == 155)
18546 {
18548 {
18550 if (Main.netMode == 0)
18551 {
18552 Main.NewText(
networkText.ToString(),
byte.MaxValue, 240, 20);
18553 }
18554 else if (Main.netMode == 2)
18555 {
18557 }
18558 }
18561 {
18562 velocity.X = lastVelocity.X * -0.6f;
18563 }
18565 {
18566 velocity.Y = lastVelocity.Y * -0.6f;
18567 }
18568 }
18570 {
18572 {
18574 {
18576 }
18577 else
18578 {
18580 }
18583 }
18584 }
18586 {
18588 {
18590 {
18593 {
18595 }
18597 {
18599 }
18601 {
18603 }
18604 }
18606 {
18607 int[] array = new int[10];
18611 for (
int m = 0;
m < 200;
m++)
18612 {
18613 if (!Main.npc[
m].CanBeChasedBy(
this))
18614 {
18615 continue;
18616 }
18617 center = base.Center - Main.npc[
m].Center;
18620 {
18624 {
18625 break;
18626 }
18627 }
18628 }
18630 {
18637 }
18638 }
18639 }
18640 else if (
type == 94)
18641 {
18643 {
18645 }
18647 {
18649 }
18650 }
18651 else if (
type == 496)
18652 {
18654 {
18656 {
18658 }
18659 else
18660 {
18662 }
18663 }
18665 {
18667 {
18669 }
18670 else
18671 {
18673 }
18674 }
18675 }
18676 else if (
type == 311)
18677 {
18679 {
18682 }
18684 {
18687 }
18689 {
18691 }
18692 }
18693 else if (
type == 312)
18694 {
18696 {
18699 }
18701 {
18704 }
18705 }
18706 else if (
type == 522 ||
type == 620)
18707 {
18709 {
18711 }
18713 {
18715 }
18716 }
18717 else if (
type == 524)
18718 {
18721 {
18723 }
18725 {
18727 }
18728 }
18730 {
18732 {
18741 }
18742 }
18743 else if (
type == 281)
18744 {
18746 if (
ai[0] == -2
f ||
ai[0] == -3
f)
18747 {
18749 }
18751 {
18752 if (Main.myPlayer ==
owner)
18753 {
18754 int num29 = ((velocity.X > 0
f) ? 1 : 2);
18756 {
18758 }
18762 }
18763 }
18764 else
18765 {
18767 {
18769 }
18771 {
18773 }
18774 }
18775 }
18776 else if (
type == 290 ||
type == 294)
18777 {
18779 {
18782 }
18784 {
18787 }
18788 }
18790 {
18792 {
18794 }
18797 {
18799 }
18801 {
18803 }
18804 }
18805 else if (
type == 307 &&
ai[1] < 5
f)
18806 {
18809 {
18811 }
18813 {
18815 }
18816 }
18818 {
18820 {
18824 }
18826 {
18828 }
18829 }
18830 else if (
type == 1021)
18831 {
18833 {
18835 {
18839 }
18841 {
18843 }
18844 }
18846 {
18848 {
18849 velocity.X = lastVelocity.X * -0.75f;
18851 }
18852 else
18853 {
18855 }
18856 }
18857 }
18858 else if (
type == 1013)
18859 {
18862 float num32 = 0.95f;
18863 float num33 = 0.95f;
18865 {
18867 }
18869 {
18871 }
18873 {
18875 }
18877 {
18879 }
18881 {
18883 }
18885 {
18887 }
18888 bool flag4 =
false;
18890 {
18892 {
18894 }
18896 }
18898 {
18900 {
18902 }
18904 }
18906 {
18910 }
18912 {
18914 }
18916 {
18918 }
18919 }
18920 else if (
type == 727)
18921 {
18926 {
18930 if (
owner == Main.myPlayer)
18931 {
18932 int num38 = Main.rand.Next(3, 6);
18933 float num39 = Main.rand.NextFloat();
18935 {
18938 {
18940 }
18942 }
18943 }
18944 }
18946 {
18948 if (
owner == Main.myPlayer)
18949 {
18950 int num41 = Main.rand.Next(3, 6);
18951 float num42 = Main.rand.NextFloat();
18953 {
18956 {
18958 }
18960 }
18961 }
18962 }
18963 }
18964 else if (
type == 655)
18965 {
18967 {
18971 }
18973 {
18975 }
18976 }
18977 else if (
type == 36)
18978 {
18980 {
18985 {
18987 }
18989 {
18991 }
18992 }
18993 else
18994 {
18996 }
18997 }
18999 {
19001 {
19003 }
19005 {
19007 }
19008 }
19010 {
19012 {
19013 velocity.X = lastVelocity.X * -0.75f;
19014 }
19016 {
19017 velocity.Y = lastVelocity.Y * -0.7f;
19018 }
19019 }
19021 {
19023 }
19025 {
19028 {
19032 {
19034 {
19035 velocity.X *= 0.1f;
19036 }
19038 {
19039 velocity.Y *= 0.1f;
19040 }
19041 }
19042 }
19044 {
19046 }
19047 }
19049 {
19052 {
19054 {
19056 }
19058 {
19060 }
19061 }
19062 else
19063 {
19066 {
19069 }
19070 }
19073 }
19075 {
19077 {
19079 Vector2
normal =
default(Vector2);
19082 }
19085 {
19087 {
19089 }
19091 {
19093 }
19094 }
19095 else
19096 {
19099 {
19102 }
19103 }
19106 }
19108 {
19113 {
19114 case 15:
19116 break;
19117 case 253:
19119 break;
19120 }
19122 {
19125 }
19126 else
19127 {
19129 {
19131 {
19133 }
19134 }
19136 {
19138 }
19140 {
19142 }
19143 }
19144 }
19146 {
19148 {
19149 velocity.X = lastVelocity.X * -0.3f;
19150 }
19152 {
19153 velocity.Y = lastVelocity.Y * -0.3f;
19154 }
19155 }
19157 {
19159 {
19162 {
19164 {
19167 {
19168 Main.projectile[
num47].timeLeft = 2;
19169 }
19170 }
19171 }
19172 }
19174 {
19175 for (
int n = 0;
n < 10;
n++)
19176 {
19178 }
19181 }
19183 {
19184 velocity.X = lastVelocity.X * -0.1f;
19185 }
19187 {
19189 {
19190 velocity.X = lastVelocity.X * -0.1f;
19191 }
19192 }
19193 else if (
type == 870 &&
ai[1] == 0
f)
19194 {
19196 {
19199 }
19200 }
19201 else if (
type == 50)
19202 {
19204 {
19205 velocity.X = lastVelocity.X * -0.2f;
19206 }
19208 {
19209 velocity.Y = lastVelocity.Y * -0.2f;
19210 }
19211 }
19212 else if (
type == 185)
19213 {
19215 {
19216 velocity.X = lastVelocity.X * -0.9f;
19217 }
19219 {
19220 velocity.Y = lastVelocity.Y * -0.9f;
19221 }
19222 }
19223 else if (
type == 277)
19224 {
19226 {
19227 velocity.X = lastVelocity.X * -0.9f;
19228 }
19230 {
19231 velocity.Y = lastVelocity.Y * -0.9f;
19232 }
19233 }
19234 else if (
type != 480)
19235 {
19237 {
19239 {
19240 velocity.X = lastVelocity.X * -0.1f;
19241 }
19242 }
19243 else
19244 {
19246 {
19247 velocity.X = lastVelocity.X * -0.5f;
19248 }
19250 {
19251 velocity.Y = lastVelocity.Y * -0.5f;
19252 }
19253 }
19254 }
19255 }
19257 {
19259 {
19260 velocity.X = lastVelocity.X * -0.4f;
19262 {
19263 velocity.X *= 0.8f;
19264 }
19265 }
19267 {
19268 velocity.Y = lastVelocity.Y * -0.4f;
19270 {
19271 velocity.Y *= 0.8f;
19272 }
19273 }
19275 {
19279 }
19280 }
19282 {
19287 }
19288 else if (
type == 870)
19289 {
19291 {
19292 velocity.X = lastVelocity.X * -0.2f;
19293 }
19295 {
19296 velocity.Y = lastVelocity.Y * -0.2f;
19297 }
19298 }
19299 else
19300 {
19303 }
19304 }
19305 }
19306 }
19307 }
19308 }
19311 {
19317 {
19320 }
19322 }
19323 }
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 ...
static void BroadcastChatMessage(NetworkText text, Color color, int excludedPlayer=-1)
bool wet
The Entity is currently in water. Projectile: Affects movement speed and some projectiles die when ...
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.
float Distance(Vector2 Other)
Vector2 position
The position of this Entity in world coordinates.
int width
The width of this Entity's hitbox, in pixels.
Vector2 DirectionTo(Vector2 Destination)
int height
The height of this Entity's hitbox, in pixels.
static int TryPlacingPortal(Projectile theBolt, Vector2 velocity, Vector2 theCrashVelocity)
static ? bool[] ForcePlateDetection
If true for a given projectile type (F:Terraria.Projectile.type), then that projectile can trigger F:...
static bool[] FallingBlockDoesNotFallThroughPlatforms
If true for a given projectile type (F:Terraria.Projectile.type), then that projectile will not fall ...
static readonly SoundStyle Item115
static readonly SoundStyle Item10
static readonly SoundStyle Item114
static bool[] CrackedBricks
static NetworkText FromKey(string key, params object[] substitutions)
Creates a NetworkText object from a localization key and optional substitutions. The receiving client...
Represents text that will be sent over the network in multiplayer and displayed to the receiving user...
static bool TileCollideStyle(Projectile projectile, ref int width, ref int height, ref bool fallThrough, ref Vector2 hitboxCenterFrac)
static bool OnTileCollide(Projectile projectile, Vector2 oldVelocity)
This serves as the central class from which projectile-related functions are carried out....
int owner
The index of the player who owns this projectile. In Multiplayer, Clients "own" projectiles that they...
void UpdatePosition(Vector2 wetVelocity)
int aiStyle
Selects which vanilla code to use for the AI method. Vanilla projectile AI styles are enumerated in t...
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 penetrate
The remaining number of npc can this projectile hit before dying. (Or tile bounces)....
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 FindTargetWithLineOfSight(float maxRange=800f)
Finds the closest NPC to this projectile which can be targeted and which it has line of sight to.
bool friendly
If True, this projectile will hurt enemies (!F:Terraria.NPC.friendly) Defaults to false.
int type
The Projectile ID of this projectile. The Projectile ID is a unique number assigned to each Projectil...
bool tileCollide
If true, the projectile will collide with tiles, usually bouncing or killing the tile depending on M:...
void MakeBoulderOfEarthExplosion()
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...
bool hostile
If True, this projectile will hurt players and friendly NPCs (F:Terraria.NPC.friendly) Defaults to ...
bool trap
If true, this projectile was spawned by a trap tile.
void LightDisc_Bounce(Vector2 hitPoint, Vector2 normal)
void AI_015_HandleMovementCollision(ref Vector2 wetVelocity, ref Vector2 lastVelocity)
float scale
Scales how large the projectile will be drawn. Will also affect the hitbox (F:Terraria....
bool decidesManualFallThrough
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...