Virtue-Slots/CLAUDE.md

2.6 KiB

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://):

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