37 lines
980 B
Ruby
37 lines
980 B
Ruby
require 'squib'
|
|
require 'game_icons'
|
|
|
|
AUDIENCE = GameIcons.get('delapouite/person').
|
|
recolor(fg: 'black', bg: 'white', fg_opacity: 1.0, bg_opacity: 0.0).
|
|
string
|
|
MUSIC = GameIcons.get('delapouite/musical-score').
|
|
recolor(fg: 'black', bg: 'white', fg_opacity: 1.0, bg_opacity: 0.0).
|
|
string
|
|
|
|
data = Squib.yaml file: 'data.yml'
|
|
|
|
Squib::Deck.new(cards: 18) do
|
|
use_layout file: 'economy.yml'
|
|
use_layout file: 'layout.yml'
|
|
background color: 'white'
|
|
cut_zone
|
|
safe_zone
|
|
|
|
text layout: :title, str: data.name
|
|
|
|
svg layout: :art, data: MUSIC
|
|
|
|
rect layout: :description
|
|
text layout: :description, str: data.effect.zip(data.blurb).map { |e, b|
|
|
"#{e}#{b ? "\n<i>#{b}</i>" : nil}"
|
|
} do |embed|
|
|
embed.svg key: '{a}', width: 32, height: 32, data: AUDIENCE
|
|
end
|
|
text layout: :type, markup: true, str: data.volume.map { |v| "<b><i>#{v}</i></b>" }
|
|
|
|
save format: :png
|
|
save_sheet prefix: "sheet",
|
|
columns: 5, rows: 4, trim: '0.125in', count_format: ''
|
|
|
|
end
|