public override bool PreAI(Projectile projectile) { if (ModConf.EnableAccessories) { foreach (Player player in Main.player) { if (!player.active) { continue; } PlayerFX pFX = player.GetModPlayer <PlayerFX>(mod); if (!pFX.CanReflectProjectiles) { continue; } Player pOwner = Main.player[projectile.owner]; // based off Projectile.cs CanReflect() bool isHostile = projectile.hostile && (projectile.owner == Main.myPlayer || projectile.owner == 255); // 255 is npc owner on servers bool isUnfriendlyPlayer = projectile.friendly && !PlayerFX.SameTeam( player, pOwner); if (projectile.damage > 0 && (isHostile || isUnfriendlyPlayer)) { // Can reflect // Is close enough if (Vector2.Distance(projectile.Center, player.Center) <= shieldDist + Vector2.Distance(default(Vector2), projectile.velocity * 2.5f)) { ReflectProjectilePlayer(projectile, player, pFX, true); } } } } return(true); }