1. Lua / Говнокод #13425

    −86

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    ['run'] = function(num, skipt)
            if num > 0 and num <= table.maxn(_G.levels_code.list) then
                if tbl_save._.options.tutorial then
                    if ((_G.levels_code.list[num][2] == 1 and _G.levels_code.list[num][1] == 1) or (_G.levels_code.list[num][2] == 1 and _G.levels_code.list[num][1] == 0)) and not skipt then
                        game.Mission.instance():runLevel(fld.levelTutorial, 1)
                        mawidgets._.hud.action.set_lvl(fld.levelTutorial, 1)
                        mawidgets._.tips_widget.action.set('tutorial')
                        _G.widget_type = 'tutorial';
                        mawidgets._.tutorial.texts.tutorial_text:setText("Tutorial1")
                    elseif ((_G.levels_code.list[num][2] == 2 and _G.levels_code.list[num][1] == 1) or (_G.levels_code.list[num][2] == 5 and _G.levels_code.list[num][1] == 0)) and not skipt then
                        game.Mission.instance():runLevel(fld.levelTutorial, 2)
                        mawidgets._.hud.action.set_lvl(fld.levelTutorial, 2)
                        mawidgets._.tips_widget.action.set('tutorial')
                        _G.widget_type = 'tutorial';
                        mawidgets._.tutorial.texts.tutorial_text:setText("Tutorial2")
                    elseif ((_G.levels_code.list[num][2] == 3 and _G.levels_code.list[num][1] == 1) or (_G.levels_code.list[num][2] == 11 and _G.levels_code.list[num][1] == 0)) and not skipt then
                        game.Mission.instance():runLevel(fld.levelTutorial, 3)
                        mawidgets._.hud.action.set_lvl(fld.levelTutorial, 3)
                        mawidgets._.tips_widget.action.set('tutorial')
                        _G.widget_type = 'tutorial';
                        mawidgets._.tutorial.texts.tutorial_text:setText("Tutorial3")
                    elseif ((_G.levels_code.list[num][2] == 5 and _G.levels_code.list[num][1] == 1) or (_G.levels_code.list[num][2] == 15 and _G.levels_code.list[num][1] == 0)) and not skipt then
                        game.Mission.instance():runLevel(fld.levelTutorial, 4)
                        mawidgets._.hud.action.set_lvl(fld.levelTutorial, 4)
                        mawidgets._.tips_widget.action.set('tutorial')
                        _G.widget_type = 'tutorial';
                        mawidgets._.tutorial.texts.tutorial_text:setText("Tutorial4")
                    elseif ((_G.levels_code.list[num][2] == 6 and _G.levels_code.list[num][1] == 1) or (_G.levels_code.list[num][2] == 16 and _G.levels_code.list[num][1] == 0)) and not skipt then
                        game.Mission.instance():runLevel(fld.levelTutorial, 5)
                        mawidgets._.hud.action.set_lvl(fld.levelTutorial, 5)
                        mawidgets._.tips_widget.action.set('tutorial')
                        _G.widget_type = 'tutorial';
                        mawidgets._.tutorial.texts.tutorial_text:setText("Tutorial5")
                    else
                        mawidgets._.tips_widget.action.set('clear')
                        _G.widget_type = 0;
                        mawidgets._.tutorial.action.hide()
                        if _G.levels_code.list[num][1] == 2 and tbl_save._.options.tutorial_bonus then
                            mawidgets._.tutorial.texts.tutorial_text:setText("Tutorial6")
                        end
                        game.Mission.instance():runLevel(_G.levels_code.list[num][1], _G.levels_code.list[num][2])
                        mawidgets._.hud.action.set_lvl(_G.levels_code.list[num][1], _G.levels_code.list[num][2])
                    end
                else
                    mawidgets._.tips_widget.action.set('clear')
                    tbl_save._.options.tutorial_bonus = false
                    data.WriteDataInSlot(tbl_save._)
                    mawidgets._.tutorial.action.hide()
                    game.Mission.instance():runLevel(_G.levels_code.list[num][1], _G.levels_code.list[num][2])
                    mawidgets._.hud.action.set_lvl(_G.levels_code.list[num][1], _G.levels_code.list[num][2])
                end
            else print('_G.levels_code.run -> bad level num: ', num) end
        end;

    Игра - головоломка, язык этого гк - Lua, в проекте - ~ 26 000 файлов.
    Нет в жизни счастья.

    Запостил: krypt, 15 Июля 2013

    Комментарии (8) RSS

    • Туториал всегда гк.
      Ответить
      • если туториал непонятен, то проку с него?
        Ответить
        • Это меню туториала в игре
          Ответить
        • Объясняю. Вначале есть игра, набор механик. Потом, когда уже в принципе все готово и понятно как игра работает, где непонятно игроку, резко появляется тутор и меняется и перепиливается много раз, пока все станет ясно последнему среднестатистическому игроку. И в общем понятно что механики уникальны и на один раз. И времени и сил делать что то феншуйное нету, да и незачем.
          Ответить
    • Ну когда код такой наивный, его обычно просто механически отрефакторить. Бывает хуже, когд это в промежуточной стадии и кроме тупых повторений появляется еще наслоения "архитектуры" затрудняющие понимание и навигацию.
      Ответить
    • Мне нравится луа. Зря вы так.
      Ответить
      • Нравится, не нравится.. Это не отменят того, что приведённый фрагмент - говнокод
        Ответить

    Добавить комментарий