Coverage for thb/meta/characters/yukari.py : 42%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1# -*- coding: utf-8 -*-
3# -- stdlib --
4import random
6# -- third party --
7# -- own --
8from thb import actions, characters
9from thb.meta.common import ui_meta
11# -- code --
14@ui_meta(characters.yukari.SpiritingAway)
15class SpiritingAway:
16 # Skill
17 name = '神隐'
18 description = '出牌阶段限两次,你可以将场上的一张牌暂时移出游戏。你可以观看以此法移出游戏的牌。任何角色被紫暂时移出的牌,会在紫的结束阶段后归还回该角色的手牌中。'
20 def clickable(self):
21 g = self.game
22 me = self.me
23 if me.tags['spirit_away_tag'] >= 2: return False
24 try:
25 act = g.action_stack[-1]
26 if isinstance(act, actions.ActionStage) and act.target is me:
27 return True
28 except IndexError:
29 pass
30 return False
32 def is_action_valid(self, sk, tl):
33 cl = sk.associated_cards
34 if cl:
35 return (False, '请不要选择牌')
37 if not tl:
38 return (False, '请选择一名玩家')
40 tgt = tl[0]
41 catnames = ['cards', 'showncards', 'equips', 'fatetell']
42 if not any(getattr(tgt, i) for i in catnames):
43 return (False, '这货已经没有牌了')
45 return (True, '发动【神隐】')
48@ui_meta(characters.yukari.SpiritingAwayAction)
49class SpiritingAwayAction:
51 def effect_string(self, act):
52 words = (
53 '17岁就是17岁,后面没有零几个月!',
54 '叫紫妹就对了,紫妈算什么!',
55 )
56 # return u'|G【{source}】|r:“{word}”(|G{target}|r的{card}不见了)'.format(
57 return '|G【{source}】|r:“{word}”(|G{target}|r的一张牌不见了)'.format(
58 source=act.source.ui_meta.name,
59 target=act.target.ui_meta.name,
60 word=random.choice(words),
61 # card=card_desc(act.card),
62 )
64 def sound_effect(self, act):
65 return random.choice([
66 'thb-cv-yukari_spiritaway1',
67 'thb-cv-yukari_spiritaway2',
68 ])
71@ui_meta(characters.yukari.Yukari)
72class Yukari:
73 # Character
74 name = '八云紫'
75 title = '永远17岁'
76 illustrator = 'Vivicat@幻想梦斗符'
77 cv = 'VV'
79 port_image = 'thb-portrait-yukari'
80 figure_image = 'thb-figure-yukari'
81 miss_sound_effect = 'thb-cv-yukari_miss'