Coverage for thb/meta/characters/seija.py : 64%
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 --
5import random
7# -- third party --
8# -- own --
9from thb import characters
10from thb.meta.common import ui_meta
13# -- code --
14@ui_meta(characters.seija.InciteAttack)
15class InciteAttack:
16 name = '挑拨'
18 def effect_string(self, act):
19 return '|G【%s】|r立刻将|G弹幕|r甩在了|G【%s】|r的脸上:“看也就看了,能别说么?”' % (
20 act.source.ui_meta.name,
21 act.target.ui_meta.name,
22 )
25@ui_meta(characters.seija.InciteFailAttack)
26class InciteFailAttack:
27 name = '挑拨'
29 def effect_string(self, act):
30 return '|G【%s】|r立刻将|G弹幕|r甩在了|G【%s】|r的脸上:“你怎么知道是蓝白条的?”' % (
31 act.source.ui_meta.name,
32 act.target.ui_meta.name,
33 )
36@ui_meta(characters.seija.InciteSilentFailAction)
37class InciteSilentFailAction:
38 def effect_string(self, act):
39 return '|G【%s】|r低头看了一眼,诶,好像真的是蓝白条……' % (
40 act.target.ui_meta.name,
41 )
44@ui_meta(characters.seija.Incite)
45class Incite:
46 # Skill
47 name = '挑拨'
48 description = '出牌阶段限一次,你可以与一名其他角色拼点,若你赢,视为该角色对其攻击范围内你指定的另一名其他角色使用了一张|G弹幕|r;若你没赢,该角色可以视为对你使用了一张|G弹幕|r。'
50 custom_ray = True
52 def clickable(self):
53 if self.limit1_skill_used('incite_tag'):
54 return False
56 return self.my_turn()
58 def is_action_valid(self, sk, tl):
59 if sk.associated_cards:
60 return (False, '请不要选择牌!')
62 if not len(tl):
63 return (False, '请选择第一名玩家(【拼点】的对象)')
64 elif len(tl) == 1:
65 return (False, '请选择第二名玩家(【弹幕】的目标)')
66 else:
67 return (True, '大嘴正邪愉快的一天开始了~')
69 def effect_string(self, act):
70 src = act.source
71 tgt, victim = act.target_list
72 if victim is src:
73 return '|G【%s】|r一脸坏笑,对|G【%s】|r说:“那个啥…… 蓝白条,赞!”' % (
74 src.ui_meta.name,
75 tgt.ui_meta.name,
76 )
77 else:
78 return '|G【%s】|r一脸坏笑,对|G【%s】|r说:“你知道吗,|G【%s】|r刚才看了你的胖次,蓝白条,赞!”' % (
79 src.ui_meta.name,
80 tgt.ui_meta.name,
81 victim.ui_meta.name,
82 )
84 def sound_effect(self, act):
85 return random.choice([
86 'thb-cv-seija_incite1',
87 'thb-cv-seija_incite2',
88 ])
91@ui_meta(characters.seija.InciteAction)
92class InciteAction:
93 # choose_option
94 choose_option_buttons = (('使用', True), ('不使用', False))
96 def ray(self, act):
97 src = act.source
98 tl = act.target_list
99 return [(src, tl[0]), (tl[0], tl[1])]
101 def choose_option_prompt(self, act):
102 return '你要对【%s】使用【弹幕】吗?' % act.source.ui_meta.name
105@ui_meta(characters.seija.Reversal)
106class Reversal:
107 # Skill
108 name = '逆转'
109 description = '当你受到一名其他角色使用的|G弹幕|r效果时,你可以摸一张牌,然后若你的手牌数大于其手牌数,取消该|G弹幕|r效果,并视为该角色再对你使用一张|G弹幕战|r。'
112@ui_meta(characters.seija.ReversalDuel)
113class ReversalDuel:
114 name = '逆转'
116 def effect_string(self, act):
117 return '|G【%s】|r对|G【%s】|r:“你敢打我脸,我就敢打回去!”' % (
118 act.target.ui_meta.name,
119 act.source.ui_meta.name,
120 )
122 def sound_effect(self, act):
123 return 'thb-cv-seija_reversal'
126@ui_meta(characters.seija.ReversalHandler)
127class ReversalHandler:
128 # choose_option
129 choose_option_buttons = (('发动', True), ('不发动', False))
130 choose_option_prompt = '你要发动【逆转】吗?'
133@ui_meta(characters.seija.Seija)
134class Seija:
135 # Character
136 name = '鬼人正邪'
137 title = '逆袭的天邪鬼'
138 illustrator = '霏茶'
139 cv = '北斗夜'
141 port_image = 'thb-portrait-seija'
142 figure_image = 'thb-figure-seija'
143 miss_sound_effect = 'thb-cv-seija_miss'
145 notes = '|RKOF模式不可用|r'