Coverage for thb/meta/characters/kanako.py : 95%
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 --
4# -- third party --
5# -- own --
6from thb import actions, characters
7from thb.meta.common import ui_meta
10# -- code --
13@ui_meta(characters.kanako.Kanako)
14class Kanako:
15 # Character
16 name = '八坂神奈子'
17 title = '山丘与湖泊的化身'
18 illustrator = '和茶'
19 cv = '北斗夜/VV'
21 port_image = 'thb-portrait-kanako'
22 figure_image = 'thb-figure-kanako'
23 miss_sound_effect = 'thb-cv-kanako_miss'
25 notes = '|RKOF模式不可用|r'
28@ui_meta(characters.kanako.KanakoKOF)
29class KanakoKOF:
30 # Character
31 name = '八坂神奈子'
32 title = '山丘与湖泊的化身'
33 illustrator = '和茶'
34 cv = '北斗夜/VV'
36 port_image = 'thb-portrait-kanako'
37 figure_image = 'thb-figure-kanako'
38 miss_sound_effect = 'thb-cv-kanako_miss'
40 notes = '|RKOF修正角色|r'
43@ui_meta(characters.kanako.KanakoFaith)
44class KanakoFaith:
45 # Skill
46 name = '信仰'
47 description = (
48 '|B限定技|r,出牌阶段,你可以令你攻击范围内的所有其他角色依次选择一项:\n'
49 '|B|R>> |r令你摸一张牌。\n'
50 '|B|R>> |r弃置你一张牌,然后你视为对其使用了一张|G弹幕|r或|G弹幕战|r(按此法使用的弹幕不消耗干劲)。'
51 )
53 def clickable(self):
54 g = self.game
55 me = self.me
56 if me.tags['kanako_faith']:
57 return False
59 try:
60 act = g.action_stack[-1]
61 if isinstance(act, actions.ActionStage) and act.target is me:
62 return True
64 except IndexError:
65 pass
67 return False
69 def is_action_valid(self, sk, tl):
70 cl = sk.associated_cards
71 if cl:
72 return (False, '请不要选择牌')
74 if not tl:
75 return (False, '没有符合条件的角色')
76 else:
77 return (True, '发动【信仰】')
79 def effect_string(self, act):
80 return '|G【%s】|r打开神社大门,开始收集|G信仰|r!%s表示很感兴趣。' % (
81 act.source.ui_meta.name,
82 '、'.join(['|G【%s】|r' % p.ui_meta.name for p in act.target_list]),
83 )
85 def sound_effect(self, act):
86 return 'thb-cv-kanako_faith'
89@ui_meta(characters.kanako.KanakoFaithCheers)
90class KanakoFaithCheers:
91 def effect_string_before(self, act):
92 return '|G【%s】|r献上了信仰!' % (
93 act.source.ui_meta.name,
94 )
97@ui_meta(characters.kanako.KanakoFaithCounteract)
98class KanakoFaithCounteract:
99 def effect_string_before(self, act):
100 return '|G【%s】|r决定要拆台!' % (
101 act.source.ui_meta.name,
102 )
105@ui_meta(characters.kanako.KanakoFaithCounteractPart1)
106class KanakoFaithCounteractPart1:
107 def effect_string(self, act):
108 return '|G【%s】|r弃置了|G【%s】|r的%s。' % (
109 act.source.ui_meta.name,
110 act.target.ui_meta.name,
111 self.card_desc(act.card),
112 )
115@ui_meta(characters.kanako.KanakoFaithCounteractPart2)
116class KanakoFaithCounteractPart2:
117 # choose_option meta
118 choose_option_buttons = (('弹幕战', 'duel'), ('弹幕', 'attack'))
119 choose_option_prompt = '信仰:请选择希望的效果'
122@ui_meta(characters.kanako.KanakoFaithEffect)
123class KanakoFaithEffect:
124 # choose_option meta
125 choose_option_buttons = (('弃置对方的牌', 'drop'), ('对方摸牌', 'draw'))
126 choose_option_prompt = '信仰:请选择希望的效果'
129@ui_meta(characters.kanako.Virtue)
130class Virtue:
131 # Skill
132 name = '神德'
133 description = '摸牌阶段,你可以放弃摸牌,改为令一名其他角色摸两张牌,然后其须展示并交给你一张牌,若交给你的牌为红桃牌,你摸一张牌。'
136@ui_meta(characters.kanako.VirtueHandler)
137class VirtueHandler:
138 def target(self, pl):
139 if not pl: 139 ↛ 140line 139 didn't jump to line 140, because the condition on line 139 was never true
140 return (False, '神德:请选择1名玩家')
142 return (True, '神德:放弃摸牌,选定的目标摸2张牌')
145@ui_meta(characters.kanako.VirtueAction)
146class VirtueAction:
147 def choose_card_text(self, act, cards):
148 prompt = '神德:交给对方一张牌'
149 return act.cond(cards), prompt
151 def effect_string_before(self, act):
152 return '|G【%s】|r对|G【%s】|r发动了|G神德|r。' % (
153 act.source.ui_meta.name,
154 act.target.ui_meta.name,
155 )
157 def effect_string(self, act):
158 return '|G【%s】|r归还了%s。' % (
159 act.target.ui_meta.name,
160 self.card_desc(act.card),
161 )
163 def sound_effect(self, act):
164 return 'thb-cv-kanako_virtue'
167@ui_meta(characters.kanako.KanakoFaithKOF)
168class KanakoFaithKOF:
169 # Skill
170 name = '信仰'
171 description = (
172 '|B锁定技|r,结束阶段开始时,若你满足以下条件之一,将你的手牌补至X张(X为你的当前体力值):\n'
173 '|B|R>> |r你的体力值大于对方。\n'
174 '|B|R>> |r你曾于出牌阶段对对方造成过伤害。'
176 )
179@ui_meta(characters.kanako.KanakoFaithKOFAction)
180class KanakoFaithKOFAction:
181 def effect_string_before(self, act):
182 return '|G【%s】|r又收到的%s张香火钱,比博丽神社不知道高到哪里去了!' % (
183 act.target.ui_meta.name,
184 act.amount,
185 )
187 def sound_effect(self, act):
188 return 'thb-cv-kanako_faith'