# Coverage for thb/meta/characters/seija.py : 64%

## 68 statements 43 run 25 missing 0 excluded 0 partial

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 -*-

2 from __future__ import annotations

3

4# -- stdlib --

5 import random

6

7# -- third party --

8# -- own --

9 from thb import characters

10 from thb.meta.common import ui_meta

11

12

13# -- code --

14@ui_meta(characters.seija.InciteAttack)

15 class InciteAttack:

16 name = '挑拨'

17

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 )

23

24

25@ui_meta(characters.seija.InciteFailAttack)

26 class InciteFailAttack:

27 name = '挑拨'

28

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 )

34

35

36@ui_meta(characters.seija.InciteSilentFailAction)

37 class InciteSilentFailAction:

38 def effect_string(self, act):

39 return '|G【%s】|r低头看了一眼，诶，好像真的是蓝白条……' % (

40 act.target.ui_meta.name,

41 )

42

43

44@ui_meta(characters.seija.Incite)

45 class Incite:

46 # Skill

47 name = '挑拨'

48 description = '出牌阶段限一次，你可以与一名其他角色拼点，若你赢，视为该角色对其攻击范围内你指定的另一名其他角色使用了一张|G弹幕|r；若你没赢，该角色可以视为对你使用了一张|G弹幕|r。'

49

50 custom_ray = True

51

52 def clickable(self):

53 if self.limit1_skill_used('incite_tag'):

54 return False

55

56 return self.my_turn()

57

58 def is_action_valid(self, sk, tl):

59 if sk.associated_cards:

60 return (False, '请不要选择牌！')

61

62 if not len(tl):

63 return (False, '请选择第一名玩家（【拼点】的对象）')

64 elif len(tl) == 1:

65 return (False, '请选择第二名玩家（【弹幕】的目标）')

66 else:

67 return (True, '大嘴正邪愉快的一天开始了～')

68

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 )

83

84 def sound_effect(self, act):

85 return random.choice([

86 'thb-cv-seija_incite1',

87 'thb-cv-seija_incite2',

88 ])

89

90

91@ui_meta(characters.seija.InciteAction)

92 class InciteAction:

93 # choose_option

94 choose_option_buttons = (('使用', True), ('不使用', False))

95

96 def ray(self, act):

97 src = act.source

98 tl = act.target_list

99 return [(src, tl[0]), (tl[0], tl[1])]

100

101 def choose_option_prompt(self, act):

102 return '你要对【%s】使用【弹幕】吗？' % act.source.ui_meta.name

103

104

105@ui_meta(characters.seija.Reversal)

106 class Reversal:

107 # Skill

108 name = '逆转'

109 description = '当你受到一名其他角色使用的|G弹幕|r效果时，你可以摸一张牌，然后若你的手牌数大于其手牌数，取消该|G弹幕|r效果，并视为该角色再对你使用一张|G弹幕战|r。'

110

111

112@ui_meta(characters.seija.ReversalDuel)

113 class ReversalDuel:

114 name = '逆转'

115

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 )

121

122 def sound_effect(self, act):

123 return 'thb-cv-seija_reversal'

124

125

126@ui_meta(characters.seija.ReversalHandler)

127 class ReversalHandler:

128 # choose_option

129 choose_option_buttons = (('发动', True), ('不发动', False))

130 choose_option_prompt = '你要发动【逆转】吗？'

131

132

133@ui_meta(characters.seija.Seija)

134 class Seija:

135 # Character

136 name = '鬼人正邪'

137 title = '逆袭的天邪鬼'

138 illustrator = '霏茶'

139 cv = '北斗夜'

140

141 port_image = 'thb-portrait-seija'

142 figure_image = 'thb-figure-seija'

143 miss_sound_effect = 'thb-cv-seija_miss'

144

145 notes = '|RKOF模式不可用|r'