226 |
227 |
228 |
233 |
234 |
235 |
--------------------------------------------------------------------------------
/i18n/Messages_zh.properties:
--------------------------------------------------------------------------------
1 | button.use=使用
2 | button.reset=重置
3 | button.cancel=取消
4 | button.sound=声音
5 | button.discard-area=弃牌区
6 | button.back-to-hand=返回手中
7 | label.player-count=玩家数量
8 | label.discard-area=弃牌区
9 | label.blanked=封锁
10 | label.cursed-hoard=被诅咒的宝藏
11 | label.cursed-hoard.items=被诅咒的物品
12 | label.cursed-hoard.suits=建筑/局外人/不死族
13 | suit.land=土地
14 | suit.flood=洪水
15 | suit.weather=气候
16 | suit.flame=烈火
17 | suit.army=军队
18 | suit.wizard=法师
19 | suit.leader=领袖
20 | suit.beast=猛兽
21 | suit.weapon=兵器
22 | suit.artifact=文物
23 | suit.wild=通用
24 | suit.building=建筑
25 | suit.outsider=局外人
26 | suit.undead=不死族
27 | suit.cursed-item=被诅咒的物品
28 | FR01.name=高山
29 | FR01.bonus=持有烟雾 和野火则+50. 清除所有洪水的惩罚.
30 | FR02.name=洞穴
31 | FR02.bonus=持有矮人兵团/巨龙则+25. 清除所有气候的惩罚.
32 | FR03.name=钟楼
33 | FR03.bonus=持有任何法师则+15.
34 | FR04.name=森林
35 | FR04.bonus=每持有猛兽/精灵射手便+12.
36 | FR05.name=土元素
37 | FR05.bonus=每持有其他土地便+15.
38 | FR06.name=生命之泉
39 | FR06.bonus=将任何一张兵器/洪水/烈火/土地/气候的基本战力添加到此卡牌.
40 | FR07.name=沼泽
41 | FR07.penalty=每持有军队/烈火便-3.
42 | FR08.name=大洪水
43 | FR08.penalty=封阻所有军队、土地和烈火(高山和雷电除外).
44 | FR09.name=岛屿
45 | FR09.bonus=清除任何一张洪水/烈火的惩罚.
46 | FR09.action=从你的手牌中选一张洪水或烈火清除.
47 | FR10.name=水元素
48 | FR10.bonus=每持有其他洪水便+15.
49 | FR11.name=暴雨
50 | FR11.bonus=每持有洪水便+10.
51 | FR11.penalty=封阻所有烈火(雷电除外).
52 | FR12.name=暴雪
53 | FR12.penalty=封阻所有洪水. 每持有军队/领袖/猛兽/烈火便-5.
54 | FR13.name=烟雾
55 | FR13.penalty=未持有烈火则被封阻.
56 | FR14.name=龙卷风
57 | FR14.bonus=持有暴雨和暴雪/大洪水则+40.
58 | FR15.name=风元素
59 | FR15.bonus=每持有其他气候便+15.
60 | FR16.name=野火
61 | FR16.penalty=封阻所有卡牌,除了烈火、法师、气候、兵器、文物、高山、大洪水、岛屿、独角兽和巨龙.
62 | FR17.name=烛火
63 | FR17.bonus=持有易经、钟楼和任何法师则+100.
64 | FR18.name=锻炉
65 | FR18.bonus=每持有兵器、文物便+9.
66 | FR19.name=雷电
67 | FR19.bonus=持有暴雨则+30.
68 | FR20.name=火元素
69 | FR20.bonus=每持有其他烈火便+15.
70 | FR21.name=骑士
71 | FR21.penalty=未持有领袖则-8.
72 | FR22.name=精灵射手
73 | FR22.bonus=未持有任何气候则+5.
74 | FR23.name=轻骑兵
75 | FR23.penalty=每持有土地便-2.
76 | FR24.name=矮人兵团
77 | FR24.penalty=每持有其他军队便-2.
78 | FR25.name=游侠
79 | FR25.bonus=每持有土地便+10. 清除所有惩罚中的军队一词.
80 | FR26.name=收藏家
81 | FR26.bonus=如持有同类别而不同名称的卡牌达以下数量:3张则+10;4张则+40;5张则+100.
82 | FR27.name=驯兽师
83 | FR27.bonus=每持有猛兽便+9. 清除所有猛兽的惩罚.
84 | FR28.name=死灵术士
85 | FR28.bonus=游戏结束时,可从弃牌区选取一张军队/领袖/法师/猛兽,成为第8张手牌.
86 | FR29.name=魔导师
87 | FR29.penalty=每持有领袖/其他法师便-10.
88 | FR30.name=结界巫女
89 | FR30.bonus=每持有土地/气候/洪水/烈火便+5.
90 | FR31.name=国王
91 | FR31.bonus=每持有军队便+5. 持有皇后时,每持有军队便+20.
92 | FR32.name=皇后
93 | FR32.bonus=每持有军队便+5. 持有国王时,每持有军队便+20.
94 | FR33.name=公主
95 | FR33.bonus=每持有军队/法师/其他领袖便+8.
96 | FR34.name=军阀
97 | FR34.bonus=所有军队的基本战力总和.
98 | FR35.name=女帝
99 | FR35.bonus=每持有军队便+10.
100 | FR35.penalty=每持有其他领袖便-5.
101 | FR36.name=独角兽
102 | FR36.bonus=持有公主则+30. 持有女帝/皇后/结界巫女则+15.
103 | FR37.name=翼蜥
104 | FR37.penalty=封阻所有军队、领袖和其他猛兽.
105 | FR38.name=战马
106 | FR38.bonus=持有任何领袖/法师则+14.
107 | FR39.name=巨龙
108 | FR39.penalty=未持有法师则-40.
109 | FR40.name=多头蛇
110 | FR40.bonus=持有Swamp则+28.
111 | FR41.name=战船
112 | FR41.bonus=清除所有洪水惩罚中的军队一词.
113 | FR41.penalty=未持有洪水则被封阻.
114 | FR42.name=魔杖
115 | FR42.bonus=持有法师则+25.
116 | FR43.name=基夫之剑
117 | FR43.bonus=持有领袖则+10. 持有领袖和基夫之盾则+40.
118 | FR44.name=精灵长弓
119 | FR44.bonus=持有精灵射手/军阀/驯兽师则+30.
120 | FR45.name=飞艇
121 | FR45.penalty=未持有军队或持有气候则被封阻.
122 | FR46.name=基夫之盾
123 | FR46.bonus=持有领袖则+15. 持有领袖和基夫之剑则+40.
124 | FR47.name=序列宝石
125 | FR47.bonus=如持有基本战力呈序列(连续数字)的卡牌达以下数量:5张则+60;6张则+100;7张则+150.
126 | FR48.name=世界树
127 | FR48.bonus=如所有未被封阻的手牌皆属于不同类别则+50.
128 | FR49.name=易经
129 | FR49.bonus=可改变另一张手牌的类别,名称、奖励和惩罚则维持不变.
130 | FR49.action=选择你的一张手牌和要改变的类别.
131 | FR50.name=护身符
132 | FR50.bonus=清除所有卡牌的惩罚.
133 | FR51.name=变形怪
134 | FR51.bonus=可复制游戏内任何一张以下类别卡牌的名称和类别:文物/领袖/法师/兵器/猛兽. 不会复制奖励、惩罚和基本战力.
135 | FR51.action=选择一张卡牌复制.
136 | FR52.name=幻象
137 | FR52.bonus=可复制游戏内任何一张以下类别卡牌的名称和类别:军队/土地/气候/洪水/烈火. 不会复制奖励、惩罚和基本战力.
138 | FR52.action=选择一张卡牌复制.
139 | FR53.name=模仿者
140 | FR53.bonus=可复制另一张手牌的名称、基本战力、类别和惩罚(奖励除外)
141 | FR53.action=选择一张手牌复制.
142 | FR54.name=小丑
143 | FR54.bonus=每有其他基本战力为奇数的卡牌则+3. 若手牌的基本战力皆为奇数则+50.
144 | FR55.name=凤凰
145 | FR55.bonus=同时作为一张烈火和气候卡牌计分. 凤凰不受易经的影响,并且不能封阻任何卡牌或被任何其他卡牌封阻.
146 | FR55.penalty=持有洪水则被封阻.
147 | FR55P.name=凤凰(Promo)
148 | FR55P.bonus=同时作为一张烈火和气候卡牌计分. 如果这张卡牌因为任何原因被封阻,它的基本战力将减少到0,但仍然保留其类别.
149 | FR55P.penalty=持有洪水则被封阻.
150 | CH01.name=地城
151 | CH01.bonus=每持有第一张不死族,猛兽和文物则+10. 每持有上述类别的额外卡牌或死灵术士、魔导师、恶魔则+5.
152 | CH02.name=城堡
153 | CH02.bonus=每持有第一张领袖、军队、土地和其他建筑则+10. 每持有额外建筑则+5.
154 | CH03.name=墓穴
155 | CH03.bonus=所有不死族的基本战力总和.
156 | CH03.penalty=封阻所有领袖.
157 | CH04.name=教堂
158 | CH04.bonus=若持有恰好2张下列类别的卡牌则+40:领袖、法师、局外人和不死族.
159 | CH05.name=花园
160 | CH05.bonus=每持有领袖/猛兽则+11.
161 | CH05.penalty=持有不死族、死灵术士或恶魔则被封阻.
162 | CH06.name=神灯精灵
163 | CH06.bonus=没油一位其他玩家+10 在游戏结束时,可以从抽牌堆选择一张卡牌并加入手中. (在矮精灵之后执行).
164 | CH07.name=审判者
165 | CH07.bonus=每张含有未被清除之惩罚的卡牌则+10
166 | CH08.name=天使
167 | CH08.bonus=可以防止一张其他卡牌被封阻. 此卡牌不会被封阻.
168 | CH08.action=从你的手牌中选择一张卡牌.
169 | CH09.name=矮精灵
170 | CH09.bonus=在游戏结束时,从抽牌堆抽取一张卡牌并加入手中. (在神灯精灵之前执行).
171 | CH10.name=恶魔
172 | CH10.penalty=在其他非局外人卡牌中,如果该张卡牌为其类别中唯一一张则被封阻. 此效果优先于其他封阻.
173 | CH11.name=暗黑皇后
174 | CH11.bonus=在弃牌区每有Land/洪水/烈火/气候或独角兽则+5.
175 | CH12.name=食尸鬼
176 | CH12.bonus=在弃牌区每有法师/领袖/军队/猛兽/不死族则+4.
177 | CH13.name=幽魂
178 | CH13.bonus=在弃牌区每有法师/文物/局外人则+6.
179 | CH14.name=巫妖王
180 | CH14.bonus=+每持有死灵术士或其他不死族则+10. 不死族可不被封阻.
181 | CH15.name=死灵骑士
182 | CH15.bonus=在弃牌区每有兵器/军队则+7.
183 | CH16.name=钟楼
184 | CH16.bonus=持有任何法师/不死族则+15.
185 | CH17.name=生命之泉
186 | CH17.bonus=将任何一张建筑/兵器/洪水/烈火/土地/气候的基本战力添加到此卡牌.
187 | CH18.name=大洪水
188 | CH18.penalty=封阻所有军队、土地、建筑和烈火(高山和雷电除外).
189 | CH19.name=游侠
190 | CH19.bonus=每持有土地或建筑便+10. 清除所有惩罚中的军队一词.
191 | CH20.name=死灵术士
192 | CH20.bonus=游戏结束时,可从弃牌区选取一张军队/领袖/法师/猛兽/不死族,加入手牌. 不死族可不被封阻.
193 | CH21.name=世界树
194 | CH21.bonus=如所有未被封阻的手牌皆属于不同类别则+70.
195 | CH22.name=变形怪
196 | CH22.bonus=可复制游戏内任何一张以下类别卡牌的名称和类别:文物/领袖/法师/兵器/猛兽/不死族. 不会复制奖励、惩罚和基本战力.
197 | CH22.action=选择一张卡牌复制.
198 | CH23.name=幻象
199 | CH23.bonus=可复制游戏内任何一张以下类别卡牌的名称和类别:军队/土地/建筑/气候/洪水/烈火. 不会复制奖励、惩罚和基本战力.
200 | CH23.action=选择一张卡牌复制.
201 | CH24.name=望远镜
202 | CH24.bonus=查看另一位玩家的手牌.
203 | CH24.penalty=(*在二人游戏中该物品的基本战力为-10)
204 | CH25.name=石棺
205 | CH25.bonus=拿取抽牌堆顶部的卡牌,并直接将其放入弃牌区,然后结束回合. (本轮手牌将不会改变).
206 | CH26.name=眼罩
207 | CH26.bonus=颠倒正常的回合顺序:先弃一张卡牌,然后再从抽牌堆抽一张卡牌.
208 | CH27.name=预言之书
209 | CH27.bonus=查看抽牌堆底部的7张卡牌,然后将它们放回原来的位置.
210 | CH28.name=水晶球
211 | CH28.bonus=指明一种类别. 所有其他玩家必须展示各自拥有那种类型的所有卡牌.
212 | CH29.name=货车摊
213 | CH29.bonus=展示一张手牌. 任何其他玩家可以展示至多3张卡牌来提供交换. 可以从中选择一张与展示的卡牌交换;如果没有满意的卡牌,保留该卡牌或弃置它并从抽牌堆抽取一张新的卡牌.
214 | CH30.name=背包
215 | CH30.bonus=抽取3张被诅咒的物品并面向上放到一旁. 接下来三次需要从牌组抽取新的被诅咒的物品时,必须拿取这些卡牌中的一张.
216 | CH31.name=铁锹
217 | CH31.bonus=将弃牌区的一张卡牌放到抽牌堆的底部.
218 | CH32.name=密封金库
219 | CH32.bonus=将此卡牌覆盖住弃牌区的2张卡牌. 它们仍然在游戏结束时计分以及给不死族提供奖励, 但是任何其他玩家都不能拿取它们,并且它们对铁锹和金镜免疫.
220 | CH33.name=水晶透镜
221 | CH33.bonus=在决定从抽牌堆或弃牌区拿取卡牌前,可以偷看抽牌堆最上面的那张卡牌.
222 | CH34.name=盗贼手套
223 | CH34.bonus=窃取另一位玩家一张面朝上的被诅咒的物品. 必须立刻使用. 被偷取的玩家立即从被诅咒的物品牌堆中抽取一张新的替代.
224 | CH35.name=废品站地图
225 | CH35.bonus=拿取被诅咒的物品弃牌堆顶部3张中的其中一张,立刻将它打出.
226 | CH36.name=飞翼短靴
227 | CH36.bonus=将抽牌堆上的第一张卡牌直接放到弃牌区.
228 | CH37.name=变形手杖
229 | CH37.bonus=将手中的3-8张卡牌放回抽牌堆底部,从抽牌堆顶部抽取等量的卡牌.
230 | CH38.name=钉耙
231 | CH38.bonus=从弃牌区拿取2张卡牌,然后弃掉2张卡牌.
232 | CH39.name=宝箱
233 | CH39.bonus=游戏结束时,如果拥有至少3张面朝下的被诅咒的物品 facedown则+25.
234 | CH40.name=鱼钩
235 | CH40.bonus=从抽牌堆抽取2张卡牌,然后再弃置任意2张卡牌.
236 | CH41.name=维修工具
237 | CH41.bonus=复制任何一张已经使用的被诅咒的物品的能力,除了背包、石棺、眼罩和宝箱. 如果没有面朝下的被诅咒的物品,弃置此卡牌并重新抽取一张.
238 | CH42.name=沙漏
239 | CH42.bonus=执行一个额外的回合. 在第二个回合之前不要使用新的被诅咒的物品替换此卡.
240 | CH43.name=金镜
241 | CH43.bonus=将弃牌区的3张卡牌放到抽牌堆底部. 用抽牌堆顶部的3张卡牌代替它们
242 | CH44.name=药锅
243 | CH44.bonus=从抽牌堆抽取3张卡牌而不是一张,然后将其中2张放到抽牌堆顶部或底部(或各一张),之后正常弃牌.
244 | CH45.name=提灯
245 | CH45.bonus=指明一种类别. 从抽牌堆顶部抽牌直到抽到一张那种类别的卡牌,或者直到抽满十张牌(通用卡不算). 如果抽到了指明类别的一张牌,保留它并弃掉另一张牌. 展示抽到的卡牌并重洗抽牌堆.
246 | CH46.name=入口
247 | CH46.bonus=本回合跳过弃牌阶段. (从现在开始手中将拥有一张额外的牌).
248 | CH47.name=许愿戒指
249 | CH47.bonus=查看抽牌堆并将任意一张牌放到抽牌堆顶部. (可以在抽取卡牌前立即这么做). 在回合结束时重洗抽牌堆.
250 | timing.any-time=任何时间
251 | timing.replace-turn=替换回合
252 | timing.copy=复制卡牌复制时
253 | timing.after-turn=回合之后
254 |
--------------------------------------------------------------------------------
/js/app.js:
--------------------------------------------------------------------------------
1 | Handlebars.registerHelper('i18n', function () {
2 | var key = '';
3 | for (var arg in arguments) {
4 | if (typeof arguments[arg] != 'object') {
5 | key += arguments[arg];
6 | }
7 | }
8 | try {
9 | return jQuery.i18n.prop(key);
10 | } catch (e) {
11 | return key;
12 | }
13 | });
14 |
15 | var languages = {
16 | 'en': 'English',
17 | 'de': 'Deutsch',
18 | 'es': 'Español',
19 | 'fr': 'Français',
20 | 'pl': 'Polski',
21 | 'pt': 'Português',
22 | 'ua': 'Українська',
23 | 'cz': 'Čeština',
24 | 'kr': '한국어',
25 | 'ru': 'Русский',
26 | 'zh': '中文'
27 | }
28 |
29 | $(document).ready(function () {
30 | const lang = localStorage.getItem('language') || 'en';
31 | jQuery.i18n.properties({
32 | name: 'Messages',
33 | path: 'i18n/',
34 | mode: 'map',
35 | cache: true,
36 | language: lang,
37 | async: true,
38 | callback: function () {
39 | configureSelectedPlayerCount();
40 | configureSelectedExpansions();
41 | configureSound();
42 | showCards();
43 | getDiscardFromQueryString();
44 | getHandFromQueryString();
45 | $('#ch_items').change(function () {
46 | toggleCursedHoardItems();
47 | });
48 | $('#ch_suits').change(function () {
49 | toggleCursedHoardSuits();
50 | });
51 | $('#sound_state').change(function () {
52 | toggleSound();
53 | });
54 | updateLabels(lang);
55 | }
56 | });
57 | });
58 |
59 | var click = new Audio('sound/click.mp3');
60 | var swoosh = new Audio('sound/swoosh.mp3');
61 | var clear = new Audio('sound/clear.mp3');
62 | var magic = new Audio('sound/magic.mp3');
63 | var actionId = NONE;
64 | var bookOfChangesSelectedCard = NONE;
65 | var bookOfChangesSelectedSuit = undefined;
66 | var cursedHoardItems = false;
67 | var cursedHoardSuits = false;
68 | var playerCount = 4;
69 | var inputDiscardArea = false;
70 |
71 | function selectLanguage(lang) {
72 | localStorage.setItem('language', lang);
73 | jQuery.i18n.properties({
74 | name: 'Messages',
75 | path: 'i18n/',
76 | mode: 'map',
77 | cache: true,
78 | language: lang,
79 | async: true,
80 | callback: function () {
81 | swoosh.play();
82 | showCards();
83 | updateLabels(lang);
84 | }
85 | });
86 | }
87 |
88 | function updateLabels(lang) {
89 | $('#clear').attr('title', jQuery.i18n.prop('button.reset'));
90 | $('#lbl_ch_items').html(jQuery.i18n.prop('label.cursed-hoard.items'));
91 | $('#lbl_ch_suits').html(jQuery.i18n.prop('label.cursed-hoard.suits'));
92 | $('#sound-label').html(jQuery.i18n.prop('button.sound'));
93 | $('#selected-language').html(languages[lang]);
94 | $('#language .dropdown-item').removeClass('active');
95 | $('#lang-' + lang).addClass('active');
96 | }
97 |
98 | function configureSelectedExpansions() {
99 | if (window.location.search) {
100 | var params = window.location.search.substring(1).split('&');
101 | for (var i = 0; i < params.length; i++) {
102 | var param = params[i].split('=');
103 | if (param[0] === 'expansions') {
104 | if (param[1].indexOf('ch_items') > -1) {
105 | cursedHoardItems = true;
106 | deck.enableCursedHoardItems();
107 | $('#ch_items').prop('checked', true);
108 | }
109 | if (param[1].indexOf('ch_suits') > -1) {
110 | cursedHoardSuits = true;
111 | deck.enableCursedHoardSuits();
112 | $('#ch_suits').prop('checked', true);
113 | }
114 | return;
115 | }
116 | }
117 | }
118 | if (localStorage.getItem('ch_items') === true || localStorage.getItem('ch_items') === 'true') {
119 | cursedHoardItems = true;
120 | deck.enableCursedHoardItems();
121 | $('#ch_items').prop('checked', true);
122 | }
123 | if (localStorage.getItem('ch_suits') === true || localStorage.getItem('ch_suits') === 'true') {
124 | cursedHoardSuits = true;
125 | deck.enableCursedHoardSuits();
126 | $('#ch_suits').prop('checked', true);
127 | }
128 | }
129 |
130 | function configureSound() {
131 | if (localStorage.getItem('sound_state') === false || localStorage.getItem('sound_state') === 'false') {
132 | click.muted = swoosh.muted = clear.muted = magic.muted = true;
133 | $('#sound_state').prop('checked', false);
134 | }
135 | }
136 |
137 | function configureSelectedPlayerCount() {
138 | if (window.location.search) {
139 | var params = window.location.search.substring(1).split('&');
140 | for (var i = 0; i < params.length; i++) {
141 | var param = params[i].split('=');
142 | if (param[0] === 'playerCount') {
143 | playerCount = param[1];
144 | return;
145 | }
146 | }
147 | }
148 | if (localStorage.getItem('playerCount')) {
149 | playerCount = localStorage.getItem('playerCount');
150 | }
151 | }
152 |
153 | function toggleCursedHoardItems() {
154 | cursedHoardItems = !cursedHoardItems;
155 | localStorage.setItem('ch_items', cursedHoardItems);
156 | if (cursedHoardItems) {
157 | deck.enableCursedHoardItems();
158 | } else {
159 | deck.disableCursedHoardItems();
160 | }
161 | reset();
162 | }
163 |
164 | function toggleCursedHoardSuits() {
165 | cursedHoardSuits = !cursedHoardSuits;
166 | localStorage.setItem('ch_suits', cursedHoardSuits);
167 | if (cursedHoardSuits) {
168 | deck.enableCursedHoardSuits();
169 | } else {
170 | deck.disableCursedHoardSuits();
171 | }
172 | reset();
173 | }
174 |
175 | function toggleSound() {
176 | const enabled = $('#sound_state').prop('checked');
177 | localStorage.setItem('sound_state', enabled);
178 | click.muted = swoosh.muted = clear.muted = magic.muted = !enabled;
179 | clear.play();
180 | }
181 |
182 | function setPlayerCount(count) {
183 | click.play();
184 | playerCount = count;
185 | localStorage.setItem('playerCount', playerCount);
186 | updateHandView();
187 | }
188 |
189 | function reset() {
190 | clear.play();
191 | discard.clear();
192 | hand.clear();
193 | showCards();
194 | updateHandView();
195 | actionId = NONE;
196 | bookOfChangesSelectedCard = NONE;
197 | bookOfChangesSelectedSuit = undefined;
198 | inputDiscardArea = false;
199 | $("#discard").hide();
200 | $("#hand").show();
201 | }
202 |
203 | function addToView(id) {
204 | if (inputDiscardArea) {
205 | if (discard.addCard(deck.getCardById(id))) {
206 | click.play();
207 | updateDiscardAreaView();
208 | }
209 | } else {
210 | if ([SHAPESHIFTER, CH_SHAPESHIFTER, MIRAGE, CH_MIRAGE].includes(actionId)) {
211 | click.play();
212 | magic.play();
213 | var duplicator = hand.getCardById(actionId);
214 | duplicator.actionData = [id];
215 | showCards();
216 | updateHandView();
217 | actionId = NONE;
218 | } else if (hand.addCard(deck.getCardById(id))) {
219 | click.play();
220 | if (discard.containsId(id)) {
221 | discard.deleteCardById(id);
222 | }
223 | updateHandView();
224 | actionId = NONE;
225 | }
226 | }
227 | }
228 |
229 | function selectFromHand(id) {
230 | const card = hand.getCardById(id);
231 | if (card.cursedItem) {
232 | removeFromHand(id);
233 | } else if (actionId === BOOK_OF_CHANGES) {
234 | if (id !== BOOK_OF_CHANGES && id !== PHOENIX) {
235 | click.play();
236 | bookOfChangesSelectedCard = id;
237 | performBookOfChanges();
238 | }
239 | } else if (actionId === DOPPELGANGER) {
240 | if (id !== DOPPELGANGER) {
241 | actionId = NONE;
242 | click.play();
243 | magic.play();
244 | var doppelGanger = hand.getCardById(DOPPELGANGER);
245 | doppelGanger.actionData = [id];
246 | updateHandView();
247 | }
248 | } else if (actionId === ISLAND) {
249 | var selectedCard = hand.getCardById(id);
250 | var island = hand.getCardById(ISLAND);
251 | if (selectedCard.suit === 'flood' || selectedCard.suit === 'flame' || isPhoenix(selectedCard)) {
252 | actionId = NONE;
253 | click.play();
254 | magic.play();
255 | island.actionData = [id];
256 | updateHandView();
257 | }
258 | } else if (actionId === CH_ANGEL) {
259 | actionId = NONE;
260 | click.play();
261 | magic.play();
262 | var angel = hand.getCardById(CH_ANGEL);
263 | angel.actionData = [id];
264 | updateHandView();
265 | } else if (actionId === NONE) {
266 | removeFromHand(id);
267 | }
268 | }
269 |
270 | function removeFromHand(id) {
271 | swoosh.play();
272 | hand.deleteCardById(id);
273 | updateHandView();
274 | }
275 |
276 | function removeFromDiscard(id) {
277 | swoosh.play();
278 | discard.deleteCardById(id);
279 | updateDiscardAreaView();
280 | }
281 |
282 | function updateHandView() {
283 | var template = Handlebars.compile($("#hand-template").html());
284 | var score = hand.score(discard);
285 | var html = template({
286 | playerCards: hand.faceDownCursedItems().concat(hand.cards()),
287 | playerCount: playerCount,
288 | playerCounts: [2, 3, 4, 5, 6]
289 | }, {
290 | allowProtoMethodsByDefault: true
291 | });
292 | $('#hand').html(html);
293 | if (score >= 0) {
294 | $('#points').text(('000' + score).slice(-3));
295 | } else {
296 | $('#points').text('-' + ('000' + Math.abs(score)).slice(-3));
297 | }
298 | $('#cardCount').text(hand.size());
299 | $('#cardLimit').text(hand.limit());
300 | if (hand.empty()) {
301 | $('#settings').show();
302 | } else {
303 | $('#settings').hide();
304 | }
305 | updateUrl();
306 | }
307 |
308 | function updateDiscardAreaView() {
309 | var template = Handlebars.compile($("#discard-template").html());
310 | var score = hand.score(discard);
311 | var html = template({
312 | discard: discard.cards()
313 | }, {
314 | allowProtoMethodsByDefault: true
315 | });
316 | $('#discard').html(html);
317 | if (score >= 0) {
318 | $('#points').text(('000' + score).slice(-3));
319 | } else {
320 | $('#points').text('-' + ('000' + Math.abs(score)).slice(-3));
321 | }
322 | updateUrl();
323 | }
324 |
325 | function updateUrl() {
326 | var params = [];
327 | if (cursedHoardItems || cursedHoardSuits) {
328 | var expansions = [];
329 | if (cursedHoardItems) {
330 | expansions.push('ch_items');
331 | }
332 | if (cursedHoardSuits) {
333 | expansions.push('ch_suits')
334 | }
335 | params.push('expansions=' + expansions.join(','));
336 | params.push('playerCount=' + playerCount);
337 | }
338 | if (!hand.empty()) {
339 | params.push('hand=' + hand.toString());
340 | }
341 | if (discard.size() > 0) {
342 | params.push('discard=' + discard.toString());
343 | }
344 | if (params.length > 0) {
345 | history.replaceState(null, null, "index.html?" + params.join('&'));
346 | } else {
347 | history.replaceState(null, null, "index.html");
348 | }
349 | }
350 |
351 | function getHandFromQueryString() {
352 | var params = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
353 | for (var i = 0; i < params.length; i++) {
354 | var param = params[i].split('=');
355 | if (param[0] === 'hand') {
356 | hand.loadFromString(decodeURIComponent(param[1]).replace(/ /g, '+'));
357 | }
358 | }
359 | updateHandView();
360 | }
361 |
362 | function getDiscardFromQueryString() {
363 | var params = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
364 | for (var i = 0; i < params.length; i++) {
365 | var param = params[i].split('=');
366 | if (param[0] === 'discard') {
367 | discard.loadFromString(decodeURIComponent(param[1]));
368 | }
369 | }
370 | }
371 |
372 | function useCardAction(id) {
373 | click.play();
374 | actionId = id;
375 | hand.undoCardAction(id);
376 | showCards();
377 | if (id === BOOK_OF_CHANGES) {
378 | bookOfChangesSelectedCard = NONE;
379 | bookOfChangesSelectedSuit = undefined;
380 | var template = Handlebars.compile($("#suit-selection-template").html());
381 | var html = template({
382 | suits: deck.suits()
383 | }, {
384 | allowProtoMethodsByDefault: true
385 | });
386 | $('#cards').html(html);
387 | } else if ([SHAPESHIFTER, CH_SHAPESHIFTER, MIRAGE, CH_MIRAGE].includes(id)) {
388 | var duplicator = hand.getCardById(id);
389 | showCards(duplicator.card.relatedSuits);
390 | }
391 | updateHandView();
392 | $('#card-action-text-' + id).text(jQuery.i18n.prop(id + '.action'));
393 | $('#card-action-use-' + id).hide();
394 | $('#card-action-cancel-' + id).show();
395 | }
396 |
397 | function cancelCardAction(id) {
398 | click.play();
399 | hand.undoCardAction(id)
400 | actionId = NONE;
401 | bookOfChangesSelectedCard = NONE;
402 | bookOfChangesSelectedSuit = undefined;
403 | $('#card-action-cancel-' + id).hide();
404 | $('#card-action-use-' + id).show();
405 | showCards();
406 | updateHandView();
407 | }
408 |
409 | function performBookOfChanges() {
410 | if (bookOfChangesSelectedCard !== NONE && bookOfChangesSelectedSuit !== undefined) {
411 | magic.play();
412 | var bookOfChanges = hand.getCardById(BOOK_OF_CHANGES);
413 | bookOfChanges.actionData = [bookOfChangesSelectedCard, bookOfChangesSelectedSuit];
414 | showCards();
415 | updateHandView();
416 | actionId = NONE;
417 | }
418 | }
419 |
420 | function selectSuit(suit) {
421 | click.play();
422 | bookOfChangesSelectedSuit = suit;
423 | performBookOfChanges();
424 | }
425 |
426 | function switchToDiscardArea() {
427 | click.play();
428 | inputDiscardArea = true;
429 | updateDiscardAreaView();
430 | showCards(allSuits());
431 | $("#hand").hide();
432 | $("#discard").show();
433 | }
434 |
435 | function switchToHand() {
436 | click.play();
437 | inputDiscardArea = false;
438 | updateHandView();
439 | showCards();
440 | $("#discard").hide();
441 | $("#hand").show();
442 | }
443 |
444 | function showCards(suits) {
445 | var template = Handlebars.compile($("#cards-template").html());
446 | var html = template({
447 | suits: deck.getCardsBySuit(suits),
448 | }, {
449 | allowProtoMethodsByDefault: true
450 | });
451 | $('#cards').html(html);
452 | }
453 |
--------------------------------------------------------------------------------
/i18n/Messages_kr.properties:
--------------------------------------------------------------------------------
1 | button.use=사용
2 | button.reset=초기화
3 | button.cancel=취소
4 | button.sound=효과음
5 | button.discard-area=버린 카드
6 | button.back-to-hand=손으로 되돌리기
7 | label.player-count=플레이어 수
8 | label.discard-area=카드 버리기
9 | label.blanked=무효
10 | label.cursed-hoard=저주받은 무덤
11 | label.cursed-hoard.items=저주받은 유물
12 | label.cursed-hoard.suits=건물/이방인/언데드
13 | suit.land=땅
14 | suit.flood=물
15 | suit.weather=날씨
16 | suit.flame=불
17 | suit.army=군대
18 | suit.wizard=마법사
19 | suit.leader=지도자
20 | suit.beast=야수
21 | suit.weapon=무기
22 | suit.artifact=유물
23 | suit.wild=불명
24 | suit.building=건물
25 | suit.outsider=이방인
26 | suit.undead=언데드
27 | suit.cursed-item=저주받은 유물
28 | FR01.name=산
29 | FR01.bonus=연기와 들불이 모두 있으면 +50. 모든 물의 패널티 제거.
30 | FR02.name=동굴
31 | FR02.bonus=드워프 보병대, 용 중 하나라도 있으면 +25. 모든 날씨의 패널티 제거.
32 | FR03.name=종탑
33 | FR03.bonus=마법사가 하나라도 있으면 +15.
34 | FR04.name=숲
35 | FR04.bonus=야수 1장당 +12. 엘프 궁수대가 있으면 +12.
36 | FR05.name=대지의 정령
37 | FR05.bonus=다른 땅 1장당 +15.
38 | FR06.name=생명의 샘
39 | FR06.bonus=가지고 있는 무기, 물, 불, 땅 or 날씨 중 1장의 기본 힘 더하기.
40 | FR07.name=늪
41 | FR07.penalty=군대와 불 1장당 -3.
42 | FR08.name=대홍수
43 | FR08.penalty=모든 군대 무효, 모든 땅 무효 (산 예외), 모든 불 무효 (번개 예외).
44 | FR09.name=섬
45 | FR09.bonus=물이나 불 중 1장의 패널티를 제거.
46 | FR09.penalty=물이나 불 중 1장의 패널티를 제거.
47 | FR10.name=물의 정령
48 | FR10.bonus=다른 물 1장당 +15.
49 | FR11.name=폭풍우
50 | FR11.bonus=물 1장당 +10.
51 | FR11.penalty=모든 불 (번개 예외) 무효.
52 | FR12.name=눈보라
53 | FR12.penalty=모든 물 무효. 군대, 지도자, 야수, 불 1장당 -5.
54 | FR13.name=연기
55 | FR13.penalty=불이 하나도 없으면 이 카드는 무효.
56 | FR14.name=회오리바람
57 | FR14.bonus=폭풍우가 있고 눈보라, 대홍수 중 하나라도 있으면 +40.
58 | FR15.name=대기의 정령
59 | FR15.bonus=다른 날씨 1장당 +15.
60 | FR16.name=들불
61 | FR16.penalty=모든 카드 무효. 불, 마법사, 날씨, 무기, 유물, 산, 대홍수, 섬, 유니콘, 용 예외.
62 | FR17.name=양초
63 | FR17.bonus=변화의 책과 종탑이 모두 있고, 마법사가 하나라도 있으면 +100.
64 | FR18.name=대장간
65 | FR18.bonus=무기와 유물 1장당 +9.
66 | FR19.name=번개
67 | FR19.bonus=폭풍우가 있으면 +30.
68 | FR20.name=불의 정령
69 | FR20.bonus=다른 불 1장당 +15.
70 | FR21.name=기사단
71 | FR21.penalty=지도자가 하나도 없으면 -8.
72 | FR22.name=엘프 궁수대
73 | FR22.bonus=날씨가 하나도 없으면 +5.
74 | FR23.name=경기병대
75 | FR23.penalty=땅 1장당 -2.
76 | FR24.name=드워프 보병대
77 | FR24.penalty=다른 군대 1장당 -2.
78 | FR25.name=돌격대
79 | FR25.bonus=땅 1장당 +10. 모든 카드의 페널티에서 군대를 제거.
80 | FR26.name=수집가
81 | FR26.bonus=종류가 같고, 이름은 같지 않은 카드 3장당 +10, 4장 +40, 5장 +100.
82 | FR27.name=야수 조련사
83 | FR27.bonus=야수 1장당 +9. 모든 야수의 패널티 제거.
84 | FR28.name=강령술사
85 | FR28.bonus=게임 종료 후 버려진 군대, 지도자, 마법사, 야수 중 1장을 가져와서 8번째 카드로 계산 가능.
86 | FR29.name=대마도사
87 | FR29.penalty=지도자와 다른 마법사 1장당 -10.
88 | FR30.name=여마도사
89 | FR30.bonus=땅, 날씨, 물, 불 1장당 +5.
90 | FR31.name=왕
91 | FR31.bonus=군대 1장당 +5. 또는 여왕이 있으면, 군대 1장당 +20.
92 | FR32.name=여왕
93 | FR32.bonus=군대 1장당 +5. 또는 왕이 있으면, 군대 1장당 +20.
94 | FR33.name=공주
95 | FR33.bonus=군대, 마법사, 다른 지도자 1장당 +8.
96 | FR34.name=장군
97 | FR34.bonus=모든 군대의 기본 힘의 합.
98 | FR35.name=황후
99 | FR35.bonus=군대 1장당 +10.
100 | FR35.penalty=다른 지도자 1장당 -5.
101 | FR36.name=유니콘
102 | FR36.bonus=공주가 있으면 +30. 또는 황후, 여왕, 여마도사 중 하나라도 있으면 +15.
103 | FR37.name=바실리스크
104 | FR37.penalty=모든 군대, 모든 지도자, 다른 모든 야수 무효.
105 | FR38.name=군마
106 | FR38.bonus=지도자나 마법사가 하나라도 있으면 +14.
107 | FR39.name=용
108 | FR39.penalty=마법사가 하나도 없으면 -40.
109 | FR40.name=히드라
110 | FR40.bonus=늪이 있으면 +28.
111 | FR41.name=전함
112 | FR41.bonus=모든 물의 페널티에서 군대를 제거.
113 | FR41.penalty=물이 하나도 없으면 이 카드는 무효.
114 | FR42.name=마법 지팡이
115 | FR42.bonus=마법사가 하나라도 있으면 +25.
116 | FR43.name=케드의 검
117 | FR43.bonus=지도자가 하나라도 있으면 +10. 또는 지도자가 하나라도 있고, 케드의 방패가 있으면 +40.
118 | FR44.name=엘프의 장궁
119 | FR44.bonus=엘프 궁수대, 장군, 야수 조련사 중 하나라도 있으면 +30.
120 | FR45.name=전투 비행선
121 | FR45.penalty=군대가 하나도 없거나, 날씨가 하나라도 있으면 이 카드는 무효.
122 | FR46.name=케드의 방패
123 | FR46.bonus=지도자가 하나라도 있으면 +15. 또는 지도자가 하나라도 있고, 케드의 검이 있으면 +40.
124 | FR47.name=질서의 보석
125 | FR47.bonus=카드들 중 기본 힘이 연속된 숫자로 3장이면 +10, 4장이면 +30, 5장이면 +60, 6장이면 +100, 7장이면 +150.
126 | FR48.name=세계수
127 | FR48.bonus=무효가 되지 않은 모든 카드들의 종류가 같지 않다면 +50.
128 | FR49.name=변화의 책
129 | FR49.bonus=손에 있는 다른 카드 1장의 종류를 변경 가능. 이름, 기본 힘, 보너스, 페널티는 그대로 유지.
130 | FR49.action=변경할 종류와 손에서 대상 카드를 선택합니다.
131 | FR50.name=보호의 룬
132 | FR50.bonus=모든 카드의 페널티 제거
133 | FR51.name=변신 능력자
134 | FR51.bonus=게임 전체의 유물, 지도자, 마법사, 무기, 야수 중 1장의 이름과 종류를 복사 가능. 보너스, 페널티, 기본 힘은 복사 불가.
135 | FR51.penalty=복제할 카드를 고르시오.
136 | FR52.name=신기루
137 | FR52.bonus=게임 전체의 군대, 땅, 날씨, 물, 불 중 1장의 이름과 종류를 복사 가능. 보너스, 페널티, 기본 힘은 복사 불가
138 | FR52.penalty=복제할 카드를 고르시오
139 | FR53.name=도플갱어
140 | FR53.bonus=손에 있는 다른 카드 1장의 이름, 종류, 기본 힘, 페널티를 복사 가능. 보너스는 복사 불가
141 | FR53.penalty=복제할 카드를 손에서 고르시오
142 | FR54.name=광대
143 | FR54.bonus=(다른) 기본 힘이 홀수인 카드마다 +3. 또는 모든 카드의 기본 힘이 홀수면 +50.
144 | FR55.name=불사조
145 | FR55.bonus=이 카드는 불, 날씨 카드로 취급. 불사조는 변화의 책에 면역이며, 다른 카드에 의해 무효되지 않음.
146 | FR55.penalty=물이 하나라도 있으면 무효.
147 | FR55P.name=불사조 (프로모)
148 | FR55P.bonus=이 카드는 불, 날씨 카드로 취급. 이 카드가 무효라면 기본 힘은 0이 되지만 종류는 유지합니다.
149 | FR55P.penalty=물이 하나라도 있으면 무효.
150 | CH01.name=던전
151 | CH01.bonus=언데드, 야수, and 유물의 첫 번째 카드들은 각각 +10. 해당 종류의 두 번째 카드부터는 1장당 +5. 강령술사, 대마도사, 악마는 각각 +5
152 | CH02.name=성
153 | CH02.bonus=지도자, 군대, 땅 (성이 아닌)건물의 첫 번째 카드들은 각각 +10. 건물의 두 번째 카드부터는 1장당 +5.
154 | CH03.name=지하 묘지
155 | CH03.bonus=모든 언데드의 기본 힘의 합.
156 | CH03.penalty=모든 지도자 무효.
157 | CH04.name=예배당
158 | CH04.bonus=다음 종류 중, 정확히 2장(같은 종류 2장 혹은 다른 종류 1장씩)의 카드만 있으면 +40: 지도자, 마법사, 이방인, and 언데드.
159 | CH05.name=정원
160 | CH05.bonus=지도자와 야수 1장당 +11.
161 | CH05.penalty=언데드가 하나라도 있거나 강령술사나 악마가 있으면 무효.
162 | CH06.name=지니
163 | CH06.bonus=다른 플레이어 1명당 +10. 게임 종료 후 (레프리콘 해결 후) 덱을 모두 보고 1장을 골라서 손에 획득.
164 | CH07.name=심판관
165 | CH07.bonus=손에 있는 카드 중 제거되지 않은 페널티가 있는 카드 1장당 +10.
166 | CH08.name=천사
167 | CH08.bonus=카드 1장이 무효가 되는 것을 막아줌. 이 카드는 무효가 되지 않음.
168 | CH08.action=손에서 대상 카드를 선택합니다.
169 | CH09.name=레프리콘
170 | CH09.bonus=게임 종료 후 (지니 해결 전) 덱 맨 위의 카드를 가져와서 손에 획득.
171 | CH10.name=악마
172 | CH10.penalty=이방인이 아닌 모든 카드는 다음 효과 적용 : 만약 이 카드가 해당 종류의 유일한 카드라면 무효. 이 효과는 다른 무효 효과들보다 먼저 적용.
173 | CH11.name=어둠의 여왕
174 | CH11.bonus=버려진 땅, 물, 불, 날씨 1장당 +5. 버려진 유니콘이 있으면 +5.
175 | CH12.name=구울
176 | CH12.bonus=버려진 마법사, 지도자, 군대, 야수, 언데드 1장당 +4.
177 | CH13.name=혼령
178 | CH13.bonus=버려진 마법사, 유물, 이방인 1장당 +6.
179 | CH14.name=시체들의 왕
180 | CH14.bonus=강령술사가 있으면 +10. 다른 언데드 1장당 +10. 언데드는 무효가 되지 않음.
181 | CH15.name=죽음의 기사
182 | CH15.bonus=무기, 군대 1장당 +7.
183 | CH16.name=종탑
184 | CH16.bonus=마법사, 언데드가 하나라도 있으면 +15.
185 | CH17.name=생명의 샘
186 | CH17.bonus=가지고 있는 건물, 무기, 물, 불, 땅, 날씨 중 1장의 기본 힘 더하기.
187 | CH18.name=대홍수
188 | CH18.penalty=모든 군대, 건물 무효. 모든 땅 무효 (산 예외), 모든 불 무효 ( 예외).
189 | CH19.name=돌격대
190 | CH19.bonus=땅, 건물 1장당 +10. 모든 카드의 페널티에서 군대를 제거.
191 | CH20.name=강령술사
192 | CH20.bonus=게임 종료 후 (지니 해결 후) 버려진 군대, 지도자, 마법사, 야수, 언데드 중 1장을 가져와서 손에 획득. 언데드는 무효되지 않음.
193 | CH21.name=세계수
194 | CH21.bonus=무효가 되지 않은 모든 카드들의 종류가 다르면 +70.
195 | CH22.name=변신 능력자
196 | CH22.bonus=게임 전체의 유물, 지도자, 마법사, 무기, 야수, 언데드 중 1장의 이름과 종류를 복사 가능. 보너스 , 페널티, 기본 힘은 복사 불가.
197 | CH22.action=복제할 대상 카드를 선택합니다.
198 | CH23.name=신기루
199 | CH23.bonus=게임 전체의 군대, 건물, 땅, 날씨, 물, 불 중 1장의 이름과 종류를 복사 가능. 보너스, 페널티, 기본 힘은 복사 불가.
200 | CH23.action=복제할 대상 카드를 선택합니다.
201 | CH24.name=망원경
202 | CH24.bonus=원하는 때: 다른 플레이어 1명이 가진 카드들을 본다.
203 | CH24.penalty=(*1인 플레이 시 이 유물의 기본 힘은 -10)
204 | CH25.name=석관
205 | CH25.bonus=차례 대신: 덱 맨 위의 카드를 공개해서 버리는 공간에 놓고 당신의 차례를 끝낸다. (따라서 이 효과로 당신의 카드들이 바뀌지 않는다)
206 | CH26.name=눈가리개
207 | CH26.bonus=차례 대신: 당신은 이번 차례만 진행 순서를 다음과 같이 바꾼다. 먼저 카드를 1장 버리고, 그 다음에 덱에서 카드를 가져온다 (버리는 공간에서 가져오기 불가).
208 | CH27.name=예언서
209 | CH27.bonus=원하는 때: 덱 아래의 카드 7장을 보고나서, 다시 되돌려 놓는다.
210 | CH28.name=수정구
211 | CH28.bonus=원하는 때: 종류 하나를 말한다. 다른 플레이어들은 가지고 있는 해당 종류의 카드들을 모두 공개한다.
212 | CH29.name=상점 마차
213 | CH29.bonus=차례 대신: 손에서 카드 1장을 공개한다. 다른 플레이어들은 교환하고 싶은 카드를 각자 3장까지 공개할 수 있다. 당신은 그 중 1장과 당신이 공개한 카드를 교환할 수 있다. 교환하지 않았다면: 당신은 공개했던 카드를 손에 든다. 아니면 버리고 덱 맨 위의 카드를 가져온다.
214 | CH30.name=등짐
215 | CH30.bonus=원하는 때: 유물 덱에서 저주받은 유물 3장을 공개해서 옆에 놓는다. 이후 저주받은 유물을 덱에서 새로 가져와야 할 때, 당신은 공개된 3장 중 1장을 대신 선택해야 한다.
216 | CH31.name=삽
217 | CH31.bonus=원하는 때: 버려진 카드 중 1장을 덱 맨 아래에 넣는다.
218 | CH32.name=봉인된 금고
219 | CH32.bonus=원하는 때: 이 카드를 버려진 카드 2장 위에 겹쳐 놓는다. 겹쳐진 카드는 게임 종료 조건에 포함되고 언데드에게 보너스도 준다. 이 카드들은 당신만 가져올 수 있다. 이 카드들에게 삽과 황금 거울을 사용할 수 없다.
220 | CH33.name=수정 렌즈
221 | CH33.bonus=원하는 때: 카드를 덱에서 가져올 지, 버려진 카드 중에서 가져올 지 선택하기 전에 덱 맨 위의 카드를 혼자 볼 수 있다.
222 | CH34.name=도둑질 장갑
223 | CH34.bonus=원하는 때: 다른 상대방 1명 앞에 공개된 저주받은 유물을 훔칠 수 있다. 훔쳐온 유물은 즉시 사용해야 한다. 유물을 뺏긴 상대방은 즉시 유물 덱에서 1장을 가져와 자신의 앞에 공개한다.
224 | CH35.name=쓰레기장 지도
225 | CH35.bonus=원하는 때: 유물을 버리는 더미에서 맨 위의 카드 3장을 보고 1장을 선택해서 즉시 사용한다.
226 | CH36.name=날개달린 신발
227 | CH36.bonus=원하는 때: 덱 맨 위의 카드를 공개해서 버리는 공간에 놓는다.
228 | CH37.name=변신 지팡이
229 | CH37.bonus=차례 대신: 손에서 3~8장의 카드를 덱 아래에 넣고, 넣은 수만큼의 카드를 덱 위에서 가져온다.
230 | CH38.name=갈퀴
231 | CH38.bonus=차례 대신: 버려진 카드 중에서 2장을 가져온다. 그러고 나서, 손에서 2장을 버린다.
232 | CH39.name=보물 상자
233 | CH39.bonus=원하는 때: 게임 종료 후 당신 앞에 뒷면으로 놓인 다른 저주받은 유물이 3장 이상 있다면 이 카드는 +25가 된다.
234 | CH40.name=낚시 바늘
235 | CH40.bonus=차례 대신: 덱에서 카드 2장을 가져온다. 그러고 나서, 손에서 2장을 버린다.
236 | CH41.name=수리 도구
237 | CH41.bonus=복사한 카드의 사용 시기: 당신이 이미 사용한 저주받은 유물 카드 1장의 기능을 복사한다. 등짐, 석관, 눈가리개, 보물상자는 복사할 수 없다. 이미 사용해서 뒷면으로 놓인 저주받은 유물이 없다면, 이 카드를 버리고 새로 가져온다.
238 | CH42.name=모래 시계
239 | CH42.bonus=차례가 끝날 때: 차례를 한 번 더 갖는다. 추가 차례가 끝날 때까지 저주받은 유물 카드를 보충하지 않는다.
240 | CH43.name=황금 거울
241 | CH43.bonus=원하는 때: 버려진 카드 중 3장을 선택해서 덱 아래에 넣는다. 덱 위의 카드 3장을 공개해서 버리는 공간에 놓는다.
242 | CH44.name=가마솥
243 | CH44.bonus=차례 대신: 덱에서 카드를 가져올 때 3장을 가져온다. 그 중 2장을 덱 위나 덱 아래에, 혹은 1장은 맨 위에, 1장은 맨 아래에 넣는다. 그러고 나서, 규칙대로 카드 1장을 버린다.
244 | CH45.name=등불
245 | CH45.bonus=차례 대신: 종류 하나를 말한다. 그 종류의 카드가 나오거나 10장을 가져올 때까지 덱에서 카드를 가져온다 (불명 카드는 세지 않는다). 해당 종류의 카드가 나오면 손에 들고, 대신에 다른 카드 1장을 손에서 버린다. 가져온 나머지 카드들을 공개한 뒤에 덱과 섞는다.
246 | CH46.name=포탈
247 | CH46.bonus=원하는 때: 이번 차례에 카드를 버리지 않는다 (따라서 이제부터 손에 카드 1장이 더 있게 된다).
248 | CH47.name=소원의 반지
249 | CH47.bonus=원하는 때: 덱을 모두 살피고 원하는 카드를 덱 맨 위에 놓는다. (카드를 가져오기 전에 이 행동으르 해도 된다) 차례가 끝날 때 덱을 섞는다.
250 | timing.any-time=원하는 때
251 | timing.replace-turn=차례 대신
252 | timing.copy=복사한 카드의 사용 시기
253 | timing.after-turn=차례가 끝날 때
254 |
--------------------------------------------------------------------------------
/js/hand.js:
--------------------------------------------------------------------------------
1 | class Hand {
2 |
3 | constructor() {
4 | this.cardsInHand = {};
5 | this.cursedItems = {};
6 | }
7 |
8 | addCard(card) {
9 | if (this._canAdd(card)) {
10 | if (card.cursedItem) {
11 | this.cursedItems[card.id] = new CardInHand(card);
12 | } else {
13 | this.cardsInHand[card.id] = new CardInHand(card);
14 | }
15 | return true;
16 | }
17 | return false;
18 | }
19 |
20 | _canAdd(newCard) {
21 | if (newCard.cursedItem) {
22 | return this.cursedItems[newCard.id] === undefined;
23 | } else if (this.cardsInHand[newCard.id] !== undefined || this.size() > this._defaultLimit()) {
24 | return false;
25 | } else if (this.size() < this._limitWithoutNecromancer()) {
26 | return true;
27 | } else if (![NECROMANCER, CH_NECROMANCER].includes(newCard.id) && newCard.extraCard) {
28 | return true;
29 | } else if (this.containsId(NECROMANCER, true) || newCard.id === NECROMANCER) {
30 | var targetFound = false;
31 | for (const card of this.cards()) {
32 | if (card.card.id !== NECROMANCER && deck.getCardById(NECROMANCER).relatedSuits.includes(card.card.suit)) {
33 | targetFound = true;
34 | }
35 | }
36 | return targetFound || this.containsId(NECROMANCER, true) && deck.getCardById(NECROMANCER).relatedSuits.includes(newCard.suit);
37 | } else if (this.containsId(CH_NECROMANCER, true) || newCard.id === CH_NECROMANCER) {
38 | var targetFound = false;
39 | for (const card of this.cards()) {
40 | if (card.card.id !== CH_NECROMANCER && deck.getCardById(CH_NECROMANCER).relatedSuits.includes(card.card.suit)) {
41 | targetFound = true;
42 | }
43 | }
44 | return targetFound || this.containsId(CH_NECROMANCER, true) && deck.getCardById(CH_NECROMANCER).relatedSuits.includes(newCard.suit);
45 | } else {
46 | return false;
47 | }
48 | }
49 |
50 | _normalizeId(id) {
51 | if (typeof(id) == "number") {
52 | id = id.toString()
53 | }
54 |
55 | if (id.match(/^[0-9+]+$/)) {
56 | return 'FR' + id.padStart(2, '0');
57 | }
58 | return id;
59 | }
60 |
61 | deleteCardById(id) {
62 | var normalizedId = this._normalizeId(id);
63 | delete this.cardsInHand[normalizedId];
64 | delete this.cursedItems[normalizedId];
65 | }
66 |
67 | getCardById(id) {
68 | var normalizedId = this._normalizeId(id);
69 | return this.cardsInHand[normalizedId] || this.cursedItems[normalizedId];
70 | }
71 |
72 | contains(cardName) {
73 | for (const card of this.nonBlankedCards()) {
74 | if (card.name === cardName) {
75 | return true;
76 | }
77 | }
78 | return false;
79 | }
80 |
81 | countCardName(cardName) {
82 | var count = 0;
83 | for (const card of this.nonBlankedCards()) {
84 | if (card.name === cardName) {
85 | count++;
86 | }
87 | }
88 | return count;
89 | }
90 |
91 | containsId(cardId, allowBlanked) {
92 | cardId = this._normalizeId(cardId);
93 | return this.cardsInHand[cardId] !== undefined && (!this.cardsInHand[cardId].blanked || allowBlanked);
94 | }
95 |
96 | containsSuit(suitName) {
97 | if (this.containsId(PHOENIX_PROMO, true) && (suitName === this.getCardById(PHOENIX_PROMO).suit || suitName === 'weather' || suitName === 'flame')) {
98 | return true;
99 | }
100 | for (const card of this.nonBlankedCards()) {
101 | if (card.suit === suitName || (card.id === PHOENIX && (suitName === 'weather' || suitName === 'flame'))) {
102 | return true;
103 | }
104 | }
105 | return false;
106 | }
107 |
108 | containsSuitExcluding(suitName, excludingCardId) {
109 | if (excludingCardId !== PHOENIX_PROMO && this.containsId(PHOENIX_PROMO, true) && (suitName === this.getCardById(PHOENIX_PROMO).suit || suitName === 'weather' || suitName === 'flame')) {
110 | return true;
111 | }
112 | for (const card of this.nonBlankedCards()) {
113 | if ((card.suit === suitName || (card.id === PHOENIX && (suitName === 'weather' || suitName === 'flame'))) && card.id !== excludingCardId) {
114 | return true;
115 | }
116 | }
117 | return false;
118 | }
119 |
120 | countSuit(suitName) {
121 | var count = 0;
122 | if (this.containsId(PHOENIX_PROMO, true) && (suitName === this.getCardById(PHOENIX_PROMO).suit || suitName === 'weather' || suitName === 'flame')) {
123 | count++;
124 | }
125 | for (const card of this.nonBlankedCards()) {
126 | if (card.id !== PHOENIX_PROMO && (card.suit === suitName || (card.id === PHOENIX && (suitName === 'weather' || suitName === 'flame')))) {
127 | count++;
128 | }
129 | }
130 | return count;
131 | }
132 |
133 | countSuitExcluding(suitName, excludingCardId) {
134 | var count = 0;
135 | if (excludingCardId !== PHOENIX_PROMO && this.containsId(PHOENIX_PROMO, true) && (suitName === this.getCardById(PHOENIX_PROMO).suit || suitName === 'weather' || suitName === 'flame')) {
136 | count++;
137 | }
138 | for (const card of this.nonBlankedCards()) {
139 | if (card.id !== PHOENIX_PROMO && (card.suit === suitName || (card.id === PHOENIX && (suitName === 'weather' || suitName === 'flame'))) && card.id !== excludingCardId) {
140 | count++;
141 | }
142 | }
143 | return count;
144 | }
145 |
146 | nonBlankedCards() {
147 | return this.cards().filter(function (card) {
148 | return !card.blanked;
149 | });
150 | }
151 |
152 | faceDownCursedItems() {
153 | return Object.values(this.cursedItems);
154 | }
155 |
156 | cards() {
157 | return Object.values(this.cardsInHand);
158 | }
159 |
160 | cardNames() {
161 | return this.cards().map(function (card) {
162 | return card.name;
163 | });
164 | }
165 |
166 | score(discard) {
167 | var score = 0;
168 | this._resetHand();
169 | this._performCardActions();
170 | this._clearPenalties();
171 | this._applyBlanking();
172 | for (const card of this.nonBlankedCards()) {
173 | score += card.score(this, discard);
174 | }
175 | for (const cursedItem of this.faceDownCursedItems()) {
176 | score += cursedItem.score(this, discard);
177 | }
178 | return score;
179 | }
180 |
181 | _resetHand() {
182 | for (const card of this.cards()) {
183 | this.cardsInHand[card.id] = new CardInHand(card.card, card.actionData);
184 | }
185 | }
186 |
187 | _performCardActions() {
188 | for (const cardAction of ACTION_ORDER) {
189 | var actionCard = this.getCardById(cardAction);
190 | if (actionCard !== undefined) {
191 | actionCard.performCardAction(this);
192 | }
193 | }
194 | }
195 |
196 | _clearPenalties() {
197 | for (const card of this.cards()) {
198 | if (card.clearsPenalty !== undefined) {
199 | for (const target of this.cards()) {
200 | if (card.clearsPenalty(target)) {
201 | target.penaltyCleared = true;
202 | }
203 | }
204 | }
205 | }
206 | }
207 |
208 | _applyBlanking() {
209 | // Demon blanking takes place before any other blanking
210 | if (this.containsId(CH_DEMON)) {
211 | const demon = this.getCardById(CH_DEMON);
212 | if (!demon.penaltyCleared) {
213 | for (const target of this.cards()) {
214 | if (demon.blanks(target, this) && !this._cannotBeBlanked(target)) {
215 | target.blanked = true;
216 | }
217 | }
218 | }
219 | }
220 | var blanked = [];
221 | for (const card of this.nonBlankedCards()) {
222 | if (this._cardBlanked(card, [card])) {
223 | blanked.push(card);
224 | }
225 | }
226 | for (const card of blanked) {
227 | card.blanked = true;
228 | }
229 | let cardBlanked = false;
230 | do {
231 | cardBlanked = false;
232 | for (const card of this.nonBlankedCards().sort((a, b) => a.id.localeCompare(b.id))) {
233 | if (card.blankedIf !== undefined && !card.penaltyCleared) {
234 | if (card.blankedIf(this) && !this._cannotBeBlanked(card)) {
235 | card.blanked = true;
236 | cardBlanked = true;
237 | }
238 | }
239 | }
240 | } while (cardBlanked);
241 | }
242 |
243 | // Checks if a card is blanked by other cards in the hand recursively.
244 | // Stack keeps track of the traversed cards to detect cycles.
245 | _cardBlanked(card, stack) {
246 |
247 | // Card cannot be blanked -> return false
248 | if (this._cannotBeBlanked(card)) {
249 | return false;
250 | }
251 |
252 | // List potential blankers
253 | var blankers = []
254 | // for each card of the hand that isn't blanked
255 | for (const by of this.nonBlankedCards()) {
256 | // other card cannot blank at all -> ignore
257 | if (by.blanks === undefined) {
258 | continue;
259 | }
260 | // other card has its penalty cleared -> will not blank anyhting
261 | if (by.penaltyCleared) {
262 | continue;
263 | }
264 | // Demon handled separately
265 | if (by.id === CH_DEMON) {
266 | continue;
267 | }
268 | // Other card potentially blanks
269 | if (by.blanks(card, this)){
270 | blankers.push(by)
271 | }
272 | }
273 |
274 | // There are no cards that could blank -> return false.
275 | if (blankers.length == 0) {
276 | return false;
277 | }
278 |
279 | // Detect mutual blanking and cycles
280 | var effectiveBlankers = []
281 | for (const by of blankers) {
282 | // Card and by mutually blank eachother
283 | if (card.blanks !== undefined && card.blanks(by, this)) {
284 | return true;
285 | }
286 |
287 | // Card and by are part of a cycle of blanks
288 | if (stack.includes(by)) {
289 | return true;
290 | }
291 | effectiveBlankers.push(by)
292 | }
293 |
294 | // Finally, recurse down.
295 | //At least one of the blankers isn't themselves blanked -> `card` is blanked
296 | for (const by of effectiveBlankers) {
297 | if (!this._cardBlanked(by, stack.concat([by]))) {
298 | return true;
299 | }
300 | }
301 | return false;
302 | }
303 |
304 | _cannotBeBlanked(card) {
305 | return (card.suit === 'undead' && (this.containsId(CH_LICH, true) || this.containsId(CH_NECROMANCER, true)))
306 | || card.id === CH_ANGEL
307 | || (card.magic && this.containsId(CH_ANGEL, true) && this.getCardById(CH_ANGEL).actionData && this.getCardById(CH_ANGEL).actionData[0] === card.id);
308 | }
309 |
310 | clear() {
311 | this.cardsInHand = {};
312 | this.cursedItems = {};
313 | }
314 |
315 | size() {
316 | return Object.keys(this.cardsInHand).length;
317 | }
318 |
319 | empty() {
320 | return this.size() === 0 && Object.keys(this.cursedItems).length === 0;
321 | }
322 |
323 | limit() {
324 | var limit = this._defaultLimit();
325 | for (const card of this.cards()) {
326 | if (card.extraCard) {
327 | return limit + 1;
328 | }
329 | }
330 | for (const cursedItem of this.faceDownCursedItems()) {
331 | if (cursedItem.extraCard) {
332 | return limit + 1;
333 | }
334 | }
335 | return limit;
336 | }
337 |
338 | _defaultLimit() {
339 | return 7 + (cursedHoardSuits ? 1 : 0);
340 | }
341 |
342 | _limitWithoutNecromancer() {
343 | var limit = this._defaultLimit();
344 | for (const card of this.cards()) {
345 | if (card.extraCard && ![NECROMANCER, CH_NECROMANCER].includes(card.id)) {
346 | return limit + 1;
347 | }
348 | }
349 | for (const cursedItem of this.faceDownCursedItems()) {
350 | if (cursedItem.extraCard) {
351 | return limit + 1;
352 | }
353 | }
354 | return limit;
355 | }
356 |
357 | toString() {
358 | var stringValue = Object.keys(this.cardsInHand).join();
359 | var actions = [];
360 | for (const card of this.cards()) {
361 | if (card.actionData !== undefined) {
362 | actions.push(card.id + ':' + card.actionData.join(':'));
363 | }
364 | }
365 | return Object.keys({ ...this.cursedItems, ...this.cardsInHand }).join() + '+' + actions.join();
366 | }
367 |
368 | loadFromString(string) {
369 | var parts = string.split('+');
370 | var cardIds = parts[0].split(',');
371 | var cardActions = parts[1].split(',').map(action => action.split(':'));
372 | this.loadFromArrays(cardIds, cardActions);
373 | }
374 |
375 | loadFromArrays(cardIds, cardActions) {
376 | this.clear();
377 | for (const cardId of cardIds) {
378 | this.addCard(deck.getCardById(cardId));
379 | }
380 | for (const cardAction of cardActions) {
381 | if (cardAction.length > 1) {
382 | var cardId = this._normalizeId(cardAction[0]);
383 | var action = cardAction.slice(1);
384 | var actionCard = this.getCardById(cardId);
385 | this.cardsInHand[cardId] = new CardInHand(actionCard.card, action);
386 | }
387 | }
388 | }
389 |
390 | undoCardAction(id) {
391 | var actionCard = this.getCardById(id);
392 | this.cardsInHand[id] = new CardInHand(actionCard.card, undefined);
393 | }
394 |
395 | }
396 |
397 | var hand = new Hand();
398 |
399 | class CardInHand {
400 |
401 | constructor(card, actionData) {
402 | this.card = card;
403 | this.actionData = actionData;
404 | // TODO: is there a better way to copy these properties
405 | this.id = card.id;
406 | this.name = card.name;
407 | this.suit = card.suit;
408 | this.strength = card.strength;
409 | this.bonus = card.bonus;
410 | this.penalty = card.penalty;
411 | this.bonusScore = card.bonusScore;
412 | this.penaltyScore = card.penaltyScore;
413 | this.blanks = card.blanks;
414 | this.blankedIf = card.blankedIf;
415 | this.clearsPenalty = card.clearsPenalty;
416 | this.action = card.action;
417 | this.relatedSuits = card.relatedSuits;
418 | this.relatedCards = card.relatedCards;
419 | this.extraCard = card.extraCard;
420 | this.referencesPlayerCount = card.referencesPlayerCount;
421 | this.referencesDiscardArea = card.referencesDiscardArea;
422 | this.impersonator = card.impersonator;
423 | this.timing = card.timing;
424 | this.cursedItem = card.cursedItem;
425 |
426 | this.blanked = false;
427 | this.penaltyCleared = false;
428 | this.penaltyPoints = 0;
429 | this.bonusPoints = 0;
430 | this.magic = false;
431 | }
432 |
433 | performCardAction(hand) {
434 | if (this.actionData !== undefined) {
435 | if (this.id === BOOK_OF_CHANGES) {
436 | var target = hand.getCardById(this.actionData[0]);
437 | if (target === undefined) {
438 | this.actionData = undefined;
439 | } else {
440 | var suit = this.actionData[1].toLowerCase();
441 | target.suit = suit;
442 | target.magic = true;
443 | }
444 | } else if ([SHAPESHIFTER, CH_SHAPESHIFTER, MIRAGE, CH_MIRAGE].includes(this.id)) {
445 | var selectedCard = deck.getCardById(this.actionData[0]);
446 | this.name = selectedCard.name;
447 | this.suit = selectedCard.suit;
448 | this.magic = true;
449 | } else if (this.id === DOPPELGANGER) {
450 | var selectedCard = hand.getCardById(this.actionData[0]);
451 | if (selectedCard === undefined) {
452 | this.actionData = undefined;
453 | } else {
454 | this.name = selectedCard.name;
455 | this.suit = selectedCard.suit;
456 | this.strength = selectedCard.strength;
457 | this.penalty = selectedCard.penalty;
458 | this.penaltyScore = selectedCard.penaltyScore;
459 | this.blanks = selectedCard.blanks;
460 | this.blankedIf = selectedCard.blankedIf
461 | this.magic = true;
462 | }
463 | } else if (this.id === ISLAND) {
464 | var selectedCard = hand.getCardById(this.actionData[0]);
465 | if (selectedCard === undefined || !(selectedCard.suit === 'flood' || selectedCard.suit === 'flame' || isPhoenix(selectedCard))) {
466 | this.actionData = undefined;
467 | } else {
468 | this.clearsPenalty = function (card) {
469 | return card.id === selectedCard.id;
470 | }
471 | selectedCard.magic = true;
472 | }
473 | } else if (this.id === CH_ANGEL) {
474 | var selectedCard = hand.getCardById(this.actionData[0]);
475 | if (selectedCard === undefined) {
476 | this.actionData = undefined;
477 | } else {
478 | selectedCard.magic = true;
479 | }
480 | }
481 | }
482 | }
483 |
484 | score(hand, discard) {
485 | if (this.blanked) {
486 | return 0;
487 | }
488 | if (this.bonusScore !== undefined) {
489 | this.bonusPoints = this.bonusScore(hand, discard);
490 | } else {
491 | this.bonusPoints = 0;
492 | }
493 | if (this.penaltyScore !== undefined && !this.penaltyCleared) {
494 | this.penaltyPoints = this.penaltyScore(hand, discard);
495 | } else {
496 | this.penaltyPoints = 0;
497 | }
498 | return this.strength + this.bonusPoints + this.penaltyPoints;
499 | }
500 |
501 | points() {
502 | return this.blanked ? 0 : (this.strength + this.bonusPoints + this.penaltyPoints);
503 | }
504 |
505 | }
506 |
--------------------------------------------------------------------------------
/js/combinatorics.js:
--------------------------------------------------------------------------------
1 | /*
2 | * $Id: combinatorics.js,v 0.25 2013/03/11 15:42:14 dankogai Exp dankogai $
3 | *
4 | * Licensed under the MIT license.
5 | * http://www.opensource.org/licenses/mit-license.php
6 | *
7 | * References:
8 | * http://www.ruby-doc.org/core-2.0/Array.html#method-i-combination
9 | * http://www.ruby-doc.org/core-2.0/Array.html#method-i-permutation
10 | * http://en.wikipedia.org/wiki/Factorial_number_system
11 | */
12 | (function (root, factory) {
13 | if (typeof define === 'function' && define.amd) {
14 | define([], factory);
15 | } else if (typeof exports === 'object') {
16 | module.exports = factory();
17 | } else {
18 | root.Combinatorics = factory();
19 | }
20 | }(this, function () {
21 | 'use strict';
22 | var version = "0.5.2";
23 | /* combinatory arithmetics */
24 | var P = function(m, n) {
25 | var p = 1;
26 | while (n--) p *= m--;
27 | return p;
28 | };
29 | var C = function(m, n) {
30 | if (n > m) {
31 | return 0;
32 | }
33 | return P(m, n) / P(n, n);
34 | };
35 | var factorial = function(n) {
36 | return P(n, n);
37 | };
38 | var factoradic = function(n, d) {
39 | var f = 1;
40 | if (!d) {
41 | for (d = 1; f < n; f *= ++d);
42 | if (f > n) f /= d--;
43 | } else {
44 | f = factorial(d);
45 | }
46 | var result = [0];
47 | for (; d; f /= d--) {
48 | result[d] = Math.floor(n / f);
49 | n %= f;
50 | }
51 | return result;
52 | };
53 | /* common methods */
54 | var addProperties = function(dst, src) {
55 | Object.keys(src).forEach(function(p) {
56 | Object.defineProperty(dst, p, {
57 | value: src[p],
58 | configurable: p == 'next'
59 | });
60 | });
61 | };
62 | var hideProperty = function(o, p) {
63 | Object.defineProperty(o, p, {
64 | writable: true
65 | });
66 | };
67 | var toArray = function(f) {
68 | var e, result = [];
69 | this.init();
70 | while (e = this.next()) result.push(f ? f(e) : e);
71 | this.init();
72 | return result;
73 | };
74 | var common = {
75 | toArray: toArray,
76 | map: toArray,
77 | forEach: function(f) {
78 | var e;
79 | this.init();
80 | while (e = this.next()) f(e);
81 | this.init();
82 | },
83 | filter: function(f) {
84 | var e, result = [];
85 | this.init();
86 | while (e = this.next()) if (f(e)) result.push(e);
87 | this.init();
88 | return result;
89 | },
90 | lazyMap: function(f) {
91 | this._lazyMap = f;
92 | return this;
93 | },
94 | lazyFilter: function(f) {
95 | Object.defineProperty(this, 'next', {
96 | writable: true
97 | });
98 | if (typeof f !== 'function') {
99 | this.next = this._next;
100 | } else {
101 | if (typeof (this._next) !== 'function') {
102 | this._next = this.next;
103 | }
104 | var _next = this._next.bind(this);
105 | this.next = (function() {
106 | var e;
107 | while (e = _next()) {
108 | if (f(e))
109 | return e;
110 | }
111 | return e;
112 | }).bind(this);
113 | }
114 | Object.defineProperty(this, 'next', {
115 | writable: false
116 | });
117 | return this;
118 | }
119 |
120 | };
121 | /* power set */
122 | var power = function(ary, fun) {
123 | var size = 1 << ary.length,
124 | sizeOf = function() {
125 | return size;
126 | },
127 | that = Object.create(ary.slice(), {
128 | length: {
129 | get: sizeOf
130 | }
131 | });
132 | hideProperty(that, 'index');
133 | addProperties(that, {
134 | valueOf: sizeOf,
135 | init: function() {
136 | that.index = 0;
137 | },
138 | nth: function(n) {
139 | if (n >= size) return;
140 | var i = 0,
141 | result = [];
142 | for (; n; n >>>= 1, i++) if (n & 1) result.push(this[i]);
143 | return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;
144 | },
145 | next: function() {
146 | return this.nth(this.index++);
147 | }
148 | });
149 | addProperties(that, common);
150 | that.init();
151 | return (typeof (fun) === 'function') ? that.map(fun) : that;
152 | };
153 | /* combination */
154 | var nextIndex = function(n) {
155 | var smallest = n & -n,
156 | ripple = n + smallest,
157 | new_smallest = ripple & -ripple,
158 | ones = ((new_smallest / smallest) >> 1) - 1;
159 | return ripple | ones;
160 | };
161 | var combination = function(ary, nelem, fun) {
162 | if (!nelem) nelem = ary.length;
163 | if (nelem < 1) throw new RangeError;
164 | if (nelem > ary.length) throw new RangeError;
165 | var first = (1 << nelem) - 1,
166 | size = C(ary.length, nelem),
167 | maxIndex = 1 << ary.length,
168 | sizeOf = function() {
169 | return size;
170 | },
171 | that = Object.create(ary.slice(), {
172 | length: {
173 | get: sizeOf
174 | }
175 | });
176 | hideProperty(that, 'index');
177 | addProperties(that, {
178 | valueOf: sizeOf,
179 | init: function() {
180 | this.index = first;
181 | },
182 | next: function() {
183 | if (this.index >= maxIndex) return;
184 | var i = 0,
185 | n = this.index,
186 | result = [];
187 | for (; n; n >>>= 1, i++) {
188 | if (n & 1) result[result.length] = this[i];
189 | }
190 |
191 | this.index = nextIndex(this.index);
192 | return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;
193 | }
194 | });
195 | addProperties(that, common);
196 | that.init();
197 | return (typeof (fun) === 'function') ? that.map(fun) : that;
198 | };
199 | /* bigcombination */
200 | var bigNextIndex = function(n, nelem) {
201 |
202 | var result = n;
203 | var j = nelem;
204 | var i = 0;
205 | for (i = result.length - 1; i >= 0; i--) {
206 | if (result[i] == 1) {
207 | j--;
208 | } else {
209 | break;
210 | }
211 | }
212 | if (j == 0) {
213 | // Overflow
214 | result[result.length] = 1;
215 | for (var k = result.length - 2; k >= 0; k--) {
216 | result[k] = (k < nelem-1)?1:0;
217 | }
218 | } else {
219 | // Normal
220 |
221 | // first zero after 1
222 | var i1 = -1;
223 | var i0 = -1;
224 | for (var i = 0; i < result.length; i++) {
225 | if (result[i] == 0 && i1 != -1) {
226 | i0 = i;
227 | }
228 | if (result[i] == 1) {
229 | i1 = i;
230 | }
231 | if (i0 != -1 && i1 != -1) {
232 | result[i0] = 1;
233 | result[i1] = 0;
234 | break;
235 | }
236 | }
237 |
238 | j = nelem;
239 | for (var i = result.length - 1; i >= i1; i--) {
240 | if (result[i] == 1)
241 | j--;
242 | }
243 | for (var i = 0; i < i1; i++) {
244 | result[i] = (i < j)?1:0;
245 | }
246 | }
247 |
248 | return result;
249 |
250 | };
251 | var buildFirst = function(nelem) {
252 | var result = [];
253 | for (var i = 0; i < nelem; i++) {
254 | result[i] = 1;
255 | }
256 | result[0] = 1;
257 | return result;
258 | };
259 | var bigCombination = function(ary, nelem, fun) {
260 | if (!nelem) nelem = ary.length;
261 | if (nelem < 1) throw new RangeError;
262 | if (nelem > ary.length) throw new RangeError;
263 | var first = buildFirst(nelem),
264 | size = C(ary.length, nelem),
265 | maxIndex = ary.length,
266 | sizeOf = function() {
267 | return size;
268 | },
269 | that = Object.create(ary.slice(), {
270 | length: {
271 | get: sizeOf
272 | }
273 | });
274 | hideProperty(that, 'index');
275 | addProperties(that, {
276 | valueOf: sizeOf,
277 | init: function() {
278 | this.index = first.concat();
279 | },
280 | next: function() {
281 | if (this.index.length > maxIndex) return;
282 | var i = 0,
283 | n = this.index,
284 | result = [];
285 | for (var j = 0; j < n.length; j++, i++) {
286 | if (n[j])
287 | result[result.length] = this[i];
288 | }
289 | bigNextIndex(this.index, nelem);
290 | return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;
291 | }
292 | });
293 | addProperties(that, common);
294 | that.init();
295 | return (typeof (fun) === 'function') ? that.map(fun) : that;
296 | };
297 | /* permutation */
298 | var _permutation = function(ary) {
299 | var that = ary.slice(),
300 | size = factorial(that.length);
301 | that.index = 0;
302 | that.next = function() {
303 | if (this.index >= size) return;
304 | var copy = this.slice(),
305 | digits = factoradic(this.index, this.length),
306 | result = [],
307 | i = this.length - 1;
308 | for (; i >= 0; --i) result.push(copy.splice(digits[i], 1)[0]);
309 | this.index++;
310 | return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;
311 | };
312 | return that;
313 | };
314 | // which is really a permutation of combination
315 | var permutation = function(ary, nelem, fun) {
316 | if (!nelem) nelem = ary.length;
317 | if (nelem < 1) throw new RangeError;
318 | if (nelem > ary.length) throw new RangeError;
319 | var size = P(ary.length, nelem),
320 | sizeOf = function() {
321 | return size;
322 | },
323 | that = Object.create(ary.slice(), {
324 | length: {
325 | get: sizeOf
326 | }
327 | });
328 | hideProperty(that, 'cmb');
329 | hideProperty(that, 'per');
330 | addProperties(that, {
331 | valueOf: function() {
332 | return size;
333 | },
334 | init: function() {
335 | /* combination can only be used for less than 31 elements */
336 | if (ary.length < 31) {
337 | this.cmb = combination(ary, nelem);
338 | } else {
339 | this.cmb = bigCombination(ary, nelem);
340 | }
341 |
342 | this.per = _permutation(this.cmb.next());
343 | },
344 | next: function() {
345 | var result = this.per.next();
346 | if (!result) {
347 | var cmb = this.cmb.next();
348 | if (!cmb) return;
349 | this.per = _permutation(cmb);
350 | return this.next();
351 | }
352 | return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;
353 | }
354 | });
355 | addProperties(that, common);
356 | that.init();
357 | return (typeof (fun) === 'function') ? that.map(fun) : that;
358 | };
359 |
360 | var PC = function(m) {
361 | var total = 0;
362 | for (var n = 1; n <= m; n++) {
363 | var p = P(m,n);
364 | total += p;
365 | };
366 | return total;
367 | };
368 | // which is really a permutation of combination
369 | var permutationCombination = function(ary, fun) {
370 | // if (!nelem) nelem = ary.length;
371 | // if (nelem < 1) throw new RangeError;
372 | // if (nelem > ary.length) throw new RangeError;
373 | var size = PC(ary.length),
374 | sizeOf = function() {
375 | return size;
376 | },
377 | that = Object.create(ary.slice(), {
378 | length: {
379 | get: sizeOf
380 | }
381 | });
382 | hideProperty(that, 'cmb');
383 | hideProperty(that, 'per');
384 | hideProperty(that, 'nelem');
385 | addProperties(that, {
386 | valueOf: function() {
387 | return size;
388 | },
389 | init: function() {
390 | this.nelem = 1;
391 | // console.log("Starting nelem: " + this.nelem);
392 | this.cmb = combination(ary, this.nelem);
393 | this.per = _permutation(this.cmb.next());
394 | },
395 | next: function() {
396 | var result = this.per.next();
397 | if (!result) {
398 | var cmb = this.cmb.next();
399 | if (!cmb) {
400 | this.nelem++;
401 | // console.log("increment nelem: " + this.nelem + " vs " + ary.length);
402 | if (this.nelem > ary.length) return;
403 | this.cmb = combination(ary, this.nelem);
404 | cmb = this.cmb.next();
405 | if (!cmb) return;
406 | }
407 | this.per = _permutation(cmb);
408 | return this.next();
409 | }
410 | return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;
411 | }
412 | });
413 | addProperties(that, common);
414 | that.init();
415 | return (typeof (fun) === 'function') ? that.map(fun) : that;
416 | };
417 | /* Cartesian Product */
418 | var arraySlice = Array.prototype.slice;
419 | var cartesianProduct = function() {
420 | if (!arguments.length) throw new RangeError;
421 | var args = arraySlice.call(arguments),
422 | size = args.reduce(function(p, a) {
423 | return p * a.length;
424 | }, 1),
425 | sizeOf = function() {
426 | return size;
427 | },
428 | dim = args.length,
429 | that = Object.create(args, {
430 | length: {
431 | get: sizeOf
432 | }
433 | });
434 | if (!size) throw new RangeError;
435 | hideProperty(that, 'index');
436 | addProperties(that, {
437 | valueOf: sizeOf,
438 | dim: dim,
439 | init: function() {
440 | this.index = 0;
441 | },
442 | get: function() {
443 | if (arguments.length !== this.length) return;
444 | var result = [],
445 | d = 0;
446 | for (; d < dim; d++) {
447 | var i = arguments[d];
448 | if (i >= this[d].length) return;
449 | result.push(this[d][i]);
450 | }
451 | return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;
452 | },
453 | nth: function(n) {
454 | var result = [],
455 | d = 0;
456 | for (; d < dim; d++) {
457 | var l = this[d].length;
458 | var i = n % l;
459 | result.push(this[d][i]);
460 | n -= i;
461 | n /= l;
462 | }
463 | return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;
464 | },
465 | next: function() {
466 | if (this.index >= size) return;
467 | var result = this.nth(this.index);
468 | this.index++;
469 | return result;
470 | }
471 | });
472 | addProperties(that, common);
473 | that.init();
474 | return that;
475 | };
476 | /* baseN */
477 | var baseN = function(ary, nelem, fun) {
478 | if (!nelem) nelem = ary.length;
479 | if (nelem < 1) throw new RangeError;
480 | var base = ary.length,
481 | size = Math.pow(base, nelem);
482 | var sizeOf = function() {
483 | return size;
484 | },
485 | that = Object.create(ary.slice(), {
486 | length: {
487 | get: sizeOf
488 | }
489 | });
490 | hideProperty(that, 'index');
491 | addProperties(that, {
492 | valueOf: sizeOf,
493 | init: function() {
494 | that.index = 0;
495 | },
496 | nth: function(n) {
497 | if (n >= size) return;
498 | var result = [];
499 | for (var i = 0; i < nelem; i++) {
500 | var d = n % base;
501 | result.push(ary[d])
502 | n -= d; n /= base
503 | }
504 | return (typeof (that._lazyMap) === 'function')?that._lazyMap(result):result;
505 | },
506 | next: function() {
507 | return this.nth(this.index++);
508 | }
509 | });
510 | addProperties(that, common);
511 | that.init();
512 | return (typeof (fun) === 'function') ? that.map(fun) : that;
513 | };
514 |
515 | /* export */
516 | var Combinatorics = Object.create(null);
517 | addProperties(Combinatorics, {
518 | C: C,
519 | P: P,
520 | factorial: factorial,
521 | factoradic: factoradic,
522 | cartesianProduct: cartesianProduct,
523 | combination: combination,
524 | bigCombination: bigCombination,
525 | permutation: permutation,
526 | permutationCombination: permutationCombination,
527 | power: power,
528 | baseN: baseN,
529 | VERSION: version
530 | });
531 | return Combinatorics;
532 | }));
533 |
--------------------------------------------------------------------------------
/i18n/Messages_es.properties:
--------------------------------------------------------------------------------
1 | button.use=Usar
2 | button.reset=Reiniciar
3 | button.cancel=Cancelar
4 | button.sound=Sonido
5 | button.discard-area=Zona de descarte
6 | button.back-to-hand=Volver a la mano
7 | label.player-count=Nr. de jugadores
8 | label.discard-area=Zona de descarte
9 | label.blanked=ANULADO
10 | label.cursed-hoard=Tesoro Maldito
11 | label.cursed-hoard.items=Objetos malditos
12 | label.cursed-hoard.suits=Edificios/Visitantes/No-Muertos
13 | suit.land=Tierra
14 | suit.flood=Agua
15 | suit.weather=Aire
16 | suit.flame=Fuego
17 | suit.army=Ejército
18 | suit.wizard=Mago
19 | suit.leader=Líder
20 | suit.beast=Bestia
21 | suit.weapon=Arma
22 | suit.artifact=Artefacto
23 | suit.wild=Variable
24 | suit.building=Edificio
25 | suit.outsider=Visitante
26 | suit.undead=No-Muerto
27 | suit.cursed-item=Objeto Maldito
28 | FR01.name=Montaña
29 | FR01.bonus=+50 con Incendio y Humo. IGNORA la Penalización de las cartas de Agua.
30 | FR02.name=Caverna
31 | FR02.bonus=+25 con Dragón o Infantería Enana. IGNORA la Penalización de las cartas de Aire.
32 | FR03.name=Campanario
33 | FR03.bonus=+15 con cualquier Mago.
34 | FR04.name=Bosque
35 | FR04.bonus=+12 por cada Bestia y Arqueros Élficos.
36 | FR05.name=Elemental de Tierra
37 | FR05.bonus=+15 por cada otra carta de Tierra.
38 | FR06.name=Fuente de Vida
39 | FR06.bonus=Añade la fuerza base de cualquier Arma, Agua, Fuego, Tierra or Aire.
40 | FR07.name=Pantano
41 | FR07.penalty=-3 por cada Ejército y Fuego.
42 | FR08.name=Inundación
43 | FR08.penalty=ANULA todos los Ejércitos, todas las Tierras excepto Montaña, y todos los Fuegos excepto Relámpago.
44 | FR09.name=Isla
45 | FR09.bonus=IGNORA la Penalización de una carta de Agua o de una carta de Fuego.
46 | FR09.action=Elige una carta de Agua o Fuego de tu mano para anular.
47 | FR10.name=Elemental de Agua
48 | FR10.bonus=+15 por cada otra carta de Agua.
49 | FR11.name=Tormenta
50 | FR11.bonus=+10 por cada carta de Agua.
51 | FR11.penalty=ANULA las cartas de Fuego excepto Relámpago.
52 | FR12.name=Ventisca Helada
53 | FR12.penalty=ANULA las cartas de Agua. -5 por cada Ejército, Líder, Bestia y Fuego.
54 | FR13.name=Humo
55 | FR13.penalty=Esta carta es ANULADA a menos que tengas una carta de Fuego.
56 | FR14.name=Torbellino
57 | FR14.bonus=+40 si tienes Tormenta y Ventisca Helada O +40 si tienes Tormenta e Inundacion.
58 | FR15.name=Elemental de Aire
59 | FR15.bonus=+15 por cada otra carta de Aire.
60 | FR16.name=Incendio
61 | FR16.penalty=ANULA todas las cartas excepto las de Fuego, Mago, Aire, Arma, Artefacto, Montaña, Inundación, Isla, Unicornio y Dragón.
62 | FR17.name=Vela
63 | FR17.bonus=+100 con Libro de los Cambios, Campanario y cualquier Mago.
64 | FR18.name=Forja
65 | FR18.bonus=+9 por cada Arma and Artefacto.
66 | FR19.name=Relámpago
67 | FR19.bonus=+30 con Tormenta.
68 | FR20.name=Elemental de Fuego
69 | FR20.bonus=+15 por cada otra carta de Fuego.
70 | FR21.name=Paladines
71 | FR21.penalty=-8 a menos que tengas un Líder.
72 | FR22.name=Arqueros Élficos
73 | FR22.bonus=+5 si no tienes cartas de Aire.
74 | FR23.name=Caballería
75 | FR23.penalty=-2 por cada Tierra.
76 | FR24.name=Infantería Enana
77 | FR24.penalty=-2 por cada otro Ejército.
78 | FR25.name=Exploradores
79 | FR25.bonus=+10 por cada Tierra. IGNORA la palabra Ejército de todas las Penalizaciones.
80 | FR26.name=Recolector
81 | FR26.bonus=+10 si tienes 3 cartas diferentes del mismo tipo, +40 si tienes 4 cartas diferentes del mismo tipo, +100 si tienes 5 cartas diferentes del mismo tipo.
82 | FR27.name=Señor de las Bestias
83 | FR27.bonus=+9 por cada Bestia. IGNORA la Penalización de todas las Bestias.
84 | FR28.name=Nigromante
85 | FR28.bonus=Al final de la partida, puedes coger un Ejército, Líder, Mago, o Bestia del descarte y ponerla en tu mano como una octava carta.
86 | FR29.name=Brujo Maestro
87 | FR29.penalty=-10 por cada Líder y otro Mago que tengas.
88 | FR30.name=Encantadora
89 | FR30.bonus=+5 por cada Tierra, Aire, Agua y Fuego.
90 | FR31.name=Rey
91 | FR31.bonus=+5 por cada Ejército. O +20 por cada Ejército si tienes también a la Reina.
92 | FR32.name=Reina
93 | FR32.bonus=+5 por cada Ejército. O +20 por cada Ejército si tienes también al Rey.
94 | FR33.name=Princesa
95 | FR33.bonus=+8 por cada Ejército, por cada Mago y por cualquier otro Líder.
96 | FR34.name=Señor de la Guerra
97 | FR34.bonus=La suma de las fuerzas base de todas tus cartas de Ejército.
98 | FR35.name=Emperatriz
99 | FR35.bonus=+10 por cada Ejército.
100 | FR35.penalty=-5 por cada otro Líder.
101 | FR36.name=Unicornio
102 | FR36.bonus=+30 con la Princesa. O +15 con la Emperatriz, Reina, o Encantadora.
103 | FR37.name=Basilisco
104 | FR37.penalty=ANULA todos los Ejércitos, Líderes y las otras Bestias.
105 | FR38.name=Caballo de Batalla
106 | FR38.bonus=+14 con cualquier Líder o Mago.
107 | FR39.name=Dragón
108 | FR39.penalty=-40 a menos que tengas un Mago.
109 | FR40.name=Hidra
110 | FR40.bonus=+28 con Pantano.
111 | FR41.name=Buque de Guerra
112 | FR41.bonus=IGNORA la palabra Ejército de todas las Penalizaciones de todas las cartas de Agua.
113 | FR41.penalty=ANULADA a menos que tengas una carta de Agua.
114 | FR42.name=Varita Mágica
115 | FR42.bonus=+25 con cualquier Mago.
116 | FR43.name=Espada de Keth
117 | FR43.bonus=+10 con cualquier Líder. O +40 con un Líder y con Escudo de Keth.
118 | FR44.name=Arco Élfico
119 | FR44.bonus=+30 con Arqueros Élficos, Señor de la Guerra o Señor de las Bestias.
120 | FR45.name=Dirigible de Guerra
121 | FR45.penalty=ANULADA a menos que tengas un Ejército. ANULADA con cualquier carta de Aire.
122 | FR46.name=Escudo de Keth
123 | FR46.bonus=+15 con cualquier Líder. O +40 con un Líder y con Espada de Keth.
124 | FR47.name=Gema del Orden
125 | FR47.bonus=+10 por cada 3 cartas seguidas, +30 por cada 4 cartas seguidas, +60 por cada 5 cartas seguidas, +100 por cada 6 cartas seguidas, +150 por cada 7 cartas seguidas. (En números de fuerza base)
126 | FR48.name=Árbol del Mundo
127 | FR48.bonus=+50 si todas las cartas no ANULADAS que tengas son de diferente tipo.
128 | FR49.name=Libro de los Cambios
129 | FR49.bonus=Puedes cambiar el tipo de una carta por otro. Su nombre, bonus o penalizaciones siguen igual.
130 | FR49.action=Escoge un tipo y una carta objetivo de tu mano.
131 | FR50.name=Runa Protectora
132 | FR50.bonus=IGNORA la Penalización de todas las cartas.
133 | FR51.name=Cambiaformas
134 | FR51.bonus=Puede copiar el nombre y tipo de cualquier Artefacto, Líder, Mago, Arma o Bestia de todo el juego. No recibes bonus, penalizaciones o fuerza base de la carta copiada.
135 | FR51.action=Escoge una carta para copiar.
136 | FR52.name=Espejismo
137 | FR52.bonus=Puede copiar el nombre y tipo de cualquier Ejército, Tierra, Aire, Agua o Fuego de todo el juego. No recibes bonus, penalizaciones o fuerza base de la carta copiada.
138 | FR52.action=Escoge una carta para copiar.
139 | FR53.name=Doppelgänger
140 | FR53.bonus=Puede copiar el nombre, fuerza base, tipo y penalizacion de cualquier otra carta de tu mano PERO NO EL BONUS.
141 | FR53.action=Escoge una carta de tu mano para copiar.
142 | FR54.name=Bufón
143 | FR54.bonus=+3 por cada otra carta con un valor impar de fuerza base. O +50 si toda tu mano tiene valores impares de fuerza base.
144 | CH01.name=Mazmorra
145 | CH01.bonus=+10 por el primer No-Muerto, Bestia y Artefacto. +5 por cada carta adicional de esos tipos y por Nigromante, Brujo Maestro y Demonio.
146 | CH02.name=Castillo
147 | CH02.bonus=+10 por el primer Líder, Ejército, Tierra y por cualquier otro Edificio. +5 por cada Edificio adicional.
148 | CH03.name=Cripta
149 | CH03.bonus=La suma de la fuerza base de todos los No-Muertos.
150 | CH03.penalty=ANULA todos los Líderes.
151 | CH04.name=Capilla
152 | CH04.bonus=+40 si tienes exactamente dos cartas (ni más ni menos) de estos tipos: Líder, Mago, Visitante y No-Muerto.
153 | CH05.name=Jardín
154 | CH05.bonus=+11 por cada Líder y Bestia.
155 | CH05.penalty=ANULADA por cualquier No-Muerto, Nigromante, o Demonio.
156 | CH06.name=Genio
157 | CH06.bonus=+10 por cada otro jugador. Al final de la partida busca en el mazo y pon una carta en tu mano. (Resuelve esto después del efecto del Leprechaun.)
158 | CH07.name=Juez
159 | CH07.bonus=+10 por cada carta que tenga una Penalización que no haya sido IGNORADA.
160 | CH08.name=Ángel
161 | CH08.bonus=Evita que otra carta sea ANULADA. Esta carta nunca puede ser ANULADA.
162 | CH08.action=Escoge una carta objetivo de tu mano.
163 | CH09.name=Leprechaun
164 | CH09.bonus=Al final de la partida, roba la carta superior del mazo y añádela a tu mano. (Resuelve esto antes del efecto del Genio.)
165 | CH10.name=Demonio
166 | CH10.penalty=Revisa cada carta que no sea Visitante Si esa carta es la única que tienes de ese tipo, queda ANULADA. (Resuelve esto antes de cualquier otra ANULACIÓN).
167 | CH11.name=Reina Oscura
168 | CH11.bonus=+5 por cada Tierra, Agua, Fuego, Aire y Unicornio que haya en la zona de descarte.
169 | CH12.name=Ghoul
170 | CH12.bonus=+4 por cada Mago, Líder, Ejército, Bestia y No-Muerto que haya en la zona de descarte.
171 | CH13.name=Espectro
172 | CH13.bonus=+6 por cada Mago, Artefacto y Visitante que haya en la zona de descarte.
173 | CH14.name=Liche
174 | CH14.bonus=+10 por el Nigromante y por cada otro No-Muerto. Los No-Muerto no pueden ser ANULADOS.
175 | CH15.name=Caballero Oscuro
176 | CH15.bonus=+7 por cada Arma y por cada Ejército que haya en la zona de descarte.
177 | CH16.name=Campanario
178 | CH16.bonus=+15 con cualquier Mago o No-Muerto.
179 | CH17.name=Fuente de Vida
180 | CH17.bonus=Añade la fuerza base de cualquier Edificio, Arma, Agua, Fuego, Tierra or Aire.
181 | CH18.name=Inundación
182 | CH18.penalty=ANULA todos los Ejércitos, todos los Edificios, todas las Tierras excepto Montaña y todos los Fuegos excepto Relámpago.
183 | CH19.name=Exploradores
184 | CH19.bonus=+10 por cada Tierra y Edificio. IGNORA la palabra Ejército de todas las penalizaciones.
185 | CH20.name=Nigromante
186 | CH20.bonus=Al final de la partida puedes coger un Ejército, Líder, Mago, Bestia, o No-Muerto de la zona de descarte y añadirlo a tu mano. Los No-Muertos no pueden ser ANULADOS.
187 | CH21.name=Árbol del Mundo
188 | CH21.bonus=+70 si todas las cartas no ANULADAS que tengas son de diferente tipo.
189 | CH22.name=Cambiaformas
190 | CH22.bonus=Puede copiar el nombre y tipo de cualquier Artefacto, Líder, Mago, Arma, Bestia o No-Muerto de todo el juego. No recibes bonus, penalizaciones o fuerza base de la carta copiada.
191 | CH22.action=Escoge una carta para copiar.
192 | CH23.name=Espejismo
193 | CH23.bonus=Puede copiar el nombre y tipo de cualquier Ejército, Edificio, Tierra, Aire, Agua o Fuego de todo el juego. No recibes bonus, penalizaciones o fuerza base de la carta copiada.
194 | CH23.action=Escoge una carta para copiar.
195 | CH24.name=Catalejo
196 | CH24.bonus=Mira la mano de otro jugador.
197 | CH24.penalty=(*El valor de este objeto cambia a -10 en partidas de 2 jugadores)
198 | CH25.name=Sarcófago
199 | CH25.bonus=Coge la carta superior del mazo, colócala directamente en el descarte y acaba tu turno. (Este turno tu mano no cambia).
200 | CH26.name=Venda de ojos
201 | CH26.bonus=Haz el turno en orden inverso: primero descarta una carta y luego roba una del mazo.
202 | CH27.name=Libro de profecías
203 | CH27.bonus=Mira las 7 cartas de la parte inferior del mazo y reordénalas como quieras.
204 | CH28.name=Bola de cristal
205 | CH28.bonus=Di en voz alta un tipo de carta. Los demás jugadores deberán revelar todas las cartas que tengan de ese tipo.
206 | CH29.name=Carro de mercado
207 | CH29.bonus=Enseña una carta de tu mano. Cualquier otro jugador puede enseñar hasta un máximo de 3 cartas de su mano para ofrecer un intercambio. Puedes escoger cambiar tu carta por una de ellas. Si no te interesa ninguna, pudes volver a guardar tu carta o descartarla y robar otra.
208 | CH30.name=Mochila
209 | CH30.bonus=Roba 3 objetos malditos y ponlos visibles a un lado. Las próximas 3 veces que debas robar un objeto maldito del mazo puedes coger una de estas cartas en su lugar.
210 | CH31.name=Pala
211 | CH31.bonus=Pon una carta de la zona de descarte a la parte inferior del mazo.
212 | CH32.name=Caja fuerte
213 | CH32.bonus=Tapa dos cartas del descarte con esta carta. Seguirán contado al final de la partida y otorgarán bonificaciones para los No-Muerto pero nadie podra llevárselas y son inmunes a la Pala y al Espejo de Oro.
214 | CH33.name=Anteojos
215 | CH33.bonus=Puedes mirar la carta superior del mazo antes de decidir si robas de ahí o del descarte.
216 | CH34.name=Guantes de sisar
217 | CH34.bonus=Roba el objeto maldito boca arriba de otro jugador. Debes usarlo inmediatamente. El jugador al que has robado debe reemplazar inmediatamente su objeto cogiendo uno del mazo.
218 | CH35.name=Mapa de la chatarrería
219 | CH35.bonus=Coge las tres cartas superiores de la pila de descartes de objetos malditos y juega una inmediatamente.
220 | CH36.name=Botas aladas
221 | CH36.bonus=Pon la carta superior del mazo directamente en la zona de descarte.
222 | CH37.name=Cetro de transmutación
223 | CH37.bonus=Devuelve de tres a ocho cartas de tu mano a la parte inferior del mazo y reemplázalas robando del mazo.
224 | CH38.name=Rastrillo
225 | CH38.bonus=Roba dos cartas de la zona de descarte y luego descarta dos cartas.
226 | CH39.name=Cofre del tesoro
227 | CH39.bonus=Vale +25 puntos al final de la partida si tienes al menos 3 objetos malditos boca abajo.
228 | CH40.name=Anzuelo
229 | CH40.bonus=Roba dos cartas del mazo y luego descarta dos cartas.
230 | CH41.name=Hoja multiusos
231 | CH41.bonus=Copia la habilidad de cualquier objeto maldito que ya hayas jugado menos la Mochila, Sarcófago, Venda de Ojos y Cofre del Tesoro. Descarta y vuelve a robar si no tienes objetos malditos boca abajo.
232 | CH42.name=Reloj de arena
233 | CH42.bonus=Realiza un turno adicional. No reemplaces esta carta con otro objeto maldito hasta después del segundo turno.
234 | CH43.name=Espejo de oro
235 | CH43.bonus=Pon tres cartas de la zona de descarte en la parte inferior del mazo. Reemplázalas con las tres cartas superiores del mazo.
236 | CH44.name=Caldero
237 | CH44.bonus=En lugar de robar una carta del mazo, roba tres cartas y coloca dos de ellas en la parte superior o inferior del mazo (o una en cada zona) antes de descartarte normalmente.
238 | CH45.name=Farol
239 | CH45.bonus=Di en voz alta un tipo de carta. Roba del mazo hasta que saques una de ese tipo o hayas robado 10 cartas (las cartas de tipo Variable no cuentan). Si robas una carta del tipo nombrado, mantenla y descarta otra carta diferente de tu mano. Enseña las demás cartas robadas y mézclalas de nuevo en el mazo.
240 | CH46.name=Portal
241 | CH46.bonus=No realices tu fase de descarte este turno (tendrás una carta extra en tu mano desde ahora).
242 | CH47.name=Anillo de deseos
243 | CH47.bonus=Mira en el mazo y coloca cualquier carta que quieras en la parte superior. Puedes hacer esto inmediatamente antes de robar. Vuelve a mezclar el mazo al final de tu turno.
244 | timing.any-time=EN CUALQUIER MOMENTO
245 | timing.replace-turn=REEMPLAZAR TURNO
246 | timing.copy=SEGÚN CARTA COPIADA
247 | timing.after-turn=DESPUÉS DEL TURNO
248 |
--------------------------------------------------------------------------------
/i18n/Messages_cz.properties:
--------------------------------------------------------------------------------
1 | button.use=Použít
2 | button.reset=Smazat
3 | button.cancel=Zrušit
4 | button.sound=Zvuk
5 | button.discard-area=Odkládací oblast
6 | button.back-to-hand=Zpět do ruky
7 | label.player-count=Počet hráčů
8 | label.discard-area=Odkládací oblast
9 | label.blanked=VYMAZÁNA
10 | label.cursed-hoard=Prokletý poklad
11 | label.cursed-hoard.items=Prokleté předměty
12 | label.cursed-hoard.suits=Stavby / Cizinci / Nemrtví
13 | suit.land=Země
14 | suit.flood=Potopa
15 | suit.weather=Počasí
16 | suit.flame=Oheň
17 | suit.army=Armáda
18 | suit.wizard=Čaroděj
19 | suit.leader=Vůdce
20 | suit.beast=Tvor
21 | suit.weapon=Zbraň
22 | suit.artifact=Artefakt
23 | suit.wild=Divoká
24 | suit.building=Stavba
25 | suit.outsider=Cizinec
26 | suit.undead=Nemrtvý
27 | suit.cursed-item=Prokleté předměty
28 | FR01.name=Hora
29 | FR01.bonus=+50, máš-li i karty Kouř a Požár. ODSTRAŇUJE postih ze všech Potop.
30 | FR02.name=Jeskyně
31 | FR02.bonus=+25, máš-li Trpasličí pěchotu nebo Draka. ODSTRAŇUJE postih ze všeho Počasí.
32 | FR03.name=Zvonice
33 | FR03.bonus=+15, máš-li alespoň jednoho Čaroděje.
34 | FR04.name=Les
35 | FR04.bonus=+12 za každého Tvora nebo Elfí lučištníky.
36 | FR05.name=Elementál země
37 | FR05.bonus=+15 za každou další Zemi.
38 | FR06.name=Fontána života
39 | FR06.bonus=Přidej základní sílu jakékoliv Zbraně, Potopy, Ohně, Země nebo Počasí ve své ruce.
40 | FR07.name=Bažina
41 | FR07.penalty=-3 za každou Armádu nebo Oheň.
42 | FR08.name=Stoletá voda
43 | FR08.penalty=VYMAŽE všechny Armády, všechny Země kromě Hory a všechny Ohně kromě Blesku.
44 | FR09.name=Ostrov
45 | FR09.bonus=ODSTRAŇUJE postih z jedné Potopy nebo Ohně.
46 | FR09.action=Vyber kartu Potopa nebo Oheň, která bude vymazána.
47 | FR10.name=Elementál vody
48 | FR10.bonus=+15 za každou další Potopu.
49 | FR11.name=Bouře
50 | FR11.bonus=+10 za každou Potopu.
51 | FR11.penalty=VYMAŽE všechny Ohně kromě Blesku.
52 | FR12.name=Sněhová vánice
53 | FR12.penalty=VYMAŽE všechny Potopy. -5 za každou Armádu, Vůdce, Tvora, a Oheň.
54 | FR13.name=Kouř
55 | FR13.penalty=Tato karta je VYMAZÁNA, nemáš-li alespoň jeden Oheň.
56 | FR14.name=Tornádo
57 | FR14.bonus=+40, máš-li Bouři a k ní buď Sněhovou vánici, nebo Stoletou vodu.
58 | FR15.name=Elementál vzduchu
59 | FR15.bonus=+15 za každé další Počasí.
60 | FR16.name=Požár
61 | FR16.penalty=VYMAŽE všechny karty kromě Ohňů, Čarodějů, Počasí, Zbraní, Artefaktů, Hory, Stoleté vody, Ostrova, Jednorožce a Draka.
62 | FR17.name=Svíčka
63 | FR17.bonus=+100, máš-li Knihu proměn, Zvonici a alespoň jednoho Čaroděje.
64 | FR18.name=Kovárna
65 | FR18.bonus=+9 za každou Zbraň nebo Artefakt.
66 | FR19.name=Blesk
67 | FR19.bonus=+30, máš-li Bouři.
68 | FR20.name=Elementál ohně
69 | FR20.bonus=+15 za každý další Oheň.
70 | FR21.name=Rytířky
71 | FR21.penalty=-8, nemáš-li alespoň jednoho Vůdce.
72 | FR22.name=Elfí lučištníci
73 | FR22.bonus=+5, nemáš-li žádné Počasí.
74 | FR23.name=Těžká jízda
75 | FR23.penalty=-2 za každou Zemi.
76 | FR24.name=Trpasličí pěchota
77 | FR24.penalty=-2 za každou jinou Armádu.
78 | FR25.name=Hraničáři
79 | FR25.bonus=+10 za každou Zemi. ODSTRAŇUJE slovo Armáda ze všech postihů.
80 | FR26.name=Sběratel
81 | FR26.bonus=+10 za tři různé karty stejné barvy, +40 za čtyři různé karty stejné barvy, +100 za pět různých karet stejné barvy.
82 | FR27.name=Pán šelem
83 | FR27.bonus=+9 za každého Tvora. ODSTRAŇUJE postihy na všech Tvorech.
84 | FR28.name=Nekromant
85 | FR28.bonus=Na konci hry si z odkládacího prostoru můžeš vzít jakoukoli Armádu, Vůdce, Čaroděje nebo Tvora a přidat si ho do ruky jako osmou kartu.
86 | FR29.name=Nejvyšší mág
87 | FR29.penalty=-10 za každého dalšího Čaroděje nebo Vůdce.
88 | FR30.name=Kouzelnice
89 | FR30.bonus=+5 za každou Zemi, Počasí, Potopu a Oheň.
90 | FR31.name=Král
91 | FR31.bonus=+5 za každou Armádu. NEBO +20 za každou Armádu, máš-li i Královnu.
92 | FR32.name=Královna
93 | FR32.bonus=+5 za každou Armádu. NEBO +20 za každou Armádu, máš-li i Krále.
94 | FR33.name=Princezna
95 | FR33.bonus=+8 za každou Armádu, Čaroděje nebo dalšího Vůdce.
96 | FR34.name=Velitel
97 | FR34.bonus=Součet základních sil všech Armád, které máš.
98 | FR35.name=Císařovna
99 | FR35.bonus=+10 za každou Armádu.
100 | FR35.penalty=-5 za každého dalšího Vůdce.
101 | FR36.name=Jednorožec
102 | FR36.bonus=+30, máš-li Princeznu. NEBO +15, máš-li Císařovnu, Královnu nebo Kouzelnici.
103 | FR37.name=Bazilišek
104 | FR37.penalty=VYMAŽE všechny Armády, Vůdce a další Tvory.
105 | FR38.name=Válečný oř
106 | FR38.bonus=+14 máš-li jakéhokoliv Vůdce nebo Čaroděje.
107 | FR39.name=Drak
108 | FR39.penalty=-40, nemáš-li alespoň jednoho Čaroděje.
109 | FR40.name=Hydra
110 | FR40.bonus=+28, máš-li Bažinu.
111 | FR41.name=Válečná loď
112 | FR41.bonus=ODSTRAŇUJE slovo Armáda ze všech postihů na všech Potopách.
113 | FR41.penalty=Je VYMAZÁNA, nemáš-li alespoň jednu Potopu.
114 | FR42.name=Magická hůl
115 | FR42.bonus=+25, máš-li alespoň jednoho Čaroděje.
116 | FR43.name=Kethský meč
117 | FR43.bonus=+10, máš-li alespoň jednoho Vůdce. NEBO +40, máš-li Kethský štít a k němu Vůdce.
118 | FR44.name=Elfský luk
119 | FR44.bonus=+30, máš-li Elfí lučištníky, Velitele nebo Pána šelem.
120 | FR45.name=Bojová vzducholoď
121 | FR45.penalty=VYMAZÁNA nemáš-li alespoň jednu Armádu. VYMAZÁNA, máš-li jakékoliv Počasí.
122 | FR46.name=Kethský štít
123 | FR46.bonus=+15 máš-li alespoň jednoho Vůdce. NEBO +40, máš-li Kethský meč a k němu Vůdce.
124 | FR47.name=Krystal řádu
125 | FR47.bonus=+10 za postupku ze 3 karet, +30 ze 4 karet, +60 z 5 karet, +100 z 6 karet, +150 ze 7 karet. (Počítají se ihned po sobě jdoucí základní síly karet.)
126 | FR48.name=Strom světa
127 | FR48.bonus=+50 pokud mají všechny NEVYMAZANÉ karty rozdílné barvy.
128 | FR49.name=Kniha proměn
129 | FR49.bonus=Můžeš změnit barvu jedné karty ve své ruce. Její jméno, bonusy a postihy zůstávají.
130 | FR49.action=Vyber kartu, jejíž barvu chceš změnit.
131 | FR50.name=Ochranná runa
132 | FR50.bonus=ODSTRANÍ postihy ze všech karet v ruce.
133 | FR51.name=Měňavec
134 | FR51.bonus=Může kopírovat jméno a barvu jakéhokoliv Artefaktu, Vůdce, Čaroděje, Zbraně nebo Tvora ve hře. Základní síla, bonusy ani postihy se nekopírují.
135 | FR51.action=Vyber kartu, kterou chceš zkopírovat.
136 | FR52.name=Přelud
137 | FR52.bonus=Může kopírovat jméno a barvu jakéhokoliv Počasí, Armády, Země, Potopy nebo Ohně ve hře. Základní síla, bonusy ani postihy se nekopírují.
138 | FR52.action=Vyber kartu, kterou chceš zkopírovat.
139 | FR53.name=Dvojník
140 | FR53.bonus=Může kopírovat jméno, barvu, základní sílu a postih, ALE NIKOLI BONUS jakékoliv jiné karty ve tvé ruce.
141 | FR53.action=Vyber kartu, kterou chceš zkopírovat.
142 | FR54.name=Šašek
143 | FR54.bonus=+3 za každou kartu ve tvé ruce s lichou základní silou. NEBO +50, mají-li všechny karty ve tvé ruce lichou základní sílu.
144 | CH01.name=Podzemí
145 | CH01.bonus=+10 za prvního Nemrtvého, Tvora a Artefakt. +5 za každou další kartu těchto barev a za Nekromanta, Nejvyššího mága, Démona.
146 | CH02.name=Zámek
147 | CH02.bonus=+10 za prvního Vůdce, Armádu a Zemi. +10 za první jinou Stavbu a +5 za každou další Stavbu.
148 | CH03.name=Krypta
149 | CH03.bonus=Součet základních sil všech nemrtvých.
150 | CH03.penalty=VYMAŽE všechny Vůdce.
151 | CH04.name=Kaple
152 | CH04.bonus=+40, pokud máš celkem právě dvě karty těchto barev: Vůdce, Čaroděj, Cizinec a Nemrtvý.
153 | CH05.name=Zahrady
154 | CH05.bonus=+11 za každého Vůdce a Tvora.
155 | CH05.penalty=VYMAZANÝ libovolným Nemrtvým, Nekromanta nebo Démonem.
156 | CH06.name=Džin
157 | CH06.bonus=+10 za každého jiného hráče. Na konci hry si vyber jednu kartu z dobíracího balíčku a přidej si ji do ruky. (Vyhodnocuje se po Leprikónovi.)
158 | CH07.name=Soudce
159 | CH07.bonus=+10 za každou další kartu s NEODSTRANĚNÝM POSTIHEM.
160 | CH08.name=Anděl
161 | CH08.bonus=Zabrání VYMAZÁNÍ jedné jiné karty. Tato karta nemůže být nikdy VYMAZÁNA.
162 | CH08.action=Vyber si kartu.
163 | CH09.name=Leprikón
164 | CH09.bonus=Na konci hry si z dobíracího balíčku dober horní kartu a přidej si ji do ruky. (Vyhodnocuje se před Džinem.)
165 | CH10.name=Démon
166 | CH10.penalty=Pro každou další kartu, kromě Cizinců: Je-li to jediná karta svojí barvy, je VYMAZÁNA. Tento efekt vyhodnoť před ostatními VYMAZÁNÍMI.
167 | CH11.name=Temná vládkyně
168 | CH11.bonus=+5 za každou Zemi, Potopu, Oheň, Počasí a Jednorožce v odkládací oblasti.
169 | CH12.name=Ghúl
170 | CH12.bonus=+4 za každého Čaroděje, Vůdce, Armádu, Tvora a Nemrtvého v odkládací oblasti.
171 | CH13.name=Přízrak
172 | CH13.bonus=+6 za každého Čaroděje, Artefakt a Cizince v odkládací oblasti.
173 | CH14.name=Kostěj
174 | CH14.bonus=+10 za Nekromanta a každého dalšího Nemrtvého. Nemrtví nemohou být VYMAZÁNI.
175 | CH15.name=Nemrtvý rytíř
176 | CH15.bonus=+7 za každou Zbraň a Armádu v odkládací oblasti.
177 | CH16.name=Zvonice
178 | CH16.bonus=+15, máš-li alespoň jednoho Čaroděje nebo Nemrtvého.
179 | CH17.name=Fontána života
180 | CH17.bonus=Přidej základní sílu jakékoliv Building, Zbraně, Potopy, Ohně, Země nebo Počasí ve své ruce.
181 | CH18.name=Stoletá voda
182 | CH18.penalty=VYMAŽE všechny Armády, všechny Buildings, všechny Země kromě Hory a všechny Ohně kromě Blesku.
183 | CH19.name=Hraničáři
184 | CH19.bonus=+10 za každou Zemi a Stavbu. ODSTRAŇUJE slovo Armáda ze všech postihů.
185 | CH20.name=Nekromant
186 | CH20.bonus=Na konci hry si z odkládacího prostoru můžeš vzít jakoukoli nebo Tvora, Vůdce, Čaroděje,Tvora nebo Nemrtvého a přidat si ho do ruky. Nemrtví nemohou být VYMAZÁNI.
187 | CH21.name=Strom světa
188 | CH21.bonus=+70, pokud mají všechny NEVYMAZANÉ karty rozdílné barvy.
189 | CH22.name=Měňavec
190 | CH22.bonus=Může kopírovat jméno a barvu jakéhokoliv Artefaktu, Vůdce, Čaroděje, Zbraně, Tvora nebo Nemrtvého ve hře. Základní síla, bonusy ani postihy se nekopírují.
191 | CH22.action=Vyber kartu, kterou chceš zkopírovat.
192 | CH23.name=Přelud
193 | CH23.bonus=Může kopírovat jméno a barvu jakéliv Armády, Stavby, Země, Počasí, Potopy nebo Ohně ve hře. Základní síla, bonusy ani postihy se nekopírují.
194 | CH23.action=Vyber kartu, kterou chceš zkopírovat.
195 | CH24.name=Dalekohled
196 | CH24.bonus=Podívej se na karty v ruce jiného hráče.
197 | CH24.penalty=(*Při hře dvou hráčů je hodnota tohoto předmětu -10.)
198 | CH25.name=Sarkofág
199 | CH25.bonus=Vezmi vrchní kartu z balíčku a odlož ji do odkládacího prostoru. (V tomto tahu ti v ruce zůstanou stejné karty.)
200 | CH26.name=Šátek
201 | CH26.bonus=Otoč běžný průběh tahu - nejprve odlož kartu a poté si z balíčku jednu vezmi.
202 | CH27.name=Kniha proroctví
203 | CH27.bonus=Podívej se na sedm spodních karet v balíčku, poté je vrať zpět.
204 | CH28.name=Křišťálová koule
205 | CH28.bonus=Jmenuj barvu. Všichni hráči musí z ruky odhalit všechny své karty zvolené barvy.
206 | CH29.name=Kupecký vůz
207 | CH29.bonus=Odhal kartu ze své ruky. Všichni ostatní hráči mohou odhalit a nabídnout na výměnu až tři karty. Svoji kartu můžeš vyměnit za jednu z nabízených - pokud si žádnou kartu nevybereš, nech si svoji kartu v ruce nebo ji odlož a vezmi si z balíčku novou.
208 | CH30.name=Batoh
209 | CH30.bonus=Dober si tři Prokleté předměty a polož je před sebe lícem nahoru. Při třech následujících dobíráních Prokletých předmětů si je nebereš z balíčku, ale musíš si vybrat jednu z těchto karet.
210 | CH31.name=Lopata
211 | CH31.bonus=Vezmi kartu z odkládacího prostoru a dej ji dospodu balíčku.
212 | CH32.name=Zapečetěný trezor
213 | CH32.bonus=Překryj touto kartou dvě karty v odkládacím prostoru. Stále se počítají do počtu karet pro ukončení hry a poskytují bonusy Nemrtvým, nikdo kromě tebe si je však nesmí vzít a jsou imunní vůči Lopatě a Zlatému zrcadlu.
214 | CH33.name=Křišťálové brýle
215 | CH33.bonus=Než se rozhodneš, odkud si vezmeš kartu, můžeš se podívat na horní kartu v balíčku.
216 | CH34.name=Zlodějské rukavice
217 | CH34.bonus=Ukradni jinému hráči lícem nahoru otočený prokletý předmět. Musíš jej ihned použít. Okradený hráč si ihned dobere nový prokletý předmět z balíčku prokletých předmětů.
218 | CH35.name=Opotřebovaná mapa
219 | CH35.bonus=Ze tří vrchních odložených prokletých předmětů si jeden vezmi. Ihned jej použij
220 | CH36.name=Okřídlené boty
221 | CH36.bonus=Polož vrchní kartu z balíčku do odkládacího prostoru.
222 | CH37.name=Hůlka proměny
223 | CH37.bonus=Vrať 3-8 karet ze své ruky dospodu balíčku a vezmi si stejný počet nových karet svrchu balíčku.
224 | CH38.name=Hrábě
225 | CH38.bonus=Vezmi si dvě karty z odkládacího prostoru, poté dvě karty odlož.
226 | CH39.name=Truhlice
227 | CH39.bonus=+25 na konci hry, máš-li alespoň tři další použitéprokleté předměty.
228 | CH40.name=Rybářský háček
229 | CH40.bonus=Vezmi si dvě libovolné karty z balíčku, poté dvě libovolné karty odlož.
230 | CH41.name=Sada na opravy
231 | CH41.bonus=Zkopíruj schopnost jednoho z prokletých předmětů, které jsi již použil, kromě Batohu, Sarkofágu, Šátku nebo Truhlice. Odlož a dober si novou, nemáš-li žádný použitý prokletý předmět.
232 | CH42.name=Přesýpací hodiny
233 | CH42.bonus=Proveď ještě jeden tah. Tuto kartu nahraď novou kartou z balíčku prokletých předmětů až po druhém tahu.
234 | CH43.name=Zlaté zrcadlo
235 | CH43.bonus=Vezmi tři karty z odkládacího prostoru a dej je dospodu balíčku. Místo nich odlož tři karty svrchu balíčku.
236 | CH44.name=Kotlík
237 | CH44.bonus=Místo jedné karty z balíčku si vezmi tři, dvě z nich polož dospodu nebo navrch balíčku (nebo jednu navrch a druhou dospodu). Poté jednu kartu z ruky běžným způsobem odlož.
238 | CH45.name=Lucerna
239 | CH45.bonus=Jmenuj barvu. Ber si z balíčku karty, dokud nevezmeš kartu jmenované barvy nebo dokud jich nebude deset. Divoké karty se nepočítají. Pokud si vezmeš kartu jmenované barvy, nech si ji a odlož jinou kartu z ruky. Zbývající karty ukaž ostatním a zamíchej je zpět do balíčku.
240 | CH46.name=Portál
241 | CH46.bonus=V tomto tahu vynechej odkládání jedné karty. (Od tohoto okamžiku budeš mít v ruce o jednu kartu více.)
242 | CH47.name=Kouzelný prsten
243 | CH47.bonus=Prohledej balíček a libovolnou kartu z něj polož navrch. (Toto můžeš provést těsně před tím, než si vezmeš kartu.) Na konci svého tahu balíček zamíchej.
244 | timing.any-time=KDYKOLIV
245 | timing.replace-turn=MÍSTO TAHU
246 | timing.copy=STEJNÉ JAKO KOPÍROVANÁ KARTA
247 | timing.after-turn=PO TAHU
248 |
--------------------------------------------------------------------------------
/i18n/Messages.properties:
--------------------------------------------------------------------------------
1 | button.use=Use
2 | button.reset=Reset
3 | button.cancel=Cancel
4 | button.sound=Sound
5 | button.discard-area=Discard Area
6 | button.back-to-hand=Back to Hand
7 | label.player-count=Player count
8 | label.discard-area=Discard Area
9 | label.blanked=BLANKED
10 | label.cursed-hoard=Cursed Hoard
11 | label.cursed-hoard.items=Cursed Items
12 | label.cursed-hoard.suits=Buildings/Outsiders/Undead
13 | suit.land=Land
14 | suit.flood=Flood
15 | suit.weather=Weather
16 | suit.flame=Flame
17 | suit.army=Army
18 | suit.wizard=Wizard
19 | suit.leader=Leader
20 | suit.beast=Beast
21 | suit.weapon=Weapon
22 | suit.artifact=Artifact
23 | suit.wild=Wild
24 | suit.building=Building
25 | suit.outsider=Outsider
26 | suit.undead=Undead
27 | suit.cursed-item=Cursed Item
28 | FR01.name=Mountain
29 | FR01.bonus=+50 with both Smoke and Wildfire. CLEARS the Penalty on all Floods.
30 | FR02.name=Cavern
31 | FR02.bonus=+25 with Dwarvish Infantry or Dragon. CLEARS the Penalty on all Weather.
32 | FR03.name=Bell Tower
33 | FR03.bonus=+15 with any one Wizard.
34 | FR04.name=Forest
35 | FR04.bonus=+12 for each Beast and Elven Archers.
36 | FR05.name=Earth Elemental
37 | FR05.bonus=+15 for each other Land.
38 | FR06.name=Fountain of Life
39 | FR06.bonus=Add the base strength of any one Weapon, Flood, Flame, Land or Weather in your hand.
40 | FR07.name=Swamp
41 | FR07.penalty=-3 for each Army and Flame.
42 | FR08.name=Great Flood
43 | FR08.penalty=BLANKS all Armies, all Lands except Mountain, and all Flames except Lightning.
44 | FR09.name=Island
45 | FR09.bonus=CLEARS the Penalty on any one Flood or Flame.
46 | FR09.action=Pick a Flood or Flame from your hand to clear.
47 | FR10.name=Water Elemental
48 | FR10.bonus=+15 for each other Flood.
49 | FR11.name=Rainstorm
50 | FR11.bonus=+10 for each Flood.
51 | FR11.penalty=BLANKS all Flames except Lightning.
52 | FR12.name=Blizzard
53 | FR12.penalty=BLANKS all Floods. -5 for each Army, Leader, Beast, and Flame.
54 | FR13.name=Smoke
55 | FR13.penalty=This card is BLANKED unless with at least one Flame.
56 | FR14.name=Whirlwind
57 | FR14.bonus=+40 with Rainstorm and either Blizzard or Great Flood.
58 | FR15.name=Air Elemental
59 | FR15.bonus=+15 for each other Weather.
60 | FR16.name=Wildfire
61 | FR16.penalty=BLANKS all cards except Flames, Wizards, Weather, Weapons, Artifacts, Mountain, Great Flood, Island, Unicorn and Dragon.
62 | FR17.name=Candle
63 | FR17.bonus=+100 with Book of Changes, Bell Tower, and any one Wizard.
64 | FR18.name=Forge
65 | FR18.bonus=+9 for each Weapon and Artifact.
66 | FR19.name=Lightning
67 | FR19.bonus=+30 with Rainstorm.
68 | FR20.name=Fire Elemental
69 | FR20.bonus=+15 for each other Flame.
70 | FR21.name=Knights
71 | FR21.penalty=-8 unless with at least one Leader.
72 | FR22.name=Elven Archers
73 | FR22.bonus=+5 if no Weather.
74 | FR23.name=Light Cavalry
75 | FR23.penalty=-2 for each Land.
76 | FR24.name=Dwarvish Infantry
77 | FR24.penalty=-2 for each other Army.
78 | FR25.name=Rangers
79 | FR25.bonus=+10 for each Land. CLEARS the word Army from all Penalties.
80 | FR26.name=Collector
81 | FR26.bonus=+10 if three different cards in same suit, +40 if four different cards in same suit, +100 if five different cards in same suit.
82 | FR27.name=Beastmaster
83 | FR27.bonus=+9 for each Beast. CLEARS the Penalty on all Beasts.
84 | FR28.name=Necromancer
85 | FR28.bonus=At the end of the game, you may take one Army, Leader, Wizard, or Beast from the discard pile and add it to your hand.
86 | FR29.name=Warlock Lord
87 | FR29.penalty=-10 for each Leader and other Wizard.
88 | FR30.name=Enchantress
89 | FR30.bonus=+5 for each Land, Weather, Flood, and Flame.
90 | FR31.name=King
91 | FR31.bonus=+5 for each Army. OR +20 for each Army if with Queen.
92 | FR32.name=Queen
93 | FR32.bonus=+5 for each Army. OR +20 for each Army if with King.
94 | FR33.name=Princess
95 | FR33.bonus=+8 for each Army, Wizard, and other Leader.
96 | FR34.name=Warlord
97 | FR34.bonus=The sum of the base strength of all Armies.
98 | FR35.name=Empress
99 | FR35.bonus=+10 for each Army.
100 | FR35.penalty=-5 for each other Leader.
101 | FR36.name=Unicorn
102 | FR36.bonus=+30 with Princess. OR +15 with Empress, Queen, or Enchantress.
103 | FR37.name=Basilisk
104 | FR37.penalty=BLANKS all Armies, Leaders, and other Beasts.
105 | FR38.name=Warhorse
106 | FR38.bonus=+14 with any Leader or Wizard.
107 | FR39.name=Dragon
108 | FR39.penalty=-40 unless with at least one Wizard.
109 | FR40.name=Hydra
110 | FR40.bonus=+28 with Swamp.
111 | FR41.name=Warship
112 | FR41.bonus=CLEARS the word Army from all Penalties of all Floods.
113 | FR41.penalty=BLANKED unless with at least one Flood.
114 | FR42.name=Magic Wand
115 | FR42.bonus=+25 with any one Wizard.
116 | FR43.name=Sword of Keth
117 | FR43.bonus=+10 with any one Leader. OR +40 with both Leader and Shield of Keth.
118 | FR44.name=Elven Longbow
119 | FR44.bonus=+30 with Elven Archers, Warlord or Beastmaster.
120 | FR45.name=War Dirigible
121 | FR45.penalty=BLANKED unless with at least one Army. BLANKED with any Weather.
122 | FR46.name=Shield of Keth
123 | FR46.bonus=+15 with any one Leader. OR +40 with both Leader and Sword of Keth.
124 | FR47.name=Gem of Order
125 | FR47.bonus=+10 for 3-card run, +30 for 4-card run, +60 for 5-card run, +100 for 6-card run, +150 for 7-card run. (This refers to the base strength numbers.)
126 | FR48.name=World Tree
127 | FR48.bonus=+50 if every non-BLANKED card is a different suit.
128 | FR49.name=Book of Changes
129 | FR49.bonus=You may change the suit of one other card. Its name, bonuses and penalties remain the same.
130 | FR49.action=Pick a suit and a target card from your hand.
131 | FR50.name=Protection Rune
132 | FR50.bonus=CLEARS the Penalty on all cards.
133 | FR51.name=Shapeshifter
134 | FR51.bonus=Shapeshifter may duplicate the name and suit of any one Artifact, Leader, Wizard, Weapon or Beast in the game. Does not take the bonus, penalty, or base strength of the card duplicated.
135 | FR51.action=Pick a target card to duplicate.
136 | FR52.name=Mirage
137 | FR52.bonus=Mirage may duplicate the name and suit of any one Army, Land, Weather, Flood or Flame in the game. Does not take the bonus, penalty, or base strength of the card duplicated.
138 | FR52.action=Pick a target card to duplicate.
139 | FR53.name=Doppelgänger
140 | FR53.bonus=Doppelgänger may duplicate the name, base strength, suit, and penalty BUT NOT BONUS of any one other card in your hand.
141 | FR53.action=Pick a card from your hand to duplicate.
142 | FR54.name=Jester
143 | FR54.bonus=+3 for each other card with an odd base value. OR +50 if entire hand has odd base values.
144 | FR55.name=Phoenix
145 | FR55.bonus=Also counts as a Flame and Weather card. Phoenix is immune to the Book of Changes and may not BLANK or be BLANKED by any other card.
146 | FR55.penalty=BLANKED with any Flood.
147 | FR55P.name=Phoenix (Promo)
148 | FR55P.bonus=Also counts as a Flame and Weather card. If this card is BLANKED for any reason, its base strength is reduced to 0 but it retains its suits.
149 | FR55P.penalty=BLANKED with any Flood.
150 | CH01.name=Dungeon
151 | CH01.bonus=+10 each for the first Undead, Beast, and Artifact. +5 for each additional card in any of these suits and Necromancer, Warlock Lord, Demon.
152 | CH02.name=Castle
153 | CH02.bonus=+10 for the first Leader, Army, Land, and other Building. +5 for each additional Building.
154 | CH03.name=Crypt
155 | CH03.bonus=The sum of the base strength of all Undead.
156 | CH03.penalty=BLANKs all Leaders.
157 | CH04.name=Chapel
158 | CH04.bonus=+40 if you have exactly two cards from among these suits: Leader, Wizard, Outsider, and Undead.
159 | CH05.name=Garden
160 | CH05.bonus=+11 for each Leader and Beast.
161 | CH05.penalty=BLANKED by any Undead, Necromancer, or Demon.
162 | CH06.name=Genie
163 | CH06.bonus=+10 per other player. At the end of the game, look through the draw deck and put one card in your hand. (Resolves after Leprechaun.)
164 | CH07.name=Judge
165 | CH07.bonus=+10 for each card that contains a Penalty that is not CLEARED.
166 | CH08.name=Angel
167 | CH08.bonus=Prevent one other card from being BLANKED. This card can never be BLANKED.
168 | CH08.action=Pick a target card from your hand.
169 | CH09.name=Leprechaun
170 | CH09.bonus=Draw the top card from the deck at the end of the game and add it to your hand. (Resolves before Genie.)
171 | CH10.name=Demon
172 | CH10.penalty=For every non-Outsider card: If that card is the only card you have in that suit, then that card is BLANKED. This takes place before any other BLANKING.
173 | CH11.name=Dark Queen
174 | CH11.bonus=+5 for each Land, Flood, Flame, Weather, and Unicorn in the discard area.
175 | CH12.name=Ghoul
176 | CH12.bonus=+4 for each Wizard, Leader, Army, Beast, and Undead in the discard area.
177 | CH13.name=Specter
178 | CH13.bonus=+6 for each Wizard, Artifact, and Outsider in the discard area.
179 | CH14.name=Lich
180 | CH14.bonus=+10 for Necromancer and each other Undead. Undead may not be BLANKED.
181 | CH15.name=Death Knight
182 | CH15.bonus=+7 for each Weapon and Army in the discard area.
183 | CH16.name=Bell Tower
184 | CH16.bonus=+15 with any one Wizard or Undead.
185 | CH17.name=Fountain of Life
186 | CH17.bonus=Add the base strength of any one Building, Weapon, Flood, Flame, Land or Weather in your hand.
187 | CH18.name=Great Flood
188 | CH18.penalty=BLANKS all Armies, all Buildings, all Lands except Mountain, and all Flames except Lightning.
189 | CH19.name=Rangers
190 | CH19.bonus=+10 for each Land and Building. CLEARS the word Army from all Penalties.
191 | CH20.name=Necromancer
192 | CH20.bonus=At the end of the game, you may take one Army, Leader, Wizard, Beast, or Undead from the discard pile and add it to your hand. Undead may not be BLANKED.
193 | CH21.name=World Tree
194 | CH21.bonus=+70 if every non-BLANKED card is a different suit.
195 | CH22.name=Shapeshifter
196 | CH22.bonus=Shapeshifter may duplicate the name and suit of any one Artifact, Leader, Wizard, Weapon, Beast, or Undead in the game. Does not take the bonus, penalty, or base strength of the card duplicated.
197 | CH22.action=Pick a target card to duplicate.
198 | CH23.name=Mirage
199 | CH23.bonus=Mirage may duplicate the name and suit of any one Army, Building, Land, Weather, Flood or Flame in the game. Does not take the bonus, penalty, or base strength of the card duplicated.
200 | CH23.action=Pick a target card to duplicate.
201 | CH24.name=Spyglass
202 | CH24.bonus=Look at another player’s hand.
203 | CH24.penalty=(*This item’s base value is -10 in 2-player game)
204 | CH25.name=Sarcophagus
205 | CH25.bonus=Take the top card from the deck and place it directly in the discard area, then end your turn. (The makeup of your hand will not change this turn.)
206 | CH26.name=Blindfold
207 | CH26.bonus=Reverse normal turn order: discard a card first, then draw a card from the deck.
208 | CH27.name=Book of Prophecy
209 | CH27.bonus=Look at the bottom seven cards of the deck, then replace them there.
210 | CH28.name=Crystal Ball
211 | CH28.bonus=Name a suit. All other players must reveal all cards they possess of that suit.
212 | CH29.name=Market Wagon
213 | CH29.bonus=Reveal a card from your hand. Any other player may reveal up to 3 cards to offer in exchange. You may choose to trade your card for one of them; if no offer is acceptable, keep your card or discard it and draw from the deck.
214 | CH30.name=Backpack
215 | CH30.bonus=Draw three Cursed Items and set them aside face up. The next three times you would draw a new Cursed Item from the deck, you must take one of these cards instead.
216 | CH31.name=Shovel
217 | CH31.bonus=Put a card from the discard area on the bottom of the deck.
218 | CH32.name=Sealed Vault
219 | CH32.bonus=Cover two cards in the discard area with this card. They still count towards the end of the game and give bonuses to Undead, but no one but you may take them, and they are immune to Shovel and Gold Mirror.
220 | CH33.name=Crystal Lens
221 | CH33.bonus=You may peek at the top card of the deck before deciding whether to draw from the deck or discard area.
222 | CH34.name=Larcenous Gloves
223 | CH34.bonus=Steal a face-up Cursed Item from another player. You must use it immediately. The player you stole from must immediately draw a replacement from the Cursed Item deck.
224 | CH35.name=Junkyard Map
225 | CH35.bonus=Take one of the top three discarded Cursed Item cards and play it immediately.
226 | CH36.name=Winged Boots
227 | CH36.bonus=Put the top card of the deck directly into the discard area.
228 | CH37.name=Staff of Transmutation
229 | CH37.bonus=Return 3-8 cards from your hand to the bottom of the deck and replace them from the top of the deck.
230 | CH38.name=Rake
231 | CH38.bonus=Draw two cards from the discard area, then discard two cards.
232 | CH39.name=Treasure Chest
233 | CH39.bonus=Worth +25 points at the end of the game if you have at least three other Cursed Items facedown.
234 | CH40.name=Fishhook
235 | CH40.bonus=Draw two cards from the deck, then discard any two cards.
236 | CH41.name=Repair Kit
237 | CH41.bonus=Copy the ability of any Cursed Item you have already played other than Backpack, Sarcophagus, Blindfold, and Treasure Chest. Discard and redraw if you have no facedown Cursed Items.
238 | CH42.name=Hourglass
239 | CH42.bonus=Take an extra turn. Do not replace this card with a new Cursed Item until after your second turn.
240 | CH43.name=Gold Mirror
241 | CH43.bonus=Put three cards from the discard area on the bottom of the deck. Replace them with the top three cards of the deck.
242 | CH44.name=Cauldron
243 | CH44.bonus=Instead of drawing a card from the deck, draw three cards, then place two of them on the top or bottom of the deck (or one each) before you discard normally.
244 | CH45.name=Lantern
245 | CH45.bonus=Name a suit. Draw from the deck until you draw a card from that suit, or until you have drawn ten cards. (Wild cards do not count.) If you draw a card from the named suit, keep it and discard a different card from your hand. Show the other cards you drew and reshuffle them into the deck.
246 | CH46.name=Portal
247 | CH46.bonus=Skip your discard phase this turn. (You will have one extra card in your hand from now on.)
248 | CH47.name=Wishing Ring
249 | CH47.bonus=Look through the deck and place any card you wish on top. (You may do this immediately before you draw.) Reshuffle the deck at the end of your turn.
250 | timing.any-time=ANY TIME
251 | timing.replace-turn=REPLACE TURN
252 | timing.copy=COPY TIMING OF COPIED CARD
253 | timing.after-turn=AFTER TURN
254 |
--------------------------------------------------------------------------------
/i18n/Messages_en.properties:
--------------------------------------------------------------------------------
1 | button.use=Use
2 | button.reset=Reset
3 | button.cancel=Cancel
4 | button.sound=Sound
5 | button.discard-area=Discard Area
6 | button.back-to-hand=Back to Hand
7 | label.player-count=Player count
8 | label.discard-area=Discard Area
9 | label.blanked=BLANKED
10 | label.cursed-hoard=Cursed Hoard
11 | label.cursed-hoard.items=Cursed Items
12 | label.cursed-hoard.suits=Buildings/Outsiders/Undead
13 | suit.land=Land
14 | suit.flood=Flood
15 | suit.weather=Weather
16 | suit.flame=Flame
17 | suit.army=Army
18 | suit.wizard=Wizard
19 | suit.leader=Leader
20 | suit.beast=Beast
21 | suit.weapon=Weapon
22 | suit.artifact=Artifact
23 | suit.wild=Wild
24 | suit.building=Building
25 | suit.outsider=Outsider
26 | suit.undead=Undead
27 | suit.cursed-item=Cursed Item
28 | FR01.name=Mountain
29 | FR01.bonus=+50 with both Smoke and Wildfire. CLEARS the Penalty on all Floods.
30 | FR02.name=Cavern
31 | FR02.bonus=+25 with Dwarvish Infantry or Dragon. CLEARS the Penalty on all Weather.
32 | FR03.name=Bell Tower
33 | FR03.bonus=+15 with any one Wizard.
34 | FR04.name=Forest
35 | FR04.bonus=+12 for each Beast and Elven Archers.
36 | FR05.name=Earth Elemental
37 | FR05.bonus=+15 for each other Land.
38 | FR06.name=Fountain of Life
39 | FR06.bonus=Add the base strength of any one Weapon, Flood, Flame, Land or Weather in your hand.
40 | FR07.name=Swamp
41 | FR07.penalty=-3 for each Army and Flame.
42 | FR08.name=Great Flood
43 | FR08.penalty=BLANKS all Armies, all Lands except Mountain, and all Flames except Lightning.
44 | FR09.name=Island
45 | FR09.bonus=CLEARS the Penalty on any one Flood or Flame.
46 | FR09.action=Pick a Flood or Flame from your hand to clear.
47 | FR10.name=Water Elemental
48 | FR10.bonus=+15 for each other Flood.
49 | FR11.name=Rainstorm
50 | FR11.bonus=+10 for each Flood.
51 | FR11.penalty=BLANKS all Flames except Lightning.
52 | FR12.name=Blizzard
53 | FR12.penalty=BLANKS all Floods. -5 for each Army, Leader, Beast, and Flame.
54 | FR13.name=Smoke
55 | FR13.penalty=This card is BLANKED unless with at least one Flame.
56 | FR14.name=Whirlwind
57 | FR14.bonus=+40 with Rainstorm and either Blizzard or Great Flood.
58 | FR15.name=Air Elemental
59 | FR15.bonus=+15 for each other Weather.
60 | FR16.name=Wildfire
61 | FR16.penalty=BLANKS all cards except Flames, Wizards, Weather, Weapons, Artifacts, Mountain, Great Flood, Island, Unicorn and Dragon.
62 | FR17.name=Candle
63 | FR17.bonus=+100 with Book of Changes, Bell Tower, and any one Wizard.
64 | FR18.name=Forge
65 | FR18.bonus=+9 for each Weapon and Artifact.
66 | FR19.name=Lightning
67 | FR19.bonus=+30 with Rainstorm.
68 | FR20.name=Fire Elemental
69 | FR20.bonus=+15 for each other Flame.
70 | FR21.name=Knights
71 | FR21.penalty=-8 unless with at least one Leader.
72 | FR22.name=Elven Archers
73 | FR22.bonus=+5 if no Weather.
74 | FR23.name=Light Cavalry
75 | FR23.penalty=-2 for each Land.
76 | FR24.name=Dwarvish Infantry
77 | FR24.penalty=-2 for each other Army.
78 | FR25.name=Rangers
79 | FR25.bonus=+10 for each Land. CLEARS the word Army from all Penalties.
80 | FR26.name=Collector
81 | FR26.bonus=+10 if three different cards in same suit, +40 if four different cards in same suit, +100 if five different cards in same suit.
82 | FR27.name=Beastmaster
83 | FR27.bonus=+9 for each Beast. CLEARS the Penalty on all Beasts.
84 | FR28.name=Necromancer
85 | FR28.bonus=At the end of the game, you may take one Army, Leader, Wizard, or Beast from the discard pile and add it to your hand.
86 | FR29.name=Warlock Lord
87 | FR29.penalty=-10 for each Leader and other Wizard.
88 | FR30.name=Enchantress
89 | FR30.bonus=+5 for each Land, Weather, Flood, and Flame.
90 | FR31.name=King
91 | FR31.bonus=+5 for each Army. OR +20 for each Army if with Queen.
92 | FR32.name=Queen
93 | FR32.bonus=+5 for each Army. OR +20 for each Army if with King.
94 | FR33.name=Princess
95 | FR33.bonus=+8 for each Army, Wizard, and other Leader.
96 | FR34.name=Warlord
97 | FR34.bonus=The sum of the base strength of all Armies.
98 | FR35.name=Empress
99 | FR35.bonus=+10 for each Army.
100 | FR35.penalty=-5 for each other Leader.
101 | FR36.name=Unicorn
102 | FR36.bonus=+30 with Princess. OR +15 with Empress, Queen, or Enchantress.
103 | FR37.name=Basilisk
104 | FR37.penalty=BLANKS all Armies, Leaders, and other Beasts.
105 | FR38.name=Warhorse
106 | FR38.bonus=+14 with any Leader or Wizard.
107 | FR39.name=Dragon
108 | FR39.penalty=-40 unless with at least one Wizard.
109 | FR40.name=Hydra
110 | FR40.bonus=+28 with Swamp.
111 | FR41.name=Warship
112 | FR41.bonus=CLEARS the word Army from all Penalties of all Floods.
113 | FR41.penalty=BLANKED unless with at least one Flood.
114 | FR42.name=Magic Wand
115 | FR42.bonus=+25 with any one Wizard.
116 | FR43.name=Sword of Keth
117 | FR43.bonus=+10 with any one Leader. OR +40 with both Leader and Shield of Keth.
118 | FR44.name=Elven Longbow
119 | FR44.bonus=+30 with Elven Archers, Warlord or Beastmaster.
120 | FR45.name=War Dirigible
121 | FR45.penalty=BLANKED unless with at least one Army. BLANKED with any Weather.
122 | FR46.name=Shield of Keth
123 | FR46.bonus=+15 with any one Leader. OR +40 with both Leader and Sword of Keth.
124 | FR47.name=Gem of Order
125 | FR47.bonus=+10 for 3-card run, +30 for 4-card run, +60 for 5-card run, +100 for 6-card run, +150 for 7-card run. (This refers to the base strength numbers.)
126 | FR48.name=World Tree
127 | FR48.bonus=+50 if every non-BLANKED card is a different suit.
128 | FR49.name=Book of Changes
129 | FR49.bonus=You may change the suit of one other card. Its name, bonuses and penalties remain the same.
130 | FR49.action=Pick a suit and a target card from your hand.
131 | FR50.name=Protection Rune
132 | FR50.bonus=CLEARS the Penalty on all cards.
133 | FR51.name=Shapeshifter
134 | FR51.bonus=Shapeshifter may duplicate the name and suit of any one Artifact, Leader, Wizard, Weapon or Beast in the game. Does not take the bonus, penalty, or base strength of the card duplicated.
135 | FR51.action=Pick a target card to duplicate.
136 | FR52.name=Mirage
137 | FR52.bonus=Mirage may duplicate the name and suit of any one Army, Land, Weather, Flood or Flame in the game. Does not take the bonus, penalty, or base strength of the card duplicated.
138 | FR52.action=Pick a target card to duplicate.
139 | FR53.name=Doppelgänger
140 | FR53.bonus=Doppelgänger may duplicate the name, base strength, suit, and penalty BUT NOT BONUS of any one other card in your hand.
141 | FR53.action=Pick a card from your hand to duplicate.
142 | FR54.name=Jester
143 | FR54.bonus=+3 for each other card with an odd base value. OR +50 if entire hand has odd base values.
144 | FR55.name=Phoenix
145 | FR55.bonus=Also counts as a Flame and Weather card. Phoenix is immune to the Book of Changes and may not BLANK or be BLANKED by any other card.
146 | FR55.penalty=BLANKED with any Flood.
147 | FR55P.name=Phoenix (Promo)
148 | FR55P.bonus=Also counts as a Flame and Weather card. If this card is BLANKED for any reason, its base strength is reduced to 0 but it retains its suits.
149 | FR55P.penalty=BLANKED with any Flood.
150 | CH01.name=Dungeon
151 | CH01.bonus=+10 each for the first Undead, Beast, and Artifact. +5 for each additional card in any of these suits and Necromancer, Warlock Lord, Demon.
152 | CH02.name=Castle
153 | CH02.bonus=+10 for the first Leader, Army, Land, and other Building. +5 for each additional Building.
154 | CH03.name=Crypt
155 | CH03.bonus=The sum of the base strength of all Undead.
156 | CH03.penalty=BLANKs all Leaders.
157 | CH04.name=Chapel
158 | CH04.bonus=+40 if you have exactly two cards from among these suits: Leader, Wizard, Outsider, and Undead.
159 | CH05.name=Garden
160 | CH05.bonus=+11 for each Leader and Beast.
161 | CH05.penalty=BLANKED by any Undead, Necromancer, or Demon.
162 | CH06.name=Genie
163 | CH06.bonus=+10 per other player. At the end of the game, look through the draw deck and put one card in your hand. (Resolves after Leprechaun.)
164 | CH07.name=Judge
165 | CH07.bonus=+10 for each card that contains a Penalty that is not CLEARED.
166 | CH08.name=Angel
167 | CH08.bonus=Prevent one other card from being BLANKED. This card can never be BLANKED.
168 | CH08.action=Pick a target card from your hand.
169 | CH09.name=Leprechaun
170 | CH09.bonus=Draw the top card from the deck at the end of the game and add it to your hand. (Resolves before Genie.)
171 | CH10.name=Demon
172 | CH10.penalty=For every non-Outsider card: If that card is the only card you have in that suit, then that card is BLANKED. This takes place before any other BLANKING.
173 | CH11.name=Dark Queen
174 | CH11.bonus=+5 for each Land, Flood, Flame, Weather, and Unicorn in the discard area.
175 | CH12.name=Ghoul
176 | CH12.bonus=+4 for each Wizard, Leader, Army, Beast, and Undead in the discard area.
177 | CH13.name=Specter
178 | CH13.bonus=+6 for each Wizard, Artifact, and Outsider in the discard area.
179 | CH14.name=Lich
180 | CH14.bonus=+10 for Necromancer and each other Undead. Undead may not be BLANKED.
181 | CH15.name=Death Knight
182 | CH15.bonus=+7 for each Weapon and Army in the discard area.
183 | CH16.name=Bell Tower
184 | CH16.bonus=+15 with any one Wizard or Undead.
185 | CH17.name=Fountain of Life
186 | CH17.bonus=Add the base strength of any one Building, Weapon, Flood, Flame, Land or Weather in your hand.
187 | CH18.name=Great Flood
188 | CH18.penalty=BLANKS all Armies, all Buildings, all Lands except Mountain, and all Flames except Lightning.
189 | CH19.name=Rangers
190 | CH19.bonus=+10 for each Land and Building. CLEARS the word Army from all Penalties.
191 | CH20.name=Necromancer
192 | CH20.bonus=At the end of the game, you may take one Army, Leader, Wizard, Beast, or Undead from the discard pile and add it to your hand. Undead may not be BLANKED.
193 | CH21.name=World Tree
194 | CH21.bonus=+70 if every non-BLANKED card is a different suit.
195 | CH22.name=Shapeshifter
196 | CH22.bonus=Shapeshifter may duplicate the name and suit of any one Artifact, Leader, Wizard, Weapon, Beast, or Undead in the game. Does not take the bonus, penalty, or base strength of the card duplicated.
197 | CH22.action=Pick a target card to duplicate.
198 | CH23.name=Mirage
199 | CH23.bonus=Mirage may duplicate the name and suit of any one Army, Building, Land, Weather, Flood or Flame in the game. Does not take the bonus, penalty, or base strength of the card duplicated.
200 | CH23.action=Pick a target card to duplicate.
201 | CH24.name=Spyglass
202 | CH24.bonus=Look at another player’s hand.
203 | CH24.penalty=(*This item’s base value is -10 in 2-player game)
204 | CH25.name=Sarcophagus
205 | CH25.bonus=Take the top card from the deck and place it directly in the discard area, then end your turn. (The makeup of your hand will not change this turn.)
206 | CH26.name=Blindfold
207 | CH26.bonus=Reverse normal turn order: discard a card first, then draw a card from the deck.
208 | CH27.name=Book of Prophecy
209 | CH27.bonus=Look at the bottom seven cards of the deck, then replace them there.
210 | CH28.name=Crystal Ball
211 | CH28.bonus=Name a suit. All other players must reveal all cards they possess of that suit.
212 | CH29.name=Market Wagon
213 | CH29.bonus=Reveal a card from your hand. Any other player may reveal up to 3 cards to offer in exchange. You may choose to trade your card for one of them; if no offer is acceptable, keep your card or discard it and draw from the deck.
214 | CH30.name=Backpack
215 | CH30.bonus=Draw three Cursed Items and set them aside face up. The next three times you would draw a new Cursed Item from the deck, you must take one of these cards instead.
216 | CH31.name=Shovel
217 | CH31.bonus=Put a card from the discard area on the bottom of the deck.
218 | CH32.name=Sealed Vault
219 | CH32.bonus=Cover two cards in the discard area with this card. They still count towards the end of the game and give bonuses to Undead, but no one but you may take them, and they are immune to Shovel and Gold Mirror.
220 | CH33.name=Crystal Lens
221 | CH33.bonus=You may peek at the top card of the deck before deciding whether to draw from the deck or discard area.
222 | CH34.name=Larcenous Gloves
223 | CH34.bonus=Steal a face-up Cursed Item from another player. You must use it immediately. The player you stole from must immediately draw a replacement from the Cursed Item deck.
224 | CH35.name=Junkyard Map
225 | CH35.bonus=Take one of the top three discarded Cursed Item cards and play it immediately.
226 | CH36.name=Winged Boots
227 | CH36.bonus=Put the top card of the deck directly into the discard area.
228 | CH37.name=Staff of Transmutation
229 | CH37.bonus=Return 3-8 cards from your hand to the bottom of the deck and replace them from the top of the deck.
230 | CH38.name=Rake
231 | CH38.bonus=Draw two cards from the discard area, then discard two cards.
232 | CH39.name=Treasure Chest
233 | CH39.bonus=Worth +25 points at the end of the game if you have at least three other Cursed Items facedown.
234 | CH40.name=Fishhook
235 | CH40.bonus=Draw two cards from the deck, then discard any two cards.
236 | CH41.name=Repair Kit
237 | CH41.bonus=Copy the ability of any Cursed Item you have already played other than Backpack, Sarcophagus, Blindfold, and Treasure Chest. Discard and redraw if you have no facedown Cursed Items.
238 | CH42.name=Hourglass
239 | CH42.bonus=Take an extra turn. Do not replace this card with a new Cursed Item until after your second turn.
240 | CH43.name=Gold Mirror
241 | CH43.bonus=Put three cards from the discard area on the bottom of the deck. Replace them with the top three cards of the deck.
242 | CH44.name=Cauldron
243 | CH44.bonus=Instead of drawing a card from the deck, draw three cards, then place two of them on the top or bottom of the deck (or one each) before you discard normally.
244 | CH45.name=Lantern
245 | CH45.bonus=Name a suit. Draw from the deck until you draw a card from that suit, or until you have drawn ten cards. (Wild cards do not count.) If you draw a card from the named suit, keep it and discard a different card from your hand. Show the other cards you drew and reshuffle them into the deck.
246 | CH46.name=Portal
247 | CH46.bonus=Skip your discard phase this turn. (You will have one extra card in your hand from now on.)
248 | CH47.name=Wishing Ring
249 | CH47.bonus=Look through the deck and place any card you wish on top. (You may do this immediately before you draw.) Reshuffle the deck at the end of your turn.
250 | timing.any-time=ANY TIME
251 | timing.replace-turn=REPLACE TURN
252 | timing.copy=COPY TIMING OF COPIED CARD
253 | timing.after-turn=AFTER TURN
254 |
--------------------------------------------------------------------------------