wip
This commit is contained in:
parent
8e98546a9c
commit
ac36a7166e
@ -1,12 +1,52 @@
|
|||||||
/* GAME */
|
/* GAME */
|
||||||
.game-cryp {
|
|
||||||
/* flex: 1 1 100%;
|
|
||||||
|
|
||||||
display: flex;
|
.game {
|
||||||
flex-flow: column;
|
display: grid;
|
||||||
*/ /*border: 1px solid whitesmoke;*/
|
grid-template-columns: repeat(3, 1fr));
|
||||||
/*margin-bottom: 1em;*/
|
grid-template-columns: repeat(6, 1fr));
|
||||||
/*justify-content: center;*/
|
|
||||||
|
grid-template-areas:
|
||||||
|
"opponent opponent opponent"
|
||||||
|
"opponent opponent opponent"
|
||||||
|
"middle middle middle"
|
||||||
|
"player player player";
|
||||||
|
"player player player";
|
||||||
|
"player player player";
|
||||||
|
}
|
||||||
|
|
||||||
|
.team {
|
||||||
|
grid-area: player;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.opponent {
|
||||||
|
grid-area: opponent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.opponent .combat-text {
|
||||||
|
left: 40%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.target-svg {
|
||||||
|
background: green;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.target-svg path {
|
||||||
|
stroke: whitesmoke;
|
||||||
|
stroke-width: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.game-cryp {
|
||||||
|
display: grid;
|
||||||
|
grid-template-areas:
|
||||||
|
"stats"
|
||||||
|
"effects"
|
||||||
|
"avatar";
|
||||||
|
|
||||||
transition-property: all;
|
transition-property: all;
|
||||||
transition-duration: 0.5s;
|
transition-duration: 0.5s;
|
||||||
@ -14,23 +54,29 @@
|
|||||||
transition-timing-function: ease;
|
transition-timing-function: ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.player .game-cryp {
|
||||||
|
grid-template-areas:
|
||||||
|
"skills"
|
||||||
|
"avatar"
|
||||||
|
"effects"
|
||||||
|
"stats";
|
||||||
|
}
|
||||||
|
|
||||||
.game-cryp .stats {
|
.game-cryp .stats {
|
||||||
|
grid-area: stats;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex: row;
|
flex: row;
|
||||||
}
|
}
|
||||||
|
|
||||||
.game-cryp .skills {
|
.game-cryp .skills {
|
||||||
|
grid-area: skills;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: row wrap;
|
flex-flow: row;
|
||||||
flex: 1 0 25%;
|
|
||||||
height: 100%;
|
|
||||||
z-index: 10;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.game-cryp .effects {
|
.game-cryp .effects {
|
||||||
max-height: 100%;
|
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
flex: 1;
|
grid-area: effects;
|
||||||
}
|
}
|
||||||
|
|
||||||
.game-btn {
|
.game-btn {
|
||||||
@ -90,13 +136,6 @@
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.cryp-list {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: row;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
CRYP DAMAGE
|
CRYP DAMAGE
|
||||||
*/
|
*/
|
||||||
@ -179,4 +218,8 @@ CRYP DAMAGE
|
|||||||
|
|
||||||
.purple-damage .stats {
|
.purple-damage .stats {
|
||||||
border-top: 1px solid purple;
|
border-top: 1px solid purple;
|
||||||
|
}
|
||||||
|
|
||||||
|
.img {
|
||||||
|
position: relative;
|
||||||
}
|
}
|
||||||
@ -99,7 +99,7 @@ function GamePanel(props) {
|
|||||||
const cryps = team.cryps.map((c, i) => <GameCryp key={c.id} cryp={c} />);
|
const cryps = team.cryps.map((c, i) => <GameCryp key={c.id} cryp={c} />);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="team-player cryp-list">
|
<div className="team player">
|
||||||
{cryps}
|
{cryps}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@ -151,7 +151,7 @@ function GamePanel(props) {
|
|||||||
function OpponentTeam(team) {
|
function OpponentTeam(team) {
|
||||||
const cryps = team.cryps.map(OpponentCryp);
|
const cryps = team.cryps.map(OpponentCryp);
|
||||||
return (
|
return (
|
||||||
<div className="team-opponent cryp-list">
|
<div className="team opponent">
|
||||||
{cryps}
|
{cryps}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@ -159,13 +159,15 @@ function GamePanel(props) {
|
|||||||
|
|
||||||
const gameClasses = `game ${resolution ? 'resolving': ''}`;
|
const gameClasses = `game ${resolution ? 'resolving': ''}`;
|
||||||
|
|
||||||
|
// {header}
|
||||||
|
// {timer}
|
||||||
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className={gameClasses} onClick={() => setActiveCryp(null)} >
|
<section className={gameClasses} onClick={() => setActiveCryp(null)} >
|
||||||
{header}
|
|
||||||
{timer}
|
|
||||||
{PlayerTeam(playerTeam, setActiveSkill)}
|
|
||||||
<TargetingArrows />
|
<TargetingArrows />
|
||||||
{otherTeams.map(OpponentTeam)}
|
{otherTeams.map(OpponentTeam)}
|
||||||
|
{PlayerTeam(playerTeam, setActiveSkill)}
|
||||||
</section>
|
</section>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,8 +24,8 @@ function TargetSvg(args) {
|
|||||||
const skillIndex = playerTeam.cryps[source].skills.findIndex(s => s.skill === cast.skill);
|
const skillIndex = playerTeam.cryps[source].skills.findIndex(s => s.skill === cast.skill);
|
||||||
|
|
||||||
const skillOffset = (100 * skillIndex) + 50;
|
const skillOffset = (100 * skillIndex) + 50;
|
||||||
const sourceX = 0;
|
const sourceY = 0;
|
||||||
const sourceY = (source * 300) + skillOffset;
|
const sourceX = (source * 300) + skillOffset;
|
||||||
const targetY = (target * 300) + 150;
|
const targetY = (target * 300) + 150;
|
||||||
const curveStart = 150 + (150 * source);
|
const curveStart = 150 + (150 * source);
|
||||||
const curveEnd = 450 + curveStart;
|
const curveEnd = 450 + curveStart;
|
||||||
@ -33,12 +33,12 @@ function TargetSvg(args) {
|
|||||||
if (defensive) {
|
if (defensive) {
|
||||||
const path = `
|
const path = `
|
||||||
M${sourceX},${sourceY}
|
M${sourceX},${sourceY}
|
||||||
L150,${sourceY}
|
L${sourceY},150
|
||||||
C150,${sourceY} 150,${targetY} 150,${targetY}
|
C${sourceY},150 ${targetY},150 ${targetY},150
|
||||||
L0,${targetY}
|
L${targetY},0
|
||||||
L50,${targetY - 4}
|
L${targetY - 4},50
|
||||||
M0,${targetY}
|
M${targetY},0
|
||||||
L50,${targetY + 4}
|
L${targetY + 4},0
|
||||||
`;
|
`;
|
||||||
|
|
||||||
return <path d={path} />;
|
return <path d={path} />;
|
||||||
@ -48,10 +48,10 @@ function TargetSvg(args) {
|
|||||||
M${sourceX},${sourceY}
|
M${sourceX},${sourceY}
|
||||||
L${curveStart},${sourceY}
|
L${curveStart},${sourceY}
|
||||||
C${curveEnd},${sourceY} ${curveStart},${targetY} ${curveEnd},${targetY}
|
C${curveEnd},${sourceY} ${curveStart},${targetY} ${curveEnd},${targetY}
|
||||||
L900,${targetY}
|
L${targetY},900
|
||||||
L850,${targetY - 4}
|
L${targetY - 4},850
|
||||||
M900,${targetY}
|
M${targetY},900
|
||||||
L850,${targetY + 4}
|
L${targetY + 4},850
|
||||||
`;
|
`;
|
||||||
|
|
||||||
return <path d={path} />;
|
return <path d={path} />;
|
||||||
@ -62,7 +62,7 @@ function TargetSvg(args) {
|
|||||||
: outgoing.map(getPath);
|
: outgoing.map(getPath);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<svg viewBox="0 0 900 900" preserveAspectRatio="none" className="target-svg">
|
<svg viewBox="0 0 900 900" preserveAspectRatio="none" className="target-arrows">
|
||||||
{arrows}
|
{arrows}
|
||||||
</svg>
|
</svg>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -21,6 +21,9 @@ html, body, main {
|
|||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
/*padding: 0 20%;*/
|
/*padding: 0 20%;*/
|
||||||
|
|
||||||
|
/* stops inspector going skitz*/
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
@ -50,8 +53,8 @@ figure {
|
|||||||
main {
|
main {
|
||||||
padding: 0 2em;
|
padding: 0 2em;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(10, minmax(min-content, 10%));
|
grid-template-columns: repeat(10, 10%));
|
||||||
grid-template-rows: repeat(10, min-content);
|
grid-template-rows: min-content 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
|
||||||
|
|
||||||
grid-template-areas:
|
grid-template-areas:
|
||||||
"hd hd hd hd hd hd hd hd hd hd"
|
"hd hd hd hd hd hd hd hd hd hd"
|
||||||
@ -62,8 +65,8 @@ main {
|
|||||||
"nav main main main main main main main main main"
|
"nav main main main main main main main main main"
|
||||||
"nav main main main main main main main main main"
|
"nav main main main main main main main main main"
|
||||||
"nav main main main main main main main main main"
|
"nav main main main main main main main main main"
|
||||||
|
"nav main main main main main main main main main"
|
||||||
"nav main main main main main main main main main";
|
"nav main main main main main main main main main";
|
||||||
/*"ft ft ft ft ft ft ft ft ft ft";*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nav {
|
nav {
|
||||||
@ -545,23 +548,3 @@ figure.gray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.team-opponent .combat-text {
|
|
||||||
left: 40%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.img {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
|
|
||||||
.game .target-svg {
|
|
||||||
flex: 1;
|
|
||||||
height: 94%;
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.game .target-svg path {
|
|
||||||
stroke: whitesmoke;
|
|
||||||
stroke-width: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user