Coverage for thb/meta/characters/rumia.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
9# -- code --
12@ui_meta(characters.rumia.Darkness)
13class Darkness:
14 # Skill
15 name = '黑暗'
16 description = (
17 '出牌阶段限一次,你可以弃置一张牌并指定一名其他角色,令其选择一项:\n'
18 '|B|R>> |r对其攻击范围内另一名你指定的其他角色使用一张|G弹幕|r。\n'
19 '|B|R>> |r受到你造成的1点伤害。'
20 )
22 custom_ray = True
24 def clickable(self):
25 g = self.game
26 try:
27 if self.limit1_skill_used('darkness_tag'):
28 return False
29 act = g.action_stack[-1]
30 if isinstance(act, actions.ActionStage):
31 return True
32 except IndexError:
33 pass
34 return False
36 def is_action_valid(self, sk, tl):
37 cl = sk.associated_cards
38 if not cl or len(cl) != 1:
39 return (False, '请选择一张牌')
41 if not len(tl):
42 return (False, '请选择第一名玩家(向第二名玩家出【弹幕】)')
43 elif len(tl) == 1:
44 return (False, '请选择第二名玩家(【弹幕】的目标)')
45 else:
46 return (True, '你们的关系…是~这样吗?')
48 def effect_string(self, act):
49 # for LaunchCard.ui_meta.effect_string
50 return '|G【%s】|r在黑暗中一通乱搅,结果|G【%s】|r和|G【%s】|r打了起来!' % (
51 act.source.ui_meta.name,
52 act.target_list[0].ui_meta.name,
53 act.target_list[1].ui_meta.name,
54 )
56 def sound_effect(self, act):
57 return 'thb-cv-rumia_darkness'
60@ui_meta(characters.rumia.DarknessKOF)
61class DarknessKOF:
62 # Skill
63 name = '黑暗'
64 description = '|B登场技|r,你登场的回合,对方使用牌时不能指定你为目标。'
67@ui_meta(characters.rumia.DarknessKOFAction)
68class DarknessKOFAction:
70 def effect_string(self, act):
71 return '|G【%s】|r一出现天就黑了,低头都看不见胖次!' % act.source.ui_meta.name
73 def sound_effect(self, act):
74 return 'thb-cv-rumia_darkness_kof'
77@ui_meta(characters.rumia.DarknessKOFLimit)
78class DarknessKOFLimit:
79 shootdown_message = '【黑暗】你不能对其使用卡牌'
82@ui_meta(characters.rumia.DarknessAction)
83class DarknessAction:
84 def ray(self, act):
85 src = act.source
86 tl = act.target_list
87 return [(src, tl[0]), (tl[0], tl[1])]
89 def choose_card_text(self, act, cards):
90 if act.cond(cards):
91 return (True, '使用【弹幕】')
92 else:
93 return (False, '请使用一张【弹幕】(否则受到一点伤害)')
96@ui_meta(characters.rumia.Cheating)
97class Cheating:
98 # Skill
99 name = '作弊'
100 description = '|B锁定技|r,结束阶段开始时,你摸一张牌。'
103@ui_meta(characters.rumia.CheatingDrawCards)
104class CheatingDrawCards:
105 def effect_string(self, act):
106 return '突然不知道是谁把太阳挡住了。等到大家回过神来,赫然发现牌堆里少了一张牌!'
108 def sound_effect(self, act):
109 return 'thb-cv-rumia_cheat'
112@ui_meta(characters.rumia.Rumia)
113class Rumia:
114 # Character
115 name = '露米娅'
116 title = '宵暗的妖怪'
117 illustrator = '和茶'
118 cv = '小羽'
120 port_image = 'thb-portrait-rumia'
121 figure_image = 'thb-figure-rumia'
122 miss_sound_effect = 'thb-cv-rumia_miss'
125@ui_meta(characters.rumia.RumiaKOF)
126class RumiaKOF:
127 # Character
128 name = '露米娅'
129 title = '宵暗的妖怪'
130 illustrator = '和茶'
131 cv = '小羽'
133 port_image = 'thb-portrait-rumia'
134 figure_image = 'thb-figure-rumia'
135 miss_sound_effect = 'thb-cv-rumia_miss'
137 notes = '|RKOF修正角色'