def do_user_trade(self, status, proposed_time, proposed_uid, proposed_items, wish_items, accepted_time = None, trade_id = None, **opt): u""" トレード status -- トレードステータス(TradeStatus.[APPLY,ACCEPT,CANCEL,FINISH]) proposed_time -- 出品日時 proposed_uid -- 出品ユーザID proposed_items -- 出品アイテム一覧(例: ['ITEM/100/0/3', 'CARD/200/5/1']) wish_items -- 希望アイテム一覧(例: ['ITEM/100/0/3', 'CARD/200/5/1']) accepted_time (opt) -- トレード成立日時 trade_id (opt) -- トレードID """ assert TradeStatus.any_of(status) assert _isinstance(proposed_time, datetime) assert _isinstance(proposed_uid, StringTypes) assert _isinstance(accepted_time, datetime) or accepted_time == None assert _isinstance(trade_id, str) or trade_id == None assert self._is_trade_items(proposed_items) assert self._is_trade_items(wish_items) return self.log('do_user_trade', status = status, proposed_time = proposed_time, proposed_uid = proposed_uid, proposed_items = proposed_items, wish_items = wish_items, accepted_time = accepted_time, trade_id = trade_id, **opt)
def eraid_receive_rescue(self, event_id, battle_id, boss_id, boss_instance_id, sender_uid, **opt): u""" イベント_レイド_救援受信 event_id -- イベントID battle_id -- バトルID boss_id -- ボスID boss_instance_id -- ボスインスタンスID sender_uid -- 送信者UserID イベントIDには、どのイベントであるか区別できる、任意の文字列を指定して下さい。 このログは、救援を受けてやってきたと判断できるユーザアクションがあった場所で出力して下さい。 例えば救援要請のページを踏んだときなどに出力して下さい。 """ assert _isinstance(event_id, StringTypes) assert _isinstance(battle_id, StringTypes) assert _isinstance(boss_id, StringTypes) assert _isinstance(boss_instance_id, StringTypes) assert _isinstance(sender_uid, StringTypes) return self.log('eraid_receive_rescue', event_id=event_id, battle_id=battle_id, boss_id=boss_id, boss_instance_id=boss_instance_id, sender_uid=sender_uid, **opt)
def inc_point(self, point_type, before_value, after_value, value, **opt): u""" ゲーム内ポイント_増加 point_type -- ポイント種別 before_value -- 変化前の値 after_value -- 変化後の値 value -- 増減量 この派生アクションは、お金以外の、ユーザに直接関連付けられているデータが変動した時に出力して下さい。 例えば任侠道なら、盃ポイント、レア代紋などです。 ポイント種別には、それらのデータの種類毎に一意な名前を付けて下さい。 例えば 'SAKAZUKI_PT', 'RARE_DAIMON' などです。 """ assert _isinstance(point_type, StringTypes) assert _isinstance(before_value, NumberTypes) assert _isinstance(after_value, NumberTypes) assert _isinstance(value, NumberTypes) return self.log('inc_point', point_type = point_type, before_value = before_value, after_value = after_value, value = value, **opt)
def inc_point(self, point_type, before_value, after_value, value, **opt): u""" ゲーム内ポイント_増加 point_type -- ポイント種別 before_value -- 変化前の値 after_value -- 変化後の値 value -- 増減量 この派生アクションは、お金以外の、ユーザに直接関連付けられているデータが変動した時に出力して下さい。 例えば任侠道なら、盃ポイント、レア代紋などです。 ポイント種別には、それらのデータの種類毎に一意な名前を付けて下さい。 例えば 'SAKAZUKI_PT', 'RARE_DAIMON' などです。 """ assert _isinstance(point_type, StringTypes) assert _isinstance(before_value, NumberTypes) assert _isinstance(after_value, NumberTypes) assert _isinstance(value, NumberTypes) return self.log('inc_point', point_type=point_type, before_value=before_value, after_value=after_value, value=value, **opt)
def eraid_receive_rescue(self, event_id, battle_id, boss_id, boss_instance_id, sender_uid, **opt): u""" イベント_レイド_救援受信 event_id -- イベントID battle_id -- バトルID boss_id -- ボスID boss_instance_id -- ボスインスタンスID sender_uid -- 送信者UserID イベントIDには、どのイベントであるか区別できる、任意の文字列を指定して下さい。 このログは、救援を受けてやってきたと判断できるユーザアクションがあった場所で出力して下さい。 例えば救援要請のページを踏んだときなどに出力して下さい。 """ assert _isinstance(event_id, StringTypes) assert _isinstance(battle_id, StringTypes) assert _isinstance(boss_id, StringTypes) assert _isinstance(boss_instance_id, StringTypes) assert _isinstance(sender_uid, StringTypes) return self.log('eraid_receive_rescue', event_id = event_id, battle_id = battle_id, boss_id = boss_id, boss_instance_id = boss_instance_id, sender_uid = sender_uid, **opt)
def boss_battle(self, area_id, step_id, battle_result, player_deck=None, **opt): u""" ボスと戦闘 area_id -- エリア・都市・章・県etc... step_id -- area_id中での区分 battle_result -- バトル結果(BattleResult.[WIN,LOSE,NONE]) player_deck (opt) -- 攻撃する側のデッキ デッキ情報については battle_attack を参照して下さい。 """ assert _isinstance(area_id, StringTypes) assert _isinstance(step_id, StringTypes) assert BattleResult.any_of(battle_result) assert self._or_none(self._string_list)(player_deck) return self.log('boss_battle', area_id=area_id, step_id=step_id, battle_result=battle_result, player_deck=player_deck, **opt)
def present_receive(self, present_type, from_uid, item_type, item_id=None, **opt): u""" プレゼント_受信 present_type -- プレゼント種別(PresentType.[NORMAL,OFFICIAL,PROMOTION,CAMPAIGN]) from_uid -- 送信元 item_type -- アイテム種別(ItemType.[ITEM,CARD,MONEY,POINT,TREASURE,MEDAL]) item_id (opt) -- アイテムID """ assert PresentType.any_of(present_type) assert _isinstance(from_uid, StringTypes) assert ItemType.any_of(item_type) assert _isinstance(item_id, StringTypes) or item_id == None return self.log('present_receive', present_type=present_type, from_uid=from_uid, item_type=item_type, item_id=item_id, **opt)
def eqst_boss_battle(self, event_id, area_id, step_id, result, player_deck = None, **opt): u""" イベント_クエスト_ボスバトル実施 event_id -- イベントID area_id -- エリア・都市・章・県etc... step_id -- area_id中での区分 result -- バトル結果(BattleResult.[WIN,LOSE,NONE]) player_deck (opt) -- 攻撃する側のデッキ イベントIDには、どのイベントであるか区別できる、任意の文字列を指定して下さい。 デッキ情報については battle_attack を参照して下さい。 """ assert _isinstance(event_id, StringTypes) assert _isinstance(area_id, StringTypes) assert _isinstance(step_id, StringTypes) assert BattleResult.any_of(result) assert self._or_none(self._string_list)(player_deck) return self.log('eqst_boss_battle', event_id = event_id, area_id = area_id, step_id = step_id, result = result, player_deck = player_deck, **opt)
def present_send(self, present_type, target_uid, item_type, item_id=None, **opt): u""" プレゼント_送信 present_type -- プレゼント種別(PresentType.[NORMAL,OFFICIAL,PROMOTION,CAMPAIGN]) target_uid -- 送信相手のユーザID item_type -- アイテム種別(ItemType.[ITEM,CARD,MONEY,POINT,TREASURE,MEDAL]) item_id (opt) -- アイテムID 注意: 運営側からのプレゼント(補填など)の場合には uid に0を設定して下さい。 """ assert PresentType.any_of(present_type) assert _isinstance(target_uid, StringTypes) assert ItemType.any_of(item_type) assert _isinstance(item_id, StringTypes) or item_id == None return self.log('present_send', present_type=present_type, target_uid=target_uid, item_type=item_type, item_id=item_id, **opt)
def dec_item(self, item_type, item_id, before_value, after_value, value, **opt): u""" アイテム_減少 item_type -- アイテム種別 item_id -- アイテムID before_value -- 変化前の値(個数) after_value -- 変化後の値(個数) value -- 増減量 アイテム種別とアイテムIDで、一意にアイテムを識別できるようにして下さい。 アイテムIDだけで一意にアイテムを識別できるアプリもあるが、アプリによっては回復アイテムやガチャチケットでテーブルを分けている場合もある。 そういった場合はアイテム種別を見れば区別できるようにして下さい。 """ assert _isinstance(item_type, StringTypes) assert _isinstance(item_id, StringTypes) assert _isinstance(before_value, NumberTypes) assert _isinstance(after_value, NumberTypes) assert _isinstance(value, NumberTypes) return self.log('dec_item', item_type = item_type, item_id = item_id, before_value = before_value, after_value = after_value, value = value, **opt)
def dec_item(self, item_type, item_id, before_value, after_value, value, **opt): u""" アイテム_減少 item_type -- アイテム種別 item_id -- アイテムID before_value -- 変化前の値(個数) after_value -- 変化後の値(個数) value -- 増減量 アイテム種別とアイテムIDで、一意にアイテムを識別できるようにして下さい。 アイテムIDだけで一意にアイテムを識別できるアプリもあるが、アプリによっては回復アイテムやガチャチケットでテーブルを分けている場合もある。 そういった場合はアイテム種別を見れば区別できるようにして下さい。 """ assert _isinstance(item_type, StringTypes) assert _isinstance(item_id, StringTypes) assert _isinstance(before_value, NumberTypes) assert _isinstance(after_value, NumberTypes) assert _isinstance(value, NumberTypes) return self.log('dec_item', item_type=item_type, item_id=item_id, before_value=before_value, after_value=after_value, value=value, **opt)
def eqst_boss_battle(self, event_id, area_id, step_id, result, player_deck=None, **opt): u""" イベント_クエスト_ボスバトル実施 event_id -- イベントID area_id -- エリア・都市・章・県etc... step_id -- area_id中での区分 result -- バトル結果(BattleResult.[WIN,LOSE,NONE]) player_deck (opt) -- 攻撃する側のデッキ イベントIDには、どのイベントであるか区別できる、任意の文字列を指定して下さい。 デッキ情報については battle_attack を参照して下さい。 """ assert _isinstance(event_id, StringTypes) assert _isinstance(area_id, StringTypes) assert _isinstance(step_id, StringTypes) assert BattleResult.any_of(result) assert self._or_none(self._string_list)(player_deck) return self.log('eqst_boss_battle', event_id=event_id, area_id=area_id, step_id=step_id, result=result, player_deck=player_deck, **opt)
def pay(self, payment_category, payment_subcategory, target_id, unit_price, quantity, **opt): u""" 課金 payment_category -- 課金対象カテゴリ(PaymentCategory.[GACHA,ITEM]) payment_subcategory -- 課金対象サブカテゴリ(PaymentSubcategory.[GACHA,GACHA_SET,GACHA_TICKET,POTION,BATTLE,EQUIPMENT,TRAP,SET,OTHER]) target_id -- 課金アイテムID unit_price -- 単価 quantity -- 個数 注意: 課金ガチャの場合、do_gachaアクションも同時に出力して下さい。 課金ガチャによって増えたカードなどは、do_gachaの派生ログとして出力してください。 アイテム付き課金ガチャの場合 PaymentCategory.GACHA, PaymentSubcategory.GACHA_SET を使用して下さい。 ガチャ以外のアイテムの組み合わせ販売の場合 PaymentCategory.ITEM, PaymentSubcategory.SET を使用して下さい。 例: 課金ガチャの場合: # 幻想郷6連ガチャ、回復アイテム付きの場合 with log().pay(PaymentCategory.GACHA, PaymentSubcategory.GACHA_SET, target_id, 1500, 1): # GACHA_SET を使う with log().do_gacha(GachaType.PAY, 6, 'GENSOKYO_GACHA'): log().derivedlog.inc_card(...) # do_gachaの子として出力 log().derivedlog.inc_item(...) # アイテム付きのガチャであってもdo_gachaの子として出力する 行動回復アイテムの場合: with log().pay(PaymentCategory.ITEM, PaymentSubcategory.POTION, target_id, 200, 3): log().derivedlog.inc_item(...) # payの子として出力 バトル回復アイテムの場合: with log().pay(PaymentCategory.ITEM, PaymentSubcategory.BATTLE, target_id, 100, 3): log().derivedlog.inc_item(...) # payの子として出力 行動回復アイテム×イベントアイテムのセットを購入した場合: with log().pay(PaymentCategory.ITEM, PaymentSubcategory.SET, target_id, 10000, 3): # SET を使う log().inc_item(...) """ assert PaymentCategory.any_of(payment_category) assert PaymentSubcategory.any_of(payment_subcategory) assert _isinstance(target_id, StringTypes) assert _isinstance(unit_price, NumberTypes) assert _isinstance(quantity, NumberTypes) return self.log('pay', payment_category=payment_category, payment_subcategory=payment_subcategory, target_id=target_id, unit_price=unit_price, quantity=quantity, **opt)
def pay(self, payment_category, payment_subcategory, target_id, unit_price, quantity, **opt): u""" 課金 payment_category -- 課金対象カテゴリ(PaymentCategory.[GACHA,ITEM]) payment_subcategory -- 課金対象サブカテゴリ(PaymentSubcategory.[GACHA,GACHA_SET,GACHA_TICKET,POTION,BATTLE,EQUIPMENT,TRAP,SET,OTHER]) target_id -- 課金アイテムID unit_price -- 単価 quantity -- 個数 注意: 課金ガチャの場合、do_gachaアクションも同時に出力して下さい。 課金ガチャによって増えたカードなどは、do_gachaの派生ログとして出力してください。 アイテム付き課金ガチャの場合 PaymentCategory.GACHA, PaymentSubcategory.GACHA_SET を使用して下さい。 ガチャ以外のアイテムの組み合わせ販売の場合 PaymentCategory.ITEM, PaymentSubcategory.SET を使用して下さい。 例: 課金ガチャの場合: # 幻想郷6連ガチャ、回復アイテム付きの場合 with log().pay(PaymentCategory.GACHA, PaymentSubcategory.GACHA_SET, target_id, 1500, 1): # GACHA_SET を使う with log().do_gacha(GachaType.PAY, 6, 'GENSOKYO_GACHA'): log().derivedlog.inc_card(...) # do_gachaの子として出力 log().derivedlog.inc_item(...) # アイテム付きのガチャであってもdo_gachaの子として出力する 行動回復アイテムの場合: with log().pay(PaymentCategory.ITEM, PaymentSubcategory.POTION, target_id, 200, 3): log().derivedlog.inc_item(...) # payの子として出力 バトル回復アイテムの場合: with log().pay(PaymentCategory.ITEM, PaymentSubcategory.BATTLE, target_id, 100, 3): log().derivedlog.inc_item(...) # payの子として出力 行動回復アイテム×イベントアイテムのセットを購入した場合: with log().pay(PaymentCategory.ITEM, PaymentSubcategory.SET, target_id, 10000, 3): # SET を使う log().inc_item(...) """ assert PaymentCategory.any_of(payment_category) assert PaymentSubcategory.any_of(payment_subcategory) assert _isinstance(target_id, StringTypes) assert _isinstance(unit_price, NumberTypes) assert _isinstance(quantity, NumberTypes) return self.log('pay', payment_category = payment_category, payment_subcategory = payment_subcategory, target_id = target_id, unit_price = unit_price, quantity = quantity, **opt)
def eraid_do_quest(self, event_id, area_id, step_id, is_cleared, got_progress, after_progress, **opt): u""" イベント_レイド_クエスト実施 event_id -- イベントID area_id -- エリア・都市・章・県etc... step_id -- area_id中での区分 is_cleared -- 達成時のみ記載 got_progress -- 取得進捗度 after_progress -- 到達進捗度 通常クエストのマップを利用するのであれば、このアクションは不要です。 イベントIDには、どのイベントであるか区別できる、任意の文字列を指定して下さい。 """ assert _isinstance(event_id, StringTypes) assert _isinstance(area_id, StringTypes) assert _isinstance(step_id, StringTypes) assert _isinstance(is_cleared, bool) assert _isinstance(got_progress, NumberTypes) or _isinstance(got_progress, float) assert _isinstance(after_progress, NumberTypes) or _isinstance(after_progress, float) return self.log('eraid_do_quest', event_id = event_id, area_id = area_id, step_id = step_id, is_cleared = is_cleared, got_progress = got_progress, after_progress = after_progress, **opt)
def greet(self, target_uid, commented, **opt): u""" 挨拶_実施 target_uid -- 挨拶相手UserID commented -- コメント有無 """ assert _isinstance(target_uid, StringTypes) assert _isinstance(commented, bool) return self.log('greet', target_uid=target_uid, commented=commented, **opt)
def greet(self, target_uid, commented, **opt): u""" 挨拶_実施 target_uid -- 挨拶相手UserID commented -- コメント有無 """ assert _isinstance(target_uid, StringTypes) assert _isinstance(commented, bool) return self.log('greet', target_uid = target_uid, commented = commented, **opt)
def eraid_do_quest(self, event_id, area_id, step_id, is_cleared, got_progress, after_progress, **opt): u""" イベント_レイド_クエスト実施 event_id -- イベントID area_id -- エリア・都市・章・県etc... step_id -- area_id中での区分 is_cleared -- 達成時のみ記載 got_progress -- 取得進捗度 after_progress -- 到達進捗度 通常クエストのマップを利用するのであれば、このアクションは不要です。 イベントIDには、どのイベントであるか区別できる、任意の文字列を指定して下さい。 """ assert _isinstance(event_id, StringTypes) assert _isinstance(area_id, StringTypes) assert _isinstance(step_id, StringTypes) assert _isinstance(is_cleared, bool) assert _isinstance(got_progress, NumberTypes) or _isinstance( got_progress, float) assert _isinstance(after_progress, NumberTypes) or _isinstance( after_progress, float) return self.log('eraid_do_quest', event_id=event_id, area_id=area_id, step_id=step_id, is_cleared=is_cleared, got_progress=got_progress, after_progress=after_progress, **opt)
def view_page(self, location_type, url, **opt): u""" ページ表示 location_type -- 表示ページの種類 url -- 表示ページのURL ページビューを計測するためのログです。 """ assert _isinstance(location_type, StringTypes) assert _isinstance(url, StringTypes) return self.log('view_page', location_type = location_type, url = url, **opt)
def view_page(self, location_type, url, **opt): u""" ページ表示 location_type -- 表示ページの種類 url -- 表示ページのURL ページビューを計測するためのログです。 """ assert _isinstance(location_type, StringTypes) assert _isinstance(url, StringTypes) return self.log('view_page', location_type=location_type, url=url, **opt)
def use_item(self, item_type, item_id, count, event_id=None, user_level=None, boss_instance_id=None, boss_id=None, boss_type=None, boss_level=None, place_id=None, **opt): u""" アイテム_使用 item_type -- アイテム種別(ItemType.[ITEM,CARD,MONEY,POINT,TREASURE,MEDAL]) item_id -- アイテムID count -- 使用個数 event_id (opt) -- イベントID user_level (opt) -- ユーザLv boss_instance_id (opt) -- 現在戦っているボスのID boss_id (opt) -- ボスのマスタID boss_type (opt) -- ボスの種類 boss_level (opt) -- ボスのレベル place_id (opt) -- ボスと遭遇した時点での場所ID レイドボス遭遇中は、eraid_boss_encount で定義してあるデータを出力して下さい。 """ assert ItemType.any_of(item_type) assert _isinstance(item_id, StringTypes) assert _isinstance(count, NumberTypes) assert _isinstance(event_id, StringTypes) or event_id == None assert _isinstance(user_level, NumberTypes) or user_level == None assert _isinstance(boss_instance_id, StringTypes) or boss_instance_id == None assert _isinstance(boss_id, StringTypes) or boss_id == None assert _isinstance(boss_type, StringTypes) or boss_type == None assert _isinstance(boss_level, StringTypes) or boss_level == None assert _isinstance(place_id, StringTypes) or place_id == None return self.log('use_item', item_type=item_type, item_id=item_id, count=count, event_id=event_id, user_level=user_level, boss_instance_id=boss_instance_id, boss_id=boss_id, boss_type=boss_type, boss_level=boss_level, place_id=place_id, **opt)
def dec_money(self, before_value, after_value, value, **opt): u""" ゲーム内通貨_減少 before_value -- 変化前の値 after_value -- 変化後の値 value -- 増減量 """ assert _isinstance(before_value, NumberTypes) assert _isinstance(after_value, NumberTypes) assert _isinstance(value, NumberTypes) return self.log('dec_money', before_value = before_value, after_value = after_value, value = value, **opt)
def dec_money(self, before_value, after_value, value, **opt): u""" ゲーム内通貨_減少 before_value -- 変化前の値 after_value -- 変化後の値 value -- 増減量 """ assert _isinstance(before_value, NumberTypes) assert _isinstance(after_value, NumberTypes) assert _isinstance(value, NumberTypes) return self.log('dec_money', before_value=before_value, after_value=after_value, value=value, **opt)
def dec_card(self, card_rarity, card_id, value, **opt): u""" カード_減少 card_rarity -- カードレアリティ card_id -- カードID value -- 増減量 """ assert _isinstance(card_rarity, NumberTypes) assert _isinstance(card_id, StringTypes) assert _isinstance(value, NumberTypes) return self.log('dec_card', card_rarity = card_rarity, card_id = card_id, value = value, **opt)
def dec_card(self, card_rarity, card_id, value, **opt): u""" カード_減少 card_rarity -- カードレアリティ card_id -- カードID value -- 増減量 """ assert _isinstance(card_rarity, NumberTypes) assert _isinstance(card_id, StringTypes) assert _isinstance(value, NumberTypes) return self.log('dec_card', card_rarity=card_rarity, card_id=card_id, value=value, **opt)
def devote(self, target_type, target_id, step_id, **opt): u""" 捧げる target_type -- 対象種別(DevoteType.[PRINCESS]) target_id -- 対象ID step_id -- 段階 """ assert DevoteType.any_of(target_type) assert _isinstance(target_id, StringTypes) assert _isinstance(step_id, StringTypes) return self.log('devote', target_type=target_type, target_id=target_id, step_id=step_id, **opt)
def devote(self, target_type, target_id, step_id, **opt): u""" 捧げる target_type -- 対象種別(DevoteType.[PRINCESS]) target_id -- 対象ID step_id -- 段階 """ assert DevoteType.any_of(target_type) assert _isinstance(target_id, StringTypes) assert _isinstance(step_id, StringTypes) return self.log('devote', target_type = target_type, target_id = target_id, step_id = step_id, **opt)
def allocate_power(self, power_type, added_point, current_point, **opt): u""" パワー_振り分け power_type -- 振り分け対象(PowerType.[POWER,ATTACK,DEFENSE,RESET,OTHER]) added_point -- 増加ポイント current_point -- 増加後ポイント """ assert PowerType.any_of(power_type) assert _isinstance(added_point, NumberTypes) assert _isinstance(current_point, NumberTypes) return self.log('allocate_power', power_type = power_type, added_point = added_point, current_point = current_point, **opt)
def allocate_power(self, power_type, added_point, current_point, **opt): u""" パワー_振り分け power_type -- 振り分け対象(PowerType.[POWER,ATTACK,DEFENSE,RESET,OTHER]) added_point -- 増加ポイント current_point -- 増加後ポイント """ assert PowerType.any_of(power_type) assert _isinstance(added_point, NumberTypes) assert _isinstance(current_point, NumberTypes) return self.log('allocate_power', power_type=power_type, added_point=added_point, current_point=current_point, **opt)
def guild_member_operation(self, operation_type, target_uid = None, guild_id = None, **opt): u""" ギルドメンバ_運営 operation_type -- 操作種別(GuildMemberOperationType.[JOIN,LEAVE,KICK_OFF,HANDOVER,OTHER]) target_uid (opt) -- 対象メンバUserID guild_id (opt) -- ギルドID """ assert GuildMemberOperationType.any_of(operation_type) assert _isinstance(target_uid, StringTypes) or target_uid == None assert _isinstance(guild_id, StringTypes) or guild_id == None return self.log('guild_member_operation', operation_type = operation_type, target_uid = target_uid, guild_id = guild_id, **opt)
def do_quest(self, area_id, step_id, is_cleared, got_progress, after_progress, **opt): u""" クエスト_実施 area_id -- エリア・都市・章・県etc... step_id -- area_id中での区分 is_cleared -- マップをクリアしたかどうか got_progress -- 取得進捗度 after_progress -- 到達進捗度 """ assert _isinstance(area_id, StringTypes) assert _isinstance(step_id, StringTypes) assert _isinstance(is_cleared, bool) assert _isinstance(got_progress, NumberTypes) or _isinstance( got_progress, float) assert _isinstance(after_progress, NumberTypes) or _isinstance( after_progress, float) return self.log('do_quest', area_id=area_id, step_id=step_id, is_cleared=is_cleared, got_progress=got_progress, after_progress=after_progress, **opt)
def comeback_send(self, receiver_uid, **opt): u""" カムバックリクエスト送信 receiver_uid -- 受信者UserID """ assert _isinstance(receiver_uid, StringTypes) return self.log('comeback_send', receiver_uid=receiver_uid, **opt)
def comeback_receive(self, sender_uid, **opt): u""" カムバックリクエスト受信 sender_uid -- 送信者UserID """ assert _isinstance(sender_uid, StringTypes) return self.log('comeback_receive', sender_uid=sender_uid, **opt)
def dec_power(self, power_type, before_value, after_value, value, **opt): u""" パワー_減少 power_type -- パワー種別 before_value -- 変化前の値 after_value -- 変化後の値 value -- 増減量 """ assert _isinstance(before_value, NumberTypes) assert _isinstance(after_value, NumberTypes) assert _isinstance(value, NumberTypes) return self.log('dec_power', power_type = power_type, before_value = before_value, after_value = after_value, value = value, **opt)
def dec_power(self, power_type, before_value, after_value, value, **opt): u""" パワー_減少 power_type -- パワー種別 before_value -- 変化前の値 after_value -- 変化後の値 value -- 増減量 """ assert _isinstance(before_value, NumberTypes) assert _isinstance(after_value, NumberTypes) assert _isinstance(value, NumberTypes) return self.log('dec_power', power_type=power_type, before_value=before_value, after_value=after_value, value=value, **opt)
def ebtl_user_battle(self, event_id, target_uid, battle_result, show_trap, show_damnation, target_item_category, target_item_id, user_level, target_user_level, player_deck=None, target_deck=None, **opt): u""" イベント_バトル_ユーザ間バトル event_id -- イベントID target_uid -- バトル相手 battle_result -- バトル結果(BattleResult.[WIN,LOSE,NONE]) show_trap -- 罠発動の有無 show_damnation -- 天罰発動の有無 target_item_category -- 略奪対象カテゴリ(BattleTargetCategory.[ITEM,NONE]) target_item_id -- 略奪対象ID user_level -- ユーザLv. target_user_level -- バトル相手Lv. player_deck (opt) -- 攻撃する側のデッキ target_deck (opt) -- 攻撃される側のデッキ イベントIDには、どのイベントであるか区別できる、任意の文字列を指定して下さい。 デッキ情報については battle_attack を参照して下さい。 """ assert _isinstance(event_id, StringTypes) assert _isinstance(target_uid, StringTypes) assert BattleResult.any_of(battle_result) assert _isinstance(show_trap, bool) assert _isinstance(show_damnation, bool) assert BattleTargetCategory.any_of(target_item_category) assert _isinstance(target_item_id, StringTypes) assert _isinstance(user_level, NumberTypes) assert _isinstance(target_user_level, NumberTypes) assert self._or_none(self._string_list)(player_deck) assert self._string_list(target_deck) return self.log('ebtl_user_battle', event_id=event_id, target_uid=target_uid, battle_result=battle_result, show_trap=show_trap, show_damnation=show_damnation, target_item_category=target_item_category, target_item_id=target_item_id, user_level=user_level, target_user_level=target_user_level, player_deck=player_deck, target_deck=target_deck, **opt)
def do_gacha(self, gacha_type, count, gacha_id, **opt): u""" ガチャ実施 gacha_type -- 実施種別(GachaType.[FREE,TICKET,PAY]) count -- カードの同時取得枚数 gacha_id -- ガチャID 注意: 課金ガチャの場合はこのログと同時に pay アクションログも出力する必要があります。 """ assert GachaType.any_of(gacha_type) assert _isinstance(count, NumberTypes) assert _isinstance(gacha_id, StringTypes) return self.log('do_gacha', gacha_type = gacha_type, count = count, gacha_id = gacha_id, **opt)
def comeback_send(self, receiver_uid, **opt): u""" カムバックリクエスト送信 receiver_uid -- 受信者UserID """ assert _isinstance(receiver_uid, StringTypes) return self.log('comeback_send', receiver_uid = receiver_uid, **opt)
def invitation_send(self, invitee_oid, **opt): u""" 招待_送信 invitee_oid -- 招待を受けたユーザのOpensocialOwnerID 複数人に送信したときは複数個出力して下さい。 """ assert _isinstance(invitee_oid, StringTypes) return self.log('invitation_send', invitee_oid=invitee_oid, **opt)
def do_gacha(self, gacha_type, count, gacha_id, **opt): u""" ガチャ実施 gacha_type -- 実施種別(GachaType.[FREE,TICKET,PAY]) count -- カードの同時取得枚数 gacha_id -- ガチャID 注意: 課金ガチャの場合はこのログと同時に pay アクションログも出力する必要があります。 """ assert GachaType.any_of(gacha_type) assert _isinstance(count, NumberTypes) assert _isinstance(gacha_id, StringTypes) return self.log('do_gacha', gacha_type=gacha_type, count=count, gacha_id=gacha_id, **opt)
def comeback_receive(self, sender_uid, **opt): u""" カムバックリクエスト受信 sender_uid -- 送信者UserID """ assert _isinstance(sender_uid, StringTypes) return self.log('comeback_receive', sender_uid = sender_uid, **opt)
def ab_test(self, test_id, is_view, action=None, **opt): u""" ABテスト test_id -- テストID is_view -- ページの表示かどうか action (opt) -- ユーザの行動(テスト結果)。is_view == False のときのみ有効。 注意: ABテストが実装されたページ(ユーザ選択前)へのアクセス履歴(is_view:True)も出力する必要があります。 """ assert _isinstance(test_id, StringTypes) assert _isinstance(is_view, bool) assert _isinstance(action, StringTypes) or action == None return self.log('ab_test', test_id=test_id, is_view=is_view, action=action, **opt)
def present_receive(self, present_type, from_uid, item_type, item_id = None, **opt): u""" プレゼント_受信 present_type -- プレゼント種別(PresentType.[NORMAL,OFFICIAL,PROMOTION,CAMPAIGN]) from_uid -- 送信元 item_type -- アイテム種別(ItemType.[ITEM,CARD,MONEY,POINT,TREASURE,MEDAL]) item_id (opt) -- アイテムID """ assert PresentType.any_of(present_type) assert _isinstance(from_uid, StringTypes) assert ItemType.any_of(item_type) assert _isinstance(item_id, StringTypes) or item_id == None return self.log('present_receive', present_type = present_type, from_uid = from_uid, item_type = item_type, item_id = item_id, **opt)
def do_tutorial(self, tutorial_step, **opt): u""" チュートリアル tutorial_step -- チュートリアルの進捗番号 チュートリアルの進度を計測するためのログです。 """ assert _isinstance(tutorial_step, NumberTypes) return self.log('do_tutorial', tutorial_step=tutorial_step, **opt)
def ab_test(self, test_id, is_view, action = None, **opt): u""" ABテスト test_id -- テストID is_view -- ページの表示かどうか action (opt) -- ユーザの行動(テスト結果)。is_view == False のときのみ有効。 注意: ABテストが実装されたページ(ユーザ選択前)へのアクセス履歴(is_view:True)も出力する必要があります。 """ assert _isinstance(test_id, StringTypes) assert _isinstance(is_view, bool) assert _isinstance(action, StringTypes) or action == None return self.log('ab_test', test_id = test_id, is_view = is_view, action = action, **opt)
def dec_gachaticket(self, ticket_id, before_value, after_value, value, **opt): u""" ガチャチケット_減少 ticket_id -- チケットID before_value -- 変化前の値(個数) after_value -- 変化後の値(個数) value -- 増減量 """ assert _isinstance(ticket_id, StringTypes) assert _isinstance(before_value, NumberTypes) assert _isinstance(after_value, NumberTypes) assert _isinstance(value, NumberTypes) return self.log('dec_gachaticket', ticket_id = ticket_id, before_value = before_value, after_value = after_value, value = value, **opt)
def platform_comment(self, comment_type, comment_id, **opt): u""" コメント comment_type -- コメント種別 comment_id -- コメントID ひとことコメントするとアイテムが貰えるとか、そういったコメントを行ったときに出力して下さい。 comment_type には、CommentType.EVENT や CommentType.DIARY といった、大分別を書いて下さい。 CommentType のどれにも当てはまらない無い場合は、任意の文字列を追加しても構いません。 comment_id には、例えば comment_type が CommentType.EVENT ならイベント名を、comment_type が CommentType.COMPLETE ならコンプリートしたアイテム名などを記述して下さい。 """ assert CommentType.any_of(comment_type) or _isinstance(comment_type, StringTypes) assert _isinstance(comment_id, StringTypes) return self.log('platform_comment', comment_type = comment_type, comment_id = comment_id, **opt)
def guild_member_operation(self, operation_type, target_uid=None, guild_id=None, **opt): u""" ギルドメンバ_運営 operation_type -- 操作種別(GuildMemberOperationType.[JOIN,LEAVE,KICK_OFF,HANDOVER,OTHER]) target_uid (opt) -- 対象メンバUserID guild_id (opt) -- ギルドID """ assert GuildMemberOperationType.any_of(operation_type) assert _isinstance(target_uid, StringTypes) or target_uid == None assert _isinstance(guild_id, StringTypes) or guild_id == None return self.log('guild_member_operation', operation_type=operation_type, target_uid=target_uid, guild_id=guild_id, **opt)
def dec_gachaticket(self, ticket_id, before_value, after_value, value, **opt): u""" ガチャチケット_減少 ticket_id -- チケットID before_value -- 変化前の値(個数) after_value -- 変化後の値(個数) value -- 増減量 """ assert _isinstance(ticket_id, StringTypes) assert _isinstance(before_value, NumberTypes) assert _isinstance(after_value, NumberTypes) assert _isinstance(value, NumberTypes) return self.log('dec_gachaticket', ticket_id=ticket_id, before_value=before_value, after_value=after_value, value=value, **opt)
def do_tutorial(self, tutorial_step, **opt): u""" チュートリアル tutorial_step -- チュートリアルの進捗番号 チュートリアルの進度を計測するためのログです。 """ assert _isinstance(tutorial_step, NumberTypes) return self.log('do_tutorial', tutorial_step = tutorial_step, **opt)
def invitation_send(self, invitee_oid, **opt): u""" 招待_送信 invitee_oid -- 招待を受けたユーザのOpensocialOwnerID 複数人に送信したときは複数個出力して下さい。 """ assert _isinstance(invitee_oid, StringTypes) return self.log('invitation_send', invitee_oid = invitee_oid, **opt)
def invitation_receive(self, invite_from_uid, **opt): u""" 招待_受信 invite_from_uid -- 招待者ユーザID 招待を受けてやってきたことが分かるユーザアクションが発生したときに出力して下さい。 """ assert _isinstance(invite_from_uid, StringTypes) return self.log('invitation_receive', invite_from_uid = invite_from_uid, **opt)
def boss_battle(self, area_id, step_id, battle_result, player_deck = None, **opt): u""" ボスと戦闘 area_id -- エリア・都市・章・県etc... step_id -- area_id中での区分 battle_result -- バトル結果(BattleResult.[WIN,LOSE,NONE]) player_deck (opt) -- 攻撃する側のデッキ デッキ情報については battle_attack を参照して下さい。 """ assert _isinstance(area_id, StringTypes) assert _isinstance(step_id, StringTypes) assert BattleResult.any_of(battle_result) assert self._or_none(self._string_list)(player_deck) return self.log('boss_battle', area_id = area_id, step_id = step_id, battle_result = battle_result, player_deck = player_deck, **opt)
def platform_comment(self, comment_type, comment_id, **opt): u""" コメント comment_type -- コメント種別 comment_id -- コメントID ひとことコメントするとアイテムが貰えるとか、そういったコメントを行ったときに出力して下さい。 comment_type には、CommentType.EVENT や CommentType.DIARY といった、大分別を書いて下さい。 CommentType のどれにも当てはまらない無い場合は、任意の文字列を追加しても構いません。 comment_id には、例えば comment_type が CommentType.EVENT ならイベント名を、comment_type が CommentType.COMPLETE ならコンプリートしたアイテム名などを記述して下さい。 """ assert CommentType.any_of(comment_type) or _isinstance( comment_type, StringTypes) assert _isinstance(comment_id, StringTypes) return self.log('platform_comment', comment_type=comment_type, comment_id=comment_id, **opt)
def invitation_receive(self, invite_from_uid, **opt): u""" 招待_受信 invite_from_uid -- 招待者ユーザID 招待を受けてやってきたことが分かるユーザアクションが発生したときに出力して下さい。 """ assert _isinstance(invite_from_uid, StringTypes) return self.log('invitation_receive', invite_from_uid=invite_from_uid, **opt)
def eraid_send_rescue(self, event_id, user_level, boss_instance_id, boss_id, boss_type, boss_level, place_id, receiver_uid, receiver_level, **opt): u""" イベント_レイド_救援送信 event_id -- イベントID user_level -- ユーザLv boss_instance_id -- 現在戦っているボスのID boss_id -- ボスのマスタID boss_type -- ボスの種類 boss_level -- ボスのレベル place_id -- ボスと遭遇した時点での場所ID receiver_uid -- 受信者のユーザID receiver_level -- 受信者のレベル 救援要請を出した場合にこのログを出力して下さい。 複数ユーザに送る場合、複数回に分けてログを出して下さい。 デッキ情報については battle_attack を参照して下さい。 event_id 〜 place_id までのパラメータについては eraid_boss_encount を参照して下さい。 """ assert _isinstance(event_id, StringTypes) assert _isinstance(user_level, NumberTypes) assert _isinstance(boss_instance_id, StringTypes) assert _isinstance(boss_id, StringTypes) assert _isinstance(boss_type, StringTypes) assert _isinstance(boss_level, StringTypes) assert _isinstance(place_id, StringTypes) assert _isinstance(receiver_uid, StringTypes) assert _isinstance(receiver_level, StringTypes) return self.log('eraid_send_rescue', event_id=event_id, user_level=user_level, boss_instance_id=boss_instance_id, boss_id=boss_id, boss_type=boss_type, boss_level=boss_level, place_id=place_id, receiver_uid=receiver_uid, receiver_level=receiver_level, **opt)
def present_send(self, present_type, target_uid, item_type, item_id = None, **opt): u""" プレゼント_送信 present_type -- プレゼント種別(PresentType.[NORMAL,OFFICIAL,PROMOTION,CAMPAIGN]) target_uid -- 送信相手のユーザID item_type -- アイテム種別(ItemType.[ITEM,CARD,MONEY,POINT,TREASURE,MEDAL]) item_id (opt) -- アイテムID 注意: 運営側からのプレゼント(補填など)の場合には uid に0を設定して下さい。 """ assert PresentType.any_of(present_type) assert _isinstance(target_uid, StringTypes) assert ItemType.any_of(item_type) assert _isinstance(item_id, StringTypes) or item_id == None return self.log('present_send', present_type = present_type, target_uid = target_uid, item_type = item_type, item_id = item_id, **opt)
def guild_operation(self, operation_type, guild_id = None, **opt): u""" ギルド_運営 operation_type -- 操作種別(GuildOperationType.[CREATE,DROP,OTHER]) guild_id (opt) -- ギルドID """ assert GuildOperationType.any_of(operation_type) assert _isinstance(guild_id, StringTypes) or guild_id == None return self.log('guild_operation', operation_type = operation_type, guild_id = guild_id, **opt)
def participate_event(self, event_type, event_id, **opt): u""" イベント_参加 event_type -- イベント種別(EventType.[QUEST,RAID,USER]) event_id -- イベントID """ assert EventType.any_of(event_type) assert _isinstance(event_id, StringTypes) return self.log('participate_event', event_type = event_type, event_id = event_id, **opt)
def friendship(self, action_type, target_uid, **opt): u""" 友達 action_type -- 行動タイプ(FriendActionType.[REQUEST,ACCEPT,CANCEL,REMOVE]) target_uid -- 対象ユーザID """ assert FriendActionType.any_of(action_type) assert _isinstance(target_uid, StringTypes) return self.log('friendship', action_type = action_type, target_uid = target_uid, **opt)