using System; public abstract class Instrumenti { public double Dmg; public string Rarity; public string Nosaukums; } public class Magija : Instrumenti { public double MpCost; public Magija(string nosaukums, double dmg, double mpCost, string rarity = "Common") { Nosaukums = nosaukums; Dmg = dmg; MpCost = mpCost; Rarity = rarity; } public virtual void Efekts(Speletajs lietotajs, Speletajs pretinieks) { Console.WriteLine($"{Nosaukums} neizraisa papildus efektus."); } } public class UgunsLigums : Magija { public int Burn_Duration = 3; public double Burn_DMG_sec = 5; public UgunsLigums() : base("Uguns Līgums", 40, 30, "Rare") { } public override void Efekts(Speletajs lietotajs, Speletajs pretinieks) { Console.WriteLine($"🔥 EFEKTS: {pretinieks.Vards} degs {Burn_Duration} gājienus, saņemot {Burn_DMG_sec} dmg/sek!"); } } public class Lietus : Magija { public double HealAmount = 10; public Lietus() : base("Dziedinošais Lietus", 20, 25, "Uncommon") { } public override void Efekts(Speletajs lietotajs, Speletajs pretinieks) { lietotajs.Hp += HealAmount; Console.WriteLine($"💧 EFEKTS: Lietus laikā {lietotajs.Vards} atjauno {HealAmount} HP!"); } } public 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($"\n✨ {this.Vards} izmanto {magija.Nosaukums} ({magija.Rarity})!"); Console.WriteLine($"💥 {pretinieks.Vards} saņem {Math.Round(dmg, 1)} bojājumus."); magija.Efekts(this, pretinieks); } else { Console.WriteLine($"❌ {this.Vards} nepietiek enerģijas priekš {magija.Nosaukums}!"); } } } class Program { static void Main() { Speletajs gustavs = new Speletajs("Gustavs", 120, 10, 100, 1.5); Speletajs andrejs = new Speletajs("Andrejs", 120, 8, 120, 1.2); Lietus lietus = new Lietus(); UgunsLigums uguns = new UgunsLigums(); Magija zibens = new Magija("Zibens", 90, 45, "Epic"); 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-Uguns, 3-Zibens):"); string choice1 = Console.ReadLine(); if (choice1 == "1") gustavs.CastMagic(andrejs, lietus); else if (choice1 == "2") gustavs.CastMagic(andrejs, uguns); else gustavs.CastMagic(andrejs, zibens); if (andrejs.Hp <= 0) break; Console.WriteLine($"\n{andrejs.Vards} gājiens (1-Lietus, 2-Uguns, 3-Zibens):"); string choice2 = Console.ReadLine(); if (choice2 == "1") andrejs.CastMagic(gustavs, lietus); else if (choice2 == "2") andrejs.CastMagic(gustavs, uguns); else andrejs.CastMagic(gustavs, zibens); } Console.WriteLine("\n=== SPĒLES BEIGAS ==="); string uzvaretajs = gustavs.Hp > 0 ? gustavs.Vards : andrejs.Vards; Console.WriteLine($"Uzvarētājs: {uzvaretajs}!"); } }