/// <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"); } }
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 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> /// 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"); } }