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); } }
static void bomba_robban(Bomba b) { Bombak.Remove(b.ID); Jatekos j; if (Jatekosok.TryGetValue(b.Jatekos_ID, out j)) { if (j.Actbombaszam <= 0) { j.Actbombaszam = 0; } else { j.Actbombaszam--; } } palya.cellaTorol(b.x, b.y); lang_telepit(b.x, b.y, b); uint x = b.x; uint y = b.y; bool felmehete = true; bool jobbramehet = true; bool lemehet = true; bool balramehet = true; for (uint i = 1; i <= b.Rendzs; i++) { if (felmehete) { felmehete = lang_telepit(b.x, b.y - i, b); } if (jobbramehet) { jobbramehet = lang_telepit(b.x + i, b.y, b); } if (lemehet) { lemehet = lang_telepit(b.x, b.y + i, b); } if (balramehet) { balramehet = lang_telepit(b.x - i, b.y, b); } } }
static void bomba_telepites(uint jatekos_ID, uint bomba_x, uint bomba_y) { Jatekos j; if (!Jatekosok.TryGetValue(jatekos_ID, out j)) { return; } if (j.Actbombaszam >= j.Maxbombaszam) { return; } if (bomba_x >= palya_szelesseg || bomba_y >= palya_magassag) { return; } if (Palya[bomba_x, bomba_y].Tipus != CellaTipus.Ures) { return; } Bomba b = new Bomba { ID = Bomba_ID_Szamlalo++, Szin = j.Szin, Rendzs = j.Rendzs, Mikor_Robban = DateTime.Now.AddMilliseconds(3000), Jatekos_ID = j.ID, x = bomba_x, y = bomba_y }; Bombak.Add(b.ID, b); Palya[bomba_x, bomba_y].Tipus = CellaTipus.Bomba; Palya[bomba_x, bomba_y].Bomba_ID = b.ID; j.Actbombaszam++; }
static void bomba_telepites(Jatekos jatekos) { if (jatekos.Actbombaszam >= jatekos.Maxbombaszam) { return; } if (!palya.uresE(jatekos.x, jatekos.y)) { return; } Bomba b = new Bomba(jatekos, jatekos.x, jatekos.y); Bombak.Add(b.ID, b); palya.bombaTelepit(b); jatekos.Actbombaszam++; }
public void bombaTelepit(Bomba b) { Cellak[b.x, b.y].Tipus = CellaTipus.Bomba; Cellak[b.x, b.y].Bomba_ID = b.ID; }
static bool lang_telepit(uint lang_x, uint lang_y, Bomba b) { if (lang_x >= palya_szelesseg || lang_y >= palya_magassag) { return(false); } foreach (Jatekos j in Jatekosok.Values) { if (j.x == lang_x && j.y == lang_y) { j.Ele = false; } } /*TOOD:Meghal üzenet*/ switch (Palya[lang_x, lang_y].Tipus) { case CellaTipus.Ures: { Lang l = new Lang { ID = Lang_ID_Szamlalo++, Szin = b.Szin, Meddig = DateTime.Now.AddMilliseconds(1000), Jatekos_ID = b.Jatekos_ID, x = lang_x, y = lang_y }; Langok.Add(l.ID, l); Palya[lang_x, lang_y].Tipus = CellaTipus.Lang; Palya[lang_x, lang_y].Lang_ID = l.ID; return(true); } case CellaTipus.Fal: { return(false); } case CellaTipus.Lang: { Langok.Remove(Palya[lang_x, lang_y].Lang_ID); Lang l = new Lang { ID = Lang_ID_Szamlalo++, Szin = b.Szin, Meddig = DateTime.Now.AddMilliseconds(1000), Jatekos_ID = b.Jatekos_ID, x = lang_x, y = lang_y }; Langok.Add(l.ID, l); Palya[lang_x, lang_y].Lang_ID = l.ID; return(true); } case CellaTipus.Bomba: { bomba_robban(Palya[lang_x, lang_y].Bomba_ID); return(false); } case CellaTipus.Robbanthato_Fal: { Palya[lang_x, lang_y].Tipus = CellaTipus.Ures; kartya_telepit(lang_x, lang_y, false); return(false); } default: { Palya[lang_x, lang_y].Tipus = CellaTipus.Ures; return(false); } } }
static bool lang_telepit(uint lang_x, uint lang_y, Bomba b) { if (lang_x >= palya.Szelesseg || lang_y >= palya.Magassag) { return(false); } foreach (Jatekos j in Jatekosok.Values) { if (j.x == lang_x && j.y == lang_y) { jatekosMeghal(j, b.Jatekos_ID); } } switch (palya.Cellak[lang_x, lang_y].Tipus) { case CellaTipus.Ures: { Lang l = new Lang(b.Jatekos_ID, lang_x, lang_y); Langok.Add(l.ID, l); palya.langTelepit(l); return(true); } case CellaTipus.Fal: { return(false); } case CellaTipus.Lang: { Langok.Remove(palya.Cellak[lang_x, lang_y].Lang_ID); Lang l = new Lang(b.Jatekos_ID, lang_x, lang_y); Langok.Add(l.ID, l); palya.langTelepit(l); return(true); } case CellaTipus.Bomba: { Bomba tmpb; if (!Bombak.TryGetValue(palya.Cellak[lang_x, lang_y].Bomba_ID, out tmpb)) { return(false); } bomba_robban(tmpb); return(false); } case CellaTipus.Robbanthato_Fal: { palya.cellaTorol(lang_x, lang_y); kartya_telepit(lang_x, lang_y, false); return(false); } default: { palya.cellaTorol(lang_x, lang_y); return(false); } } }