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> /// 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> /// 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э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> /// Vytvorenie polниka, poliиko sa pri vytvбranн rozhoduje, иi bude maЭ na sebe prнrodnэ prvok, alebo nie /// </summary> /// <param name="paPoloha">poloha polниka</param> /// <param name="paPevnina"> иi je pevnina</param> public Policko(Poloha paPoloha, bool paPevnina) { aPoloha = paPoloha; aZastavane = null; aPevnina = paPevnina; aDopravneProst = new List<DopravnyProstriedok>(); if (aPevnina == true) { NastavObrazok(Resources.grass, "grass"); if (Nahoda.NahodneCislo0az1() < 0.2) { aZastavane = new Priroda(aPoloha); } } else { NastavObrazok(Resources.water, "water"); } OdsadenieZLava = aPoloha.Stlpec * Policko.cVelkostPolicka; OdsadenieZHora = aPoloha.Riadok * Policko.cVelkostPolicka; }