Exemplo n.º 1
0
        static bool bombaMozgat(Bomba b, Jatekos_Uzi_Tipusok irany)
        {
            uint uj_x = b.x;
            uint uj_y = b.y;

            switch (irany)
            {
            case Jatekos_Uzi_Tipusok.Lep_Jobbra: uj_x++; break;

            case Jatekos_Uzi_Tipusok.Lep_Le: uj_y++; break;

            case Jatekos_Uzi_Tipusok.Lep_Balra: uj_x--; break;

            case Jatekos_Uzi_Tipusok.Lep_Fel: uj_y--; break;
            }

            if (
                uj_y < 0
                ||
                uj_x < 0
                ||
                uj_y >= palya.Magassag
                ||
                uj_x >= palya.Szelesseg
                )
            {
                return(false);
            }

            switch (palya.Cellak[uj_x, uj_y].Tipus)
            {
            case CellaTipus.Lang:
                palya.cellaTorol(b.x, b.y);
                b.x = uj_x;
                b.y = uj_y;
                palya.bombaTelepit(b);
                bomba_robban(b);
                return(true);

            case CellaTipus.Ures:
                palya.cellaTorol(b.x, b.y);
                b.x = uj_x;
                b.y = uj_y;
                palya.bombaTelepit(b);
                return(true);

            default:
                return(false);
            }
        }
Exemplo n.º 2
0
        static void jatekos_lep(Jatekos j, Jatekos_Uzi_Tipusok irany)
        {
            uint uj_x = j.x;
            uint uj_y = j.y;

            switch (irany)
            {
            case Jatekos_Uzi_Tipusok.Lep_Jobbra:
                uj_x++;
                if (uj_x >= palya.Szelesseg)
                {
                    uj_x = 0;
                }
                break;

            case Jatekos_Uzi_Tipusok.Lep_Le:
                uj_y++;
                if (uj_y >= palya.Magassag)
                {
                    uj_y = 0;
                }
                break;

            case Jatekos_Uzi_Tipusok.Lep_Balra:
                if (uj_x == 0)
                {
                    uj_x = palya.Szelesseg - 1;
                }
                else
                {
                    uj_x--;
                }
                break;

            case Jatekos_Uzi_Tipusok.Lep_Fel:
                if (uj_y == 0)
                {
                    uj_y = palya.Magassag - 1;
                }
                else
                {
                    uj_y--;
                }
                break;
            }

            lock (palya)
            {
                switch (palya.Cellak[uj_x, uj_y].Tipus)
                {
                case CellaTipus.Ures: break;

                case CellaTipus.Fal: return;

                case CellaTipus.Robbanthato_Fal: return;

                case CellaTipus.Bomba:
                    if (j.Lab == 0)
                    {
                        return;
                    }

                    Bomba b;

                    if (!Bombak.TryGetValue(palya.Cellak[uj_x, uj_y].Bomba_ID, out b))
                    {
                        return;
                    }

                    if (!bombaMozgat(b, irany))
                    {
                        return;
                    }

                    j.x = uj_x;
                    j.y = uj_y;

                    for (int i = (int)j.Lab - 1; i > 0; i--)
                    {
                        if (!bombaMozgat(b, irany))
                        {
                            return;
                        }
                    }
                    break;

                case CellaTipus.Lang:
                    UInt32 langid = palya.Cellak[uj_x, uj_y].Lang_ID;

                    Lang l;

                    if (Langok.TryGetValue(langid, out l))
                    {
                        jatekosMeghal(j, l.Jatekos_ID);
                    }
                    else
                    {
                        jatekosMeghal(j, 0);
                    }

                    break;

                case CellaTipus.Bomba_Kartya:
                    j.Maxbombaszam += 1;
                    palya.cellaTorol(uj_x, uj_y);
                    break;

                case CellaTipus.Lang_Kartya:
                    j.Rendzs += 1;
                    palya.cellaTorol(uj_x, uj_y);
                    break;

                case CellaTipus.Halalfej_Kartya: break;

                case CellaTipus.Sebesseg_Kartya: break;

                case CellaTipus.Lab_Kartya:
                    j.Lab += 1;
                    palya.cellaTorol(uj_x, uj_y);
                    break;

                case CellaTipus.Kesztyu_Kartya: break;
                }
            }

            j.x = uj_x;
            j.y = uj_y;
        }