/// <summary> /// Konstruktor /// Iicializálja a támadást /// </summary> /// <param name="katonasag">Támadó Katonai egysége</param> /// <param name="tamadott_jatekos_id">Támadott játékos ID-je</param> public static void TamadasInditas(KatonaiEgyseg katonasag, int tamadott_jatekos_id) { Logger.Log("Támadás menetideje : " + MenetidoSzamitas(katonasag)); foreach (Lakos item in katonasag.Katonak) { item.ItthonVan = false; } TevekenysegController.AddTevekenyseg( MenetidoSzamitas(katonasag), () => Csata.Csatazas(katonasag, Jatek.GetJatekosById(tamadott_jatekos_id).Vedekezik())); }
/// <summary> /// Csata lemeneteléért felel: /// Ha a védő erő kisebb mint a támadó, akkor támadó nyert /// Ellenkező esetben védő nyert /// </summary> public static void Csatazas(KatonaiEgyseg tamadas, KatonaiEgyseg vedekezes) { Logger.Log("Csata elkezdődött"); /// ne kelljen mindig lekérni a Jatek-tól az aktuálisan kívánt játkost Jatekos vedekezo = Jatek.GetJatekosById(vedekezes.Jatekos_Id); if (tamadas.Erő > vedekezes.Erő) { vedekezo.Veszit(); Logger.Log("Támadó játékos ID: " + tamadas.Jatekos_Id + "nyert"); } else { Logger.Log("Támadó játékos ID: " + tamadas.Jatekos_Id + "vesztett"); /// Rendezi a katonákat erő szerint /// Hogy Gyilkolásban a minimumkeresés-nél ne kelljen mindig végigfutni a listán vedekezes.Katonak.Sort((x, y) => y.VedoErtek.CompareTo(x.VedoErtek)); Gyilkol(tamadas, vedekezes); // visszatérés vedekezo.KatonakHazaternek(vedekezes); } }
private static void Main(string[] args) { Jatek.Play(); Console.ReadKey(); }