Coverage for thb/meta/characters/komachi.py : 65%
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 -*-
2from __future__ import annotations
4# -- stdlib --
5# -- third party --
6# -- own --
7from thb import characters
8from thb.cards.base import Skill
9from thb.meta.common import ui_meta
12# -- code --
13@ui_meta(characters.komachi.Komachi)
14class Komachi:
15 # Character
16 name = '小野塚小町'
17 title = '乳不巨何以聚人心'
18 illustrator = '渚FUN'
19 cv = 'VV'
21 port_image = 'thb-portrait-komachi'
22 figure_image = 'thb-figure-komachi'
23 miss_sound_effect = 'thb-cv-komachi_miss'
26@ui_meta(characters.komachi.Riverside)
27class Riverside:
28 # Skill
29 name = '彼岸'
30 description = '出牌阶段限一次,你可以弃置一张牌并指定一名其他角色,你与其距离视为1直到回合结束,然后若该角色的体力值为全场最少的(或之一),你选择一项:|B|R>> |r摸一张牌,|B|R>> |r弃置其一张牌。'
32 def clickable(self):
33 me = self.me
34 if not self.my_turn(): return False
35 if self.limit1_skill_used('riverside_tag'): return False
37 return bool(me.cards or me.showncards or me.equips)
39 def is_action_valid(self, sk, tl):
40 acards = sk.associated_cards
41 if (not acards) or len(acards) != 1:
42 return (False, '请选择一张牌')
44 card = acards[0]
46 if card.resides_in.type not in ('cards', 'showncards', 'equips'):
47 return (False, 'WTF?!')
49 if card.is_card(Skill):
50 return (False, '你不可以像这样组合技能')
52 return (True, '近一点~再近一点~~')
54 def effect_string(self, act):
55 return '|G【%s】|r对|G【%s】|r使用了|G彼岸|r。' % (
56 act.source.ui_meta.name,
57 act.target.ui_meta.name
58 )
60 def sound_effect(self, act):
61 return 'thb-cv-komachi_riverside'
64@ui_meta(characters.komachi.RiversideAction)
65class RiversideAction:
66 # choose_option meta
67 choose_option_buttons = (('弃置一张牌', 'drop'), ('摸一张牌', 'draw'))
68 choose_option_prompt = '彼岸:你希望发动的效果?'
71@ui_meta(characters.komachi.ReturningAwake)
72class ReturningAwake:
73 def effect_string(self, act):
74 return '|G【%s】|r:“啊啊不能再偷懒啦!要被四季大人说教啦!”' % (
75 act.target.ui_meta.name,
76 )
78 def sound_effect(self, act):
79 return 'thb-cv-komachi_awake'
82@ui_meta(characters.komachi.Returning)
83class Returning:
84 # Skill
85 name = '归航'
86 description = (
87 '|B觉醒技|r,准备阶段开始时,若你体力值小于手牌数且不大于2,你减1点体力上限并获得技能|R渡钱|r。\n'
88 '|B|R>> |b渡钱|r:每当你对距离1的其他角色造成伤害后,你可以获得其一张牌。'
89 )
92@ui_meta(characters.komachi.FerryFee)
93class FerryFee:
94 # Skill
95 name = '渡钱'
96 description = '每当你对距离1的其他角色造成伤害后,你可以获得其一张牌。'
99@ui_meta(characters.komachi.FerryFeeEffect)
100class FerryFeeEffect:
101 def effect_string(self, act):
102 return '|G【%s】|r收走了|G【%s】|r的一张牌作为|G渡钱|r。' % (
103 act.source.ui_meta.name,
104 act.target.ui_meta.name,
105 )
107 def sound_effect(self, act):
108 return 'thb-cv-komachi_ferryfee'
111@ui_meta(characters.komachi.FerryFeeHandler)
112class FerryFeeHandler:
113 # choose_option meta
114 choose_option_buttons = (('发动', True), ('不发动', False))
115 choose_option_prompt = '你要发动渡钱吗?'