🛵

Ontwerpvoorstel: Bezorging & Afhaling

Uitbreiding voor de Bakkerij & Café Simulator

📋

Samenvatting & Visie

Om de gameplay van de bakkerij verder te verdiepen en extra strategische keuzes te bieden, introduceren we het Bezorg- & Afhaalsysteem. Klanten kunnen telefonisch of via internet bestellingen plaatsen. Dit systeem is opgedeeld in twee afzonderlijke, complementaire stromen:

🛍️

1. Afhalen (Pickup)

Bestellingen die door fictieve personen of bedrijven worden gereserveerd om op een specifiek tijdstip handmatig te worden opgehaald bij de uitgiftebalie.

🛵

2. Bezorgen (Delivery)

Grotere bestellingen die met een eigen bezorgscooter naar de klant worden gebracht. De speler vult de bestelling en activeert de scooter handmatig voor vertrek.

🎮 Core Gameplay Loops & Integratie

Hoe de systemen samensmelten met de bestaande speelomgeving.

📞 Inkomende Bestellingen & Klantnamen

Gedurende de dag (tussen 08:00 en 17:00) kunnen er op basis van willekeurige kansen bestellingen binnenstromen. De speler hoort een kort telefoongeluidje / notificatie en ziet een pop-up icoon bij de uitgiftebalie blinken.

Elke bestelling krijgt een fictieve, herkenbare naam die de identiteit bepaalt:

  • Persoonsnamen (kleinere orders): "Kirsten de Jong", "Opa Bastiaan", "Meester Gerard", "Familie Sanders".
  • Bedrijfsnamen (grotere groepsorders): "Kapper KnipGraag", "Gemeentehuis Koffieclub", "De Smaakvolle Hap BV", "Bouwbedrijf Stevige Fundering".

📥 Integratie op de Uitgiftebalie (Geen extra meubels!)

Trouw aan de compacte lay-out en ter voorkoming van rommelige overvloed in de winkel, wordt er geen aparte balie toegevoegd. In plaats daarvan breiden we de bestaande Uitgiftebalie uit:

🛍️ Afhaal-Status Icoon

Op de uitgiftebalie zweeft een klein pakketje of tasje met een klokje. Klik hierop om een paneel te openen met actieve afhaalbestellingen, de naam van de besteller, de gevraagde baksels, de afhaaltijdstippen en de knop om producten over te dragen vanaf de inventaris.

🛵 Bezorg-Status Icoon

Een helm- of scooter-icoontje op de uitgiftebalie geeft aan of er thuisbezorging klaarstaat. Klikken opent een paneel met de inpak-voortgang, de bezorgbestemming (bijv. "Prinsenlaan 12, Familie Sanders") en de knop om de scooter te vullen en handmatig te lanceren.

🛣️ Visuele Scooter & Uitbreiding van de Weg

Aan de rechterzijde van het winkelscherm (naast de gevel/het terras) reserveren we een verticale of subtiel diagonaal getekende weg. Hierop staat je bezorgscooter geparkeerd in een speciale bezorgbay.

Scooter Animatie Loop:
  • Geparkeerd: Sluimert rustig in zijn parkeervak.
  • Inpakken: Zodra producten van de uitgiftebalie in de scooter worden geladen, verschijnt er een voortgangsbalk of visueel doosje achterop de scooter.
  • Versturen: Klik op de "Bezorg Nu!"-knop om de scooter te starten. De scooter rijdt met een ronkend geluid de weg af, naar beneden uit het scherm!
  • Onderweg: Een timer telt af (bijvoorbeeld "Bezorgtijd: 45s resterend").
  • Terugkeer: De scooter rijdt van bovenaf de weg weer op en parkeert in zijn bay. Er verschijnt een grote glimmende munt (klik om de opbrengst + gulle fooi te innen!).

⚡ Progressie & Upgrades

Verbetering van je bezorgdienst via het Upgrades Menu.

In de winkel kunnen spelers speciale upgrades aanschaffen onder het personeel/bedrijf-tabblad om de efficiëntie van de bezorging te boosten:

Upgrade Naam Kosten Upgrade Effect
Telefoonlijn & Websiteontgrendeling €1.200 Ontgrendelt afhaalbestellingen en simpele bezorgorders.
Scooter Cargo Kist Lvl 1 (Capaciteit 3 -> 6) €1.800 Hiermee kan je scooter grotere orders (midden-MKB) aannemen en vervoeren.
Scooter Cargo Kist Lvl 2 (Capaciteit 6 -> 12) €3.000 Hiermee neem je mega-orders van grote kantoren of scholen aan!
Elektrische Turbo-Scooter (Snelheid +50%) €2.500 Verkort de bezorgtijd per rit van 40s naar slechts 20s.

🎨 Grafische Spelers briefing (Sprites & Assets)

Welke assets we exact van u nodig hebben in een latere fase.

Zodra u klaar bent om de graphics aan te leveren, kunt u de volgende elementen uploaden of aan de repository toevoegen:

1. Bezorgscooter Asset

Afmeting: ca. 64x64 pixels. Een scootertje gezien vanaf de zijkant of driekwart hoek (isometrisch/vlak). Bij voorkeur twee versies: leeg en met een dikke bakkerij-inpakbox achterop.

2. Weg-structuur / Road

Een strook asfalt die we aan de rechterzijde van het terras kunnen plakken. Ca. 80-100px breed, passend bij de bestaande vloertegels van de stoep en terras.

3. Status-Miniaturen

Twee kleine icoontjes (ca. 24x24 px) voor op de uitgiftebalie: een bruine papieren meeneemtas (Afhalen) en een retro bezorgscooter-helm (Bezorgen).

🛠️ Technische Implementatiestappen

De fasen waarin we de backend-logica en interface gaan bouwen.

1

Fase 1: State, Types & Opslag uitbreiden

Definiëren van de bestel-interfaces in src/types.ts. We voegen pickupOrders en deliveryOrders arrays toe aan de globale staat. Ook registreren we de scooter-status (idle, traveling, returning, rewardReady, upgradeLevel).

2

Fase 2: Telefonische & Internet Bestellingengenerator

In src/useGameState.ts richten we een tick-based kansberekening in die 's dags af en toe een bestelling laat binnenkomen (met unieke geluidsnotificatie). Deze orders krijgen willekeurige baksels op basis van het huidige spelersniveau (zodat we geen onbereikbare recepten vragen!) en bepalen een afhaaltijdstip.

3

Fase 3: Uitgiftebalie UI & Interactie-schermen

We voegen de twee discrete icoontjes toe aan de uitgiftebalie in de winkel. Klikken opent een prachtig ontworpen dialoogvenster waarin de speler de baksels kan inpakken. Zodra ingepakt, kan de afhaal-klant op zijn tijdstip de bestelling ophalen (instant payout), of kan de speler de scooter handmatig op pad sturen.

4

Fase 4: Weglay-out & Scooteranimatie

Tekenen van de wegstrook aan de rechterkant in src/App.tsx. We animeren het scootertje (door middel van framerate of CSS transitions) als deze op pad gaat en weer terugkeert. We handelen de beloningsclaim af inclusief XP-boosts en geluidseffecten.

5

Fase 5: Winkel Upgrades toevoegen

Toevoegen van de upgrades aan de winkel-tabbladen zodat de speler zijn scooter-laadvermogen (cargo capaciteit) en snelheid permanent kan verhogen.

Laatste Bevestiging

Dit plan is nu officieel geregistreerd in het Geheime Menu ter inzage! Wanneer u akkoord bent met deze geperfectioneerde lay-out en mechanica, geef dan akkoord. We zullen dan in de volgende ronde direct overgaan tot de volledige functionele implementatie van de code!