Dubblet!  *Two Player Platformer*
@Stage\n\n@Loading Screen\n\nwhen I receive [start game v]\nset [menu variable v] to [0]\ngo to x: (0) y: (0)\nset size to (2000) %\ngo to [front v] layer\nswitch backdrop to (szare tło v)\nswitch costume to (kostium1 v)\nset [ghost v] effect to (100)\nshow\nrepeat (10)\n    change [ghost v] effect by (-10)\n    change size by (-170)\nend\nstart sound [A Minor Ukulele v]\nbroadcast (GFE v)\nwait (2) seconds\nbroadcast (Menu v)\nset [menu variable v] to [1]\nforever\n    if <(Menu variable) = [1]> then\n        hide\n    end\nend\n\n@Choose skin p1\n\nwhen I receive [start game v]\nhide\nset size to (60) %\ngo to x: (-97) y: (-155)\nforever\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (40)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\nwhen I receive [menu v]\nswitch backdrop to (menu title v)\nforever\n    if <(Menu variable) = [1]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen this sprite clicked\nstart sound [Collect v]\nset [menu variable v] to [2]\nbroadcast (Skiny v)\nswitch backdrop to (menu title v)\n\n@Dubblet\n\nwhen I receive [start game v]\nhide\ngo to x: (0) y: (148)\nforever\n    repeat (5)\n        wait (0.05) seconds\n        change y by (2)\n    end\n    repeat (5)\n        wait (0.05) seconds\n        change y by (-2)\n    end\nend\n\nwhen I receive [menu v]\nforever\n    if <<(Menu variable) = [1]> or <<(Menu variable) = [2]> or <(Menu variable) = [4]>>> then\n        show\n    else\n        hide\n    end\nend\n\nwhen this sprite clicked\nif <(Menu variable) = [1]> then\n    set language to (en v)::tts\n    set voice to (giant v)::tts\n    speak [Dubblet!]::tts\nend\nif <(Menu variable) = [2]> then\n    set language to (en v)::tts\n    set voice to (giant v)::tts\n    speak [Skins]::tts\nend\nif <(Menu variable) = [4]> then\n    set language to (en v)::tts\n    set voice to (giant v)::tts\n    speak [How to play?]::tts\nend\n\nwhen I receive [start game v]\nforever\n    if <(Menu variable) = [4]> then\n        switch costume to (kostium3 v)\n    end\n    if <(Menu variable) = [1]> then\n        switch costume to (kostium1 v)\n    end\n    if <(Menu variable) = [2]> then\n        switch costume to (kostium2 v)\n    end\nend\n\n@Play Button\n\nwhen I receive [start game v]\nset [game v] to [0]\nhide\nset size to (90) %\ngo to x: (71) y: (-155)\nset [brightness v] effect to (0)\nforever\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (30)\n        set size to (95) %\n    else\n        set [brightness v] effect to (0)\n        set size to (90) %\n    end\nend\n\nwhen I receive [menu v]\nforever\n    if <(Menu variable) = [1]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen this sprite clicked\nstart sound [Collect v]\nset [menu variable v] to [0]\nswitch backdrop to ((Poziom Wybór) + (2))\nset [game v] to [1]\nbroadcast (Total Game start  v)\n\n@Wybór MAP Lewo\n\nwhen I receive [start game v]\nset [poziom wybór v] to [1]\nset size to (90) %\ngo to x: (-160) y: (0)\nhide\nforever\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (30)\n        set size to (90) %\n    else\n        set [brightness v] effect to (0)\n        set size to (80) %\n    end\nend\n\nwhen I receive [menu v]\nforever\n    if <(Menu variable) = [1]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen this sprite clicked\nstart sound [Chomp v]\nchange [poziom wybór v] by (-1)\n\nwhen I receive [start game v]\nforever\n    if <(Poziom Wybór) < [1]> then\n        set [poziom wybór v] to [5]\n    end\nend\n\n@Wybór MAP prawo\n\nwhen I receive [start game v]\nset size to (90) %\ngo to x: (160) y: (0)\nhide\nforever\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (30)\n        set size to (90) %\n    else\n        set [brightness v] effect to (0)\n        set size to (80) %\n    end\nend\n\nwhen I receive [menu v]\nforever\n    if <(Menu variable) = [1]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen this sprite clicked\nstart sound [Chomp v]\nchange [poziom wybór v] by (1)\n\nwhen I receive [start game v]\nforever\n    if <(Poziom Wybór) > [5]> then\n        set [poziom wybór v] to [1]\n    end\nend\n\n@Zdjęcia map\n\nwhen I receive [start game v]\nhide\ngo to x: (-4) y: (-2)\nset size to (50) %\n\nwhen I receive [menu v]\nforever\n    if <(Menu variable) = [1]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [start game v]\nforever\n    switch costume to (Poziom Wybór)\nend\n\n@Obstacles on Game maps\n\nwhen I receive [start game v]\ngo to x: (1) y: (15)\nhide\nset [ghost v] effect to (99.99)\n\nwhen I receive [total game start  v]\nif <(game) = [1]> then\n    show\n    switch costume to (Poziom Wybór)\nelse\n    hide\nend\n\nset [ghost v] effect to (0)\n\n@Player 1\n\nwhen I receive [start game v]\nhide\nset size to (60) %\nset [player 1 health v] to [3]\n\nwhen I receive [total game start  v]\nforever\n    if <(game) = [1]> then\n        show\n    else\n        hide\n    end\n    if <(game) = [1]> then\n        if <touching (killed zone v)?> then\n            change [player 1 health v] by (-1)\n            if <(Poziom Wybór) = [1]> then\n                go to x: (-148) y: (6)\n            end\n            if <(Poziom Wybór) = [2]> then\n                go to x: (-148) y: (6)\n            end\n            if <(Poziom Wybór) = [3]> then\n                go to x: (-146) y: (-82)\n            end\n            if <(Poziom Wybór) = [4]> then\n                go to x: (-150) y: (93)\n            end\n            if <(Poziom Wybór) = [5]> then\n                go to x: (-177) y: (-52)\n            end\n        end\n    end\nend\n\nwhen I receive [total game start  v]\nif <(Poziom Wybór) = [1]> then\n    go to x: (-148) y: (6)\nend\nif <(Poziom Wybór) = [2]> then\n    go to x: (-148) y: (6)\nend\nif <(Poziom Wybór) = [3]> then\n    go to x: (-146) y: (-82)\nend\nif <(Poziom Wybór) = [4]> then\n    go to x: (-146) y: (89)\nend\nif <(Poziom Wybór) = [5]> then\n    go to x: (-177) y: (-52)\nend\n\nwhen I receive [total game start  v]\nset [player 1 health v] to [3]\nset [x velocity p1 v] to [0]\nset [y velocity p1 v] to [0]\nforever\n    if <(game) = [1]> then\n        if <key (d v) pressed?> then\n            change [x velocity p1 v] by (1)\n        end\n        if <key (a v) pressed?> then\n            change [x velocity p1 v] by (-1)\n        end\n        change x by (X Velocity p1)\n        if <touching (obstacles on game maps v)?> then\n            change x by ((X Velocity p1) * (-1))\n            set [x velocity p1 v] to [0]\n        else\n            set [x velocity p1 v] to ((X Velocity p1) * (0.8))\n        end\n        change y by (Y Velocity p1)\n        if <touching (obstacles on game maps v)?> then\n            change y by ((Y Velocity p1) * (-1))\n            set [y velocity p1 v] to [0]\n            if <(Lock p1) = [0]> then\n                if <key (w v) pressed?> then\n                    set [y velocity p1 v] to [13]\n                    set [lock p1 v] to [1]\n                end\n            end\n        else\n            change [y velocity p1 v] by (-1)\n            set [lock p1 v] to [0]\n        end\n    end\nend\n\nwhen I receive [total game start  v]\nset rotation style [left-right v]\nswitch costume to (Skin p1 wybór)\nforever\n    if <(game) = [1]> then\n        if <key (d v) pressed?> then\n            set [direction of player 1 v] to [90]\n            point in direction (90)\n        end\n        if <key (a v) pressed?> then\n            set [direction of player 1 v] to [-90]\n            point in direction (-90)\n        end\n        if <touching (bullets of player 2 v)?> then\n            wait (0.1) seconds\n            if <(Poziom Wybór) = [1]> then\n                go to x: (-148) y: (6)\n            end\n            if <(Poziom Wybór) = [2]> then\n                go to x: (-148) y: (6)\n            end\n            if <(Poziom Wybór) = [3]> then\n                go to x: (-146) y: (-82)\n            end\n            if <(Poziom Wybór) = [4]> then\n                go to x: (-150) y: (93)\n            end\n            if <(Poziom Wybór) = [5]> then\n                go to x: (-177) y: (-52)\n            end\n        end\n    end\nend\n\nwhen I receive [total game start  v]\nforever\n    if <touching (bullets of player 2 v)?> then\n        change [player 1 health v] by (-1)\n        wait (0.4) seconds\n    end\n    if <(Player 1 Health) = [0]> then\n        set [game v] to [0]\n        broadcast (Player 2 wins v)\n        set [menu variable v] to [1]\n        broadcast (Menu v)\n        set [player 1 health v] to [3]\n    end\nend\n\n@Player 2\n\nwhen I receive [start game v]\nhide\nset size to (60) %\n\nwhen I receive [total game start  v]\nforever\n    if <(game) = [1]> then\n        show\n    else\n        hide\n    end\n    if <(game) = [1]> then\n        if <touching (killed zone v)?> then\n            change [player 2 health v] by (-1)\n            if <(Poziom Wybór) = [4]> then\n                go to x: (-29) y: (115)\n            end\n            if <(Poziom Wybór) = [2]> then\n                go to x: (165) y: (50)\n            end\n            if <(Poziom Wybór) = [3]> then\n                go to x: (151) y: (59)\n            end\n            if <(Poziom Wybór) = [1]> then\n                go to x: (154) y: (163)\n            end\n            if <(Poziom Wybór) = [5]> then\n                go to x: (180) y: (100)\n            end\n        end\n    end\nend\n\nwhen I receive [total game start  v]\nif <(Poziom Wybór) = [1]> then\n    go to x: (165) y: (135)\nend\nif <(Poziom Wybór) = [2]> then\n    go to x: (165) y: (50)\nend\nif <(Poziom Wybór) = [3]> then\n    go to x: (151) y: (59)\nend\nif <(Poziom Wybór) = [4]> then\n    go to x: (-26) y: (112)\nend\nif <(Poziom Wybór) = [5]> then\n    go to x: (180) y: (100)\nend\n\nwhen I receive [total game start  v]\nset [player 2 health v] to [3]\nset [x velocity p2 v] to [0]\nset [y velocity p2 v] to [0]\nforever\n    if <(game) = [1]> then\n        if <key (right arrow v) pressed?> then\n            change [x velocity p2 v] by (1)\n        end\n        if <key (left arrow v) pressed?> then\n            change [x velocity p2 v] by (-1)\n        end\n        change x by (X Velocity p2)\n        if <touching (obstacles on game maps v)?> then\n            change x by ((X Velocity p2) * (-1))\n            set [x velocity p2 v] to [0]\n        else\n            set [x velocity p2 v] to ((X Velocity p2) * (0.8))\n        end\n        change y by (Y Velocity p2)\n        if <touching (obstacles on game maps v)?> then\n            change y by ((Y Velocity p2) * (-1))\n            set [y velocity p2 v] to [0]\n            if <(Lock p2) = [0]> then\n                if <key (up arrow v) pressed?> then\n                    set [y velocity p2 v] to [13]\n                    set [lock p2 v] to [1]\n                end\n            end\n        else\n            change [y velocity p2 v] by (-1)\n            set [lock p2 v] to [0]\n        end\n    end\nend\n\nwhen I receive [total game start  v]\nswitch costume to (Skin p2 wybór)\nset rotation style [left-right v]\nforever\n    if <(game) = [1]> then\n        if <key (right arrow v) pressed?> then\n            set [directoin of player 2 v] to [90]\n            point in direction (-90)\n        end\n        if <key (left arrow v) pressed?> then\n            set [directoin of player 2 v] to [-90]\n            point in direction (90)\n        end\n        if <touching (bullets of player 1 v)?> then\n            wait (0.1) seconds\n            if <(Poziom Wybór) = [1]> then\n                go to x: (165) y: (135)\n            end\n            if <(Poziom Wybór) = [2]> then\n                go to x: (165) y: (50)\n            end\n            if <(Poziom Wybór) = [3]> then\n                go to x: (151) y: (59)\n            end\n            if <(Poziom Wybór) = [4]> then\n                go to x: (-26) y: (112)\n            end\n            if <(Poziom Wybór) = [5]> then\n                go to x: (180) y: (100)\n            end\n        end\n    end\nend\n\nwhen I receive [total game start  v]\nforever\n    if <touching (bullets of player 1 v)?> then\n        change [player 2 health v] by (-1)\n        wait (0.4) seconds\n    end\n    if <(Player 2 Health) = [0]> then\n        set [game v] to [0]\n        broadcast (Player 1 Wins v)\n        set [menu variable v] to [1]\n        broadcast (Menu v)\n        set [player 2 health v] to [3]\n    end\nend\n\n@Bullets of Player 1\n\nwhen I receive [start game v]\nhide\nset size to (50) %\n\nwhen I receive [total game start  v]\nforever\n    if <(game) = [1]> then\n        if <key (space v) pressed?> then\n            create clone of (_myself_ v)\n            wait until <not <key (space v) pressed?>>\n        end\n    end\nend\n\nwhen I start as a clone\npoint in direction (Direction of player 1)\ngo to (player 1 v)\nshow\nrepeat until <<touching (_edge_ v)?> or <touching (obstacles on game maps v)?>>\n    move (20) steps\nend\ndelete this clone\n\n@Killed zone\n\nwhen I receive [start game v]\ngo to x: (0) y: (-172)\nset [ghost v] effect to (99.99)\nforever\n    if <(game) = [1]> then\n        show\n    else\n        hide\n    end\nend\n\n@Back from game\n\nwhen I receive [start game v]\ngo to x: (0) y: (152)\ngo to [front v] layer\nforever\n    if <(game) = [1]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [total game start  v]\nforever\n    if <(game) = [1]> then\n        if <touching (mouse-pointer v)?> then\n            set [brightness v] effect to (30)\n        else\n            set [brightness v] effect to (0)\n        end\n    end\nend\n\nwhen this sprite clicked\nstart sound [Collect v]\nset [game v] to [0]\nset [menu variable v] to [1]\nswitch backdrop to (menu title v)\n\n@Back from skins\n\nwhen I receive [start game v]\ngo to x: (-188) y: (152)\ngo to [front v] layer\nforever\n    if <<(Menu variable) = [2]> or <<(Menu variable) = [3]> or <<(Menu variable) = [4]> or <(Menu variable) = [5]>>>> then\n        show\n    else\n        hide\n    end\nend\n\nwhen I receive [total game start  v]\nforever\n    if <<(Menu variable) = [2]> or <<(Menu variable) = [3]> or <<(Menu variable) = [4]> or <(Menu variable) = [5]>>>> then\n        if <touching (mouse-pointer v)?> then\n            set [brightness v] effect to (30)\n        else\n            set [brightness v] effect to (0)\n        end\n    end\nend\n\nwhen this sprite clicked\nstart sound [Collect v]\nset [menu variable v] to [1]\nswitch backdrop to (menu title v)\n\n@Music player\n\nwhen I receive [start game v]\nset [sound v] to [10]\nforever\n    set volume to (Sound) %\n    if <<<(Menu variable) = [2]> or <<(Menu variable) = [3]> or <<(Menu variable) = [4]> or <(Menu variable) = [5]>>>> or <<(Menu variable) = [1]> or <(game) = [1]>>> then\n        play sound [Dubblet! Theme Song perfect v] until done\n    end\nend\n\n@Bullets of Player 2\n\nwhen I receive [start game v]\nhide\nset size to (50) %\n\nwhen I receive [total game start  v]\nforever\n    if <(game) = [1]> then\n        if <key (5 v) pressed?> then\n            create clone of (_myself_ v)\n            wait until <not <key (5 v) pressed?>>\n        end\n    end\nend\n\nwhen I start as a clone\npoint in direction (Directoin of player 2)\ngo to (player 2 v)\nshow\nrepeat until <<touching (_edge_ v)?> or <touching (obstacles on game maps v)?>>\n    move (20) steps\nend\ndelete this clone\n\n@Panorama\n\nwhen flag clicked\nset [ghost v] effect to (0)\ngo to [front v] layer\ngo to x: (0) y: (0)\nset size to (101) %\nshow\nwait (1) seconds\nbroadcast (Start Game v)\nrepeat (10)\n    change [ghost v] effect by (10)\nend\nhide\n\n@HP of player 1\n\nwhen I receive [start game v]\ngo to x: (-170) y: (157)\nswitch costume to (3 v)\nset size to (90) %\nhide\n\nwhen I receive [total game start  v]\nforever\n    if <(game) = [1]> then\n        show\n        switch costume to ((Player 1 Health) + (1))\n    else\n        hide\n    end\nend\n\n@Player 1 WINS\n\nwhen I receive [start game v]\nset voice to (alto v)::tts\nset language to (en v)::tts\ngo to x: (0) y: (0)\nhide\n\nwhen I receive [player 2 wins v]\nshow\nswitch costume to (2 v)\nspeak [Player 2 win!]::tts\nwait (1) seconds\nhide\n\nwhen I receive [player 1 wins v]\nshow\nswitch costume to (1 v)\nspeak [Player 1 win!]::tts\nwait (1) seconds\nhide\n\n@HP of player 2\n\nwhen I receive [start game v]\ngo to x: (170) y: (157)\nswitch costume to (3 v)\nset size to (90) %\nhide\n\nwhen I receive [total game start  v]\nforever\n    if <(game) = [1]> then\n        show\n        switch costume to ((Player 2 Health) + (1))\n    else\n        hide\n    end\nend\n\n@Zmień skin lewo p1\n\nwhen I receive [start game v]\nhide\nset size to (70) %\ngo to x: (-80) y: (69)\nset [skin p1 wybór v] to [1]\n\nwhen I receive [start game v]\nforever\n    if <(Menu variable) = [2]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen this sprite clicked\nchange [skin p1 wybór v] by (-1)\nforever\n    if <(Skin p1 wybór) < [1]> then\n        set [skin p1 wybór v] to [6]\n    end\n    if <(Skin p1 wybór) > [6]> then\n        set [skin p1 wybór v] to [1]\n    end\nend\n\nwhen I receive [start game v]\nforever\n    if <(Menu variable) = [2]> then\n        if <touching (mouse-pointer v)?> then\n            set [brightness v] effect to (30)\n        else\n            set [brightness v] effect to (0)\n        end\n    end\nend\n\n@Zmień skin prawo p1\n\nwhen I receive [start game v]\nhide\nset size to (70) %\ngo to x: (80) y: (69)\n\nwhen I receive [start game v]\nforever\n    if <(Menu variable) = [2]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen this sprite clicked\nchange [skin p1 wybór v] by (1)\n\nwhen I receive [start game v]\nforever\n    if <(Menu variable) = [2]> then\n        if <touching (mouse-pointer v)?> then\n            set [brightness v] effect to (30)\n        else\n            set [brightness v] effect to (0)\n        end\n    end\nend\n\n@Skiny p1 prezent\n\nwhen I receive [start game v]\nhide\nset size to (100) %\ngo to x: (0) y: (69)\n\nwhen I receive [start game v]\nforever\n    if <(Menu variable) = [2]> then\n        switch costume to (Skin p1 wybór)\n        show\n    else\n        hide\n    end\nend\n\n@Zmień skin lewo p2\n\nwhen I receive [start game v]\nhide\nset size to (70) %\ngo to x: (-80) y: (-69)\nset [skin p2 wybór v] to [1]\n\nwhen I receive [start game v]\nforever\n    if <(Menu variable) = [2]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen this sprite clicked\nchange [skin p2 wybór v] by (-1)\nforever\n    if <(Skin p2 wybór) < [1]> then\n        set [skin p2 wybór v] to [6]\n    end\n    if <(Skin p2 wybór) > [6]> then\n        set [skin p2 wybór v] to [1]\n    end\nend\n\nwhen I receive [start game v]\nforever\n    if <(Menu variable) = [2]> then\n        if <touching (mouse-pointer v)?> then\n            set [brightness v] effect to (30)\n        else\n            set [brightness v] effect to (0)\n        end\n    end\nend\n\n@Zmień skin prawo p2\n\nwhen I receive [start game v]\nhide\nset size to (70) %\ngo to x: (80) y: (69)\n\nwhen I receive [start game v]\nforever\n    if <(Menu variable) = [2]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen this sprite clicked\nchange [skin p2 wybór v] by (1)\n\nwhen I receive [start game v]\nhide\nset size to (70) %\ngo to x: (80) y: (-69)\n\nwhen I receive [start game v]\nforever\n    if <(Menu variable) = [2]> then\n        if <touching (mouse-pointer v)?> then\n            set [brightness v] effect to (30)\n        else\n            set [brightness v] effect to (0)\n        end\n    end\nend\n\n@Skiny p2 prezent\n\nwhen I receive [start game v]\nhide\nset size to (100) %\ngo to x: (0) y: (-69)\n\nwhen I receive [start game v]\nforever\n    go to [front v] layer\n    if <(Menu variable) = [2]> then\n        switch costume to (Skin p2 wybór)\n        show\n    else\n        hide\n    end\nend\n\n@Graphics for Skins menu\n\nwhen I receive [start game v]\nhide\nset size to (100) %\ngo to x: (0) y: (0)\n\nwhen I receive [start game v]\nforever\n    if <(Menu variable) = [2]> then\n        show\n    else\n        hide\n    end\nend\n\n@Opcje / Ustawienia\n\nwhen I receive [start game v]\nhide\nset size to (23) %\ngo to x: (155) y: (-156)\nforever\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (40)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\nwhen I receive [start game v]\nhide\n\n@How to play\n\nwhen I receive [start game v]\nhide\nset size to (23) %\ngo to x: (160) y: (153)\nforever\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (40)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\nwhen I receive [menu v]\nforever\n    if <(Menu variable) = [1]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen this sprite clicked\nstart sound [Collect v]\nset [menu variable v] to [4]\nbroadcast (How to play v)\nswitch backdrop to (menu title v)\n\n@How to play info\n\nwhen I receive [start game v]\nhide\nset size to (100) %\ngo to x: (0) y: (0)\n\nwhen I receive [start game v]\nforever\n    if <(Menu variable) = [4]> then\n        show\n    else\n        hide\n    end\nend\n\n@About\n\nwhen I receive [start game v]\nhide\nset size to (23) %\ngo to x: (-160) y: (153)\nforever\n    if <touching (mouse-pointer v)?> then\n        set [brightness v] effect to (40)\n    else\n        set [brightness v] effect to (0)\n    end\nend\n\nwhen I receive [menu v]\nforever\n    if <(Menu variable) = [1]> then\n        show\n    else\n        hide\n    end\nend\n\nwhen this sprite clicked\nstart sound [Collect v]\nset [menu variable v] to [5]\nbroadcast (About v)\nswitch backdrop to (menu title v)\n\n@About info\n\nwhen I receive [start game v]\nhide\nset size to (90) %\ngo to x: (0) y: (0)\n\nwhen I receive [start game v]\nforever\n    if <(Menu variable) = [5]> then\n        show\n    else\n        hide\n    end\nend\n\n
2023 update - deleted all notes, because my writing skills were terrible, and overall description was outdated.\nThis is one of my oldest projects, have fun playing it!     