1. ActionScript / Говнокод #13530

    −91

    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
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    private function checkResourcesForIcon():void {
        if (!(this is TotemMediator)) {
            if ((!Player.instance.friendMode && buildable && step && step.bubbleIco) || _ico) {
                sendNotification(GameNotifications.ADD_RESOURCE_CHECKER, {
                    'caller_id': id, 'res_v': step.requirement,
                    'action_0': { 'notification': ObjectNotifications.UPDATE_ICON, 'body': {'id': id, 'check': false } },
                    'action_1': { 'notification': ObjectNotifications.UPDATE_ICON, 'body': {'id': id, 'check': true } }
                });
            }
        }
    }
    // команда на GameNotifications.ADD_RESOURCE_CHECKER
    override public function execute(notification:INotification):void {
        super.execute(notification);
        var body:Object = notification.getBody();
        var resChecker:ResourceChecker = this.facade.retrieveProxy(ResourceChecker.NAME) as ResourceChecker;
        resChecker.addChecker(body.caller_id, body.res_v, body.action_0, body.action_1);
    }
    // ResourceChecker
    public function addChecker(callerId:String, resV:Vector.<ResourceData>, action0:Object, action1:Object):void {
        if (!callersToCheck) {
            callersToCheck = { };
        }
        //overwrite
        callersToCheck[callerId] = { 'res':resV, 'action0':action0, 'action1':action1, 'enough':false };
        //recheck
        checkCaller(callerId);
    }
    private function checkCaller(callerId:String):void {
        if (callersToCheck[callerId]) {
            var checkV:Vector.<ResourceData> = callersToCheck[callerId]['res'];
            var allEnough:Boolean = true;
            for each(var checkR:ResourceData in checkV) {
                if (checkR.resourcetype != 'WORKER') { //TODO: wtf with worker?
                    //if no such res or res not enough OR this is not completed quest
                    if ((!storedResources[checkR.resourcetype] || storedResources[checkR.resourcetype].quantity < checkR.quantity) && storedQuests.indexOf(checkR.resourcetype) == -1) {
                        allEnough = false;
                        break;
                    }
                }
            }
            if (allEnough && !callersToCheck[callerId]['enough']) {
                callersToCheck[callerId]['enough'] = true;
                executeAction(callersToCheck[callerId]['action1']);
            }else if (!allEnough && callersToCheck[callerId]['enough']) {
                callersToCheck[callerId]['enough'] = false;
                executeAction(callersToCheck[callerId]['action0']);
            }
        }
    }
    // и наконец
    private function executeAction(action:Object):void {
        if (action) {
            if (action['directive']) {
                Facade.getInstance().sendNotification(GameNotifications.RUN_DIRECTIVE, {name: action['directive'], args: action['args'] });
            } else if (action['notification']) {
                Facade.getInstance().sendNotification(action['notification'], action['body']);
            }
        }
    }

    Запостил: kyzi007, 01 Августа 2013

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

    • Какое-то странное сочетание очень щепетительного отношения к типам всяких служебных переменных, и при этом абсолютно похерены не то что типы, а даже структура данных, с которыми это все работает.

      Мне вообще не понятно, почему такое:
      var checkV:Vector.<ResourceData> = callersToCheck[callerId]['res'];

      собирается без предупреждений, как минимум, но это уже вопросы к авторам компилятора.
      Ответить
      • Так тут три человека писали. Один типы не признает по видимому, и судя по гитовым аннотациям уже давно у нас не работает )
        Я долго материлась на это анальное шунтирование в движке как увидела... Теперь у меня тасочка "выкосить хрень" с ссылкой на говнокод.
        Ответить
        • показать все, что скрытоТёлочка кодерочек пишет тасочки?
          Нет путика у программизмика.
          Ответить
        • Не одобряю предыдущего оратора, но слово "тасочка" и правда зело веселит.
          Ответить
          • Это же геймдев, либо мы все на креативе либо делаем официальное гавно, у нас много таких слов в обращении )
            Ответить
            • Ох.
              К слову, я провел полтора года в AS3/Flex-гейдеве и как-то вот мы таски тасками называли.
              Хотя вполне вероятно, что я писал исключительно официальное говно. на самом деле нет
              Ответить
          • Тасочка - это таск?
            Ответить
      • Кстати, http://my.mail.ru/apps/706899
        Потихоньку выползаем из альфы в бету.
        Ответить
        • > За последние 24 часа играло 10 человек
          И снизу 9 фотографий девушек + одна фотография чашки кофе с сердечком.
          Неплохая реклама, вобщем ;)
          Ответить
          • Та еще в каталоге нету. Вот только сегодня чуток траффик пустили чтобы посмотреть как оно.
            Ответить
            • Не, почему, это вполне себе очень даже хорошая реклама.
              Делать компьютерные игрушки, которые нравятся девушкам - не тривиальная задача, и никто толком не знает, как подступиться. (Ну только если речь не идет о дальневосточном рынке: там девушки нормальные и без комплексов играют во все то же самое). ВоВ очень гордится тем, что у них 40% (по непроверенным данным). В симсы одно время играло больше девочек... но так, чтобы была какая-нибудь игрушка, в которую играло бы больше девочек - такого я даже и не припомню.
              Есть, конечно, всякие там расскраски / нарядить героиню для похода за покупками / на вечеринку, но это не серьезно (и далеко не всегда собирает ожидаемую аудиторию...)
              Если на TED поискать по computer games, там где-то в начале списка было выступление по поводу игр для девочек, вобщем, если интересно.
              Ответить
              • Я бы не сказала что у нас прямо девчачья девчачья игра. Кстати когда то в статистике игры симулятора ухода за ребенком было много мужчин (причем активных игроков) что вывело меня в состояние шока.
                Ответить
                • >>в статистике игры симулятора ухода за ребенком было много мужчин
                  Видимо, обычные хорроры вроде амнезии или пенумбры приелись - вот они и решили попугать себя необычным способом.
                  Ответить
                • А симулятора ухода за мошонкой у вас нет?
                  Ответить
              • а как же мегахит "ферма"?
                да, пасьянсы!!11одинодин
                всяческие зумы (не знаю как её звать по-настоящему)
                15 лет назад еще была игра lines, вспомнил
                Ответить
                • Это котрую Зинга написала? В смысле демографии ничем особо не отличалась в своем жанре. Т.е. в целом казуальные игрушки такого плана собирают больше женской аудитории, но не на столько, чтобы даже за 50% перейти.
                  Вообще, феноменальное явление, при том, что женщины вцелом пользуются интернетом примерно в таком же объеме, как и мужчины - не понятно куда они деваются...
                  На моей поза-поза-прошлой работе (видео-чат "апп" для Фейсбука) когда нам после несколько месяцев работы Фейсбук дал сводку по пользователям менеджмент немного удивился... т.как оказалось, что третьей по размеру группой пользователей были школьницы из Филлипин. И, естесственно, выяснилось, что никто ничего про этих людей не знает. И не понятно почему... и вообще что за...
                  Это было примерно как... когда дают почитать юзер-стори в которой "дизайнер Боб послал программисту Джейн макет сайта; Программист Джейн открыла Эклипс ..." и т.д. и просто мечтатльно улыбаешься. А потом рядом с тобой в автобусе садится темненькая девушка с лаптом и в панической спешке по SSH чинит какой-то руби-по-рельсам сервер.
                  Ответить
                  • написала? зинга?
                    Зинга - fb - "farmville" - июнь 2009
                    мне их имя ниче не говорит - vk - "Щясливый фермер" - апрель 2009
                    "Happy farm" - где то посреди Китая - осень 2008
                    Ответить
                    • Про другие - что и когда писали не знаю. Про Зингу знаю только потому, что в контексте Фейсбука, а так меня это жанр как-то не интересовал.
                      Ответить
          • > За последние 24 часа играло 2 935 человека.

            Но... откуда?
            Ответить
            • Мээджик
              Ответить
            • >> За последние 24 часа играло 2 935 человека.
              Имхо, статистику по игрокам надо смотреть как минимум через недельку-две после старта проекта. Сейчас еще рановато.
              Ответить
              • Мы еще не стартанули, это тестовый прогон пользователей. А так - статистика возвращений в игру и вообще - хорошая.
                Ответить
                • А сейчас что-то число упало...

                  Вопрос к очевидцам: как сейчас в «Моём мире» дела с шансами попадания в каталог? Если я правильно понял, то приложения не должны содержать ссылок на внешние сайты, а в отличие от «Моего мира», во «Вконтакте» допускаются не только ссылки на внешние сайты, но и даже явная реклама. На что ещё нужно обратить внимание в первую очередь?
                  Ответить
    • Главное, чтобы не выросло в: http://govnokod.ru/9614
      Ответить
    • Лен, а на питоне гк будут? или у вас питонисты все разумные?
      Ответить

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