Awakened2069/writeup.rb

104 lines
2.2 KiB
Ruby
Raw Normal View History

2019-06-13 17:42:18 -04:00
require "prawn"
require "prawn/table"
require "pry"
class Prawn::Document
def background_color(color)
tmp_color = fill_color
canvas do
fill_color color
fill_rectangle [bounds.left, bounds.top], bounds.right, bounds.top
end
fill_color tmp_color
end
end
class Awakened2069
FONT_SIZE_CHAPTER = 48
FONT_SIZE_BODY = 10
attr_accessor :pdf, :chapter_title
def start_chapter(chapter_name)
@chapter_title = chapter_name
puts "Starting #{chapter_title}"
pdf.start_new_page
pdf.outline.update do
puts "\tAdding #{@awakened2069.chapter_title} on page #{page_number}"
section(@chapter_title, :destination => page_number)
end
puts "\tSetting font size"
pdf.font_size Awakened2069::FONT_SIZE_CHAPTER
pdf.font "Abess"
puts "\tPrinting chapter to document"
pdf.text chapter_title, :align => :center
puts "\tRestoring body text"
pdf.font "Goudy"
pdf.font_size FONT_SIZE_BODY
end
def generate
@pdf = Prawn::Document.new(:margin => 0)
pdf.font_families.update(
"Goudy" => {
:normal => "goudy.ttf",
:bold => "goudy-bold.ttf",
:italic => "goudy-italic.ttf"
},
"Abess" => {
:normal => "abess.ttf"
},
"Lilith" => {
:normal => "lilith.ttf"
},
"Goblin Hand" => {
:normal => "VTCGoblinHand.ttf",
:bold => "VTCGoblinHandBold.ttf",
:italic => "VTCGoblinHandItalic.ttf"
},
"Ultramarines" => {
:normal => "ultramarines.ttf"
},
"Unispace" => {
:normal => "unispace rg.ttf"
}
)
pdf.outline.instance_variable_set(:@awakened2069, self)
pdf.image("cover.png", :width => 612, :height => 792)
pdf.start_new_page(:margin => 50)
pdf.font "Ultramarines"
pdf.font_size 72
pdf.text "Awakened 2069", :align => :center
pdf.font "Goudy"
pdf.font_size 36
pdf.text "\nGuide To The Mage: the Awakening, Second Edition Game On Discord. \n\nInvite Code:", :align => :center
pdf.font "Unispace"
pdf.text "25MpfjP", :align => :center
pdf.font "Goudy"
pdf.font_size 24
pdf.text "\n\nAll content in this manual is inspired by the Storyteller and the players", :align => :center
start_chapter "Introduction"
pdf.render_file("writeup.pdf")
end
end
awakened2069 = Awakened2069.new
awakened2069.generate