Merge branch 'main' of https://git.msoucy.me/msoucy/18cards
This commit is contained in:
commit
9c9fe3e37d
@ -3,7 +3,7 @@
|
|||||||
You are all mages competing to put on the flashiest magic display for the festival!
|
You are all mages competing to put on the flashiest magic display for the festival!
|
||||||
Arrange the elements to put on a good show.
|
Arrange the elements to put on a good show.
|
||||||
|
|
||||||
Take the three border cards and deal each one faceup.
|
Shuffle the three nexus cards, flipping some upside down during shuffling, and deal each one faceup.
|
||||||
Place the left elements in the fixed hexes on the corners in clockwise order from the top.
|
Place the left elements in the fixed hexes on the corners in clockwise order from the top.
|
||||||
Place the right elements in the fixed hexes on the corners in clockwise order from the bottom.
|
Place the right elements in the fixed hexes on the corners in clockwise order from the bottom.
|
||||||
|
|
||||||
@ -16,6 +16,7 @@ Place the elements in a hex connected to the mage by other filled hexes, in eith
|
|||||||
|
|
||||||
If either of the following elements are touching, cross them out.
|
If either of the following elements are touching, cross them out.
|
||||||
They have nullified each other.
|
They have nullified each other.
|
||||||
|
For reference, these pairs are on the nexus cards.
|
||||||
|
|
||||||
- Light and Dark
|
- Light and Dark
|
||||||
- Fire and Water
|
- Fire and Water
|
||||||
@ -25,11 +26,11 @@ When all 15 mana cards have been flipped, the festival is over.
|
|||||||
See how the audience liked your display with the following rules.
|
See how the audience liked your display with the following rules.
|
||||||
Do not count nullified elements.
|
Do not count nullified elements.
|
||||||
|
|
||||||
- Light = 3 points if not touching other Light
|
- Light = 3 points for each cluster
|
||||||
- Light shines brightest on its own
|
- Light shines brightest on its own
|
||||||
- Dark = 3 points for each hex in the cluster after the first
|
- Dark = 3 points for each hex in the cluster after the first
|
||||||
- Darkness tries to swallow everything
|
- Darkness tries to swallow everything
|
||||||
- Fire = 2 points for each adjacent Fire
|
- Fire = 2 points for each connection between adjacent fire hexes
|
||||||
- Fire grows and burns
|
- Fire grows and burns
|
||||||
- Water = 3 times length for straight line of 3 or more
|
- Water = 3 times length for straight line of 3 or more
|
||||||
- Water flows like a river
|
- Water flows like a river
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
left,right
|
title,left,right
|
||||||
light,dark
|
mana,light,dark
|
||||||
light,fire
|
mana,light,fire
|
||||||
light,water
|
mana,light,water
|
||||||
light,earth
|
mana,light,earth
|
||||||
light,air
|
mana,light,air
|
||||||
dark,fire
|
mana,dark,fire
|
||||||
dark,water
|
mana,dark,water
|
||||||
dark,earth
|
mana,dark,earth
|
||||||
dark,air
|
mana,dark,air
|
||||||
fire,water
|
mana,fire,water
|
||||||
fire,earth
|
mana,fire,earth
|
||||||
fire,air
|
mana,fire,air
|
||||||
water,earth
|
mana,water,earth
|
||||||
water,air
|
mana,water,air
|
||||||
earth,air
|
mana,earth,air
|
||||||
light,dark
|
nexus,light,dark
|
||||||
fire,water
|
nexus,fire,water
|
||||||
earth,air
|
nexus,earth,air
|
|
@ -1,5 +1,14 @@
|
|||||||
require 'squib'
|
require 'squib'
|
||||||
|
|
||||||
|
element_descs = {
|
||||||
|
"light" => "3 per cluster",
|
||||||
|
"dark" => "3 each after first in clusters",
|
||||||
|
"fire" => "2 points per connected pair",
|
||||||
|
"water" => "3 times length for straight line of 3+",
|
||||||
|
"earth" => "4 per triangle cluster",
|
||||||
|
"air" => "3 points for each curve in line"
|
||||||
|
}
|
||||||
|
|
||||||
Squib::Deck.new(cards: 18, layout: 'layout.yml', width: '3.5in', height: '2.5in') do
|
Squib::Deck.new(cards: 18, layout: 'layout.yml', width: '3.5in', height: '2.5in') do
|
||||||
|
|
||||||
data = csv file: 'data.csv'
|
data = csv file: 'data.csv'
|
||||||
@ -11,15 +20,28 @@ Squib::Deck.new(cards: 18, layout: 'layout.yml', width: '3.5in', height: '2.5in'
|
|||||||
text layout: :title, str: 'Border', align: :center, range: (15..17)
|
text layout: :title, str: 'Border', align: :center, range: (15..17)
|
||||||
|
|
||||||
svg layout: :leftSymbol, width: 200, file: data.left.map { |elem| "images/#{elem}.svg" }
|
svg layout: :leftSymbol, width: 200, file: data.left.map { |elem| "images/#{elem}.svg" }
|
||||||
text layout: :leftText, str: data.left, align: :center, ellipsize: :autoscale
|
text layout: :leftText, str: data.left
|
||||||
|
text layout: :leftDescription, str: data.left.map { |elem| element_descs[elem] }
|
||||||
svg layout: :rightSymbol, width: 200, file: data.right.map { |elem| "images/#{elem}.svg" }
|
svg layout: :rightSymbol, width: 200, file: data.right.map { |elem| "images/#{elem}.svg" }
|
||||||
text layout: :rightText, str: data.right, align: :center, ellipsize: :autoscale
|
text layout: :rightText, str: data.right
|
||||||
|
text layout: :rightDescription, str: data.right.map { |elem| element_descs[elem] }
|
||||||
|
|
||||||
save format: :png, prefix: 'card_'
|
save format: :png, prefix: 'card_'
|
||||||
save_pdf trim: 37.5, file: 'pnp.pdf'
|
save_pdf trim: 37.5, file: 'pnp.pdf'
|
||||||
end
|
end
|
||||||
|
|
||||||
Squib::Deck.new(cards: 1, width: '3in', height: '4in') do
|
Squib::Deck.new(cards: 6, width: '3in', height: '4in') do
|
||||||
rect
|
rect
|
||||||
|
|
||||||
|
svg x: '0.5in', y: '0.5in', width: '2.0in', height: '2.0in', file: 'images/hexgrid.svg'
|
||||||
|
|
||||||
|
text x: '0.5in', y: '2.75in', width: '2in', height: '0.5in', str: 'Scoring', align: :center
|
||||||
|
(0..6).each do |i|
|
||||||
|
rect x: inches(0.5) + i * inches(2.0/7.0), y: '3.0in', width: '0.25in', height: '0.25in'
|
||||||
|
rect x: inches(0.5) + i * inches(2.0/7.0), y: '3.25in', width: '0.25in', height: '0.25in'
|
||||||
|
end
|
||||||
|
star x: inches(0.5) + 6 * inches(2.0/7.0) + inches(0.125), y: '3.125in',
|
||||||
|
outer_radius: '0.125in', inner_radius: inches(1.0/16.0), angle: '270deg'
|
||||||
|
|
||||||
save_pdf trim: 37.5, file: 'player.pdf'
|
save_pdf trim: 37.5, file: 'player.pdf'
|
||||||
end
|
end
|
Binary file not shown.
Before Width: | Height: | Size: 77 KiB |
1
2022/05-gencant/images/hexgrid.svg
Normal file
1
2022/05-gencant/images/hexgrid.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 20 KiB |
@ -6,27 +6,43 @@ title:
|
|||||||
|
|
||||||
leftSymbol:
|
leftSymbol:
|
||||||
x: 200
|
x: 200
|
||||||
y: 300
|
y: 200
|
||||||
width: 200
|
width: 200
|
||||||
height: 200
|
height: 200
|
||||||
|
|
||||||
leftText:
|
leftText:
|
||||||
x: 200
|
x: 200
|
||||||
y: 500
|
y: 400
|
||||||
width: 200
|
width: 200
|
||||||
height: 60
|
height: 60
|
||||||
|
align: center
|
||||||
|
ellipsize: autoscale
|
||||||
|
|
||||||
|
leftDescription:
|
||||||
|
extends: leftText
|
||||||
|
y: += 100
|
||||||
|
align: center
|
||||||
|
ellipsize: autoscale
|
||||||
|
|
||||||
rightSymbol:
|
rightSymbol:
|
||||||
x: 600
|
x: 600
|
||||||
y: 300
|
y: 200
|
||||||
width: 200
|
width: 200
|
||||||
height: 200
|
height: 200
|
||||||
|
|
||||||
rightText:
|
rightText:
|
||||||
x: 600
|
x: 600
|
||||||
y: 500
|
y: 400
|
||||||
width: 200
|
width: 200
|
||||||
height: 60
|
height: 60
|
||||||
|
align: center
|
||||||
|
ellipsize: autoscale
|
||||||
|
|
||||||
|
rightDescription:
|
||||||
|
extends: rightText
|
||||||
|
y: += 100
|
||||||
|
align: center
|
||||||
|
ellipsize: autoscale
|
||||||
|
|
||||||
# The "cut line", without rounded corners
|
# The "cut line", without rounded corners
|
||||||
cut:
|
cut:
|
||||||
|
Loading…
Reference in New Issue
Block a user