Added trading and quests, checkpoint push

This commit is contained in:
Joan
2026-02-08 20:18:42 +01:00
parent 8820cd897e
commit 70dc35b4b2
36 changed files with 3583 additions and 279 deletions

View File

@@ -0,0 +1,316 @@
/* Trade container layout */
/* Trade container overrides */
.game-modal-container.trade-modal {
max-width: 1400px;
width: 95vw;
height: 90vh;
}
.trade-modal .game-modal-content {
display: flex;
flex-direction: column;
height: 100%;
}
.trade-container {
display: flex;
flex-direction: column;
height: 100%;
gap: 15px;
overflow: hidden;
}
.trade-content {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 15px;
flex: 1;
min-height: 0;
overflow: hidden;
}
.trade-column {
background: rgba(0, 0, 0, 0.4);
border: 1px solid #444;
padding: 10px;
display: flex;
flex-direction: column;
gap: 10px;
overflow: hidden;
}
.column-header {
margin: 0 0 0.5rem 0;
font-size: 1.1rem;
color: #ffd700;
text-align: center;
border-bottom: 1px solid #444;
padding-bottom: 0.5rem;
flex-shrink: 0;
}
.search-bar {
margin-bottom: 0.5rem;
padding: 0.75rem 1rem;
background: rgba(0, 0, 0, 0.5);
border: 1px solid #555;
color: white;
width: 100%;
box-sizing: border-box;
/* Fixes cut-off issue */
clip-path: var(--game-clip-path-sm, polygon(0 0,
100% 0,
100% calc(100% - 5px),
calc(100% - 5px) 100%,
0 100%));
}
.inventory-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
grid-auto-rows: max-content;
/* Ensure rows don't stretch */
gap: 0.5rem;
overflow-y: auto;
grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
gap: 0.75rem;
padding: 0.5rem;
overflow-y: auto;
}
.trade-item-card {
position: relative;
aspect-ratio: 1;
background: var(--game-bg-card);
border: 1px solid var(--game-border-color);
clip-path: var(--game-clip-path);
cursor: pointer;
transition: all 0.2s ease;
display: flex;
align-items: center;
justify-content: center;
padding: 0.5rem;
box-shadow: var(--game-shadow-sm);
}
.trade-item-card:hover {
border-color: #63b3ed;
background: rgba(255, 255, 255, 0.1);
transform: translateY(-2px);
z-index: 10;
}
.trade-item-card.text-tier-0 {
border-color: #a0aec0;
}
.trade-item-card.text-tier-1 {
border-color: #ffffff;
}
.trade-item-card.text-tier-2 {
border-color: #68d391;
}
.trade-item-card.text-tier-3 {
border-color: #63b3ed;
}
.trade-item-card.text-tier-4 {
border-color: #9f7aea;
}
.trade-item-card.text-tier-5 {
border-color: #ed8936;
}
.trade-item-image {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
/* Margins inside container */
}
.trade-item-img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5));
}
/* Exact match for quantity badge from InventoryModal.css */
.trade-item-qty {
position: absolute;
bottom: 2px;
right: 2px;
background: var(--game-bg-panel);
/* Match source */
border: 1px solid var(--game-border-color);
/* Match source */
color: var(--game-text-primary);
/* Match source */
font-size: 0.7rem;
/* Match source grid adjustment */
padding: 1px 4px;
/* Match source grid adjustment */
clip-path: var(--game-clip-path-sm);
/* Match source */
font-weight: bold;
box-shadow: var(--game-shadow-sm);
/* Match source */
pointer-events: none;
}
.trade-item-value {
position: absolute;
bottom: 2px;
left: 2px;
background: rgba(0, 0, 0, 0.7);
/* Keep visible background for value */
color: #ffd700;
font-size: 0.7rem;
padding: 1px 4px;
clip-path: var(--game-clip-path-sm);
font-weight: bold;
pointer-events: none;
}
/* Cart Grid - Slightly different or same? User checked inventory grid, so same is safe for source lists.
Cart lists might need to remain distinct or use same style.
Currently they use same .trade-item-card class, so they will inherit this. */
.cart-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
/* Smaller for cart? */
gap: 0.5rem;
padding: 0.5rem;
overflow-y: auto;
max-height: 200px;
}
.trade-center-column {
display: flex;
flex-direction: column;
gap: 15px;
overflow: hidden;
}
.trade-cart-section {
flex: 1;
background: rgba(0, 0, 0, 0.4);
border: 1px solid #444;
padding: 10px;
display: flex;
flex-direction: column;
overflow: hidden;
}
.cart-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
grid-auto-rows: max-content;
gap: 8px;
overflow-y: auto;
padding-right: 5px;
margin-top: 10px;
align-content: start;
}
.trade-list-header {
font-size: 1rem;
font-weight: bold;
margin-bottom: 0.5rem;
color: #ddd;
display: flex;
justify-content: space-between;
}
.cart-list {
flex: 1;
overflow-y: auto;
display: flex;
flex-direction: column;
gap: 0.25rem;
padding-right: 0.25rem;
}
.cart-item {
display: flex;
justify-content: space-between;
align-items: center;
background: rgba(0, 0, 0, 0.4);
padding: 0.25rem 0.5rem;
font-size: 0.9rem;
cursor: pointer;
}
.cart-item:hover {
background: rgba(255, 0, 0, 0.2);
}
.trade-footer {
display: flex;
justify-content: space-between;
align-items: center;
padding-top: 1rem;
border-top: 1px solid #444;
}
.trade-summary {
display: flex;
flex-direction: column;
align-items: center;
font-size: 1.1rem;
}
.trade-total {
font-weight: bold;
color: #ffd700;
}
.trade-action-btn {
padding: 0.75rem 2rem;
font-size: 1.2rem;
font-weight: bold;
text-transform: uppercase;
background: linear-gradient(to bottom, #4caf50, #2e7d32);
border: none;
color: white;
cursor: pointer;
clip-path: var(--game-clip-path);
}
.trade-action-btn:disabled {
background: #555;
cursor: not-allowed;
opacity: 0.7;
}
.quantity-modal {
background: #2d3748;
padding: 1rem;
border: 1px solid #4a5568;
display: flex;
flex-direction: column;
gap: 1rem;
align-items: center;
clip-path: var(--game-clip-path);
}
.qty-controls {
display: flex;
align-items: center;
gap: 0.5rem;
}
.qty-input {
width: 60px;
text-align: center;
padding: 0.25rem;
background: #1a202c;
border: 1px solid #4a5568;
color: white;
}