Refactor and redo Shattered Prism
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
using Microsoft.Xna.Framework;
|
||||
using Terraria;
|
||||
using Terraria.ID;
|
||||
using Terraria.ModLoader;
|
||||
|
||||
namespace ForgottenWawiTech.Content.Projectiles.FragmentedPrism
|
||||
{
|
||||
public class FragmentedPrismBeam : ModProjectile
|
||||
{
|
||||
public override string Texture => "Terraria/Images/Projectile_440";
|
||||
|
||||
public override void SetDefaults()
|
||||
{
|
||||
Projectile.width = 18;
|
||||
Projectile.height = 18;
|
||||
Projectile.friendly = true;
|
||||
Projectile.DamageType = DamageClass.Magic;
|
||||
Projectile.penetrate = -1;
|
||||
Projectile.tileCollide = false;
|
||||
Projectile.ignoreWater = true;
|
||||
Projectile.extraUpdates = 12;
|
||||
Projectile.timeLeft = 26;
|
||||
Projectile.usesLocalNPCImmunity = true;
|
||||
Projectile.localNPCHitCooldown = 8;
|
||||
Projectile.light = 0.55f;
|
||||
}
|
||||
|
||||
public override void AI()
|
||||
{
|
||||
if (Projectile.velocity.LengthSquared() < 0.001f)
|
||||
{
|
||||
Projectile.Kill();
|
||||
return;
|
||||
}
|
||||
|
||||
Projectile.rotation = Projectile.velocity.ToRotation();
|
||||
|
||||
float progress = 1f - Projectile.timeLeft / 26f;
|
||||
Projectile.scale = MathHelper.Lerp(0.85f, 1.35f, progress);
|
||||
Lighting.AddLight(Projectile.Center, 0.2f, 0.35f, 0.55f);
|
||||
|
||||
if (Main.rand.NextBool(3))
|
||||
{
|
||||
Vector2 dustPos = Projectile.Center - Projectile.velocity * Main.rand.NextFloat(0.2f, 0.6f);
|
||||
Dust dust = Dust.NewDustPerfect(dustPos, DustID.DungeonSpirit, Projectile.velocity * -0.15f, 150, default, 1.05f);
|
||||
dust.noGravity = true;
|
||||
}
|
||||
}
|
||||
|
||||
public override bool? CanHitNPC(NPC target)
|
||||
{
|
||||
return base.CanHitNPC(target);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user