-
Notifications
You must be signed in to change notification settings - Fork 0
/
material.inc.php
762 lines (729 loc) · 30.1 KB
/
material.inc.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
<?php
/**
*------
* BGA framework: © Gregory Isabelli <[email protected]> & Emmanuel Colin <[email protected]>
* VastTheCrystalCaverns implementation : © Silvligh / Funce <[email protected]>
*
* This code has been produced on the BGA studio platform for use on http://boardgamearena.com.
* See http://en.boardgamearena.com/#!doc/Studio for more information.
* -----
*
* material.inc.php
*
* VastTheCrystalCaverns game material description
*
* Here, you can describe the material of your game with PHP variables.
*
* This file is loaded in your game logic class constructor, ie these variables
* are available everywhere in your game logic code.
*
*/
/*
Example:
$this->card_types = array(
1 => array( "card_name" => ...,
...
)
);
*/
$this->tokens = array(
1 => array(
"token_name" => "",
"sprite_sheet" => ""
)
);
$this->omens = array(
1 => array(
"omen_type" => "",
"sprite_sheet" => ""
)
);
$this->tiles = array(
1 => array(
"dark_type" => "",
"light_type" => "",
"sprite_sheet" => ""
)
);
/*
- Card Font Details -
Sidequests
Grit Reward
Font - DwarvenAxe BB
Colour - rgb(255,255,255)
Size - 18
Title
Font - DwarvenAxe BB
Colour - rgb(34, 30, 31)
Size - 18
Description
Font - Noto Serif
Colour - rgb(255, 255, 255)
Size - 9
Quote
Font - Noto Serif
Colour - rgb(34, 30, 31)
Size - 6
*/
// General Cards
// Misc Cards - Variants, and other cards that don't otherwise belong in a collection
$this->misc_cards = array(
"alone_in_the_dark" => array(
"card_name" => clienttranslate("Alone in the Dark"),
"description" => array(
clienttranslate("At the end of your turn, instead of drawing and placing 1 Dark tile, draw and place Dark tiles equal in number to the *greatest* of the following:"),
clienttranslate("*ALL:* The number of revealed Crystal tiles (/including collapsed tiles/)."),
clienttranslate("*Knight:* The number of Hero cubes you have available to place or have placed."),
clienttranslate("*Goblins:* The Population of your largest Tribe."),
clienttranslate("*Dragon:* Your Spirit statistic."),
clienttranslate("*Thief:* Your Movement statistic."),
clienttranslate("If the Collapse has begun, remove the same number of tiles instead. When selecting tiles to collapse, always choose Crystal tiles first, then Dark tiles, then Lit tiles."),
),
"quote" => clienttranslate("It's quiet in here. A little too quiet...")
),
"ash-dragon" => array(
"card_name" => clienttranslate("Ash Dragon"),
"description" => array(
clienttranslate("The Dragon gets +1 Armor (/maximum 4/). Goblin Tribes may use the Attack action against the Dragon: reduce the Dragon's Health by 1, reduce the Goblins' Rage by 1, and scatter the attacking Tribe."),
),
"quote" => clienttranslate("Come, come. We knows where tasty dragonmonster sleeps!")
),
"flare" => array(
"card_name" => clienttranslate("Flare"),
"description" => array(
clienttranslate("Choose a space and roll the Dragon die. Reveal all Dark tiles affected by the roll, with the selected space as the center."),
clienttranslate("The Knight may target any space on the map, once per turn (/does not use an Encounter/)."),
clienttranslate("A Goblin Tribe may target its current space without using an action, before or after moving."),
clienttranslate("The Thief may target his current space, spending 1 Action cube each time."),
clienttranslate("(/Tiles revealed by the Knight are worth Grit as if she had revealed them normally. Place Event tokens on any Event tiles revealed./)"),
),
"quote" => clienttranslate("May this be a light for you, when all else falls dark.")
),
"goblin-infestation" => array(
"card_name" => clienttranslate("Goblin Infestation"),
"description" => array(
clienttranslate("Whenever you must resolve an Ambush tile or /Ambush/ Event card, resolve the attack by comparing your Strength to the ambusher's Strength,as below. (/You may assign more Hero cubes to Strength before resolving the attack./)"),
clienttranslate("*A. Normal Goblins:* STR 2"),
clienttranslate("*B. Tough Goblins:* STR 3"),
clienttranslate("*C. Monsters:* Draw a Monster, see AMBUSH"),
"<hr />",
clienttranslate("*Your Strength Is Higher:*"),
clienttranslate("/Lose no Health. Do not resolve Monster text./"),
clienttranslate("*Strengths Are Equal:* /Roll the Dragon die./"),
clienttranslate("/If it affects the center tile, lose 1 Health and resolve the Monster's Ambush text (if any)/."),
clienttranslate("Your Strength Is Lower: Lose 1 Health and resolve the Monster's Ambush text (if any)."),
),
"quote" => clienttranslate("Goblins? There are no goblins in this cave!")
),
"past-plunder" => array(
"card_name" => clienttranslate("Past Plunder"),
"description" => array(
clienttranslate("At the end of your turn, place a Treasure token on any Dark tile with no components on it. If there is no such tile, draw a new tile and place it next to any Dark tile, then place the Treasure token on the new tile. (/If all Dark tiles have collapsed, place the token on a Lit tile instead./)"),
),
"quote" => clienttranslate("You'd be surprised what you can find in places like this if you keep your eyes open.")
),
"the-cave-grows" => array(
"card_name" => clienttranslate("The Cave Grows..."),
"description" => array(
clienttranslate("The Cave places 1 tile on its turn."),
clienttranslate("If there is no Cave player, each player places 1 tile at the end of their own turn."),
clienttranslate("Flip this card over when the last Cave tile is placed. The Collapse begins on the next turn."),
),
"quote" => clienttranslate("Legends say this cave stretches to eternity. No one has ever proven them wrong.")
),
"the-cave-is-collapsing" => array(
"card_name" => clienttranslate("The Cave Is Collapsing!"),
"description" => array(
clienttranslate("The Cave collapses 3 tiles on its turn."),
clienttranslate("If there is no Cave player, each player collapses 3 tiles at the end of their own turn."),
clienttranslate("If 5 Crystal tiles have collapsed, the Cave wins and all other players lose."),
clienttranslate("/Remove tiles that touch only 1 tile first, then remove tiles that touch only 2 tiles./"),
clienttranslate("/The Entrance tile can never be collapsed./"),
clienttranslate("/If any other token is on a collapsed tile, it is returned to its player's supply./"),
clienttranslate("/Crystal tokens removed by collapsing tiles do not count toward *any* victory conditions./"),
clienttranslate("/For more details, see *The Collapse* on page 4 of the rulebook./"),
),
"quote" => clienttranslate("Sir, it's quite possible this cave is not entirely stable...")
),
);
// Knight!
// Sidequests
$this->sidequest_cards = array(
"stalwart" => array(
"card_name" => clienttranslate("Stalwart"),
"description" => clienttranslate("Attack a Goblin Tribe with a Population of 3 or greater. If there is no Goblin player, resolve 2 ambush tiles or /Ambush/ cards, in any combination, during one turn instead."),
"quote" => clienttranslate("Come and get it, you little creeps!"),
"reward" => 5,
"sprite" => 0,
),
"intrepid" => array(
"card_name" => clienttranslate("Intrepid"),
"description" => clienttranslate("Reveal this card when 10 or more Cave tiles have been revealed. /Terrain tiles do not count/."),
"quote" => clienttranslate("Heeeere dragon, dragon, dragon..."),
"reward" => 3,
"sprite" => 1,
),
"daring" => array(
"card_name" => clienttranslate("Daring"),
"description" => clienttranslate("Attack a Goblin Tribe with a Monster, attack the Dragon successfully, or attack and kill the Thief."),
"quote" => clienttranslate("I didn't come all this way to die in the dark!"),
"reward" => 4,
"sprite" => 2,
),
"fearless" => array(
"card_name" => clienttranslate("Fearless"),
"description" => clienttranslate("Reveal a Dark tile with a Goblin Tribe on it, then attack the Tribe on the same Encounter. If there is no Goblin player, instead resolve an Ambush tile or /Ambush/ card, attacking a Monster and losing no Health. (/You may draw a Monster instead of fighting Normal or Tough Goblins./)"),
"quote" => clienttranslate("I don't need to see you to strike you down!"),
"reward" => 4,
"sprite" => 7,
),
"cunning" => array(
"card_name" => clienttranslate("Cunning"),
"description" => clienttranslate("Attempt to collect a Dragon Gem. If there is no Dragon player, collect 2 Treasure tokens during one turn instead."),
"quote" => clienttranslate("Well, well, what do we have here...?"),
"reward" => 3,
"sprite" => 8,
),
"bedecked" => array(
"card_name" => clienttranslate("Bedecked"),
"description" => clienttranslate("Reveal this card when you have at least two face-up Treasure cards."),
"quote" => clienttranslate("You never know which trinket stands between you and a fiery, painful death, I always say."),
"reward" => 4,
"sprite" => 9,
),
"adventurous" => array(
"card_name" => clienttranslate("Adventurous"),
"description" => clienttranslate("Face 3 Encounters, each on a different space, during one turn."),
"quote" => clienttranslate("Is that all you've got?"),
"reward" => 6,
"sprite" => 3,
),
"swift" => array(
"card_name" => clienttranslate("Swift"),
"description" => clienttranslate("Move 7 or more different spaces during one turn."),
"quote" => clienttranslate("The best defense is a good offense, but when that doesn't work, RUN!"),
"reward" => 4,
"sprite" => 10,
),
"eagle-eyed" => array(
"card_name" => clienttranslate("Eagle-Eyed"),
"description" => clienttranslate("Shoot another player with the Bow or the Enchanted Bow."),
"quote" => clienttranslate("Gotcha!"),
"reward" => 3,
"sprite" => 4,
),
"persistent" => array(
"card_name" => clienttranslate("Persistent"),
"description" => clienttranslate("Reveal this card when 3 Crystal tokens have been smashed."),
"quote" => clienttranslate("Three down, two to go..."),
"reward" => 4,
"sprite" => 11,
)
);
// Treasure!
$this->treasure_cards = array(
"javelin" => array(
"card_name" => clienttranslate("Javelin"),
"description" => array(
clienttranslate("When used, your next attack may target the Dragon while he is underground without using a Bomb, and you gain +1 Strength on your next attack. Remove the Javelin from the game after resolving its effects. (/Doesn't require a Hero cube to use. Cannot be used on the same turn as a Bomb./)."),
),
"quote" => clienttranslate("The favorite weapon of Jodbar the Left-Handed. Believed to be lost forever when Jodbar threw it twelve miles on a dare."),
"cube_slots" => 0,
"sprite" => 14,
),
"elvish-sword" => array(
"card_name" => clienttranslate("Elvish Sword"),
"description" => array(
clienttranslate("+1 Perception."),
clienttranslate("+1 Strength during your turn only."),
),
"quote" => clienttranslate("It appears to be of great antiquity."),
"cube_slots" => 1,
"sprite" => 15,
),
"mighty-axe" => array(
"card_name" => clienttranslate("Mighty Axe"),
"description" => array(
clienttranslate("+1 Strength during your turn only."),
clienttranslate("When attacking the Dragon, you may discard the Hero cube on this card to remove another Health. (/Cannot be used with a Bomb. Place the discarded cube on the Discarded Hero Cubes space on your player board./)"),
),
"quote" => clienttranslate("Carved with sigils of great power, and heavy—strangely heavy..."),
"cube_slots" => 1,
"sprite" => 16,
),
"potion-kit" => array(
"card_name" => clienttranslate("Potion Kit"),
"description" => array(
clienttranslate("Discard the Hero cube on this card and remove this card from the game to regain 2 Health. (/Place the discarded cube on the Discarded Hero Cubes space on your player board./)"),
),
"quote" => clienttranslate("Comes with recipes for healing salve, the Crystal Cavern Cocktail, and lizardnoodle soup."),
"cube_slots" => 1,
"sprite" => 17,
),
"heroic-boots" => array(
"card_name" => clienttranslate("Heroic Boots"),
"description" => array(
clienttranslate("+4 Movement."),
),
"quote" => clienttranslate("Calen the Swift wore these. It seems now the mystery of her disappearance is solved..."),
"cube_slots" => 1,
"sprite" => 18,
),
"pixie-lantern" => array(
"card_name" => clienttranslate("Pixie Lantern"),
"description" => array(
clienttranslate("+1 Movement."),
clienttranslate("+1 Perception."),
),
"quote" => clienttranslate("It doesn't seem like a good idea to let them out. You know how pixies are."),
"cube_slots" => 1,
"sprite" => 5,
),
"enchanted-bow" => array(
"card_name" => clienttranslate("Enchanted Bow"),
"description" => array(
clienttranslate("Shoot the Dragon or Thief up to 5 tiles away in a straight line, even if underground or if there are walls or Dark tiles between. The Dragon chooses and discards Power cards equal in number to your Strength - 1 (Max: 3). The Thief is killed if your Perception is greater than his Stealth. (/May be used before, during, or after movement./)"),
),
"quote" => clienttranslate("Made from the bones of some ancient creature. Oddly warm to the touch."),
"cube_slots" => 1,
"sprite" => 12,
),
);
// Events!
$this->event_cards = array(
"ambush" => array(
"card_name" => clienttranslate("Ambush"),
"description" => array(
"",
),
"quote" => array(
clienttranslate("A quiet crevice, made for lurking."),
clienttranslate("A dark corner, ideal for creeping."),
clienttranslate("A large boulder, perfect for skulking."),
clienttranslate("A shadowy ledge, great for sneaking."),
),
"copies" => 4,
"sprite" => 19,
),
"light" => array(
"card_name" => clienttranslate("Light"),
"description" => array(
clienttranslate("The Knight may discard a Hero cube to regain 2 Health. (/Place the cube on the Discarded Hero Cubes space on the Knight's player board./)"),
),
"quote" => array(
clienttranslate("A shaft of sunlight from the world above."),
),
"copies" => 1,
"sprite" => 21,
),
"vantage-point" => array(
"card_name" => clienttranslate("Vantage Point"),
"description" => array(
clienttranslate("Reveal all Dark tiles surrounding the Knight. (/The revealed tiles are worth Grit as if they had been revealed normally. Place Event tokens on any Event tiles revealed./)"),
),
"quote" => array(
clienttranslate("A high outcropping with a long, clear view."),
),
"copies" => 1,
"sprite" => 22,
),
"fresh-air" => array(
"card_name" => clienttranslate("Fresh Air"),
"description" => array(
clienttranslate("The Knight may spend a Hero cube to regain 1 Health. She regains the cube on her next turn."),
),
"quote" => array(
clienttranslate("A breeze, smelling of spring air and growing things."),
),
"copies" => 1,
"sprite" => 23,
),
"fresh-water" => array(
"card_name" => clienttranslate("Fresh Water"),
"description" => array(
clienttranslate("The Knight may spend a Hero cube to regain 1 Health. She regains the cube on her next turn."),
),
"quote" => array(
clienttranslate("A clear, splashing stream, cool and pure."),
),
"copies" => 1,
"sprite" => 24,
),
"cave-bread" => array(
"card_name" => clienttranslate("Cave Bread"),
"description" => array(
clienttranslate("The Knight regains 1 Hero cube from the Discarded Hero Cubes space on her player board. (/If none available, take one from the highest-numbered space on the Grit track./)"),
),
"quote" => array(
clienttranslate("Some old adventurer's rations, strangely unspoiled and heartening."),
),
"copies" => 1,
"sprite" => 25,
),
"rats" => array(
"card_name" => clienttranslate("Rats"),
"description" => array(
clienttranslate("The Knight loses 2 Grit."),
),
"quote" => array(
clienttranslate("You are bitten by a large and oily rat."),
),
"copies" => 3,
"sprite" => 26,
),
"deep-and-dark" => array(
"card_name" => clienttranslate("Deep and Dark"),
"description" => array(
clienttranslate("The Cave draws 2 Omen tokens."),
clienttranslate("If there is no Cave player, the Knight gains a Treasure card instead.")
),
"quote" => array(
clienttranslate("A maze of twisty little passages, all alike."),
clienttranslate("A little maze of twisty passages, all different."),
clienttranslate("A twisty little maze of passages, all alike."),
),
"copies" => 3,
"sprite" => 6,
),
);
// Goblins!
// War!
$this->war_cards = array(
"thirst" => array(
"card_name" => clienttranslate("Thirst"),
"fangs" => 3,
"bones" => 2,
"eyes" => 1,
"monsters" => 1,
"secrets" => 0,
"rage" => 0,
"quote" => clienttranslate("We're starvinghungry! When's bellyfull time?"),
),
"spite" => array(
"card_name" => clienttranslate("Spite"),
"fangs" => 2,
"bones" => 1,
"eyes" => 2,
"monsters" => 0,
"secrets" => 1,
"rage" => 0,
"quote" => clienttranslate("Let's make some troublefights."),
),
"consumption" => array(
"card_name" => clienttranslate("Consumption"),
"fangs" => 1,
"bones" => 3,
"eyes" => 2,
"monsters" => 1,
"secrets" => 0,
"rage" => 0,
"quote" => clienttranslate("Onwardly, to the glorious afternap!"),
),
"desolation" => array(
"card_name" => clienttranslate("Desolation"),
"fangs" => 1,
"bones" => 2,
"eyes" => 2,
"monsters" => 1,
"secrets" => 1,
"rage" => 0,
"quote" => clienttranslate("Passawordalong - we're fighthunting fresh knight!"),
),
"waste" => array(
"card_name" => clienttranslate("Waste"),
"fangs" => 2,
"bones" => 1,
"eyes" => 3,
"monsters" => 0,
"secrets" => 1,
"rage" => 0,
"quote" => clienttranslate("Here we come, quickish and scarylike."),
),
"ruin" => array(
"card_name" => clienttranslate("Ruin"),
"fangs" => 2,
"bones" => 2,
"eyes" => 1,
"monsters" => 1,
"secrets" => 0,
"rage" => 0,
"quote" => clienttranslate("Hurryfast, let's go-go-go huntfighting!"),
),
"hate" => array(
"card_name" => clienttranslate("Hate"),
"fangs" => 2,
"bones" => 2,
"eyes" => 2,
"monsters" => 0,
"secrets" => 0,
"rage" => 0,
"quote" => clienttranslate("No, YOU lookalike a leaf-eating elf-face, you elfing ELF-BABY!"),
),
"fear" => array(
"card_name" => clienttranslate("Fear"),
"fangs" => 1,
"bones" => 1,
"eyes" => 1,
"monsters" => 1,
"secrets" => 2,
"rage" => 0,
"quote" => clienttranslate("What's that sound? You go tiptoe down the darkscary tunnel and take a look alonewise."),
),
"desperation" => array(
"card_name" => clienttranslate("Desperation"),
"fangs" => 0,
"bones" => 0,
"eyes" => 0,
"monsters" => 3,
"secrets" => 3,
"rage" => 1,
"quote" => clienttranslate("These tunnelholes are ours - only crazyfools come here."),
),
"pain" => array(
"card_name" => clienttranslate("Pain"),
"fangs" => 1,
"bones" => 1,
"eyes" => 1,
"monsters" => 0,
"secrets" => 0,
"rage" => 1,
"quote" => clienttranslate("Oh, for a bowl of lizard soup like greathalf-step-gobmommy used to make."),
),
);
// Monsters!
$this->monster_cards = array(
"pet-frog" => array(
"card_name" => clienttranslate("Pet Frog"),
"description" => array(
clienttranslate("When the Population of this Tribe reaches 4, ignore any further Goblin discs that would be added to it. (/This Tribe cannot cause overpopulation./) Also, malaise does not decrease this Tribe's Strength."),
),
"ambush_text" => "",
"ambush_str" => 2,
"quote" => clienttranslate("Joinfollow our tribe! We got a mascot!"),
"sprite" => 1,
),
"ogre" => array(
"card_name" => clienttranslate("Ogre"),
"description" => array(
clienttranslate("This Tribe gets +1 Strength."),
),
"ambush_text" => clienttranslate("You must move to an adjacent, unoccupied non-Dark space. Then, place the Ogre's Monster token on the space which caused the ambush, with this card nearby. You must attack and defeat the Ogre to enter the space."),
"ambush_str" => 4,
"quote" => clienttranslate("CRUSHING TIME?"),
"sprite" => 2,
),
"troll" => array(
"card_name" => clienttranslate("Troll"),
"description" => array(
clienttranslate("This Tribe gets +1 Strength."),
),
"ambush_text" => clienttranslate("Place the Canyon tile if it is not already in play (even if you are not using Terrain tiles), then place the Troll's Monster token on the bridge space, with this card nearby. You must fight and defeat the Troll to cross."),
"ambush_str" => 4,
"quote" => clienttranslate("Who's that clank-clanking over my bridge?"),
"sprite" => 6,
),
"golem" => array(
"card_name" => clienttranslate("Golem"),
"description" => array(
clienttranslate("This Tribe can move through walls."),
),
"ambush_text" => clienttranslate("Place the Golem face-up on your player board. For the rest of the game, each use of the Ancient Map requires 2 Hero cubes instead of 1."),
"ambush_str" => 3,
"quote" => clienttranslate("...I... ...O...B...E...Y..."),
"sprite" => 7,
),
"gnome" => array(
"card_name" => clienttranslate("Gnome"),
"description" => array(
clienttranslate("When this Tribe uses the Reveal action, you may place its piece on a Dark tile with any Tribe's symbol."),
clienttranslate("After this Tribe plunders a Treasure or Dragon Gem token, you may place its piece on an unoccupied Dark tile with any Tribe's symbol.")
),
"ambush_text" => clienttranslate("Discard a Treasure card at random."),
"ambush_str" => 3,
"quote" => clienttranslate("Sneaky is as tricky does, grandpap always used to say!"),
"sprite" => 8,
),
"wisp" => array(
"card_name" => clienttranslate("Wisp"),
"description" => array(
clienttranslate("While this Tribe is activated but before it takes an action, you may move the Knight up to 3 spaces in any direction. You may only do this if the Knight is visible to the Tribe, and only once per turn."),
),
"ambush_text" => "",
"ambush_str" => -1,
"quote" => clienttranslate("...remember me...this way...can you see me...? ...come on, I'll show you..."),
"sprite" => 3,
),
"bright-beetles" => array(
"card_name" => clienttranslate("Bright Beetles"),
"description" => array(
clienttranslate("When this Tribe scatters, it loses one less Population. When this Tribe would lose Population by other effects, you may discard Bright Beetles to lose one less Population."),
),
"ambush_text" => clienttranslate("Place Bright Beetles face-up near the Monster deck. Add +1 STR to the next Monster drawn, then discard Bright Beetles."),
"ambush_str" => 3,
"quote" => clienttranslate("*clk-clk* *skitter*"),
"sprite" => 9,
),
"underworm" => array(
"card_name" => clienttranslate("Underworm"),
"description" => array(
clienttranslate("When you activate this Tribe, during its movement it can move up to 2 tiles once in one diagonal direction, ignoring all tiles and walls in between."),
),
"ambush_text" => clienttranslate("Move diagonally to the nearest Dark tile (place one if needed) and then reveal the tile as part of the same Encounter."),
"ambush_str" => 2,
"quote" => clienttranslate("Walkstep without rhythm, and you won't attractify the worm."),
"sprite" => 4,
),
"blob" => array(
"card_name" => clienttranslate("Blob"),
"description" => array(
clienttranslate("If this Tribe uses the Attack action against the Knight, the Knight also loses 5 Grit."),
),
"ambush_text" => clienttranslate("Lose 5 Grit."),
"ambush_str" => 3,
"quote" => clienttranslate("Gluuuuurrrgghhh..."),
"sprite" => 10,
),
"flame-giant" => array(
"card_name" => clienttranslate("Flame Giant"),
"description" => array(
clienttranslate("This Tribe gets +1 Strength."),
),
"ambush_text" => clienttranslate("If your strength is 3 or lower, you lose another Health."),
"ambush_str" => 4,
"quote" => clienttranslate("Flee fire, foe fum... I smell the blood of a wandering knight."),
"sprite" => 12,
),
);
// Secrets!
$this->secret_cards = array(
"secret-tunnels" => array(
"card_name" => clienttranslate("Secret Tunnels"),
"description" => array(
clienttranslate("During this turn, whenever you activate a revealed Tribe, you may immediately place its piece on any unoccupied Dark tile. If you do so, you cannot move the Tribe by any other effect this turn, but it may still perform its action."),
),
"quote" => clienttranslate("Come-along thisaway, sneakylike."),
"sprite" => 13,
),
"cave_in" => array(
"card_name" => clienttranslate("Cave-In"),
"description" => array(
clienttranslate("Collapse a number of tiles up to the Eye Tribe's Population. You cannot collapse tiles containing other players or Crystal tokens."),
),
"quote" => clienttranslate("Whoopsies."),
"sprite" => 14,
),
"poison" => array(
"card_name" => clienttranslate("Poison"),
"description" => array(
clienttranslate("When a Tribe uses the Attack action against the Knight, she must also place a Hero cube on the Entrance tile. If the Tribe's Strength was greater than the Knight's by two or more, she places 2 Hero cubes instead. She regains these cubes if she enters the Entrance tile.")
),
"quote" => clienttranslate("It's an oldtimes family recipe."),
"sprite" => 15,
),
"leader" => array(
"card_name" => clienttranslate("Leader"),
"description" => array(
clienttranslate("During overpopulation, you may prevent a Tribe from scattering."),
),
"quote" => clienttranslate("Followchase me, my Tribegoblins! I'll lead us to dinnertime and the glorious afternap!"),
"sprite" => 6,
),
"goblin-ruby" => array(
"card_name" => clienttranslate("Goblin Ruby"),
"description" => array(
clienttranslate("Place this card face-up on the table."),
clienttranslate("*-1 Perception (All Tribes)*"),
clienttranslate("Once per turn, immediately after drawing War, Monster, or Secrets cards, you may discard and redraw one card. Discard /Goblin Ruby/ when any Tribe's Population decreases to 0."),
),
"quote" => clienttranslate("Ain't it the prettyshiniest thing you ever did see?"),
"sprite" => 16,
),
"blind-fury" => array(
"card_name" => clienttranslate("Blind Fury"),
"description" => array(
clienttranslate("Pick a Tribe. During this turn, it moves through Lit tiles without losing Population."),
),
"quote" => clienttranslate("There's nothing to be fearscared of but light itself!"),
"sprite" => 11,
),
"fire-bomber" => array(
"card_name" => clienttranslate("Fire Bomber"),
"description" => array(
clienttranslate("Pick a Tribe. During this turn, it gets +2 Strength. If it uses the Attack action during this turn, decrease its Population to 0 after resolving."),
),
"quote" => clienttranslate("I like it when it goes ticktickticktickticktickBOOM."),
"sprite" => 17,
),
"hex" => array(
"card_name" => clienttranslate("Hex"),
"description" => array(
clienttranslate("Choose a player to hex. In each effect, /X/ equals the Eye Tribe's Population."),
clienttranslate("*Knight:* Lose /X/ Grit."),
clienttranslate("*Dragon:* Discard /X/ Power cards (/Dragon chooses/)."),
clienttranslate("*Cave*: Discard /X/ Omen tokens (/Cave chooses/)."),
clienttranslate("*Thief:* Decrease Stealth by /X/ until the Goblins' next turn."),
),
"quote" => clienttranslate("Boil, boil and... yeah just keep boiling."),
"sprite" => 18,
),
"trap" => array(
"card_name" => clienttranslate("Trap"),
"description" => array(
clienttranslate("Place this card face-up on the table."),
clienttranslate("When any Tribe is attacked, it gets +1 Strength and +1 Perception until the attack resolves, then discard this card. When any Tribe is targeted by a Dragon power, you may discard this card to ignore that power."),
),
"quote" => clienttranslate("Oh NO, the bigscary KNIGHT is coming! What are we poorwiddle helpless Gobbies gonna doooo?"),
"sprite" => 19,
),
"hiding-spots" => array(
"card_name" => clienttranslate("Hiding Spots"),
"description" => array(
clienttranslate("A hidden Tribe may use the Attack action against the Knight if she is on or adjacent to an Ambush tile. During this action, do not apply any effects from Monster cards or other Secrets cards."),
),
"quote" => clienttranslate("Hushquiet! Time for some creepery."),
"sprite" => 20,
),
);
// Dragon!
// Powers
$this->power_cards = array(
"claw" => array(
"card_name" => clienttranslate("Claw"),
"quote" => array(
clienttranslate("Krraaaaarrrrr!!"),
clienttranslate("Rrraaagghhh!!"),
clienttranslate("Hooaaaarrrrggghhhh!!"),
clienttranslate("Mmmrrrrrrggggghh!!"),
clienttranslate("Rrrraaaaoooaaooowwwwrrrr!!"),
clienttranslate("WwrrRRAaarrrraarrrraar!!"),
),
"copies" => 6,
"sprite" => 0,
),
"flame" => array(
"card_name" => clienttranslate("Flame"),
"quote" => array(
clienttranslate("HissssSSSssSSsss..."),
clienttranslate("Ssshshsaasasss..."),
clienttranslate("Sssrrreeeesssskk..."),
clienttranslate("Ssshhhrraaaaaggggghh..."),
clienttranslate("Khrrraaarrgghhh..."),
clienttranslate("Shhhhsssshhshsssss..."),
),
"copies" => 6,
"sprite" => 1,
),
"wing" => array(
"card_name" => clienttranslate("Wing"),
"quote" => array(
clienttranslate("Kraka-KA!!"),
clienttranslate("MmmrroOOWK!!"),
clienttranslate("GrreeeooOOOORRRGH!!"),
clienttranslate("A-a-a-a-a-aARK!"),
clienttranslate("Keeeaaa!!"),
clienttranslate("GRA-gra-GRAKK!!"),
),
"copies" => 6,
"sprite" => 2,
),
);