Fixes to projectiles going through walls:

- Continuous collision detection (body.IsBullet) is disabled when the body is moving slow enough, not immediately when it hits something.
- The prismatic joint that sticks projectiles to walls/characters stays active for a minimum of 1 s to prevent the projectile from immediately overshooting the joint limits and falling off (usually at the wrong side of a wall/door it hit).
- Separate properties for determining which types of bodies the projectile can stick to (character/structure/item).
- Spears and syringes only stick to characters.
- Increased syringe launch impulse.

Closes #122
This commit is contained in:
Joonas Rikkonen
2017-12-14 19:25:31 +02:00
parent 1da15dbca2
commit 58e98977df
3 changed files with 68 additions and 22 deletions
@@ -26,7 +26,7 @@
<Containable name="chem"/>
</ItemContainer>
<Projectile launchimpulse="10.0" doesstick="true">
<Projectile launchimpulse="20.0" sticktocharacters="true">
<Attack damage="5" bleedingdamage="0.2" structuredamage="1" damagetype="Blunt" stun="0.1" targetforce="5"/>
<StatusEffect type="OnImpact" target="Contained, Character" Condition="-50.0" disabledeltatime="true" >
<sound file="Content/Items/Medical/syringe.ogg" range="500"/>
@@ -16,7 +16,7 @@
<Body width="64" height="5" density="20"/>
<Pickable slots="Any"/>
<Projectile launchimpulse="20.0" doesstick="true">
<Projectile launchimpulse="20.0" sticktocharacters="true">
<Attack damage="20" bleedingdamage="2" structuredamage="50" damagetype="Blunt" stun="0.2" targetforce="50"/>
</Projectile>
</Item>
@@ -100,7 +100,7 @@
<Body width="8" height="3" density="40"/>
<Pickable slots="Any"/>
<Projectile hitscan="true" doesstick="false" removeonhit="true" >
<Projectile hitscan="true" removeonhit="true" >
<Attack damage="40" bleedingdamage="3" structuredamage="100" damagetype="Blunt" stun="0.5" targetforce="50"/>
</Projectile>
</Item>