FakeFishGames / Barotrauma

A 2D online multiplayer game taking place in a submarine travelling through the icy depths of Jupiter's moon Europa.
http://www.barotraumagame.com/
1.74k stars 406 forks source link

Medical items affliction reduction effects behave as if the item had +1s duration when looking at totals #4336

Closed Thirty-Percent closed 3 years ago

Thirty-Percent commented 3 years ago

Description All medical items have +1 second to their total affliction reduction effects, compared to their listed duration under <StatusEffect> in medical.xml. A 5 seconds duration means it will last 5 seconds, however the "amount" value under <Affliction> is applied 6 times.

Example 1: Bandages In medical.xml, given <StatusEffect tags="medical" type="OnUse" target="This, Limb" duration="1.0"> and <ReduceAffliction identifier="bleeding" amount="9" /> <ReduceAffliction identifier="burn" amount="15" />

==> Total bleeding reduction = 18 (9 times 2), total burn reduction = 30 (15 times 2)

Example 2: Fentanyl In medical.xml, given <StatusEffect tags="medical" type="OnUse" target="Character" duration="5"> and <ReduceAffliction identifier="damage" amount="15" /> <ReduceAffliction identifier="burn" amount="15" /> ==> Total damage reduction = 90 (15 times 6), total burn reduction = 90 (15 times 6)

I confirmed this with opium, morphine, fentanyl and deusizine for damage and burns; bandages, plastiseal and antibiotic glue for burns; antirad and stabilozione for radiation sickness.

Steps To Reproduce

  1. Give a health scanner to character 1 to monitor affliction strength
  2. Give character 2 medical skill 100, and add any affliction (e.g. internaldamage) at a given value (e.g. 70)
  3. Use an appropriate medicine on them (e.g. morphine)
  4. Switch to character 1 and notice the affliction reduction (e.g. -55 for morphine on internaldamage)

Version 0.10.6.2 Windows/Steam

Additional information Items with a short duration will "benefit" the most from this, such as bandages, antidotes (OnUse), fentanyl... This also applies to OnFailure values.

Tsunder commented 3 years ago

Anecdotally, all drugs seem to act as if they give their effects as an instant application, and then the ones with duration will additionally heal over the duration.

Notable on the list: Pomegrenade extract's o2 loss

Regalis11 commented 3 years ago

Fixed in https://github.com/Regalis11/Barotrauma-development/commit/7205859c377df22c12273805ea96f833270efd78

Rokvach commented 3 years ago

No issues, closing.