Ejemplo n.º 1
0
 public Hero(int bs, int bm, Pozicija pozicija, String name)
 {
     brojStrelaca   = bs;
     brojMacevalaca = bm;
     Health         = 100;
     Experience     = 0;
     pozicijaHeroja = pozicija;
     borci          = new Borci(brojStrelaca, brojMacevalaca);
     osvojenaSela   = new List <Selo>();
     this.Name      = name;
 }
Ejemplo n.º 2
0
        public void pomeri(Pozicija zeljenaPozicija)
        {
            int pomereno           = 0;
            int zadanaHorizontalna = zeljenaPozicija.X;
            int zadanaVertikalna   = zeljenaPozicija.Y;
            int mogucaHorizontalna = 0;
            int mogucaVertikalna   = 0;

            //Opisivanje kretanja heroja
            //Prilikom svakog kretanja heroj ce prvo odraditi maksimalni broj po horizontali(odnosno po horizontalnim gridovima)
            //pa tek onda po vertikali koliko mu preostane poteza

            //brojPomeraja(horizontalni) predstavlja ukupnu razdaljinu od
            //mesta gde se nalazi heroj pa do mesta gde je korisnik kliknuo
            //ukoliko je to vise od MAX_BROJ_POMERAJA, vrsi se skaliranje odnosno ne
            //dozovoljava se vise od toga

            if (pozicijaHeroja.X != zadanaHorizontalna)
            {
                int brojPomeraja = Math.Abs(pozicijaHeroja.X - zadanaHorizontalna);
                if (brojPomeraja >= MAX_BROJ_POMERAJA)
                {
                    brojPomeraja = MAX_BROJ_POMERAJA;
                }

                //predstavlja smer u kome ce se kretati heroj na mapi
                int horizontalniPomerajHeroja = pozicijaHeroja.X - zadanaHorizontalna;
                if (horizontalniPomerajHeroja < 0)
                {
                    mogucaHorizontalna = pozicijaHeroja.X + brojPomeraja;
                    pomereno           = brojPomeraja;
                }
                else
                {
                    mogucaHorizontalna = pozicijaHeroja.X - brojPomeraja;
                    pomereno           = brojPomeraja;
                }
            }
            else
            {
                mogucaHorizontalna = zadanaHorizontalna;
            }



            if (pozicijaHeroja.Y != zadanaVertikalna)
            {
                int brojPomeraja = Math.Abs(pozicijaHeroja.Y - zadanaVertikalna);
                if (brojPomeraja >= MAX_BROJ_POMERAJA)
                {
                    brojPomeraja = MAX_BROJ_POMERAJA;
                }

                int brojDozvoljenihPoteza = MAX_BROJ_POMERAJA - pomereno;

                if (brojPomeraja > brojDozvoljenihPoteza)
                {
                    brojPomeraja = brojDozvoljenihPoteza;
                }

                if (pomereno < MAX_BROJ_POMERAJA)
                {
                    int vertikalniPomerajHeroja = pozicijaHeroja.Y - zadanaVertikalna;
                    if (vertikalniPomerajHeroja < 0)
                    {
                        mogucaVertikalna = pozicijaHeroja.Y + brojPomeraja;
                    }
                    else
                    {
                        mogucaVertikalna = pozicijaHeroja.Y - brojPomeraja;
                    }
                }
                else
                {
                    mogucaVertikalna = pozicijaHeroja.Y;
                }
            }
            else
            {
                mogucaVertikalna = pozicijaHeroja.Y;
            }


            pozicijaHeroja.X = mogucaHorizontalna;
            pozicijaHeroja.Y = mogucaVertikalna;

            /*
             * int sIconI = pozicijaHeroja.X;
             * int sIconJ = pozicijaHeroja.Y;
             * // ovaj deo je da se spreci prolazak kroz zidove
             * if (State.lavirint[mogucaHorizontalna, mogucaVertikalna] != 1)
             * {
             *  //MessageBox.Show("uso");
             *  pozicijaHerojaI = mogucaHorizontalna;
             *  pozicijaHerojaJ = mogucaVertikalna;
             *  InvalidateAdv(pozicijaHerojaI, pozicijaHerojaJ);
             *  InvalidateAdv(sIconI, sIconJ);
             * }
             * else
             * {
             *  MessageBox.Show("Heroj ne moze stati na neosvojeno sela!");
             * }
             * */
        }