Files
zwitschi 8462a2fde7
Build / Export windows (push) Successful in 10m56s
Build / Export linux (push) Successful in 6m10s
feat: Implement nausea symptom system and related features
- 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.
2026-05-30 14:14:38 +02:00

71 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.