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