def finish(self): model_mgr = ModelRequestMgr() config = BackendApi.get_current_raideventconfig(model_mgr) config.endtime = self.__preconfig_endtime model_mgr.set_save(config) model_mgr.write_all() model_mgr.write_end()
def battle(self, player, o_player): BattleEventOppList.create(player.id, [o_player.id]).save() model_mgr = ModelRequestMgr() v_deck = BackendApi.get_deck(player.id, model_mgr) o_deck = BackendApi.get_deck(o_player.id, model_mgr) v_deck_cardlist = BackendApi.get_cards(v_deck.to_array(), model_mgr) o_deck_cardlist = BackendApi.get_cards(o_deck.to_array(), model_mgr) data = BackendApi.battle(player, v_deck_cardlist, o_player, o_deck_cardlist, AppRandom(), self.__eventmaster) BackendApi.tr_battleevent_battle(model_mgr, self.__eventmaster, self.__eventrankmaster, self.__eventrankmaster, player, o_player, v_deck.to_array(), o_deck.to_array(), data, 1, None, False, player.req_confirmkey, now=OSAUtil.get_now()) model_mgr.write_all() model_mgr.write_end() self.__player0.setModel( BackendApi.get_model(model_mgr, PlayerRequest, self.__player0.id))
def update_from_json(jsonstr): """JSONからマスターデータに保存. """ data = Json.decode(jsonstr) model_mgr = ModelRequestMgr() modellist = [] for cls_id in xrange(MasterData.MASTER_NUM_MAX): model_cls = MasterData.CLASSES.get(cls_id) if model_cls is None: raise CabaretError("Not Found:%d" % cls_id, CabaretError.Code.INVALID_MASTERDATA) clsname = model_cls.__name__ arr = data.get(clsname) or [] for dic in arr: ins = model_cls() for k, v in dic.items(): setattr(ins, k, v) model_mgr.set_save(ins) modellist.append(ins) def tr(): model_mgr.write_all() db_util.run_in_transaction_custom_retries(0, tr) model_mgr.write_end() MasterData.incrementEditCacheVersion() return modellist
def setUp(self): # Player. self.__player0 = self.create_dummy(DummyType.PLAYER) # レイド. raidmaster = self.create_dummy(DummyType.RAID_MASTER) # ハプニング. happeningmaster = self.create_dummy(DummyType.HAPPENING_MASTER, raidmaster.id) self.__happeningmaster = happeningmaster # ハプニング情報. happening = self.create_dummy(DummyType.HAPPENING, self.__player0.id, self.__happeningmaster.id) self.__happening = happening # 経験値情報. self.create_dummy(DummyType.PLAYER_LEVEL_EXP_MASTER, 1, exp=0) self.create_dummy(DummyType.PLAYER_LEVEL_EXP_MASTER, 2, exp=1) self.__player0.level = 1 self.__player0.exp = 0 self.__player0.getModel(PlayerExp).save() self.__player0.gold = 0 self.__player0.getModel(PlayerGold).save() model_mgr = ModelRequestMgr() BackendApi.tr_do_happening(model_mgr, self.__player0, self.__happeningmaster, self.__player0.req_confirmkey) model_mgr.write_all() model_mgr.write_end()
def tr(): model_mgr = ModelRequestMgr() config = CurrentBattleEventConfig.getByKeyForUpdate( CurrentBattleEventConfig.SINGLE_ID) for uid, num in platinum_piece_data.items(): if num == 0: continue if 0 < num < 9: BackendApi.tr_add_prize(model_mgr, uid, prizelist_data[num], gift_text) # BackendApi.tr_add_platinum_piece(model_mgr, uid, num) # piece = piecemaster_dict[uid] # # update the platinum piece slots (piece_number0 ~ piece_number8) to False # for index in xrange(1, 10): # setattr(piece, "piece_number{}".format(index - 1), False) # # update complete_cnt to 0 for precaution # setattr(piece, "complete_cnt", 0) # # add for update # model_mgr.set_save(piece) # model_mgr.set_save(config) model_mgr.write_all() model_mgr.write_end() return model_mgr, config
def finish(self): model_mgr = ModelRequestMgr() config = BackendApi.get_current_scouteventconfig(model_mgr) config.mid = self.__preconfig_mid model_mgr.set_save(config) model_mgr.write_all() model_mgr.write_end()
def write(): model_mgr = ModelRequestMgr() if mission_executer.isNeedCheck(): BackendApi.tr_complete_panelmission(model_mgr, self.__player.id, mission_executer, OSAUtil.get_now()) BackendApi.tr_receive_panelmission(model_mgr, self.__player.id, panel, self.__player.req_confirmkey, OSAUtil.get_now()) model_mgr.write_all() model_mgr.write_end()
def tr(): model_mgr = ModelRequestMgr() BackendApi.tr_cabaclubstore_advance_the_time( model_mgr, self.__player.id, self.__storemaster, cabaclub_dummy.now) model_mgr.write_all() model_mgr.write_end()
def setUp(self): # DMMID. self.__player = self.makePlayer(1000) self.__o_player = self.makePlayer(10) self.__o_player.getModel(PlayerGold).save() # 報酬. prize = self.create_dummy(DummyType.PRIZE_MASTER, gold=100) # ランク. prizes = [{'prizes':[prize.id], 'rate':10}] self.__rankmaster = self.create_dummy(DummyType.BATTLE_RANK_MASTER, win=10, times=10, winprizes=prizes) # 最大ランクを作っておく. self.create_dummy(DummyType.BATTLE_RANK_MASTER, win=10, times=10, winprizes=prizes) # 対戦相手設定. self.__battleplayer = self.create_dummy(DummyType.BATTLE_PLAYER, self.__player.id, self.__rankmaster.id, oid=self.__o_player.id, win=0, times=self.__rankmaster.times - 1) model_mgr = ModelRequestMgr() v_deck = BackendApi.get_deck(self.__player.id, model_mgr) o_deck = BackendApi.get_deck(self.__o_player.id, model_mgr) v_deck_cardlist = BackendApi.get_cards(v_deck.to_array(), model_mgr) o_deck_cardlist = BackendApi.get_cards(o_deck.to_array(), model_mgr) data = BackendApi.battle(self.__player, v_deck_cardlist, self.__o_player, o_deck_cardlist, AppRandom()) BackendApi.tr_battle(model_mgr, self.__player, self.__o_player, v_deck.to_array(), o_deck.to_array(), data, self.__battleplayer.result) model_mgr.write_all() model_mgr.write_end()
def setUp(self): # DMMID. self.__player = self.create_dummy(DummyType.PLAYER) model_mgr = ModelRequestMgr() protects = [] for _ in xrange(5): cardmaster = self.create_dummy(DummyType.CARD_MASTER) card = self.create_dummy(DummyType.CARD, self.__player, cardmaster) card.protection = True model_mgr.set_save(card) protects.append(card.id) not_protects = [] for _ in xrange(5): cardmaster = self.create_dummy(DummyType.CARD_MASTER) card = self.create_dummy(DummyType.CARD, self.__player, cardmaster) card.protection = False model_mgr.set_save(card) not_protects.append(card.id) model_mgr.write_all() model_mgr.write_end() self.__protects = protects self.__not_protects = not_protects
def tr_prezent(self, uid, prizelist, data, userlog, text): model_mgr = ModelRequestMgr() model_mgr.set_save(data) model_mgr.set_save(userlog) BackendApi.tr_add_prize(model_mgr, uid, prizelist, text) model_mgr.write_all() model_mgr.write_end()
def tr_write(self, uid, mid): # 限定的なので決め打ち str_date = '2016-10-03 12:00:00' model_mgr = ModelRequestMgr() rankmaster_id = CabaClubEventRankMaster.makeID(uid, mid) rank_model = model_mgr.get_model(CabaClubEventRankMaster, rankmaster_id) etime = BackendApi.to_cabaretclub_section_starttime(OSAUtil.get_now()) weekly_id = CabaClubScorePlayerDataWeekly.makeID(uid, etime) player_weekly = model_mgr.get_model(CabaClubScorePlayerDataWeekly, weekly_id) logs = UserLogCabaClubStore.fetchValues(filters={'ctime__gte': str_date, 'uid': uid}) if not logs: print('skip... uid:{}'.format(uid)) return proceeds = sum([log.proceeds for log in logs]) customer = sum([log.customer for log in logs]) if rank_model: self.tr_update_cabaclubrank_proceeds(model_mgr, rankmaster_id, weekly_id, proceeds, customer) if player_weekly: self.tr_update_score_playdata_weekly(model_mgr, rankmaster_id, weekly_id, proceeds, customer) print('fix... uid:{0} proceeds:{1} customer:{2}'.format(uid, proceeds, customer)) model_mgr.write_all() model_mgr.write_end()
def setUp2(self): model_mgr = ModelRequestMgr() # Player. self.__player0 = self.create_dummy(DummyType.PLAYER) # イベントマスター. eventmaster = self.setUpEvent(model_mgr=model_mgr) self.__eventmaster = eventmaster rankmaster = self.createRankMaster(1) self.setOpeningViewTime(self.__player0.id) PLAYER_NUM = 20 # スコア設定. score = 10000000 rankdata = [] model_mgr = ModelRequestMgr() for _ in xrange(PLAYER_NUM): player = self.create_dummy(DummyType.PLAYER) BackendApi.tr_add_battleevent_battlepoint(model_mgr, self.__eventmaster, player.id, rankmaster, score, OSAUtil.get_now()) rankdata.insert(0, (player.id, score)) score *= 2 model_mgr.write_all() model_mgr.write_end()
def tr_write(self, uid, cabaclubstoremaster, now): """解約書き込み """ model_mgr = ModelRequestMgr() BackendApi.tr_cabaclubstore_cancel(model_mgr, uid, cabaclubstoremaster, now) model_mgr.write_all() model_mgr.write_end()
def tr_send_point(uid, starttime): """名誉ポイントの配布. """ model_mgr = ModelRequestMgr() scoredata_weekly = CabaClubScorePlayerDataWeekly.getByKeyForUpdate( CabaClubScorePlayerDataWeekly.makeID( uid, starttime)) if scoredata_weekly is None or scoredata_weekly.flag_aggregate: return 0 # 配布する数を計算. cabaclub_honor = int( math.ceil(scoredata_weekly.proceeds / 1000.0)) if 0 < cabaclub_honor: # 報酬付与. prizedata = PrizeData.create( cabaclub_honor=cabaclub_honor) BackendApi.tr_add_prize( model_mgr, uid, [prizedata], Defines.TextMasterID.CABARETCLUB_WEEKLY_PRIZE) # 重複防止. scoredata_weekly.flag_aggregate = True model_mgr.set_save(scoredata_weekly) model_mgr.write_all() model_mgr.write_end() return cabaclub_honor
def tr(): model_mgr = ModelRequestMgr() BackendApi.tr_cabaclubstore_set_cast(model_mgr, self.__player.id, self.__storemaster, self.__cardidlist, cabaclub_dummy.now) model_mgr.write_all() model_mgr.write_end()
def joinRank(self, uid): model_mgr = ModelRequestMgr() config = BackendApi.get_current_battleeventconfig(model_mgr) BackendApi.tr_battleevent_regist_group_for_user( model_mgr, config, self.__eventmaster, uid, 1, self.__eventrankmasters.values()) model_mgr.write_all() model_mgr.write_end()
def tr_write(self, uid, cabaclubstoremaster, now): """対策書き込み. """ model_mgr = ModelRequestMgr() BackendApi.tr_cabaclubstore_useraction(model_mgr, uid, cabaclubstoremaster, now) model_mgr.write_all() model_mgr.write_end()
def tr_write(self, users): model_mgr = ModelRequestMgr() for user in users: ins = GachaBoxResetPlayerData.makeInstance(user.id) ins.is_get_targetrarity = True model_mgr.set_save(ins) model_mgr.write_all() model_mgr.write_end()
def tr(): model_mgr = ModelRequestMgr() BackendApi.tr_cabaclub_store_rent(model_mgr, self.__player.id, self.__storemaster.id, self.__storemaster.days_0, cabaclub_dummy.now) model_mgr.write_all() model_mgr.write_end()
def tr_write(self, uid, storemaster, now): """店舗の時間を進める.""" model_mgr = ModelRequestMgr() BackendApi.tr_cabaclubstore_advance_the_time_with_checkalive( model_mgr, uid, storemaster, now) model_mgr.write_all() model_mgr.write_end() print "Done %d" % uid
def tr_advance_the_time(uid, cabaclubstoremaster, now): """店舗の時間をすすめる. """ model_mgr = ModelRequestMgr() BackendApi.tr_cabaclubstore_advance_the_time_with_checkalive( model_mgr, uid, cabaclubstoremaster, now) model_mgr.write_all() model_mgr.write_end()
def tr_send_ranking_prize(self, uid, prizelist, textid): model_mgr = ModelRequestMgr() config = CurrentProduceEventConfig.getByKeyForUpdate( CurrentProduceEventConfig.SINGLE_ID ) BackendApi.tr_add_prize(model_mgr, uid, prizelist, textid) model_mgr.write_all() model_mgr.write_end()
def finish(self): # チェック後にやりたいこと. entry = ShopPaymentEntry.getByKey(self.__paymentId) if entry: model_mgr = ModelRequestMgr() model_mgr.set_delete(entry) model_mgr.write_all() model_mgr.write_end()
def write(): model_mgr = ModelRequestMgr() BackendApi.tr_raidevent_trade_item(model_mgr, self.__player0, eventmaster, recipemaster, trade_num, self.__player0.req_confirmkey) model_mgr.write_all() model_mgr.write_end()
def tr_write(self, uid, cabaclubstoremaster, days, now): """借り入れ書き込み """ model_mgr = ModelRequestMgr() BackendApi.tr_cabaclub_store_rent(model_mgr, uid, cabaclubstoremaster, days, now) model_mgr.write_all() model_mgr.write_end()
def tr_write(v_player, o_player): """書き込み. """ model_mgr = ModelRequestMgr() BackendApi.tr_delete_friendrequest(model_mgr, v_player.id, o_player.id) model_mgr.write_all() model_mgr.write_end() return model_mgr
def executeScout(self): stagemaster = self.getStageByNumber(self.__playdata.stage) model_mgr = ModelRequestMgr() BackendApi.tr_do_raidevent_scout(model_mgr, self.eventmaster, self.__player0, stagemaster, self.__playdata.confirmkey, False) model_mgr.write_all() model_mgr.write_end()
def setUp(self): # Player. self.__player0 = self.create_dummy(DummyType.PLAYER) # デッキ. deck = Deck(id=self.__player0.id) cardmaster = self.create_dummy(DummyType.CARD_MASTER) arr = [] for _ in xrange(Defines.DECK_CARD_NUM_MAX - 3): cardmaster = self.create_dummy(DummyType.CARD_MASTER) card = self.create_dummy(DummyType.CARD, self.__player0, cardmaster) arr.append(card.id) deck.set_from_array(arr) deck.save() # ボス. boss = self.create_dummy(DummyType.BOSS_MASTER) boss.hp = 1000000 boss.defense = 10000 boss.save() # 報酬. itemmaster = self.create_dummy(DummyType.ITEM_MASTER) cardmaster = self.create_dummy(DummyType.CARD_MASTER) prize = self.create_dummy(DummyType.PRIZE_MASTER, gold=100, gachapt=10, item=itemmaster, card=cardmaster) # エリア. area = self.create_dummy(DummyType.AREA_MASTER, bossid=boss.id) area.prizes = [prize.id] area.save() # スカウト. for _ in xrange(5): scout = self.create_dummy(DummyType.SCOUT_MASTER, area=area) self.create_dummy(DummyType.SCOUT_PLAY_DATA, self.__player0.id, scout.id, scout.execution) self.__area = area bosshp, animdata = BackendApi.bossbattle(BackendApi.get_cards(arr), boss) model_mgr = ModelRequestMgr() if bosshp < 1: BackendApi.tr_area_clear(model_mgr, self.__player0, area) BackendApi.tr_save_bossresult(model_mgr, self.__player0.id, area, boss, animdata, self.__player0.req_confirmkey) model_mgr.write_all() model_mgr.write_end() self.__battlekey = self.__player0.req_confirmkey self.create_dummy(DummyType.EVENT_BANNER_MASTER)
def tr_write(self, uid, cabaclubstoremaster, now): """店舗開店書き込み. """ model_mgr = ModelRequestMgr() BackendApi.tr_cabaclub_store_open(model_mgr, uid, cabaclubstoremaster, now) if PlayerCrossPromotion.is_session(): BackendApi.update_player_cross_promotion(model_mgr, uid, 'is_open_cabaclub') model_mgr.write_all() model_mgr.write_end()