Hide keyboard shortcuts

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 

3 

4# -- stdlib -- 

5import random 

6 

7# -- third party -- 

8# -- own -- 

9from thb import characters 

10from thb.meta.common import ui_meta 

11 

12 

13# -- code -- 

14@ui_meta(characters.seija.InciteAttack) 

15class 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) 

26class 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) 

37class 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) 

45class 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) 

92class 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) 

106class Reversal: 

107 # Skill 

108 name = '逆转' 

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

110 

111 

112@ui_meta(characters.seija.ReversalDuel) 

113class 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) 

127class ReversalHandler: 

128 # choose_option 

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

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

131 

132 

133@ui_meta(characters.seija.Seija) 

134class 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'