Ejemplo n.º 1
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            var modPlayer = NecroDamagePlayer.ModPlayer(player);

            modPlayer.lifeEssenceCurrent    = modPlayer.lifeEssenceMax2;
            modPlayer.soulsCurrent          = modPlayer.soulsMax2;
            modPlayer.necroDamageMult      *= 2f;
            modPlayer.necroScytheRangeMult *= 2f;

            //Main.NewText(modPlayer.lifeEssenceRegenRate);
        }
Ejemplo n.º 2
0
        public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            if (player.altFunctionUse == 2)
            {
                Vector2 angle         = player.DirectionTo(Main.MouseWorld) * 10;
                float   vertAngle     = angle.Y;
                float   mouseDistance = Vector2.Distance(player.Center, Main.MouseWorld);

                //clamp verticle throwing angle
                if (vertAngle >= 4)
                {
                    vertAngle = 3.9f;
                }
                else if (vertAngle <= -4)
                {
                    vertAngle = -3.9f;
                }

                //cap maximum throwing range
                float maxScytheRange = 350 * NecroDamagePlayer.ModPlayer(player).necroScytheRangeMult;

                if (mouseDistance >= maxScytheRange)
                {
                    mouseDistance = maxScytheRange;
                }

                //lower speed based on distance
                if (mouseDistance >= 400)
                {
                    mouseDistance /= 35;
                }
                else if (mouseDistance >= 200)
                {
                    mouseDistance /= 30;
                }
                else
                {
                    mouseDistance /= 25;
                }

                //final throw values
                if (player.direction == 1)
                {
                    speedX = mouseDistance;
                    speedY = vertAngle;
                    return(true);
                }
                else
                {
                    speedX = -mouseDistance;
                    speedY = vertAngle;
                    return(true);
                }
            }
            else
            {
                position = player.Center;
                speedY   = 0;
                speedX   = 0;
                return(true);
            }
        }