カードの効果に関して未解決な問題 - aharalabMeiji/fireplaceAharaLab GitHub Wiki

SCH_279  SCH_607  SCH_259  SCH_283  SCH_162  NEW1_033 

カードの効果に関して未解決な問題2

SCH_279

#Trueaim Crescent SCH_279 \
#自分のヒーローがミニオンを攻撃した後、味方のミニオン全てが_____同じ標的を攻撃する。

これは

class SCH_279:
	events = Attack(FRIENDLY_HERO,ENEMY_MINIONS).after(#この行OK
		ExtraAttack(FRIENDLY_MINIONS)
	)

が一番近いが、これでは「同じ標的」を表していない。ちなみに、ExtraAttackでは標的を制約できない。Retargetという技があるようなので、そちらかもしれない。

SCH_607:

#Shan'do Wildclaw SCH_607\
#選択:  自分のデッキの獣#全てに+1/+1を付与する。または、味方の獣1体の#コピーに変身する。

おおむねこんな感じかと思うが、確認できず。

class SCH_607:
	requirements = { PlayReq.REQ_TARGET_TO_PLAY: 0 }
	choose = ("SCH_607a", "SCH_607b")#確認できず。
	play =ChooseBoth(CONTROLLER) & Morph(SELF, RANDOM(FRIENDLY_MINIONS+BEAST));#確認できず。
	pass
class SCH_607a:
	#Transfiguration
	update = Refresh(FRIENDLY_DECK+BEAST,buff="SCH_607e")#検証待ち
	pass
class SCH_607b:
	#Rile the Herd
	play = Morph(SELF, RANDOM(FRIENDLY_MINIONS+BEAST))#検証待ち
	pass
SCH_607e = buff(1,1);

class SCH_607:の中のplayは、理由はよくわからないが必要らしい。(選べなかったとき?両方選んだとき?の実行内容らしい。)

SCH_259

    class SCH_259:
    	""" Sphere of Sapience (legendary)"""
    	#At the start of your turn, look at your top card. You can put it on the bottom _and lose 1 Durability.
    	#play = OWN_TURN_BEGIN.on(GenericChoice()	)
    	#??????????????????????????????????????????????
    	pass
    class SCH_259t:
    	"""	A New Fate """ 
    	#Draw a different card.

ターンビギンでカードをめくるたびに、そのカードと「違うカードと言う名前のカード」とを選択するように言われる。ターンビギンでめくるカードを指す単語がまだわかっていない。

SCH_283:

    class SCH_283:
    	""" Manafeeder Panthara"""
    	#<b>Battlecry:</b> If you've used your Hero Power this turn, draw a card.
    	#play = HERO_POWER_USED & ForceDraw(FRIENDLY) ???????????????????????????????
    	pass

これはよく使うカード(マナ喰らいのパンサーラ)なので心が痛む。カードを出してからヒロパを実行するのは、実例もありたやすい。これはヒロパを使ったあとにカードをプレイするというスタイル。「ヒロパ使用済み」という条件付けの方法がわかっていない。

SCH_162

解決済みと思ったが、Missing deathrattle script for enchantment 実験用疫病のメッセージがでることから、バグ残りと考えられる。メッセージがでるのはcard.pyclass Enchantmentdeathrattleメソッドの中。

   class SCH_162:#exclude
       """ Vectus"""
       #Battlecry: Summon two 1/1 Whelps. Each gains a Deathrattle from your minions that died this game.
       #雄叫び:1/1のチビドラゴンを2体召喚する。それらはこの対戦で死亡した味方のミニオンの断末魔を1つずつ獲得する。
       play = Summon(CONTROLLER, "SCH_162t").then( -Find(FRIENDLY + KILLED + DEATHRATTLE) |
           Buff(Summon.CARD, "SCH_162e").then( 
               CopyDeathrattles(Buff.BUFF, RANDOM(FRIENDLY + KILLED + DEATHRATTLE))
           )
       ) *2
       pass
   SCH_162e = buff(deathrattle=True)
       # Experimental Plague
       # Copied Deathrattle from {0}
   class SCH_162t:
       # Plagued Hatchling
       # Vanilla
       pass

ここで参考にしたのはaooの

   class BT_212:
       """Mok'Nathal Lion"""
       requirements = {
       	PlayReq.REQ_FRIENDLY_TARGET: 0,
       	PlayReq.REQ_TARGET_IF_AVAILABLE: 0,
       	PlayReq.REQ_TARGET_WITH_DEATHRATTLE: 0}
       play = Buff(SELF, "BT_212e").then(CopyDeathrattles(Buff.BUFF, TARGET))
   BT_212e = buff(deathrattle=True)

と、こちらは未使用だが

   class LOE_019:
       """Unearthed Raptor"""
       requirements = {
       	PlayReq.REQ_FRIENDLY_TARGET: 0,
       	PlayReq.REQ_TARGET_IF_AVAILABLE: 0,
       	PlayReq.REQ_TARGET_WITH_DEATHRATTLE: 0}
       play = Buff(SELF, "LOE_019e").then(CopyDeathrattles(Buff.BUFF, TARGET))
   LOE_019e = buff(deathrattle=True)

で、参考にした二つはfireplaceオリジナルの実装であり「動くように作られた」ものと思われる。ただし、というか、下二つは「TARGETは必ずある」という条件下でCopyDeathrattlesを読んでいる一方で、SCH_126は「この対戦で死亡した味方のミニオンの断末魔」がもしあるならば発動する、という種類のものである。このことから、条件が満たされなれないままSCH_126eを実行しようとすると「該当するdeathrattleはない」こともありうる。単純に、Missing deathrattle script for SCH_260eをスルーして、続行すればよいようにも思われる。

NEW1_033

「空の見張り」に関するアラートが出るようなので、一応調べてみる。

   class NEW1_033:
       """Leokk"""
       update = Refresh(FRIENDLY_MINIONS - SELF, buff="NEW1_033o")
   NEW1_033o = buff(atk=1)

クラシックカードなので、自分の実装ではない。

   <Entity CardID="NEW1_033o" ID="143" version="2">
       <Tag enumID="185" name="CARDNAME" type="LocString">
           <enUS>Eye In The Sky</enUS>
       </Tag>
       <Tag enumID="184" name="CARDTEXT" type="LocString">
           <enUS>Leokk is granting this minion +1 Attack.</enUS>
       </Tag>
       <Tag enumID="183" name="CARD_SET" type="Int" value="1635"/>
       <Tag enumID="199" name="CLASS" type="Int" value="3"/>
       <Tag enumID="202" name="CARDTYPE" type="Int" value="6"/>
       <Tag enumID="330" name="ENCHANTMENT_BIRTH_VISUAL" type="Int" value="1"/>

だが?CARD_SETの番号が変更されたかな?1635は、一応入れてみたのだが。

⚠️ **GitHub.com Fallback** ⚠️