using System;
class Speletajs
{
    public string Vards;
    public double Hp;
    public double Def;
    public double Energetika;
    public double AtkSpd;

    public Speletajs(string vards, double hp, double def, double mp, double atkSpd)
    {
        Vards = vards;
        Hp = hp;
        Def = def;
        Energetika = mp;
        AtkSpd = atkSpd;
    }
    public void CastMagic(Speletajs pretinieks, Magija magija)
    {
        if (this.Energetika >= magija.MpCost)
        {
            double dmg = (magija.Dmg - pretinieks.Def) * (this.AtkSpd / 10);
            if (dmg < 0) dmg = 0;
            pretinieks.Hp -= dmg;
            this.Energetika -= magija.MpCost;
            Console.WriteLine($"{this.Vards} izmanto {magija.Nosaukums}!");
            Console.WriteLine($"{pretinieks.Vards} saņem {Math.Round(dmg, 1)} bojājumus.");
        }
        else
        {
            Console.WriteLine($"{this.Vards} nepietiek enerģijas!");
        }
    }

}
class Magija
{
    public string Nosaukums;
    public double Dmg;
    public double MpCost;
    public Magija(string nosaukums, double dmg, double mpCost)
    {
        Nosaukums = nosaukums;
        Dmg = dmg;
        MpCost = mpCost;
    }
}
class Program
{
    static void Main()
    {
        Speletajs gustavs = new Speletajs("Gustavs", 100, 20, 100, 1.5);
        Speletajs andrejs = new Speletajs("Andrejs", 100, 15, 120, 1.2);
        Magija lietus = new Magija("Lietus", 60, 20);
        Magija zibens = new Magija("Zibens", 90, 45);
        while (gustavs.Hp > 0 && andrejs.Hp > 0)
        {
            Console.WriteLine($"\n--- {gustavs.Vards}: {Math.Max(0, Math.Round(gustavs.Hp))} HP | {andrejs.Vards}: {Math.Max(0, Math.Round(andrejs.Hp))} HP ---");
            Console.WriteLine($"{gustavs.Vards} gājiens (1-Lietus, 2-Zibens):");
            string choice1 = Console.ReadLine();
            if (choice1 == "1") gustavs.CastMagic(andrejs, lietus);
            else gustavs.CastMagic(andrejs, zibens);
            if (andrejs.Hp <= 0)
            {
                Console.WriteLine($"\n{andrejs.Vards} ir sakauts!");
                break;
            }
            Console.WriteLine($"\n{andrejs.Vards} gājiens (1-Lietus, 2-Zibens):");
            string choice2 = Console.ReadLine();
            if (choice2 == "1") andrejs.CastMagic(gustavs, lietus);
            else andrejs.CastMagic(gustavs, zibens);
            if (gustavs.Hp <= 0)
            {
                Console.WriteLine($"\n{gustavs.Vards} ir sakauts!");
                break;
            }
        }
        Console.WriteLine("\n=== SPĒLES BEIGAS ===");
    }
}