Coverage for thb/meta/characters/rumia.py : 74%
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, game):
25 try:
26 if self.limit1_skill_used('darkness_tag'):
27 return False
28 act = game.action_stack[-1]
29 if isinstance(act, actions.ActionStage):
30 return True
31 except IndexError:
32 pass
33 return False
35 def is_action_valid(self, sk, tl):
36 cl = sk.associated_cards
37 if not cl or len(cl) != 1:
38 return (False, '请选择一张牌')
40 if not len(tl):
41 return (False, '请选择第一名玩家(向第二名玩家出【弹幕】)')
42 elif len(tl) == 1:
43 return (False, '请选择第二名玩家(【弹幕】的目标)')
44 else:
45 return (True, '你们的关系…是~这样吗?')
47 def effect_string(self, act):
48 # for LaunchCard.ui_meta.effect_string
49 return '|G【%s】|r在黑暗中一通乱搅,结果|G【%s】|r和|G【%s】|r打了起来!' % (
50 act.source.ui_meta.name,
51 act.target_list[0].ui_meta.name,
52 act.target_list[1].ui_meta.name,
53 )
55 def sound_effect(self, act):
56 return 'thb-cv-rumia_darkness'
59@ui_meta(characters.rumia.DarknessKOF)
60class DarknessKOF:
61 # Skill
62 name = '黑暗'
63 description = '|B登场技|r,你登场的回合,对方使用牌时不能指定你为目标。'
66@ui_meta(characters.rumia.DarknessKOFAction)
67class DarknessKOFAction:
69 def effect_string(self, act):
70 return '|G【%s】|r一出现天就黑了,低头都看不见胖次!' % act.source.ui_meta.name
72 def sound_effect(self, act):
73 return 'thb-cv-rumia_darkness_kof'
76@ui_meta(characters.rumia.DarknessKOFLimit)
77class DarknessKOFLimit:
78 shootdown_message = '【黑暗】你不能对其使用卡牌'
81@ui_meta(characters.rumia.DarknessAction)
82class DarknessAction:
83 def ray(self, act):
84 src = act.source
85 tl = act.target_list
86 return [(src, tl[0]), (tl[0], tl[1])]
88 def choose_card_text(self, g, act, cards):
89 if act.cond(cards):
90 return (True, '使用【弹幕】')
91 else:
92 return (False, '请使用一张【弹幕】(否则受到一点伤害)')
95@ui_meta(characters.rumia.Cheating)
96class Cheating:
97 # Skill
98 name = '作弊'
99 description = '|B锁定技|r,结束阶段开始时,你摸一张牌。'
102@ui_meta(characters.rumia.CheatingDrawCards)
103class CheatingDrawCards:
104 def effect_string(self, act):
105 return '突然不知道是谁把太阳挡住了。等到大家回过神来,赫然发现牌堆里少了一张牌!'
107 def sound_effect(self, act):
108 return 'thb-cv-rumia_cheat'
111@ui_meta(characters.rumia.Rumia)
112class Rumia:
113 # Character
114 name = '露米娅'
115 title = '宵暗的妖怪'
116 illustrator = '和茶'
117 cv = '小羽'
119 port_image = 'thb-portrait-rumia'
120 figure_image = 'thb-figure-rumia'
121 miss_sound_effect = 'thb-cv-rumia_miss'
124@ui_meta(characters.rumia.RumiaKOF)
125class RumiaKOF:
126 # Character
127 name = '露米娅'
128 title = '宵暗的妖怪'
129 illustrator = '和茶'
130 cv = '小羽'
132 port_image = 'thb-portrait-rumia'
133 figure_image = 'thb-figure-rumia'
134 miss_sound_effect = 'thb-cv-rumia_miss'
136 notes = '|RKOF修正角色'