/// <summary> /// Konvertovanie peviny na vodu, alebo naopak /// </summary> public void Konvertuj() { Spolocnost spol = Hra.DajInstanciu().Spolocnost; if(aPoloha.Riadok != 0 && aPoloha.Stlpec != 0 && aPoloha.Riadok != HernaPlocha.PocetRiadkov-1 && aPoloha.Stlpec != HernaPlocha.PocetStlpcov-1) { if (!aPevnina && aVyroba == null && aZastavane == null) { if (spol.UpravFinancie(-cVysusenia)) { aPevnina = true; NastavObrazok(Resources.grass, "grass"); } } else if (MozemStavat()) { if (spol.UpravFinancie(-cZavodnenia)) { this.Zburaj(false); aPevnina = false; NastavObrazok(Resources.water, "water"); } } else { Sprava.Info("Nie je moЮnй konvertovaЭ"); } } else { Sprava.Info("Nie je moЮnй konvertovaЭ! \r\n " + "Na okrajoch mapy je povinnб voda!"); } }
/// <summary> /// Vyhľadaá trasu na grafe /// </summary> /// <param name="paZ">vychodrí bod</param> /// <param name="paDo">koncový bod</param> /// <param name="paDruhVozidla">alé je to vozidlo</param> /// <returns></returns> public static List <Hrana> NajdiTrasu(Poloha paZ, Poloha paDo, DruhVozidla paDruhVozidla) { aHernaPlocha = Hra.DajInstanciu().DajHernuPlochu(); aTrasa = new List <Hrana>(); aPolohaZ = paZ; aZacVrch = NajdiZaciatocnyVrchol(); aKonVrch = NajdiCielovyVrchol(paDo); if (aZacVrch == null || aKonVrch == null) { return(null); } if (aZacVrch == aKonVrch) { return(aTrasa); } aZacVrch.NajkratciaVzdialenost = 0; aAktVrch = aZacVrch; aAktVrch.Docastnost = false; PrejdiVystupnuHviezdu(); Backtracking(); aHernaPlocha.PovodnyStavVrcholov(); if (!aTrasa.Any()) { return(null); } return(aTrasa); }
/// <summary> /// Konštruktor inicializuje všetko potrebné /// </summary> /// <param name="paBocneMenu">trieda, ktorá spravuje bočné menu</param> public TlacitkaNaPloche(BocneMenu paBocneMenu) { aHra = Hra.DajInstanciu(); aKamera = Kamera.DajInstanciu(); aBocneMenu = paBocneMenu; aStav = false; }
/// <summary> /// Ak sa v okolн stanice nachбdza nejakб eЪte nezaradenб vэroba, tak sa zaradн /// </summary> /// <param name="paStavana">stavanб stanica</param> /// <param name="paRozmerRiadkov">rozmer</param> /// <param name="paRozmerStlpcov">rozmer</param> private void OverOkolieStaniceVyroba(Stanica paStavana, int paRozmerRiadkov, int paRozmerStlpcov) { int zacRiad = aPoloha.Riadok - 1; int zacStlp = aPoloha.Stlpec - 1; int konRiad = aPoloha.Riadok + paRozmerRiadkov; int konStlp = aPoloha.Stlpec + paRozmerStlpcov; Hra hra = Hra.DajInstanciu(); Policko[,] matica = hra.DajHernuPlochu().DajMaticu(); ZoskupenieStanic zosk = paStavana.Zoskupenie; for (int riadok = zacRiad; riadok <= konRiad; riadok++) { for (int stlpec = zacStlp; stlpec <= konStlp; stlpec++) { Policko aktualne = matica[riadok, stlpec]; if (aktualne.Vyroba != null) { if (aktualne.Vyroba.Zoskupenie == null) { aktualne.Vyroba.Zoskupenie = zosk; zosk.PridajVyrobu(aktualne.Vyroba); } } } } }
public void PostavStanicu(int upresnenieCinnosti) { Spolocnost spol = Hra.DajInstanciu().Spolocnost; try { ZeleznicnaStanica zelSt; if (aZastavane != null) { Zeleznica z = (Zeleznica)aZastavane; if (upresnenieCinnosti == (int)SmerZast.horizontalny && z.Orientacia == SmerInf.horizontalny) { zelSt = new ZeleznicnaStanica(aPoloha, SmerZast.horizontalny); } else { zelSt = new ZeleznicnaStanica(aPoloha, SmerZast.vertikalny); } if (spol.OverVydavok(-zelSt.Cena) && OverOkolieStaniceZoskupenia(zelSt, 1, 1)) { aZastavane = zelSt; Hra.DajInstanciu().DajHernuPlochu().PrejdiPolicka(); spol.UpravFinancie(-zelSt.Cena); } } else { Sprava.Info("Nie je mozne postavit stanicu"); } } catch (InvalidCastException e) { Sprava.Info("Nie je mozne postavit stanicu"); } }
/// <summary> /// Vэstavba zбstavky pre cestnй vozidlб /// </summary> /// <param name="upresnenieCinnosti">ktorб z nich</param> public void PostavZastavku(int upresnenieCinnosti) { Spolocnost spol = Hra.DajInstanciu().Spolocnost; try { Zastavka zast; if (aZastavane != null) { Cesta c = (Cesta)aZastavane; if (upresnenieCinnosti == (int)SmerZast.horizontalny && c.Orientacia == SmerCesty.vodorovne) { zast = new Zastavka(aPoloha, SmerZast.horizontalny); } else { zast = new Zastavka(aPoloha, SmerZast.vertikalny); } if (spol.OverVydavok(-zast.Cena) && OverOkolieStaniceZoskupenia(zast, 1, 1)) { aZastavane = zast; Hra.DajInstanciu().DajHernuPlochu().PrejdiPolicka(); spol.UpravFinancie(-zast.Cena); } } }catch (InvalidCastException e) { Sprava.Info("Nie je mozne postavit zastavku"); } }
/// <summary> /// Pridanie cieľa /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void aButtonProdajCiel_Click(object sender, EventArgs e) { SpravcaOkien.AktDopProst = this; OknoAplikacie.DajInstanciu().Activate(); Hra.DajInstanciu().Spolocnost.UpravovanyDP = aDopravProst; OknoAplikacie.DajInstanciu().HorneMenu.VyberCielov(); AktualizujZoznamCielov(); }
/// <summary> /// Vyplatenie odmeny Zastavka prepravu /// </summary> public void VydajOdnemu(Stanica paStanica) { Spolocnost spol = Hra.DajInstanciu().Spolocnost; aCiel = paStanica; int zaklPocetDni = aZdroj.Poloha.Vzdialenost(aCiel.Poloha)/5; int skutPocetDni = Hra.DajInstanciu().Den - aZaciatocnyDen; double koeficient = this.DajKoeficient(zaklPocetDni, skutPocetDni); spol.UpravFinancie((int)((double)koeficient * (int)Typ *zaklPocetDni)); }
/// <summary> /// Vэstavba bуje /// </summary> public void PostavBoju() { Spolocnost spol = Hra.DajInstanciu().Spolocnost; if(!aPevnina && aZastavane == null && aVyroba == null){ Boja boj = new Boja(aPoloha); if (spol.UpravFinancie(-boj.Cena)) { aZastavane = boj; } } }
/// <summary> /// Vybъranie obsahu polниky, je rozdiel, иi to volб hrби, alebo hra /// </summary> /// <param name="paVyvolalUzivatel">иi to volб hrби</param> public void Zburaj(bool paVyvolalUzivatel) { Spolocnost spol = Hra.DajInstanciu().Spolocnost; if (aVyroba == null && aZastavane != null) { if (spol.UpravFinancie(-aZastavane.NakladyNaZburanie)) { if (aZastavane is MiestoZastavenia) { if (!(aZastavane as MiestoZastavenia).MozemZburat) { Sprava.Info("Nie je moЮnй zbъraЭ miesto zastavenia! \r\n EЪte je zaradenй v zozneme cieЊov!"); return; } } if (aZastavane is Stanica) { Policko[,] matica = Hra.DajInstanciu().DajHernuPlochu().DajMaticu(); if ((aZastavane as Stanica).Odstavene.Any()) { Sprava.Info("Nie je moЮnй zbъraЭ stanicu! \r\n Nachбdzajъ sa tam dopravnй prostriedky!"); return; } (aZastavane as Stanica).Zburaj(); Infrastruktura zast = aZastavane; for (int riadok = 0; riadok < HernaPlocha.PocetRiadkov; riadok++) { for (int stlpec = 0; stlpec < HernaPlocha.PocetStlpcov; stlpec++) { if (matica[riadok, stlpec].Zastavane != null && matica[riadok, stlpec].Zastavane.Equals(zast)) { matica[riadok, stlpec].Zastavane = null; } } } } if (Prostriedky()) { Sprava.Info("Nie je moЮnй zbъraЭ obsah polниka! \r\n Nachбdzajъ sa tam dopravnй prostriedky!"); return; } aZastavane = null; Hra.DajInstanciu().DajHernuPlochu().PrejdiPolicka(); } } else { if (paVyvolalUzivatel) Sprava.Info("Nie je moЮnй zbъraЭ!"); } }
/// <summary> /// Aktualiácia informácií /// </summary> private void Aktualizuj() { aDoprProst = Hra.DajInstanciu().Spolocnost.DopravneProstriedky; foreach (var item in aDoprProst) { if (item.Druh == aDruhVozidla) { aListBoxZozDoPr.Items.Add(item); } } }
/// <summary> /// Vэstavba doku /// </summary> /// <param name="paSmer">jeho smer</param> public void PostavDok(int paSmer) { Policko[,] matica = Hra.DajInstanciu().DajHernuPlochu().DajMaticu(); Dok dk = null; Spolocnost spol = Hra.DajInstanciu().Spolocnost; if (MozemStavat()) { switch (paSmer) { case (int)SmerDoku.dole: if (!matica[aPoloha.Riadok + 1, aPoloha.Stlpec].aPevnina && matica[aPoloha.Riadok + 1, aPoloha.Stlpec].aZastavane == null) { dk = new Dok(aPoloha, SmerDoku.dole); } break; case (int)SmerDoku.hore: if (!matica[aPoloha.Riadok - 1, aPoloha.Stlpec].aPevnina && matica[aPoloha.Riadok - 1, aPoloha.Stlpec].aZastavane == null) { dk = new Dok(aPoloha, SmerDoku.hore); } break; case (int)SmerDoku.vpravo: if (!matica[aPoloha.Riadok, aPoloha.Stlpec + 1].aPevnina && matica[aPoloha.Riadok, aPoloha.Stlpec + 1].aZastavane == null) { dk = new Dok(aPoloha, SmerDoku.vpravo); } break; case (int)SmerDoku.vlavo: if (!matica[aPoloha.Riadok, aPoloha.Stlpec - 1].aPevnina && matica[aPoloha.Riadok, aPoloha.Stlpec - 1].aZastavane == null) { dk = new Dok(aPoloha, SmerDoku.vlavo); } break; } if ( dk != null && spol.OverVydavok(-dk.Cena) && OverOkolieStaniceZoskupenia(dk, 1, 1)) { aZastavane = dk; spol.UpravFinancie(-dk.Cena); } else { Sprava.Info("Nie je moЮnб vэstavba doku!"); } } else { Sprava.Info("Nie je moЮnб vэstavba doku!"); } }
/// <summary> /// Overenie okolia zoskupenia, rozhoduje иi pridaЭ stanicu uЮ ku existujъcemu zoskupenium /// alebo иi vytvori novй. /// </summary> /// <param name="paStavana">stavanб stanica</param> /// <param name="paRozmerRiadkov">rozmer</param> /// <param name="paRozmerStlpcov">rozmer</param> /// <returns>vэsledok</returns> private bool OverOkolieStaniceZoskupenia(Stanica paStavana, int paRozmerRiadkov, int paRozmerStlpcov) { int zacRiad = aPoloha.Riadok - 1; int zacStlp = aPoloha.Stlpec - 1; int konRiad = aPoloha.Riadok + paRozmerRiadkov; int konStlp = aPoloha.Stlpec + paRozmerStlpcov; Hra hra = Hra.DajInstanciu(); Policko[,] matica = hra.DajHernuPlochu().DajMaticu(); ZoskupenieStanic zosk = null; int pocetNajdenachZosk = 0; for (int riadok = zacRiad; riadok <= konRiad; riadok++) { for (int stlpec = zacStlp; stlpec <= konStlp; stlpec++) { Policko aktualne = matica[riadok, stlpec]; if(aktualne.Zastavane is Stanica) { if (zosk == null || !zosk.Equals((aktualne.Zastavane as Stanica).Zoskupenie)) { zosk = (aktualne.Zastavane as Stanica).Zoskupenie; pocetNajdenachZosk++; } } } } if (pocetNajdenachZosk == 0) { zosk = new ZoskupenieStanic(); paStavana.Zoskupenie = zosk; zosk.PridajStanicu(paStavana); hra.Spolocnost.PridajStanicu(zosk); OverOkolieStaniceVyroba(paStavana, paRozmerRiadkov, paRozmerStlpcov); return true; } else if (pocetNajdenachZosk == 1) { paStavana.Zoskupenie = zosk; zosk.PridajStanicu(paStavana); hra.Spolocnost.PridajStanicu(zosk); OverOkolieStaniceVyroba(paStavana, paRozmerRiadkov, paRozmerStlpcov); return true; } return false; }
/// <summary> /// Zmazanie v�etk�ch (aspo� d�fam) /// referenci� na objekt /// </summary> public void ZmazSa() { Spolocnost spol = Hra.DajInstanciu().Spolocnost; spol.UpravFinancie(aTyp.Cena / 2); spol.ZmazDP(this); Zastav(); aJeVPohybe = false; aTyp = null; if (aOkno != null) { aOkno.Close(); aOkno = null; } }
/// <summary> /// Aktualizácia informácií /// </summary> private void Aktualizuj() { aZoznam = Hra.DajInstanciu().Spolocnost.Stanice; aZoznamPrirodzenych = Hra.DajInstanciu().DajHernuPlochu().ZoznamPrirodzenychStanic; foreach (var toto in aZoznam) { aListBoxZoznamStanic.Items.Add(toto.ToString()); } foreach (var toto in aZoznamPrirodzenych) { aListBoxZoznamStanic.Items.Add(toto.ToString()); } }
/// <summary> /// Nalo�enie jednej jednotky n�kladu /// </summary> /// <returns></returns> public bool Naloz() { Stanica navstivena = KonvertujMiestoNaStanicu(aCiele[aAktualnaPozicia]); if (aNaklad.Count >= aTyp.Kapacita || navstivena == null) return false; PrepravJednotka pr = navstivena.Zoskupenie.VydajJednotku(aTyp.TypNakladu); if (pr != null) { Console.WriteLine("nalozenie" + pr.ToString()); pr.CasNalozenia = Hra.DajInstanciu().Den; pr.Zdroj = navstivena; aNaklad.Add(pr); return true; } return false; }
public override bool PostavStroj(int paPor) { Spolocnost spol = Hra.DajInstanciu().Spolocnost; if (paPor >= 0 && paPor < aMozneStroje.Count) { Auto autoStavane = new Auto(aMozneStroje[paPor], SmerZast); if (spol.UpravFinancie(-autoStavane.Cena)) { DopravnyProstriedok dp = new DopravnyProstriedok(autoStavane); spol.PridajDP(dp); PridajOdstavene(dp); } } return false; }
public override bool PostavStroj(int paPor) { Spolocnost spol = Hra.DajInstanciu().Spolocnost; if (paPor >= 0 && paPor < aMozneStroje.Count) { Lietadlo liet = new Lietadlo(aMozneStroje[paPor]); if (spol.UpravFinancie(-liet.Cena)) { DopravnyProstriedok dp = new DopravnyProstriedok(liet); spol.PridajDP(dp); PridajOdstavene(dp); } } return false; }
/// <summary> /// �al�ia z pohybov�ch funkci� /// </summary> /// <param name="paPoloha">poloha kam</param> /// <returns>�i sa podarilo</returns> private bool Pohyb(Poloha paPoloha) { if (!Hra.DajInstanciu().DajHernuPlochu().DajMaticu()[paPoloha.Riadok, paPoloha.Stlpec].Pevnina) { Poloha = paPoloha; return true; } else if (Hra.DajInstanciu().DajHernuPlochu().DajMaticu()[paPoloha.Riadok, paPoloha.Stlpec].Zastavane is Dok) { Poloha = paPoloha; return true; } return false; }
/// <summary> /// Metóda, ktorá sa vykoná pri spustení časovcača /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void casovac_Tick(object sender, EventArgs e) { aHra = Hra.DajInstanciu(); if (HernaPlocha.PocetStlpcov < 50) { aHra.Nacitaj(); return; } aKamera = Kamera.DajInstanciu(); aHra.Tik(); Vykreslene.Tik(); this.Refresh(); }
/// <summary> /// Vymazanie pripojenej stanice /// </summary> /// <param name="paStanica"></param> public void ZmazPripojenuStanicu(Stanica paStanica) { aStanice.Remove(paStanica); if (aStanice.Count == 0) { foreach (Vyroba item in aObsluhovanePodniky) { item.Zoskupenie = null; } Hra.DajInstanciu().Spolocnost.VymazZoskupenie(this); } else { this.AktualizujInfoProstriedky(); } }
/// <summary> /// Kontrola polνθok, kτli monosti vytvori graf /// </summary> public void PrejdiPolicka() { ZmazGraf(); for (int riadok = 0; riadok < PocetRiadkov; riadok++) { for (int stlpec = 0; stlpec < PocetStlpcov; stlpec++) { this.VytvorGraf(riadok, stlpec); } } HranyVOpacnomSmere(); foreach (var item in Hra.DajInstanciu().Spolocnost.DopravneProstriedky) { item.NajdiTrasu(); } }
/// <summary> /// vэstavby cersty /// </summary> /// <param name="paSmer">smer</param> public void PostavCestu(int paSmer) { Spolocnost spol = Hra.DajInstanciu().Spolocnost; if (paSmer > 0 && paSmer <= Enum.GetNames(typeof(SmerCesty)).Length) { if (this.MozemStavat()) { this.Zburaj(false); Cesta cest = new Cesta((SmerCesty)paSmer, aPoloha); if(spol.UpravFinancie(-cest.Cena)){ aZastavane = cest; Hra.DajInstanciu().DajHernuPlochu().PrejdiPolicka(); } } } else { Console.WriteLine("Nie je mozne stavat"); } }
/// <summary> /// Pohnutie sa /// </summary> public void Start() { if (aCiele.Count >= 2) { Hra.DajInstanciu().DajHernuPlochu().PrejdiPolicka(); aTyp.Skryte = false; aJeVPohybe = true; NajdiTrasu(); aTyp.Strateny = false; Stanica stan = Hra.DajInstanciu().DajHernuPlochu().DajMaticu()[Poloha.Riadok, Poloha.Stlpec].Zastavane as Stanica; if (stan!= null) { stan.OdstranOdstavene(this); } } else { Sprava.Info("Dopravn� prostriedok nem� dostatok cielov!"); } }
public static void ZoznamVyroby(bool paJeMesto) { if (paJeMesto) { if (aMesta == null) { aMesta = new ZoznamVyrobyForm(Hra.DajInstanciu().ZoznamMiest); } aMesta.Show(); aMesta.Activate(); } else { if (aVyroba == null) { aVyroba = new ZoznamVyrobyForm(Hra.DajInstanciu().ZoznamVyroby); } aVyroba.Show(); aVyroba.Activate(); } }
/// <summary> /// Vytváranie tlačítok /// </summary> /// <param name="paBocneMenu"></param> public HorneMenu(BocneMenu paBocneMenu) { aBocneMenu = paBocneMenu; aHra = Hra.DajInstanciu(); aTlacitkaMenu = new List <Tlacitko>(); aTlacitkaMenu.Add(new Tlacitko(4, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.pauza)); aTlacitkaMenu.Add(new Tlacitko(38, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.start)); aTlacitkaMenu.Add(new Tlacitko(72, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.nacitaj)); aTlacitkaMenu.Add(new Tlacitko(106, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.uloz)); aTlacitkaMenu.Add(new Tlacitko(140, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zoznamMiest)); aTlacitkaMenu.Add(new Tlacitko(174, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zoznamStanic)); aTlacitkaMenu.Add(new Tlacitko(208, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zoznamVyroby)); aTlacitkaMenu.Add(new Tlacitko(242, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zoznamVlakov)); aTlacitkaMenu.Add(new Tlacitko(276, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zoznamVozidiel)); aTlacitkaMenu.Add(new Tlacitko(310, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zoznamLodi)); aTlacitkaMenu.Add(new Tlacitko(344, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zozmanLietadiel)); aTlacitkaMenu.Add(new Tlacitko(378, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.vystavbaZeleznic)); aTlacitkaMenu.Add(new Tlacitko(412, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.vystavbaCiest)); aTlacitkaMenu.Add(new Tlacitko(446, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.vystavbaVodnychCiest)); aTlacitkaMenu.Add(new Tlacitko(480, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.vystavbaLetisk)); aTlacitkaMenu.Add(new Tlacitko(514, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.upravaTerenu)); }
/// <summary> /// Vэstavba letiska /// </summary> public void PostavLetisko() { Hra hra = Hra.DajInstanciu(); Policko[,] matica = hra.DajHernuPlochu().DajMaticu(); bool mozemStavat = true; Letisko letisko = new Letisko(Poloha); for (int riadok = letisko.Poloha.Riadok; riadok < letisko.Poloha.Riadok + letisko.PocetRiadkov; riadok++) { for (int stlpec = letisko.Poloha.Stlpec; stlpec < letisko.Poloha.Stlpec + letisko.PocetStlpcov; stlpec++) { if (riadok >= HernaPlocha.PocetRiadkov || stlpec >= HernaPlocha.PocetStlpcov || !matica[riadok, stlpec].MozemStavat()) { mozemStavat = false; break; } } } Spolocnost spol = Hra.DajInstanciu().Spolocnost; if (mozemStavat && spol.OverVydavok(-letisko.Cena) && OverOkolieStaniceZoskupenia(letisko, letisko.PocetRiadkov, letisko.PocetStlpcov)) { for (int riadok = letisko.Poloha.Riadok; riadok < letisko.Poloha.Riadok + letisko.PocetRiadkov; riadok++) { for (int stlpec = letisko.Poloha.Stlpec; stlpec < letisko.Poloha.Stlpec + letisko.PocetStlpcov; stlpec++) { var hladanePolicko = matica[riadok, stlpec]; hladanePolicko.Zburaj(false); hladanePolicko.Zastavane = letisko; } } spol.UpravFinancie(-letisko.Cena); } else { Sprava.Info("Nie je moЮnй postaviЭ letisko"); } }
/// <summary> /// Vykreslenie Obr�zku + pohyb /// </summary> /// <param name="paGafika"></param> public void DrawImage(Graphics paGafika) { bool mamHladatTrasu = true; bool najdenaTrasa = true; if (aTyp.Strateny) { aJeVPohybe = false; aTyp.DrawImage(paGafika); return; } if (aJeVPohybe) { if (aTyp.JeVCieli) { najdenaTrasa = false; if (aAktualnaPozicia != -1) { mamHladatTrasu = false; if (!aNakladam) { if (!Vyloz()) { aNakladam = true; } } else if (aNakladam) { if (!Naloz()) { aNakladam = false; mamHladatTrasu = true; } } } if (mamHladatTrasu) { if (aAktualnaPozicia < aCiele.Count - 1) { aAktualnaPozicia++; } else { aAktualnaPozicia = 0; } najdenaTrasa = aTyp.NajdiTrasu(aCiele[aAktualnaPozicia].Poloha); } } if (najdenaTrasa) { Hra.DajInstanciu().DajHernuPlochu().DajMaticu()[Poloha.Riadok, Poloha.Stlpec].OdoberDopravnyProstriedok(this); aTyp.VykonajPohyb(); Hra.DajInstanciu().DajHernuPlochu().DajMaticu()[Poloha.Riadok, Poloha.Stlpec].PridajDopravnyProstriedok(this); } } aTyp.DrawImage(paGafika); }
/// <summary> /// Spracovanie kliknutia na plochu /// </summary> /// <param name="paE"></param> private void SpracujKliknutie(MouseEventArgs paE) { VykonavanaCinnost tl = VykonavanaCinnost.bezna; foreach (Tlacitko toto in aTlacitkaMenu) { if (toto.Kliknute(paE.X, paE.Y)) { Console.WriteLine(toto.ToString()); tl = toto.DajTyp(); break; } } RestartCinnosti(); aBocneMenu.HlavnaCinnost = tl; switch (tl) { case VykonavanaCinnost.pauza: OknoAplikacie.DajInstanciu().Pauza(); Sprava.Info("Hra prerušená"); RestartCinnosti(); break; case VykonavanaCinnost.start: OknoAplikacie.DajInstanciu().Start(); Sprava.Info("Hra pokračuje"); RestartCinnosti(); break; case VykonavanaCinnost.vystavbaCiest: aBocneMenu.Obrazok = Resources.MenuCesty; aBocneMenu.HlavnaCinnost = tl; aBocneMenu.Nadpis = "Výstavba ciest"; break; case VykonavanaCinnost.vystavbaZeleznic: aBocneMenu.Obrazok = Resources.MenuZeleznice; aBocneMenu.HlavnaCinnost = tl; aBocneMenu.Nadpis = "Výstavba železníc"; break; case VykonavanaCinnost.upravaTerenu: aBocneMenu.Obrazok = Resources.MenuTerenu; aBocneMenu.HlavnaCinnost = tl; aBocneMenu.Nadpis = "Úprava terénu"; break; case VykonavanaCinnost.vystavbaLetisk: aBocneMenu.HlavnaCinnost = tl; aBocneMenu.Nadpis = "Výstavba letísk"; break; case VykonavanaCinnost.vystavbaVodnychCiest: aBocneMenu.Nadpis = "Výstavba vodných\nciest"; aBocneMenu.Obrazok = Resources.MenuVodnychStavieb; aBocneMenu.HlavnaCinnost = tl; break; case VykonavanaCinnost.zoznamMiest: SpravcaOkien.ZoznamVyroby(true); RestartCinnosti(); break; case VykonavanaCinnost.zoznamVyroby: SpravcaOkien.ZoznamVyroby(false); RestartCinnosti(); break; case VykonavanaCinnost.zoznamStanic: SpravcaOkien.ZoznamStanic(); RestartCinnosti(); break; case VykonavanaCinnost.zozmanLietadiel: SpravcaOkien.ZobrazZoznamDoprevProst(DruhVozidla.vzdusne); break; case VykonavanaCinnost.uloz: if (Sprava.DajNaVyber("Prajete si uložiť aktuálnu pozíciu v hre?\nUkladanie môže chvíľku trvať.")) { try { OknoAplikacie.DajInstanciu().Pauza(); Hra.DajInstanciu().Uloz(); OknoAplikacie.DajInstanciu().Start(); Sprava.Info("Hra bola úspešne uložená."); } catch (Exception) { Sprava.Info("Nie je možné uložiť hru!"); OknoAplikacie.DajInstanciu().Start(); } } break; case VykonavanaCinnost.nacitaj: if (Sprava.DajNaVyber("Prajete si načítať hru? Neuložený postup bude stratený!\nNačítanie môže chvíľku trvať.")) { try { OknoAplikacie.DajInstanciu().Pauza(); Hra.DajInstanciu().Nacitaj(); OknoAplikacie.DajInstanciu().Start(); Sprava.Info("Hra bola úspešne načítaná."); } catch (Exception) { Sprava.Info("Nie je možné načítať hru!"); } } break; case VykonavanaCinnost.zoznamVlakov: SpravcaOkien.ZobrazZoznamDoprevProst(DruhVozidla.kolajove); break; case VykonavanaCinnost.zoznamVozidiel: SpravcaOkien.ZobrazZoznamDoprevProst(DruhVozidla.cestne); break; case VykonavanaCinnost.zoznamLodi: SpravcaOkien.ZobrazZoznamDoprevProst(DruhVozidla.vodne); break; } }