/* Veidoja: Gustavs Skripa Grupa: 110 Praktiskais darbs: C# RPG spēle Izmantotais compiler: www.onlinegdb.com (C# .NET) */ using System; namespace NeonGridRPG { public class Ierocis { private string nosaukums; private int papildusBojajums; public Ierocis(string nosaukums, int bojajums) { this.nosaukums = nosaukums; this.papildusBojajums = bojajums; } public string GetNosaukums() { return nosaukums; } public int GetBojajums() { return papildusBojajums; } } public class CyberProgram { private string progName; private int dataDamage; private int ramCost; private string statusEffect; public CyberProgram(string name, int damage, int cost, string effect) { this.progName = name; this.dataDamage = damage; this.ramCost = cost; this.statusEffect = effect; } public string GetName() { return progName; } public int GetDamage() { return dataDamage; } public int GetCost() { return ramCost; } public string GetEffect() { return statusEffect; } } public class CyberOperative { private string nosaukums; private int integrity; private int procPower; private int firewall; private double overclock; private Ierocis aprikotsIerocis; public CyberOperative(string nosaukums, int integrity, int procPower, int firewall, double overclock) { this.nosaukums = nosaukums; this.integrity = integrity; this.procPower = procPower; this.firewall = firewall; this.overclock = overclock; } public string GetNosaukums() { return nosaukums; } public void SetIerocis(Ierocis ierocis) { this.aprikotsIerocis = ierocis; } public void ExecuteProgram(CyberOperative target, CyberProgram program) { Console.WriteLine($"\n {this.nosaukums} palaiž '{program.GetName()}' izmantojot {this.aprikotsIerocis.GetNosaukums()} pret {target.GetNosaukums()} "); if (this.procPower >= program.GetCost()) { double totalDamage = ((program.GetDamage() + this.aprikotsIerocis.GetBojajums()) * this.overclock) - target.firewall; if (totalDamage < 0) totalDamage = 0; this.procPower -= program.GetCost(); target.integrity -= (int)Math.Round(totalDamage); Console.WriteLine($"IZPILDE: {target.GetNosaukums()} saņem {(int)Math.Round(totalDamage)} sistēmas bojājumus!"); Console.WriteLine($"{this.nosaukums} atlikusī jauda: {this.procPower} RAM."); Console.WriteLine($"{target.GetNosaukums()} atlikusī integritāte: {target.integrity} HP."); } else { Console.WriteLine($"KĻŪDA: {this.nosaukums} nepietiek Skaitļošanas Jaudas (RAM)!"); } } public void PrintStatus() { Console.WriteLine($"Spēlētājs: {nosaukums} ({aprikotsIerocis.GetNosaukums()}) HP: {integrity} RAM: {procPower} DEF: {firewall} AMP: x{overclock}"); } } class Program { static void Main(string[] args) { Console.WriteLine("NeonGrid: KiberKarš"); CyberOperative neonGamer = new CyberOperative("NeonGamer", 150, 300, 10, 1.5); CyberOperative anonTyper = new CyberOperative("AnonTyper", 250, 100, 40, 1.1); Ierocis katana = new Ierocis("Katana", 40); Ierocis kriketaNuja = new Ierocis("Kriketa nūja", 20); neonGamer.SetIerocis(katana); anonTyper.SetIerocis(kriketaNuja); CyberProgram neuralShock = new CyberProgram("NeuralShock", 60, 50, "Glitch"); CyberProgram dataLeech = new CyberProgram("DataLeech", 35, 20, "Drain"); Console.WriteLine("\nSPĒLĒTĀJI "); neonGamer.PrintStatus(); anonTyper.PrintStatus(); Console.WriteLine("\nSākas Spēle"); neonGamer.ExecuteProgram(anonTyper, neuralShock); anonTyper.ExecuteProgram(neonGamer, dataLeech); neonGamer.ExecuteProgram(anonTyper, dataLeech); anonTyper.ExecuteProgram(neonGamer, neuralShock); Console.WriteLine("\nBeigas"); Console.ReadLine(); } } }