-
Notifications
You must be signed in to change notification settings - Fork 1
Home
game.pyのPlayer.put_instance_id_in_zone()のcurrent_zone.transfer_card_to(card, zone)行でエラーが出るようになった。
これは、current_zoneがset.pyで定義されているPoolインスタンスではなく、ただのdictであるために発生する。
current_zoneはself.get_location_of_instance(instance_id, messages_zones)で取得しており、
instance_idに一致するcardがself.all_zoneに見つからなければ、messages_zoneリストの各dictのobjectInstanceIdsリストから一致するIDを探す。
見つかった場合、IDが見つかったdictをそのままcurrent_zoneとして返す。
この場合、当然current_zoneは単なるdictなので、前述のエラーが発生する。
むしろ何で今まで動いてたんですかね?
既存のzoneは以下。
- Private Zone
- ZoneType_Library
- ZoneType_Hand
- ZoneType_Graveyard
- Shared Zone
- ZoneType_Stack
- ZoneType_Battlefield
- ZoneType_Exile
- ZoneType_Limbo
ZoneType_Limboは、ゲーム中のオブジェクトが最後に行きつく領域。
例えば戦場のクリーチャーをブリンクさせた場合、ブリンク後のクリーチャーは別のオブジェクトとなる。
ブリンク前のクリーチャーというオブジェクトは戦場にも追放領域にも無いが、最後の情報を参照するためにどこかに情報が残っている必要がある。
そのためのZoneがZoneType_Limbo。ルール上は存在しない、mtgatrackerのための概念。
というわけでログチェック。
- ZoneType_Command
- ZoneType_Pending
- ZoneType_Revealed
- ZoneType_Sideboard
- ZoneType_Suppressed
んんんんんんんんん
ZoneType_PendingとZoneType_Suppressedって何よ??????
PrivateかSharedかの区分けもせんと...
別のエラーが発生するようになった。
message_zonesにはobjectInstanceIdsリストしかないのにCard型を返そうとしているのだから、それはそう。
util.pyで定義されているid_to_card()を使えばCard型を返せないか?
-
parsers.build_event_texts_from_iid_or_grpid(iid, game, grpid=None)-
parsers.build_card_event_texts(card, game)parsers.build_event_text(text, event_type, hover_text=None)
-
parsers.build_event_texts_from_iid_or_grpidを呼び出す関数は以下。
parsers.parse_mulligan_req_message(message, timestamp=None)parsers.parse_game_state_message(message, timestamp=None)
- 1.0.0
- 新規作成
- 1.0.1
- requestsのインポートをやめたりとか色々
- 1.1.0
- MTGA.exe起動確認テキスト修正とか色々
- 1.2.0
- ゆかりねっとコネクター Neo対応