8462a2fde7
- Added SymptomManager autoload for managing symptom intensities. - Introduced nausea tilt effect for camera roll based on nausea intensity. - Created color desaturation shader and overlay for visual feedback. - Developed TreatmentManager to handle nausea ramping during IV treatment. - Added hospital room scene with first-person controller and interactions. - Implemented sit-down interaction for the treatment chair. - Created IV insertion sequence with animations and completion signal. - Added player controller with movement and interaction capabilities. - Integrated nausea effects into the player experience with smooth transitions.
71 lines
3.9 KiB
Markdown
71 lines
3.9 KiB
Markdown
# Chemo-Sim — A First-Person Chemo Treatment Simulator
|
||
|
||
Changelog for Chemo-Sim. See [README.md](README.md) for game overview and [docs/DEVELOPMENT_ROADMAP.md](docs/DEVELOPMENT_ROADMAP.md) for development plans.
|
||
|
||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||
|
||
## [Unreleased]
|
||
|
||
### Added — Sprint 3: Nausea Symptom System
|
||
|
||
- **3.1** Symptom manager autoload (`scripts/game_systems/symptom_manager.gd`):
|
||
generic per-symptom intensities clamped to [0, 100], `trigger_symptom` /
|
||
`add_intensity` / `get_intensity` / `reset_all`, and
|
||
`nausea_intensity_changed` + generic `symptom_intensity_changed` signals.
|
||
Registered as the `SymptomManager` autoload.
|
||
- **3.2** Screen tilt effect (`scripts/symptoms/nausea_tilt.gd`): camera Z-axis
|
||
roll oscillating at ~0.3 Hz, amplitude scaled by nausea up to ~5°, smoothly
|
||
following intensity. Attached to the player `Camera3D`.
|
||
- **3.3** Color desaturation shader (`assets/shaders/desaturation.gdshader` +
|
||
`scripts/symptoms/nausea_desaturation.gd` + `scenes/symptoms/nausea_overlay.tscn`):
|
||
full-screen ColorRect that blends the screen toward grayscale, reaching full
|
||
desaturation at nausea ≥ 80, fading smoothly with intensity.
|
||
- **3.4** Treatment manager (`scripts/game_systems/treatment_manager.gd`): on IV
|
||
`iv_completed`, ramps nausea from its current value to ~40 over 30 seconds,
|
||
then holds. SymptomManager propagates changes to the tilt and desaturation
|
||
effects. Wired `IVInsertion.iv_completed → TreatmentManager.start_ramp`.
|
||
|
||
### Added — Sprint 2: Environment & Character
|
||
|
||
- **2.1** Hospital room scene (`scenes/hospital/hospital_room.tscn`): floor,
|
||
ceiling, four walls (with collision), placeholder furniture (bed, chair,
|
||
IV stand, bedside table), fluorescent lighting (directional + omni), and a
|
||
start camera/player facing the chair. Set as `run/main_scene`.
|
||
- **2.2** First-person controller (`scripts/character/player_controller.gd` +
|
||
`scenes/hospital/player.tscn`): `CharacterBody3D` with capsule collision,
|
||
child `Camera3D`, WASD movement, captured mouse-look (pitch clamped),
|
||
gravity, and an interaction `RayCast3D`. Added `move_*` / `interact` input
|
||
actions to `project.godot`.
|
||
- **2.3** Sit-down interaction (`scripts/character/chair_interaction.gd` +
|
||
`scenes/hospital/chair_interaction.tscn`): Area3D trigger with "Press E to
|
||
sit/stand" prompt, smooth tween to a seat marker, movement lock while
|
||
seated, and `player_seated` / `player_stood` signals.
|
||
- **2.4** IV insertion sequence (`scripts/character/iv_insertion.gd` +
|
||
`scenes/hospital/iv_insertion.tscn`): IV arm placeholder with a tweened
|
||
needle-approach + tape-press animation, emitting `iv_completed`. Wired
|
||
`ChairInteraction.player_seated → IVInsertion.begin_sequence` in the room
|
||
scene.
|
||
|
||
### Added — Sprint 1: Project Scaffolding & Core Tech
|
||
|
||
- **1.1** Initialized Godot 4.x project: `project.godot` (name `chemo-sim`,
|
||
version `0.1.0`, Forward+ renderer with mobile fallback, 1920×1080 window).
|
||
- **1.2** Created directory structure per `docs/ARCHITECTURE.md`
|
||
(`scenes/`, `scripts/`, `assets/`, `export_templates/`, `build/`), with
|
||
`.gitkeep` placeholders so empty dirs are tracked.
|
||
- **1.3** Set up Gitea Actions CI/CD (`.gitea/workflows/build.yml`): builds on
|
||
push/PR to `main`, exports Windows `.exe` + Linux `.x86_64` via the
|
||
`barichello/godot-ci:4.3` container, uploads artifacts per run.
|
||
Removed the GitHub Actions workflow in favor of Gitea-only CI.
|
||
- **1.4** Configured export presets (`export_presets.cfg`) for Windows Desktop
|
||
and Linux (x86_64). Verified both export locally via
|
||
`godot --export-release` (Windows .exe ~80 MB, Linux .x86_64 ~63 MB).
|
||
- Added placeholder `icon.svg` referenced by `project.godot`.
|
||
|
||
### Fixed
|
||
|
||
- Corrected `.gitignore`: removed `*.godot` rule that would have ignored the
|
||
required `project.godot`; added Godot 4 cache (`.godot/`), local toolchain
|
||
(`tools/`), and build output ignores.
|