Coverage for thb/meta/characters/cirno.py : 99%
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.actions import ttags
9from thb.meta.common import ui_meta
12# -- code --
13@ui_meta(characters.cirno.PerfectFreeze)
14class PerfectFreeze:
15 # Skill
16 name = '完美冻结'
17 description = '每当你使用|G弹幕|r或|G弹幕战|r对其他角色造成伤害时,你可以防止此次伤害,并令该角色弃置一张牌,若其弃置的不为装备区的牌,其失去1点体力。'
20@ui_meta(characters.cirno.CirnoDropCards)
21class CirnoDropCards:
22 def effect_string(self, act):
23 return '|G【%s】|r弃置了|G【%s】|r的%s。' % (
24 act.source.ui_meta.name,
25 act.target.ui_meta.name,
26 self.card_desc(act.cards),
27 )
30@ui_meta(characters.cirno.PerfectFreezeAction)
31class PerfectFreezeAction:
32 def effect_string_before(self, act):
33 return '|G【%s】|r被冻伤了。' % act.target.ui_meta.name
35 def sound_effect(self, act):
36 return 'thb-cv-cirno_perfectfreeze'
38 # choose_card meta
39 def choose_card_text(self, act, cards):
40 if act.cond(cards):
41 return (True, '弃置这张牌')
42 else:
43 return (False, '完美冻结:选择一张牌弃置')
46@ui_meta(characters.cirno.PerfectFreezeHandler)
47class PerfectFreezeHandler:
48 choose_option_prompt = '你要发动【完美冻结】吗?'
49 choose_option_buttons = (('发动', True), ('不发动', False))
52@ui_meta(characters.cirno.Bakadesu)
53class Bakadesu:
54 # Skill
55 name = '最强'
56 description = (
57 '出牌阶段限一次,你可以指定一名攻击范围内有你的角色,该角色选择一项:\n'
58 '|B|R>> |r对你使用一张|G弹幕|r。\n'
59 '|B|R>> |r令你弃置其一张牌。'
60 )
62 def clickable(self):
63 if ttags(self.me)['bakadesu']:
64 return False
66 return self.my_turn()
68 def is_action_valid(self, sk, tl):
69 if len(tl) != 1:
70 return (False, '请选择嘲讽对象')
72 if len(sk.associated_cards):
73 return (False, '请不要选择牌!')
75 return (True, '老娘最强!')
77 def effect_string(self, act):
78 # for LaunchCard.ui_meta.effect_string
79 return '|G【%s】|r双手叉腰,对着|G【%s】|r大喊:“老娘最强!”' % (
80 act.source.ui_meta.name,
81 act.target.ui_meta.name,
82 )
84 def sound_effect(self, act):
85 return 'thb-cv-cirno_bakadesu'
88@ui_meta(characters.cirno.BakadesuAction)
89class BakadesuAction:
90 def choose_card_text(self, act, cl):
91 if act.cond(cl):
92 return (True, '啪!啪!啪!')
93 else:
94 return (False, '请选择一张弹幕对【%s】使用' % act.source.ui_meta.name)
97@ui_meta(characters.cirno.Cirno)
98class Cirno:
99 # Character
100 name = '琪露诺'
101 title = '跟青蛙过不去的笨蛋'
102 illustrator = '渚FUN'
103 cv = '君寻'
105 port_image = 'thb-portrait-cirno'
106 figure_image = 'thb-figure-cirno'
107 miss_sound_effect = 'thb-cv-cirno_miss'