public override void HoldItem(Player player) { ChargeMeterPlayer modPlayer = player.GetModPlayer <ChargeMeterPlayer>(); modPlayer.chargeMeter.drawMeter = true; modPlayer.chargeMeter.charge = player.GetModPlayer <AccursedBladePlayer>().charge; }
public override void AI() { SafeAI(); projectile.scale = growCounter < 10 ? (projectile.ai[0] / 10f) : 1; Player player = Main.player[projectile.owner]; player.itemTime = 2; player.itemAnimation = 2; projectile.scale = charge < 10 ? (charge / 10f) : 1; player.ChangeDir(Main.MouseWorld.X > player.position.X ? 1 : -1); projectile.Center = player.MountedCenter + (direction.RotatedBy(offset * player.direction) * (charge)); projectile.damage = minDamage + (int)((maxDamage - minDamage) * (charge / (float)chargeMax) * player.meleeDamage); if (player.channel && !released) { direction = Main.MouseWorld - (player.Center - new Vector2(4, 4)); direction.Normalize(); if (charge < chargeMax) { charge += chargeRate; if (charge < chargeMax / 1.5f) { offset -= pullBack; } } if (offset < minOffset) { minOffset = offset; } ChargeMeterPlayer modPlayer = player.GetModPlayer <ChargeMeterPlayer>(); if (charge >= chargeMax && !maxcharge) { maxcharge = true; Main.PlaySound(SoundID.MaxMana, (int)player.MountedCenter.X, (int)player.MountedCenter.Y, 1, 1.5f, -0.2f); } } else { if (!released) { Main.PlaySound(SoundID.Item, (int)player.MountedCenter.X, (int)player.MountedCenter.Y, 105, 0.5f + charge / (chargeMax / 2), 0.5f - charge / chargeMax); released = true; } offset += 0.2f; if (offset > (minOffset + maxOffset) / 2 && !primsCreated) { primsCreated = true; CreatePrims(player.Center + (direction.RotatedBy(maxOffset * player.direction) * (50 + charge)), player.Center + (direction.RotatedBy(offset * player.direction) * (50 + charge)), player.Center + (direction.RotatedBy(minOffset * player.direction) * (50 + charge))); } if (offset > maxOffset) { projectile.active = false; } } radians = direction.ToRotation() + (offset * player.direction); if (player.direction == -1) { radians += 3.14f; } SafePostAI(); }