def makeScoutObj(self, scoutmaster, scoutplaydata): """スカウト情報作成. """ v_player = self.getViewerPlayer() progress = scoutplaydata.progress if scoutplaydata else 0 dropitems = BackendApi.get_dropitemobj_list(self, v_player, scoutmaster, using=settings.DB_READONLY) obj_scout = Objects.scout(self, v_player, scoutmaster, progress, dropitems) return obj_scout
def proc_SCOUT00_TOP(self, area, scout, scout_cnt): """スカウトTop. """ v_player = self.getViewerPlayer(True) self.html_param['area'] = Objects.area(self, area, None) obj_scout = Objects.scout(self, v_player, scout, scout_cnt, []) obj_scout['url_exec'] = self.makeAppLinkUrl(self.makeUrlNext()) self.html_param['scoutlist'] = [obj_scout] self.putPlayerInfo(scout_cnt=scout_cnt) self.writeAppHtml('scout/scout')
def proc_SCOUT00_CARDGET(self, area, scout, scout_cnt): """スカウト実行アニメーション(スカウト成功). """ v_player = self.getViewerPlayer(True) card = self.getLeaderCard() obj_scout = Objects.scout(self, v_player, scout, scout_cnt, []) obj_scout['url_exec'] = self.makeAppLinkUrl(self.makeUrlNext()) self.html_param['scout'] = obj_scout self.html_param['card'] = Objects.card(self, card, is_new=True) self.putPlayerInfo(scout_cnt=scout_cnt) self.writeAppHtml('scout/cardgetresult_success')
def proc_SCOUT02_RESULT(self, area, scout, scout_cnt): """宝箱獲得結果. """ v_player = self.getViewerPlayer(True) self.html_param['area'] = Objects.area(self, area, None) self.html_param['scout'] = Objects.scout(self, v_player, scout, scout_cnt, []) self.html_param['url_next'] = self.makeAppLinkUrl(self.makeUrlNext()) self.html_param['treasure_view'] = Objects.treasure_view( self, Defines.TreasureType.SILVER) self.putPlayerInfo(scout_cnt=scout_cnt) self.writeAppHtml('scout/treasureget')
def proc_SCOUT01_CARDGET(self, area, scout, scout_cnt): """スカウト実行アニメーション(スカウト成功). """ model_mgr = self.getModelMgr() v_player = self.getViewerPlayer(True) card = BackendApi.get_tutorial_scoutdropcard( model_mgr, v_player.ptype, using=settings.DB_READONLY) obj_scout = Objects.scout(self, v_player, scout, scout_cnt, []) obj_scout['url_exec'] = self.makeAppLinkUrl(self.makeUrlNext()) self.html_param['scout'] = obj_scout self.html_param['card'] = Objects.card(self, card, is_new=True) self.putPlayerInfo(scout_cnt=scout_cnt) self.writeAppHtml('scout/cardgetresult_success')
def process(self): model_mgr = self.getModelMgr() v_player = self.getViewerPlayer() viewer_id = v_player.id page_contentnum = Defines.SCOUTAREAMAP_CONTENTNUM_PER_PAGE # 遊べるエリア. arealist = BackendApi.get_playable_area_all(model_mgr, viewer_id, using=settings.DB_READONLY) if not arealist: raise CabaretError(u'エリアがありません', CabaretError.Code.INVALID_MASTERDATA) arealist.sort(key=operator.attrgetter('id'), reverse=True) playdata_dict = BackendApi.get_areaplaydata( model_mgr, viewer_id, [area.id for area in arealist], using=settings.DB_READONLY) # 現在ページ. contentnum = len(arealist) page_max = max( 1, int((contentnum + page_contentnum - 1) / page_contentnum)) page = 0 try: page = min(page_max - 1, int(self.request.get(Defines.URLQUERY_PAGE, 0))) except: pass scoutidlist = [] # 現在エリア. cur_area = arealist[0] self.html_param['area'] = Objects.area(self, cur_area, playdata_dict.get(cur_area.id)) # 現在のスカウト. arr = BackendApi.get_scoutidlist_by_area(model_mgr, cur_area.id, using=settings.DB_READONLY) if not arr: raise CabaretError(u'エリアのスカウトがありません', CabaretError.Code.INVALID_MASTERDATA) arr.sort(reverse=True) scoutmasterdict = BackendApi.get_scout_dict(model_mgr, arr, using=settings.DB_READONLY) for scoutid in arr: master = scoutmasterdict.get(scoutid) if master and BackendApi.check_scout_playable( model_mgr, master, v_player, using=settings.DB_READONLY): scoutidlist.append(scoutid) break # ページのエリア. start = page * page_contentnum end = start + page_contentnum arealist = arealist[start:end] obj_arealist = [] for area in arealist: if area.id != cur_area.id: arr = BackendApi.get_scoutidlist_by_area( model_mgr, area.id, using=settings.DB_READONLY) if not arr: raise CabaretError(u'エリアのスカウトがありません', CabaretError.Code.INVALID_MASTERDATA) arr.sort(reverse=False) scoutidlist.append(arr[0]) obj_arealist.append( Objects.area(self, area, playdata_dict.get(area.id))) obj_scout_dict = dict([ (scout.area, Objects.scout(self, v_player, scout, 0, [])) for scout in BackendApi.get_scouts( model_mgr, scoutidlist, using=settings.DB_READONLY) ]) self.html_param['arealist'] = obj_arealist self.html_param['area_scout_dict'] = obj_scout_dict # ページング. url = UrlMaker.areamap() self.putPagenation(url, page, contentnum, page_contentnum) self.writeAppHtml('scout/areamap')