Skip to content

Commit

Permalink
Merge pull request #161 from dnd-al-krk/add_first_game_guide_update_l…
Browse files Browse the repository at this point in the history
…inks
  • Loading branch information
ivellios authored Mar 1, 2023
2 parents b2868cf + 58022a9 commit 800de04
Show file tree
Hide file tree
Showing 6 changed files with 151 additions and 38 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "portAL",
"version": "1.3.3",
"version": "1.3.4",
"private": true,
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.6",
Expand Down
2 changes: 2 additions & 0 deletions src/App.js
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import Grid from "@material-ui/core/Grid/Grid";
import Hidden from "@material-ui/core/Hidden/Hidden";
import {Terms} from "./common/Terms";
import CookieConsent from "react-cookie-consent";
import {FirstGame} from "./common/FirstGame";


const portalStore = new PortalStore();
Expand Down Expand Up @@ -72,6 +73,7 @@ class App extends Component {
<Route exact path="/register" component={Register}/>
<Route exact path="/register/activated" component={RegisterActive}/>
<Route exact path="/terms" component={Terms}/>
<Route exact path="/poradnik-pierwsza-sesja" component={FirstGame}/>
</Grid>
</Grid>
</PushedDiv>
Expand Down
13 changes: 13 additions & 0 deletions src/common/ExternalLink.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import React from "react";

const ExternalLink = ({ url, children }) => {

const onClick = event => {
event.preventDefault();
window.open(url)
}

return (<a href="#" onClick={onClick}>{children}</a>)
}

export default ExternalLink;
86 changes: 86 additions & 0 deletions src/common/FirstGame.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import React from "react";
import Typography from "@material-ui/core/Typography/Typography";
import withStyles from "@material-ui/core/styles/withStyles";
import {Link} from "react-router-dom";
import ExternalLink from "./ExternalLink";


const styles = (theme) => ({
root: {
paddingTop: theme.spacing(4),
paddingLeft: theme.spacing(16),
paddingRight: theme.spacing(16),
},
header: {
marginBottom: theme.spacing(4),
},
text: {
marginBottom: theme.spacing(2),
fontSize: "1.4em"
}
});


@withStyles(styles, {withTheme:true})
export class FirstGame extends React.Component {
render() {
const {classes} = this.props;

return (
<div className={classes.root}>
<Typography variant="h2" className={classes.header}>
Poradnik: Twoja pierwsza sesja w OPK
</Typography>
<Typography variant="body1" className={classes.text}>
<strong>Nie można grać w D&D, nie mając swojej postaci.</strong>
</Typography>
<Typography variant="body1" className={classes.text}>
Przygotuj postać poziomu 1, zgodnie z podstawowymi regułami,
które można znaleźć na <ExternalLink url="https://dnd.wizards.com/what-is-dnd/basic-rules">stronie Wizards of the Coast</ExternalLink>.
Stosujemy zasady <strong>Point Buy i Starting Equipment</strong>
(nie losujemy statystyk ani startowego złota!) – szczegółowe objaśnienia znajdziesz w pliku z zasadami OPK,
ale <strong>postaci oparte na podstawowych regułach i Podręczniku Gracza/Player’s Handbook (PHB) są zawsze dozwolone.</strong>{' '}
Nie musisz znać wszystkich zasad by zagrać.
</Typography>
<Typography variant="body1" className={classes.text}>
Mistrz Gry wyjaśni i poprowadzi cię przez rozgrywkę. Na początek wystarczy zapoznać się z rozdziałami 1-4
oraz 7-9 (ewentualnie 10, jeśli chcesz grać postacią używającą zaklęć) podstawowych reguł, ale większość
nauki zasad odbywa się przez praktykę. Nie przejmuj się zanadto początkowymi wyborami: według reguł OPK
do poziomu 5 możesz niemal dowolnie przebudowywać swoją postać, by dopasować ją do swoich oczekiwań.
</Typography>
<Typography variant="body1" className={classes.text}>
Jeśli podczas tworzenia postaci masz jakiekolwiek problemy lub wątpliwości napisz na
{' '}<ExternalLink url="https://discord.gg/tfnyPWF4Jf">Discordzie OPK w kanale <strong>#tworzenie-postaci</strong></ExternalLink>{' '}
prośbę o to, żeby ktoś ci pomógł taką postać przygotować. Zresztą, nawet jeśli umiesz stworzyć postać sam,
warto na wszelki wypadek zapytać, czy jest ona stworzona w sposób zgodny z regułami OPK
(szkoda marnować na to czas swój i pozostałych graczy podczas sesji).
</Typography>
<Typography variant="body1" className={classes.text}>
Następnie, załóż konto na naszym portalu i dodaj swoją postać. Konto to pozwoli ci przeglądać dostępne
rozgrywki oraz postaci własne i innych graczy.
</Typography>
<Typography variant="body1" className={classes.text}>
Znajdź dogodny dla siebie termin w zakładce <Link to="/games">Next Game Sessions</Link> oznaczony <strong>Tier 1</strong> (szczebel pierwszy,
postaci 1-4 poziomu) i zajmij w nim miejsce przyciskiem <strong>Join Game</strong>.<br/>
<strong>To takie proste!</strong>
</Typography>
<Typography variant="body1" className={classes.text}>
Nie, nie musisz nikogo uprzedzać. Nie musisz pytać o zdanie ani o pozwolenie. Za nic nie musisz płacić
(choć dobrym zwyczajem jest zamawianie czegoś przy barze pubu, który udostępnia nam stoliki na spotkania).
Po prostu zapisz się i przyjdź. Prawie wszystkie sesje odbywają się w R’lyeh Cafe, na Kurniki 3 w Krakowie,
w godzinach podanych przy konkretnej sesji (zazwyczaj po 17 w tygodniu i po 13 w weekendy).
Gdy się już wciągniesz, zapoznaj się z oficjalnymi podręcznikami i rozwijaj zgodnie z nimi swoje postaci.
Cały bogaty świat D&D masz na wyciągnięcie ręki.
</Typography>
<Typography variant="body1" className={classes.text}>
<strong>Masz ochotę zostać DM-em?</strong><br/>
Zgłoś chęć poprowadzenia rozgrywki w OPK na discordzie, a po krótkiej weryfikacji otrzymasz dostęp
do materiałów i prawo do zakładania stolików. Prowadzenie jest prostsze niż się wydaje!
</Typography>
<Typography variant="body1" className={classes.text}>
<strong>Do zobaczenia na sesjach!</strong>
</Typography>
</div>
)
}
}
37 changes: 36 additions & 1 deletion src/common/SidebarNavigationList.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
import {
faGhost, faUserShield, faUser, faHome,
faCalendar, faArchive, faIdCard,
faUserCircle, faUserPlus,
faUserCircle, faUserPlus, faFile
} from '@fortawesome/free-solid-svg-icons'

library.add(faGhost);
Expand All @@ -27,6 +27,7 @@ library.add(faArchive);
library.add(faIdCard);
library.add(faUserCircle);
library.add(faUserPlus);
library.add(faFile);


const styles = theme => ({
Expand Down Expand Up @@ -86,6 +87,30 @@ export default class SidebarNavigationList extends React.Component{
</Hidden>
)}
<Divider />
<UndecoratedLink to="/poradnik-pierwsza-sesja">
<ListItem button>
<ListItemIcon>
<FontAwesomeIcon icon="file" />
</ListItemIcon>
<ListItemText primary="Poradnik: Twoja pierwsza sesja">
</ListItemText>
</ListItem>
</UndecoratedLink>
<ListItem button onClick={() => window.open('https://docs.google.com/document/d/1HT_HKIQKt0G-kceR2pzLUHKfyrnXVdwBUXl6qOLl9cI/edit?usp=sharing')}>
<ListItemIcon className={classes.communityIcon}>
<FontAwesomeIcon icon={["far","file"]} />
</ListItemIcon>
<ListItemText primary="Zasady OPK">
</ListItemText>
</ListItem>
<ListItem button onClick={() => window.open('https://drive.google.com/file/d/1koge3GjzgO2NhUpk2quZmOWFo7VPGzNA/view?usp=drivesdk')}>
<ListItemIcon className={classes.communityIcon}>
<FontAwesomeIcon icon={["far","file"]} />
</ListItemIcon>
<ListItemText primary="Katalog przygód">
</ListItemText>
</ListItem>
<Divider />
{this.isAuth() && (
<Fragment>
<UndecoratedLink to={`/profiles/${this.currentProfile().profileID}`}>
Expand Down Expand Up @@ -147,6 +172,16 @@ export default class SidebarNavigationList extends React.Component{
</ListItemText>
</ListItem>
</UndecoratedLink>
<Divider/>
<UndecoratedLink to="/terms">
<ListItem button>
<ListItemIcon className={classes.communityIcon}>
<FontAwesomeIcon icon={["far","file"]} />
</ListItemIcon>
<ListItemText primary="Terms &amp; Conditions">
</ListItemText>
</ListItem>
</UndecoratedLink>
</List>
</div>
);
Expand Down
49 changes: 13 additions & 36 deletions src/pages/Home.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {CurrentDMGamesList, CurrentUserGamesList} from "./GamesList";
import Grid from "@material-ui/core/Grid/Grid";
import Typography from "@material-ui/core/Typography/Typography";
import withStyles from "@material-ui/core/styles/withStyles";
import { Link } from "react-router-dom";

import { library } from '@fortawesome/fontawesome-svg-core'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
Expand Down Expand Up @@ -47,6 +48,9 @@ const styles = (theme) => ({
marginBottom: 12,
fontSize: "1.3em"
},
biggerText: {
fontSize: "1.6em"
},
marginTop: {
marginTop: 20
},
Expand Down Expand Up @@ -77,7 +81,7 @@ const styles = (theme) => ({
},
textDivider: {
marginTop: 24,
marginBottom: 12,
marginBottom: 24,
},
home: {
padding: 10,
Expand Down Expand Up @@ -172,6 +176,13 @@ class Home extends React.Component {
udziału w życiu społeczności <a target="_blank" href="https://discord.gg/BWYKVxk">na naszym Discordzie</a> oraz
na <a target="_blank" href="https://www.facebook.com/groups/ALKrakow/">grupie w serwisie Facebook</a>.
</Typography>
<Divider className={classes.textDivider}/>
<Typography variant="body1" className={classNames(classes.info, classes.centered, classes.biggerText)}>
<strong>NASTĘPNY KROK?</strong><br/>
</Typography>
<Typography variant="body1" className={classNames(classes.info, classes.centered)}>
<Link to="/poradnik-pierwsza-sesja"><strong>Przeczytaj, jak zagrać swoją pierwszą sesję w OPK</strong></Link>
</Typography>

<Divider className={classes.textDivider}/>
<Typography variant="body1" className={classNames(classes.info, classes.centered, classes.disclaimer)}>
Expand All @@ -196,6 +207,7 @@ class Home extends React.Component {
Join our community
</Typography>
<List component="nav">

<ListItem button onClick={() => window.open('https://www.facebook.com/groups/ALKrakow/')}>
<ListItemIcon className={classes.communityIcon}>
<FontAwesomeIcon icon={["fab","facebook"]}/>
Expand All @@ -211,41 +223,6 @@ class Home extends React.Component {
<ListItemText primary="Discord Server">
</ListItemText>
</ListItem>

<ListItem button onClick={() => window.open('https://docs.google.com/document/d/1HT_HKIQKt0G-kceR2pzLUHKfyrnXVdwBUXl6qOLl9cI/edit?usp=sharing')}>
<ListItemIcon className={classes.communityIcon}>
<FontAwesomeIcon icon={["far","file"]} />
</ListItemIcon>
<ListItemText primary="Zasady OPK">
</ListItemText>
</ListItem>

{/*<ListItem button onClick={() => window.open('https://docs.google.com/document/d/1oDx-bksg-GraW7YCtp8DUFwG2c4AfSwZtIWN3uYQwPc/edit?usp=sharing')}>*/}
{/* <ListItemIcon className={classes.communityIcon}>*/}
{/* <FontAwesomeIcon icon={["far","file"]} />*/}
{/* </ListItemIcon>*/}
{/* <ListItemText primary="FAQ do zasad OPK">*/}
{/* </ListItemText>*/}
{/*</ListItem>*/}

<ListItem button onClick={() => window.open('https://drive.google.com/file/d/1koge3GjzgO2NhUpk2quZmOWFo7VPGzNA/view?usp=drivesdk')}>
<ListItemIcon className={classes.communityIcon}>
<FontAwesomeIcon icon={["far","file"]} />
</ListItemIcon>
<ListItemText primary="Katalog przygód">
</ListItemText>
</ListItem>

<UndecoratedLink to="/terms">
<ListItem button>
<ListItemIcon className={classes.communityIcon}>
<FontAwesomeIcon icon={["far","file"]} />
</ListItemIcon>
<ListItemText primary="Terms &amp; Conditions">
</ListItemText>
</ListItem>
</UndecoratedLink>

</List>
</div>
</Grid>
Expand Down

0 comments on commit 800de04

Please sign in to comment.