using System.Collections.Generic;
using Decimation.Content.Buffs.Debuffs;
using Decimation.Content.Buffs.Buffs;
using Decimation.Content.Items.Ores;
using Decimation.Content.Tiles;
using Decimation.Lib.Items;
using Decimation.Lib.Util;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;

namespace Decimation.Content.Items.Ammo
{
    internal class TitanicStyngerBolt : DecimationAmmo
    {
        protected override string ItemName => "Titanic Stynger Bolt";
        protected override string ItemTooltip => "Explodes into deadly shrapnel.";
        protected override string Projectile => "TitanicStyngerBolt";
        protected override int Ammo => AmmoID.StyngerBolt;
        protected override int Damages => 35;

        protected override void InitAmmo()
        {
            item.knockBack = 2;
            item.rare = Rarity.Orange.GetRarityValue();
            item.width = 8;
            item.height = 8;
            item.value = Item.buyPrice(0, 0, 10);
            item.consumable = true;

            this.item.shootSpeed = 2f;
        }

        public override void OnHitNPC(Player player, NPC target, int damage, float knockBack, bool crit)
        {
            if (Main.rand.NextBool(100))
                target.AddBuff(ModContent.BuffType<Amnesia>(), 600);
        }

        public override void OnHitPvp(Player player, Player target, int damage, bool crit)
        {
            if (Main.rand.NextBool(100))
                target.AddBuff(ModContent.BuffType<Amnesia>(), 600);
        }

        protected override List<ModRecipe> GetRecipes()
        {
            ModRecipe recipe = GetNewModRecipe(this, 50, new List<int> {ModContent.TileType<TitanForge>()});

            recipe.AddIngredient(ItemID.StyngerBolt, 50);
            recipe.AddIngredient(ModContent.ItemType<TitaniteBar>(), 3);

            return new List<ModRecipe> {recipe};
        }
    }
}