Esempio n. 1
0
    def process(self):

        model_mgr = self.getModelMgr()

        args = self.getUrlArgs('/battleeventresultanim/')
        eventid = args.getInt(0)
        rarity = args.getInt(1)
        piecenumber = args.getInt(2)
        is_complete = args.getInt(3)

        eventmaster = None
        if eventid:
            eventmaster = BackendApi.get_battleevent_master(
                model_mgr, eventid, using=settings.DB_READONLY)

        if eventmaster is None:
            if settings_sub.IS_LOCAL:
                raise CabaretError(u'引数がおかしい')
            self.redirectToTop()
            return

        v_player = self.getViewerPlayer()
        uid = v_player.id

        # 結果データ.
        battleresult = BackendApi.get_battleevent_battleresult(
            model_mgr, eventid, uid, using=settings.DB_READONLY)
        if battleresult is None:
            # 結果が存在しない.
            if settings_sub.IS_LOCAL:
                raise CabaretError(u'結果がない')
            url = UrlMaker.battleevent_top(eventid)
            self.appRedirect(self.makeAppLinkUrlRedirect(url))
            return

        swf_params = {}
        piecedata = battleresult.data.get('piecedata')
        if piecedata and not piecedata.get('is_item'):
            url = UrlMaker.battleevent_battlepiecepresent(
                eventid, piecedata['rarity'], piecedata['piece'],
                piecedata['is_complete'])
        else:
            url = UrlMaker.battleevent_battleresult(eventid)

        swf_params['backUrl'] = self.makeAppLinkUrl(url)

        # 結果によって演出を変更.
        data = battleresult.data
        if data['is_win']:
            self.appRedirectToEffect('youwin/effect.html', swf_params)
        else:
            self.appRedirectToEffect('youlose/effect.html', swf_params)
Esempio n. 2
0
    def process(self):
        model_mgr = self.getModelMgr()

        uid = self.getViewerPlayer().id
        args = self.getUrlArgs('/battleeventbattlepiecepresent/')
        eventid = args.getInt(0)
        rarity = args.getInt(1)
        piecenumber = args.getInt(2)
        is_complete = args.getInt(3)

        if is_complete:
            piecemaster_list = BackendApi.get_battleevent_piecemaster(
                model_mgr, eventid, using=settings.DB_READONLY)
            piece_dir = BackendApi.get_battleevent_piecemaster_instance(
                rarity, piecemaster_list).name
            codename = BattleEventMaster.getByKey(eventid).codename
            piece_path = 'event/btevent/%s/%s/piece_complete.png' % (codename,
                                                                     piece_dir)
            effectpath = 'btevent/piece_complete/effect.html'
            mid = BackendApi.get_userdata_piece_complete_prize_cardid(
                uid, eventid, rarity)
            master = BackendApi.get_cardmasters([mid]).get(mid)
            url = UrlMaker.battleevent_battleresult(eventid, rarity,
                                                    piecenumber)
            params = {
                'backUrl': self.makeAppLinkUrl(url),
                'pre': self.url_static_img,
                'card': CardUtil.makeThumbnailUrlLarge(master),
                'piece': piece_path,
                'bg': 'event/btevent/%s/bg_piececomplete.png' % codename
            }

            self.appRedirectToEffect(effectpath, params)
        else:
            url = UrlMaker.battleevent_battleresult(eventid, rarity,
                                                    piecenumber)
            self.appRedirect(self.makeAppLinkUrlRedirect(url))