コード例 #1
0
ファイル: pre.py プロジェクト: hitandaway100/caba
 def process(self):
     
     battleplayer = self.getBattlePlayer()
     if battleplayer is None or battleplayer.opponent == 0:
         # 対戦相手設定へ.
         self.redirectToOppSelect()
         return
     
     obj_list = self.getObjPlayerListByID([battleplayer.opponent])
     if not obj_list:
         # これも飛ばしておく.
         self.redirectToOppSelect()
         return
     
     self.setFromPage(Defines.FromPages.BATTLEPRE)
     
     v_player = self.getViewerPlayer()
     
     rankmaster = self.getBattleRankMaster()
     
     self.html_param['o_player'] = obj_list[0]
     
     self.html_param['player'] = Objects.player(self, v_player)
     self.html_param['battleplayer'] = Objects.battleplayer(self, battleplayer, rankmaster)
     
     # 最大ランク.
     model_mgr = self.getModelMgr()
     self.html_param['max_rank'] = BackendApi.get_battlerank_max(model_mgr, using=settings.DB_READONLY)
     
     # 残り対戦相手変更回数.
     self.html_param['opponent_change_restnum'] = BackendApi.get_battle_opponent_change_restcnt(model_mgr, battleplayer, rankmaster, using=settings.DB_READONLY)
     
     # アイテム.
     BackendApi.put_bprecover_uselead_info(self)
     
     # バトル開始URL.
     battleplayer = self.getBattlePlayer()
     url = UrlMaker.battledo(battleplayer.result)
     self.html_param['url_battle_do'] = self.makeAppLinkUrl(url)
     
     # 相手変更URL.
     url = UrlMaker.battleoppselect(battleplayer.change_cnt + 1)
     self.html_param['url_battle_oppselect'] = self.makeAppLinkUrl(url)
     
     # 金の鍵の獲得率.
     self.html_param['goldkey_rate'] = BackendApi.get_battle_goldkey_rate(model_mgr, battleplayer, rankmaster, using=settings.DB_READONLY)
     
     # 書き込み.
     if v_player.get_bp() < rankmaster.bpcost:
         self.writeAppHtml('battle/battleapnone')
     else:
         self.writeAppHtml('battle/battleselect')
コード例 #2
0
ファイル: result.py プロジェクト: hitandaway100/caba
    def process(self):

        model_mgr = self.getModelMgr()
        v_player = self.getViewerPlayer()

        self.setFromPage(Defines.FromPages.BATTLE)

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

        # 対戦相手.
        oid = battleresult.oid
        arr = BackendApi.get_players(self, [oid], [PlayerExp],
                                     using=settings.DB_READONLY)
        o_player = arr[0] if arr else None
        if o_player is None:
            # 相手が存在しない.
            if settings_sub.IS_LOCAL:
                raise CabaretError(u'相手が存在しない')
            url = UrlMaker.battle()
            self.appRedirect(self.makeAppLinkUrlRedirect(url))
            return

        obj_v_player, obj_o_player = self.getObjPlayerList(
            [v_player, o_player])

        obj_v_player['power_total'] = battleresult.data['v_power']
        obj_o_player['power_total'] = battleresult.data['o_power']

        obj_v_player['skilllist'] = battleresult.anim.make_html_skilllist(True)
        obj_o_player['skilllist'] = battleresult.anim.make_html_skilllist(
            False)

        self.html_param['player'] = obj_v_player
        self.html_param['o_player'] = obj_o_player

        if BackendApi.check_friend(v_player.id,
                                   oid,
                                   arg_model_mgr=model_mgr,
                                   using=settings.DB_READONLY):
            pass
        elif BackendApi.check_friendrequest_receive(
                v_player.id,
                oid,
                arg_model_mgr=model_mgr,
                using=settings.DB_READONLY):
            pass
        elif BackendApi.check_friendrequest_send(v_player.id,
                                                 oid,
                                                 arg_model_mgr=model_mgr,
                                                 using=settings.DB_READONLY):
            pass
        else:
            self.html_param['is_friendrequest_ok'] = True

        data = battleresult.data
        self.html_param['resultdata'] = data

        # 獲得したアイテム.
        prizes = data.get('prizes')
        if prizes:
            prizelist = BackendApi.get_prizelist(model_mgr,
                                                 prizes,
                                                 using=settings.DB_READONLY)
            self.html_param['prize'] = BackendApi.make_prizeinfo(
                self, prizelist, using=settings.DB_READONLY)

        # レベルアップしたカード.
        obj_lebelupcardlist = []
        levelupcardlist = BackendApi.get_cards(battleresult.levelupcard.keys(),
                                               model_mgr,
                                               using=settings.DB_READONLY)
        for levelupcard in levelupcardlist:
            obj_card = Objects.card(self, levelupcard)
            obj_card['level_add'] = battleresult.levelupcard.get(
                levelupcard.id, 0)
            obj_lebelupcardlist.append(obj_card)
        self.html_param['levelupcardlist'] = obj_lebelupcardlist

        # 回復アイテム.
        BackendApi.put_bprecover_uselead_info(self)

        # 続けて戦う.
        url = UrlMaker.battleoppselect(0)
        self.html_param['url_battlecontinue'] = self.makeAppLinkUrl(url)

        # html書き込み.
        if data['is_win']:
            # 金の鍵の獲得率.
            battleplayer = self.getBattlePlayer()
            rankmaster = self.getBattleRankMaster()
            self.html_param[
                'goldkey_rate'] = BackendApi.get_battle_goldkey_rate(
                    model_mgr,
                    battleplayer,
                    rankmaster,
                    using=settings.DB_READONLY)
            self.writeAppHtml('battle/battlewin')
        else:
            self.writeAppHtml('battle/battlelose')
コード例 #3
0
 def redirectToOppSelect(self):
     battleplayer = self.getBattlePlayer()
     post_cnt = (battleplayer.change_cnt + 1) if battleplayer else 0
     url = UrlMaker.battleoppselect(post_cnt)
     self.appRedirect(self.makeAppLinkUrlRedirect(url))