Coverage for thb/meta/characters/nazrin.py : 70%
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.cards.base import Card
9from thb.cards.classes import BaseUseGraze
10from thb.meta.common import ui_meta
13# -- code --
14@ui_meta(characters.nazrin.Nazrin)
15class Nazrin:
16 # Character
17 name = '纳兹琳'
18 title = '探宝的小小大将'
19 illustrator = '月见'
20 cv = '小羽'
22 port_image = 'thb-portrait-nazrin'
23 figure_image = 'thb-figure-nazrin'
24 miss_sound_effect = 'thb-cv-nazrin_miss'
27@ui_meta(characters.nazrin.NazrinKOF)
28class NazrinKOF:
29 # Character
30 name = '纳兹琳'
31 title = '探宝的小小大将'
32 illustrator = '月见'
33 cv = '小羽'
35 port_image = 'thb-portrait-nazrin'
36 figure_image = 'thb-figure-nazrin'
37 miss_sound_effect = 'thb-cv-nazrin_miss'
39 notes = '|RKOF修正角色|r'
42@ui_meta(characters.nazrin.TreasureHunt)
43class TreasureHunt:
44 # Skill
45 name = '探宝'
46 description = '准备阶段开始时,你可以进行一次判定,若结果为黑,你获得此牌且你可以重复此流程。'
49@ui_meta(characters.nazrin.TreasureHuntHandler)
50class TreasureHuntHandler:
51 # choose_option
52 choose_option_buttons = (('发动', True), ('不发动', False))
53 choose_option_prompt = '你要发动【探宝】吗?'
56@ui_meta(characters.nazrin.Agile)
57class Agile:
58 # Skill
59 name = '轻敏'
60 description = '你可以将一张黑色手牌当|G擦弹|r使用或打出。'
62 def clickable(self):
63 g = self.game
64 me = self.me
66 try:
67 act = g.action_stack[-1]
68 except IndexError:
69 return False
71 if isinstance(act, BaseUseGraze) and (me.cards or me.showncards):
72 return True
74 return False
76 def is_complete(self, skill):
77 cl = skill.associated_cards
78 me = self.me
79 if len(cl) != 1:
80 return (False, '请选择一张牌!')
81 else:
82 c = cl[0]
83 if c.resides_in not in (me.cards, me.showncards):
84 return (False, '请选择手牌!')
85 if c.suit not in (Card.SPADE, Card.CLUB):
86 return (False, '请选择一张黑色的牌!')
87 return (True, '这种三脚猫的弹幕,想要打中我是不可能的啦~')
89 def sound_effect(self, act):
90 return 'thb-cv-nazrin_agile'
93@ui_meta(characters.nazrin.AgileKOF)
94class AgileKOF:
95 # Skill
96 name = '轻敏'
97 description = '你可以将一张|B黑桃|r手牌当|G擦弹|r使用或打出。'
99 clickable = Agile.clickable
101 def is_complete(self, skill):
102 cl = skill.associated_cards
103 me = self.me
104 if len(cl) != 1:
105 return (False, '请选择一张牌!')
106 else:
107 c = cl[0]
108 if c.resides_in not in (me.cards, me.showncards):
109 return (False, '请选择手牌!')
110 if c.suit != Card.SPADE:
111 return (False, '请选择一张黑桃色手牌牌!')
112 return (True, '这种三脚猫的弹幕,想要打中我是不可能的啦~')
114 sound_effect = Agile.sound_effect
117@ui_meta(characters.nazrin.TreasureHuntAction)
118class TreasureHuntAction:
119 fatetell_display_name = '探宝'
121 def effect_string(self, act):
122 if act.succeeded:
123 return '|G【%s】|r找到了|G%s|r' % (
124 act.target.ui_meta.name,
125 act.card.ui_meta.name,
126 )
127 else:
128 return '|G【%s】|r什么也没有找到…' % (
129 act.target.ui_meta.name,
130 )
132 def sound_effect(self, act):
133 tgt = act.target
134 t = tgt.tags
135 if not t['__treasure_hunt_se'] >= t['turn_count']:
136 t['__treasure_hunt_se'] = t['turn_count']
137 return 'thb-cv-nazrin_treasurehunt'