Merge pull request #123 from Crystalwarrior/syringeGun

Syringe gun + projectile tweaks + several status effects/item components tweaks
This commit is contained in:
Joonas Rikkonen
2017-12-12 20:12:28 +02:00
committed by GitHub
9 changed files with 70 additions and 7 deletions

View File

@@ -1021,6 +1021,9 @@
<None Include="$(MSBuildThisFileDirectory)Content\Items\Weapons\stungrenade.ogg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="$(MSBuildThisFileDirectory)Content\Items\Weapons\syringegun.ogg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="$(MSBuildThisFileDirectory)Content\Map\TutorialSub.sub">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>

View File

@@ -40,13 +40,16 @@
<fabricableitem name="And Component" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="Or Component" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="Not Component" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="Relay Component" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="Delay Component" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="Light Component" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="Oxygen Detector" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="Water Detector" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="Signal Check Component" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="RegEx Find Component" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="Oscillator" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="Wifi Component" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="Emergency Siren" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="Alarm Buzzer" requireditems="Steel Bar, FPGA Circuit" requiredtime="10"/>
<fabricableitem name="Underwater Scooter" requireditems="Steel Bar, Polycarbonate Bar, Polycarbonate Bar, FPGA Circuit" requiredtime="30"/>
@@ -96,6 +99,7 @@
<sound file="fabricator.ogg" type="OnActive" range="1000.0" loop="true"/>
<fabricableitem name="Medical Syringe" requireditems="Steel Bar" requiredtime="10"/>
<fabricableitem name="Chloral Hydrate" requireditems="Chlorine, Ethanol" requiredtime="20">
<RequiredSkill name="Medical" level="30"/>
</fabricableitem>

View File

@@ -25,6 +25,15 @@
<ItemContainer capacity="1" hideitems="true">
<Containable name="chem"/>
</ItemContainer>
<Projectile launchimpulse="10.0" doesstick="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"/>
<RequiredItem name="chem" type="Contained"/>
<Use/>
</StatusEffect>
</Projectile>
</Item>
<Item

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -56,6 +56,38 @@
</ItemContainer>
</Item>
<Item
name="Syringe Gun"
category="Equipment"
price="700"
tags="weapon">
<Deconstruct time="10">
<Item name="Steel Bar"/>
<Item name="Aluminium"/>
<Item name="Polycarbonate Bar"/>
</Deconstruct>
<Sprite texture="weapons.png" sourcerect="62,97,44,24" depth="0.55"/>
<Body width="40" height="25" density="50"/>
<Holdable slots="Any,RightHand,LeftHand" controlpose="true"
aimpos="90,10" handle1="-10,-7"/>
<RangedWeapon barrelpos="30,20" spread="0" unskilledspread="10">
<Sound file="syringegun.ogg" type="OnUse"/>
<RequiredItems name="Medical Syringe" type="Contained" msg="Please load a Syringe"/>
<RequiredSkill name="Weapons" level="15"/>
<RequiredSkill name="Medical" level="30"/>
</RangedWeapon>
<ItemContainer capacity="1" itempos="0,10" hideitems="false">
<Containable name="Medical Syringe"/>
</ItemContainer>
</Item>
<Item
name="Revolver Round"
category="Equipment"

View File

@@ -265,7 +265,7 @@ namespace Barotrauma
{
SerializableProperty property;
if (!target.SerializableProperties.TryGetValue(propertyNames[i], out property)) continue;
if (target == null || target.SerializableProperties == null || !target.SerializableProperties.TryGetValue(propertyNames[i], out property)) continue;
if (duration > 0.0f)
{

View File

@@ -114,6 +114,18 @@ namespace Barotrauma
NewMessage("The code words are: " + traitorManager.codeWords + ", response: " + traitorManager.codeResponse + ".", Color.Cyan);
}));
commands.Add(new Command("itemlist", "itemlist: List all the item prefabs available for spawning.", (string[] args) =>
{
NewMessage("***************", Color.Cyan);
foreach (MapEntityPrefab ep in MapEntityPrefab.List)
{
var itemPrefab = ep as ItemPrefab;
if (itemPrefab == null || itemPrefab.Name == null) continue;
NewMessage("- " + itemPrefab.Name, Color.Cyan);
}
NewMessage("***************", Color.Cyan);
}));
commands.Add(new Command("createfilelist", "", (string[] args) =>
{
UpdaterUtil.SaveFileList("filelist.xml");

View File

@@ -237,6 +237,7 @@ namespace Barotrauma.Items.Components
}
AttackResult attackResult = new AttackResult();
Character character = null;
if (attack != null)
{
var submarine = target.Body.UserData as Submarine;
@@ -248,11 +249,13 @@ namespace Barotrauma.Items.Components
return true;
}
Limb limb;
Limb limb = target.Body.UserData as Limb;
Structure structure;
if ((limb = (target.Body.UserData as Limb)) != null)
if (limb != null)
{
attackResult = attack.DoDamageToLimb(User, limb, item.WorldPosition, 1.0f);
if (limb.character != null)
character = limb.character;
}
else if ((structure = (target.Body.UserData as Structure)) != null)
{
@@ -260,8 +263,8 @@ namespace Barotrauma.Items.Components
}
}
ApplyStatusEffects(ActionType.OnUse, 1.0f);
ApplyStatusEffects(ActionType.OnImpact, 1.0f);
ApplyStatusEffects(ActionType.OnUse, 1.0f, character);
ApplyStatusEffects(ActionType.OnImpact, 1.0f, character);
IsActive = false;
@@ -306,7 +309,7 @@ namespace Barotrauma.Items.Components
{
contained.SetTransform(item.SimPosition, contained.body.Rotation);
}
contained.Condition = 0.0f;
//contained.Condition = 0.0f; //Let the freaking .xml handle it jeez
}
}