using System; namespace RPG_Spele { public class Instrumenti { public int DMG { get; set; } public string Rarity { get; set; } public Instrumenti(int instDmg, string rarity) { DMG = instDmg; Rarity = rarity; } } public class Magija { public string Nosaukums { get; set; } public int Damage { get; set; } public int Radius { get; set; } public int ManaCost { get; set; } public int Cooldown { get; set; } public virtual void Efekts(Speletajs merkis) { Console.WriteLine("Tiek aktivizēts maģisks efekts!"); } public Magija(string nosaukums, int damage, int radius, int manaCost, int cooldown) { Nosaukums = nosaukums; Damage = damage; Radius = radius; ManaCost = manaCost; Cooldown = cooldown; } } public class UdensMagija : Magija { public float Slow_Duration { get; set; } public float Slow_Percentage { get; set; } public UdensMagija(string nosaukums, int damage, int radius, int manaCost, int cooldown, float slowDuration, float slowPercentage) : base(nosaukums, damage, radius, manaCost, cooldown) { Slow_Duration = slowDuration; Slow_Percentage = slowPercentage; } public override void Efekts(Speletajs merkis) { Console.WriteLine($"{Nosaukums} palēnina mērķi!"); if (merkis.IsBurning) { merkis.BurnTurns = 0; merkis.BurnDmgPerSec = 0; Console.WriteLine($"{merkis.Vards} nodzēsa uguni"); } } } public class UgunsMagija : Magija { public float Burn_Duration { get; set; } public float Burn_DMG_sec { get; set; } public UgunsMagija(string nosaukums, int damage, int radius, int manaCost, int cooldown, float burnDuration, float burnDmgSec) : base(nosaukums, damage, radius, manaCost, cooldown) { Burn_Duration = burnDuration; Burn_DMG_sec = burnDmgSec; } public override void Efekts(Speletajs merkis) { Console.WriteLine($"{Nosaukums} uzliek degšanu!"); } } public class Speletajs { public string Vards { get; set; } public int HP { get; set; } public int DEF { get; set; } public int ATKSPD { get; set; } public int Mana { get; set; } public int ManaRecovery { get; set; } public int BurnTurns { get; set; } = 0; public float BurnDmgPerSec { get; set; } = 0; public bool IsBurning => BurnTurns > 0; public Speletajs(string vards, int hp, int def, int atkspd, int mana, int manaRec) { Vards = vards; HP = hp; DEF = def; ATKSPD = atkspd; Mana = mana; ManaRecovery = manaRec; } } class Program { public static int CalculateDamage(Speletajs uzbrucejs, Speletajs merkis, Magija magija) { int dmg = (int)(magija.Damage * ((double)uzbrucejs.ATKSPD / merkis.DEF)); return dmg < 1 ? 1 : dmg; } private static void IzmantoMagiju(Speletajs uzbrucejs, Speletajs merkis, Magija magija) { if (uzbrucejs.Mana < magija.ManaCost) { Console.WriteLine($"{uzbrucejs.Vards} nepietiek mana!"); return; } if (magija is UgunsMagija uguns) { merkis.BurnTurns = (int)uguns.Burn_Duration; merkis.BurnDmgPerSec = uguns.Burn_DMG_sec; } int damage = CalculateDamage(uzbrucejs, merkis, magija); uzbrucejs.Mana -= magija.ManaCost; merkis.HP -= damage; if (merkis.HP < 0) merkis.HP = 0; Console.WriteLine($"{uzbrucejs.Vards} izmanto {magija.Nosaukums}!"); Console.WriteLine($"{merkis.Vards} saņem {damage} dmg. HP: {merkis.HP}"); Console.WriteLine($"{uzbrucejs.Vards} mana: {uzbrucejs.Mana}"); SpecialEffect(magija, merkis); Console.WriteLine(); } public static void SpecialEffect(Magija magija, Speletajs merkis) { magija.Efekts(merkis); } // 🔥 FIX: pareiza vieta (iekš klases) public static void ApplyBurn(Speletajs speletajs) { if (speletajs.IsBurning) { speletajs.HP -= (int)speletajs.BurnDmgPerSec; speletajs.BurnTurns--; Console.WriteLine($"{speletajs.Vards} deg -{speletajs.BurnDmgPerSec} HP (HP: {speletajs.HP})"); if (speletajs.HP < 0) speletajs.HP = 0; if (speletajs.BurnTurns <= 0) { speletajs.BurnDmgPerSec = 0; Console.WriteLine($"{speletajs.Vards} vairs nedeg!"); } } } static void Main(string[] args) { Speletajs speletajs1 = new Speletajs("Burvis Lauva", 50, 20, 10, 100, 24); Speletajs speletajs2 = new Speletajs("Fantastiskais Valis", 50, 70, 5, 100, 20); Magija udens = new UdensMagija("Udens", 20, 50, 20, 10, 5, 15); Magija uguns = new UgunsMagija("Uguns", 40, 50, 30, 30, 5, 15); Console.WriteLine("Cīņa sākas!\n"); while (speletajs1.HP > 0 && speletajs2.HP > 0) { IzmantoMagiju(speletajs1, speletajs2, udens); IzmantoMagiju(speletajs1, speletajs2, uguns); ApplyBurn(speletajs2); if (speletajs2.HP <= 0) { Console.WriteLine($"{speletajs2.Vards} ir sakauts! Uzvar {speletajs1.Vards}!"); break; } IzmantoMagiju(speletajs2, speletajs1, udens); IzmantoMagiju(speletajs2, speletajs1, uguns); ApplyBurn(speletajs1); if (speletajs1.HP <= 0) { Console.WriteLine($"{speletajs1.Vards} ir sakauts! Uzvar {speletajs2.Vards}!"); break; } speletajs1.Mana += speletajs1.ManaRecovery; speletajs2.Mana += speletajs2.ManaRecovery; Console.WriteLine("Mana atjaunota!\n"); } Console.WriteLine("Cīņa beigusies!"); } } }