Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New character shugenja #255

Closed
wants to merge 7 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/terraform-serverless-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,9 @@ jobs:
- name: Run terraform actions
id: run-terraform-actions
# yamllint disable-line rule:line-length
uses: chizmw/terraform-workflow-action@v1.0.1
uses: chizmw/terraform-workflow-action@aa921af813536554ecba0798a8861b25b09e2547
with:
terraform-state-action: migrate-state
# yamllint disable rule:line-length
use-workspaces: true
workspace: ${{ env.WORKSPACE }}
Expand Down
85 changes: 61 additions & 24 deletions data/imported/roles-combined.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"DAWN": {
"ability": "",
"edition": "_meta",
"firstNight": 56,
"firstNight": 57,
"firstNightReminder": "Wait approximately 10 seconds. Call for eyes open, then immediately announce which players (if any) died.",
"id": "DAWN",
"name": "DAWN",
Expand Down Expand Up @@ -351,7 +351,7 @@
"bountyhunter": {
"ability": "You start knowing 1 evil player. If the player you know dies, you learn another evil player tonight. [1 Townsfolk is evil]",
"edition": "experimental",
"firstNight": 48,
"firstNight": 49,
"firstNightReminder": "Point to 1 evil player. Wake the townsfolk who is evil and show them the 'You are' card and the thumbs down evil sign.",
"id": "bountyhunter",
"name": "Bounty Hunter",
Expand Down Expand Up @@ -460,7 +460,7 @@
"chambermaid": {
"ability": "Each night, choose 2 alive players (not yourself): you learn how many woke tonight due to their ability.",
"edition": "bmr",
"firstNight": 54,
"firstNight": 55,
"firstNightReminder": "The Chambermaid points to two players. Show the number signal (0, 1, 2, \u2026) for how many of those players wake tonight for their ability.",
"id": "chambermaid",
"name": "Chambermaid",
Expand Down Expand Up @@ -535,7 +535,7 @@
"cultleader": {
"ability": "Each night, you become the alignment of an alive neighbour. If all good players choose to join your cult, your team wins.",
"edition": "experimental",
"firstNight": 50,
"firstNight": 51,
"firstNightReminder": "If the cult leader changed alignment, show them the thumbs up good signal of the thumbs down evil signal accordingly.",
"id": "cultleader",
"name": "Cult Leader",
Expand Down Expand Up @@ -905,7 +905,7 @@
"general": {
"ability": "Each night, you learn which alignment the Storyteller believes is winning: good, evil, or neither.",
"edition": "ks",
"firstNight": 53,
"firstNight": 54,
"firstNightReminder": "Show the General thumbs up for good winning, thumbs down for evil winning or thumb to the side for neither.",
"id": "general",
"name": "General",
Expand Down Expand Up @@ -1094,7 +1094,7 @@
"highpriestess": {
"ability": "Each night, learn which player the Storyteller believes you should talk to most.",
"edition": "experimental",
"firstNight": 52,
"firstNight": 53,
"firstNightReminder": "Point to a player.",
"id": "highpriestess",
"image": "your direct url here",
Expand Down Expand Up @@ -1268,7 +1268,7 @@
"leviathan": {
"ability": "If more than 1 good player is executed, you win. All players know you are in play. After day 5, evil wins.",
"edition": "ks",
"firstNight": 57,
"firstNight": 58,
"firstNightReminder": "Place the Leviathan 'Day 1' marker. Announce 'The Leviathan is in play; this is Day 1.'",
"id": "leviathan",
"name": "Leviathan",
Expand Down Expand Up @@ -1420,7 +1420,7 @@
"mathematician": {
"ability": "Each night, you learn how many players\u2019 abilities worked abnormally (since dawn) due to another character's ability.",
"edition": "snv",
"firstNight": 55,
"firstNight": 56,
"firstNightReminder": "Show the hand signal for the number (0, 1, 2, etc.) of players whose ability malfunctioned due to other abilities.",
"id": "mathematician",
"name": "Mathematician",
Expand Down Expand Up @@ -1560,7 +1560,7 @@
"nightwatchman": {
"ability": "Once per game, at night, choose a player: they learn who you are.",
"edition": "experimental",
"firstNight": 49,
"firstNight": 50,
"firstNightReminder": "The Nightwatchman may point to a player. Wake that player, show the 'This character selected you' card and the Nightwatchman token, then point to the Nightwatchman player.",
"id": "nightwatchman",
"name": "Nightwatchman",
Expand Down Expand Up @@ -2052,6 +2052,20 @@
"setup": false,
"team": "demon"
},
"shugenja": {
"ability": "You start knowing if your closest evil player is clockwise or anti-clockwise. If equidistant, this info is arbitrary.",
"edition": "experimental",
"firstNight": 48,
"firstNightReminder": "Wake the Shugenja; point horizontally in the direction of the closest evil player. If the two closest evil players are equidistant, point your finger horizontally in either direction.",
"id": "shugenja",
"image": "[Your direct url here]",
"name": "Shugenja",
"otherNight": null,
"otherNightReminder": null,
"remote_image": "https://raw.githubusercontent.com/chizmw/json-on-the-clocktower/main/data/images/shugenja.png",
"setup": false,
"team": "townsfolk"
},
"slayer": {
"ability": "Once per game, during the day, publicly choose a player: if they are the Demon, they die.",
"edition": "tb",
Expand Down Expand Up @@ -2131,7 +2145,7 @@
"spy": {
"ability": "Each night, you see the Grimoire. You might register as good & as a Townsfolk or Outsider, even if dead.",
"edition": "tb",
"firstNight": 51,
"firstNight": 52,
"firstNightReminder": "Show the Grimoire to the Spy for as long as they need.",
"id": "spy",
"name": "Spy",
Expand Down Expand Up @@ -2325,7 +2339,7 @@
"vizier": {
"ability": "All players know who you are. You can not die during the day. If good voted, you may choose to execute immediately.",
"edition": "experimental",
"firstNight": 58,
"firstNight": 59,
"firstNightReminder": "Announce 'The Vizier is in play' and state which player they are.",
"id": "vizier",
"name": "Vizier",
Expand Down Expand Up @@ -2782,6 +2796,11 @@
"name": "preacher",
"physicaltoken": false
},
"shugenja": {
"id": "shugenja",
"name": "shugenja",
"physicaltoken": false
},
"steward": {
"id": "steward",
"name": "steward",
Expand Down Expand Up @@ -3315,7 +3334,7 @@
},
{
"id": "Politician",
"reason": "A Pit-hag can not create an evil Politician."
"reason": "A Pit-Hag can not create an evil Politician."
}
]
},
Expand Down Expand Up @@ -3525,7 +3544,7 @@
},
{
"id": "Plague Doctor",
"reason": "If the Storyteller gains the Baron ability, up to two players become out-of-play Outsiders."
"reason": "If the Storyteller gains the Baron ability, up to two players become not-in-play Outsiders."
}
]
},
Expand Down Expand Up @@ -4038,7 +4057,7 @@
{
"ability": "Each night, you see the Grimoire. You might register as good & as a Townsfolk or Outsider, even if dead.",
"edition": "tb",
"firstNight": 51,
"firstNight": 52,
"firstNightReminder": "Show the Grimoire to the Spy for as long as they need.",
"id": "spy",
"name": "Spy",
Expand Down Expand Up @@ -4204,7 +4223,7 @@
{
"ability": "Each night, choose 2 alive players (not yourself): you learn how many woke tonight due to their ability.",
"edition": "bmr",
"firstNight": 54,
"firstNight": 55,
"firstNightReminder": "The Chambermaid points to two players. Show the number signal (0, 1, 2, \u2026) for how many of those players wake tonight for their ability.",
"id": "chambermaid",
"name": "Chambermaid",
Expand Down Expand Up @@ -4700,7 +4719,7 @@
{
"ability": "Each night, you learn how many players\u2019 abilities worked abnormally (since dawn) due to another character's ability.",
"edition": "snv",
"firstNight": 55,
"firstNight": 56,
"firstNightReminder": "Show the hand signal for the number (0, 1, 2, etc.) of players whose ability malfunctioned due to other abilities.",
"id": "mathematician",
"name": "Mathematician",
Expand Down Expand Up @@ -5141,7 +5160,7 @@
{
"ability": "You start knowing 1 evil player. If the player you know dies, you learn another evil player tonight. [1 Townsfolk is evil]",
"edition": "experimental",
"firstNight": 48,
"firstNight": 49,
"firstNightReminder": "Point to 1 evil player. Wake the townsfolk who is evil and show them the 'You are' card and the thumbs down evil sign.",
"id": "bountyhunter",
"name": "Bounty Hunter",
Expand Down Expand Up @@ -5174,7 +5193,7 @@
{
"ability": "Each night, you learn which alignment the Storyteller believes is winning: good, evil, or neither.",
"edition": "ks",
"firstNight": 53,
"firstNight": 54,
"firstNightReminder": "Show the General thumbs up for good winning, thumbs down for evil winning or thumb to the side for neither.",
"id": "general",
"name": "General",
Expand Down Expand Up @@ -5238,7 +5257,7 @@
{
"ability": "Each night, you become the alignment of an alive neighbour. If all good players choose to join your cult, your team wins.",
"edition": "experimental",
"firstNight": 50,
"firstNight": 51,
"firstNightReminder": "If the cult leader changed alignment, show them the thumbs up good signal of the thumbs down evil signal accordingly.",
"id": "cultleader",
"name": "Cult Leader",
Expand Down Expand Up @@ -5284,7 +5303,7 @@
{
"ability": "Once per game, at night, choose a player: they learn who you are.",
"edition": "experimental",
"firstNight": 49,
"firstNight": 50,
"firstNightReminder": "The Nightwatchman may point to a player. Wake that player, show the 'This character selected you' card and the Nightwatchman token, then point to the Nightwatchman player.",
"id": "nightwatchman",
"name": "Nightwatchman",
Expand Down Expand Up @@ -5763,7 +5782,7 @@
{
"ability": "If more than 1 good player is executed, you win. All players know you are in play. After day 5, evil wins.",
"edition": "ks",
"firstNight": 57,
"firstNight": 58,
"firstNightReminder": "Place the Leviathan 'Day 1' marker. Announce 'The Leviathan is in play; this is Day 1.'",
"id": "leviathan",
"name": "Leviathan",
Expand Down Expand Up @@ -6054,7 +6073,7 @@
{
"ability": "",
"edition": "_meta",
"firstNight": 56,
"firstNight": 57,
"firstNightReminder": "Wait approximately 10 seconds. Call for eyes open, then immediately announce which players (if any) died.",
"id": "DAWN",
"name": "DAWN",
Expand All @@ -6065,10 +6084,24 @@
"setup": false,
"team": "_meta"
},
{
"ability": "You start knowing if your closest evil player is clockwise or anti-clockwise. If equidistant, this info is arbitrary.",
"edition": "experimental",
"firstNight": 48,
"firstNightReminder": "Wake the Shugenja; point horizontally in the direction of the closest evil player. If the two closest evil players are equidistant, point your finger horizontally in either direction.",
"id": "shugenja",
"image": "[Your direct url here]",
"name": "Shugenja",
"otherNight": null,
"otherNightReminder": null,
"remote_image": "https://raw.githubusercontent.com/chizmw/json-on-the-clocktower/main/data/images/shugenja.png",
"setup": false,
"team": "townsfolk"
},
{
"ability": "All players know who you are. You can not die during the day. If good voted, you may choose to execute immediately.",
"edition": "experimental",
"firstNight": 58,
"firstNight": 59,
"firstNightReminder": "Announce 'The Vizier is in play' and state which player they are.",
"id": "vizier",
"name": "Vizier",
Expand Down Expand Up @@ -6114,7 +6147,7 @@
{
"ability": "Each night, learn which player the Storyteller believes you should talk to most.",
"edition": "experimental",
"firstNight": 52,
"firstNight": 53,
"firstNightReminder": "Point to a player.",
"id": "highpriestess",
"image": "your direct url here",
Expand Down Expand Up @@ -6747,6 +6780,10 @@
"id": "cannibal",
"name": "Cannibal"
},
{
"id": "shugenja",
"name": "Shugenja"
},
{
"id": "highpriestess",
"name": "High Priestess"
Expand Down
4 changes: 0 additions & 4 deletions terraform/.envrc

This file was deleted.

2 changes: 1 addition & 1 deletion terraform/_locals.tf
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ locals {
}

# get the lookup value from the wkspc_site_name map based on the workspace name
site_name = lookup(local.wkspc_site_name, terraform.workspace)
#site_name = lookup(local.wkspc_site_name, terraform.workspace)
}

# used in "a new hope" apigateway
Expand Down
5 changes: 0 additions & 5 deletions terraform/_outputs.tf
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,3 @@ output "stage_function_name" {
output "stage_url" {
value = aws_api_gateway_deployment.deployment.invoke_url
}


output "www-a" {
value = aws_route53_record.wkspc_www-a.fqdn
}
12 changes: 0 additions & 12 deletions terraform/r53.tf
Original file line number Diff line number Diff line change
@@ -1,15 +1,3 @@
data "aws_route53_zone" "main" {
name = var.www_domain_name
}

resource "aws_route53_record" "wkspc_www-a" {
zone_id = data.aws_route53_zone.main.zone_id
name = "${local.site_name}.${var.www_domain_name}"
type = "A"

alias {
name = aws_cloudfront_distribution.wkspc_www_s3_distribution.domain_name
zone_id = aws_cloudfront_distribution.wkspc_www_s3_distribution.hosted_zone_id
evaluate_target_health = false
}
}
58 changes: 0 additions & 58 deletions terraform/s3-web-files.tf
Original file line number Diff line number Diff line change
@@ -1,58 +0,0 @@
locals {
files = {
"index.html" = "text/html"
"script.js" = "application/javascript"
"custom.js" = "application/javascript"
"styles.css" = "text/css"
"images/storyteller.png" = "image/png"
"images/download.png" = "image/png"
"images/background.png" = "image/png"
"images/infobutton.png" = "image/png"
"dropzone.css" = "text/css"

# favicon resources
"favicon/android-chrome-192x192.png" = "image/png"
"favicon/android-chrome-512x512.png" = "image/png"
"favicon/apple-touch-icon.png" = "image/png"
"favicon/favicon-16x16.png" = "image/png"
"favicon/favicon-32x32.png" = "image/png"
"favicon/favicon.ico" = "image/x-icon"
"favicon/site.webmanifest" = "application/manifest+json"

}
}

resource "aws_s3_object" "wkspc_botc_www_files" {
depends_on = [
aws_s3_bucket_policy.wkspc_www_bucket_policy,
]
for_each = local.files

bucket = aws_s3_bucket.wkspc_www_bucket.id
key = each.key
source = "../www/${each.key}"
content_type = each.value
acl = "public-read"
etag = filemd5("../www/${each.key}")

tags = {
"BelongsToDist" = aws_cloudfront_distribution.wkspc_www_s3_distribution.id
}
}

# we need to create an s3 file/object (const.js) that contains the API Gateway
# URL so that the web page can call the API Gateway
resource "aws_s3_object" "botc_www_const_js" {
depends_on = [
aws_s3_bucket_policy.wkspc_www_bucket_policy,
aws_api_gateway_stage.api_stage,
]
bucket = aws_s3_bucket.wkspc_www_bucket.id
key = "const.js"
content = <<EOF
/* generated by terraform */
const API_GATEWAY_URL = "${aws_api_gateway_stage.api_stage.invoke_url}";
EOF
content_type = "application/javascript"
acl = "public-read"
}
Loading
Loading