Initialize with Squib template
This commit is contained in:
commit
443370f056
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
_output/*.png
|
||||||
|
_output/*.pdf
|
||||||
|
~$*
|
||||||
|
.DS_Store
|
19
ABOUT.md
Normal file
19
ABOUT.md
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
My Awesome Game
|
||||||
|
===============
|
||||||
|
|
||||||
|
Check out my awesome game!
|
||||||
|
|
||||||
|
|
||||||
|
Objective
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Gameplay
|
||||||
|
--------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Ending the Game
|
||||||
|
---------------
|
||||||
|
|
11
Gemfile
Normal file
11
Gemfile
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
source 'https://rubygems.org'
|
||||||
|
|
||||||
|
gem 'squib'
|
||||||
|
gem 'guard'
|
||||||
|
gem 'guard-rake'
|
||||||
|
|
||||||
|
# If you do any simulation or anything fancy, you might want this
|
||||||
|
# gem 'rspec' # Unit testing with behavior-driven development
|
||||||
|
|
||||||
|
# If you want to generate PDFs manually (e.g. rules) this is good
|
||||||
|
# gem 'prawn'
|
21
Guardfile
Normal file
21
Guardfile
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
group :default do
|
||||||
|
guard 'rake', :task => 'default' do
|
||||||
|
watch %r{data/.*\.xlsx$}
|
||||||
|
watch %r{data/.*\.csv$}
|
||||||
|
watch %r{src/.*\.rb$}
|
||||||
|
watch %r{.*\.yml}
|
||||||
|
watch %r{img/.*\.svg$}
|
||||||
|
watch %r{img/.*\.png$}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
group :deck do
|
||||||
|
guard 'rake', :task => 'default' do
|
||||||
|
watch %r{data/.*\.xlsx$}
|
||||||
|
watch %r{data/.*\.csv$}
|
||||||
|
watch %r{src/.*\.rb$}
|
||||||
|
watch %r{.*\.yml}
|
||||||
|
watch %r{img/.*\.svg$}
|
||||||
|
watch %r{img/.*\.png$}
|
||||||
|
end
|
||||||
|
end
|
22
IDEAS.md
Normal file
22
IDEAS.md
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Title Ideas
|
||||||
|
|
||||||
|
* First idea
|
||||||
|
* Second idea
|
||||||
|
|
||||||
|
|
||||||
|
# Things to Try
|
||||||
|
|
||||||
|
* Idea
|
||||||
|
* Idea
|
||||||
|
|
||||||
|
# Feedback Ideas
|
||||||
|
|
||||||
|
* Feedback
|
||||||
|
* Feedback
|
||||||
|
|
||||||
|
# Problems To Work On
|
||||||
|
|
||||||
|
* Problem
|
||||||
|
* Problem
|
||||||
|
|
||||||
|
|
26
PLAYTESTING.md
Normal file
26
PLAYTESTING.md
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# Playtesting Log
|
||||||
|
|
||||||
|
# Playtest Report Survey
|
||||||
|
|
||||||
|
## Basic Info
|
||||||
|
* Num. Players:
|
||||||
|
* How many sessions of this game have you played before?
|
||||||
|
* How long did you play?
|
||||||
|
* How did you prepare for teaching the rules? Read the sheet with everyone there, or did someone read it ahead of time?
|
||||||
|
* What types of players played with you? What are their favorite games?
|
||||||
|
* What version were you testing?
|
||||||
|
* What date did you play?
|
||||||
|
|
||||||
|
## Did it work?
|
||||||
|
* Was there a moment that you felt the game was "broken"? Describe what happened.
|
||||||
|
* How close were the scores? Did everyone feel like they had a fair chance at winning?
|
||||||
|
* Were there any moments that you had to go back to the rules for clarification? What resulted of that - are you still unclear, or was it just a misunderstanding?
|
||||||
|
* Any ideas for clearer rules?
|
||||||
|
* Any ideas for clearer icons, artwork, in-game helps, etc?
|
||||||
|
|
||||||
|
## Was it fun?
|
||||||
|
* Based on the description, artwork, branding, etc. was this game what you expected?
|
||||||
|
* Were the theme, artwork, and icons engaging?
|
||||||
|
* Did this game have the depth of strategy that you were expecting?
|
||||||
|
* What were the moments that people felt like they were having the most fun? The least fun?
|
||||||
|
* Assuming trivial issues are fixed, would you recommend this to someone else?
|
27
Rakefile
Normal file
27
Rakefile
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
require 'squib'
|
||||||
|
require 'irb'
|
||||||
|
require 'rake/clean'
|
||||||
|
|
||||||
|
# Add Rake's clean & clobber tasks
|
||||||
|
CLEAN.include('_output/*').exclude('_output/gitkeep.txt')
|
||||||
|
|
||||||
|
desc 'By default, just build the deck without extra options'
|
||||||
|
task default: [:deck]
|
||||||
|
|
||||||
|
desc 'Build everything, with all the options'
|
||||||
|
task all: [:with_pnp, :with_proofs, :deck]
|
||||||
|
|
||||||
|
desc 'Build the deck'
|
||||||
|
task(:deck) { load 'src/deck.rb' }
|
||||||
|
|
||||||
|
desc 'Enable proof lines'
|
||||||
|
task(:with_proofs) do
|
||||||
|
puts "Enabling proofing lines."
|
||||||
|
Squib.enable_build_globally :proofs
|
||||||
|
end
|
||||||
|
|
||||||
|
desc 'Enable print-and-play builds'
|
||||||
|
task(:with_pnp) do
|
||||||
|
puts "Enabling print-and-play builds."
|
||||||
|
Squib.enable_build_globally :pnp
|
||||||
|
end
|
1
_output/.gitignore
vendored
Normal file
1
_output/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
Keep this here so that Git knows to keep the _output directory on a fresh clone
|
50
config.yml
Normal file
50
config.yml
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
# Settings in the config.yml are overriding Squib's defaults. Anything in the main script will override this.
|
||||||
|
|
||||||
|
# Looking for DPI? It needs to be a parameter to Squib::Deck.new. See https://squib.readthedocs.io/en/latest/dsl/deck.html
|
||||||
|
|
||||||
|
#antialias: best #recommended. Only about 10% slower than fast
|
||||||
|
#antialias: default # set the anti-aliasing algorithm. default defers to the underlying graphics device. See http://www.cairographics.org/manual/cairo-cairo-t.html#cairo-antialias-t
|
||||||
|
|
||||||
|
# Text hints are used to show the boundaries of text boxes.
|
||||||
|
# Can be enabled/disabled at the command-level, or set globally with `set`
|
||||||
|
#text_hint: '#F00'
|
||||||
|
|
||||||
|
# Show progress bars on the command line for potentially long-running operations
|
||||||
|
progress_bars: true
|
||||||
|
|
||||||
|
#Enable some custom colors that can be used in any color
|
||||||
|
#custom_colors:
|
||||||
|
# foo: '#abc'
|
||||||
|
|
||||||
|
#For reading image file command (e.g. png and svg), read from this directory instead
|
||||||
|
img_dir: img
|
||||||
|
#img_dir: img-bw
|
||||||
|
|
||||||
|
# Use a SVG cairo back end, instead of an in-memory buffer
|
||||||
|
# backend: :memory # default
|
||||||
|
# backend: :svg # can create scalable pdfs, but rendering done at the printer level is not as good as Cairo.
|
||||||
|
|
||||||
|
# Configure what text markup uses replace characters
|
||||||
|
# Below are the defaults
|
||||||
|
# lsquote: "\u2018" #note that Yaml wants double quotes here to use escape chars
|
||||||
|
# rsquote: "\u2019"
|
||||||
|
# ldquote: "\u201C"
|
||||||
|
# rdquote: "\u201D"
|
||||||
|
# em_dash: "\u2014"
|
||||||
|
# en_dash: "\u2013"
|
||||||
|
# ellipsis: "\u2026"
|
||||||
|
|
||||||
|
# We can also disallow smart quotes and only allow explicit replacements with ``LaTeX-style'' quotes.
|
||||||
|
# smart_quotes: false
|
||||||
|
|
||||||
|
# By default, Squib warns when a text box is ellipsized. This can get verbose
|
||||||
|
# and can be turned off here
|
||||||
|
warn_ellipsize: true # default
|
||||||
|
# warn_ellipsize: false # turn off entirely
|
||||||
|
|
||||||
|
# By default, Squib will warn if a PNG is being up-scaled.
|
||||||
|
warn_png_scale: true # default
|
||||||
|
# warn_png_scale: false # turn off entirely
|
||||||
|
|
||||||
|
# How many pixels are in a "cell"?
|
||||||
|
# cell_px: 37.5 # default
|
BIN
data/game.xlsx
Normal file
BIN
data/game.xlsx
Normal file
Binary file not shown.
4
docs/PNP NOTES.md
Normal file
4
docs/PNP NOTES.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Print and Play Notes
|
||||||
|
====================
|
||||||
|
|
||||||
|
Fill this out to give tips on how to play this with print and play.
|
21
docs/RULES.md
Normal file
21
docs/RULES.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Intro
|
||||||
|
|
||||||
|
What is this game about? How many players?
|
||||||
|
|
||||||
|
# Objective
|
||||||
|
|
||||||
|
What is the object of the game?
|
||||||
|
|
||||||
|
# Components
|
||||||
|
|
||||||
|
What are the components? List them out.
|
||||||
|
|
||||||
|
# Gameplay
|
||||||
|
|
||||||
|
What does each turn look like? Describe a turn.
|
||||||
|
|
||||||
|
# Scoring
|
||||||
|
|
||||||
|
How is victory assigned?
|
||||||
|
|
||||||
|
|
60
img/example.svg
Normal file
60
img/example.svg
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
id="svg8"
|
||||||
|
version="1.1"
|
||||||
|
viewBox="0 0 210 297"
|
||||||
|
height="297mm"
|
||||||
|
width="210mm"
|
||||||
|
sodipodi:docname="example.svg"
|
||||||
|
inkscape:version="0.92.0 r15299">
|
||||||
|
<sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1680"
|
||||||
|
inkscape:window-height="987"
|
||||||
|
id="namedview7"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.5946522"
|
||||||
|
inkscape:cx="407.78854"
|
||||||
|
inkscape:cy="201.53619"
|
||||||
|
inkscape:window-x="-8"
|
||||||
|
inkscape:window-y="162"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg8" />
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<metadata
|
||||||
|
id="metadata5">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(3.5595036,70.300197)">
|
||||||
|
<path
|
||||||
|
id="path4485"
|
||||||
|
d="m 176.52631,170.79195 -68.8031,39.72348 -68.80309,-39.72348 1e-6,-79.446968 68.803089,-39.723484 68.8031,39.723484 z"
|
||||||
|
style="opacity:1;vector-effect:none;fill:#ffffff;fill-opacity:1;stroke:#ed00ff;stroke-width:0.70555556;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.99954044"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
27
layouts/deck.yml
Normal file
27
layouts/deck.yml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
name:
|
||||||
|
x: 90
|
||||||
|
y: 90
|
||||||
|
width: 500
|
||||||
|
height: 50
|
||||||
|
font: Arial 18
|
||||||
|
valign: middle
|
||||||
|
align: left
|
||||||
|
ellipsize: false
|
||||||
|
|
||||||
|
ATK:
|
||||||
|
x: 90
|
||||||
|
y: 190
|
||||||
|
width: 200
|
||||||
|
height: 50
|
||||||
|
font: Arial 12
|
||||||
|
valign: middle
|
||||||
|
align: left
|
||||||
|
ellipsize: false
|
||||||
|
DEF:
|
||||||
|
extends: ATK
|
||||||
|
y: += 75
|
||||||
|
|
||||||
|
version:
|
||||||
|
font: Arial 6
|
||||||
|
x: 725
|
||||||
|
y: 45
|
34
src/deck.rb
Normal file
34
src/deck.rb
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
require 'squib'
|
||||||
|
require_relative 'version'
|
||||||
|
|
||||||
|
# Note: run this code by running "rake" at the command line
|
||||||
|
# To see full list of options, run "rake -T"
|
||||||
|
|
||||||
|
data = Squib.xlsx file: 'data/game.xlsx', sheet: 0
|
||||||
|
|
||||||
|
Squib::Deck.new(cards: data.nrows) do
|
||||||
|
background color: :white
|
||||||
|
use_layout file: 'layouts/deck.yml'
|
||||||
|
|
||||||
|
text str: data.name, layout: :name
|
||||||
|
|
||||||
|
text str: data.atk.map { |s| "#{s} ATK" }, layout: :ATK
|
||||||
|
text str: data.def.map { |s| "#{s} DEF" }, layout: :DEF
|
||||||
|
|
||||||
|
svg file: 'example.svg'
|
||||||
|
|
||||||
|
text str: MySquibGame::VERSION, layout: :version
|
||||||
|
|
||||||
|
build(:proofs) do
|
||||||
|
safe_zone
|
||||||
|
cut_zone
|
||||||
|
end
|
||||||
|
|
||||||
|
save format: :png
|
||||||
|
|
||||||
|
build(:pnp) do
|
||||||
|
save_sheet prefix: 'pnp_sheet_',
|
||||||
|
trim: '0.125in',
|
||||||
|
rows: 3, columns: 3
|
||||||
|
end
|
||||||
|
end
|
3
src/version.rb
Normal file
3
src/version.rb
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
module MySquibGame
|
||||||
|
VERSION = '1.0'
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user