Added Sub Aura slots

This commit is contained in:
Justin Edmund 2022-01-14 21:15:46 -08:00
parent d1b8e52bdb
commit 40711f3af2
5 changed files with 164 additions and 61 deletions

View file

@ -0,0 +1,32 @@
#ExtraSummons {
background: #FFEBD9;
border-radius: 8px;
box-sizing: border-box;
display: flex;
justify-content: center;
margin: 20px auto;
max-width: 727px;
padding: 16px 16px 16px 0;
position: relative;
left: 9px;
& > span {
color: #825B39;
display: flex;
align-items: center;
justify-content: center;
line-height: 1.2;
font-weight: 500;
margin-right: 16px;
text-align: center;
width: 387px;
}
.SummonUnit .SummonImage {
background: #D5D3F6;
}
.WeaponUnit .WeaponImage .icon svg {
fill: #8F8AC6;
}
}

View file

@ -0,0 +1,53 @@
import React from 'react'
import SummonUnit from '~components/SummonUnit'
import './index.scss'
// GridType
export enum GridType {
Class,
Character,
Weapon,
Summon
}
// Props
interface Props {
grid: GridArray<Summon>
editable: boolean
exists: boolean
found?: boolean
onSelect: (type: GridType, summon: Summon, position: number) => void
}
const ExtraSummons = (props: Props) => {
const numSummons: number = 2
function receiveWeapon(summon: Summon, position: number) {
props.onSelect(GridType.Summon, summon, position)
}
return (
<div id="ExtraSummons">
<span>Sub Aura Summons</span>
<ul id="grid_summons">
{
Array.from(Array(numSummons)).map((x, i) => {
return (
<li key={`grid_unit_${i}`} >
<SummonUnit
editable={props.editable}
onReceiveData={receiveWeapon}
position={i}
unitType={1}
summon={props.grid[i]}
/>
</li>
)
})
}
</ul>
</div>
)
}
export default ExtraSummons

View file

@ -1,27 +1,27 @@
.SummonGrid { .SummonGrid {
display: flex; display: grid;
grid-template-columns: auto auto auto;
grid-column-gap: $unit * 2;
justify-content: center; justify-content: center;
& .Label {
color: $grey-50;
font-size: 12px;
font-weight: $medium;
margin-bottom: $unit;
text-align: center;
}
} }
#grid_summons { #grid_summons {
display: flex; display: grid;
flex-direction: row; grid-template-columns: auto auto;
flex-wrap: wrap; grid-column-gap: $unit * 2;
margin: 0 24px 0 0; grid-template-rows: 1fr;
padding: 0; grid-row-gap: $unit * 3;
width: 344px;
}
#grid_summons > * {
margin-bottom: 24px;
margin-right: 24px;
}
#grid_summons > *:nth-child(2n+2) {
margin-right: 0;
} }
#grid_summons > li { #grid_summons > li {
list-style: none; list-style: none;
min-height: 180px;
} }

View file

@ -1,4 +1,5 @@
import React from 'react' import React from 'react'
import ExtraSummons from '~components/ExtraSummons'
import SummonUnit from '~components/SummonUnit' import SummonUnit from '~components/SummonUnit'
import './index.scss' import './index.scss'
@ -32,7 +33,10 @@ const SummonGrid = (props: Props) => {
} }
return ( return (
<div>
<div className="SummonGrid"> <div className="SummonGrid">
<div className="LabeledUnit">
<div className="Label">Main Summon</div>
<SummonUnit <SummonUnit
editable={props.editable} editable={props.editable}
key="grid_main_summon" key="grid_main_summon"
@ -41,7 +45,22 @@ const SummonGrid = (props: Props) => {
unitType={0} unitType={0}
summon={props.main} summon={props.main}
/> />
</div>
<div className="LabeledUnit">
<div className="Label">Friend Summon</div>
<SummonUnit
editable={props.editable}
key="grid_friend_summon"
onReceiveData={receiveSummon}
position={4}
unitType={2}
summon={props.friend}
/>
</div>
<div id="LabeledGrid">
<div className="Label">Summons</div>
<ul id="grid_summons"> <ul id="grid_summons">
{ {
Array.from(Array(numSummons)).map((x, i) => { Array.from(Array(numSummons)).map((x, i) => {
@ -59,14 +78,18 @@ const SummonGrid = (props: Props) => {
}) })
} }
</ul> </ul>
</div>
</div>
<SummonUnit <ExtraSummons
editable={props.editable} grid={props.grid}
key="grid_friend_summon" editable={false}
onReceiveData={receiveSummon} exists={false}
position={4} onSelect={
unitType={2} function (type: GridType, summon: Summon, position: number): void {
summon={props.friend} throw new Error('Function not implemented.')
}
}
/> />
</div> </div>
) )

View file

@ -64,29 +64,24 @@
} }
/* Mainhand */ /* Mainhand */
.SummonUnit.main,
.SummonUnit.friend {
margin-right: 24px;
max-width: 200px;
}
.SummonUnit.friend { .SummonUnit.friend {
margin-right: 0; margin-right: 0;
} }
.SummonUnit.main .SummonImage, .SummonUnit.main .SummonImage,
.SummonUnit.friend .SummonImage { .SummonUnit.friend .SummonImage {
height: 374px; height: 315px;
width: 180px; width: 182px;
} }
/* Grid */ /* Grid */
.SummonUnit.grid { .SummonUnit.grid {
max-width: 160px; max-width: 148px;
min-height: 141px;
} }
.SummonUnit.grid .SummonImage { .SummonUnit.grid .SummonImage {
list-style-type: none; list-style-type: none;
height: 92px; height: 111px;
width: 160px; width: 148px;
} }