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

◆ SpawnHallucination()

void Terraria.Player.SpawnHallucination ( Item item)
inlineprivate

Definition at line 13370 of file Player.cs.

13371 {
13372 if (whoAmI != Main.myPlayer)
13373 {
13374 return;
13375 }
13376 insanityShadowCooldown = Utils.Clamp(insanityShadowCooldown - 1, 0, 100);
13377 if (insanityShadowCooldown > 0)
13378 {
13379 return;
13380 }
13381 insanityShadowCooldown = Main.rand.Next(20, 101);
13382 float num = 500f;
13383 int damage = 18;
13385 for (int i = 0; i < 200; i++)
13386 {
13387 NPC nPC = Main.npc[i];
13388 if (nPC.CanBeChasedBy(this) && !(Distance(nPC.Center) > num) && Collision.CanHitLine(position, width, height, nPC.position, nPC.width, nPC.height))
13389 {
13391 }
13392 }
13393 if (_hallucinationCandidates.Count != 0)
13394 {
13395 Projectile.RandomizeInsanityShadowFor(Main.rand.NextFromCollection(_hallucinationCandidates), isHostile: false, out var spawnposition, out var spawnvelocity, out var ai, out var ai2);
13396 Projectile.NewProjectile(new EntitySource_ItemUse(this, item), spawnposition, spawnvelocity, 964, damage, 0f, whoAmI, ai, ai2);
13397 }
13398 }
float Distance(Vector2 Other)
Definition Entity.cs:187
Vector2 position
Definition Entity.cs:14
int insanityShadowCooldown
Definition Player.cs:867
static List< NPC > _hallucinationCandidates
Definition Player.cs:2589

References Terraria.Collision.CanHitLine(), System.item, Terraria.Main.myPlayer, Terraria.Projectile.NewProjectile(), Terraria.Main.npc, Terraria.Main.rand, and Terraria.Projectile.RandomizeInsanityShadowFor().