Untitled
unknown
plain_text
2 years ago
1.6 kB
14
Indexable
public class MoonArrow : ModItem
{
public override void SetDefaults()
{
Item.width = 10;
Item.height = 32;
Item.maxStack = Item.CommonMaxStack;
Item.value = Item.sellPrice(copper: 2, silver: 2);
Item.rare = ItemRarityID.White;
Item.damage = 10;
Item.crit = 4;
Item.DamageType = DamageClass.Ranged;
Item.consumable = true;
Item.shootSpeed = 1f;
Item.shoot = ModContent.ProjectileType<MoonArrowShot>();
Item.ammo = AmmoID.Arrow;
Item.knockBack = 1.2f;
}
}
public class MoonArrowShot : ModProjectile
{
public override void SetDefaults()
{
Projectile.width = 8;
Projectile.height = 8;
Projectile.friendly = true;
Projectile.DamageType = DamageClass.Ranged;
Projectile.ignoreWater = true;
Projectile.tileCollide = true;
Projectile.light = 0.3f;
// AIType = ProjectileID.WoodenArrowFriendly; // Act exactly like default Bullet
}
private const int GravityDelay = 45;
public int GravityDelayTimer
{
get => (int)Projectile.ai[1];
set => Projectile.ai[1] = value;
}
public override void AI()
{
GravityDelayTimer++;
Projectile.direction = Projectile.spriteDirection = (Projectile.velocity.X > 0f) ? 1 : -1;
Projectile.rotation = Projectile.velocity.ToRotation();
if (Projectile.spriteDirection == -1)
{
Projectile.rotation += MathHelper.Pi;
}
if (GravityDelayTimer >= GravityDelay)
{
GravityDelayTimer = GravityDelay;
// gravity
Projectile.velocity.Y += 0.05f;
}
}
}
Editor is loading...
Leave a Comment