EnumSelectorまわり - aharalabMeiji/fireplaceAharaLab GitHub Wiki
selector.py のAttrValue(SelectorEntityValue)まわり
selector.py には AttrValue(SelectorEntityValue) というクラスがあり、これを用いて、たとえば
ARMOR = AttrValue(GameTag.ARMOR)
ATK = AttrValue(GameTag.ATK)
CONTROLLER = AttrValue(GameTag.CONTROLLER)
MAX_HEALTH = AttrValue(GameTag.HEALTH)
CURRENT_HEALTH = AttrValue("health")
COST = AttrValue(GameTag.COST)
DAMAGE = AttrValue(GameTag.DAMAGE)
などと定義されている。これらのセレクターはカード実装で頻繁に現れる。これらのゲームタグに入っている「値」を返しているようではあるが、値は
def value(self, entity, source):
if isinstance(self.tag, str):
return getattr(entity, self.tag, 0)
return entity.tags.get(self.tag, 0)
と定義されている。
例
class SCH_537:#OK
"""Trick Totem Rare"""
#At the end of your turn, cast a random spell that costs (3) or less.
events = OWN_TURN_END.on(CastSpell(RANDOM(SPELL + (COST==3))))
こんな感じ。