vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
function Tetris_stone_is_down_ms_dos (r)
        local linie = Tetris["game"]["score"]["linie"];
        local lines = 0;
        --stein in feldliste speichern
        Tetris_save_stone ();
        --überprüfen ob eine linie komplett ist
        while 1 do
                local ergebnis = Tetris_complet_zeile_test ();
                if (ergebnis == 0) then
                        break
                else
                        --linie löschen und steine runterfallen lassen
                        Tetris_delet_line (ergebnis);
                        --linie um 1 erhöhen
                        linie = linie + 1;
                        --lines um 1 erhöhen
                        lines = lines + 1;
                        Tetris_GF_gamewindow_Update ();
                end
        end
        --linie speichern
        Tetris["game"]["score"]["linie"] = linie ;
        --score berechnen
        Tetris_score_handler_ms_dos (r);
        --eventuell lvlup ?
        Tetris_lvl_handler_ms_dos ();
        Tetris_new_stone ();
        --sound
        if (lines == 4) then
                Tetris_play_sound ("tet");
        else
                if (lines == 0) then
                        Tetris_play_sound ("d");                        
                else
                        Tetris_play_sound ("dl");
                end     
        end
end

function Tetris_gameover_ms_dos ()
        --variablen holen und setzen
        local highscore = Tetris["highscore"]["ms_dos"];
        local score = Tetris["game"]["score"]["points"];
        --score speichern
        if (score > highscore) then
                Tetris["highscore"]["ms_dos"] = score;
                Tetris_GF_highscore_Show ();
        end
        --ingamestatus ändern
        Tetris_ingame (0);
end

function Tetris_newgame_ms_dos ()
                local ingame = Tetris["ingame"];
                if (ingame == 1) then
                        Tetris_gameover ();
                end
                --alles reseten
        Tetris["game"]= { };
        Tetris["game"]["feld"]= { };
        Tetris["game"]["s_temp"]= { };
                Tetris["game"]["s_temp"]["temp"]= { }; 
        Tetris["game"]["s_NS_temp"]= { };  
        Tetris["game"]["s_gost"] = { };
        Tetris["game"]["s_gost"]["temp"] = { };
                --spiel typ
                Tetris["game"]["gametyp"]=1;
        --x spalten
        Tetris["game"]["x"]=10;
        --y zeilen
        Tetris["game"]["y"]=20;
        --x NS spalten
        Tetris["game"]["NS_x"]=4;
        --y NS zeilen
        Tetris["game"]["NS_y"]=3;
        --nummer des nächsten bausteins
        Tetris["game"]["s_next"]=0;
        --nummer des aktuellen bausteins
        Tetris["game"]["s"]=0;
        --anz_steine des aktuellen bausteins
        Tetris["game"]["s_anz_s"]=0;
        --anz_lagen aktuellen bausteins
        Tetris["game"]["s_anz_l"]=0;
        --aktuelle lage des bausteins
                Tetris["game"]["s_lage"]=0;
                --x pos des hauptbausteins
                Tetris["game"]["s_pos_x"]=0;
                --y pos des hauptbausteins
                Tetris["game"]["s_pos_y"]=0;
        --start timer
        Tetris["game"]["timer"] = 0.5;
        Tetris["game"]["timer_go"] = 1;
                --scores
                Tetris["game"]["score"] = {};
                Tetris["game"]["score"]["points"]=0;            
                Tetris["game"]["score"]["lvl"]=0;
                Tetris["game"]["score"]["linie"]=0;
                Tetris["game"]["stones"] = { 
                1,
                2,
                3,
                4,
                5,
                6,
                7
                };
                --grösse des table speichern
                Tetris["game"]["stones"]["anz_stones"]=table.getn(Tetris["game"]["stones"]);
        --x spalten
        Tetris["game"]["x"]=10;
        --y zeilen
        Tetris["game"]["y"]=20;
        Tetris_GF_gamewindow_Clear ();
                Tetris_ingame(1);
                Tetris_GF_create ();
                Tetris_GF_NS_create ();
                Tetris_fieldlist_create ();
                Tetris_GF_gamewindow_Update ();
                Tetris_GF_SetFramesPos();
                Tetris_new_stone ();
                Tetris_GF_timer_Update ();
                Tetris_GF_Titeltext_Update ();
                Tetris_GF_highscore_Show ();
end

function Tetris_lvl_handler_ms_dos ()

        --variablen holen und setzen
        local lvl = Tetris["game"]["score"]["lvl"];
        local linie = Tetris["game"]["score"]["linie"];
        local timer = Tetris["game"]["timer"];

        if (linie < 11) then
                lvl = 0;
                timer = 0.5;
        end
        if (linie > 10) then
                lvl = 1;
                timer = 0.45;
        end
        if (linie > 20) then
                lvl = 2;
                timer = 0.40;
        end
        if (linie > 30) then
                lvl = 3;
                timer = 0.35;
        end
        if (linie > 40) then
                lvl = 4;
                timer = 0.30;
        end
        if (linie > 50) then
                lvl = 5;
                timer = 0.25;
        end
        if (linie > 60) then
                lvl = 6;
                timer = 0.20;
        end
        if (linie > 70) then
                lvl = 7;
                timer = 0.15;
        end
        if (linie > 80) then
                lvl = 8;
                timer = 0.10;
        end
        if (linie > 90) then
                lvl = 9;
                timer = 0.05;
        end
        --lvl speichern
        Tetris["game"]["score"]["lvl"] = lvl;
        --timer speichern
        Tetris["game"]["timer"] = timer;
end

function Tetris_score_handler_ms_dos (r)
--r = wie erechnet sich die score
--              d = instant drop
--              timer = normaler fall durch timer
        local score = Tetris["game"]["score"]["points"];                
        local lvl = Tetris["game"]["score"]["lvl"];
        local s_plus = 0;
        
        if (lvl == 0) then
                if (r == "timer") then
                        s_plus = 6;
                else
                        s_plus = 24;
                end
        end
        if (lvl == 1) then
                if (r == "timer") then
                        s_plus = 9;
                else
                        s_plus = 27;
                end
        end
        if (lvl == 2) then
                if (r == "timer") then
                        s_plus = 12;
                else
                        s_plus = 30;
                end
        end
        if (lvl == 3) then
                if (r == "timer") then
                        s_plus = 15;
                else
                        s_plus = 33;
                end
        end
        if (lvl == 4) then
                if (r == "timer") then
                        s_plus = 18;
                else
                        s_plus = 36;
                end
        end
        if (lvl == 5) then
                if (r == "timer") then
                        s_plus = 21;
                else
                        s_plus = 39;
                end
        end
        if (lvl == 6) then
                if (r == "timer") then
                        s_plus = 24;
                else
                        s_plus = 42;
                end
        end
        if (lvl == 7) then
                if (r == "timer") then
                        s_plus = 27;
                else
                        s_plus = 45;
                end
        end
        if (lvl == 8) then
                if (r == "timer") then
                        s_plus = 30;
                else
                        s_plus = 48;
                end
        end
        if (lvl == 9) then
                if (r == "timer") then
                        s_plus = 33;
                else
                        s_plus = 51;
                end
        end
        --neue score speichern
        Tetris["game"]["score"]["points"] = score+s_plus;
end

function Tetris_gameresume_ms_dos ()
            Tetris_GF_NS_create ();
        Tetris_GF_NS_Clear ();
        Tetris_GF_NS_Show ();
        Tetris_GF_create ();
        Tetris_GF_gamewindow_Update ();
        Tetris_GF_SetFramesPos();
        Tetris_GF_timer_Update ();
        Tetris_GF_Titeltext_Update ();
        Tetris_GF_Text_Score_Update ();
        Tetris_GF_highscore_Show ();
        Tetris_gost_stone ();
        Tetris_GF_gamewindow_falling_stone_Show ();
end