Compare commits
192 Commits
Author | SHA1 | Date |
---|---|---|
bra1n | d9c2b17dc9 | |
bra1n | fb40d98fd6 | |
bra1n | b87307193f | |
bra1n | ece11dfcde | |
bra1n | 1c52b232c0 | |
bra1n | 55ea934304 | |
Steffen | d7e9647bf5 | |
Steffen | 723974b3d3 | |
Steffen | beabcb14a4 | |
Dae Lorant | 48cb4942a2 | |
Dae Lorant | a9724778a6 | |
Dae Lorant | 974bbb1a0f | |
Steffen | 4c529472b8 | |
James Long | 28cd156baa | |
James Long | 3a2ae90849 | |
Steffen | ea5b3c523f | |
Steffen | 54e224bba3 | |
Steffen | 5ca891e752 | |
Steffen | f98b43e304 | |
Steffen | 2a66dfff4b | |
Steffen | c77dd47397 | |
Alexander Fletcher | 729869df51 | |
Steffen | d0a117297c | |
Steffen | 75dd02c6a3 | |
Steffen | 4bd7ecbe03 | |
Steffen | 99f6b68fd7 | |
Steffen | 1c4ad9634a | |
Steffen | afd593d632 | |
Nathan Ferguson | 84f6cab2d8 | |
Steffen | 5af776bfbf | |
David Lorant | dbb4c1a1ef | |
Steffen | 2b41f3145e | |
Steffen | 9575a8eca3 | |
Steffen | 0bd590c80e | |
Steffen | b9ae60c652 | |
Steffen | 4cbab79bae | |
Steffen | d567335499 | |
Steffen | 1c63ee6208 | |
eddgabriel | 2a0f025b0c | |
eddgabriel | 11e1e99a94 | |
Steffen | a9eb07ad14 | |
Steffen | 350d2a5a18 | |
Steffen | 0ca33f0d53 | |
eddgabriel | bf393bbc71 | |
eddgabriel | a73d6ce73c | |
eddgabriel | 31265aa4fd | |
Steffen | a3cb8570f6 | |
eddgabriel | 8649aa4eec | |
Steffen | 9e6ff3e69e | |
Steffen | ffe69a8dcb | |
eddgabriel | 6a3fdfa384 | |
Steffen | 83889b21dd | |
eddgabriel | c93b50df42 | |
Steffen | 8a6da3d7ab | |
Steffen | 7ebf296cfc | |
eddgabriel | 772c94a6c6 | |
Steffen | 45dfb124f7 | |
eddgabriel | 401312ab09 | |
Steffen | c00b89824c | |
eddgabriel | 59c39773aa | |
eddgabriel | fa1feb3c0b | |
Steffen | e1ba442af7 | |
eddgabriel | 5780c155d3 | |
eddgabriel | 9517a3e262 | |
Steffen | 18746ab642 | |
Steffen | 29357ecf54 | |
eddgabriel | f664bdf024 | |
eddgabriel | 9fff5541bb | |
Steffen | 0199108e2f | |
eddgabriel | a35c6f3c14 | |
Steffen | 9bafcc2c61 | |
eddgabriel | fb2e81c299 | |
Steffen | af2587295d | |
Steffen | 97121e81e7 | |
Steffen | 3d696c85de | |
Steffen | ff217761ff | |
Steffen | 30aa5cdf8a | |
Steffen | fe51d60839 | |
Steffen | 282291e6ec | |
eddgabriel | 2a751b7fc2 | |
eddgabriel | 6fd7a0f0ee | |
Steffen | ef0ab81e3c | |
Steffen | dc4b2d5de8 | |
Steffen | 358d5c156d | |
eddgabriel | 073494974e | |
Steffen | 24134324de | |
Jul Gvoz | 233d972e33 | |
Steffen | 3795b3ee2b | |
Steffen | b02b47cc2c | |
Steffen | ab2ceb0139 | |
Steffen | fc9209d51f | |
eddgabriel | b57c81aa13 | |
Steffen | 7d212cb689 | |
Steffen | a1e1b627db | |
eddgabriel | 4f4031dcc4 | |
Steffen | 804b77546e | |
JulGvoz | bf2cec0ec5 | |
Jul Gvoz | 2e503eba7f | |
Steffen | 661aac9bcb | |
dependabot[bot] | 4d373d313f | |
Steffen | 4d862a9bd2 | |
Steffen | 26c5ec6741 | |
Steffen | 6b38a352ad | |
Steffen | 1afec12478 | |
Steffen | 1f4871b3b0 | |
Steffen | 965001f065 | |
eddgabriel | 5804f67cac | |
Steffen | 300395de08 | |
Steffen | f45601b8a7 | |
Steffen | 04f0282fe1 | |
Steffen | 2d98f44d14 | |
Steffen | af05bd19c8 | |
Steffen | d86ee3b7cf | |
Steffen | f718d8b24b | |
nicfreeman1209 | 5457a65de9 | |
Steffen | 184a77a039 | |
nicfreeman1209 | 7fa763cd26 | |
nicfreeman1209 | dda94d75df | |
nicfreeman1209 | 5937209b35 | |
Steffen | b73de453a5 | |
Steffen | bdffdc6b9b | |
Steffen | d62a39ca89 | |
Steffen | ed8bcb6b30 | |
Steffen | ccb48f16fd | |
Steffen | c5d8d2beaa | |
Steffen | c868f0930a | |
Steffen | d50a90de21 | |
Steffen | e911d07869 | |
Steffen | c6209a2510 | |
Steffen | 9eb9f44e32 | |
Steffen | 8d4bf876a7 | |
Steffen | beeb7b96f5 | |
nicfreeman1209 | 4d2afadc01 | |
Steffen | 37b61d90ef | |
Steffen | 3c250eff86 | |
Steffen | 0f71e49898 | |
Steffen | 71234f3ef9 | |
nicfreeman1209 | 05023583da | |
nicfreeman1209 | 19ad2adc17 | |
nicfreeman1209 | 205bd0ba79 | |
nicfreeman1209 | 5aba663403 | |
nicfreeman1209 | 8dacfea0cb | |
nicfreeman1209 | 946bafec5b | |
nicfreeman1209 | 335c2dd211 | |
nicfreeman1209 | b9b9e59b53 | |
Andrew Conant | a71ed650b6 | |
Andrew Conant | 81c449e149 | |
nicfreeman1209 | 00e1446e64 | |
nicfreeman1209 | 4067f45ee2 | |
nicfreeman1209 | e762e89485 | |
nicfreeman1209 | 14de625811 | |
nicfreeman1209 | f0619bdaeb | |
Steffen | fb87f6f8cb | |
nicfreeman1209 | 5edc476b08 | |
nicfreeman1209 | c39aef622e | |
eddgabriel | 73ce0058c2 | |
nicfreeman1209 | 943d228e98 | |
Steffen | ef28198679 | |
Steffen | a99d996419 | |
Steffen | fe0f0bfbf1 | |
Steffen | 02fede30ef | |
Steffen | 8ce8f07d26 | |
Steffen | 3ae36e2f0f | |
eddgabriel | c2bdfec625 | |
eddgabriel | 7a7b0fd323 | |
Adrian Irving-Beer | a66892c30d | |
Steffen | 7e53bab927 | |
Steffen | 82bd7f7fff | |
nicfreeman1209 | 654a4d02cd | |
nicfreeman1209 | 230507a67f | |
nicfreeman1209 | 44a0297be7 | |
nicfreeman1209 | 6d3c32675b | |
nicfreeman1209 | a2fb33eafe | |
Steffen | b96f14ae02 | |
eddgabriel | e24080417f | |
eddgabriel | fb0f7a7304 | |
Steffen | 0d41e9fd46 | |
Steffen | 2b5c98d661 | |
Steffen | a7852115fe | |
Steffen | d8861949c4 | |
Steffen | a6443c945a | |
Steffen | 1dae16f924 | |
Steffen | d4e144f0f0 | |
nicfreeman1209 | 3c849942fe | |
Steffen | 124be01c70 | |
eddgabriel | 1dc837d12a | |
nicfreeman1209 | b936cd2286 | |
nicfreeman1209 | 2493d3353a | |
nicfreeman1209 | 1b93347d94 | |
Steffen | a0a2760939 | |
nicfreeman1209 | d3b2f167ef | |
Steffen | 52aff7b544 |
|
@ -9,6 +9,8 @@ module.exports = {
|
|||
},
|
||||
rules: {
|
||||
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
|
||||
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off"
|
||||
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
|
||||
"vue/multi-word-component-names": "off",
|
||||
"vue/no-reserved-component-names": "off",
|
||||
}
|
||||
};
|
||||
|
|
|
@ -4,6 +4,7 @@ on:
|
|||
types: [assigned, opened, synchronize, reopened, labeled, unlabeled]
|
||||
branches:
|
||||
- main
|
||||
- develop
|
||||
jobs:
|
||||
build:
|
||||
name: Check Actions
|
||||
|
|
|
@ -1,67 +0,0 @@
|
|||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
#
|
||||
# ******** NOTE ********
|
||||
# We have attempted to detect the languages in your repository. Please check
|
||||
# the `language` matrix defined below to confirm you have the correct set of
|
||||
# supported CodeQL languages.
|
||||
#
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ main ]
|
||||
schedule:
|
||||
- cron: '27 22 * * 1'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'javascript' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
||||
# Learn more:
|
||||
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
|
||||
#- run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
|
@ -5,19 +5,23 @@ on:
|
|||
- main
|
||||
jobs:
|
||||
build-and-deploy:
|
||||
concurrency: ci-${{ github.ref }}
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v1
|
||||
- name: Checkout 🛎️
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
npm install
|
||||
npm run-script build
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '18'
|
||||
|
||||
- name: Deploy
|
||||
uses: JamesIves/github-pages-deploy-action@releases/v3
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
BRANCH: gh-pages
|
||||
FOLDER: dist
|
||||
- name: Install and Build 🔧
|
||||
run: |
|
||||
npm ci
|
||||
npm run build
|
||||
|
||||
- name: Deploy 🚀
|
||||
uses: JamesIves/github-pages-deploy-action@v4.2.5
|
||||
with:
|
||||
branch: gh-pages
|
||||
folder: dist
|
||||
|
|
|
@ -1,53 +1,20 @@
|
|||
---
|
||||
###########################
|
||||
###########################
|
||||
## Linter GitHub Actions ##
|
||||
###########################
|
||||
###########################
|
||||
name: Lint Code Base
|
||||
|
||||
#
|
||||
# Documentation:
|
||||
# https://help.github.com/en/articles/workflow-syntax-for-github-actions
|
||||
#
|
||||
|
||||
#############################
|
||||
# Start the job on all push #
|
||||
#############################
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'gh-pages'
|
||||
branches: [ main, develop ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ main ]
|
||||
branches: [ main, develop ]
|
||||
|
||||
###############
|
||||
# Set the Job #
|
||||
###############
|
||||
jobs:
|
||||
build:
|
||||
# Name the Job
|
||||
name: Lint Code Base
|
||||
# Set the agent to run on
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
##################
|
||||
# Load all steps #
|
||||
##################
|
||||
steps:
|
||||
##########################
|
||||
# Checkout the code base #
|
||||
##########################
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: '14'
|
||||
- run: npm install
|
||||
- run: npm run lint-ci
|
||||
|
||||
################################
|
||||
# Run Linter against code base #
|
||||
################################
|
||||
- name: Lint Code Base
|
||||
uses: docker://github/super-linter:v2.2.0
|
||||
env:
|
||||
VALIDATE_ALL_CODEBASE: false
|
||||
VALIDATE_ANSIBLE: false
|
||||
DEFAULT_BRANCH: "main"
|
||||
|
|
72
CHANGELOG.md
|
@ -1,5 +1,77 @@
|
|||
# Release Notes
|
||||
|
||||
### Version 2.16.2
|
||||
- fixed custom script format to support new script tool JSON
|
||||
- updated packages to be compatible with Node >= 18 again
|
||||
|
||||
---
|
||||
|
||||
### Version 2.16.1
|
||||
- Updated character night order to be consistent with script tool
|
||||
|
||||
---
|
||||
|
||||
### Version 2.16.0
|
||||
- Add ability to use json from clipboard to upload script (by @alexanderfletcher)
|
||||
|
||||
---
|
||||
|
||||
### Version 2.15.4
|
||||
- fixed flickering of add reminder token
|
||||
- added redirect to Chinese version
|
||||
|
||||
---
|
||||
|
||||
### Version 2.15.3
|
||||
- add Huntsman/Damsel, Noble, Al-Hadikhia, Golem, Fearmonger, Puzzlemaster, Alchemist, Engineer, Riot, Psychopath, Atheist, Nightwatchman to list of available characters
|
||||
- fixed game state JSON not handling custom Fabled correctly
|
||||
|
||||
---
|
||||
|
||||
### Version 2.15.2
|
||||
- added mobile web application support
|
||||
- show correct number of leaves on roles with global reminders
|
||||
- fixed a bug with traveler list showing up when assigning demon bluffs
|
||||
- fixed a bug with homebrew scripts that contained negative night order positions
|
||||
|
||||
---
|
||||
|
||||
### Version 2.15.1
|
||||
- fix Mephit not showing up on scripts, futureproof Mephit name change
|
||||
- add Boomdandy to list of available characters
|
||||
|
||||
---
|
||||
|
||||
### Version 2.15.0
|
||||
- clean up transparent portions of icons
|
||||
- add Magician & LLeech to list of available characters
|
||||
|
||||
---
|
||||
|
||||
### Version 2.14.0
|
||||
- added Farmer to list of available characters
|
||||
|
||||
---
|
||||
|
||||
### Version 2.13.0
|
||||
- fix players being moved or removed during nomination
|
||||
- add vue linter
|
||||
- use "Exile" rather than "Banishment" for exiles
|
||||
- added global animation toggle for better performance
|
||||
- added record vote history toggle to session menu, and clear vote history button
|
||||
- add support for custom Fabled characters
|
||||
- show Jinxed interactions on character reference list
|
||||
- add 'marked for execution' indicator
|
||||
|
||||
---
|
||||
|
||||
### Version 2.12.0
|
||||
- tweak reference sheet to better fit screen in single column layout
|
||||
- add warning icon overlay for setup roles on character assignment modal
|
||||
- added Heretic and Marionette plus King/Choirboy and the Gangster to list of available characters
|
||||
|
||||
---
|
||||
|
||||
### Version 2.11.0
|
||||
- new design for character reference sheet
|
||||
- automatically switch to grimoire view when joining a session through a link
|
||||
|
|
|
@ -19,6 +19,9 @@ Before submitting your contribution, please make sure to take a moment and read
|
|||
|
||||
- The `main` branch is what is currently deployed to the website. All development should be done in dedicated branches.
|
||||
|
||||
- The `develop` branch contains the changes that will be deployed to main next. In order to prepare a release, development
|
||||
branches should have their Pull Request against `develop` and only releases should be merged from `develop` into `main`.
|
||||
|
||||
- Work in the `src` folder and **DO NOT** checkin `dist` in the commits.
|
||||
|
||||
- It's OK to have multiple small commits as you work on the PR - GitHub will automatically squash it before merging.
|
||||
|
@ -30,6 +33,9 @@ Before submitting your contribution, please make sure to take a moment and read
|
|||
- If fixing a bug:
|
||||
- If you are resolving a special issue, add `(fix #xxxx[,#xxxx])` (#xxxx is the issue id) in your PR title for a better release log, e.g. `update entities encoding/decoding (fix #3899)`.
|
||||
- Provide a detailed description of the bug in the PR. Live demo preferred.
|
||||
|
||||
- You'll need to update the `CHANGELOG.md` with a description of your changes before you open a pull request and your code
|
||||
should pass the lint check.
|
||||
|
||||
## Development Setup
|
||||
|
||||
|
|
12
README.md
|
@ -1,5 +1,7 @@
|
|||
# Blood on the Clocktower Grimoire & Town Square
|
||||
|
||||
> :warning: **This project is no longer actively maintained** and will only receive critical bug fixes. :warning:
|
||||
|
||||
![social](https://user-images.githubusercontent.com/325521/102897760-d1147b00-4468-11eb-9d7b-63a204bc9fc1.png)
|
||||
|
||||
This is an unofficial online tool to run Blood on the Clocktower games through Discord or other digital means.
|
||||
|
@ -27,7 +29,7 @@ If you want to learn more about how to use the app as a player, [JayBotC](https:
|
|||
|
||||
### Custom Script Support
|
||||
|
||||
Any custom script generated by the official [Script Tool](https://bloodontheclocktower.com/script) is supported out of
|
||||
Any custom script generated by the official [Script Tool](https://script.bloodontheclocktower.com/) is supported out of
|
||||
the box and you only need to upload it to get the selected set of characters into your grimoire. If you want to customize
|
||||
your script further, there is an additional `"_meta"` object that you can add to the script like you would add a normal
|
||||
character:
|
||||
|
@ -90,13 +92,15 @@ For base game characters, it is sufficient to only provide the ID, similar to wh
|
|||
_Note_: custom images will only be visible after enabling them in the Grimoire menu!
|
||||
- **edition**: the ID of the edition for this character. can be left blank or "custom"
|
||||
- **firstNight** / **otherNight**: the position that this character acts on the first / other nights, compared to all
|
||||
other characters
|
||||
other characters<br>
|
||||
_Note_: must be a positive number or zero, with zero being treated as "does not act during the night"
|
||||
- **firstNightReminder** / **otherNightReminder**: reminder text for first / other nights
|
||||
- **reminders**: reminder tokens, should be an empty array `[]` if none
|
||||
- **remindersGlobal**: global reminder tokens that will always be available, no matter if the character is assigned to a player or not
|
||||
- **setup**: whether this token affects setup (orange leaf), like the Drunk or Baron
|
||||
- **name**: the displayed name of this character
|
||||
- **team**: the team of the character, has to be one of `townsfolk`, `outsider`, `minion`, `demon` or `traveler`
|
||||
- **team**: the team of the character, has to be one of `townsfolk`, `outsider`, `minion`, `demon`, `traveler` or `fabled`<br>
|
||||
_Note_: if you create a custom Fabled character, it will be automatically added to the game when the custom script is loaded
|
||||
- **ability**: the displayed ability text of the character
|
||||
|
||||
## [Code of Conduct](CODE_OF_CONDUCT.md)
|
||||
|
@ -108,7 +112,7 @@ For base game characters, it is sufficient to only provide the ID, similar to wh
|
|||
* [Blood on the Clocktower](https://bloodontheclocktower.com/) is a trademark of Steven Medway and [The Pandemonium Institute](https://www.thepandemoniuminstitute.com/)
|
||||
* Night reminders and other auxiliary text written by [Ben Finney](http://bignose.whitetree.org/projects/botc/diy/)
|
||||
* Iconography by [Font Awesome](https://fontawesome.com/)
|
||||
* Background image by [Ryan Maloney](https://www.artstation.com/maloney94)
|
||||
* Background image copyright and permission granted by [Ryan Maloney](https://www.artstation.com/maloney94)
|
||||
* Webfonts by [Google Fonts](https://fonts.google.com/) and [Online Web Fonts](https://www.onlinewebfonts.com/)
|
||||
* All other images and icons are copyright to their respective owners
|
||||
|
||||
|
|
23
package.json
|
@ -1,12 +1,13 @@
|
|||
{
|
||||
"name": "townsquare",
|
||||
"version": "2.11.0",
|
||||
"version": "2.16.2",
|
||||
"description": "Blood on the Clocktower Town Square",
|
||||
"author": "Steffen Baumgart",
|
||||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
"build": "vue-cli-service build ./src/main.js",
|
||||
"lint": "vue-cli-service lint"
|
||||
"lint": "vue-cli-service lint",
|
||||
"lint-ci": "vue-cli-service lint --no-fix --max-warnings=0"
|
||||
},
|
||||
"main": "App.vue",
|
||||
"dependencies": {
|
||||
|
@ -14,22 +15,22 @@
|
|||
"@fortawesome/free-brands-svg-icons": "^5.15.1",
|
||||
"@fortawesome/free-solid-svg-icons": "^5.15.1",
|
||||
"@fortawesome/vue-fontawesome": "^0.1.10",
|
||||
"@vue/cli-service": "^4.5.9",
|
||||
"@vue/cli-service": "^5.0.8",
|
||||
"prom-client": "^13.0.0",
|
||||
"sass": "^1.30.0",
|
||||
"sass-loader": "^8.0.2",
|
||||
"vue": "^2.6.12",
|
||||
"vue-template-compiler": "^2.6.12",
|
||||
"vue-template-compiler": "^2.7.15",
|
||||
"vuex": "^3.6.0",
|
||||
"ws": "^7.4.1"
|
||||
"ws": "^7.4.6"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-eslint": "^4.5.9",
|
||||
"@vue/eslint-config-prettier": "^6.0.0",
|
||||
"eslint": "^6.7.2",
|
||||
"eslint-plugin-prettier": "^3.2.0",
|
||||
"eslint-plugin-vue": "^6.2.2",
|
||||
"prettier": "^1.19.1"
|
||||
"@vue/cli-plugin-eslint": "^5.0.8",
|
||||
"@vue/eslint-config-prettier": "^8.0.0",
|
||||
"eslint": "^8.53.0",
|
||||
"eslint-plugin-prettier": "^5.0.1",
|
||||
"eslint-plugin-vue": "^9.18.1",
|
||||
"prettier": "^3.0.3"
|
||||
},
|
||||
"keywords": [
|
||||
"botc",
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<title>Blood on the Clocktower Town Square</title>
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="static/apple-icon-57x57.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="static/apple-icon-60x60.png">
|
||||
|
|
|
@ -12,10 +12,14 @@ register.setDefaultLabels({
|
|||
|
||||
const PING_INTERVAL = 30000; // 30 seconds
|
||||
|
||||
const server = https.createServer({
|
||||
cert: fs.readFileSync("cert.pem"),
|
||||
key: fs.readFileSync("key.pem")
|
||||
});
|
||||
const options = {};
|
||||
|
||||
if (process.env.NODE_ENV !== "development") {
|
||||
options.cert = fs.readFileSync("cert.pem");
|
||||
options.key = fs.readFileSync("key.pem");
|
||||
}
|
||||
|
||||
const server = https.createServer(options);
|
||||
const wss = new WebSocket.Server({
|
||||
...(process.env.NODE_ENV === "development" ? { port: 8081 } : { server }),
|
||||
verifyClient: info =>
|
||||
|
@ -234,7 +238,7 @@ const interval = setInterval(function ping() {
|
|||
ws.readyState === WebSocket.CONNECTING)
|
||||
)
|
||||
) {
|
||||
metrics.channels_list.remove([channel]);
|
||||
metrics.channels_list.remove({ name: channel });
|
||||
delete channels[channel];
|
||||
}
|
||||
}
|
||||
|
|
17
src/App.vue
|
@ -3,7 +3,10 @@
|
|||
id="app"
|
||||
@keyup="keyup"
|
||||
tabindex="-1"
|
||||
:class="{ night: grimoire.isNight }"
|
||||
:class="{
|
||||
night: grimoire.isNight,
|
||||
static: grimoire.isStatic
|
||||
}"
|
||||
:style="{
|
||||
backgroundImage: grimoire.background
|
||||
? `url('${grimoire.background}')`
|
||||
|
@ -110,13 +113,13 @@ export default {
|
|||
this.$store.commit("toggleModal", "roles");
|
||||
break;
|
||||
case "v":
|
||||
if (this.session.voteHistory.length) {
|
||||
if (this.session.voteHistory.length || !this.session.isSpectator) {
|
||||
this.$store.commit("toggleModal", "voteHistory");
|
||||
}
|
||||
break;
|
||||
case "s":
|
||||
if (this.session.isSpectator) return;
|
||||
this.$store.commit("toggleNight");
|
||||
this.$refs.menu.toggleNight();
|
||||
break;
|
||||
case "escape":
|
||||
this.$store.commit("toggleModal");
|
||||
|
@ -202,6 +205,14 @@ ul {
|
|||
align-items: center;
|
||||
align-content: center;
|
||||
justify-content: center;
|
||||
|
||||
// disable all animations
|
||||
&.static *,
|
||||
&.static *:after,
|
||||
&.static *:before {
|
||||
transition: none !important;
|
||||
animation: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
#version {
|
||||
|
|
After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 125 KiB |
After Width: | Height: | Size: 131 KiB |
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 181 KiB |
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 94 KiB |
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 158 KiB |
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 105 KiB |
After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 123 KiB |
Before Width: | Height: | Size: 174 KiB After Width: | Height: | Size: 155 KiB |
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 105 KiB |
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 182 KiB After Width: | Height: | Size: 156 KiB |
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 183 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 114 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 142 KiB |
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 128 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 103 KiB |
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 180 KiB After Width: | Height: | Size: 161 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 81 KiB |
Before Width: | Height: | Size: 203 KiB After Width: | Height: | Size: 185 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 899 KiB |
Before Width: | Height: | Size: 113 KiB After Width: | Height: | Size: 90 KiB |
Before Width: | Height: | Size: 178 KiB After Width: | Height: | Size: 156 KiB |
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 122 KiB |
After Width: | Height: | Size: 109 KiB |
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 105 KiB |
After Width: | Height: | Size: 84 KiB |
After Width: | Height: | Size: 88 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 97 KiB |
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 111 KiB |
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 125 KiB After Width: | Height: | Size: 123 KiB |
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 110 KiB |
After Width: | Height: | Size: 130 KiB |
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 131 KiB After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 168 KiB |
Before Width: | Height: | Size: 136 KiB After Width: | Height: | Size: 111 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 77 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 99 KiB |
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 147 KiB |
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 72 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 76 KiB |
After Width: | Height: | Size: 125 KiB |
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 99 KiB |
Before Width: | Height: | Size: 139 KiB After Width: | Height: | Size: 148 KiB |
Before Width: | Height: | Size: 155 KiB After Width: | Height: | Size: 143 KiB |
Before Width: | Height: | Size: 116 KiB After Width: | Height: | Size: 110 KiB |
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 91 KiB |
After Width: | Height: | Size: 82 KiB |
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 120 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 87 KiB |
After Width: | Height: | Size: 121 KiB |
After Width: | Height: | Size: 68 KiB |