feat: click panel breakdown + guide updated
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 20s

ClickPanel in Production tab — full click breakdown:
- Gain per click with formula (base × prestige × tree)
- Double Ponte chance (+ how to unlock if not)
- Crit Ponte chance (+ how to unlock if not)
- Auto-Ponte rate + effective prod/s
- Hint to invest in Ponte branch when no tree bonuses

Guide updated with 11 sections:
- Ponte (clic) section — breakdown, double/crit/auto explained
- Generateurs section — effective prod, multi-buy, share bars
- Prestige section — quadratic scaling formula explained
- Arbre section — 3 branches + convergence detailed
- Capstones section — all 3 + convergence alpha/omega
This commit is contained in:
2026-03-28 20:58:18 +01:00
parent 120f4bedca
commit 25768e3665
4 changed files with 162 additions and 11 deletions

View File

@@ -0,0 +1,83 @@
<script lang="ts">
import { game } from '$lib/stores/game.svelte';
import { getClickBreakdown } from '$lib/core/economy';
import { formatNumber } from '$lib/utils/formatNumber';
import CollapsiblePanel from './CollapsiblePanel.svelte';
let b = $derived(getClickBreakdown(game.state));
</script>
<CollapsiblePanel title="Ponte (clic)" badge="{formatNumber(b.total)}/clic" accentClass="" defaultOpen={false}>
<!-- Main click value -->
<div class="gp-row gp-row--active">
<div class="flex flex-col">
<span class="gp-value">Gain par clic</span>
<span class="gp-label">base {b.base} × prestige x{b.prestigeMult.toFixed(1)} × arbre x{b.treeMult.toFixed(1)}</span>
</div>
<span class="gp-value gp-accent-green text-lg!">{formatNumber(b.total)}</span>
</div>
<!-- Double ponte -->
<div class="gp-row {b.doubleChance > 0 ? 'gp-row--unlocked' : 'gp-row--locked'}">
<div class="flex flex-col">
<span class="gp-value text-[0.7rem]!">Double Ponte</span>
<span class="gp-label">
{#if b.doubleChance > 0}
{(b.doubleChance * 100).toFixed(0)}% chance × 2 tetards
{:else}
Branche Ponte — "Double Ponte" (5 ADN)
{/if}
</span>
</div>
{#if b.doubleChance > 0}
<span class="gp-label gp-accent-purple">{(b.doubleChance * 100).toFixed(0)}%</span>
{:else}
<span class="gp-label"></span>
{/if}
</div>
<!-- Crit -->
<div class="gp-row {b.critChance > 0 ? 'gp-row--unlocked' : 'gp-row--locked'}">
<div class="flex flex-col">
<span class="gp-value text-[0.7rem]!">Ponte Critique</span>
<span class="gp-label">
{#if b.critChance > 0}
{(b.critChance * 100).toFixed(0)}% chance × 10 tetards
{:else}
Branche Ponte — "Ponte Critique" (20 ADN)
{/if}
</span>
</div>
{#if b.critChance > 0}
<span class="gp-label gp-accent-amber">{(b.critChance * 100).toFixed(0)}%</span>
{:else}
<span class="gp-label"></span>
{/if}
</div>
<!-- Auto-click -->
<div class="gp-row {b.autoClicksPerSec > 0 ? 'gp-row--unlocked' : 'gp-row--locked'}">
<div class="flex flex-col">
<span class="gp-value text-[0.7rem]!">Auto-Ponte</span>
<span class="gp-label">
{#if b.autoClicksPerSec > 0}
{b.autoClicksPerSec.toFixed(1)}/s × {formatNumber(b.total)} = {formatNumber(b.effectivePerSec)}/s
{:else}
Capstone Ponte — "Ponte Automatique" (200 ADN)
{/if}
</span>
</div>
{#if b.autoClicksPerSec > 0}
<span class="gp-label gp-accent-green">{formatNumber(b.effectivePerSec)}/s</span>
{:else}
<span class="gp-label"></span>
{/if}
</div>
<!-- How to boost hint -->
{#if b.treeMult <= 1}
<div class="text-center py-1">
<span class="gp-label gp-accent-amber">Depense ton ADN dans la branche Ponte pour booster tes clics</span>
</div>
{/if}
</CollapsiblePanel>