Exemple #1
0
function buduj($dane, $budynki, $id_budynku)
{
    //zabezpiecz zmienne
    $id_budynku = (int) $id_budynku;
    //ile budynków można mieć w kolejce
    $max_kolejka = 3;
    if (empty($budynki[$id_budynku])) {
        return "nie ma takiego budynku";
    } elseif ($budynki[$id_budynku]['poziom'] == $budynki[$id_budynku]['poziom_max']) {
        return "osiągnięto poziom maksymalny";
    } else {
        //pobierz funkcję do obsługi pobierania kosztów budynku
        fx('budynki_koszta');
        //pobierz funkcję do obsługi pobierania wymagań budynku
        fx('budynki_wymagania');
        //pobierz koszta dla następnego kolejnego poziomu budynku (stąd te $budynek['poziom'] +1 bo następny)
        $koszta = budynki_koszta($id_budynku, $budynki[$id_budynku]['poziom'] + 1);
        //pobierz wymagania obiektu
        $wymagania = budynki_wymagania($id_budynku, $budynki[$id_budynku]['poziom'] + 1, $budynki);
        if ($dane['planeta']['metal'] < $koszta['metal'] || $dane['planeta']['krysztaly'] < $koszta['krysztaly'] || $dane['planeta']['paliwo'] < $koszta['paliwo'] || $dane['planeta']['populacja_max'] - $dane['planeta']['populacja'] < $koszta['populacja']) {
            return "planeta nie posiada wystarczającej ilości surowców";
        } elseif ($wymagania['mozna'] == 0) {
            $opcje = "nie spełniono wymagań budowy";
        } else {
            //sprawdź czy budynek nie jest już w kolejce budowania
            $wkolejce = mysql_fetch_array(mysql_query("select kolejka from planetx_budynki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " and budynek = " . $id_budynku));
            if (!empty($wkolejce)) {
                return "ten obiekt jest już w kolejce rozbudowy";
            } else {
                //sprawdź ile aktualnie jest budowanych budynków
                $kolejka = mysql_fetch_array(mysql_query("select count(*) as ile from planetx_budynki_kolejka where planeta_id = " . $dane['aktywna_planeta']));
                if ($kolejka['ile'] == $max_kolejka) {
                    return "kolejka rozbudowy zajęta";
                } else {
                    //pobierz ostatni budynek z kolejki
                    $ostatni = mysql_fetch_array(mysql_query("select koniec from planetx_budynki_kolejka where planeta_id = " . $dane['aktywna_planeta'] . " order by koniec desc limit 1"));
                    if (empty($ostatni['koniec'])) {
                        //jeżeli nic nie jest budowane to ustaw aktualny czas jako start budowy
                        $start = time();
                    } else {
                        //jest coś budowane, więc dodaj budynek na koniec kolejki rozbudowy
                        $start = $ostatni['koniec'];
                    }
                    $koniec = $start + $koszta['czas_budowy'];
                    //dodaj do kolejki
                    mysql_query("insert into planetx_budynki_kolejka (planeta_id, budynek, start, koniec) value (" . $dane['aktywna_planeta'] . "," . $id_budynku . "," . $start . "," . $koniec . ")");
                    //odbierz surowce
                    mysql_query("update planetx_planety set metal = metal -" . $koszta['metal'] . ", krysztaly = krysztaly - " . $koszta['krysztaly'] . ", paliwo = paliwo -" . $koszta['paliwo'] . ", populacja = populacja +" . $koszta['populacja'] . " where planeta = " . $dane['aktywna_planeta']);
                    return "rozpoczęto budowę";
                }
            }
        }
    }
}
Exemple #2
0
//pobierz funkcję do obsługi pobierania kosztów budynku
fx('budynki_koszta');
//pobierz funkcję do obsługi pobierania wymagań budynku
fx('budynki_wymagania');
//wyświetl wszystkie budynki
foreach ($budynki as $budynek) {
    //wyświetl nagłówek budynku wraz z obrazkiem
    echo "\n\t\t<div style='width:100%; '>\n\t\t\t\t<div style='width:120px; text-align:center; float:left;'>\n\t\t\t\t\t\n\t\t\t\t\t<img src='www/buildings/" . $budynek['budynek'] . ".gif' alt='' title='" . $budynek['nazwa'] . "' />\n\t\t\t\t\t\n\t\t\t\t</div>\n\t\t\t\t<div style='margin-left:120px; min-height:200px; background:#01498D; color:#fff; padding:5px'>\n\t\t\t\t\t<span  style='color:#66FF00;'>" . $budynek['nazwa'] . " [ " . $budynek['poziom'] . " ] </span><hr/>\n\t\t\t\t\t" . $budynek['opis'] . "<hr/>\t\t\n\t\t\t\t\t<u style='color:#FF0000'><b>Maksymalny poziom: " . $budynek['poziom_max'] . "</b></u><br/>\n\t\t\t\t\t<hr/>\n\t\t";
    //jeżeli poziom budynku nie jest jeszcze poziomem maksymalnym to pobierz koszta rozbydowy i wyświetl tabelkę
    if ($budynek['poziom'] < $budynek['poziom_max']) {
        //pobierz koszta dla następnego kolejnego poziomu budynku (stąd te $budynek['poziom'] +1 bo następny)
        $koszta = budynki_koszta($budynek['budynek'], $budynek['poziom'] + 1);
        echo "\t<table style='text-align:center'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>metal</td>\n\t\t\t\t\t\t\t<td>kryształy</td>\n\t\t\t\t\t\t\t<td>paliwo</td>\n\t\t\t\t\t\t\t<td>populacja</td>\n\t\t\t\t\t\t\t<td>czas</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>" . $koszta['metal'] . "</td>\n\t\t\t\t\t\t\t<td>" . $koszta['krysztaly'] . "</td>\n\t\t\t\t\t\t\t<td>" . $koszta['paliwo'] . "</td>\n\t\t\t\t\t\t\t<td>" . $koszta['populacja'] . "</td>\n\t\t\t\t\t\t\t<td>" . $koszta['czas_budowy'] . "</td>\t\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t";
    }
    //pobierz wymagania obiektu
    $wymagania = budynki_wymagania($budynek['budynek'], $budynek['poziom'] + 1, $budynki);
    $opcje = "";
    if ($budynek['kolejka'] == 0) {
        //oblicz ile czasu pozostało do zakończenia budowy
        $pozostało = $budynek['kolejka_koniec'] - time();
        //pokaż informacje o tym, że buduje się dany obiekt
        $opcje = "<span  style='color:#FF0000;'>budynek jest w kolejce budowania, do zakończenia budowy pozostało: ";
        //dołącz licznik czasu
        $opcje .= "<span id='b" . $budynek['budynek'] . "'></span></span>";
        //dołącz funkcję odliczającą czas
        $opcje .= "<script type='text/javascript'>liczCzas('b" . $budynek['budynek'] . "'," . $pozostało . ")</script>";
        //dołącz guzik przerwania budowy
        $opcje .= "<a href='?akcja=planeta&budynek=" . $budynek['budynek'] . "&przerwij'>[ x ]</a>";
    } elseif ($budynek['poziom'] == $budynek['poziom_max']) {
        //osiągnięto maksymalny poziom
        $opcje = "<span  style='color:#FF0000;'>osiągnięto maksymalny poziom rozbudowy danego budynku</span>";