Oké, úgylátom egy kicsit sokmindenről volt szó az előző postban, és nem mertek hozzászólni, úgyhogy egy kicsit egyszerűbbé teszem a dolgot, és új postot hozok létre. Egy pár apróbb hibát sikerült csak javítanom az utóbbi pár napban, mert nem sok időm volt foglalkozni vele, és nemtudom ezek közül van-e valami olyan, ami megérdemli, hogy megemlítsem.
A szobafelfordításnál volt, hogy az éppen lerakott tokent nem lehetett lerakni oda, ahol az adott szobán előzőleg a lefordított tokenek valamelyike ki volt jelezve, ezt egyszerűen lehetett javítani, amivel többet szívtam, az az volt, hogy a szobafelderítéshez használt form ugyanakkor legyen aktív, mint a főform.
Magyarán ha leminimalizálom, vagy alt-tabolok egy másik ablakra, és utána ismét ráklikkelek a tálcán a főformra (mert a kis segédformot nem jelenítem meg a tálcán, arra nem lehet klikkelni), akkor ne csak a főform legyen látható ismét, hanem a segédform is, és ami még fontos, hogy a főform legyen az aktív.
Ezt a főformban elhelyezett következő kóddal tudtam elérni:
bool IsJustActivated = false;
private void Xform_Activated(object sender, EventArgs e)
{
if (!IsJustActivated)
{
IsJustActivated = true;
BackForm.Activate();
this.TopMost = true;
this.TopMost = false; //this.Activate() wont work
}
else
IsJustActivated = false;
}
}
Ahogy látjátok fent, fura módon a TopMost property változtatását alkalmaztam. Mindez csupán csak azt a célt szolgálja, hogy ne kerüljek végtelen ciklusban, ugyanis ha meghívtam volna Focus(), vagy Activate() függvények valamelyikét, akkor az Activated esemény újra kiváltódott volna, és az egész újra meghívódott volna. Lehet másként is meg lehetett volna oldani, mindenesetre nekem így sikerült a leggyorsabban.
De hogy kérdezzek is valamit, legyen a mostani téma az, hogy hogyan nézzen ki a kör végének a jelzése. Jelenleg egy gomb van a formon, de ezt talán át kellene rakni menübe, és ha megnyomja a játékos, akkor vége a körének, és a következő emberke kapja meg a lehetőséget. Ekkor ugye feljön egy új form, ahol ki lehet választani, hogy melyik akciókártyát játssza ki az adott körben a játékos, de szerintem ezt el kellene tüntetni. Viszont hogyan legyen helyette megoldva a dolog? Legyen a menüben egy 'Akciókártya kijátszása' gomb, és amíg erre nem nyom rá a felhasználó, addig nem csinálhat semmi mást? Végülis könnyen megvalósítható lenne, mert akkor 0 akcióponttal indul a kör, és csak akkor kap, ha kijátszik egy lapot... és persze 1 körben csak egyet lehet kijátszani. Szóval egész jól illene az eddigi megvalósításba.
Mit gondoltok? Más ötlet nekem még nem jutott eszembe erre.