コード例 #1
0
        private void damagePlayer(Player p)
        {
            if (Main.netMode != 1 && projectile.damage > 0)
            {
                FishPlayer owner = Main.player[projectile.owner].GetModPlayer <FishPlayer>(mod);
                int        dmg   = (int)Math.Round(projectile.damage * (owner.bobberDamage + escalationBonus(owner)));
                dmg = Main.DamageVar(dmg);

                if (dmg < 1)
                {
                    dmg = 1;
                }
                bool crit = Main.rand.Next(100) < owner.bobberCrit + Main.player[projectile.owner].inventory[Main.player[projectile.owner].selectedItem].crit;
                ProjectileLoader.ModifyHitPvp(projectile, p, ref dmg, ref crit);
                PlayerHooks.ModifyHitPvpWithProj(projectile, p, ref dmg, ref crit);

                Main.player[projectile.owner].OnHit(p.Center.X, p.Center.Y, p);

                /* if (crit)
                 * {
                 *   dmg *= 2;
                 * }*/

                dmg = (int)p.Hurt(PlayerDeathReason.ByProjectile(projectile.owner, projectile.whoAmI), dmg, projectile.direction, true, false, crit, -1);

                if (Main.netMode == 2)
                {
                    ModPacket pk = mod.GetPacket();
                    pk.Write((byte)3);
                    pk.Write(dmg);
                    pk.Send(projectile.owner, -1);
                }
                else
                {
                    if (Main.player[projectile.owner].accDreamCatcher)
                    {
                        Main.player[projectile.owner].addDPS(dmg);
                    }
                }

                ProjectileLoader.OnHitPvp(projectile, p, dmg, crit);
                PlayerHooks.OnHitPvpWithProj(projectile, p, dmg, crit);

                if (Main.netMode != 0)
                {
                    NetMessage.SendPlayerHurt(p.whoAmI, PlayerDeathReason.ByProjectile(projectile.owner, projectile.whoAmI), dmg, projectile.direction, crit, true, 0, -1, -1);
                }
            }
        }