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

2 

3# -- stdlib -- 

4# -- third party -- 

5# -- own -- 

6from thb import actions, characters 

7from thb.meta.common import ui_meta 

8 

9 

10# -- code -- 

11 

12 

13@ui_meta(characters.kanako.Kanako) 

14class Kanako: 

15 # Character 

16 name = '八坂神奈子' 

17 title = '山丘与湖泊的化身' 

18 illustrator = '和茶' 

19 cv = '北斗夜/VV' 

20 

21 port_image = 'thb-portrait-kanako' 

22 figure_image = 'thb-figure-kanako' 

23 miss_sound_effect = 'thb-cv-kanako_miss' 

24 

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

26 

27 

28@ui_meta(characters.kanako.KanakoKOF) 

29class KanakoKOF: 

30 # Character 

31 name = '八坂神奈子' 

32 title = '山丘与湖泊的化身' 

33 illustrator = '和茶' 

34 cv = '北斗夜/VV' 

35 

36 port_image = 'thb-portrait-kanako' 

37 figure_image = 'thb-figure-kanako' 

38 miss_sound_effect = 'thb-cv-kanako_miss' 

39 

40 notes = '|RKOF修正角色|r' 

41 

42 

43@ui_meta(characters.kanako.KanakoFaith) 

44class KanakoFaith: 

45 # Skill 

46 name = '信仰' 

47 description = ( 

48 '|B限定技|r,出牌阶段,你可以令你攻击范围内的所有其他角色依次选择一项:\n' 

49 '|B|R>> |r令你摸一张牌。\n' 

50 '|B|R>> |r弃置你一张牌,然后你视为对其使用了一张|G弹幕|r或|G弹幕战|r(按此法使用的弹幕不消耗干劲)。' 

51 ) 

52 

53 def clickable(self, game): 

54 me = game.me 

55 if me.tags['kanako_faith']: 

56 return False 

57 

58 try: 

59 act = game.action_stack[-1] 

60 if isinstance(act, actions.ActionStage) and act.target is me: 

61 return True 

62 

63 except IndexError: 

64 pass 

65 

66 return False 

67 

68 def is_action_valid(self, sk, tl): 

69 cl = sk.associated_cards 

70 if cl: 

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

72 

73 if not tl: 73 ↛ 74line 73 didn't jump to line 74, because the condition on line 73 was never true

74 return (False, '没有符合条件的角色') 

75 else: 

76 return (True, '发动【信仰】') 

77 

78 def effect_string(self, act): 

79 return '|G【%s】|r打开神社大门,开始收集|G信仰|r!%s表示很感兴趣。' % ( 

80 act.source.ui_meta.name, 

81 '、'.join(['|G【%s】|r' % p.ui_meta.name for p in act.target_list]), 

82 ) 

83 

84 def sound_effect(self, act): 

85 return 'thb-cv-kanako_faith' 

86 

87 

88@ui_meta(characters.kanako.KanakoFaithCheers) 

89class KanakoFaithCheers: 

90 def effect_string_before(self, act): 

91 return '|G【%s】|r献上了信仰!' % ( 

92 act.source.ui_meta.name, 

93 ) 

94 

95 

96@ui_meta(characters.kanako.KanakoFaithCounteract) 

97class KanakoFaithCounteract: 

98 def effect_string_before(self, act): 

99 return '|G【%s】|r决定要拆台!' % ( 

100 act.source.ui_meta.name, 

101 ) 

102 

103 

104@ui_meta(characters.kanako.KanakoFaithCounteractPart1) 

105class KanakoFaithCounteractPart1: 

106 def effect_string(self, act): 

107 return '|G【%s】|r弃置了|G【%s】|r的%s。' % ( 

108 act.source.ui_meta.name, 

109 act.target.ui_meta.name, 

110 self.card_desc(act.card), 

111 ) 

112 

113 

114@ui_meta(characters.kanako.KanakoFaithCounteractPart2) 

115class KanakoFaithCounteractPart2: 

116 # choose_option meta 

117 choose_option_buttons = (('弹幕战', 'duel'), ('弹幕', 'attack')) 

118 choose_option_prompt = '信仰:请选择希望的效果' 

119 

120 

121@ui_meta(characters.kanako.KanakoFaithEffect) 

122class KanakoFaithEffect: 

123 # choose_option meta 

124 choose_option_buttons = (('弃置对方的牌', 'drop'), ('对方摸牌', 'draw')) 

125 choose_option_prompt = '信仰:请选择希望的效果' 

126 

127 

128@ui_meta(characters.kanako.Virtue) 

129class Virtue: 

130 # Skill 

131 name = '神德' 

132 description = '摸牌阶段,你可以放弃摸牌,改为令一名其他角色摸两张牌,然后其须展示并交给你一张牌,若交给你的牌为红桃牌,你摸一张牌。' 

133 

134 

135@ui_meta(characters.kanako.VirtueHandler) 

136class VirtueHandler: 

137 def target(self, pl): 

138 if not pl: 

139 return (False, '神德:请选择1名玩家') 

140 

141 return (True, '神德:放弃摸牌,选定的目标摸2张牌') 

142 

143 

144@ui_meta(characters.kanako.VirtueAction) 

145class VirtueAction: 

146 def choose_card_text(self, g, act, cards): 

147 prompt = '神德:交给对方一张牌' 

148 return act.cond(cards), prompt 

149 

150 def effect_string_before(self, act): 

151 return '|G【%s】|r对|G【%s】|r发动了|G神德|r。' % ( 

152 act.source.ui_meta.name, 

153 act.target.ui_meta.name, 

154 ) 

155 

156 def effect_string(self, act): 

157 return '|G【%s】|r归还了%s。' % ( 

158 act.target.ui_meta.name, 

159 self.card_desc(act.card), 

160 ) 

161 

162 def sound_effect(self, act): 

163 return 'thb-cv-kanako_virtue' 

164 

165 

166@ui_meta(characters.kanako.KanakoFaithKOF) 

167class KanakoFaithKOF: 

168 # Skill 

169 name = '信仰' 

170 description = ( 

171 '|B锁定技|r,结束阶段开始时,若你满足以下条件之一,将你的手牌补至X张(X为你的当前体力值):\n' 

172 '|B|R>> |r你的体力值大于对方。\n' 

173 '|B|R>> |r你曾于出牌阶段对对方造成过伤害。' 

174 

175 ) 

176 

177 

178@ui_meta(characters.kanako.KanakoFaithKOFAction) 

179class KanakoFaithKOFAction: 

180 def effect_string_before(self, act): 

181 return '|G【%s】|r又收到的%s张香火钱,比博丽神社不知道高到哪里去了!' % ( 

182 act.target.ui_meta.name, 

183 act.amount, 

184 ) 

185 

186 def sound_effect(self, act): 

187 return 'thb-cv-kanako_faith'