* Add 3D particle effect controllers for province events
Add controllers for blizzard, drought, flood, and beasts events:
- ProvinceBlizzardController: falling snow particles
- ProvinceDroughtController: rising dust/heat particles
- ProvinceFloodController: rain/water splash particles
- ProvinceBeastsController: circling vultures/crows particles
These follow the same pattern as Festival and Epidemic controllers.
Prefabs need to be created in Unity and wired up in the scene.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Update 3D effects doc with implementation status and prefab requirements
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add particle effect components for province events
Add MonoBehaviour scripts that programmatically create particle systems
for each province event type:
- BlizzardEffect.cs: Falling snowflakes with wind drift
- DroughtEffect.cs: Rising dust and heat shimmer particles
- FloodEffect.cs: Falling rain streaks with ground splashes
- BeastsEffect.cs: Circling birds (vultures/crows) with orbital motion
Each effect is configurable via Inspector fields (emit rate, colors,
sizes, speeds, etc.) similar to the existing EpidemicEffect.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Wire up province event effect controllers in Unity scene
- Add effect components to prefabs (Blizzard, Drought, Flood, Beasts)
- Add controllers to Map GameObject in Gameplay.unity
- Wire up mapContainer, centroidsJson, and prefab references
- Wire controller references in MapController
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add test controller for province event effects
- Add ProvinceEffectTestController with test methods for each effect type
- Add TestSpawnEffect() and ClearAllEffects() methods to all controllers
- Supports testing effects without game model data
Usage: Add ProvinceEffectTestController to scene, set province IDs,
then use context menu "Test All Effects" or enable "Spawn On Start".
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Revert "Add test controller for province event effects"
This reverts commit d13ae05b5661c7b29adb424d8249cec39110efdc.
* Add vulture icon for beasts province effect
- Add griffon-vulture.png icon (Flaticon, requires attribution)
- Fix velocity curve mode error in BeastsEffect.cs
- Wire up vulture texture to BeastsEffect prefab
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Rework province event effects with sun/shimmer drought and masking infrastructure
- DroughtEffect: Replace particle-based effect with pulsing sun icon and
heat shimmer overlay using custom GrabPass shader
- BlizzardEffect/FloodEffect: Add shader fallback chain for province masking
- Controllers: Add rawGray texture loading and province masking data passing
- Add HeatShimmerShader.shader for drought distortion effect
- Add ProvinceParticleShader.shader for province boundary clipping
- Scale particle emission areas based on province perpendicular_width
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Fix province masking with screen-space coordinate calculation
- Update shaders to use screen position instead of world position for
accurate UV calculation in Canvas UI context
- Controllers now properly convert world corners to screen coordinates
- Handle both Screen Space Overlay and other canvas render modes
- Fix map bounds calculation for province ID texture sampling
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Enlarge weather effects to fill provinces with shader masking
- DroughtEffect: Fix shimmer by using RawImage with white texture,
increase shimmer size to 2x province width for full coverage
- BlizzardEffect: Increase emission area, particle count (300),
emit rate (40/s), and lifetime (4s) for dense snowfall
- FloodEffect: Increase rain emission area, particle count (400),
emit rate (80/s), and splash coverage
- Controllers now use full province width for emission sizing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Double height of blizzard and rain emission areas
- Blizzard: Y scale 20→40, spawn height 60→120
- Rain: Y scale 20→40, spawn height 70→140
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Fix particle coverage and disable broken drought shimmer
- Blizzard/Flood: Change emission box to 150x150 with lower spawn point
so particles spawn at varying heights across the province
- Drought: Disable shimmer effect - GrabPass doesn't work with UI Canvas
(sun icon still shows)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Add gentle waving animation to drought sun
- Sun now waves slowly in X and Y using different sine frequencies
for an organic floating feel
- Reduce default sun size from 60 to 40
- Wave amounts: X=8, Y=5 at speeds 0.4 and 0.6
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Remove test effects from province event controllers
Remove hardcoded test province spawning and keep-alive logic from all
six province event controllers (blizzard, flood, drought, festival,
epidemic, beasts). Effects will now only appear for provinces that
actually have the corresponding events.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
- Add HoveringTooltipTextProvider to all 6 province event images
(Festival, Blizzard, Epidemic, Flood, Drought, Beasts)
- Add docs/province-event-3d-effects.md with ideas for replacing
2D shader effects with 3D particle systems
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>