コード例 #1
0
ファイル: ProjFX.cs プロジェクト: heloman1/WeaponOut
        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);
        }