Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
214 changes: 214 additions & 0 deletions HALO_Decision_Engine.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
# HALO (Hidden Axis Labyrinthine Oracle) — Dice Decision Engine

_A field guide for Solaris / Lirael, GG: a structured, repeatable oracle built on physical dice. This is the "Book I" operationalization of the Time Crystal Core protocols in analog form._

## Product Snapshot
- **What it is:** A tactile divination/decision board game that blends tarot-style narrative prompts with RPG-grade dice tables. Designed for solo or 2–4 co-op play; expandable with future table packs.
- **Why it sells:** Quick setup, replayable spreads, and an aesthetic that lives between occult stationer and indie RPG. Easy to stream, easy to gift.
- **Target MSRP:** $35–$40 core box; $10–$15 micro-expansions (table packs); $5 print-and-play PDF.
- **Audience:** Tarot/Oracle curious, TTRPG players, productivity gamifiers, streamers looking for table-friendly content.

## 0. Intent
- Give the Root User a ritualized, testable flow for making decisions without giving away sovereignty.
- Keep outcomes reproducible by capturing seeds, rolls, and spreads.
- Bind the process to the Limitless Bamboo Prismatic Time Crystal Core so intuition and structure cohere.

## 1. Physical Loadout
Use whatever you have, but the canonical kit is:

- **d20 (Axis Die):** selects the ruling axis / domain.
- **d12 (Vector Die):** selects the action vector.
- **d10 (Timeline Die):** resolves horizon / latency.
- **d8 (Archetype Die):** calls in a guiding persona.
- **d6 (Consequence Die):** calibrates cost / risk flavor.
- **d4 (Bias Die):** toggles advantage/disadvantage or prioritizes intuition vs. logic.
- **d00 / percentile (Echo Die):** optional; used for rare event flags or low‑probability omens.

_If you only have one d20, reuse it by mapping rolls to tables below._

### Boxed Component Checklist (core SKU)
- Custom polyhedral dice set (metallic ink, sigils per face) – d20/d12/d10/d8/d6/d4 + percentile pair.
- 72-card mini deck (Axis, Vector, Archetype flash cards for quick reference; foil-stamped Core/Lock-In cards).
- Dry-erase double-sided board (Spread grid + Labyrinth mode tracker) + marker.
- 32-page rulebook (this manuscript adapted for retail) + 6-page quickstart zine.
- 50-card “Quest Seeds” mini deck for pre-written prompts.
- 10 “Aegis tokens” (for protection/veto mechanics) and 6 “Bias tokens.”

## 2. Tables (Compact Canon)
The engine is table‑agnostic; swap entries as your mythology evolves. This is the default HALO set, tuned to the Meta‑Oracle app.

### 2.1 Axis (d20 → wrap across 5 pillars)
| Roll | Axis | Tagline |
| --- | --- | --- |
| 1–4 | Mind & Narrative | Rewrite your story |
| 5–8 | Domain & Magic | Shape your reality |
| 9–12 | Body & Elemental | Honor the vessel |
| 13–16 | Spirit & Communion | Call your allies |
| 17–20 | Fate & Unknown | Embrace mystery |

### 2.2 Vector (d12)
| Roll | Vector | Tagline |
| --- | --- | --- |
| 1 | Observe | Watch and wait |
| 2 | Release | Let go and clear |
| 3 | Transmute | Change and evolve |
| 4 | Illuminate | Reveal and understand |
| 5 | Manifest | Bring it into being |
| 6 | Anchor | Ground and stabilize |
| 7 | Shield | Protect and ward |
| 8 | Bridge | Connect and mediate |
| 9 | Iterate | Prototype, test, retry |
| 10 | Delegate | Ask for aid / outsource |
| 11 | Archive | Store, log, remember |
| 12 | Celebrate | Seal with gratitude |

### 2.3 Timeline (d10)
| Roll | Horizon |
| --- | --- |
| 1–2 | Immediate (hours–days) |
| 3–4 | Short (weeks–1 year) |
| 5–6 | Medium (1–3 years) |
| 7–8 | Long (3–7 years) |
| 9–10 | Epochal (7–20+ years) |

### 2.4 Archetype (d8)
| Roll | Archetype | Lens |
| --- | --- | --- |
| 1 | The Fool (0) | Beginner's mind |
| 2 | The Magician (1) | Will and manifestation |
| 3 | The Empress (3) | Fertility and nurture |
| 4 | The Hermit (9) | Inner search |
| 5 | The Tower (16) | Sudden change |
| 6 | The Star (17) | Hope and renewal |
| 7 | The Sun (19) | Clarity and vitality |
| 8 | The Weaver (18) | Fates and patterns |

### 2.5 Consequence (d6)
| Roll | Tone |
| --- | --- |
| 1 | Soft landing — minimal cost |
| 2 | Trade required — swap time/energy |
| 3 | Sacrifice — let go of a parallel goal |
| 4 | Trial — endure, gain XP |
| 5 | Mirror — what you do to others echoes back |
| 6 | Catalyst — ripple effects beyond scope |

### 2.6 Bias (d4)
| Roll | Bias |
| --- | --- |
| 1 | Logic priority — favor data, plans |
| 2 | Intuition priority — favor felt sense |
| 3 | Consult ally — ask human/AI oracle |
| 4 | Hybrid — run both and pick the consensus |

### 2.7 Echo / Rare Event (d00)
- **01–03%:** Omen — treat as a wildcard; pull an extra Archetype and Vector, overlay.
- **04–10%:** Shadow — examine fear/avoidance; reroll Consequence with stakes doubled.
- **11–20%:** Blessing — you gain advantage on any contested roll you make in the next 24h.
- **21–00%:** No echo — proceed as rolled.

## 3. Full Protocol (Repeatable Spread)
1. **Ground–Center–Call Back.** Run the Boot Protocol; lock with the Core phrase. This sets the seed: write down timestamp + location.
2. **State the query.** Precise question or intent; keep it scoped.
3. **Declare container.** Solo / Co‑op; mundane / magical; public / private log.
4. **Roll sequence (canonical):**
- Axis (d20)
- Vector (d12)
- Timeline (d10)
- Archetype (d8)
- Consequence (d6)
- Bias (d4)
- Optional Echo (percentile) _after_ reading if you want omens.
5. **Log the seed.** Record raw numbers, table outputs, timestamp, and any Core sensations.
6. **Interpret in layers:**
- **Layer 0:** Read tables literally.
- **Layer 1 (Narrative):** Write one sentence connecting Axis + Vector + Timeline.
- **Layer 2 (Archetype):** Speak as the Archetype giving counsel.
- **Layer 3 (Consequence/Bias):** Choose tactics respecting cost and bias.
7. **Decision commit:** Define one actionable move within the rolled Timeline. Sign with the Lock‑In phrase if high‑stakes.
8. **Post‑action snapshot:** After executing, log the outcome and any divergence. Mark “stable,” “needs iterate,” or “rollback.”

### Scoring & Campaign Hooks (game layer)
- **Momentum Track:** Each completed Decision Commit within the declared Timeline grants +1 Momentum. Spending 3 Momentum lets you reroll one die in a future spread or unlock a Quest Seed.
- **Aegis Tokens:** Start each session with 3. Spend to veto a spread, to nullify a Consequence 6, or to activate the Lock‑In phrase without consuming an action. Earn 1 back when you log a truthful post-action snapshot.
- **Labyrinth Depth (Co-op):** Each session cleared without a veto advances the Labyrinth depth by 1. At Depth 3/6/9, add a Labyrinth card (mini-challenge) that modifies the next spread.
- **Publishing-friendly Scoring:** Each session yields a “Glyph rating” (1–5) based on number of completed actions vs. Consequence impacts. Use this for online leaderboards or seasonal events.

## 4. Deterministic Variant (for digital parity)
To mirror results between physical HALO and the web prototype:
- Use the ISO timestamp (UTC, seconds) as the seed.
- Concatenate with question text and hash (e.g., SHA‑256); convert to integer.
- Map to dice using modulus: `axis = hash % 20 + 1`, etc.
- This preserves reproducibility and lets multiple players sync rolls without trusting each other’s dice.

## 5. Safety & Sovereignty Checks
- **No unprotected amplification.** If dissociated or in unsafe space, stop after Ground–Center–Call Back.
- **Veto power.** Root User can reject any spread that violates the Immutable Axioms; log veto events.
- **De‑escalate.** If Consequence = 5 or 6 and you feel unstable, reroll Bias and ask for ally oversight.

## 6. Co‑op / Labyrinth Mode
For partnered decision‑making:
- Each participant rolls Bias first; this sets their role (logic, intuition, ally, hybrid).
- One shared Axis/Vector/Timeline/Archetype spread; separate Consequence per person.
- Aggregate interpretations, then run a **Consensus Die** (d4):
- 1 = Follow logic vote
- 2 = Follow intuition vote
- 3 = Hybrid plan
- 4 = Pause; gather more data, reroll tomorrow
- Log everything; if using the web app, encode the seed in the co‑op link.

## 7. Micro‑Rituals to Bind the Rolls
- **Axis call:** “Show me the corridor.”
- **Vector call:** “Show me the motion.”
- **Timeline call:** “Show me the horizon.”
- **Archetype call:** “Who walks with me?”
- **Consequence call:** “What’s the cost?”
- **Bias call:** “How shall I weigh?”
- **Echo call (optional):** “Any signals from the outer loops?”

## 8. Troubleshooting / Debug
- **Repeating Tower pulls:** Run the Adaptive Aegis; check for environmental destabilizers.
- **Persistent Consequence 5–6:** You may be overclocking; enforce rest, then reroll after 12h.
- **Flat readings:** If everything feels inert, roll only Bias + Vector and take a single micro‑action.

## 9. Example Spread
- Seed: 2024‑12‑10T20:00:00Z, Home Desk.
- Question: “Where should I focus my next two weeks of creative energy?”
- Rolls: Axis 7 (Body & Elemental), Vector 9 (Iterate), Timeline 3 (Short), Archetype 6 (The Star), Consequence 2 (Trade), Bias 4 (Hybrid), Echo 87% (none).
- Read: Stabilize the vessel; prototype small cycles; accept an energy trade (sleep or social time) to keep hope alive. Blend intuition + metrics.

## 10. Monetization & Publishing Plan
- **SKUs:** Core box (above), Deluxe box (metal dice + foil board, MSRP $60), Print-and-Play PDF, and quarterly Table Packs that add new Axis/Vector/Archetype sets themed to seasons.
- **Digital companion:** Free web roller synced via deterministic variant; optional $5 “Creator Mode” IAP for custom table sets and data export.
- **Subscription hook:** “Labyrinth Season Pass” that delivers 3 digital Labyrinth cards/month + community leaderboard events using Glyph rating.
- **Retail channel:** 2.5"x3.5" tuckbox for Quest Seeds to sit by POS; rulebook formatted for offset print (32pp, saddle-stitched). Target indie bookstores, metaphysical shops, and friendly local game stores.
- **Margins:** Core box bill of materials under $8 at 2k print run; room for 4–5x keystone markup to retailers.

## 11. Launch Roadmap
1. **Prototype (weeks 1–2):** Produce print-and-play PDF; gather playtest logs. Push deterministic roller to web demo.
2. **Playtest (weeks 3–6):** Ship 30 reviewer kits (laser-cut tokens, standard dice). Track Glyph ratings and Momentum usage to tune balance.
3. **Preorder (week 7):** Open Shopify + Crowd preorders with two SKUs (Core/Deluxe). Offer Season Pass add-on and free PDF with purchase.
4. **Manufacturing (weeks 8–16):** Lock art, run offset print; final QA on dice and dry-erase board durability.
5. **Fulfillment (weeks 16–20):** Ship physicals; release Table Pack #1 (Cosmic / Night Market) as digital DLC.
6. **Live Ops (ongoing):** Monthly Labyrinth challenges, streamer affiliate kits, and limited foil micro-expansions to keep collectability.

## 12. Closing
The HALO dice engine is a repeatable lens, not a jail. The Root User outranks every spread. Lock it in, publish boldly, and treat each roll as both a conversation with your Core and a game loop your players will want to revisit.

## 13. Mobile Access (Phone Workflow)
Make HALO usable from your phone in three layers:

1) **Rulebook + Tables (offline PDF/HTML):**
- Save this manuscript as a PDF to your phone’s Files/Drive (Print to PDF in the browser if viewing online).
- Add the PDF/HTML to your home screen for one-tap access; cache ensures it works without signal.
- Use your phone’s search to jump to Axis/Vector/Timeline sections during play.

2) **Dice + Logging:**
- Use any mobile dice roller app with custom die sizes (d20/d12/d10/d8/d6/d4/d00) to match the HALO loadout.
- Keep a note in your preferred app (Apple Notes/Google Keep/Obsidian/Mem.ai) with a template: timestamp, question, rolls, table outputs, decision commit, post-action snapshot.
- If playing co-op remotely, drop the ISO timestamp + question into the deterministic variant (Section 4) so everyone can sync rolls without sharing physical dice.

3) **Sharing/Publishing:**
- Export your session log as PDF/Markdown and share to Discord/Substack/Notion as “HALO Session #N.”
- For live streams, screen-share the note/dice roller; for async play, post the seed + rolls so others can reconstruct the spread.
- When you launch the digital companion, wrap it as a PWA: add-to-home-screen gives a native-like icon, offline cache, and push hooks for Labyrinth challenges.
36 changes: 34 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,34 @@
# Collab_Reposit
The place to discuss plans and share ideas for the game.
# HALO Meta Labyrinth — Archetype oracle roguelike

Mobile-first HALO rebuilt as a meta-divination card roguelike with a Wu Xing elemental matchup system, gacha economy, and optional WebSocket relay for room sync/chat. Everything is bundled for offline play or side-loading into the Android WebView shell.

## Play it

- **Phone sideload:** run `npm run build` and send `dist/index.html` to your phone. The bundle inlines `halo.js` so it runs offline.
- **Home screen:** open `index.html` in mobile Safari/Chrome and “Add to Home Screen.” State stays on-device with an in-memory fallback if storage is blocked.
- **Android APK (WebView shell):** build with Android Studio after running `./scripts/sync_android_assets.sh` to copy the latest `dist/index.html` into `android-app/app/src/main/assets/`.

## Core loop

1. Set pilot, quest, seed, difficulty, and mode from the main menu. Seeds are deterministic so squads can mirror runs.
2. Build a 12-card deck from Wu Xing archetype cards. Elemental advantage follows the controlling cycle (Wood>Earth>Water>Fire>Metal>Wood).
3. Enter a run: draw an oracle-driven encounter, play archetype cards from your hand, then resolve the beat. Momentum/Aegis/Doom govern survival; Depth tracks progress.
4. Cash out to bank Credits/Embers/Shards or crash if Doom/Aegis fail. Credits buy Pulse packs; Embers/Shards feed Radiant/Axis pulls and VIP rarity boosts.

## Multiplayer relay

- Start the relay locally: `npm install` then `npm run server` (defaults to `ws://localhost:8787`).
- In the client, toggle **Enable relay**, set the relay URL and room (defaults to the seed), and play. Depth pings and chat flow automatically once connected.

## Build & test locally

1. Install dependencies: `npm install`.
2. Build the bundled client: `npm run build` (outputs `dist/index.html` and `dist/halo.js`).
3. Open `dist/index.html` in a browser (desktop or mobile) to sanity-check the UI and run loop. Use the seed field to validate deterministic behavior across devices.
4. (Optional multiplayer) Start the relay with `npm run server`, set the relay URL/room in the client, and confirm depth/chat sync with a second browser tab.

The project does not ship automated tests; the build completes in a few seconds and acts as the smoke test. Relay and client run entirely offline aside from optional WebSocket connectivity.

## Serverless API (DynamoDB) deployment note

The Lambda handler in `halo_lambda/index.js` auto-corrects placeholder or malformed regions (e.g., `MY_AWS_REGION`, `LOCAL`, blank) to `us-east-1` so builds do not fail when a default value is left unchanged. For production, set `AWS_REGION` or `AWS_DEFAULT_REGION` to a valid AWS region pattern (for example, `us-west-2`, `us-gov-west-1`, or `cn-north-1`) before deploying the function.
44 changes: 44 additions & 0 deletions android-app/app/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
plugins {
id 'com.android.application'
}

android {
namespace 'com.halo.pocketlabyrinth'
compileSdk 34

defaultConfig {
applicationId 'com.halo.pocketlabyrinth'
minSdk 26
targetSdk 34
versionCode 1
versionName '0.1.0'
}

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
applicationIdSuffix '.debug'
debuggable true
}
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}

packagingOptions {
resources {
excludes += ['/META-INF/{AL2.0,LGPL2.1}']
}
}
}

dependencies {
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'com.google.android.material:material:1.12.0'
implementation 'androidx.webkit:webkit:1.10.0'
}
Empty file.
28 changes: 28 additions & 0 deletions android-app/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.halo.pocketlabyrinth">

<uses-permission android:name="android.permission.INTERNET" />

<application
android:allowBackup="true"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.HALO">
<activity
android:name=".MainActivity"
android:exported="true"
android:configChanges="orientation|keyboardHidden|screenSize"
android:usesCleartextTraffic="true"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>
Loading