Coverage for thb/meta/tags.py : 48%
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 itertools
7# -- third party --
8# -- own --
9from thb.actions import PlayerTurn
12# -- code --
13tags = {}
16def ui_meta(cls):
17 tags[cls.__name__] = cls()
18 return cls
21def get_display_tags(p):
22 from thb.actions import ttags
24 rst = []
26 try:
27 for t, v in itertools.chain(p.tags.items(), ttags(p).items()):
28 meta = tags.get(t)
29 if not meta:
30 continue
32 desc = meta.desc(p, v)
33 if not desc:
34 continue
36 rst.append(desc)
38 for c in list(getattr(p, 'fatetell', ())):
39 rst.append((c.ui_meta.tag_desc(c), c.ui_meta.description))
41 except AttributeError:
42 pass
44 return rst
47@ui_meta
48class vitality:
49 def desc(g, p, v):
50 current = PlayerTurn.get_current(g).target
51 if v <= 0 and current is p:
52 return 'thb-tag-attacked', '没有干劲了……'
55@ui_meta
56class wine:
57 def desc(g, p, v):
58 return v and ('thb-tag-wine', '喝醉了…')
61@ui_meta
62class flan_cs:
63 def desc(g, p, v):
64 current = PlayerTurn.get_current(g).target
65 if v >= p.tags['turn_count'] and current is p:
66 return 'thb-tag-flandrecs', '玩坏你哦!'
69@ui_meta
70class lunadial:
71 def desc(g, p, v):
72 current = PlayerTurn.get_current(g).target
73 if v and current is p:
74 return 'thb-tag-lunadial', '咲夜的时间!'
77@ui_meta
78class riverside_target:
79 def desc(g, p, v):
80 if v == g.turn_count:
81 return 'thb-tag-riverside', '被指定为彼岸的目标'
84@ui_meta
85class ran_ei:
86 def desc(g, p, v):
87 if v < p.tags['turn_count'] + 1:
88 return 'thb-tag-ran_ei', '还可以发动极智'
91@ui_meta
92class aya_count:
93 def desc(g, p, v):
94 current = PlayerTurn.get_current(g).target
95 if v >= 2 and p is current:
96 return 'thb-tag-aya_range_max', '使用卡牌时不受距离限制'
99@ui_meta
100class exterminate:
101 def desc(g, p, v):
102 return v and 'thb-tag-flandre_exterminate', '毁灭:无法使用人物技能'
105@ui_meta
106class reisen_discarder:
107 def desc(g, p, v):
108 return v and 'thb-tag-reisen_discarder', '丧心:下一个出牌阶段只能使用弹幕,且只能对最近的角色使用弹幕'
111@ui_meta
112class shizuha_decay:
113 def desc(g, p, v):
114 return v and 'thb-tag-shizuha_decay', '凋零:弃牌阶段需额外弃置一张手牌'
117@ui_meta
118class scarlet_mist:
119 def desc(g, p, v):
120 if v == 'buff':
121 return 'thb-tag-scarlet_mist', '红雾:增益效果'
124@ui_meta
125class keine_devour:
126 def desc(g, p, v):
127 current = PlayerTurn.get_current(g).target
128 if v and p is current:
129 return 'thb-tag-keine_devour', '这位玩家的历史将会被慧音吞噬'
132@ui_meta
133class devoted:
134 def desc(p, v):
135 return 'thb-tag-keine_devoted', '合格的CP当然要同富贵共患难!'
137# -----END TAGS UI META-----