- handheld sonar
- junction boxes, sonar monitors, navigation terminals and engines break down if they're underwater long enough - reactor cools down if it's underwater - job-specific gear are grouped by job in separate .xml files
@@ -442,28 +442,40 @@
|
||||
<Content Include="Content\Items\blank.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Clothes\captainLegs.png">
|
||||
<Content Include="Content\Items\Jobgear\captainLegs.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Clothes\captainTorso.png">
|
||||
<Content Include="Content\Items\Jobgear\captainTorso.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Clothes\clownmask.png">
|
||||
<Content Include="Content\Items\Jobgear\captaingear.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Clothes\clownpants.png">
|
||||
<Content Include="Content\Items\Jobgear\engigear.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Clothes\clownshirt.png">
|
||||
<Content Include="Content\Items\Jobgear\securitygear.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Clothes\doctorgear.png">
|
||||
<Content Include="Content\Items\Jobgear\doctorgear.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Clothes\engigear.png">
|
||||
<Content Include="Content\Items\Jobgear\clownmask.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Clothes\securitygear.png">
|
||||
<Content Include="Content\Items\Jobgear\clownpants.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Jobgear\clownshirt.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Jobgear\doctorgear.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Jobgear\engigear.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Jobgear\securitygear.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\connectionpanel.png">
|
||||
@@ -562,10 +574,10 @@
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<SubType>Designer</SubType>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Clothes\captainhat.png">
|
||||
<Content Include="Content\Items\Jobgear\captainhat.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\Clothes\clothes.xml">
|
||||
<Content Include="Content\Items\Jobgear\misc.xml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Content\Items\connector.png">
|
||||
|
||||
@@ -1,282 +0,0 @@
|
||||
<Items>
|
||||
<Item
|
||||
name="Captain's Cap"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
description="A token of the Captain's unquestionable authority.">
|
||||
|
||||
<Sprite texture ="captainhat.png" depth="0.6"/>
|
||||
|
||||
<Body radius="8" density="30"/>
|
||||
|
||||
<Wearable limbtype="Head" slots="Any,Head">
|
||||
<sprite texture="captainhat.png" limb="Head" origin="0.5,0.9"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Captain's Jacket"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem">
|
||||
|
||||
<Sprite texture ="captainLegs.png" sourcerect="0,49,52,17" depth="0.6"/>
|
||||
|
||||
<Body width="52" height="17" density="30"/>
|
||||
|
||||
<Wearable slots="Any,Torso">
|
||||
<sprite texture="captainTorso.png" limb="Torso" sourcerect="0,3,30,58" origin="0.5,0.48" depth="0.01"/>
|
||||
|
||||
<sprite texture="captainTorso.png" limb="RightHand" sourcerect="47,0,15,39" origin="0.45,0.6"/>
|
||||
<sprite texture="captainTorso.png" limb="LeftHand" sourcerect="47,0,15,39" origin="0.45,0.6" depth="0.14"/>
|
||||
|
||||
<sprite texture="captainTorso.png" limb="RightArm" sourcerect="30,0,17,42" origin="0.5,0.5" depth="0.005" hidelimb="true"/>
|
||||
<sprite texture="captainTorso.png" limb="LeftArm" sourcerect="30,0,17,42" origin="0.5,0.5" depth="0.13" hidelimb="true"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Captain's Trousers"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem">
|
||||
|
||||
<Sprite texture ="captainLegs.png" sourcerect="0,67,51,13" depth="0.6"/>
|
||||
|
||||
<Body width="51" height="13" density="30"/>
|
||||
|
||||
<Wearable slots="Any,Legs">
|
||||
<sprite texture="captainLegs.png" limb="Waist" sourcerect="0,0,1,1" origin="0.5,0.5" hidelimb="true"/>
|
||||
<sprite texture="captainLegs.png" limb="RightThigh" sourcerect="52,34,28,46" origin="0.5,0.5" depth="0.10" hidelimb="true"/>
|
||||
<sprite texture="captainLegs.png" limb="LeftThigh" sourcerect="52,34,28,46" origin="0.5,0.5" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="captainLegs.png" limb="RightLeg" sourcerect="31,0,21,49" origin="0.5,0.5" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="captainLegs.png" limb="LeftLeg" sourcerect="31,0,21,49" origin="0.5,0.5" depth="0.15" hidelimb="true"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Body Armor"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
description="While the body armor won't offer adequate protection against most of the inhabitants of the subsurface ocean, it can be extremely useful if there are traitors on board.">
|
||||
|
||||
<Sprite texture ="securitygear.png" sourcerect="68,0,60,31" depth="0.6"/>
|
||||
|
||||
<Body width="52" height="17" density="40"/>
|
||||
|
||||
<Wearable slots="Any,Torso" armorvalue="10.0">
|
||||
<sprite texture="securitygear.png" limb="Torso" sourcerect="0,0,38,58" origin="0.52,0.48"/>
|
||||
|
||||
<sprite texture="securitygear.png" limb="RightArm" sourcerect="41,0,21,21" origin="0.5,1.1"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Ballistic Helmet"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
description="While the helmet won't offer adequate protection against most of the inhabitants of the subsurface ocean, it can be extremely useful if there are traitors on board.">
|
||||
|
||||
<Deconstruct time="10">
|
||||
<Item name="Polycarbonate Bar"/>
|
||||
<Item name="Polycarbonate Bar"/>
|
||||
</Deconstruct>
|
||||
|
||||
<Sprite texture ="securitygear.png" sourcerect="40,32,34,25" depth="0.6"/>
|
||||
|
||||
<Body radius="12" density="50"/>
|
||||
|
||||
<Wearable slots="Any,Head" armorvalue="20.0">
|
||||
<sprite texture="securitygear.png" limb="Head" sourcerect="39,31,29,22" origin="0.51,0.9"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Handcuffs"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem" >
|
||||
|
||||
<Sprite texture = "securitygear.png" sourcerect="0,63,32,14" depth="0.6"/>
|
||||
|
||||
<Body width="30" height="12" density="30"/>
|
||||
|
||||
<Wearable slots="Any,RightHand+LeftHand">
|
||||
<sprite texture="securitygear.png" limb="RightHand" sourcerect="32,62,16,16" origin="0.5,-0.5" depth="0.01"/>
|
||||
<sprite texture="securitygear.png" limb="LeftHand" sourcerect="32,62,16,16" origin="0.5,-0.5" depth="0.01"/>
|
||||
|
||||
<StatusEffect type="OnWearing" target="Character" lockhands="true" setvalue="true"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Orange Jumpsuit"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
fireproof="true"
|
||||
description="The fire-resistant fabric offers some protection against fires. Plenty of pockets for carrying any extra gear an engineer might need.">
|
||||
|
||||
<Sprite texture = "engigear.png" sourcerect="0,52,50,25" depth="0.6"/>
|
||||
|
||||
<Body width="50" height="17" density="20"/>
|
||||
|
||||
<Wearable slots="Any,Torso+Legs">
|
||||
<sprite texture="engigear.png" limb="Torso" sourcerect="0,0,32,51" origin="0.5,0.48" depth="0.01"/>
|
||||
|
||||
<sprite texture="engigear.png" limb="Waist" sourcerect="81,0,30,26" origin="0.5,0.45" hidelimb="true"/>
|
||||
<sprite texture="engigear.png" limb="RightThigh" sourcerect="53,0,27,49" origin="0.5,0.5" depth="0.10" hidelimb="true"/>
|
||||
<sprite texture="engigear.png" limb="LeftThigh" sourcerect="53,0,27,49" origin="0.5,0.5" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="engigear.png" limb="RightLeg" sourcerect="33,0,20,51" origin="0.5,0.5" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="engigear.png" limb="LeftLeg" sourcerect="33,0,20,51" origin="0.5,0.5" depth="0.15" hidelimb="true"/>
|
||||
</Wearable>
|
||||
|
||||
<ItemContainer capacity="5">
|
||||
<Containable name="smallitem"/>
|
||||
</ItemContainer>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Blue Jumpsuit"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
fireproof="true"
|
||||
description="The fire-resistant fabric offers some protection against fires. Plenty of pockets for carrying any extra gear a mechanic might need.">
|
||||
|
||||
<Sprite texture = "engigear.png" sourcerect="53,50,51,25" depth="0.6"/>
|
||||
|
||||
<Body width="50" height="17" density="20"/>
|
||||
|
||||
<Wearable slots="Any,Torso+Legs">
|
||||
<sprite texture="engigear.png" limb="Torso" sourcerect="0,77,32,51" origin="0.5,0.48" depth="0.01"/>
|
||||
|
||||
<sprite texture="engigear.png" limb="Waist" sourcerect="81,77,30,26" origin="0.5,0.45" hidelimb="true"/>
|
||||
<sprite texture="engigear.png" limb="RightThigh" sourcerect="53,77,27,49" origin="0.5,0.5" depth="0.10" hidelimb="true"/>
|
||||
<sprite texture="engigear.png" limb="LeftThigh" sourcerect="53,77,27,49" origin="0.5,0.5" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="engigear.png" limb="RightLeg" sourcerect="33,77,20,51" origin="0.5,0.5" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="engigear.png" limb="LeftLeg" sourcerect="33,77,20,51" origin="0.5,0.5" depth="0.15" hidelimb="true"/>
|
||||
</Wearable>
|
||||
|
||||
<ItemContainer capacity="5">
|
||||
<Containable name="smallitem"/>
|
||||
</ItemContainer>
|
||||
</Item>
|
||||
|
||||
|
||||
|
||||
<Item
|
||||
name="Clown Mask"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
description="Praise the honkmother.">
|
||||
|
||||
<Sprite texture ="clownmask.png" depth="0.6"/>
|
||||
|
||||
<Body radius="8" density="10"/>
|
||||
|
||||
<Wearable limbtype="Head" slots="Any,Head">
|
||||
<sprite texture="clownmask.png" limb="Head" origin="0.5,0.5"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Health Scanner HUD"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
description="A heads-up display that displays information of the vital signs and status of nearby humans.">
|
||||
|
||||
<Sprite texture ="doctorgear.png" sourcerect="0,120,20,8" depth="0.6"/>
|
||||
|
||||
<Body width="18" height="6" density="30"/>
|
||||
|
||||
<Wearable limbtype="Head" slots="Any,Head">
|
||||
<sprite texture ="doctorgear.png" sourcerect="0,120,20,8" limb="Head" origin="0.45,0.9"/>
|
||||
</Wearable>
|
||||
|
||||
<StatusHUD/>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Doctor's Coat"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem">
|
||||
|
||||
<Sprite texture ="doctorgear.png" sourcerect="75,0,53,18" depth="0.6"/>
|
||||
|
||||
<Body width="52" height="17" density="30"/>
|
||||
|
||||
<Wearable slots="Any,Torso">
|
||||
<sprite texture="doctorgear.png" limb="Torso" sourcerect="0,0,31,58" origin="0.5,0.48" depth="0.01"/>
|
||||
|
||||
<sprite texture="doctorgear.png" limb="RightHand" sourcerect="51,0,15,47" origin="0.45,0.55" depth="0.005" hidelimb="true"/>
|
||||
<sprite texture="doctorgear.png" limb="LeftHand" sourcerect="51,0,15,47" origin="0.45,0.55" depth="0.13" hidelimb="true"/>
|
||||
|
||||
<sprite texture="doctorgear.png" limb="RightArm" sourcerect="33,0,17,40" origin="0.5,0.5" hidelimb="true"/>
|
||||
<sprite texture="doctorgear.png" limb="LeftArm" sourcerect="33,0,17,40" origin="0.5,0.5" depth="0.14" hidelimb="true"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Doctor's Trousers"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem">
|
||||
|
||||
<Sprite texture ="doctorgear.png" sourcerect="76,19,51,13" depth="0.6"/>
|
||||
|
||||
<Body width="51" height="13" density="30"/>
|
||||
|
||||
<Wearable slots="Any,Legs">
|
||||
<sprite texture="doctorgear.png" limb="Waist" sourcerect="0,0,1,1" origin="0.5,0.5" hidelimb="true"/>
|
||||
<sprite texture="doctorgear.png" limb="RightThigh" sourcerect="0,61,24,46" origin="0.5,0.5" depth="0.10" hidelimb="true"/>
|
||||
<sprite texture="doctorgear.png" limb="LeftThigh" sourcerect="0,61,24,46" origin="0.5,0.5" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="doctorgear.png" limb="RightLeg" sourcerect="26,61,17,48" origin="0.5,0.5" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="doctorgear.png" limb="LeftLeg" sourcerect="26,61,17,48" origin="0.5,0.5" depth="0.15" hidelimb="true"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Clown Costume"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
description="Praise the honkmother.">
|
||||
|
||||
<Sprite texture ="clownpants.png" sourcerect="0,62,53,18" depth="0.6"/>
|
||||
|
||||
<Body width="53" height="18" density="30"/>
|
||||
|
||||
<Wearable slots="Any,Torso+Legs">
|
||||
<sprite texture="clownshirt.png" limb="Torso" sourcerect="0,3,30,58" origin="0.5,0.48" depth="0.02"/>
|
||||
|
||||
<sprite texture="clownshirt.png" limb="RightHand" sourcerect="47,0,15,49" origin="0.45,0.6" hidelimb="true"/>
|
||||
<sprite texture="clownshirt.png" limb="LeftHand" sourcerect="47,0,15,49" origin="0.45,0.6" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="clownshirt.png" limb="RightArm" sourcerect="30,0,17,42" origin="0.5,0.5" depth="0.005" hidelimb="true"/>
|
||||
<sprite texture="clownshirt.png" limb="LeftArm" sourcerect="30,0,17,42" origin="0.5,0.5" depth="0.13" hidelimb="true"/>
|
||||
|
||||
<sprite texture="clownpants.png" limb="Waist" sourcerect="0,0,1,1" origin="0.5,0.5" hidelimb="true"/>
|
||||
<sprite texture="clownpants.png" limb="RightThigh" sourcerect="0,0,38,50" origin="0.5,0.5" depth="0.01" hidelimb="true"/>
|
||||
<sprite texture="clownpants.png" limb="LeftThigh" sourcerect="0,0,38,50" origin="0.5,0.5" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="clownpants.png" limb="RightLeg" sourcerect="37,0,28,52" origin="0.55,0.5" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="clownpants.png" limb="LeftLeg" sourcerect="37,0,28,52" origin="0.55,0.5" depth="0.15" hidelimb="true"/>
|
||||
|
||||
<sprite texture="clownpants.png" limb="RightFoot" sourcerect="65,41,15,39" origin="0.5,0.35" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="clownpants.png" limb="LeftFoot" sourcerect="65,41,15,39" origin="0.5,0.35" depth="0.15" hidelimb="true"/>
|
||||
|
||||
</Wearable>
|
||||
</Item>
|
||||
</Items>
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
</fixrequirement>
|
||||
|
||||
<PowerTransfer canbeselected = "true">
|
||||
<StatusEffect type="InWater" target="This" condition="-1.0"/>
|
||||
<GuiFrame rect="0,0,350,160" alignment="Center" color="0.0,0.0,0.0,0.6"/>
|
||||
</PowerTransfer>
|
||||
|
||||
|
||||
@@ -10,7 +10,14 @@
|
||||
|
||||
<Sprite texture ="engine.png" depth="0.8"/>
|
||||
|
||||
<fixrequirement name="Mechanical repairs">
|
||||
<skill name="Construction" level="40"/>
|
||||
<item name="Welding Tool"/>
|
||||
<item name="Wrench"/>
|
||||
</fixrequirement>
|
||||
|
||||
<Engine minvoltage="0.5" powerconsumption="2000.0" maxforce="2000" canbeselected = "true">
|
||||
<StatusEffect type="InWater" target="This" condition="-2.0"/>
|
||||
<GuiFrame rect="0,0,350,160" alignment="Center" color="0.0,0.0,0.0,0.6"/>
|
||||
<sound file="engine.ogg" type="OnActive" range="3000.0" volume="CurrentVolume" loop="true"/>
|
||||
</Engine>
|
||||
@@ -30,7 +37,14 @@
|
||||
|
||||
<Sprite texture="Content/Items/machines.png" depth="0.8" sourcerect="0,0,64,128"/>
|
||||
|
||||
<fixrequirement name="Electrical repairs">
|
||||
<skill name="Electrical Engineering" level="40"/>
|
||||
<item name="Wire"/>
|
||||
<item name="Screwdriver"/>
|
||||
</fixrequirement>
|
||||
|
||||
<Steering minvoltage="0.5" canbeselected = "true" powerconsumption="10">
|
||||
<StatusEffect type="InWater" target="This" condition="-1.0"/>
|
||||
<GuiFrame rect="0,0,0.5,0.5" alignment="Center" color="0.0,0.0,0.0,0.6"/>
|
||||
</Steering>
|
||||
|
||||
@@ -58,7 +72,14 @@
|
||||
|
||||
<Sprite texture="Content/Items/machines.png" depth="0.8" sourcerect="64,0,64,128"/>
|
||||
|
||||
<fixrequirement name="Electrical repairs">
|
||||
<skill name="Electrical Engineering" level="40"/>
|
||||
<item name="Wire"/>
|
||||
<item name="Screwdriver"/>
|
||||
</fixrequirement>
|
||||
|
||||
<Radar canbeselected = "true" powerconsumption="100">
|
||||
<StatusEffect type="InWater" target="This" condition="-1.0"/>
|
||||
<GuiFrame rect="0,0,0.5,0.5" alignment="Center" color="0.0,0.0,0.0,0.6"/>
|
||||
<PingCircle texture="Content/Items/Engine/pingCircle.png" origin="0.5,0.5"/>
|
||||
<ScreenOverlay texture="Content/Items/Engine/radarOverlay.png" origin="0.5,0.5"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
59
Subsurface/Content/Items/Jobgear/captaingear.xml
Normal file
@@ -0,0 +1,59 @@
|
||||
<Items>
|
||||
<Item
|
||||
name="Captain's Cap"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
description="A token of the Captain's unquestionable authority.">
|
||||
|
||||
<Sprite texture ="captainhat.png" depth="0.6"/>
|
||||
|
||||
<Body radius="8" density="30"/>
|
||||
|
||||
<Wearable limbtype="Head" slots="Any,Head">
|
||||
<sprite texture="captainhat.png" limb="Head" origin="0.5,0.9"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Captain's Jacket"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem">
|
||||
|
||||
<Sprite texture ="captainLegs.png" sourcerect="0,49,52,17" depth="0.6"/>
|
||||
|
||||
<Body width="52" height="17" density="30"/>
|
||||
|
||||
<Wearable slots="Any,Torso">
|
||||
<sprite texture="captainTorso.png" limb="Torso" sourcerect="0,3,30,58" origin="0.5,0.48" depth="0.01"/>
|
||||
|
||||
<sprite texture="captainTorso.png" limb="RightHand" sourcerect="47,0,15,39" origin="0.45,0.6"/>
|
||||
<sprite texture="captainTorso.png" limb="LeftHand" sourcerect="47,0,15,39" origin="0.45,0.6" depth="0.14"/>
|
||||
|
||||
<sprite texture="captainTorso.png" limb="RightArm" sourcerect="30,0,17,42" origin="0.5,0.5" depth="0.005" hidelimb="true"/>
|
||||
<sprite texture="captainTorso.png" limb="LeftArm" sourcerect="30,0,17,42" origin="0.5,0.5" depth="0.13" hidelimb="true"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Captain's Trousers"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem">
|
||||
|
||||
<Sprite texture ="captainLegs.png" sourcerect="0,67,51,13" depth="0.6"/>
|
||||
|
||||
<Body width="51" height="13" density="30"/>
|
||||
|
||||
<Wearable slots="Any,Legs">
|
||||
<sprite texture="captainLegs.png" limb="Waist" sourcerect="0,0,1,1" origin="0.5,0.5" hidelimb="true"/>
|
||||
<sprite texture="captainLegs.png" limb="RightThigh" sourcerect="52,34,28,46" origin="0.5,0.5" depth="0.10" hidelimb="true"/>
|
||||
<sprite texture="captainLegs.png" limb="LeftThigh" sourcerect="52,34,28,46" origin="0.5,0.5" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="captainLegs.png" limb="RightLeg" sourcerect="31,0,21,49" origin="0.5,0.5" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="captainLegs.png" limb="LeftLeg" sourcerect="31,0,21,49" origin="0.5,0.5" depth="0.15" hidelimb="true"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
</Items>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
94
Subsurface/Content/Items/Jobgear/doctorgear.xml
Normal file
@@ -0,0 +1,94 @@
|
||||
<Items>
|
||||
<Item
|
||||
name="Health Scanner HUD"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
description="A heads-up display that displays information of the vital signs and status of nearby humans.">
|
||||
|
||||
<Sprite texture ="doctorgear.png" sourcerect="0,120,20,8" depth="0.6"/>
|
||||
|
||||
<Body width="18" height="6" density="30"/>
|
||||
|
||||
<Wearable limbtype="Head" slots="Any,Head">
|
||||
<sprite texture ="doctorgear.png" sourcerect="0,120,20,8" limb="Head" origin="0.45,0.9"/>
|
||||
</Wearable>
|
||||
|
||||
<StatusHUD drawhudwhenequipped="true"/>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Doctor's Coat"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem">
|
||||
|
||||
<Sprite texture ="doctorgear.png" sourcerect="75,0,53,18" depth="0.6"/>
|
||||
|
||||
<Body width="52" height="17" density="30"/>
|
||||
|
||||
<Wearable slots="Any,Torso">
|
||||
<sprite texture="doctorgear.png" limb="Torso" sourcerect="0,0,31,58" origin="0.5,0.48" depth="0.01"/>
|
||||
|
||||
<sprite texture="doctorgear.png" limb="RightHand" sourcerect="51,0,15,47" origin="0.45,0.55" depth="0.005" hidelimb="true"/>
|
||||
<sprite texture="doctorgear.png" limb="LeftHand" sourcerect="51,0,15,47" origin="0.45,0.55" depth="0.13" hidelimb="true"/>
|
||||
|
||||
<sprite texture="doctorgear.png" limb="RightArm" sourcerect="33,0,17,40" origin="0.5,0.5" hidelimb="true"/>
|
||||
<sprite texture="doctorgear.png" limb="LeftArm" sourcerect="33,0,17,40" origin="0.5,0.5" depth="0.14" hidelimb="true"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Doctor's Trousers"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem">
|
||||
|
||||
<Sprite texture ="doctorgear.png" sourcerect="76,19,51,13" depth="0.6"/>
|
||||
|
||||
<Body width="51" height="13" density="30"/>
|
||||
|
||||
<Wearable slots="Any,Legs">
|
||||
<sprite texture="doctorgear.png" limb="Waist" sourcerect="0,0,1,1" origin="0.5,0.5" hidelimb="true"/>
|
||||
<sprite texture="doctorgear.png" limb="RightThigh" sourcerect="0,61,24,46" origin="0.5,0.5" depth="0.10" hidelimb="true"/>
|
||||
<sprite texture="doctorgear.png" limb="LeftThigh" sourcerect="0,61,24,46" origin="0.5,0.5" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="doctorgear.png" limb="RightLeg" sourcerect="26,61,17,48" origin="0.5,0.5" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="doctorgear.png" limb="LeftLeg" sourcerect="26,61,17,48" origin="0.5,0.5" depth="0.15" hidelimb="true"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Clown Costume"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
description="Praise the honkmother.">
|
||||
|
||||
<Sprite texture ="clownpants.png" sourcerect="0,62,53,18" depth="0.6"/>
|
||||
|
||||
<Body width="53" height="18" density="30"/>
|
||||
|
||||
<Wearable slots="Any,Torso+Legs">
|
||||
<sprite texture="clownshirt.png" limb="Torso" sourcerect="0,3,30,58" origin="0.5,0.48" depth="0.02"/>
|
||||
|
||||
<sprite texture="clownshirt.png" limb="RightHand" sourcerect="47,0,15,49" origin="0.45,0.6" hidelimb="true"/>
|
||||
<sprite texture="clownshirt.png" limb="LeftHand" sourcerect="47,0,15,49" origin="0.45,0.6" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="clownshirt.png" limb="RightArm" sourcerect="30,0,17,42" origin="0.5,0.5" depth="0.005" hidelimb="true"/>
|
||||
<sprite texture="clownshirt.png" limb="LeftArm" sourcerect="30,0,17,42" origin="0.5,0.5" depth="0.13" hidelimb="true"/>
|
||||
|
||||
<sprite texture="clownpants.png" limb="Waist" sourcerect="0,0,1,1" origin="0.5,0.5" hidelimb="true"/>
|
||||
<sprite texture="clownpants.png" limb="RightThigh" sourcerect="0,0,38,50" origin="0.5,0.5" depth="0.01" hidelimb="true"/>
|
||||
<sprite texture="clownpants.png" limb="LeftThigh" sourcerect="0,0,38,50" origin="0.5,0.5" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="clownpants.png" limb="RightLeg" sourcerect="37,0,28,52" origin="0.55,0.5" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="clownpants.png" limb="LeftLeg" sourcerect="37,0,28,52" origin="0.55,0.5" depth="0.15" hidelimb="true"/>
|
||||
|
||||
<sprite texture="clownpants.png" limb="RightFoot" sourcerect="65,41,15,39" origin="0.5,0.35" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="clownpants.png" limb="LeftFoot" sourcerect="65,41,15,39" origin="0.5,0.35" depth="0.15" hidelimb="true"/>
|
||||
|
||||
</Wearable>
|
||||
</Item>
|
||||
</Items>
|
||||
|
||||
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
58
Subsurface/Content/Items/Jobgear/engigear.xml
Normal file
@@ -0,0 +1,58 @@
|
||||
<Items>
|
||||
<Item
|
||||
name="Orange Jumpsuit"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
fireproof="true"
|
||||
description="The fire-resistant fabric offers some protection against fires. Plenty of pockets for carrying any extra gear an engineer might need.">
|
||||
|
||||
<Sprite texture = "engigear.png" sourcerect="0,52,50,25" depth="0.6"/>
|
||||
|
||||
<Body width="50" height="17" density="20"/>
|
||||
|
||||
<Wearable slots="Any,Torso+Legs">
|
||||
<sprite texture="engigear.png" limb="Torso" sourcerect="0,0,32,51" origin="0.5,0.48" depth="0.01"/>
|
||||
|
||||
<sprite texture="engigear.png" limb="Waist" sourcerect="81,0,30,26" origin="0.5,0.45" hidelimb="true"/>
|
||||
<sprite texture="engigear.png" limb="RightThigh" sourcerect="53,0,27,49" origin="0.5,0.5" depth="0.10" hidelimb="true"/>
|
||||
<sprite texture="engigear.png" limb="LeftThigh" sourcerect="53,0,27,49" origin="0.5,0.5" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="engigear.png" limb="RightLeg" sourcerect="33,0,20,51" origin="0.5,0.5" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="engigear.png" limb="LeftLeg" sourcerect="33,0,20,51" origin="0.5,0.5" depth="0.15" hidelimb="true"/>
|
||||
</Wearable>
|
||||
|
||||
<ItemContainer capacity="5">
|
||||
<Containable name="smallitem"/>
|
||||
</ItemContainer>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Blue Jumpsuit"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
fireproof="true"
|
||||
description="The fire-resistant fabric offers some protection against fires. Plenty of pockets for carrying any extra gear a mechanic might need.">
|
||||
|
||||
<Sprite texture = "engigear.png" sourcerect="53,50,51,25" depth="0.6"/>
|
||||
|
||||
<Body width="50" height="17" density="20"/>
|
||||
|
||||
<Wearable slots="Any,Torso+Legs">
|
||||
<sprite texture="engigear.png" limb="Torso" sourcerect="0,77,32,51" origin="0.5,0.48" depth="0.01"/>
|
||||
|
||||
<sprite texture="engigear.png" limb="Waist" sourcerect="81,77,30,26" origin="0.5,0.45" hidelimb="true"/>
|
||||
<sprite texture="engigear.png" limb="RightThigh" sourcerect="53,77,27,49" origin="0.5,0.5" depth="0.10" hidelimb="true"/>
|
||||
<sprite texture="engigear.png" limb="LeftThigh" sourcerect="53,77,27,49" origin="0.5,0.5" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="engigear.png" limb="RightLeg" sourcerect="33,77,20,51" origin="0.5,0.5" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="engigear.png" limb="LeftLeg" sourcerect="33,77,20,51" origin="0.5,0.5" depth="0.15" hidelimb="true"/>
|
||||
</Wearable>
|
||||
|
||||
<ItemContainer capacity="5">
|
||||
<Containable name="smallitem"/>
|
||||
</ItemContainer>
|
||||
</Item>
|
||||
</Items>
|
||||
|
||||
35
Subsurface/Content/Items/Jobgear/misc.xml
Normal file
@@ -0,0 +1,35 @@
|
||||
<Items>
|
||||
<Item
|
||||
name="Clown Costume"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
description="Praise the honkmother.">
|
||||
|
||||
<Sprite texture ="clownpants.png" sourcerect="0,62,53,18" depth="0.6"/>
|
||||
|
||||
<Body width="53" height="18" density="30"/>
|
||||
|
||||
<Wearable slots="Any,Torso+Legs">
|
||||
<sprite texture="clownshirt.png" limb="Torso" sourcerect="0,3,30,58" origin="0.5,0.48" depth="0.02"/>
|
||||
|
||||
<sprite texture="clownshirt.png" limb="RightHand" sourcerect="47,0,15,49" origin="0.45,0.6" hidelimb="true"/>
|
||||
<sprite texture="clownshirt.png" limb="LeftHand" sourcerect="47,0,15,49" origin="0.45,0.6" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="clownshirt.png" limb="RightArm" sourcerect="30,0,17,42" origin="0.5,0.5" depth="0.005" hidelimb="true"/>
|
||||
<sprite texture="clownshirt.png" limb="LeftArm" sourcerect="30,0,17,42" origin="0.5,0.5" depth="0.13" hidelimb="true"/>
|
||||
|
||||
<sprite texture="clownpants.png" limb="Waist" sourcerect="0,0,1,1" origin="0.5,0.5" hidelimb="true"/>
|
||||
<sprite texture="clownpants.png" limb="RightThigh" sourcerect="0,0,38,50" origin="0.5,0.5" depth="0.01" hidelimb="true"/>
|
||||
<sprite texture="clownpants.png" limb="LeftThigh" sourcerect="0,0,38,50" origin="0.5,0.5" depth="0.14" hidelimb="true"/>
|
||||
|
||||
<sprite texture="clownpants.png" limb="RightLeg" sourcerect="37,0,28,52" origin="0.55,0.5" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="clownpants.png" limb="LeftLeg" sourcerect="37,0,28,52" origin="0.55,0.5" depth="0.15" hidelimb="true"/>
|
||||
|
||||
<sprite texture="clownpants.png" limb="RightFoot" sourcerect="65,41,15,39" origin="0.5,0.35" depth="0.11" hidelimb="true"/>
|
||||
<sprite texture="clownpants.png" limb="LeftFoot" sourcerect="65,41,15,39" origin="0.5,0.35" depth="0.15" hidelimb="true"/>
|
||||
|
||||
</Wearable>
|
||||
</Item>
|
||||
</Items>
|
||||
|
||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
59
Subsurface/Content/Items/Jobgear/securitygear.xml
Normal file
@@ -0,0 +1,59 @@
|
||||
<Items>
|
||||
<Item
|
||||
name="Body Armor"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
description="While the body armor won't offer adequate protection against most of the inhabitants of the subsurface ocean, it can be extremely useful if there are traitors on board.">
|
||||
|
||||
<Sprite texture ="securitygear.png" sourcerect="68,0,60,31" depth="0.6"/>
|
||||
|
||||
<Body width="52" height="17" density="40"/>
|
||||
|
||||
<Wearable slots="Any,Torso" armorvalue="10.0">
|
||||
<sprite texture="securitygear.png" limb="Torso" sourcerect="0,0,38,58" origin="0.52,0.48"/>
|
||||
|
||||
<sprite texture="securitygear.png" limb="RightArm" sourcerect="41,0,21,21" origin="0.5,1.1"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Ballistic Helmet"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem"
|
||||
description="While the helmet won't offer adequate protection against most of the inhabitants of the subsurface ocean, it can be extremely useful if there are traitors on board.">
|
||||
|
||||
<Deconstruct time="10">
|
||||
<Item name="Polycarbonate Bar"/>
|
||||
<Item name="Polycarbonate Bar"/>
|
||||
</Deconstruct>
|
||||
|
||||
<Sprite texture ="securitygear.png" sourcerect="40,32,34,25" depth="0.6"/>
|
||||
|
||||
<Body radius="12" density="50"/>
|
||||
|
||||
<Wearable slots="Any,Head" armorvalue="20.0">
|
||||
<sprite texture="securitygear.png" limb="Head" sourcerect="39,31,29,22" origin="0.51,0.9"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Handcuffs"
|
||||
category="Equipment"
|
||||
pickdistance="150"
|
||||
tags="smallitem" >
|
||||
|
||||
<Sprite texture = "securitygear.png" sourcerect="0,63,32,14" depth="0.6"/>
|
||||
|
||||
<Body width="30" height="12" density="30"/>
|
||||
|
||||
<Wearable slots="Any,RightHand+LeftHand">
|
||||
<sprite texture="securitygear.png" limb="RightHand" sourcerect="32,62,16,16" origin="0.5,-0.5" depth="0.01"/>
|
||||
<sprite texture="securitygear.png" limb="LeftHand" sourcerect="32,62,16,16" origin="0.5,-0.5" depth="0.01"/>
|
||||
|
||||
<StatusEffect type="OnWearing" target="Character" lockhands="true" setvalue="true"/>
|
||||
</Wearable>
|
||||
</Item>
|
||||
</Items>
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
<Reactor canbeselected = "true">
|
||||
<GuiFrame rect="0,0,760,460" alignment="Center" color="0.0,0.0,0.0,0.6"/>
|
||||
<StatusEffect type="InWater" target="This" Temperature="-500.0"/>
|
||||
<StatusEffect type="OnActive" target="Contained" targetnames="Fuel Rod, Heat Absorber, Temperature Control Circuit" Condition="-0.1" />
|
||||
<sound file="reactor.ogg" type="OnActive" range="2000.0" volume="FissionRate" volumemultiplier="0.02" loop="true"/>
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 6.6 KiB |
@@ -165,7 +165,6 @@
|
||||
|
||||
<Holdable slots="Any,RightHand,LeftHand"
|
||||
holdangle="30" handle1="-10,0"/>
|
||||
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
@@ -185,4 +184,32 @@
|
||||
</MeleeWeapon>
|
||||
</Item>
|
||||
|
||||
<Item
|
||||
name="Handheld Sonar"
|
||||
category="Equipment"
|
||||
Tags="smallitem"
|
||||
pickdistance="200"
|
||||
price="10">
|
||||
|
||||
<Sprite texture ="tools.png" sourcerect="0,37,22,9" depth="0.5"/>
|
||||
|
||||
<Body width="31" height="6" density="40"/>
|
||||
|
||||
<Holdable slots="Any,RightHand,LeftHand"
|
||||
holdangle="30" handle1="-10,0"/>
|
||||
|
||||
<Radar range="6000.0" powerconsumption="10" drawhudwhenequipped="true" detectsubmarinewalls="true">
|
||||
<GuiFrame rect="0,0,0.5,0.5" alignment="Center" color="0.0,0.0,0.0,0.6"/>
|
||||
<PingCircle texture="Content/Items/Engine/pingCircle.png" origin="0.5,0.5"/>
|
||||
<ScreenOverlay texture="Content/Items/Engine/radarOverlay.png" origin="0.5,0.5"/>
|
||||
</Radar>
|
||||
|
||||
<ItemContainer capacity="1" hideitems="true">
|
||||
<Containable name="Battery Cell">
|
||||
<StatusEffect type="OnContaining" target="This" Voltage="1.0" setvalue="true"/>
|
||||
<StatusEffect type="OnContaining" target="Contained" Condition="-0.5"/>
|
||||
</Containable>
|
||||
</ItemContainer>
|
||||
</Item>
|
||||
|
||||
</Items>
|
||||
@@ -175,7 +175,7 @@
|
||||
tags="weapon"
|
||||
description="HONK">
|
||||
|
||||
<Sprite texture="Content/Items/Clothes/clownshirt.png" sourcerect="32,50,32,14" depth="0.5"/>
|
||||
<Sprite texture="Content/Items/Jobgear/clownshirt.png" sourcerect="32,50,32,14" depth="0.5"/>
|
||||
|
||||
<Body width="30" height="10" density="10"/>
|
||||
|
||||
|
||||
@@ -4,7 +4,11 @@
|
||||
<Item file="Content/Items/itemlabel.xml" />
|
||||
<Item file="Content/Items/Artifacts/artifacts.xml" />
|
||||
<Item file="Content/Items/Button/button.xml" />
|
||||
<Item file="Content/Items/Clothes/clothes.xml" />
|
||||
<Item file="Content/Items/Jobgear/captaingear.xml" />
|
||||
<Item file="Content/Items/Jobgear/doctorgear.xml" />
|
||||
<Item file="Content/Items/Jobgear/engigear.xml" />
|
||||
<Item file="Content/Items/Jobgear/misc.xml" />
|
||||
<Item file="Content/Items/Jobgear/securitygear.xml" />
|
||||
<Item file="Content/Items/Diving/divinggear.xml" />
|
||||
<Item file="Content/Items/Door/doors.xml" />
|
||||
<Item file="Content/Items/Electricity/lights.xml" />
|
||||
|
||||
@@ -62,10 +62,12 @@ namespace Barotrauma
|
||||
{
|
||||
var item = character.Inventory.Items[i];
|
||||
if (item == null || CharacterInventory.limbSlots[i]==LimbSlot.Any) continue;
|
||||
var statusHUD = item.GetComponent<StatusHUD>();
|
||||
if (statusHUD == null) continue;
|
||||
|
||||
statusHUD.DrawHUD(spriteBatch, character);
|
||||
//var statusHUD = item.GetComponent<StatusHUD>();
|
||||
//if (statusHUD == null) continue;
|
||||
foreach (ItemComponent ic in item.components)
|
||||
{
|
||||
if (ic.DrawHudWhenEquipped) ic.DrawHUD(spriteBatch, character);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -111,6 +111,13 @@ namespace Barotrauma.Items.Components
|
||||
set { canBePicked = value; }
|
||||
}
|
||||
|
||||
[HasDefaultValue(false, false)]
|
||||
public bool DrawHudWhenEquipped
|
||||
{
|
||||
get;
|
||||
private set;
|
||||
}
|
||||
|
||||
[HasDefaultValue(false, false)]
|
||||
public bool CanBeSelected
|
||||
{
|
||||
|
||||
@@ -3,8 +3,6 @@ using Microsoft.Xna.Framework;
|
||||
using Microsoft.Xna.Framework.Graphics;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Xml.Linq;
|
||||
using Voronoi2;
|
||||
|
||||
@@ -16,7 +14,7 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
private float pingState;
|
||||
|
||||
private Sprite pingCircle, screenOverlay;
|
||||
private readonly Sprite pingCircle, screenOverlay;
|
||||
|
||||
private GUITickBox isActiveTickBox;
|
||||
|
||||
@@ -30,6 +28,13 @@ namespace Barotrauma.Items.Components
|
||||
set { range = MathHelper.Clamp(value, 0.0f, 100000.0f); }
|
||||
}
|
||||
|
||||
[HasDefaultValue(false, false)]
|
||||
public bool DetectSubmarineWalls
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public Radar(Item item, XElement element)
|
||||
: base(item, element)
|
||||
{
|
||||
@@ -71,7 +76,7 @@ namespace Barotrauma.Items.Components
|
||||
if (radarBlips[i].FadeTimer <= 0.0f) radarBlips.RemoveAt(i);
|
||||
}
|
||||
|
||||
if (voltage >= minVoltage)
|
||||
if (voltage >= minVoltage || powerConsumption <= 0.0f)
|
||||
{
|
||||
pingState = pingState + deltaTime * 0.5f;
|
||||
if (pingState>1.0f)
|
||||
@@ -87,7 +92,7 @@ namespace Barotrauma.Items.Components
|
||||
pingState = 0.0f;
|
||||
}
|
||||
|
||||
voltage -= deltaTime;
|
||||
Voltage -= deltaTime;
|
||||
}
|
||||
|
||||
public override bool Use(float deltaTime, Character character = null)
|
||||
@@ -101,7 +106,7 @@ namespace Barotrauma.Items.Components
|
||||
GuiFrame.Update(1.0f / 60.0f);
|
||||
GuiFrame.Draw(spriteBatch);
|
||||
|
||||
if (voltage < minVoltage) return;
|
||||
if (voltage < minVoltage && powerConsumption > 0.0f) return;
|
||||
|
||||
int radius = GuiFrame.Rect.Height / 2 - 30;
|
||||
DrawRadar(spriteBatch, new Rectangle((int)GuiFrame.Center.X - radius, (int)GuiFrame.Center.Y - radius, radius * 2, radius * 2));
|
||||
@@ -113,23 +118,59 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
if (!IsActive) return;
|
||||
|
||||
float pingRadius = (rect.Width / 2) * pingState;
|
||||
pingCircle.Draw(spriteBatch, center, Color.White * (1.0f-pingState), 0.0f, (rect.Width/pingCircle.size.X)*pingState);
|
||||
|
||||
float pingRadius = (rect.Width / 2.0f) * pingState;
|
||||
pingCircle.Draw(spriteBatch, center, Color.White * (1.0f - pingState), 0.0f, (rect.Width / pingCircle.size.X) * pingState);
|
||||
|
||||
float radius = rect.Width / 2.0f;
|
||||
|
||||
float displayScale = radius/range;
|
||||
float displayScale = radius / range;
|
||||
|
||||
if (DetectSubmarineWalls)
|
||||
{
|
||||
for (int i = 0; i < Submarine.Loaded.HullVertices.Count; i++)
|
||||
{
|
||||
Vector2 start = ConvertUnits.ToDisplayUnits(Submarine.Loaded.HullVertices[i]);
|
||||
Vector2 end = ConvertUnits.ToDisplayUnits(Submarine.Loaded.HullVertices[(i + 1) % Submarine.Loaded.HullVertices.Count]);
|
||||
|
||||
if (item.CurrentHull!=null)
|
||||
{
|
||||
start += Rand.Vector(500.0f);
|
||||
end += Rand.Vector(500.0f);
|
||||
}
|
||||
|
||||
CreateBlipsForLine(
|
||||
start + Submarine.Loaded.WorldPosition,
|
||||
end + Submarine.Loaded.WorldPosition,
|
||||
radius, displayScale, 2.0f);
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
float simScale = ConvertUnits.ToSimUnits(displayScale);
|
||||
|
||||
Vector2 offset = ConvertUnits.ToSimUnits(Submarine.Loaded.WorldPosition - item.WorldPosition);
|
||||
|
||||
for (int i = 0; i < Submarine.Loaded.HullVertices.Count; i++)
|
||||
{
|
||||
Vector2 start = (Submarine.Loaded.HullVertices[i] + offset) * simScale;
|
||||
start.Y = -start.Y;
|
||||
Vector2 end = (Submarine.Loaded.HullVertices[(i + 1) % Submarine.Loaded.HullVertices.Count] + offset) * simScale;
|
||||
end.Y = -end.Y;
|
||||
|
||||
GUI.DrawLine(spriteBatch, center + start, center + end, Color.Green);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
float simScale = 1.5f;
|
||||
|
||||
|
||||
if (Level.Loaded != null)
|
||||
if (Level.Loaded != null && (item.CurrentHull==null || !DetectSubmarineWalls))
|
||||
{
|
||||
List<VoronoiCell> cells = Level.Loaded.GetCells(item.WorldPosition, 7);
|
||||
|
||||
foreach (VoronoiCell cell in cells)
|
||||
{
|
||||
|
||||
foreach (GraphEdge edge in cell.edges)
|
||||
{
|
||||
if (!edge.isSolid) continue;
|
||||
@@ -140,59 +181,15 @@ namespace Barotrauma.Items.Components
|
||||
Vector2.Normalize(edge.point1 - edge.point2),
|
||||
Vector2.Normalize(cell.Center-item.WorldPosition));
|
||||
|
||||
//if (Math.Abs(facingDot) > 0.5f) continue;
|
||||
|
||||
//facingDot = 1.0f;// MathHelper.Clamp(facingDot, -1.0f, 1.0f);
|
||||
|
||||
float length = (edge.point1 - edge.point2).Length();
|
||||
for (float x = 0; x < length; x += Rand.Range(300.0f, 400.0f))
|
||||
{
|
||||
Vector2 point = edge.point1 + Vector2.Normalize(edge.point2 - edge.point1) * x;
|
||||
point += cell.Translation;
|
||||
|
||||
float pointDist = Vector2.Distance(item.WorldPosition, point) * displayScale;
|
||||
|
||||
if (pointDist > radius) continue;
|
||||
if (pointDist < prevPingRadius || pointDist > pingRadius) continue;
|
||||
|
||||
|
||||
float step = 3.0f * (Math.Abs(facingDot) + 1.0f);
|
||||
float alpha = Rand.Range(1.5f, 2.0f);
|
||||
for (float z = 0; z < radius - pointDist; z += step)
|
||||
{
|
||||
|
||||
var blip = new RadarBlip(
|
||||
point + Rand.Vector(150.0f) + Vector2.Normalize(point-item.WorldPosition) * z / displayScale,
|
||||
alpha);
|
||||
|
||||
radarBlips.Add(blip);
|
||||
step += 0.5f;
|
||||
alpha -= (z == 0) ? 0.5f : 0.1f;
|
||||
}
|
||||
|
||||
}
|
||||
CreateBlipsForLine(edge.point1 + cell.Translation, edge.point2+cell.Translation, radius, displayScale, 3.0f * (Math.Abs(facingDot) + 1.0f));
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < Submarine.Loaded.HullVertices.Count; i++)
|
||||
{
|
||||
Vector2 start = (Submarine.Loaded.HullVertices[i] - ConvertUnits.ToSimUnits(item.Position - Submarine.HiddenSubPosition)) * simScale;
|
||||
start.Y = -start.Y;
|
||||
Vector2 end = (Submarine.Loaded.HullVertices[(i + 1) % Submarine.Loaded.HullVertices.Count] - ConvertUnits.ToSimUnits(item.Position - Submarine.HiddenSubPosition)) * simScale;
|
||||
end.Y = -end.Y;
|
||||
|
||||
Vector2 diff = end - start;
|
||||
for (float x = 0; x < diff.Length(); x += 4.0f)
|
||||
{
|
||||
GUI.DrawLine(spriteBatch, center + start, center + end, Color.Green);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
foreach (Character c in Character.CharacterList)
|
||||
{
|
||||
if (c.AnimController.CurrentHull != null) continue;
|
||||
if (DetectSubmarineWalls && c.AnimController.CurrentHull == null && item.CurrentHull != null) continue;
|
||||
|
||||
foreach (Limb limb in c.AnimController.Limbs)
|
||||
{
|
||||
@@ -272,7 +269,42 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
prevPos = pos;
|
||||
}
|
||||
}
|
||||
|
||||
private void CreateBlipsForLine(Vector2 point1, Vector2 point2, float radius, float displayScale, float step)
|
||||
{
|
||||
float pingRadius = radius * pingState;
|
||||
|
||||
float length = (point1 - point2).Length();
|
||||
|
||||
Vector2 lineDir = (point2 - point1) / length;
|
||||
|
||||
for (float x = 0; x < length; x += Rand.Range(300.0f, 400.0f))
|
||||
{
|
||||
Vector2 point = point1 + lineDir * x;
|
||||
//point += cell.Translation;
|
||||
|
||||
float pointDist = Vector2.Distance(item.WorldPosition, point) * displayScale;
|
||||
|
||||
if (pointDist > radius) continue;
|
||||
if (pointDist < prevPingRadius || pointDist > pingRadius) continue;
|
||||
|
||||
|
||||
//float step = 3.0f * (Math.Abs(facingDot) + 1.0f);
|
||||
float alpha = Rand.Range(1.5f, 2.0f);
|
||||
for (float z = 0; z < radius - pointDist; z += step)
|
||||
{
|
||||
|
||||
var blip = new RadarBlip(
|
||||
point + Rand.Vector(150.0f) + Vector2.Normalize(point - item.WorldPosition) * z / displayScale,
|
||||
alpha);
|
||||
|
||||
radarBlips.Add(blip);
|
||||
step += 0.5f;
|
||||
alpha -= (z == 0) ? 0.5f : 0.1f;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawBlip(SpriteBatch spriteBatch, RadarBlip blip, Vector2 center, Color color, float radius)
|
||||
|
||||
@@ -225,7 +225,7 @@ namespace Barotrauma.Items.Components
|
||||
|
||||
fissionRate = Math.Min(fissionRate, AvailableFuel);
|
||||
|
||||
float heat = 100 * fissionRate * (AvailableFuel/2000.0f);
|
||||
float heat = 80 * fissionRate * (AvailableFuel/2000.0f);
|
||||
float heatDissipation = 50 * coolingRate + Math.Max(ExtraCooling, 5.0f);
|
||||
|
||||
float deltaTemp = (((heat - heatDissipation) * 5) - temperature) / 10000.0f;
|
||||
@@ -288,9 +288,12 @@ namespace Barotrauma.Items.Components
|
||||
}
|
||||
else if (autoTemp)
|
||||
{
|
||||
fissionRate = Math.Min(load / 200.0f, shutDownTemp);
|
||||
//float target = Math.Min(targetTemp, load);
|
||||
CoolingRate = coolingRate + (temperature - Math.Min(load, shutDownTemp) + deltaTemp)*0.1f;
|
||||
//take deltaTemp into account to slow down the change in temperature when getting closer to the desired value
|
||||
float target = temperature + deltaTemp * 100.0f;
|
||||
|
||||
//-1.0f in order to gradually turn down both rates when the target temperature is reached
|
||||
FissionRate += (MathHelper.Clamp(load - target, -10.0f, 10.0f) - 1.0f) * deltaTime;
|
||||
CoolingRate += (MathHelper.Clamp(target - load, -5.0f, 5.0f) - 1.0f) * deltaTime;
|
||||
}
|
||||
|
||||
//fission rate can't be lowered below a certain amount if the core is too hot
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Barotrauma
|
||||
|
||||
public enum ActionType
|
||||
{
|
||||
Always, OnPicked, OnWearing, OnContaining, OnContained, OnActive, OnUse, OnFailure, OnBroken, OnFire
|
||||
Always, OnPicked, OnWearing, OnContaining, OnContained, OnActive, OnUse, OnFailure, OnBroken, OnFire, InWater
|
||||
}
|
||||
|
||||
class Item : MapEntity, IDamageable, IPropertyObject
|
||||
@@ -646,7 +646,7 @@ namespace Barotrauma
|
||||
ic.WasUsed = false;
|
||||
|
||||
if (Container != null) ic.ApplyStatusEffects(ActionType.OnContained, deltaTime);
|
||||
|
||||
|
||||
if (!ic.IsActive) continue;
|
||||
|
||||
if (condition > 0.0f)
|
||||
@@ -660,7 +660,11 @@ namespace Barotrauma
|
||||
{
|
||||
ic.UpdateBroken(deltaTime, cam);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
inWater = IsInWater();
|
||||
if (inWater) ApplyStatusEffects(ActionType.InWater, deltaTime);
|
||||
|
||||
if (body == null || !body.Enabled) return;
|
||||
|
||||
@@ -681,8 +685,6 @@ namespace Barotrauma
|
||||
|
||||
body.MoveToTargetPosition();
|
||||
|
||||
inWater = IsInWater();
|
||||
|
||||
if (!inWater || Container != null || body == null) return;
|
||||
|
||||
if (body.LinearVelocity != Vector2.Zero && body.LinearVelocity.Length() > 1000.0f)
|
||||
@@ -692,7 +694,6 @@ namespace Barotrauma
|
||||
|
||||
ApplyWaterForces();
|
||||
|
||||
//TODO: make sure items stay in sync between clients before letting flowing water move items
|
||||
if(CurrentHull != null) CurrentHull.ApplyFlowForces(deltaTime, this);
|
||||
|
||||
}
|
||||
|
||||
@@ -156,35 +156,34 @@ namespace Barotrauma
|
||||
|
||||
public void Draw(SpriteBatch spriteBatch)
|
||||
{
|
||||
Vector2 pos = new Vector2(0.0f, -level.Size.Y);// level.EndPosition;
|
||||
|
||||
var cells = level.GetCells(GameMain.GameScreen.Cam.WorldViewCenter, 2);
|
||||
foreach (VoronoiCell cell in cells)
|
||||
if (GameMain.DebugDraw)
|
||||
{
|
||||
GUI.DrawRectangle(spriteBatch, new Vector2(cell.Center.X - 10.0f, -cell.Center.Y-10.0f), new Vector2(20.0f, 20.0f), Color.Cyan, true);
|
||||
var cells = level.GetCells(GameMain.GameScreen.Cam.WorldViewCenter, 2);
|
||||
foreach (VoronoiCell cell in cells)
|
||||
{
|
||||
GUI.DrawRectangle(spriteBatch, new Vector2(cell.Center.X - 10.0f, -cell.Center.Y-10.0f), new Vector2(20.0f, 20.0f), Color.Cyan, true);
|
||||
|
||||
GUI.DrawLine(spriteBatch,
|
||||
new Vector2(cell.edges[0].point1.X, -cell.edges[0].point1.Y),
|
||||
new Vector2(cell.Center.X, -cell.Center.Y),
|
||||
Color.White);
|
||||
GUI.DrawLine(spriteBatch,
|
||||
new Vector2(cell.edges[0].point1.X, -cell.edges[0].point1.Y),
|
||||
new Vector2(cell.Center.X, -cell.Center.Y),
|
||||
Color.White);
|
||||
|
||||
foreach (GraphEdge edge in cell.edges)
|
||||
{
|
||||
//GUI.DrawLine(spriteBatch,
|
||||
// new Vector2(edge.point1.X, -edge.point1.Y),
|
||||
// new Vector2(cell.Center.X, -cell.Center.Y),
|
||||
// Color.White);
|
||||
foreach (GraphEdge edge in cell.edges)
|
||||
{
|
||||
GUI.DrawLine(spriteBatch, new Vector2(edge.point1.X, -edge.point1.Y),
|
||||
new Vector2(edge.point2.X, -edge.point2.Y), Color.White);
|
||||
}
|
||||
|
||||
GUI.DrawLine(spriteBatch, new Vector2(edge.point1.X, -edge.point1.Y),
|
||||
new Vector2(edge.point2.X, -edge.point2.Y), Color.White);
|
||||
}
|
||||
|
||||
foreach (Vector2 point in cell.bodyVertices)
|
||||
{
|
||||
GUI.DrawRectangle(spriteBatch, new Vector2(point.X, -point.Y), new Vector2(10.0f, 10.0f), Color.White, true);
|
||||
}
|
||||
foreach (Vector2 point in cell.bodyVertices)
|
||||
{
|
||||
GUI.DrawRectangle(spriteBatch, new Vector2(point.X, -point.Y), new Vector2(10.0f, 10.0f), Color.White, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Vector2 pos = new Vector2(0.0f, -level.Size.Y);// level.EndPosition;
|
||||
|
||||
if (GameMain.GameScreen.Cam.WorldView.Y < -pos.Y - 512) return;
|
||||
|
||||
pos.X = GameMain.GameScreen.Cam.WorldView.X -512.0f;
|
||||
@@ -197,8 +196,6 @@ namespace Barotrauma
|
||||
Color.White, 0.0f,
|
||||
Vector2.Zero,
|
||||
SpriteEffects.None, 0.0f);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||