Ejemplo n.º 1
0
 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()
Ejemplo n.º 2
0
    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))
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
 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()
Ejemplo n.º 5
0
            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
Ejemplo n.º 6
0
 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()
Ejemplo n.º 7
0
 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()
Ejemplo n.º 8
0
 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()
Ejemplo n.º 9
0
 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()
Ejemplo n.º 10
0
    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()
Ejemplo n.º 12
0
    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()
Ejemplo n.º 13
0
    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()
Ejemplo n.º 14
0
 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()
Ejemplo n.º 15
0
 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
Ejemplo n.º 16
0
 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()
Ejemplo n.º 17
0
 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()
Ejemplo n.º 18
0
 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()
Ejemplo n.º 19
0
 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()
Ejemplo n.º 20
0
 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()
Ejemplo n.º 21
0
 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
Ejemplo n.º 22
0
 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()
Ejemplo n.º 23
0
 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()
Ejemplo n.º 24
0
 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()
Ejemplo n.º 25
0
 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()
Ejemplo n.º 26
0
 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()
Ejemplo n.º 27
0
 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
Ejemplo n.º 28
0
 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()
Ejemplo n.º 29
0
    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)
Ejemplo n.º 30
0
 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()