diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..469d570 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,32 @@ +--- +name: Bug report +about: Create a report to help us improve +title: "Bug: " +labels: bug +assignees: bra1n + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..53777e9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature Request +about: Suggest an idea for this project +title: "Feature Request: " +labels: enhancement +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..53c470c --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at steffen@baumgart.biz. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..0ab1b1f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,81 @@ +# Contributing Guide + +Hi! I'm really excited that you are interested in contributing to this project. +Before submitting your contribution, please make sure to take a moment and read through the following guidelines: + +- [Code of Conduct](CODE_OF_CONDUCT.md) +- [Issue Reporting Guidelines](#issue-reporting-guidelines) +- [Pull Request Guidelines](#pull-request-guidelines) +- [Development Setup](#development-setup) +- [Project Structure](#project-structure) + +## Issue Reporting Guidelines + +- Report a new issue either through [GitHub](https://github.com/bra1n/townsquare/issues/new/choose) or [Email](mailto:steffen@baumgart.biz) +- Please include with your issue the browser and operating system you're using as well as steps necessary to reproduce the bug, if any +- Be patient, I'm working on this project in my spare time :-) + +## Pull Request Guidelines + +- The `master` branch is what is currently deployed to the website. All development should be done in dedicated branches. + +- 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. + +- If adding a new feature: + - Provide a convincing reason to add this feature. Ideally, you should open a suggestion issue first before working on it. + - Feel free to write a test for it, but so far I didn't have time for that. + +- 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. + +## Development Setup + +You will need [Node.js](http://nodejs.org) **version 8+** and a Chrome browser. + +After cloning the repo, run: + +``` bash +$ npm install +``` + +The development server can be started with `npm run serve`. + +### Committing Changes + +Commit messages should be verbose enough to allow someone else to follow your changes and should include references to issues that are being worked on. + +### Commonly used NPM scripts + +``` bash +# watch and auto re-build dist/ +$ npm run serve + +# build all dist files, including npm packages +$ npm run build + +# run linting scripts +$ npm run link +``` + +## Project Structure + +- **`dist`**: contains built files for distribution. + +- **`src`**: contains the source code. The codebase is written in ES2015. + + - **`assets`**: contains all graphical assets like images, fonts, icons, etc. + + - **`editions`**: edition logos and icons + + - **`fonts`**: webfonts used on the page + + - **`icons`**: character token icons + + - **`components`**: the internal components used in the project + + - **`modals`**: the modals have a separate subfolder + + - **`store`**: the VueX data store and modules diff --git a/README.md b/README.md index db65380..6193849 100644 --- a/README.md +++ b/README.md @@ -7,14 +7,26 @@ It is supposed to aid storytellers and allow them to quickly set up and capture [You can try it online!](https://bra1n.github.io/townsquare) -WORK IN PROGRESS +### Features + +- Public Town Square and Storyteller Grimoire (toggle with **shortcut \[G\]**) +- Supports custom script JSON generated by the [Script Tool](https://bloodontheclocktower.com/script) +- Live Session for Storyteller / Players +- Includes all 3 base editions and travelers +- Night sheet and reminder text for each character ability to help storytellers +- Many other customization options! + +## [Code of Conduct](CODE_OF_CONDUCT.md) + +## [Contributing](CONTRIBUTING.md) ## Acknowledgements and Copyrights -* [Blood on the Clocktower](https://bloodontheclocktower.com/) images, names and abilities by [The Pandemonium Institute](https://www.thepandemoniuminstitute.com/) +* [Blood on the Clocktower](https://bloodontheclocktower.com/) names and abilities by [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) * 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 -This project and its website are not affiliated with The Pandemonium Institute in any way. +This project and its website are provided free of charge and not affiliated with The Pandemonium Institute in any way. diff --git a/src/App.vue b/src/App.vue index ed7ba5a..c16020f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -14,8 +14,9 @@ - - + + + @@ -27,9 +28,11 @@ import Menu from "./components/Menu"; import RolesModal from "./components/modals/RolesModal"; import EditionModal from "./components/modals/EditionModal"; import Intro from "./components/Intro"; +import ReferenceModal from "./components/modals/ReferenceModal"; export default { components: { + ReferenceModal, Intro, TownInfo, TownSquare, @@ -46,7 +49,7 @@ export default { this.$refs.menu.takeScreenshot(dimensions); }, keyup({ key }) { - switch (key) { + switch (key.toLocaleLowerCase()) { case "g": this.$store.commit("toggleGrimoire"); break; @@ -54,7 +57,7 @@ export default { this.$refs.menu.addPlayer(); break; case "r": - this.$refs.menu.randomizeSeatings(); + this.$store.commit("toggleModal", "reference"); break; case "e": if (this.session.isSpectator) return; @@ -86,6 +89,12 @@ export default { url("assets/fonts/papyrus.svg#PapyrusW01") format("svg"); /* iOS 4.1- */ } +@font-face { + font-family: PiratesBay; + src: url("assets/fonts/piratesbay.ttf"); + font-display: swap; +} + html, body { font-size: 1.2em; @@ -121,6 +130,9 @@ h4, h5 { margin: 0; text-align: center; + font-family: PiratesBay, sans-serif; + letter-spacing: 1px; + font-weight: normal; } ul { diff --git a/src/assets/editions/custom.png b/src/assets/editions/custom.png new file mode 100644 index 0000000..bb1dfb2 Binary files /dev/null and b/src/assets/editions/custom.png differ diff --git a/src/assets/fonts/piratesbay.ttf b/src/assets/fonts/piratesbay.ttf new file mode 100644 index 0000000..ba5bbfb Binary files /dev/null and b/src/assets/fonts/piratesbay.ttf differ diff --git a/src/assets/icons/custom.png b/src/assets/icons/custom.png new file mode 100644 index 0000000..3e0590b Binary files /dev/null and b/src/assets/icons/custom.png differ diff --git a/src/components/Intro.vue b/src/components/Intro.vue index 6fd45c4..1c77474 100644 --- a/src/components/Intro.vue +++ b/src/components/Intro.vue @@ -1,12 +1,12 @@