Reorganize

This commit is contained in:
2023-05-11 21:57:43 -04:00
parent 7380b4df57
commit 417885eeb7
40 changed files with 0 additions and 0 deletions

4
setlist/.gitignore vendored Normal file
View File

@ -0,0 +1,4 @@
_output/*.png
_output/*.pdf
~$*
.DS_Store

19
setlist/ABOUT.md Normal file
View File

@ -0,0 +1,19 @@
My Awesome Game
===============
Check out my awesome game!
Objective
---------
Gameplay
--------
Ending the Game
---------------

4
setlist/Gemfile Normal file
View File

@ -0,0 +1,4 @@
source 'https://rubygems.org'
gem 'squib'
gem 'game_icons'

68
setlist/Gemfile.lock Normal file
View 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
View 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
View 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
View 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
View 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
View File

@ -0,0 +1,7 @@
require 'squib'
task default: [:deck]
task :deck do
load 'deck.rb'
end

1
setlist/_output/.gitignore vendored Normal file
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

50
setlist/config.yml Normal file
View 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
View 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,,
1 name volume traits audience effect blurb
2 Crazy Little Thing Called Love f l 2 +2 {A} if the first {l} song in your setlist
3 War Cry f a 2 +1 {A} for each song quieter than this in this time block
4 Opener mp j 0 +3 {A} if the first song in your set
5 Dirge ppp s 0
6 Love Ballad f l 3 +2 {A} if in the first two songs of your setlist
7 Rage Against The Man fff a 2 +1 {A} for each {a} song in this time block
8 Everything Is Awesome mf j 3 +2 {A} if in the last two songs if your setlist
9 Tears in the Rain p s 2 +3 {A} if this is the quietest song in this time block
10 Breakup Song ff la 3 +3 {A} if another band played a {l} song in this time block
11 New Relationship mf lj 2 +4 {A} if there are no {l} song before this in any band's setlist
12 Brokenhearted p ls 3 +1 {A} if the next song in your setlist is a {l} song
13 Mixed Messages ff aj 2 +3 {A} if this is the loudest song in this time block
14 Betrayed f as 2 +3 {A} if this is immediately following a {j} song in your setlist
15 Happy To Be Sad f js 1 +2 {A} for each {s} song already in your setlist
16 Indignant Love f laj 3
17 Unrequited Love mp las 3
18 Butterflies In The Stomach mf ljs 3
19 Rampage fff ajs 3

70
setlist/deck.rb Normal file
View 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

View 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
View File

@ -0,0 +1,11 @@
volume:
x: 90
y: 955
width: 320
height: 50
align: left
audience:
extends: volume
x: += 329
align: right