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); }
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); } }