예제 #1
0
        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");
            }

        }
예제 #2
0
 /// <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!");
     }
 }
예제 #3
0
        /// <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");
            }
           
        }
예제 #4
0
        /// <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));
	    }
예제 #5
0
 /// <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;
         }
     }
 }
예제 #6
0
        /// <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Э!");
            }
        }
예제 #7
0
        /// <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;
     }
 }
예제 #9
0
	    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;
	    }
예제 #10
0
	    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;
	    }
예제 #11
0
 /// <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");
     }
 }
예제 #12
0
        /// <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");
            }
        }