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.
3.9 KiB
3.9 KiB
Chemo-Sim — A First-Person Chemo Treatment Simulator
Changelog for Chemo-Sim. See README.md for game overview and docs/DEVELOPMENT_ROADMAP.md for development plans.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[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, andnausea_intensity_changed+ genericsymptom_intensity_changedsignals. Registered as theSymptomManagerautoload. - 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 playerCamera3D. - 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 IViv_completed, ramps nausea from its current value to ~40 over 30 seconds, then holds. SymptomManager propagates changes to the tilt and desaturation effects. WiredIVInsertion.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 asrun/main_scene. - 2.2 First-person controller (
scripts/character/player_controller.gd+scenes/hospital/player.tscn):CharacterBody3Dwith capsule collision, childCamera3D, WASD movement, captured mouse-look (pitch clamped), gravity, and an interactionRayCast3D. Addedmove_*/interactinput actions toproject.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, andplayer_seated/player_stoodsignals. - 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, emittingiv_completed. WiredChairInteraction.player_seated → IVInsertion.begin_sequencein the room scene.
Added — Sprint 1: Project Scaffolding & Core Tech
- 1.1 Initialized Godot 4.x project:
project.godot(namechemo-sim, version0.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.gitkeepplaceholders so empty dirs are tracked. - 1.3 Set up Gitea Actions CI/CD (
.gitea/workflows/build.yml): builds on push/PR tomain, exports Windows.exe+ Linux.x86_64via thebarichello/godot-ci:4.3container, 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 viagodot --export-release(Windows .exe ~80 MB, Linux .x86_64 ~63 MB). - Added placeholder
icon.svgreferenced byproject.godot.
Fixed
- Corrected
.gitignore: removed*.godotrule that would have ignored the requiredproject.godot; added Godot 4 cache (.godot/), local toolchain (tools/), and build output ignores.