def makeCardObject(self, cardset, deck): obj_card = Objects.card(self, cardset, deck=deck) if cardset.card.id == self.__baseid or cardset.card.protection or obj_card[ 'deckmember']: raise CabaretError(u'パートナーに選択できないキャストです.', CabaretError.Code.ILLEGAL_ARGS) url = UrlMaker.compositionmaterial(self.__baseid) obj_card['url_composition'] = self.makeAppLinkUrl(url) return obj_card
def process(self): v_player = self.getViewerPlayer() model_mgr = self.getModelMgr() # 合成結果. compositiondata = BackendApi.get_compositiondata( model_mgr, v_player.id, using=settings.DB_READONLY) # ベースカード. basecardset = BackendApi.get_cards([compositiondata.result_baseid], model_mgr, using=settings.DB_READONLY) if not basecardset or basecardset[0].card.mid != compositiondata.mid: if settings_sub.IS_LOCAL: raise CabaretError(u'教育したキャストが見つかりません.') url = UrlMaker.composition() self.appRedirect(self.makeAppLinkUrlRedirect(url)) return basecardset = basecardset[0] self.html_param['basecard_post'] = Objects.card(self, basecardset) compositiondata.set_to_card(basecardset.card) self.html_param['basecard_pre'] = Objects.card(self, basecardset) # 素材カード. materialcardsetlist = BackendApi.get_cards( compositiondata.result_materialidlist, model_mgr, using=settings.DB_READONLY, deleted=True) self.html_param['cardlist'] = [ Objects.card(self, cardset) for cardset in materialcardsetlist ] # 経験値とレベル. self.html_param['exp'] = compositiondata.result_exp self.html_param['levelup'] = compositiondata.result_lvup # お金. self.html_param['cost'] = compositiondata.result_cost_gold # スキル. self.html_param['skilllevelup'] = compositiondata.result_skilllvup # 成功 or 大成功. self.html_param[ 'is_great_success'] = compositiondata.result_flag_great_success # 上昇値. level_pre = compositiondata.result_lvpre level_add = compositiondata.result_lvup power_add = 0 if 0 < level_add: basemaster = basecardset.master pow_pre = CardUtil.calcPower(basemaster.gtype, basemaster.basepower, basemaster.maxpower, level_pre, basemaster.maxlevel, basecardset.card.takeover) pow_post = CardUtil.calcPower(basemaster.gtype, basemaster.basepower, basemaster.maxpower, level_pre + level_add, basemaster.maxlevel, basecardset.card.takeover) power_add = pow_post - pow_pre self.html_param['power_add'] = power_add self.html_param['level_add'] = level_add self.html_param['skilllevel_add'] = compositiondata.result_skilllvup # 続けて合成のURL. url = UrlMaker.compositionmaterial(basecardset.id) self.html_param['url_continue'] = self.makeAppLinkUrl(url) self.writeAppHtml('composition/complete')
def makeUrlSelf(self): return UrlMaker.compositionmaterial(self.__baseid)
def process(self): args = self.getUrlArgs('/bossresult/') try: # エリア. areaid = int(args.get(0, None)) self.setAreaID(areaid) battlekey = urllib.unquote(args.get(1))[:32] if not battlekey: raise except: raise CabaretError(u'引数が想定外です', CabaretError.Code.ILLEGAL_ARGS) model_mgr = self.getModelMgr() v_player = self.getViewerPlayer() uid = v_player.id using = settings.DB_READONLY # 結果. bossbattle = BackendApi.get_bossresult(model_mgr, uid, areaid, using=using) if bossbattle is None: if settings_sub.IS_LOCAL: raise CabaretError(u'結果が見つかりませんでした', CabaretError.Code.ILLEGAL_ARGS) self.callFunctionByFromPage('redirectToScoutTop') return animdata = bossbattle.anim is_win = animdata.winFlag b_hp = animdata.bossHpPost # ボス情報. boss = self.getBossMaster() self.html_param['boss'] = self.makeBossObj(boss, b_hp) # デッキのカード. self.putDeckInfoParams() area = self.getAreaMaster() self.html_param['area'] = self.makeAreaObj(area, playdata=None) if is_win: # エリアクリア報酬情報. prizeidlist = self.callFunctionByFromPage('getAreaPrize') prizelist = BackendApi.get_prizelist(model_mgr, prizeidlist, using=using) self.html_param['prize'] = BackendApi.make_prizeinfo(self, prizelist, using=using) # 次のエリアの情報. self.callFunctionByFromPage('putNextAreaInfo') self.writeAppHtml('boss/bosswin') else: # イベントバナー. eventbanners = BackendApi.get_eventbanners( self, using=settings.DB_READONLY) if eventbanners: self.html_param['eventbanners'] = [ Objects.eventbanner(self, banner) for banner in eventbanners ] # 強化合成素材選択のページ. deck = self.getDeck() url = UrlMaker.compositionmaterial(deck.leader) self.html_param['url_composition_material'] = self.makeAppLinkUrl( url) self.writeAppHtml('boss/bosslose')