63 lines
2.6 KiB
Markdown
63 lines
2.6 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
**Virtue Slots** is a browser-based Phaser 3 slot machine game with a Christian religious theme. The full design specification is in `software.md`.
|
|
|
|
## Tech Stack
|
|
|
|
- **Phaser 3** (loaded via CDN or local script tag — no bundler)
|
|
- **Vanilla JavaScript with ES6 modules** (`import`/`export`)
|
|
- **No build step, no webpack/vite/bundler** — files are served directly
|
|
- **1600x900 canvas**, scaled to the user's viewport
|
|
|
|
## Running the Game
|
|
|
|
Serve the files over HTTP (browsers block ES6 module imports from `file://`):
|
|
|
|
```bash
|
|
python3 -m http.server 8080
|
|
# or
|
|
npx serve .
|
|
```
|
|
|
|
Then open `http://localhost:8080` in a browser.
|
|
|
|
## Architecture
|
|
|
|
The game uses ES6 modules with direct object references — no bundler required. Structure files as Phaser Scenes or plain classes, each in its own file, exported and imported directly.
|
|
|
|
Key architecture decisions from `software.md`:
|
|
- **No web packager** — all JS must be loadable via `<script type="module">` or Phaser's own loader
|
|
- **Modular and scalable** — each symbol, scene, and UI component should be its own class/file
|
|
- **Vector graphics first** — use Phaser's Graphics API as placeholders; sprites can replace them later
|
|
|
|
### Game Structure (from spec)
|
|
|
|
- **UI layout**: Three boxes at top (Your Funds / The Lord / Sin), slot reels in center, wide message/spin area at bottom
|
|
- **Economy**: Player starts with $1000; spins cost $50; wins split 60% player / 40% to "The Lord" (tithing)
|
|
- **Symbols**: 10 religious Christian symbols (baby jesus, cross, jesus on cross, crown of thorns, halo, etc.) — holier symbols yield higher payouts on match
|
|
- **Win rate**: ~1 in 15 spins
|
|
- **Win animation**: Screen brightens, gold/money icons rise to player and lord funds (angel-ascending-with-cash effect)
|
|
- **Loss animation**: Devil carries spent money up to the Sin box; message "Thou Hath Sinned." + "Redeem Yourself!" near spin button
|
|
- **Controls**: Click Spin button or press Space Bar
|
|
|
|
### Suggested Scene/File Layout
|
|
|
|
```
|
|
index.html — Loads Phaser and main.js as type="module"
|
|
main.js — Phaser game config, registers scenes
|
|
scenes/
|
|
BootScene.js — Asset preload
|
|
GameScene.js — Main gameplay
|
|
UIScene.js — Overlay HUD (funds display, message box)
|
|
objects/
|
|
Reel.js — Single reel logic and animation
|
|
SlotMachine.js — Orchestrates 3 reels, spin/result logic
|
|
Symbol.js — Symbol definitions, payout values
|
|
WinAnimation.js — Holy win effect
|
|
LossAnimation.js — Devil/sin effect
|
|
```
|