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

◆ CollideWithNPCs()

int Terraria.Player.CollideWithNPCs ( Rectangle myRect,
float Damage,
float Knockback,
int NPCImmuneTime,
int PlayerImmuneTime )
inline

Definition at line 19810 of file Player.cs.

19811 {
19812 int num = 0;
19813 for (int i = 0; i < 200; i++)
19814 {
19815 NPC nPC = Main.npc[i];
19816 if (!nPC.active || nPC.dontTakeDamage || nPC.friendly || nPC.immune[whoAmI] != 0 || !CanNPCBeHitByPlayerOrPlayerProjectile(nPC))
19817 {
19818 continue;
19819 }
19820 Rectangle rect = nPC.getRect();
19821 if (myRect.Intersects(rect) && (nPC.noTileCollide || Collision.CanHit(position, width, height, nPC.position, nPC.width, nPC.height)))
19822 {
19823 int num2 = direction;
19824 if (velocity.X < 0f)
19825 {
19826 num2 = -1;
19827 }
19828 if (velocity.X > 0f)
19829 {
19830 num2 = 1;
19831 }
19832 if (whoAmI == Main.myPlayer)
19833 {
19835 }
19836 nPC.immune[whoAmI] = NPCImmuneTime;
19838 num++;
19839 break;
19840 }
19841 }
19842 return num;
19843 }
Vector2 velocity
Definition Entity.cs:16
Vector2 position
Definition Entity.cs:14
bool CanNPCBeHitByPlayerOrPlayerProjectile(NPC npc, Projectile projectile=null)
Definition Player.cs:19902
void ApplyDamageToNPC(NPC npc, int damage, float knockback, int direction, bool crit)
Definition Player.cs:19845
void GiveImmuneTimeForCollisionAttack(int time)
Definition Player.cs:19883

References Terraria.Collision.CanHit(), Terraria.GameContent.Damage, Terraria.Main.myPlayer, and Terraria.Main.npc.