feat: magic system visuals, audio sfx, and ui polish
This commit is contained in:
23
src/main.js
23
src/main.js
@@ -116,19 +116,7 @@ game.onCombatResult = (log) => {
|
||||
const defender = game.heroes.find(h => h.id === log.defenderId) || game.monsters.find(m => m.id === log.defenderId);
|
||||
if (defender) {
|
||||
setTimeout(() => { // Slight delay for cause-effect
|
||||
if (log.hitSuccess) {
|
||||
if (log.woundsCaused > 0) {
|
||||
// HIT and WOUND
|
||||
renderer.triggerDamageEffect(log.defenderId);
|
||||
renderer.showFloatingText(defender.x, defender.y, `💥 -${log.woundsCaused}`, '#ff0000');
|
||||
} else {
|
||||
// BLOCKED (Hit but Toughness saved)
|
||||
renderer.showFloatingText(defender.x, defender.y, `🛡️ Block`, '#ffff00');
|
||||
}
|
||||
} else {
|
||||
// MISS
|
||||
renderer.showFloatingText(defender.x, defender.y, `💨 Miss`, '#aaaaaa');
|
||||
}
|
||||
renderer.showCombatFeedback(defender.x, defender.y, log.woundsCaused, log.hitSuccess);
|
||||
}, 500);
|
||||
}
|
||||
};
|
||||
@@ -294,7 +282,16 @@ renderer.setupInteraction(
|
||||
handleClick,
|
||||
() => {
|
||||
// Right Click Handler
|
||||
if (game.targetingMode === 'spell' || game.targetingMode === 'ranged') {
|
||||
game.cancelTargeting();
|
||||
if (window.RENDERER) window.RENDERER.hideAreaPreview();
|
||||
ui.showTemporaryMessage('Cancelado', 'Lanzamiento de hechizo cancelado.', 1000);
|
||||
return;
|
||||
}
|
||||
game.executeMovePath();
|
||||
},
|
||||
(x, y) => {
|
||||
if (game.onCellHover) game.onCellHover(x, y);
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user