4.1 KiB
Hemp Effect System
Goal
Each hemp variety applies:
- a main gameplay profile,
- a subtle visual profile during the normal trip,
- a possible bad trip with stronger visual disturbance.
Normal trip must stay readable and non-invasive. Bad trip is the only state allowed to become truly disturbing.
Core rules
Consumption flow
When the player consumes a hemp item:
- Resolve the consumed variety from its
id. - Apply all
main_effectsimmediately. - Enable the
normal_visual_profile. - Roll one bad trip chance using
bad_trip_chance. - If the roll succeeds, schedule the bad trip after a random delay in
bad_trip_delay_sec. - When the delay expires, apply
bad_trip_effectsand enablebad_trip_visual_profile. - When the main duration ends, clear normal visuals and gameplay effects.
- When the bad trip duration ends, clear bad trip visuals and gameplay effects.
Design constraints
Normal trip
Normal trip should:
- remain comfortable for 2 to 3 minutes,
- never make HUD unreadable,
- never make combat or building frustrating,
- use only light visual treatment.
Allowed normal visual changes:
- subtle tint,
- mild saturation shift,
- mild contrast shift,
- very light vignette,
- very light ghosting.
Forbidden during normal trip:
- strong blur,
- strong wobble,
- aggressive FOV change,
- strong double vision,
- strong screen shake.
Bad trip
Bad trip should:
- feel clearly worse,
- remain shorter than the main trip,
- include nausea and hunger,
- be visually more unstable.
Allowed bad trip visual changes:
- stronger tint,
- stronger vignette,
- stronger saturation shift,
- light image wobble,
- light afterimage,
- light brightness pulsing.
Stacking rules
Current stacking model:
- Consuming the same variety refreshes that variety's duration.
- Consuming a different variety keeps the previous gameplay effects active and adds the new variety on top.
- Main gameplay effects from several varieties can coexist at the same time.
- A new manual consumption rerolls the bad trip entirely from the latest variety.
- Passive resin aura refresh keeps extending the same variety without rerolling the bad trip every tick.
- Only one normal hemp visual profile can be active at a time: the latest active variety drives visuals.
- Only one bad trip state can be active at a time, and a reroll replaces the previous pending or active bad trip.
Effect conventions
Main effect duration
Main trip duration should stay between 140 and 180 seconds.
Bad trip duration
Bad trip duration should stay between 25 and 40 seconds.
Bad trip base gameplay package
All bad trips contain at least:
- Nausea
- Hunger
Rare and very rare varieties may add:
- Weakness
- Slowness
- short Blindness
Use these sparingly.
Data format
Each variety entry contains:
id: stable machine idname_fr: display namerarity: common, uncommon, rare, very_rarecolor_family: readable color identitymain_duration_sec: main trip durationmain_effects: list of vanilla effectsnormal_visual_profile: subtle visual profilebad_trip_chance: float from 0.0 to 1.0bad_trip_delay_sec: min/max delay before bad trip startsbad_trip_duration_sec: bad trip durationbad_trip_effects: gameplay penalty packagebad_trip_visual_profile: stronger visual profile
Visual profile semantics
Intensity scale
Use a 0.0 to 1.0 scale:
- 0.05 to 0.15 = subtle
- 0.20 to 0.35 = noticeable
- 0.40+ = invasive
Normal trip should usually stay in 0.08 to 0.14. Bad trip may go to 0.25 to 0.50 depending on rarity.
Suggested shader parameters
A visual profile can drive:
tint_strengthsaturation_deltacontrast_deltavignette_strengthghosting_strengthwobble_strengthpulse_strength
Not every profile needs every parameter.
Implementation note
The system should be data-driven:
- all plant tuning lives in JSON,
- gameplay code reads the JSON,
- visuals are picked by profile name or inline values,
- item classes should not hardcode effect logic.
This allows easy balancing without rewriting gameplay code.