DiscoveryGC / FLHook

FLHook for Discovery Freelancer
Other
28 stars 33 forks source link

Siege Rework #166

Closed Aingar closed 1 year ago

Aingar commented 1 year ago

Reworked the shield system to the following:

Base.cfg specifies 'vulnerability windows', time periods where bases are vulnerable. Outside of those windows, bases are straight up impervious to damage other than wear&tear.

Shield damage reduction starts relatively low, and ramps up the reduction as station takes damage, possibly going up to 100%, rendering the station invincible before the vulnerability period ends.

The damage reduction goes back to the specified default upon entering a vulnerability window.

Config file changes: Base.cfg: set_shield_damage_multiplier - deprecated base_shield_strength - float, stores the baseline damage reduction for any shielded POB. shield_reinforcement_threshold - float, damage that needs to be taken by the station to increase the damage reduction. shield_reinforcement_increment - float, amount by which shield reduction increases after passing each threshold. base_vulnerability_window - [integer, integer], multiple entries allowed - a pair of integers specifying a time window where bases are vulnerable (in local timezone). For example: values of 12, 15 would mean the POBs are vulnerable from noon until 3PM

Example scenario: Base has 1000 HP, baseline shield is 50%, reinforcement threshold is 100HP, and increment is 10%. Let's assume there are no repairs in the game. Until the base loses 100HP, it will take 50% reduced damage, then, until it loses another 100HP(down to 800) it will have a 60% reduction. Eventually, at 500HP the base will become invulnerable until the next vulnerability window begins. nullptr fix

dsyalex commented 1 year ago

We're gonna try this out