Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CommandForbiddenStorm()

void Terraria.Player.CommandForbiddenStorm ( )
inline

Definition at line 53409 of file Player.cs.

53410 {
53411 List<int> list = new List<int>();
53412 for (int i = 0; i < 1000; i++)
53413 {
53414 Projectile projectile = Main.projectile[i];
53415 if (projectile.active && projectile.type == 656 && projectile.owner == whoAmI)
53416 {
53417 list.Add(i);
53418 }
53419 }
53420 bool flag = StrayMethods.CanSpawnSandstormFriendly(MinionRestTargetPoint, 30, 30);
53421 bool num = MinionRestTargetPoint == Vector2.Zero;
53422 Vector2 center = base.Center;
53424 if (num)
53425 {
53426 endPoint = center;
53427 }
53428 int samplesToTake = 10;
53429 float samplingWidth = 60f;
53431 bool flag2 = false;
53432 float[] array = samples;
53433 for (int j = 0; j < array.Length; j++)
53434 {
53435 if (Math.Abs(array[j] - vectorTowardsTarget.Length()) < 10f)
53436 {
53437 flag2 = true;
53438 break;
53439 }
53440 }
53441 float num2 = 0f;
53442 for (int k = 0; k < samples.Length; k++)
53443 {
53444 if (samples[k] > num2)
53445 {
53446 num2 = samples[k];
53447 }
53448 }
53449 if (list.Count <= 1)
53450 {
53453 if (vector2.Length() > 0f)
53454 {
53455 for (float num3 = 0f; num3 < vector2.Length(); num3 += 15f)
53456 {
53457 Vector2 vector3 = center + vector2 * (num3 / vector2.Length());
53458 Dust obj = Main.dust[Dust.NewDust(vector3, 0, 0, 269)];
53459 obj.position = vector3;
53460 obj.fadeIn = 0.5f;
53461 obj.scale = 0.7f;
53462 obj.velocity *= 0.4f;
53463 obj.noLight = true;
53464 }
53465 }
53466 for (float num4 = 0f; num4 < (float)Math.PI * 2f; num4 += (float)Math.PI / 15f)
53467 {
53468 Dust obj2 = Main.dust[Dust.NewDust(vector, 0, 0, 269)];
53469 obj2.position = vector;
53470 obj2.fadeIn = 1f;
53471 obj2.scale = 0.3f;
53472 obj2.noLight = true;
53473 }
53474 }
53475 flag &= list.Count <= 1;
53476 flag = flag && flag2;
53477 if (flag)
53478 {
53479 flag = CheckMana(20, pay: true);
53480 if (flag)
53481 {
53483 }
53484 }
53485 if (!flag)
53486 {
53487 return;
53488 }
53489 foreach (int item in list)
53490 {
53491 Projectile projectile2 = Main.projectile[item];
53492 if (!(projectile2.ai[0] >= 780f))
53493 {
53494 projectile2.ai[0] = 780f + projectile2.ai[0] % 60f;
53495 projectile2.netUpdate = true;
53496 }
53497 }
53498 int damage = (int)(20f * (1f + magicDamage + minionDamage - 2f));
53500 _ = Main.projectile[Projectile.NewProjectile(projectileSource_SetBonus, MinionRestTargetPoint, Vector2.Zero, 656, damage, 0f, Main.myPlayer)];
53501 }
static double Abs(double value)
const double PI
Definition Math.cs:16
bool CheckMana(int amount, bool pay=false, bool blockQuickMana=false)
Definition Player.cs:53313
IEntitySource GetProjectileSource_SetBonus(int projectileSourceId)
Definition Player.cs:9297
float manaRegenDelay
Definition Player.cs:1577
float maxRegenDelay
Definition Player.cs:1123
Vector2 MinionRestTargetPoint
Definition Player.cs:2559
float minionDamage
Definition Player.cs:2039
float magicDamage
Definition Player.cs:2025

References System.Math.Abs(), Terraria.Entity.active, Terraria.Collision.AimingLaserScan(), System.array, Terraria.StrayMethods.CanSpawnSandstormFriendly(), Terraria.Main.dust, System.item, System.list, Terraria.Main.myPlayer, Terraria.Dust.NewDust(), Terraria.Projectile.NewProjectile(), System.obj, Terraria.Projectile.owner, System.Math.PI, Terraria.Main.projectile, Terraria.Projectile.type, and Microsoft.Xna.Framework.Vector2.Zero.