Untitled

 avatar
unknown
plain_text
a year ago
1.6 kB
10
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