boy oh boy this is proving to point out some major issues with the status effect system

This commit is contained in:
Alex Noir
2017-12-20 16:53:14 +03:00
parent d03dd40336
commit 20e583d816
3 changed files with 205 additions and 157 deletions

View File

@@ -96,27 +96,34 @@
tags="alien,smallitem"
impacttolerance="8">
<Deconstruct time="20">
<Item name="Steel Bar"/>
<Item name="Liquid Oxygenite"/>
<Item name="Liquid Oxygenite"/>
<Item name="Liquid Oxygenite"/>
</Deconstruct>
<Sprite texture="artifact.png" depth="0.7" sourcerect="119,0,9,32"/>
<Body width="9" height="32" density="15"/>
<Holdable slots="Any,RightHand,LeftHand" handle1="0,-5">
<Throwable slots="Any,RightHand,LeftHand" handle1="0,-5" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="Always" target="Hull" oxygen="5000.0"/>
<StatusEffect type="OnImpact" target="This" Condition="0.0" setvalue="true">
<sound file="Content/Items/Reactor/explosion.ogg"/>
<Explosion range="600.0" structuredamage="400" damage="300" stun="5" force="20.0"/>
</StatusEffect>
</Holdable>
</Throwable>
</Item>
<Item
name="Sulphurite Shard"
category="Alien"
tags="alien,smallitem"
impacttolerance="8"
spritecolor="1.0,0.0,0.0,1.0">
name="Sulphurite Shard"
category="Alien"
tags="alien,smallitem"
impacttolerance="8"
spritecolor="1.0,0.0,0.0,1.0">
<Deconstruct time="20">
<Item name="Steel Bar"/>
@@ -131,7 +138,7 @@
<Body width="8" height="32" density="15"/>
<Holdable slots="Any,RightHand,LeftHand" handle1="0,-5"/>
<Throwable slots="Any,RightHand,LeftHand" handle1="0,-5" throwforce="4.0" aimpos="35,-10"/>
</Item>
<Item

View File

@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<Items>
<Items>
<!-- Medical items -->
<Item
name="Medical Syringe"
category="Equipment"
@@ -57,6 +58,7 @@
</MeleeWeapon>
</Item>
<!-- Ingredients/weak chems -->
<Item
name="Iron Powder"
category="Material"
@@ -67,7 +69,11 @@
<Body width="8" height="16" density="40"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" Health="-2" duration="10">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>>
</Item>
<Item
@@ -75,7 +81,7 @@
category="Material"
spritecolor="1.0,1.0,0.7,1.0"
Tags="smallitem,chem,medical"
description="A mild stimulant which is used as an incredient in the manufacture of various medicines."
description="A mild stimulant which is used as an ingredient in the manufacture of various medicines."
price="10">
<Sprite texture ="med.png" sourcerect="15,15,8,17" depth="0.6" />
@@ -93,7 +99,109 @@
</StatusEffect>
</Throwable>
</Item>
<Item
name="Chlorine"
category="Material"
spritecolor="1.0,1.0,1.0,0.6"
Tags="smallitem,chem,medical"
price="20">
<Sprite texture ="med.png" sourcerect="15,15,8,17" depth="0.6"/>
<Body width="8" height="17" density="10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" Health="-0.1" duration="20.0">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>
</Item>
<Item
name="Ethanol"
category="Material"
spritecolor="0.0,0.9,0.1,1.0"
Tags="smallitem,chem,medical"
canuseonself="true"
price="20">
<ItemComponent>
<StatusEffect type="OnUse" target="This" Condition="-25.0" disabledeltatime="true"/>
<StatusEffect type="OnUse" target="Character" SpeedMultiplier="0.8" setvalue="true" duration="20.0"/>
</ItemComponent>
<Sprite texture ="med.png" sourcerect="15,15,8,17" depth="0.6"/>
<Body width="8" height="7" density="10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" SpeedMultiplier="0.8" setvalue="true" duration="20.0">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>
</Item>
<Item
name="Aluminium"
category="Material"
spritecolor="0.7,0.7,0.7,1.0"
Tags="smallitem,chem,medical"
price="20">
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6"/>
<Body width="8" height="16" density="10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" Health="-5.0" disabledeltatime="true">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>
</Item>
<Item
name="Potassium"
category="Material"
spritecolor="0.8,0.8,0.8,1.0"
Tags="smallitem,chem,medical"
price="20">
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6"/>
<Body width="8" height="16" density="10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" Health="-5.0" disabledeltatime="true">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
<!-- InWater is horribly broken right now. https://github.com/Regalis11/Barotrauma/issues/187
<StatusEffect type="InWater" target="This" Condition="0.0" setvalue="true">
<Sound file="Content/Items/Reactor/explosion.ogg"/>
<Explosion range="250.0" structuredamage="10" damage="20" stun="5" force="5.0"/>
</StatusEffect> -->
</Throwable>
</Item>
<Item
name="Phosphorus"
category="Material"
spritecolor="0.5,0.0,0.0,1.0"
Tags="smallitem,chem,medical"
price="20">
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6"/>
<Body width="8" height="16" density="10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" Health="-5.0" disabledeltatime="true">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>
</Item>
<!-- Helpful chems -->
<Item
name="Erythrozine"
category="Material"
@@ -184,85 +292,70 @@
</StatusEffect>
</Throwable>
</Item>
<Item
name="Chlorine"
category="Material"
spritecolor="1.0,1.0,1.0,0.6"
Tags="smallitem,chem,medical"
price="20">
name="Hyperzine"
category="Material"
spritecolor="0.8,0.3,0.8,1.0"
Tags="smallitem,chem,medical"
description="A potent muscle stimulant."
price="50">
<Sprite texture ="med.png" sourcerect="15,15,8,17" depth="0.6"/>
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6"/>
<Body width="8" height="17" density="10"/>
<Body width="8" height="16" density="15"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" Health="-0.1" duration="20.0">
<StatusEffect type="OnUse" target="Character" SpeedMultiplier="1.5" setvalue="true" duration="60.0">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>
</Item>
<Item
name="Ethanol"
category="Material"
spritecolor="0.0,0.9,0.1,1.0"
Tags="smallitem,chem,medical"
canuseonself="true"
price="20">
<ItemComponent>
<StatusEffect type="OnUse" target="This" Condition="-25.0" disabledeltatime="true"/>
<StatusEffect type="OnUse" target="Character" SpeedMultiplier="0.8" setvalue="true" duration="20.0"/>
</ItemComponent>
<Sprite texture ="med.png" sourcerect="15,15,8,17" depth="0.6"/>
<Body width="8" height="7" density="10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" SpeedMultiplier="0.8" setvalue="true" duration="20.0">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>
</Item>
<Item
name="Aluminium"
category="Material"
spritecolor="0.7,0.7,0.7,1.0"
Tags="smallitem,chem,medical"
price="20">
name="Calyxanide"
category="Material"
spritecolor="0.0,0.0,0.0,1.0"
Tags="smallitem,chem,medical"
description="An antiparasitic drug used in the treatment of husk parasite infections."
price="300">
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6"/>
<Body width="8" height="16" density="10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" Health="-5.0" disabledeltatime="true">
<StatusEffect type="OnUse" target="Character" HuskInfectionState="0.0" setvalue="true">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>
</Item>
<Item
name="Potassium"
category="Material"
spritecolor="0.8,0.8,0.8,1.0"
Tags="smallitem,chem,medical"
price="20">
name="Liquid Oxygenite"
category="Material"
spritecolor="0.6,0.8,1.0,1.0"
Tags="smallitem,chem,medical"
impacttolerance="8"
canuseonself="true"
description="A mildy toxic solution that slowly releases oxygen into the bloodstream when injected.">
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6"/>
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6" />
<Body width="8" height="16" density="10"/>
<Body width="8" height="16" density="20"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" Health="-5.0" disabledeltatime="true">
<StatusEffect type="OnUse" target="Character" Health="-0.1" Oxygen="10.0" duration="60">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
<StatusEffect type="OnImpact" target="This" Condition="0.0" setvalue="true">
<sound file="Content/Items/Reactor/explosion.ogg"/>
<Explosion range="300.0" structuredamage="40" damage="30" stun="5" force="20.0"/>
</StatusEffect>
</Throwable>
</Item>
<!-- Harmful and toxic chems -->
<Item
name="Flash Powder"
category="Material"
@@ -285,7 +378,6 @@
</Throwable>
</Item>
<Item
name="Chloral Hydrate"
category="Material"
@@ -304,24 +396,6 @@
</Throwable>
</Item>
<Item
name="Phosphorus"
category="Material"
spritecolor="0.5,0.0,0.0,1.0"
Tags="smallitem,chem,medical"
price="20">
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6"/>
<Body width="8" height="16" density="10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" Health="-5.0" disabledeltatime="true">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>
</Item>
<Item
name="Sulphuric Acid"
category="Material"
@@ -358,51 +432,13 @@
</Throwable>
</Item>
<Item
name="Hyperzine"
category="Material"
spritecolor="0.8,0.3,0.8,1.0"
Tags="smallitem,chem,medical"
description="A potent muscle stimulant."
price="50">
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6"/>
<Body width="8" height="16" density="15"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" SpeedMultiplier="1.5" setvalue="true" duration="60.0">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>
</Item>
<Item
name="Morbusine"
category="Material"
spritecolor="0.0,0.0,0.0,1.0"
Tags="smallitem,chem,medical"
description="A highly potent neurotoxin."
price="200">
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6"/>
<Body width="8" height="16" density="10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" Health="-10.0" duration="60.0">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>
</Item>
<Item
name="Velonaceps Calyx Eggs"
category="Material"
spritecolor="0.0,0.0,0.0,1.0"
Tags="smallitem,chem,medical"
description="Dormant eggs of the Europan lifeform colloquially referred to as 'husk parasite'."
price="200">
price="2000">
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6"/>
@@ -416,38 +452,70 @@
</Item>
<Item
name="Calyxanide"
name="Morbusine"
category="Material"
spritecolor="0.0,0.0,0.0,1.0"
Tags="smallitem,chem,medical"
description="An antiparasitic drug used in the treatment of husk parasite infections."
price="300">
description="A highly potent neurotoxin."
price="1000">
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6"/>
<Body width="8" height="16" density="10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" HuskInfectionState="0.0" setvalue="true">
<StatusEffect type="OnUse" target="Character" Health="-10.0" duration="60.0">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>
</Item>
<Item
name="Liquid Oxygenite"
category="Material"
spritecolor="0.6,0.8,1.0,1.0"
Tags="smallitem,chem,medical"
canuseonself="true"
description="A mildy toxic solution that slowly releases oxygen into the bloodstream when injected.">
name="Nitroglycerin"
category="Material"
description="A highly unstable liquid that may explode when subjected to heat or physical shock."
spritecolor="1.0,1.0,1.0,1.0"
Tags="smallitem,chem,medical"
impacttolerance="4">
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6" />
<Sprite texture ="Content/Items/Medical/med.png" sourcerect="24,16,8,16" depth="0.6"/>
<Body width="8" height="16" density="20"/>
<Body width="25" height="5" density="10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" Health="-0.1" Oxygen="10.0" duration="60">
<StatusEffect type="OnImpact" target="This" Condition="0.0" setvalue="true"/>
<StatusEffect type="OnFire" target="This" Condition="-50.0"/>
<StatusEffect type="OnBroken" target="This" Condition="-100.0">
<sound file="Content/Items/Reactor/explosion.ogg" range="3000"/>
<Explosion range="600.0" structuredamage="400" damage="300" stun="5" force="20.0" severlimbsprobability="0.4" decal="explosion" decalsize="0.5"/>
</StatusEffect>
<StatusEffect type="OnUse" target="This" Condition="-100.0">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>
</Item>
<Item
name="Amanitin"
category="Material"
spritecolor="1.0,0.3,0.3,1.0"
Tags="smallitem,chem,medical"
description="A devious poison with a delayed effect.">
<!-- price="2000" Should be mixed by traitor medics more than anything -->
<Sprite texture ="med.png" sourcerect="24,16,8,16" depth="0.6"/>
<Body width="8" height="16" density="10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnUse" target="Character" Health="-0.5" duration="20.0">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
<!-- Here's a problem: if a chemical with delay is injected into more than one person, only the last person will get that delayed effect.
Everyone else gets off scott free! Woo!!!..... -->
<StatusEffect type="OnUse" target="Character" Oxygen="-15.0" Health="-1.0" duration="60.0" delay="20.0">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>

View File

@@ -104,31 +104,4 @@
</input>
</ConnectionPanel>
</Item>
<Item
name="Nitroglycerin"
category="Material"
description="A highly unstable liquid that may explode when subjected to heat or physical shock."
spritecolor="1.0,1.0,1.0,1.0"
Tags="smallitem,chem,medical"
impacttolerance="4">
<Sprite texture ="Content/Items/Medical/med.png" sourcerect="24,16,8,16" depth="0.6"/>
<Body width="25" height="5" density="10"/>
<Throwable slots="Any,RightHand,LeftHand" throwforce="4.0" aimpos="35,-10">
<StatusEffect type="OnImpact" target="This" Condition="0.0" setvalue="true"/>
<StatusEffect type="OnFire" target="This" Condition="-50.0"/>
<StatusEffect type="OnBroken" target="This" Condition="-100.0">
<sound file="Content/Items/Reactor/explosion.ogg" range="3000"/>
<Explosion range="600.0" structuredamage="400" damage="300" stun="5" force="20.0" severlimbsprobability="0.4" decal="explosion" decalsize="0.5"/>
</StatusEffect>
<StatusEffect type="OnUse" target="This" Condition="-100.0">
<RequiredItem name="Medical Syringe" type="Container"/>
</StatusEffect>
</Throwable>
</Item>
</Items>