Compare commits

..

No commits in common. "d9c2b17dc9b2d7b091b55c988707784f12980f44" and "1c52b232c03a8ea31d771028aad8d6a001b0784f" have entirely different histories.

7 changed files with 17763 additions and 4794 deletions

View File

@ -9,8 +9,6 @@ module.exports = {
}, },
rules: { rules: {
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off", "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",
} }
}; };

View File

@ -13,7 +13,7 @@ jobs:
- uses: actions/setup-node@v2 - uses: actions/setup-node@v2
with: with:
node-version: '18' node-version: '14'
- name: Install and Build 🔧 - name: Install and Build 🔧
run: | run: |

View File

@ -1,13 +1,7 @@
# Release Notes # 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 ### Version 2.16.1
- Updated character night order to be consistent with script tool Updated character night order to be consistent with script tool
--- ---

22463
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{ {
"name": "townsquare", "name": "townsquare",
"version": "2.16.2", "version": "2.16.0",
"description": "Blood on the Clocktower Town Square", "description": "Blood on the Clocktower Town Square",
"author": "Steffen Baumgart", "author": "Steffen Baumgart",
"scripts": { "scripts": {
@ -15,22 +15,22 @@
"@fortawesome/free-brands-svg-icons": "^5.15.1", "@fortawesome/free-brands-svg-icons": "^5.15.1",
"@fortawesome/free-solid-svg-icons": "^5.15.1", "@fortawesome/free-solid-svg-icons": "^5.15.1",
"@fortawesome/vue-fontawesome": "^0.1.10", "@fortawesome/vue-fontawesome": "^0.1.10",
"@vue/cli-service": "^5.0.8", "@vue/cli-service": "^4.5.9",
"prom-client": "^13.0.0", "prom-client": "^13.0.0",
"sass": "^1.30.0", "sass": "^1.30.0",
"sass-loader": "^8.0.2", "sass-loader": "^8.0.2",
"vue": "^2.6.12", "vue": "^2.6.12",
"vue-template-compiler": "^2.7.15", "vue-template-compiler": "^2.6.12",
"vuex": "^3.6.0", "vuex": "^3.6.0",
"ws": "^7.4.6" "ws": "^7.4.6"
}, },
"devDependencies": { "devDependencies": {
"@vue/cli-plugin-eslint": "^5.0.8", "@vue/cli-plugin-eslint": "^4.5.9",
"@vue/eslint-config-prettier": "^8.0.0", "@vue/eslint-config-prettier": "^6.0.0",
"eslint": "^8.53.0", "eslint": "^6.7.2",
"eslint-plugin-prettier": "^5.0.1", "eslint-plugin-prettier": "^3.2.0",
"eslint-plugin-vue": "^9.18.1", "eslint-plugin-vue": "^6.2.2",
"prettier": "^3.0.3" "prettier": "^1.19.1"
}, },
"keywords": [ "keywords": [
"botc", "botc",

View File

@ -257,7 +257,6 @@ export default {
</script> </script>
<style lang="scss"> <style lang="scss">
@use "sass:math";
@import "../vars.scss"; @import "../vars.scss";
#townsquare { #townsquare {
@ -302,14 +301,14 @@ export default {
} }
@mixin on-circle($item-count) { @mixin on-circle($item-count) {
$angle: math.div(360, $item-count); $angle: (360 / $item-count);
$rot: 0; $rot: 0;
// rotation and tooltip placement // rotation and tooltip placement
@for $i from 1 through $item-count { @for $i from 1 through $item-count {
&:nth-child(#{$i}) { &:nth-child(#{$i}) {
transform: rotate($rot * 1deg); transform: rotate($rot * 1deg);
@if $i - 1 <= math.div($item-count, 2) { @if $i - 1 <= $item-count / 2 {
// first half of players // first half of players
z-index: $item-count - $i + 1; z-index: $item-count - $i + 1;
// open menu on the left // open menu on the left
@ -373,15 +372,15 @@ export default {
} }
// move reminders closer to the sides of the circle // move reminders closer to the sides of the circle
$q: math.div($item-count, 4); $q: $item-count / 4;
$x: $i - 1; $x: $i - 1;
@if $x < $q or ($x >= math.div($item-count, 2) and $x < $q * 3) { @if $x < $q or ($x >= $item-count / 2 and $x < $q * 3) {
.player { .player {
margin-bottom: -10% + 20% * (1 - math.div($x % $q, $q)); margin-bottom: -10% + 20% * (1 - ($x % $q / $q));
} }
} @else { } @else {
.player { .player {
margin-bottom: -10% + 20% * math.div($x % $q, $q); margin-bottom: -10% + 20% * ($x % $q / $q);
} }
} }
} }

View File

@ -170,7 +170,6 @@ export default {
}, },
parseRoles(roles) { parseRoles(roles) {
if (!roles || !roles.length) return; if (!roles || !roles.length) return;
roles = roles.map(role => typeof role === "string" ? { id: role } : role);
const metaIndex = roles.findIndex(({ id }) => id === "_meta"); const metaIndex = roles.findIndex(({ id }) => id === "_meta");
let meta = {}; let meta = {};
if (metaIndex > -1) { if (metaIndex > -1) {
@ -182,11 +181,11 @@ export default {
Object.assign({}, meta, { id: "custom" }) Object.assign({}, meta, { id: "custom" })
); );
// check for fabled and set those too, if present // check for fabled and set those too, if present
if (roles.some((role) => this.$store.state.fabled.has(role.id || role))) { if (roles.some(({ id }) => this.$store.state.fabled.has(id))) {
const fabled = []; const fabled = [];
roles.forEach((role) => { roles.forEach(({ id }) => {
if (this.$store.state.fabled.has(role.id || role)) { if (this.$store.state.fabled.has(id)) {
fabled.push(this.$store.state.fabled.get(role.id || role)); fabled.push(this.$store.state.fabled.get(id));
} }
}); });
this.$store.commit("players/setFabled", { fabled }); this.$store.commit("players/setFabled", { fabled });