Reorganize
This commit is contained in:
4
setlist/.gitignore
vendored
Normal file
4
setlist/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
_output/*.png
|
||||
_output/*.pdf
|
||||
~$*
|
||||
.DS_Store
|
19
setlist/ABOUT.md
Normal file
19
setlist/ABOUT.md
Normal file
@ -0,0 +1,19 @@
|
||||
My Awesome Game
|
||||
===============
|
||||
|
||||
Check out my awesome game!
|
||||
|
||||
|
||||
Objective
|
||||
---------
|
||||
|
||||
|
||||
|
||||
Gameplay
|
||||
--------
|
||||
|
||||
|
||||
|
||||
Ending the Game
|
||||
---------------
|
||||
|
4
setlist/Gemfile
Normal file
4
setlist/Gemfile
Normal file
@ -0,0 +1,4 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gem 'squib'
|
||||
gem 'game_icons'
|
68
setlist/Gemfile.lock
Normal file
68
setlist/Gemfile.lock
Normal file
@ -0,0 +1,68 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
cairo (1.17.8)
|
||||
native-package-installer (>= 1.0.3)
|
||||
pkg-config (>= 1.2.2)
|
||||
red-colors
|
||||
cairo-gobject (3.5.1)
|
||||
cairo (>= 1.16.2)
|
||||
glib2 (= 3.5.1)
|
||||
classy_hash (1.0.0)
|
||||
fiddle (1.1.1)
|
||||
game_icons (0.46.0.20221129)
|
||||
gdk_pixbuf2 (3.5.1)
|
||||
gio2 (= 3.5.1)
|
||||
gio2 (3.5.1)
|
||||
fiddle
|
||||
gobject-introspection (= 3.5.1)
|
||||
glib2 (3.5.1)
|
||||
native-package-installer (>= 1.0.3)
|
||||
pkg-config (>= 1.3.5)
|
||||
gobject-introspection (3.5.1)
|
||||
glib2 (= 3.5.1)
|
||||
highline (2.0.3)
|
||||
matrix (0.4.2)
|
||||
mercenary (0.4.0)
|
||||
native-package-installer (1.1.5)
|
||||
nokogiri (1.13.10-x64-mingw32)
|
||||
racc (~> 1.4)
|
||||
pango (3.5.1)
|
||||
cairo-gobject (= 3.5.1)
|
||||
gobject-introspection (= 3.5.1)
|
||||
pkg-config (1.5.1)
|
||||
racc (1.6.2)
|
||||
rainbow (3.1.1)
|
||||
red-colors (0.3.0)
|
||||
matrix
|
||||
roo (2.9.0)
|
||||
nokogiri (~> 1)
|
||||
rubyzip (>= 1.3.0, < 3.0.0)
|
||||
rsvg2 (3.5.1)
|
||||
cairo-gobject (= 3.5.1)
|
||||
gdk_pixbuf2 (= 3.5.1)
|
||||
ruby-progressbar (1.11.0)
|
||||
rubyzip (2.3.2)
|
||||
squib (0.18.0)
|
||||
cairo (~> 1.17)
|
||||
classy_hash (= 1.0.0)
|
||||
gio2 (~> 3.4)
|
||||
gobject-introspection (~> 3.4)
|
||||
highline (= 2.0.3)
|
||||
mercenary (= 0.4.0)
|
||||
nokogiri (~> 1.11)
|
||||
pango (~> 3.4)
|
||||
rainbow (~> 3.0)
|
||||
roo (~> 2.8)
|
||||
rsvg2 (~> 3.4)
|
||||
ruby-progressbar (~> 1.11)
|
||||
|
||||
PLATFORMS
|
||||
x64-mingw32
|
||||
|
||||
DEPENDENCIES
|
||||
game_icons
|
||||
squib
|
||||
|
||||
BUNDLED WITH
|
||||
2.1.4
|
22
setlist/IDEAS.md
Normal file
22
setlist/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
setlist/PLAYTESTING.md
Normal file
26
setlist/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?
|
4
setlist/PNP NOTES.md
Normal file
4
setlist/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
setlist/RULES.md
Normal file
21
setlist/RULES.md
Normal file
@ -0,0 +1,21 @@
|
||||
# Intro
|
||||
|
||||
2-4 players arranging their setlists at a music festival
|
||||
|
||||
# Objective
|
||||
|
||||
Draw the most fans by performing the best in each time block
|
||||
|
||||
# Components
|
||||
|
||||
18 Song cards
|
||||
|
||||
# Gameplay
|
||||
|
||||
Phase 1: Four cards are handed to each player. Players draft one card and pass the rest on until all cards are chosen.
|
||||
Phase 2: Players arrange their songs face-down in the order they'll perform in
|
||||
Phase 3: All players flip cards face-up. They resolve in order of Volume from loudest to quietest
|
||||
|
||||
# Scoring
|
||||
|
||||
How is victory assigned?
|
7
setlist/Rakefile
Normal file
7
setlist/Rakefile
Normal file
@ -0,0 +1,7 @@
|
||||
require 'squib'
|
||||
|
||||
task default: [:deck]
|
||||
|
||||
task :deck do
|
||||
load 'deck.rb'
|
||||
end
|
1
setlist/_output/.gitignore
vendored
Normal file
1
setlist/_output/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
Keep this here so that Git knows to keep the _output directory on a fresh clone
|
BIN
setlist/back.png
Normal file
BIN
setlist/back.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.1 KiB |
50
setlist/config.yml
Normal file
50
setlist/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
|
||||
|
||||
#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-color
|
||||
#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
|
19
setlist/data.csv
Normal file
19
setlist/data.csv
Normal file
@ -0,0 +1,19 @@
|
||||
name,volume,traits,audience,effect,blurb
|
||||
Crazy Little Thing Called Love,f,l,2,+2 {A} if the first {l} song in your setlist,
|
||||
War Cry,f,a,2,+1 {A} for each song quieter than this in this time block,
|
||||
Opener,mp,j,0,+3 {A} if the first song in your set,
|
||||
Dirge,ppp,s,0,,
|
||||
Love Ballad,f,l,3,+2 {A} if in the first two songs of your setlist,
|
||||
Rage Against The Man,fff,a,2,+1 {A} for each {a} song in this time block,
|
||||
Everything Is Awesome,mf,j,3,+2 {A} if in the last two songs if your setlist,
|
||||
Tears in the Rain,p,s,2,+3 {A} if this is the quietest song in this time block,
|
||||
Breakup Song,ff,la,3,+3 {A} if another band played a {l} song in this time block,
|
||||
New Relationship,mf,lj,2,+4 {A} if there are no {l} song before this in any band's setlist,
|
||||
Brokenhearted,p,ls,3,+1 {A} if the next song in your setlist is a {l} song,
|
||||
Mixed Messages,ff,aj,2,+3 {A} if this is the loudest song in this time block,
|
||||
Betrayed,f,as,2,+3 {A} if this is immediately following a {j} song in your setlist,
|
||||
Happy To Be Sad,f,js,1,+2 {A} for each {s} song already in your setlist,
|
||||
Indignant Love,f,laj,3,,
|
||||
Unrequited Love,mp,las,3,,
|
||||
Butterflies In The Stomach,mf,ljs,3,,
|
||||
Rampage,fff,ajs,3,,
|
|
70
setlist/deck.rb
Normal file
70
setlist/deck.rb
Normal file
@ -0,0 +1,70 @@
|
||||
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.csv file: 'data.csv'
|
||||
|
||||
Squib::Deck.new(cards: data.nrows) do
|
||||
use_layout file: 'economy.yml'
|
||||
use_layout file: 'layout.yml'
|
||||
background color: 'white'
|
||||
cut_zone
|
||||
safe_zone
|
||||
|
||||
text layout: :title, str: data.name, ellipsize: :autoscale
|
||||
|
||||
# svg layout: :art, data: Icons::MUSIC
|
||||
text layout: :art, align: :center, valign: :middle, str: data.traits do |embed|
|
||||
embed.svg key: 'l', width: 128, height: 128, data: Icons::LOVE
|
||||
embed.svg key: 'a', width: 128, height: 128, data: Icons::ANGER
|
||||
embed.svg key: 'j', width: 128, height: 128, data: Icons::JOY
|
||||
embed.svg key: 's', width: 128, height: 128, data: Icons::SAD
|
||||
end
|
||||
|
||||
rect layout: :description
|
||||
text layout: :description, str: data.effect.zip(data.blurb).map { |e, b|
|
||||
"#{e}#{if b then "\n<i>#{b}</i>" end}"
|
||||
} do |embed|
|
||||
embed.svg key: '{A}', width: 32, height: 32, data: Icons::AUDIENCE
|
||||
embed.svg key: '{l}', width: 32, height: 32, data: Icons::LOVE
|
||||
embed.svg key: '{a}', width: 32, height: 32, data: Icons::ANGER
|
||||
embed.svg key: '{j}', width: 32, height: 32, data: Icons::JOY
|
||||
embed.svg key: '{s}', width: 32, height: 32, data: Icons::SAD
|
||||
end
|
||||
text layout: :volume, markup: true, str: data.volume.map { |v| "<b><i>#{v} (#{VOLUMES[v]})</i></b>" }
|
||||
text layout: :audience, ellipsize: :autoscale, str: data.audience.map { |au| "{A}#{au}"} do |embed|
|
||||
embed.svg key: '{A}', width: 48, height: 48, data: Icons::AUDIENCE
|
||||
end
|
||||
|
||||
save format: :png
|
||||
save_sheet prefix: "sheet",
|
||||
columns: 5, rows: 4, trim: '0.125in', count_format: ''
|
||||
|
||||
end
|
23
setlist/feedback/2023/04/15-Jeremiah.md
Normal file
23
setlist/feedback/2023/04/15-Jeremiah.md
Normal file
@ -0,0 +1,23 @@
|
||||
Make sure specify time blocks
|
||||
|
||||
5 - 2
|
||||
8 - 5
|
||||
13 - 11
|
||||
18 - 16
|
||||
|
||||
More cards for fewer players - ex. start with 7 but only end up with 4
|
||||
Volume might not really be a useful mechanic
|
||||
Everything At Once, and Wildcard, might be overpowered
|
||||
- Maybe reduce the number of points it's worth
|
||||
Cards without abilities probably wouldn't get chosen
|
||||
|
||||
Screentop: make a second set of hidden containers for tracking chosen cards
|
||||
|
||||
5 - 6
|
||||
8 - 11
|
||||
12 - 15
|
||||
16 - 20
|
||||
|
||||
Once you have your set, you can choose the order as they're revealed?
|
||||
Possible to "lean into" a suit
|
||||
Focus more on volume, less on suits
|
11
setlist/layout.yml
Normal file
11
setlist/layout.yml
Normal file
@ -0,0 +1,11 @@
|
||||
volume:
|
||||
x: 90
|
||||
y: 955
|
||||
width: 320
|
||||
height: 50
|
||||
align: left
|
||||
|
||||
audience:
|
||||
extends: volume
|
||||
x: += 329
|
||||
align: right
|
Reference in New Issue
Block a user