Browse Source

clean up

main
Stephanie Gredell 4 months ago
parent
commit
63ca75ea78
  1. 6
      src/data/cards.js
  2. 6
      src/engine/battle.js
  3. 2
      src/engine/events.js
  4. 2
      src/input/InputManager.js
  5. 56
      src/ui/render.js
  6. 13
      style.css

6
src/data/cards.js

@ -291,12 +291,10 @@ export const CARDS = {
}, },
rubber_duck: { rubber_duck: {
id: "rubber_duck", name: "Rubber Duck Debug", cost: 0, type: "skill", text: "Draw 1. Reveal enemy intent.", id: "rubber_duck", name: "Rubber Duck Debug", cost: 0, type: "skill", text: "Draw 1.",
art: "Monk_31.png", art: "Monk_31.png",
effect: (ctx) => { effect: (ctx) => {
ctx.draw(1); ctx.draw(1);
const intent = ctx.enemy.intent;
ctx.log(`Rubber duck reveals: Enemy will ${intent.type} for ${intent.value || 'unknown'} next turn.`);
} }
}, },
@ -370,7 +368,7 @@ export const CARDS = {
export const STARTER_DECK = [ export const STARTER_DECK = [
"strike", "strike", "defend", "defend", "strike", "strike", "defend", "defend",
"segfault", "coffee_rush", "skill_issue", "git_commit", "segfault", "coffee_rush", "skill_issue", "git_commit",
"stack_trace", "stack_trace" "stack_trace", "stack_trace", "git_push_force", "code_review"
]; ];
export const CARD_POOL = [ export const CARD_POOL = [

6
src/engine/battle.js

@ -125,6 +125,12 @@ export function playCard(ctx, handIndex) {
if (ctx.enemy.hp <= 0) { ctx.enemy.hp = 0; ctx.onWin(); return; } if (ctx.enemy.hp <= 0) { ctx.enemy.hp = 0; ctx.onWin(); return; }
if (ctx.player.hp <= 0) { ctx.onLose(); return; } if (ctx.player.hp <= 0) { ctx.onLose(); return; }
// Don't render if Code Review modal is active
if (ctx.root._codeReviewCards) {
return;
}
ctx.render(); ctx.render();
} }

2
src/engine/events.js

@ -514,7 +514,7 @@ export class EventHandler {
modal.innerHTML = ` modal.innerHTML = `
<div class="messages-modal"> <div class="messages-modal">
<div class="messages-modal-header"> <div class="messages-modal-header">
<h2>Messages for Prime</h2> <h2>Inbox</h2>
<button class="messages-close-btn" aria-label="Close">×</button> <button class="messages-close-btn" aria-label="Close">×</button>
</div> </div>
<div class="messages-modal-content"> <div class="messages-modal-content">

2
src/input/InputManager.js

@ -555,7 +555,7 @@ export class InputManager {
modal.innerHTML = ` modal.innerHTML = `
<div class="messages-modal"> <div class="messages-modal">
<div class="messages-modal-header"> <div class="messages-modal-header">
<h2>Messages for Prime</h2> <h2>Messages</h2>
<button class="messages-close-btn" aria-label="Close">×</button> <button class="messages-close-btn" aria-label="Close">×</button>
</div> </div>
<div class="messages-modal-content"> <div class="messages-modal-content">

56
src/ui/render.js

@ -10,62 +10,8 @@ function playSound(soundFile) {
} }
} }
async function showMessagesModal() {
const { getAllMessages } = await import("../data/messages.js");
const messages = getAllMessages();
const modal = document.createElement('div');
modal.className = 'messages-modal-overlay';
modal.innerHTML = `
<div class="messages-modal">
<div class="messages-modal-header">
<h2>Messages for Prime</h2>
<button class="messages-close-btn" aria-label="Close">×</button>
</div>
<div class="messages-modal-content">
${messages.length > 0 ? messages.map((msg, index) => `
<div class="message-item">
<div class="message-from">From: ${msg.from}</div>
<div class="message-text">${msg.message}</div>
</div>
`).join('') : `
<div class="no-messages-placeholder">
<p>No messages added yet!</p>
<p>Add your birthday messages to <code>src/data/messages.js</code></p>
</div>
`}
</div>
</div>
`;
// Close functionality
const closeModal = () => {
modal.remove();
};
const closeBtn = modal.querySelector('.messages-close-btn');
closeBtn.addEventListener('click', closeModal);
// Close on overlay click
modal.addEventListener('click', (e) => {
if (e.target === modal) closeModal();
});
// Close on Escape key
const handleEscape = (e) => {
if (e.key === 'Escape') {
closeModal();
document.removeEventListener('keydown', handleEscape);
}
};
document.addEventListener('keydown', handleEscape);
// Add to DOM
document.body.appendChild(modal);
}
export function showDamageNumber(damage, target, isPlayer = false) { export function showDamageNumber(damage, target, isPlayer = false) {
console.log('this is shown - damage number')
const targetElement = isPlayer ? const targetElement = isPlayer ?
document.querySelector('.player-battle-zone') : document.querySelector('.player-battle-zone') :
document.querySelector('.enemy-battle-zone'); document.querySelector('.enemy-battle-zone');

13
style.css

@ -1734,8 +1734,8 @@ h3 {
.battle-card.playable:hover { .battle-card.playable:hover {
transform: translateY(-80px) scale(1.15) rotate(0deg) !important; transform: translateY(0px) scale(1.05) rotate(0deg) !important;
z-index: 300; z-index: 900;
margin-left: -60px; margin-left: -60px;
margin-right: 40px; margin-right: 40px;
} }
@ -2116,7 +2116,8 @@ h3 {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
pointer-events: none; /* Allow clicks to pass through to elements behind */ pointer-events: none;
/* Allow clicks to pass through to elements behind */
color: #dc3545; color: #dc3545;
font-size: 12px; font-size: 12px;
font-weight: bold; font-weight: bold;
@ -4211,7 +4212,8 @@ h3 {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
border-radius: 16px; border-radius: 16px;
pointer-events: none; /* Allow clicks to pass through to elements behind */ pointer-events: none;
/* Allow clicks to pass through to elements behind */
color: #ff6b6b; color: #ff6b6b;
font-weight: bold; font-weight: bold;
font-size: 14px; font-size: 14px;
@ -5648,7 +5650,7 @@ h3 {
.messages-modal { .messages-modal {
background: var(--panel); background: var(--panel);
border: 3px solid var(--accent); border: 3px solid var(--accent);
border-radius: 16px; border-radius: 6px;
max-width: 700px; max-width: 700px;
width: 90%; width: 90%;
max-height: 80vh; max-height: 80vh;
@ -5676,7 +5678,6 @@ h3 {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
border-radius: 12px 12px 0 0;
} }
.messages-modal-header h2 { .messages-modal-header h2 {

Loading…
Cancel
Save