require 'squib' require 'game_icons' module Icons def self.getIcon(name, color = 'black') return GameIcons.get(name). recolor(fg: color, bg: 'white', fg_opacity: 1.0, bg_opacity: 0.0). string end AUDIENCE = getIcon 'delapouite/person' MUSIC = getIcon 'delapouite/musical-score' LOVE = getIcon 'skoll/hearts' ANGER = getIcon 'skoll/fist' JOY = getIcon 'lorc/delighted' SAD = getIcon 'lorc/tear-tracks' end VOLUMES = { "ppp" => 1, "pp" => 2, "p" => 3, "mp" => 4, "mf" => 5, "f" => 6, "ff" => 7, "fff" => 8, } 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#{b}" : nil}" } do |embed| embed.svg key: '{a}', width: 32, height: 32, data: AUDIENCE end text layout: :type, markup: true, str: data.volume.map { |v| "#{v} (#{VOLUMES[v]})" } save format: :png save_sheet prefix: "sheet", columns: 5, rows: 4, trim: '0.125in', count_format: '' end