using Server.Items;

namespace Server.Mobiles;

public class BronzeElemental : BaseCreature
{
    [Constructible]
    public BronzeElemental(int oreAmount = 2) : base(AIType.AI_Melee)
    {
        Body = 108;
        BaseSoundID = 268;

        SetStr(226, 255);
        SetDex(126, 145);
        SetInt(71, 92);

        SetHits(136, 153);

        SetDamage(9, 16);

        SetDamageType(ResistanceType.Physical, 30);
        SetDamageType(ResistanceType.Fire, 70);

        SetResistance(ResistanceType.Physical, 30, 40);
        SetResistance(ResistanceType.Fire, 30, 40);
        SetResistance(ResistanceType.Cold, 10, 20);
        SetResistance(ResistanceType.Poison, 70, 80);
        SetResistance(ResistanceType.Energy, 20, 30);

        SetSkill(SkillName.MagicResist, 50.1, 95.0);
        SetSkill(SkillName.Tactics, 60.1, 100.0);
        SetSkill(SkillName.Wrestling, 60.1, 100.0);

        Fame = 5000;
        Karma = -5000;

        VirtualArmor = 29;

        Item ore = new BronzeOre(oreAmount);
        ore.ItemID = 0x19B9;
        PackItem(ore);
    }

    public BronzeElemental(Serial serial) : base(serial)
    {
    }

    public override string CorpseName => "an ore elemental corpse";
    public override string DefaultName => "a bronze elemental";

    public override bool BleedImmune => true;
    public override bool AutoDispel => true;
    public override int TreasureMapLevel => 1;

    private static MonsterAbility[] _abilities = { MonsterAbility.PoisonGasCounter };
    public override MonsterAbility[] GetMonsterAbilities() => _abilities;

    public override void GenerateLoot()
    {
        AddLoot(LootPack.Average);
        AddLoot(LootPack.Gems, 2);
    }

    public override void Serialize(IGenericWriter writer)
    {
        base.Serialize(writer);
        writer.Write(0);
    }

    public override void Deserialize(IGenericReader reader)
    {
        base.Deserialize(reader);
        var version = reader.ReadInt();
    }
}
