idle_moloch/app/src/styles/Army.module.css
mindxploit 0dfc74f02c
Some checks failed
CI / Foundry project (push) Waiting to run
CI / Foundry project (pull_request) Has been cancelled
z-indexes for pixel quote and boss info
2024-10-31 22:27:14 +01:00

437 lines
7.7 KiB
CSS

.marchingBand {
position: absolute;
left: 22px;
right: 22px;
bottom: 22px;
top: 22px;
overflow: hidden;
user-select: none;
pointer-events: none;
}
.army-gathering {
position: absolute;
bottom: 22px;
left: 22px;
right: 22px;
}
.person {
position: absolute;
width: 80px;
height: 80px;
background-size: contain;
background-position: bottom center;
background-repeat: no-repeat;
transform-origin: bottom center;
}
.marchingGroup {
position: absolute;
left: 0;
bottom: 84px;
animation: marching 20s linear;
width: 200px;
& > div {
position: absolute;
}
& > div:nth-child(1) {
left: 30px;
animation:
marchingPerson 20s linear,
marchingPersonSkew 1s ease infinite,
marchingPersonLeft1 20s linear;
}
& > div:nth-child(2) {
left: 0px;
animation:
marchingPerson 20s linear,
marchingPersonSkew 1s ease infinite;
}
& > div:nth-child(3) {
left: -30px;
animation:
marchingPerson 20s linear,
marchingPersonSkew 1s ease infinite,
marchingPersonLeft3 20s linear;
}
& > div:nth-child(4) {
left: 60px;
animation:
marchingPerson 20s linear,
marchingPersonSkew 1s ease infinite,
marchingPersonLeft4 20s linear;
}
}
.tavern_keeper {
background-image: url("/roles/tavern-keeper.svg");
}
.alchemist {
background-image: url("/roles/alchemist.svg");
}
.archer {
background-image: url("/roles/archer.svg");
}
.cleric {
background-image: url("/roles/cleric.svg");
}
.druid {
background-image: url("/roles/druid.svg");
}
.dwarf {
background-image: url("/roles/dwarf.svg");
}
.monk {
background-image: url("/roles/monk.svg");
}
.necromancer {
background-image: url("/roles/necromancer.svg");
}
.paladin {
background-image: url("/roles/paladin.svg");
}
.ranger {
background-image: url("/roles/ranger.svg");
}
.rogue {
background-image: url("/roles/rogue.svg");
}
.scribe {
background-image: url("/roles/scribe.svg");
}
.warrior {
background-image: url("/roles/warrior.svg");
}
.wizard {
background-image: url("/roles/wizard.svg");
}
.healer {
background-image: url("/roles/healer.svg");
}
.hunter {
background-image: url("/roles/hunter.svg");
}
.moloch_denier {
filter: sepia(0.1);
}
.apprentice {
}
.anointed {
filter: saturate(1.1);
}
.champion {
filter: saturate(2);
}
.armyUnits {
position: absolute;
bottom: 22px;
left: 22px;
right: 22px;
height: 180px;
display: flex;
justify-content: center;
align-items: center;
@media only screen and (max-width: 600px) {
left: 10px;
bottom: 5px;
overflow: auto;
}
}
.armyUnit {
@media only screen and (max-width: 600px) {
transform: scale(0.75);
}
position: relative;
height: 100%;
width: 120px;
margin-right: 20px;
.person {
&.isShrouded {
filter: brightness(0);
}
}
&.isUnavailable {
filter: sepia(1);
pointer-events: none;
}
&:hover {
.unitProfit {
display: block;
}
}
}
.uiElement {
width: fit-content;
position: absolute;
border-radius: 10px;
background: rgba(0, 0, 0, 0.89);
padding: 0.1rem 1rem;
font-size: 0.8rem;
user-select: none;
text-align: center;
}
.unitSupply {
top: -30px;
right: 0;
left: 2rem;
white-space: nowrap;
}
.unitName {
left: 0;
right: 0;
bottom: 45px;
white-space: nowrap;
}
.unitPrice {
left: 0;
right: 0;
bottom: 25px;
white-space: nowrap;
}
.unitProfit {
left: 0;
right: 0;
bottom: 5px;
display: none;
}
.static {
width: 110px;
height: 110px;
transition: all 100ms cubic-bezier(0.265, 1.4, 0.68, 1.65);
&:not(.locked) {
cursor: pointer;
}
&:hover {
transform: scale(1.08, 1.08);
}
&:active {
transform: scale(1.2, 1.2);
}
}
.static.tavern_keeper {
right: 130px;
bottom: 160px;
width: 90px;
height: 90px;
user-select: none;
.pixelQuote {
z-index: 20;
min-width: 200px;
width: fit-content;
max-width: 300px;
color: black;
font-size: 0.7rem;
line-height: 0.9rem;
position: absolute;
bottom: 5.5rem;
left: -70px;
right: 0;
padding: 0.7rem;
transition: opacity 1s ease-in-out;
box-shadow: 0px 5px 10px 5px rgba(0, 0, 0, 0.4);
}
@media only screen and (max-width: 600px) {
right: 60px;
}
}
.static.moloch_denier {
background-image: url("/roles/scribe2.png");
}
.static.apprentice {
background-image: url("/roles/druid2.png");
}
.static.anointed {
background-image: url("/roles/ranger2.png");
}
.static.champion {
background-image: url("/roles/warrior2.png");
}
@keyframes marching {
0% {
transform: translate(-100px, -84px);
}
8% {
/* approaches fire */
transform: translate(72px, -84px);
}
15% {
/* approaches road */
transform: translate(152px, -174px);
}
25% {
/* first road turn */
transform: translate(122px, -284px);
}
45% {
/* second road turn */
transform: translate(256px, -374px);
}
75% {
/* third road turn */
transform: translate(159px, -416px);
}
100% {
/* vanishes into distance */
transform: translate(180px, -425px);
}
}
@media only screen and (max-width: 600px) {
@keyframes marching {
0% {
transform: translate(-54px, -59px); /* -100px scaled to ~-54px */
}
8% {
/* approaches fire */
transform: translate(15px, -100px); /* 72px scaled to ~39px */
}
15% {
/* approaches road */
transform: translate(82px, -123px); /* 152px scaled to ~82px */
}
25% {
/* first road turn */
transform: translate(66px, -200px); /* 122px scaled to ~66px */
}
45% {
/* second road turn */
transform: translate(138px, -264px); /* 256px scaled to ~138px */
}
75% {
/* third road turn */
transform: translate(86px, -293px); /* 159px scaled to ~86px */
}
100% {
/* vanishes into distance */
transform: translate(97px, -300px); /* 180px scaled to ~97px */
}
}
}
@keyframes marchingPerson {
0% {
background-size: 100% 100%;
}
8% {
/* approaches fire */
}
15% {
/* approaches road */
background-size: 95% 95%;
}
25% {
/* first road turn */
background-size: 80% 80%;
}
45% {
/* second road turn */
background-size: 65% 65%;
}
75% {
/* third road turn */
background-size: 15% 15%;
}
100% {
/* vanishes into distance */
background-size: 2% 2%;
}
}
@keyframes marchingPersonLeft1 {
0% {
left: 30px;
}
15% {
/* approaches road */
left: calc(30px * 0.95);
}
25% {
/* first road turn */
left: calc(30px * 0.8);
}
45% {
/* second road turn */
left: calc(30px * 0.65);
}
75% {
/* third road turn */
left: calc(30px * 0.15);
}
100% {
/* vanishes into distance */
left: calc(30px * 0.02);
}
}
@keyframes marchingPersonLeft3 {
0% {
left: -30px;
}
15% {
/* approaches road */
left: calc(-30px * 0.95);
}
25% {
/* first road turn */
left: calc(-30px * 0.8);
}
45% {
/* second road turn */
left: calc(-30px * 0.65);
}
75% {
/* third road turn */
left: calc(-30px * 0.15);
}
100% {
/* vanishes into distance */
left: calc(-30px * 0.02);
}
}
@keyframes marchingPersonLeft4 {
0% {
left: 60px;
}
15% {
/* approaches road */
left: calc(60px * 0.95);
}
25% {
/* first road turn */
left: calc(60px * 0.8);
}
45% {
/* second road turn */
left: calc(60px * 0.65);
}
75% {
/* third road turn */
left: calc(60px * 0.15);
}
100% {
/* vanishes into distance */
left: calc(60px * 0.02);
}
}
@keyframes marchingPersonSkew {
0%,
100% {
transform: skew(0deg, 0deg);
}
25% {
transform: skew(5deg, -5deg);
}
50% {
transform: skew(0deg, 0deg);
}
75% {
transform: skew(-5deg, 5deg);
}
}