Compare commits

8 Commits
old ... master

163 changed files with 1531 additions and 6455 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Abandoned Variety (22 modules)/Crew_A1.sub (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<contentpackage name="Abandoned Variety (22 modules)" modversion="1.2" corepackage="False" steamworkshopid="3171294974" gameversion="1.7.7.0" >
<OutpostModule file="%ModDir%/Security_A0.sub" />
<OutpostModule file="%ModDir%/Research_A0.sub" />
<OutpostModule file="%ModDir%/Admin_A01.sub" />
<OutpostModule file="%ModDir%/Admin_A02.sub" />
<OutpostModule file="%ModDir%/Crew_A01.sub" />
<OutpostModule file="%ModDir%/Crew_A02.sub" />
<OutpostModule file="%ModDir%/Docking_A0.sub" />
<OutpostModule file="%ModDir%/Docking_A2.sub" />
<OutpostModule file="%ModDir%/Docking_A3.sub" />
<OutpostModule file="%ModDir%/Research_A1.sub" />
<OutpostModule file="%ModDir%/Research_A2.sub" />
<OutpostModule file="%ModDir%/Research_A3.sub" />
<OutpostModule file="%ModDir%/Security_A2.sub" />
<OutpostModule file="%ModDir%/Security_A3.sub" />
<OutpostModule file="%ModDir%/Crew_A1.sub" />
<OutpostModule file="%ModDir%/Engineering_A1.sub" />
<OutpostModule file="%ModDir%/Engineering_A2.sub" />
<OutpostModule file="%ModDir%/Engineering_A3.sub" />
<OutpostModule file="%ModDir%/Admin_A1.sub" />
<OutpostModule file="%ModDir%/Docking_A1.sub" />
<OutpostModule file="%ModDir%/Engineering_A0.sub" />
<OutpostModule file="%ModDir%/Security_A1.sub" />
</contentpackage>

BIN
Beaumaris/Beaumaris.sub (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<contentpackage name="Beaumaris" modversion="1.0.14" corepackage="False" steamworkshopid="2902314099" gameversion="1.7.7.0" >
<Submarine file="%ModDir%/Beaumaris.sub" />
</contentpackage>

Binary file not shown.

BIN
Brighter Lights/Lights/lightcone.png (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,477 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Items>
<Override>
<!--
Updating instuctions:
1) Copy-paste each Item (eg.: "divingsuit") entirely
2) Replace relative paths of textures to their absolute ones: (Notepad++, CTRL+F)
a) texture="reg_DivingSuit texture="Content/Items/Diving/reg_DivingSuit
b) texture="Scooter texture="Content/Items/Diving/Scooter
c) texture="Abyss_DivingSuit texture="Content/Items/Diving/Abyss_DivingSuit
d) texture="combat_DivingSuit texture="Content/Items/Diving/combat_DivingSuit
e) texture="RespawnSuit texture="Content/Items/Diving/RespawnSuit
3) Replace 'Content/Lights/divinghelmetlight.png' with '%ModDir%/Lights/divinghelmetlight.png' (Notepad++, CTRL+F)
4) Replace 'Content/Lights/lightcone.png' with '%ModDir%/Lights/lightcone.png' (Notepad++, CTRL+F)
5) Change the 'range' of 'LightComponent' in:
a) underwaterscooter: 500 -> 1000 (undecided yet)
6) Make sure you haven't replaced the instructions above
-->
<!-- divingsuit -->
<Item name="" identifier="divingsuit" category="Diving,Equipment" tags="diving,deepdiving,human" scale="0.5" fireproof="true" description="" allowdroppingonswapwith="diving" impactsoundtag="impact_metal_heavy" botpriority="1" cargocontaineridentifier="">
<Price baseprice="250">
<Price storeidentifier="merchantoutpost" multiplier="0.9" minavailable="2" />
<Price storeidentifier="merchantcity" multiplier="0.85" minavailable="4" />
<Price storeidentifier="merchantresearch" minavailable="3" />
<Price storeidentifier="merchantmilitary" minavailable="3" />
<Price storeidentifier="merchantmine" multiplier="1.25" minavailable="5" />
</Price>
<PreferredContainer primary="divingsuitcontainer" spawnprobability="1" campaignonly="true" maxleveldifficulty="35" />
<PreferredContainer primary="divingsuitcontainer" spawnprobability="1" notcampaign="true" />
<PreferredContainer primary="piratedivingsuitcontainer" spawnprobability="1" maxleveldifficulty="35" />
<PreferredContainer primary="wreckdivingsuitcontainer" spawnprobability="0.1" maxleveldifficulty="35" />
<Deconstruct time="30">
<Item identifier="titaniumaluminiumalloy" />
<Item identifier="rubber" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="30">
<RequiredSkill identifier="mechanical" level="40" />
<RequiredItem identifier="titaniumaluminiumalloy" />
<RequiredItem identifier="rubber" />
<RequiredItem identifier="rubber" />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas2.png" sourcerect="0,256,128,128" origin="0.5,0.5" />
<!--
<Sprite name="Diving Suit" texture="DivingSuit_Item.png" sourcerect="157,0,90,307" depth="0.55" origin="0.4888889,0.5439739" />
-->
<Sprite name="Diving Suit Item" texture="Content/Items/Diving/DivingSuit_Item.png" sourcerect="0,0,146,120" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Diving Suit In Vertical Locker" allowedcontainertags="divingsuitcontainervertical" texture="Content/Items/Diving/DivingSuit_Item.png" sourcerect="181,0,75,193" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Diving Suit Behind Window" allowedcontainertags="divingsuitcontainerwindow" texture="Content/Items/Containers/containers.png" sourcerect="724,373,77,209" depth="0.55" origin="-0.12,-0.14" />
<ContainedSprite name="Diving Suit In Horizontal Locker" allowedcontainertags="divingsuitcontainerhorizontal" texture="Content/Items/Diving/DivingSuit_Item.png" sourcerect="0,193,230,63" depth="0.55" origin="0.6,0.5" />
<Body radius="45" width="34" density="20" />
<Wearable slots="OuterClothes" msg="ItemMsgEquipSelect" displaycontainedstatus="true" canbeselected="false" canbepicked="true" pickkey="Select">
<sprite name="Diving Suit Helmet Wearable" texture="Content/Items/Jobgear/headgears.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidelimb="false" alphaclipotherwearables="true" sourcerect="5,4,92,94" origin="0.5,0.5">
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true" allowingameediting="false">
<Upgrade gameversion="0.1300.0.3" allowingameediting="false" />
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" Interval="0.1" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
</LightComponent>
</sprite>
<sprite name="Regular Diving Suit Torso" texture="Content/Items/Diving/reg_DivingSuit.png" limb="Torso" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Right Hand" texture="Content/Items/Diving/reg_DivingSuit.png" limb="RightHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Left Hand" texture="Content/Items/Diving/reg_DivingSuit.png" limb="LeftHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Right Upper Arm" texture="Content/Items/Diving/reg_DivingSuit.png" limb="RightArm" depthlimb="RightForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Left Upper Arm" texture="Content/Items/Diving/reg_DivingSuit.png" limb="LeftArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Right Lower Arm" texture="Content/Items/Diving/reg_DivingSuit.png" limb="RightForearm" depthlimb="RightArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Left Lower Arm" texture="Content/Items/Diving/reg_DivingSuit.png" limb="LeftForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Waist" texture="Content/Items/Diving/reg_DivingSuit.png" limb="Waist" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Right Thigh" texture="Content/Items/Diving/reg_DivingSuit.png" limb="RightThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Left Thigh" texture="Content/Items/Diving/reg_DivingSuit.png" limb="LeftThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Right Leg" texture="Content/Items/Diving/reg_DivingSuit.png" limb="RightLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Left Leg" texture="Content/Items/Diving/reg_DivingSuit.png" limb="LeftLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Left Shoe" texture="Content/Items/Diving/reg_DivingSuit.png" limb="LeftFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Right Shoe" texture="Content/Items/Diving/reg_DivingSuit.png" limb="RightFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<StatusEffect type="OnWearing" target="Character" OxygenAvailable="-100.0" UseHullOxygen="false" />
<StatusEffect type="OnWearing" target="Character" ObstructVision="true" PressureProtection="4000.0" SpeedMultiplier="0.8" LowPassMultiplier="0.2" setvalue="true" disabledeltatime="true">
<Sound file="Content/Items/Diving/DivingSuitLoop1.ogg" range="250" loop="true" />
<Sound file="Content/Items/Diving/DivingSuitLoop2.ogg" range="250" loop="true" />
</StatusEffect>
<!-- Refill oxygen when the suit is contained. -->
<StatusEffect type="OnContained" target="Contained" Condition="1.0" interval="1" disabledeltatime="true">
<Conditional Voltage="gt 0.01" targetcontainer="true" targetgrandparent="true" targetitemcomponent="Powered" />
<RequiredItem items="refillableoxygensource" type="Contained" excludebroken="false" excludefullcondition="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" OxygenAvailable="1000.0" Condition="-0.3" comparison="Or">
<Conditional IsDead="false" />
<RequiredItem items="oxygensource" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" Oxygen="-10.0" Condition="-0.5" interval="1" disabledeltatime="true">
<Conditional IsDead="false" />
<RequiredItem items="weldingfueltank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" targetlimbs="Torso" Oxygen="-10.0" Condition="-0.5" interval="1" disabledeltatime="true">
<Conditional IsDead="false" />
<RequiredItem items="incendiumfueltank" type="Contained" />
<Affliction identifier="burn" amount="3.0" />
</StatusEffect>
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="blunttrauma,gunshotwound,bitewounds,lacerations,bleeding" damagemultiplier="0.7" damagesound="LimbArmor" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictiontypes="burn" damagemultiplier="0.75" damagesound="" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="radiationsickness" damagemultiplier="0.75" damagesound="LimbArmor" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="huskinfection" probabilitymultiplier="0.5" damagesound="LimbArmor" />
</Wearable>
<Holdable slots="RightHand+LeftHand" controlpose="true" holdpos="0,-50" handle1="-10,-20" handle2="10,-20" holdangle="45" msg="ItemMsgPickUpUse" canbeselected="false" canbepicked="true" pickkey="Use">
<Upgrade gameversion="0.1401.0.0" msg="ItemMsgPickUpUse" />
</Holdable>
<ItemContainer capacity="1" maxstacksize="60" hideitems="true" containedstateindicatorstyle="tank">
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="64,448,64,64" origin="0.5,0.5" />
<Containable items="weldingtoolfuel" />
<Containable items="oxygensource">
<StatusEffect type="OnWearing" target="Contained">
<RequiredItem items="oxygensource" type="Contained" />
<Conditional condition="lt 5.0" />
<Sound file="Content/Items/WarningBeepSlow.ogg" range="250" loop="true" />
</StatusEffect>
</Containable>
<Containable items="oxygenitetank">
<StatusEffect type="OnWearing" target="Character" SpeedMultiplier="1.3" setvalue="true" targetslot="0">
<Conditional IsDead="false" />
</StatusEffect>
</Containable>
<StatusEffect type="OnWearing" target="Contained" playsoundonrequireditemfailure="true">
<RequiredItem items="oxygensource" type="Contained" matchonempty="true" />
<Conditional condition="lte 0.0" />
<Sound file="Content/Items/WarningBeep.ogg" range="250" loop="true" />
</StatusEffect>
</ItemContainer>
<aitarget maxsightrange="1500" />
</Item>
<!-- underwaterscooter -->
<Item name="" identifier="underwaterscooter" category="Diving,Equipment" Tags="smallitem,provocative,scooter" cargocontaineridentifier="metalcrate" description="" Scale="0.5" impactsoundtag="impact_metal_light" isshootable="true" requireaimtouse="True">
<Upgrade gameversion="0.10.0.0" scale="0.5" />
<Price baseprice="180">
<Price storeidentifier="merchantoutpost" multiplier="0.9" minavailable="4" />
<Price storeidentifier="merchantcity" multiplier="0.85" minavailable="6" />
<Price storeidentifier="merchantresearch" minavailable="3" />
<Price storeidentifier="merchantmilitary" minavailable="5" />
<Price storeidentifier="merchantmine" multiplier="1.25" minavailable="4" />
</Price>
<Preferredcontainer secondary="respawncontainer" amount="1" spawnprobability="1" notcampaign="true" />
<PreferredContainer primary="divingcab" amount="2" spawnprobability="1" notcampaign="true" />
<PreferredContainer secondary="wrecksupplycab,beaconsupplycab" spawnprobability="0.05" />
<Deconstruct time="20">
<Item identifier="aluminium" />
<Item identifier="copper" />
<Item identifier="tin" />
<Item identifier="plastic" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="30">
<RequiredSkill identifier="mechanical" level="30" />
<RequiredItem identifier="aluminium" amount="2" />
<RequiredItem identifier="fpgacircuit" />
<RequiredItem identifier="tin" amount="2" />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas.png" sourcerect="256,128,67,62" origin="0.5,0.5" />
<Sprite texture="Content/Items/Diving/Scooter.png" depth="0.55" sourcerect="0,0,140,102" />
<Body width="120" height="60" density="10" />
<Holdable slots="Any,RightHand+LeftHand" aimpos="90,0" handle1="-35,32" handle2="-27,34" msg="ItemMsgPickUpSelect" holdangle="-10">
<LightComponent LightColor="220,255,150,200" range="500" powerconsumption="10" IsOn="true">
<LightTexture texture="%ModDir%/Lights/lightcone.png" origin="-0.01, 0.5" size="1.0,1.0" />
<Upgrade gameversion="1.1.2.0" powerconsumption="10" />
</LightComponent>
<!-- activates the light when holding aim -->
<StatusEffect type="OnSecondaryUse" target="This" voltage="1.0" setvalue="true">
<RequiredItem items="mobilebattery" type="Contained" />
</StatusEffect>
<!-- Battery drain when using the light, adds up with propulsion -->
<StatusEffect type="OnSecondaryUse" target="Contained" Condition="-0.05" />
</Holdable>
<Propulsion force="150" usablein="water" particles="bubbles">
<RequiredItems items="mobilebattery" type="Contained" msg="ItemMsgBatteryCellRequired" />
<StatusEffect type="OnUse" target="Contained" Condition="-0.2">
<RequiredItem items="mobilebattery" type="Contained" />
</StatusEffect>
<sound file="Content/Items/Diving/ScooterLoop.ogg" type="OnUse" range="500.0" loop="true" />
</Propulsion>
<ItemContainer capacity="1" maxstacksize="60" hideitems="true" containedstateindicatorstyle="battery">
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
<Containable items="mobilebattery" />
</ItemContainer>
<AiTarget soundrange="3000" maxsightrange="3000" />
</Item>
<!-- abyssdivingsuit -->
<Item name="" identifier="abyssdivingsuit" category="Diving,Equipment" tags="diving,deepdiving,human" scale="0.5" fireproof="true" description="" allowdroppingonswapwith="diving" impactsoundtag="impact_metal_heavy" botpriority="4" cargocontaineridentifier="">
<Price baseprice="550" minleveldifficulty="35">
<Price storeidentifier="merchantoutpost" multiplier="0.9" minavailable="1" />
<Price storeidentifier="merchantcity" multiplier="0.85" minavailable="2" />
<Price storeidentifier="merchantresearch" minavailable="1" />
<Price storeidentifier="merchantmilitary" minavailable="2" />
<Price storeidentifier="merchantmine" multiplier="1.25" minavailable="2" />
</Price>
<PreferredContainer primary="divingsuitcontainer" />
<PreferredContainer primary="piratedivingsuitcontainer" spawnprobability="1" minleveldifficulty="50" />
<PreferredContainer primary="wreckdivingsuitcontainer" spawnprobability="0.05" minleveldifficulty="50" />
<Deconstruct time="30">
<Item identifier="titaniumaluminiumalloy" />
<Item identifier="titaniumaluminiumalloy" />
<Item identifier="titaniumaluminiumalloy" />
<Item identifier="rubber" />
<Item identifier="rubber" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="45">
<RequiredSkill identifier="mechanical" level="60" />
<RequiredItem identifier="divingsuit" />
<RequiredItem identifier="titaniumaluminiumalloy" />
<RequiredItem identifier="titaniumaluminiumalloy" />
<RequiredItem identifier="rubber" />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas2.png" sourcerect="192,384,128,128" origin="0.5,0.5" />
<Sprite name="Abyss Diving Suit Item" texture="Content/Items/Diving/Abyss_DivingSuit_Items.png" sourcerect="0,0,157,121" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Abyss Diving Suit In Vertical Locker" allowedcontainertags="divingsuitcontainervertical" texture="Content/Items/Diving/Abyss_DivingSuit_Items.png" sourcerect="181,0,70,192" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Abyss Diving Suit Behind Window" allowedcontainertags="divingsuitcontainerwindow" texture="Content/Items/Containers/containers.png" sourcerect="316,379,77,214" depth="0.55" origin="-0.12,-0.13" />
<ContainedSprite name="Abyss Diving Suit In Horizontal Locker" allowedcontainertags="divingsuitcontainerhorizontal" texture="Content/Items/Diving/Abyss_DivingSuit_Items.png" sourcerect="0,193,230,63" depth="0.55" origin="0.6,0.5" />
<Body radius="45" width="34" density="20" />
<Wearable slots="OuterClothes" msg="ItemMsgEquipSelect" displaycontainedstatus="true" canbeselected="false" canbepicked="true" pickkey="Select">
<sprite name="Abyss Diving Suit Helmet Wearable" texture="Content/Items/Jobgear/headgears.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidelimb="false" alphaclipotherwearables="true" sourcerect="0,409,103,103" origin="0.5,0.5">
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true">
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" Interval="0.1" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
</LightComponent>
</sprite>
<sprite name="Abyss Diving Suit Torso" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="Torso" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Right Hand" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="RightHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Left Hand" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="LeftHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Right Upper Arm" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="RightArm" depthlimb="RightForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Left Upper Arm" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="LeftArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Right Lower Arm" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="RightForearm" depthlimb="RightArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Left Lower Arm" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="LeftForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Waist" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="Waist" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Right Thigh" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="RightThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Left Thigh" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="LeftThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Right Leg" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="RightLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Left Leg" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="LeftLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Left Shoe" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="LeftFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Right Shoe" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="RightFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<StatusEffect type="OnWearing" target="Character" OxygenAvailable="-100.0" UseHullOxygen="false" />
<StatusEffect type="OnWearing" target="Character" ObstructVision="true" PressureProtection="10000.0" SpeedMultiplier="0.7" PropulsionSpeedMultiplier="0.5" LowPassMultiplier="0.2" setvalue="true" disabledeltatime="true">
<Sound file="Content/Items/Diving/DivingSuitLoop1.ogg" range="250" loop="true" />
<Sound file="Content/Items/Diving/DivingSuitLoop2.ogg" range="250" loop="true" />
</StatusEffect>
<!-- Refill oxygen when the suit is contained. -->
<StatusEffect type="OnContained" target="Contained" Condition="1.0" interval="1" disabledeltatime="true">
<Conditional Voltage="gt 0.01" targetcontainer="true" targetgrandparent="true" targetitemcomponent="Powered" />
<RequiredItem items="refillableoxygensource" type="Contained" excludebroken="false" excludefullcondition="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" OxygenAvailable="1000.0" Condition="-0.15" comparison="Or">
<Conditional IsDead="false" />
<RequiredItem items="oxygensource" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" Oxygen="-10.0" Condition="-0.5" interval="1" disabledeltatime="true">
<Conditional IsDead="false" />
<RequiredItem items="weldingfueltank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" targetlimbs="Torso" Oxygen="-10.0" Condition="-0.5" interval="1" disabledeltatime="true">
<Conditional IsDead="false" />
<RequiredItem items="incendiumfueltank" type="Contained" />
<Affliction identifier="burn" amount="3.0" />
</StatusEffect>
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="blunttrauma,gunshotwound,bitewounds,lacerations,bleeding" damagemultiplier="0.55" damagesound="LimbArmor" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictiontypes="burn" damagemultiplier="0.75" damagesound="" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="radiationsickness" damagemultiplier="0.75" damagesound="LimbArmor" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="huskinfection" probabilitymultiplier="0.5" damagesound="LimbArmor" />
</Wearable>
<Holdable slots="RightHand+LeftHand" controlpose="true" holdpos="0,-50" handle1="-10,-20" handle2="10,-20" holdangle="45" msg="ItemMsgPickUpUse" canbeselected="false" canbepicked="true" pickkey="Use" />
<ItemContainer capacity="1" maxstacksize="60" hideitems="true" containedstateindicatorstyle="tank">
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="64,448,64,64" origin="0.5,0.5" />
<Containable items="weldingtoolfuel" />
<Containable items="oxygensource">
<StatusEffect type="OnWearing" target="Contained">
<RequiredItem items="oxygensource" type="Contained" />
<Conditional condition="lt 5.0" />
<Sound file="Content/Items/WarningBeepSlow.ogg" range="250" loop="true" />
</StatusEffect>
</Containable>
<Containable items="oxygenitetank">
<StatusEffect type="OnWearing" target="Character" SpeedMultiplier="1.3" setvalue="true" targetslot="0">
<Conditional IsDead="false" />
</StatusEffect>
</Containable>
<StatusEffect type="OnWearing" target="Contained" playsoundonrequireditemfailure="true">
<RequiredItem items="oxygensource" type="Contained" matchonempty="true" />
<Conditional condition="lte 0.0" />
<Sound file="Content/Items/WarningBeep.ogg" range="250" loop="true" />
</StatusEffect>
</ItemContainer>
<aitarget maxsightrange="1500" />
</Item>
<!-- combatdivingsuit -->
<Item name="" identifier="combatdivingsuit" category="Diving,Equipment" tags="diving,deepdiving,human" scale="0.5" fireproof="true" description="" allowdroppingonswapwith="diving" impactsoundtag="impact_metal_heavy" botpriority="2" cargocontaineridentifier="">
<Price baseprice="560" minleveldifficulty="35">
<Price storeidentifier="merchantoutpost" sold="false" multiplier="0.9" />
<Price storeidentifier="merchantcity" multiplier="0.85" minavailable="2" sold="false" />
<Price storeidentifier="merchantresearch" sold="false" />
<Price storeidentifier="merchantmilitary" minavailable="3" />
<Price storeidentifier="merchantmine" sold="false" multiplier="1.25" />
<Price storeidentifier="merchantarmory" multiplier="0.85" minavailable="3" />
</Price>
<PreferredContainer primary="divingsuitcontainer" />
<PreferredContainer primary="piratedivingsuitcontainer" spawnprobability="1" minleveldifficulty="35" />
<PreferredContainer primary="wreckdivingsuitcontainer" spawnprobability="0.05" minleveldifficulty="35" />
<Deconstruct time="30">
<Item identifier="ballisticfiber" />
<Item identifier="titaniumaluminiumalloy" />
<Item identifier="titaniumaluminiumalloy" />
<Item identifier="rubber" />
<Item identifier="rubber" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="45">
<RequiredSkill identifier="mechanical" level="60" />
<RequiredItem identifier="divingsuit" />
<RequiredItem identifier="ballisticfiber" />
<RequiredItem identifier="titaniumaluminiumalloy" />
<RequiredItem identifier="rubber" />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas2.png" sourcerect="128,704,128,128" origin="0.5,0.5" />
<!--
<Sprite name="Diving Suit" texture="DivingSuit_Item.png" sourcerect="157,0,90,307" depth="0.55" origin="0.4888889,0.5439739" />
-->
<Sprite name="Combat Diving Suit Item" texture="Content/Items/Diving/Combat_DivingSuit_Items.png" sourcerect="0,0,157,121" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Combat Diving Suit In Vertical Locker" allowedcontainertags="divingsuitcontainervertical" texture="Content/Items/Diving/Combat_DivingSuit_Items.png" sourcerect="181,0,70,192" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Combat Diving Suit Behind Window" allowedcontainertags="divingsuitcontainerwindow" texture="Content/Items/Containers/containers.png" sourcerect="215,379,80,207" depth="0.55" origin="-0.12,-0.14" />
<ContainedSprite name="Combat Diving Suit In Horizontal Locker" allowedcontainertags="divingsuitcontainerhorizontal" texture="Content/Items/Diving/Combat_DivingSuit_Items.png" sourcerect="0,193,230,63" depth="0.55" origin="0.6,0.5" />
<Body radius="45" width="34" density="20" />
<Wearable slots="OuterClothes" msg="ItemMsgEquipSelect" displaycontainedstatus="true" canbeselected="false" canbepicked="true" pickkey="Select">
<sprite name="Combat Diving Suit Helmet Wearable" texture="Content/Items/Jobgear/headgears.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidelimb="false" alphaclipotherwearables="true" sourcerect="326,0,103,103" origin="0.5,0.5">
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true" allowingameediting="false">
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" Interval="0.1" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
</LightComponent>
</sprite>
<sprite name="Combat Diving Suit Torso" texture="Content/Items/Diving/combat_DivingSuit.png" limb="Torso" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Right Hand" texture="Content/Items/Diving/combat_DivingSuit.png" limb="RightHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Left Hand" texture="Content/Items/Diving/combat_DivingSuit.png" limb="LeftHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Right Upper Arm" texture="Content/Items/Diving/combat_DivingSuit.png" limb="RightArm" depthlimb="RightForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Left Upper Arm" texture="Content/Items/Diving/combat_DivingSuit.png" limb="LeftArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Right Lower Arm" texture="Content/Items/Diving/combat_DivingSuit.png" limb="RightForearm" depthlimb="RightArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Left Lower Arm" texture="Content/Items/Diving/combat_DivingSuit.png" limb="LeftForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Waist" texture="Content/Items/Diving/combat_DivingSuit.png" limb="Waist" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Right Thigh" texture="Content/Items/Diving/combat_DivingSuit.png" limb="RightThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Left Thigh" texture="Content/Items/Diving/combat_DivingSuit.png" limb="LeftThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Right Leg" texture="Content/Items/Diving/combat_DivingSuit.png" limb="RightLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Left Leg" texture="Content/Items/Diving/combat_DivingSuit.png" limb="LeftLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Left Shoe" texture="Content/Items/Diving/combat_DivingSuit.png" limb="LeftFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Right Shoe" texture="Content/Items/Diving/combat_DivingSuit.png" limb="RightFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<StatusEffect type="OnWearing" target="Character" OxygenAvailable="-100.0" UseHullOxygen="false" />
<StatusEffect type="OnWearing" target="Character" ObstructVision="true" PressureProtection="6000.0" SpeedMultiplier="0.95" PropulsionSpeedMultiplier="1.4" LowPassMultiplier="0.2" setvalue="true" disabledeltatime="true">
<Sound file="Content/Items/Diving/DivingSuitLoop1.ogg" range="250" loop="true" />
<Sound file="Content/Items/Diving/DivingSuitLoop2.ogg" range="250" loop="true" />
</StatusEffect>
<!-- Refill oxygen when the suit is contained. -->
<StatusEffect type="OnContained" target="Contained" Condition="1.0" interval="1" disabledeltatime="true">
<Conditional Voltage="gt 0.01" targetcontainer="true" targetgrandparent="true" targetitemcomponent="Powered" />
<RequiredItem items="refillableoxygensource" type="Contained" excludebroken="false" excludefullcondition="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" OxygenAvailable="1000.0" Condition="-0.3" comparison="Or">
<Conditional IsDead="false" />
<RequiredItem items="oxygensource" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" Oxygen="-10.0" Condition="-0.5" interval="0.5" disabledeltatime="true">
<Conditional IsDead="false" />
<RequiredItem items="weldingfueltank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" targetlimbs="Torso" Oxygen="-10.0" Condition="-0.5" interval="0.5" disabledeltatime="true">
<Conditional IsDead="false" />
<RequiredItem items="incendiumfueltank" type="Contained" />
<Affliction identifier="burn" amount="3.0" />
</StatusEffect>
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="blunttrauma,gunshotwound,bitewounds,lacerations,bleeding" damagemultiplier="0.6" damagesound="LimbArmor" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictiontypes="burn" damagemultiplier="0.55" damagesound="" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="radiationsickness" damagemultiplier="0.75" damagesound="LimbArmor" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="huskinfection" probabilitymultiplier="0.5" damagesound="LimbArmor" />
</Wearable>
<Holdable slots="RightHand+LeftHand" controlpose="true" holdpos="0,-50" handle1="-10,-20" handle2="10,-20" holdangle="45" msg="ItemMsgPickUpUse" canbeselected="false" canbepicked="true" pickkey="Use" />
<ItemContainer capacity="1" maxstacksize="60" hideitems="true" containedstateindicatorstyle="tank">
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="64,448,64,64" origin="0.5,0.5" />
<Containable items="weldingtoolfuel" />
<Containable items="oxygensource">
<StatusEffect type="OnWearing" target="Contained">
<RequiredItem items="oxygensource" type="Contained" />
<Conditional condition="lt 5.0" />
<Sound file="Content/Items/WarningBeepSlow.ogg" range="250" loop="true" />
</StatusEffect>
</Containable>
<Containable items="oxygenitetank">
<StatusEffect type="OnWearing" target="Character" SpeedMultiplier="1.3" setvalue="true" targetslot="0">
<Conditional IsDead="false" />
</StatusEffect>
</Containable>
<StatusEffect type="OnWearing" target="Contained" playsoundonrequireditemfailure="true">
<RequiredItem items="oxygensource" type="Contained" matchonempty="true" />
<Conditional condition="lte 0.0" />
<Sound file="Content/Items/WarningBeep.ogg" range="250" loop="true" />
</StatusEffect>
</ItemContainer>
<aitarget maxsightrange="1500" />
</Item>
<!-- respawndivingsuit -->
<Item name="" identifier="respawndivingsuit" category="Diving,Equipment" tags="diving,deepdiving,human,respawnsuit" scale="0.5" fireproof="true" description="" allowdroppingonswapwith="diving" impactsoundtag="impact_metal_heavy" botpriority="3" cargocontaineridentifier="">
<Deconstruct time="1" />
<InventoryIcon texture="Content/Items/InventoryIconAtlas2.png" sourcerect="0,832,128,128" origin="0.5,0.5" />
<Sprite name="Respawn Diving Suit Item" texture="Content/Items/Diving/RespawnSuit_Items.png" sourcerect="0,0,157,121" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Respawn Diving Suit In Vertical Locker" allowedcontainertags="divingsuitcontainervertical" texture="Content/Items/Diving/RespawnSuit_Items.png" sourcerect="181,0,70,192" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Respawn Diving Suit Behind Window" allowedcontainertags="divingsuitcontainerwindow" texture="Content/Items/Containers/containers.png" sourcerect="118,379,77,214" depth="0.55" origin="-0.12,-0.13" />
<ContainedSprite name="Respawn Diving Suit In Horizontal Locker" allowedcontainertags="divingsuitcontainerhorizontal" texture="Content/Items/Diving/RespawnSuit_Items.png" sourcerect="0,193,230,63" depth="0.55" origin="0.6,0.5" />
<Body radius="45" width="34" density="20" />
<Wearable slots="OuterClothes" msg="ItemMsgEquipSelect" displaycontainedstatus="true" canbeselected="false" canbepicked="true" pickkey="Select">
<sprite name="Respawn Diving Suit Helmet Wearable" texture="Content/Items/Jobgear/headgears.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidelimb="false" alphaclipotherwearables="true" sourcerect="100,409,103,103" origin="0.5,0.5">
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true">
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
<IsActive condition="gt 10.0" />
</LightComponent>
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true" flicker="0.8" flickerspeed="1.0" pulsefrequency="0.1" pulseamount="0.5">
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
<IsActive condition="lte 10.0" />
</LightComponent>
</sprite>
<sprite name="Respawn Diving Suit Torso" texture="Content/Items/Diving/RespawnSuit.png" limb="Torso" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Right Hand" texture="Content/Items/Diving/RespawnSuit.png" limb="RightHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Left Hand" texture="Content/Items/Diving/RespawnSuit.png" limb="LeftHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Right Upper Arm" texture="Content/Items/Diving/RespawnSuit.png" limb="RightArm" depthlimb="RightForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Left Upper Arm" texture="Content/Items/Diving/RespawnSuit.png" limb="LeftArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Right Lower Arm" texture="Content/Items/Diving/RespawnSuit.png" limb="RightForearm" depthlimb="RightArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Left Lower Arm" texture="Content/Items/Diving/RespawnSuit.png" limb="LeftForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Waist" texture="Content/Items/Diving/RespawnSuit.png" limb="Waist" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Right Thigh" texture="Content/Items/Diving/RespawnSuit.png" limb="RightThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Left Thigh" texture="Content/Items/Diving/RespawnSuit.png" limb="LeftThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Right Leg" texture="Content/Items/Diving/RespawnSuit.png" limb="RightLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Left Leg" texture="Content/Items/Diving/RespawnSuit.png" limb="LeftLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Left Shoe" texture="Content/Items/Diving/RespawnSuit.png" limb="LeftFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Right Shoe" texture="Content/Items/Diving/RespawnSuit.png" limb="RightFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<StatusEffect type="OnWearing" target="Character" OxygenAvailable="-100.0" UseHullOxygen="false" />
<StatusEffect type="OnWearing" target="Character" ObstructVision="true" SpeedMultiplier="0.7" PropulsionSpeedMultiplier="0.5" setvalue="true" disabledeltatime="true" />
<StatusEffect type="OnWearing" target="this,Character" PressureProtection="10000.0" setvalue="true" disabledeltatime="true">
<Conditional condition="gt 0.0" />
</StatusEffect>
<StatusEffect type="OnWearing" target="this,Character" OxygenAvailable="1000.0" Condition="-0.2" comparison="and">
<Conditional IsDead="false" />
<Conditional condition="gt 0.0" />
</StatusEffect>
<StatusEffect type="OnWearing" target="this" comparison="and">
<Conditional condition="lt 5.0" />
<Conditional condition="gt 0.0" />
<Sound file="Content/Items/WarningBeepSlow.ogg" range="250" loop="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="this">
<Conditional condition="lte 0.0" />
<Sound file="Content/Items/WarningBeep.ogg" range="250" loop="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Character" LowPassMultiplier="0.2" setvalue="true">
<Sound file="Content/Items/Diving/DivingSuitLoop1.ogg" range="250" loop="true" />
<Sound file="Content/Items/Diving/DivingSuitLoop2.ogg" range="250" loop="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="this,Character">
<Conditional condition="lte 0.0" />
<Sound file="Content/Items/Diving/ITEMS_divingSuitOxygenLeakLoop.ogg" range="200" loop="true" dontmuffle="true" />
</StatusEffect>
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="blunttrauma,gunshotwound,bitewounds,lacerations,bleeding" damagemultiplier="0.8" damagesound="LimbArmor" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictiontypes="burn" damagemultiplier="0.75" damagesound="" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="radiationsickness" damagemultiplier="0.75" damagesound="LimbArmor" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="huskinfection" probabilitymultiplier="0.5" damagesound="LimbArmor" />
</Wearable>
<Holdable slots="RightHand+LeftHand" controlpose="true" holdpos="0,-50" handle1="-10,-20" handle2="10,-20" holdangle="45" msg="ItemMsgPickUpUse" canbeselected="false" canbepicked="true" pickkey="Use" />
<aitarget maxsightrange="1500" />
</Item>
<!-- -->
<!-- -->
</Override>
</Items>

View File

@@ -1,192 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Items>
<Override>
<!--
Updating instuctions:
1) Copy-paste each Item (eg.: "divingsuit") entirely
2) Replace relative paths of textures to their absolute ones: (Notepad++, CTRL+F)
a) texture="pucs texture="Content/Items/Jobgear/Engineer/pucs
3) Replace 'Content/Lights/divinghelmetlight.png' with '%ModDir%/Lights/divinghelmetlight.png' (Notepad++, CTRL+F)
4) Replace 'Content/Lights/lightcone.png' with '%ModDir%/Lights/lightcone.png' (Notepad++, CTRL+F)
5) Change the 'range' of 'LightComponent' in:
a) cargoscooter: 500 -> 1000 (undecided yet)
6) Make sure you haven't replaced the instructions above
-->
<!-- cargoscooter -->
<Item name="" identifier="cargoscooter" category="Equipment,Diving" Tags="mediumitem,provocative,scooter,mobilecontainer" allowasextracargo="true" cargocontaineridentifier="metalcrate" description="" Scale="0.5" impactsoundtag="impact_metal_heavy" isshootable="true">
<PreferredContainer primary="divingcab" />
<Price baseprice="400" sold="false">
<Price storeidentifier="merchantoutpost" multiplier="0.9" />
<Price storeidentifier="merchantcity" multiplier="0.85" />
<Price storeidentifier="merchantresearch" />
<Price storeidentifier="merchantmilitary" />
<Price storeidentifier="merchantmine" multiplier="1.25" />
</Price>
<Deconstruct time="20">
<Item identifier="aluminium" amount="2" />
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="tin" amount="2" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="30" requiresrecipe="true">
<RequiredSkill identifier="mechanical" level="30" />
<RequiredItem identifier="aluminium" amount="2" />
<RequiredItem identifier="titaniumaluminiumalloy" amount="2" />
<RequiredItem identifier="tin" amount="2" />
</Fabricate>
<InventoryIcon texture="Content/Items/JobGear/TalentGear.png" sourcerect="131,123,53,58" origin="0.5,0.5" />
<Sprite texture="Content/Items/JobGear/TalentGear.png" depth="0.55" sourcerect="295,195,149,105" origin="0.5,0.5" />
<Body width="140" height="100" density="10" />
<Holdable slots="RightHand+LeftHand" aimpos="90,0" handle1="-35,32" handle2="-27,34" msg="ItemMsgPickUpSelect" holdangle="-10">
<LightComponent LightColor="220,255,150,200" range="500" powerconsumption="10" IsOn="true">
<Upgrade gameversion="1.1.2.0" powerconsumption="10" />
<LightTexture texture="%ModDir%/Lights/lightcone.png" origin="-0.01, 0.5" size="1.0,1.0" />
</LightComponent>
<!-- activates the light when holding aim -->
<StatusEffect type="OnSecondaryUse" target="This" voltage="1.0" setvalue="true">
<RequiredItem items="mobilebattery" type="Contained" />
</StatusEffect>
<!-- Battery drain when using the light, adds up with propulsion -->
<StatusEffect type="OnSecondaryUse" target="Contained" targetslot="0" Condition="-0.05" />
</Holdable>
<Propulsion force="150" usablein="water" particles="bubbles">
<RequiredItems items="mobilebattery" targetslot="0" type="Contained" msg="ItemMsgBatteryCellRequired" />
<StatusEffect type="OnUse" target="Contained" targetslot="0" Condition="-0.2">
<RequiredItem items="mobilebattery" type="Contained" />
</StatusEffect>
<sound file="Content/Items/Diving/ScooterLoop.ogg" type="OnUse" range="500.0" loop="true" />
</Propulsion>
<ItemContainer capacity="1" maxstacksize="60" slotsperrow="3" hideitems="true" containedstateindicatorslot="0" containedstateindicatorstyle="battery">
<Containable items="mobilebattery" />
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
<SubContainer capacity="33" maxstacksize="60">
<Containable items="smallitem,mediumitem,ammobox,deepdiving,largeitem" />
</SubContainer>
</ItemContainer>
<AiTarget soundrange="3000" maxsightrange="3000" />
</Item>
<!-- pucs -->
<Item name="" identifier="pucs" category="Equipment,Diving" tags="diving,deepdiving,divinggear_wearableindoors,human" allowasextracargo="true" scale="0.5" fireproof="true" description="" allowdroppingonswapwith="diving" impactsoundtag="impact_metal_heavy" botpriority="5" cargocontaineridentifier="">
<PreferredContainer primary="divingsuitcontainer" spawnprobability="0.0" />
<Price baseprice="670" sold="false">
<Price storeidentifier="merchantoutpost" />
<Price storeidentifier="merchantcity" minavailable="0" maxavailable="3" sold="true">
<Reputation faction="coalition" min="70" />
</Price>
<Price storeidentifier="merchantresearch" multiplier="1.2" />
<Price storeidentifier="merchantmilitary" />
<Price storeidentifier="merchantmine" multiplier="1.1" />
</Price>
<Deconstruct time="45">
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="rubber" amount="2" />
<Item identifier="lead" amount="2" />
<Item identifier="physicorium" amount="2" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="80" requiresrecipe="true">
<RequiredSkill identifier="electrical" level="60" />
<RequiredItem identifier="combatdivingsuit" />
<RequiredItem identifier="lead" />
<RequiredItem identifier="physicorium" />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas2.png" sourcerect="384,704,128,128" origin="0.5,0.5" />
<Sprite name="PUCS Item" texture="Content/Items/Jobgear/Engineer/PUCS_Items.png" sourcerect="0,0,154,134" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="PUCS In Vertical Locker" allowedcontainertags="divingsuitcontainervertical" texture="Content/Items/Jobgear/Engineer/PUCS_Items.png" sourcerect="164,0,87,190" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="PUCS Behind Window" allowedcontainertags="divingsuitcontainerwindow" texture="Content/Items/Jobgear/Engineer/pucs.png" sourcerect="430,0,80,207" depth="0.55" origin="-0.12,-0.14" />
<ContainedSprite name="PUCS In Horizontal Locker" allowedcontainertags="divingsuitcontainerhorizontal" texture="Content/Items/Jobgear/Engineer/PUCS_Items.png" sourcerect="0,191,225,66" depth="0.55" origin="0.6,0.5" />
<Body radius="45" width="34" density="20" />
<Wearable slots="OuterClothes" msg="ItemMsgEquipSelect" displaycontainedstatus="true" canbeselected="false" canbepicked="true" pickkey="Select">
<sprite name="PUCS Helmet Wearable" texture="Content/Items/Jobgear/headgears.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidelimb="false" alphaclipotherwearables="true" sourcerect="127,520,105,124" origin="0.57,0.38">
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true" allowingameediting="false">
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" Interval="0.1" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
</LightComponent>
</sprite>
<sprite name="pucs Torso" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="Torso" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Right Hand" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="RightHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Left Hand" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="LeftHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Right Upper Arm" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="RightArm" depthlimb="RightForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Left Upper Arm" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="LeftArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Right Lower Arm" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="RightForearm" depthlimb="RightArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Left Lower Arm" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="LeftForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Waist" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="Waist" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Right Thigh" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="RightThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Left Thigh" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="LeftThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Right Leg" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="RightLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Left Leg" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="LeftLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Left Shoe" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="LeftFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Right Shoe" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="RightFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<StatusEffect type="OnWearing" target="Character" UseHullOxygen="true" ObstructVision="true" PressureProtection="6000.0" SpeedMultiplier="0.9" PropulsionSpeedMultiplier="0.9" LowPassMultiplier="0.2" setvalue="true" disabledeltatime="true">
<Sound file="Content/Items/Diving/DivingSuitLoop1.ogg" range="250" loop="true" />
<Sound file="Content/Items/Diving/DivingSuitLoop2.ogg" range="250" loop="true" />
</StatusEffect>
<!-- Refill oxygen when the suit is contained. -->
<StatusEffect type="OnContained" target="Contained" Condition="1.0" targetslot="0" interval="1" disabledeltatime="true">
<Conditional Voltage="gt 0.01" targetcontainer="true" targetgrandparent="true" targetitemcomponent="Powered" />
<RequiredItem items="refillableoxygensource" type="Contained" excludebroken="false" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" UseHullOxygen="false" OxygenAvailable="1000.0" Condition="-0.3" comparison="And" targetslot="0">
<Conditional IsDead="false" />
<Conditional HullOxygenPercentage="lt 50" />
<Conditional InWater="false" />
<RequiredItem items="oxygensource" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" UseHullOxygen="false" OxygenAvailable="1000.0" Condition="-0.3" comparison="And" targetslot="0">
<Conditional InWater="true" />
<RequiredItem items="oxygensource" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" Oxygen="-10.0" Condition="-0.5" interval="1" disabledeltatime="true" targetslot="0">
<Conditional IsDead="false" />
<RequiredItem items="weldingfueltank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" targetlimbs="Torso" Oxygen="-10.0" Condition="-0.5" interval="1" disabledeltatime="true" targetslot="0">
<Conditional IsDead="false" />
<RequiredItem items="incendiumfueltank" type="Contained" />
<Affliction identifier="burn" amount="3.0" />
</StatusEffect>
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="blunttrauma,gunshotwound,bitewounds,lacerations,bleeding" damagemultiplier="0.65" damagesound="LimbArmor" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictiontypes="burn" damagemultiplier="0.1" damagesound="" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="radiationsickness" damagemultiplier="0.1" damagesound="LimbArmor" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="huskinfection" probabilitymultiplier="0.1" damagesound="LimbArmor" />
<ItemComponent IsActiveConditionalComparison="Or">
<IsActive HullOxygenPercentage="lt 50" />
<IsActive InWater="eq true" />
<StatusEffect type="OnActive" target="Contained,Character" comparison="And">
<RequiredItem items="oxygensource" type="Contained" />
<Conditional condition="lt 5.0" />
<Sound file="Content/Items/WarningBeepSlow.ogg" range="250" loop="true" />
</StatusEffect>
<StatusEffect type="OnActive" target="Contained" playsoundonrequireditemfailure="true">
<RequiredItem items="oxygensource" type="Contained" matchonempty="true" />
<Conditional condition="lte 0.0" />
<Sound file="Content/Items/WarningBeep.ogg" range="250" loop="true" />
</StatusEffect>
</ItemComponent>
</Wearable>
<Holdable slots="RightHand+LeftHand" controlpose="true" holdpos="0,-50" handle1="-10,-20" handle2="10,-20" holdangle="45" msg="ItemMsgPickUpUse" canbeselected="false" canbepicked="true" pickkey="Use" />
<ItemContainer capacity="0" maxstacksize="60" hideitems="true" containedstateindicatorstyle="tank" containedstateindicatorslot="0" autoinject="true">
<Containable items="none,ammobox,deepdiving,smallitem,mediumitem,largeitem" />
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="64,448,64,64" origin="0.5,0.5" />
<SlotIcon slotindex="1" texture="Content/UI/StatusMonitorUI.png" sourcerect="384,448,64,64" origin="0.5,0.5" />
<SubContainer capacity="1" maxstacksize="60">
<Containable items="oxygensource,weldingtoolfuel" />
<Containable items="oxygenitetank">
<StatusEffect type="OnWearing" target="Character" SpeedMultiplier="1.3" setvalue="true" comparison="And" targetslot="0">
<Conditional IsDead="false" />
<Conditional HullOxygenPercentage="lt 50" />
<Conditional InWater="false" />
</StatusEffect>
</Containable>
</SubContainer>
<SubContainer capacity="1" maxstacksize="60">
<Containable items="chem,syringe" />
</SubContainer>
</ItemContainer>
<aitarget maxsightrange="1500" />
</Item>
<!-- -->
<!-- -->
</Override>
</Items>

View File

@@ -1,72 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Items>
<Override>
<!--
Updating instuctions:
1) Copy-paste each Item (eg.: "divingsuit") entirely
2) Replace relative paths of textures to their absolute ones: (Notepad++, CTRL+F)
a) texture="slipsuit texture="Content/Items/Jobgear/Security/slipsuit
b) texture="pucs texture="Content/Items/Jobgear/Engineer/pucs
3) Replace 'Content/Lights/divinghelmetlight.png' with '%ModDir%/Lights/divinghelmetlight.png' (Notepad++, CTRL+F)
4) Replace 'Content/Lights/lightcone.png' with '%ModDir%/Lights/lightcone.png' (Notepad++, CTRL+F)
5) Change the 'range' of 'LightComponent' in:
a) [everything is okay here]
6) Make sure you haven't replaced the instructions above
-->
<!-- slipsuit -->
<Item name="" identifier="slipsuit" variantof="combatdivingsuit" allowasextracargo="true" botpriority="1.5">
<Price baseprice="630" sold="false" />
<PreferredContainer primary="divingsuitcontainer" spawnprobability="0.0" />
<PreferredContainer primary="wreckdivingsuitcontainer" spawnprobability="0.0" />
<Deconstruct time="30">
<Item identifier="ballisticfiber" />
<Item identifier="titaniumaluminiumalloy" />
<Item identifier="titaniumaluminiumalloy" />
<Item identifier="rubber" />
<Item identifier="rubber" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="45" requiresrecipe="true">
<RequiredSkill identifier="mechanical" level="20" />
<RequiredItem identifier="combatdivingsuit" />
<RequiredItem identifier="rubber" />
<!-- clear the rest of the requirements -->
<RequiredItem />
<RequiredItem />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas2.png" sourcerect="256,704,128,128" origin="0.5,0.5" />
<Sprite name="Slipsuit Item" texture="Content/Items/Jobgear/Security/Slipsuit_Items.png" sourcerect="7,8,157,121" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Slipsuit In Vertical Locker" allowedcontainertags="divingsuitcontainervertical" texture="Content/Items/Jobgear/Security/Slipsuit_Items.png" sourcerect="171,0,77,192" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Slipsuit Behind Window" allowedcontainertags="divingsuitcontainerwindow" texture="Content/Items/Jobgear/Security/slipsuit.png" sourcerect="430,0,80,207" depth="0.55" origin="-0.12,-0.13" />
<ContainedSprite name="Slipsuit In Horizontal Locker" allowedcontainertags="divingsuitcontainerhorizontal" texture="Content/Items/Jobgear/Security/Slipsuit_Items.png" sourcerect="0,193,230,63" depth="0.55" origin="0.6,0.5" />
<Body radius="45" width="34" density="20" />
<Wearable>
<sprite name="Slipsuit Helmet Wearable" texture="Content/Items/Jobgear/headgears.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidelimb="false" alphaclipotherwearables="true" sourcerect="0,520,105,124" origin="0.5,0.4">
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true" allowingameediting="false">
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
</LightComponent>
</sprite>
<sprite name="SlipSuit Torso" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="Torso" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Right Hand" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="RightHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Left Hand" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="LeftHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Right Upper Arm" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="RightArm" depthlimb="RightForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Left Upper Arm" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="LeftArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Right Lower Arm" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="RightForearm" depthlimb="RightArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Left Lower Arm" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="LeftForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Waist" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="Waist" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Right Thigh" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="RightThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Left Thigh" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="LeftThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Right Leg" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="RightLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Left Leg" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="LeftLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Left Shoe" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="LeftFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Right Shoe" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="RightFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<StatValue stattype="SwimmingSpeed" value="0.45" />
<StatValue stattype="WalkingSpeed" value="-0.6" />
</Wearable>
</Item>
<!-- -->
<!-- -->
</Override>
</Items>

View File

@@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Items>
<Override>
<!--
Updating instuctions:
1) Copy-paste each Item (eg.: "divingsuit") entirely
2) Replace relative paths of textures to their absolute ones: (Notepad++, CTRL+F)
a) [everything is okay here]
3) Replace 'Content/Lights/divinghelmetlight.png' with '%ModDir%/Lights/divinghelmetlight.png' (Notepad++, CTRL+F)
4) Replace 'Content/Lights/lightcone.png' with '%ModDir%/Lights/lightcone.png' (Notepad++, CTRL+F)
5) Change the 'range' of 'LightComponent' in:
a) flashlight: 800 -> 1000 (undecided yet)
6) Make sure you haven't replaced the instructions above
-->
<!-- flashlight -->
<Item name="" identifier="flashlight" category="Equipment" Tags="smallitem,tool,provocative" cargocontaineridentifier="metalcrate" Scale="0.5" impactsoundtag="impact_metal_light">
<PreferredContainer primary="divingcab" minamount="1" maxamount="2" spawnprobability="1" notcampaign="true" />
<PreferredContainer secondary="wreckstoragecab,abandonedstoragecab,wrecksupplycab,beaconsupplycab" amount="1" spawnprobability="0.05" />
<PreferredContainer secondary="outpostcrewcabinet" amount="1" spawnprobability="0.1" />
<Price baseprice="200" minavailable="2">
<Price storeidentifier="merchantoutpost" />
<Price storeidentifier="merchantcity" multiplier="0.9" minavailable="3" />
<Price storeidentifier="merchantresearch" multiplier="1.25" />
<Price storeidentifier="merchantmilitary" multiplier="1.25" />
<Price storeidentifier="merchantmine" />
</Price>
<Fabricate suitablefabricators="fabricator" requiredtime="10">
<RequiredSkill identifier="mechanical" level="25" />
<RequiredItem identifier="aluminium" amount="2" />
<RequiredItem tag="lightcomponent" />
</Fabricate>
<Deconstruct time="15">
<Item identifier="aluminium" />
<Item identifier="lightcomponent" />
</Deconstruct>
<InventoryIcon texture="Content/Items/InventoryIconAtlas.png" sourcerect="704,320,64,64" origin="0.5,0.5" />
<Sprite texture="Content/Items/Tools/tools.png" sourcerect="293,185,49,18" depth="0.55" origin="0.5,0.5" />
<Body width="48" height="15" density="15" />
<Holdable slots="Any,RightHand,LeftHand,Head" holdpos="30,-50" aimpos="60,0" handle1="-20,0" msg="ItemMsgPickUpSelect">
<StatusEffect type="OnActive" targettype="Contained" Condition="-0.2">
<RequiredItem items="mobilebattery" type="Contained" />
</StatusEffect>
<!-- the child LightComponent is only active when the Holdable is active, i.e. when the item is being held -->
<LightComponent LightColor="0.5,0.5,0.5,1.0" directional="true" Flicker="0.02" range="800" powerconsumption="10" IsOn="true">
<LightTexture texture="%ModDir%/Lights/lightcone.png" origin="0.0, 0.5" size="1.0,1.0" />
<IsActive targetcontaineditem="true" condition="gt 1.0" />
</LightComponent>
<LightComponent LightColor="0.5,0.5,0.5,1.0" directional="true" range="800" powerconsumption="10" IsOn="true" flicker="0.8" flickerspeed="1.0" pulsefrequency="0.1" pulseamount="0.5">
<LightTexture texture="%ModDir%/Lights/lightcone.png" origin="0.0, 0.5" size="1.0,1.0" />
<IsActive targetcontaineditem="true" condition="lte 1.0" />
</LightComponent>
</Holdable>
<ItemContainer capacity="1" maxstacksize="60" hideitems="true" containedstateindicatorstyle="battery">
<SlotIcon slotindex="0" texture="Content/UI/StatusMonitorUI.png" sourcerect="128,448,64,64" origin="0.5,0.5" />
<Containable items="mobilebattery">
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
</Containable>
</ItemContainer>
<AiTarget sightrange="3000" />
<Upgrade gameversion="0.10.0.0" scale="0.5" />
</Item>
<!-- -->
<!-- -->
</Override>
</Items>

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<contentpackage name="Brighter Lights" modversion="1.0.6" corepackage="False" steamworkshopid="2121341895" gameversion="1.2.8.0" >
<Item file="%ModDir%/bl_divinggear.xml" />
<Item file="%ModDir%/bl_engineer_talent_items.xml" />
<Item file="%ModDir%/bl_securityofficer_talent_items.xml" />
<Item file="%ModDir%/bl_tools.xml" />
<Other file="%ModDir%/Lights/divinghelmetlight.png" />
<Other file="%ModDir%/Lights/lightcone.png" />
</contentpackage>

View File

@@ -1,730 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Items>
<!-- \Content\Items\Diving\divinggear.xml -->
<override>
<Item name="" identifier="underwaterscooter" category="Diving,Equipment" Tags="smallitem,provocative,scooter" cargocontaineridentifier="metalcrate" description="" Scale="0.5" impactsoundtag="impact_metal_light" isshootable="true" requireaimtouse="True">
<Upgrade gameversion="0.10.0.0" scale="0.5" />
<Price baseprice="180">
<Price storeidentifier="merchantoutpost" multiplier="0.9" minavailable="4" />
<Price storeidentifier="merchantcity" multiplier="0.85" minavailable="6" />
<Price storeidentifier="merchantresearch" minavailable="3" />
<Price storeidentifier="merchantmilitary" minavailable="5" />
<Price storeidentifier="merchantmine" multiplier="1.25" minavailable="4" />
</Price>
<Preferredcontainer secondary="respawncontainer" amount="1" spawnprobability="1" notcampaign="true" />
<PreferredContainer primary="divingcab" amount="2" spawnprobability="1" notcampaign="true" />
<PreferredContainer secondary="wrecksupplycab,beaconsupplycab" spawnprobability="0.05" />
<Deconstruct time="20">
<Item identifier="aluminium" amount="2" />
<Item identifier="copper" amount="2" />
<Item identifier="tin" amount="2" />
<Item identifier="plastic" amount="2" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="30">
<RequiredSkill identifier="mechanical" level="30" />
<RequiredItem identifier="aluminium" amount="2" />
<RequiredItem identifier="fpgacircuit" />
<RequiredItem identifier="tin" amount="2" />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas.png" sourcerect="256,128,67,62" origin="0.5,0.5" />
<Sprite texture="Content/Items/Diving/Scooter.png" depth="0.55" sourcerect="0,0,140,102" />
<Body width="120" height="60" density="10.2" />
<Holdable slots="Any,RightHand+LeftHand" aimpos="90,0" handle1="-35,32" handle2="-27,34" msg="ItemMsgPickUpSelect" holdangle="-10" />
<Propulsion force="150" usablein="water" particles="bubbles">
<RequiredItems items="mobilebattery" type="Contained" msg="ItemMsgBatteryCellRequired" />
<StatusEffect type="OnUse" target="Contained" Condition="-0.25">
<RequiredItem items="mobilebattery" type="Contained" />
</StatusEffect>
<sound file="Content/Items/Diving/ScooterLoop.ogg" type="OnUse" range="500.0" loop="true" />
<LightComponent LightColor="1.0,1.0,1.0,0.8" range="1000">
<LightTexture texture="%ModDir%/Lights/lightcone.png" origin="-0.01, 0.5" size="1.0,1.0" />
</LightComponent>
</Propulsion>
<ItemContainer capacity="1" maxstacksize="60" hideitems="true" containedstateindicatorstyle="battery">
<Containable items="mobilebattery" />
</ItemContainer>
<AiTarget soundrange="3000" maxsightrange="3000" />
</Item>
</override>
<!-- \Content\Items\Jobgear\Engineer\engineer_talent_items.xml -->
<override>
<Item name="" identifier="cargoscooter" category="Equipment,Diving" Tags="mediumitem,provocative,scooter" allowasextracargo="true" cargocontaineridentifier="metalcrate" description="" Scale="0.5" impactsoundtag="impact_metal_heavy" isshootable="true">
<PreferredContainer primary="divingcab" />
<Price baseprice="400" sold="false">
<Price storeidentifier="merchantoutpost" multiplier="0.9" />
<Price storeidentifier="merchantcity" multiplier="0.85" />
<Price storeidentifier="merchantresearch" />
<Price storeidentifier="merchantmilitary" />
<Price storeidentifier="merchantmine" multiplier="1.25" />
</Price>
<Deconstruct time="20">
<Item identifier="aluminium" amount="2" />
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="tin" amount="2" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="30" requiresrecipe="true">
<RequiredSkill identifier="mechanical" level="30" />
<RequiredItem identifier="aluminium" amount="2" />
<RequiredItem identifier="titaniumaluminiumalloy" amount="2" />
<RequiredItem identifier="tin" amount="2" />
</Fabricate>
<InventoryIcon texture="Content/Items/JobGear/TalentGear.png" sourcerect="131,123,53,58" origin="0.5,0.5" />
<Sprite texture="Content/Items/JobGear/TalentGear.png" depth="0.55" sourcerect="295,195,149,105" origin="0.5,0.5" />
<Body width="140" height="100" density="10" />
<Holdable slots="RightHand+LeftHand" aimpos="90,0" handle1="-35,36" handle2="-37,38" msg="ItemMsgPickUpSelect" />
<Propulsion force="150" usablein="water" particles="bubbles">
<RequiredItems items="mobilebattery" targetslot="0" type="Contained" msg="ItemMsgBatteryCellRequired" />
<StatusEffect type="OnUse" target="Contained" targetslot="0" Condition="-0.25">
<RequiredItem items="mobilebattery" type="Contained" />
</StatusEffect>
<sound file="Content/Items/Diving/ScooterLoop.ogg" type="OnUse" range="500.0" loop="true" />
<LightComponent LightColor="1.0,1.0,1.0,0.8" range="1000">
<LightTexture texture="%ModDir%/Lights/lightcone.png" origin="-0.01, 0.5" size="1.0,1.0" />
</LightComponent>
</Propulsion>
<ItemContainer capacity="1" maxstacksize="60" slotsperrow="3" hideitems="true" containedstateindicatorslot="0" containedstateindicatorstyle="battery">
<Containable items="mobilebattery" />
<SlotIcon slotindex="0" texture="Content/UI/WeaponUI.png" sourcerect="64,961,32,22" origin="0.5,0.45" />
<SubContainer capacity="33" maxstacksize="60">
<Containable items="smallitem,mediumitem,ammobox,deepdiving,largeitem" />
</SubContainer>
</ItemContainer>
<AiTarget soundrange="3000" maxsightrange="3000" />
</Item>
</override>
<!-- \Content\Items\Tools\tools.xml -->
<override>
<Item name="" identifier="flashlight" category="Equipment" Tags="smallitem,tool,provocative" cargocontaineridentifier="metalcrate" Scale="0.5" impactsoundtag="impact_metal_light">
<PreferredContainer primary="divingcab" minamount="1" maxamount="2" spawnprobability="1" notcampaign="true" />
<PreferredContainer secondary="wreckstoragecab,abandonedstoragecab,wrecksupplycab,beaconsupplycab" amount="1" spawnprobability="0.05" />
<PreferredContainer secondary="outpostcrewcabinet" amount="1" spawnprobability="0.1" />
<Price baseprice="200" minavailable="2">
<Price storeidentifier="merchantoutpost" />
<Price storeidentifier="merchantcity" multiplier="0.9" minavailable="3" />
<Price storeidentifier="merchantresearch" multiplier="1.25" />
<Price storeidentifier="merchantmilitary" multiplier="1.25" />
<Price storeidentifier="merchantmine" />
</Price>
<Deconstruct time="15">
<Item identifier="aluminium" amount="2" />
<Item identifier="lightcomponent" amount="2" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="10">
<RequiredSkill identifier="mechanical" level="25" />
<RequiredItem identifier="aluminium" amount="2" />
<RequiredItem identifier="lightcomponent" />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas.png" sourcerect="704,320,64,64" origin="0.5,0.5" />
<Sprite texture="Content/Items/Tools/tools.png" sourcerect="293,185,49,18" depth="0.55" origin="0.5,0.5" />
<Body width="48" height="15" density="15" />
<Holdable slots="Any,RightHand,LeftHand,Head" holdpos="30,-50" aimpos="60,0" handle1="-20,0" msg="ItemMsgPickUpSelect">
<StatusEffect type="OnActive" targettype="Contained" Condition="-0.2">
<RequiredItem items="mobilebattery" type="Contained" />
</StatusEffect>
<!-- the child LightComponent is only active when the Holdable is active, i.e. when the item is being held -->
<LightComponent LightColor="0.5,0.5,0.5,1.0" Flicker="0.02" range="1000" powerconsumption="10" IsOn="true">
<LightTexture texture="Content/Lights/lightcone.png" origin="0.0, 0.5" size="1.0,1.0" />
<IsActive targetcontaineditem="true" condition="gt 1.0" />
</LightComponent>
<LightComponent LightColor="0.5,0.5,0.5,1.0" range="1000" powerconsumption="10" IsOn="true" flicker="0.8" flickerspeed="1.0" pulsefrequency="0.1" pulseamount="0.5">
<LightTexture texture="%ModDir%/Lights/lightcone.png" origin="0.0, 0.5" size="1.0,1.0" />
<IsActive targetcontaineditem="true" condition="lte 1.0" />
</LightComponent>
</Holdable>
<ItemContainer capacity="1" maxstacksize="60" hideitems="true" containedstateindicatorstyle="battery">
<Containable items="mobilebattery">
<StatusEffect type="OnContaining" targettype="This" Voltage="1.0" setvalue="true" />
</Containable>
</ItemContainer>
<AiTarget sightrange="3000" />
<Upgrade gameversion="0.10.0.0" scale="0.5" />
</Item>
</override>
<!-- \Content\Items\Diving\divinggear.xml -->
<override>
<Item name="" identifier="divingsuit" category="Diving,Equipment" tags="diving,deepdiving,provocative" scale="0.5" fireproof="true" description="" allowdroppingonswapwith="diving" impactsoundtag="impact_metal_heavy">
<Price baseprice="250">
<Price storeidentifier="merchantoutpost" multiplier="0.9" minavailable="2" />
<Price storeidentifier="merchantcity" multiplier="0.85" minavailable="4" />
<Price storeidentifier="merchantresearch" minavailable="3" />
<Price storeidentifier="merchantmilitary" minavailable="3" />
<Price storeidentifier="merchantmine" multiplier="1.25" minavailable="5" />
</Price>
<PreferredContainer primary="divingsuitcontainer" spawnprobability="1" />
<PreferredContainer primary="wreckdivingsuitcontainer" spawnprobability="0.1" />
<Deconstruct time="30">
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="rubber" amount="2" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="30">
<RequiredSkill identifier="mechanical" level="40" />
<RequiredItem identifier="titaniumaluminiumalloy" />
<RequiredItem identifier="rubber" />
<RequiredItem identifier="rubber" />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas2.png" sourcerect="0,256,128,128" origin="0.5,0.5" />
<!--
<Sprite name="Diving Suit" texture="DivingSuit_Item.png" sourcerect="157,0,90,307" depth="0.55" origin="0.4888889,0.5439739" />
-->
<Sprite name="Diving Suit Item" texture="Content/Items/Diving/DivingSuit_Item.png" sourcerect="0,0,146,120" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Diving Suit In Vertical Locker" allowedcontainertags="divingsuitcontainervertical" texture="Content/Items/Diving/DivingSuit_Item.png" sourcerect="181,0,75,193" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Diving Suit Behind Window" allowedcontainertags="divingsuitcontainerwindow" texture="Content/Items/Containers/containers.png" sourcerect="724,373,77,209" depth="0.55" origin="-0.12,-0.14" />
<ContainedSprite name="Diving Suit In Horizontal Locker" allowedcontainertags="divingsuitcontainerhorizontal" texture="Content/Items/Diving/DivingSuit_Item.png" sourcerect="0,193,230,63" depth="0.55" origin="0.6,0.5" />
<Body radius="45" width="34" density="15" />
<Wearable slots="OuterClothes" msg="ItemMsgEquipSelect" displaycontainedstatus="true" canbeselected="false" canbepicked="true" pickkey="Select">
<sprite name="Diving Suit Helmet Wearable" texture="Content/Items/Jobgear/headgears.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidelimb="true" hideotherwearables="true" sourcerect="5,4,92,94" origin="0.5,0.5">
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true" allowingameediting="false">
<Upgrade gameversion="0.1300.0.3" allowingameediting="false" />
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
</LightComponent>
</sprite>
<sprite name="Regular Diving Suit Torso" texture="Content/Items/Diving/reg_DivingSuit.png" limb="Torso" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Right Hand" texture="Content/Items/Diving/reg_DivingSuit.png" limb="RightHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Left Hand" texture="Content/Items/Diving/reg_DivingSuit.png" limb="LeftHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Right Lower Arm" texture="Content/Items/Diving/reg_DivingSuit.png" limb="RightArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Left Lower Arm" texture="Content/Items/Diving/reg_DivingSuit.png" limb="LeftArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Right Upper Arm" texture="Content/Items/Diving/reg_DivingSuit.png" limb="RightForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Left Upper Arm" texture="Content/Items/Diving/reg_DivingSuit.png" limb="LeftForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Waist" texture="Content/Items/Diving/reg_DivingSuit.png" limb="Waist" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Right Thigh" texture="Content/Items/Diving/reg_DivingSuit.png" limb="RightThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Left Thigh" texture="Content/Items/Diving/reg_DivingSuit.png" limb="LeftThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Right Leg" texture="Content/Items/Diving/reg_DivingSuit.png" limb="RightLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Left Leg" texture="Content/Items/Diving/reg_DivingSuit.png" limb="LeftLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Left Shoe" texture="Content/Items/Diving/reg_DivingSuit.png" limb="LeftFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Regular Diving Suit Right Shoe" texture="Content/Items/Diving/reg_DivingSuit.png" limb="RightFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<StatusEffect type="OnWearing" target="Character" OxygenAvailable="-100.0" UseHullOxygen="false" />
<StatusEffect type="OnWearing" target="Character" HideFace="true" ObstructVision="true" PressureProtection="4000.0" SpeedMultiplier="0.8" LowPassMultiplier="0.2" setvalue="true" disabledeltatime="true">
<Sound file="Content/Items/Diving/DivingSuitLoop1.ogg" range="500" loop="true" />
<Sound file="Content/Items/Diving/DivingSuitLoop2.ogg" range="500" loop="true" />
</StatusEffect>
<!-- Refill oxygen when the suit is contained. -->
<StatusEffect type="OnContained" target="Contained" Condition="1.0" interval="1" disabledeltatime="true">
<Conditional Voltage="gt 0.01" targetcontainer="true" targetgrandparent="true" targetitemcomponent="Powered" />
<RequiredItem items="refillableoxygensource" type="Contained" excludebroken="false" excludefullcondition="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" OxygenAvailable="1000.0" Condition="-0.3" comparison="Or">
<Conditional IsDead="false" />
<RequiredItem items="oxygentank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" Oxygen="-10.0" Condition="-0.5" interval="1" disabledeltatime="true">
<Conditional IsDead="false" />
<RequiredItem items="weldingfueltank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" Oxygen="-10.0" Condition="-0.5" interval="1" disabledeltatime="true">
<Conditional IsDead="false" />
<RequiredItem items="incendiumfueltank" type="Contained" />
<Affliction identifier="burn" amount="0.05" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" OxygenAvailable="1500.0" Condition="-0.1" comparison="Or">
<Conditional IsDead="false" />
<RequiredItem items="oxygenitetank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" SpeedMultiplier="1.3" setvalue="true" comparison="Or">
<Conditional IsDead="false" />
<RequiredItem items="oxygenitetank" type="Contained" />
</StatusEffect>
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="blunttrauma,gunshotwound,bitewounds,lacerations,bleeding" damagemultiplier="0.65" damagesound="LimbArmor" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictiontypes="burn" damagemultiplier="0.75" damagesound="" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="radiationsickness" damagemultiplier="0.75" damagesound="LimbArmor" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="huskinfection" damagemultiplier="0.5" probabilitymultiplier="0.5" damagesound="LimbArmor" />
</Wearable>
<Holdable slots="RightHand+LeftHand" controlpose="true" holdpos="0,-50" handle1="-10,-20" handle2="10,-20" holdangle="45" msg="ItemMsgPickUpUse" canbeselected="false" canbepicked="true" pickkey="Use">
<Upgrade gameversion="0.1401.0.0" msg="ItemMsgPickUpUse" />
</Holdable>
<ItemContainer capacity="1" maxstacksize="60" hideitems="true" containedstateindicatorstyle="tank">
<Containable items="oxygensource,weldingtoolfuel" />
<StatusEffect type="OnWearing" target="Contained">
<RequiredItem items="oxygensource" type="Contained" />
<Conditional condition="lt 5.0" />
<Sound file="Content/Items/WarningBeepSlow.ogg" range="500" loop="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained" playsoundonrequireditemfailure="true">
<RequiredItem items="oxygensource" type="Contained" matchonempty="true" />
<Conditional condition="lte 0.0" />
<Sound file="Content/Items/WarningBeep.ogg" range="500" loop="true" />
</StatusEffect>
</ItemContainer>
<aitarget maxsightrange="1500" />
</Item>
</override>
<!-- \Content\Items\Diving\divinggear.xml -->
<override>
<Item name="" identifier="abyssdivingsuit" category="Diving,Equipment" tags="diving,deepdiving,provocative" scale="0.5" fireproof="true" description="" allowdroppingonswapwith="diving" impactsoundtag="impact_metal_heavy">
<Price baseprice="550" minleveldifficulty="35">
<Price storeidentifier="merchantoutpost" multiplier="0.9" minavailable="1" />
<Price storeidentifier="merchantcity" multiplier="0.85" minavailable="2" />
<Price storeidentifier="merchantresearch" minavailable="1" />
<Price storeidentifier="merchantmilitary" minavailable="2" />
<Price storeidentifier="merchantmine" multiplier="1.25" minavailable="2" />
</Price>
<PreferredContainer primary="divingsuitcontainer" />
<PreferredContainer primary="wreckdivingsuitcontainer" spawnprobability="0.05" />
<Deconstruct time="30">
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="rubber" amount="2" />
<Item identifier="rubber" amount="2" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="45">
<RequiredSkill identifier="mechanical" level="60" />
<RequiredItem identifier="divingsuit" />
<RequiredItem identifier="titaniumaluminiumalloy" />
<RequiredItem identifier="titaniumaluminiumalloy" />
<RequiredItem identifier="rubber" />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas2.png" sourcerect="192,384,128,128" origin="0.5,0.5" />
<Sprite name="Abyss Diving Suit Item" texture="Content/Items/Diving/Abyss_DivingSuit_Items.png" sourcerect="0,0,157,121" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Abyss Diving Suit In Vertical Locker" allowedcontainertags="divingsuitcontainervertical" texture="Content/Items/Diving/Abyss_DivingSuit_Items.png" sourcerect="181,0,70,192" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Abyss Diving Suit Behind Window" allowedcontainertags="divingsuitcontainerwindow" texture="Content/Items/Containers/containers.png" sourcerect="316,379,77,214" depth="0.55" origin="-0.12,-0.13" />
<ContainedSprite name="Abyss Diving Suit In Horizontal Locker" allowedcontainertags="divingsuitcontainerhorizontal" texture="Content/Items/Diving/Abyss_DivingSuit_Items.png" sourcerect="0,193,230,63" depth="0.55" origin="0.6,0.5" />
<Body radius="45" width="34" density="15" />
<Wearable slots="OuterClothes" msg="ItemMsgEquipSelect" displaycontainedstatus="true" canbeselected="false" canbepicked="true" pickkey="Select">
<sprite name="Abyss Diving Suit Helmet Wearable" texture="Content/Items/Jobgear/headgears.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidelimb="true" hideotherwearables="true" sourcerect="0,409,103,103" origin="0.5,0.5">
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true">
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
</LightComponent>
</sprite>
<sprite name="Abyss Diving Suit Torso" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="Torso" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Right Hand" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="RightHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Left Hand" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="LeftHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Right Lower Arm" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="RightArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Left Lower Arm" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="LeftArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Right Upper Arm" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="RightForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Left Upper Arm" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="LeftForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Waist" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="Waist" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Right Thigh" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="RightThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Left Thigh" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="LeftThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Right Leg" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="RightLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Left Leg" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="LeftLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Left Shoe" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="LeftFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Abyss Diving Suit Right Shoe" texture="Content/Items/Diving/Abyss_DivingSuit.png" limb="RightFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<StatusEffect type="OnWearing" target="Character" OxygenAvailable="-100.0" UseHullOxygen="false" />
<StatusEffect type="OnWearing" target="Character" HideFace="true" ObstructVision="true" PressureProtection="10000.0" SpeedMultiplier="0.7" PropulsionSpeedMultiplier="0.5" LowPassMultiplier="0.2" setvalue="true" disabledeltatime="true">
<Sound file="Content/Items/Diving/DivingSuitLoop1.ogg" range="500" loop="true" />
<Sound file="Content/Items/Diving/DivingSuitLoop2.ogg" range="500" loop="true" />
</StatusEffect>
<!-- Refill oxygen when the suit is contained. -->
<StatusEffect type="OnContained" target="Contained" Condition="1.0" interval="1" disabledeltatime="true">
<Conditional Voltage="gt 0.01" targetcontainer="true" targetgrandparent="true" targetitemcomponent="Powered" />
<RequiredItem items="oxygentank" type="Contained" excludebroken="false" excludefullcondition="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" OxygenAvailable="1000.0" Condition="-0.15" comparison="Or">
<Conditional IsDead="false" />
<RequiredItem items="oxygentank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" Oxygen="-10.0" Condition="-0.5" interval="1" disabledeltatime="true">
<Conditional IsDead="false" />
<RequiredItem items="weldingfueltank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" Oxygen="-10.0" Condition="-0.5" interval="1" disabledeltatime="true">
<Conditional IsDead="false" />
<RequiredItem items="incendiumfueltank" type="Contained" />
<Affliction identifier="burn" amount="0.05" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" OxygenAvailable="1500.0" Condition="-0.05" comparison="Or">
<Conditional IsDead="false" />
<RequiredItem items="oxygenitetank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" SpeedMultiplier="1.3" setvalue="true" comparison="Or">
<Conditional IsDead="false" />
<RequiredItem items="oxygenitetank" type="Contained" />
</StatusEffect>
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="blunttrauma,gunshotwound,bitewounds,lacerations,bleeding" damagemultiplier="0.55" damagesound="LimbArmor" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictiontypes="burn" damagemultiplier="0.75" damagesound="" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="radiationsickness" damagemultiplier="0.75" damagesound="LimbArmor" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="huskinfection" damagemultiplier="0.5" probabilitymultiplier="0.5" damagesound="LimbArmor" />
</Wearable>
<Holdable slots="RightHand+LeftHand" controlpose="true" holdpos="0,-50" handle1="-10,-20" handle2="10,-20" holdangle="45" msg="ItemMsgPickUpUse" canbeselected="false" canbepicked="true" pickkey="Use" />
<ItemContainer capacity="1" maxstacksize="60" hideitems="true" containedstateindicatorstyle="tank">
<Containable items="oxygensource,weldingtoolfuel" />
<StatusEffect type="OnWearing" target="Contained">
<RequiredItem items="oxygensource" type="Contained" />
<Conditional condition="lt 5.0" />
<Sound file="Content/Items/WarningBeepSlow.ogg" range="500" loop="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained" playsoundonrequireditemfailure="true">
<RequiredItem items="oxygensource" type="Contained" matchonempty="true" />
<Conditional condition="lte 0.0" />
<Sound file="Content/Items/WarningBeep.ogg" range="500" loop="true" />
</StatusEffect>
</ItemContainer>
<aitarget maxsightrange="1500" />
</Item>
</override>
<!-- \Content\Items\Diving\divinggear.xml -->
<override>
<Item name="" identifier="combatdivingsuit" category="Diving,Equipment" tags="diving,deepdiving,provocative" scale="0.5" fireproof="true" description="" allowdroppingonswapwith="diving" impactsoundtag="impact_metal_heavy">
<Price baseprice="560" minleveldifficulty="35">
<Price storeidentifier="merchantoutpost" sold="false" multiplier="0.9" />
<Price storeidentifier="merchantcity" multiplier="0.85" minavailable="2" sold="false" />
<Price storeidentifier="merchantresearch" sold="false" />
<Price storeidentifier="merchantmilitary" minavailable="3" />
<Price storeidentifier="merchantmine" sold="false" multiplier="1.25" />
<Price storeidentifier="merchantarmory" multiplier="0.85" minavailable="3" />
</Price>
<PreferredContainer primary="divingsuitcontainer" />
<PreferredContainer primary="wreckdivingsuitcontainer" spawnprobability="0.05" />
<Deconstruct time="30">
<Item identifier="ballisticfiber" amount="2" />
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="rubber" amount="2" />
<Item identifier="rubber" amount="2" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="45">
<RequiredSkill identifier="mechanical" level="60" />
<RequiredItem identifier="divingsuit" />
<RequiredItem identifier="ballisticfiber" />
<RequiredItem identifier="titaniumaluminiumalloy" />
<RequiredItem identifier="rubber" />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas2.png" sourcerect="512,0,128,128" origin="0.5,0.5" />
<!--
<Sprite name="Diving Suit" texture="DivingSuit_Item.png" sourcerect="157,0,90,307" depth="0.55" origin="0.4888889,0.5439739" />
-->
<Sprite name="Combat Diving Suit Item" texture="Content/Items/Diving/Combat_DivingSuit_Items.png" sourcerect="0,0,157,121" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Combat Diving Suit In Vertical Locker" allowedcontainertags="divingsuitcontainervertical" texture="Content/Items/Diving/Combat_DivingSuit_Items.png" sourcerect="181,0,70,192" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Combat Diving Suit Behind Window" allowedcontainertags="divingsuitcontainerwindow" texture="Content/Items/Containers/containers.png" sourcerect="215,379,80,207" depth="0.55" origin="-0.12,-0.14" />
<ContainedSprite name="Combat Diving Suit In Horizontal Locker" allowedcontainertags="divingsuitcontainerhorizontal" texture="Content/Items/Diving/Combat_DivingSuit_Items.png" sourcerect="0,193,230,63" depth="0.55" origin="0.6,0.5" />
<Body radius="45" width="34" density="15" />
<Wearable slots="OuterClothes" msg="ItemMsgEquipSelect" displaycontainedstatus="true" canbeselected="false" canbepicked="true" pickkey="Select">
<sprite name="Combat Diving Suit Helmet Wearable" texture="Content/Items/Jobgear/headgears.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidelimb="true" hideotherwearables="true" sourcerect="326,0,103,103" origin="0.5,0.5">
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true" allowingameediting="false">
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
</LightComponent>
</sprite>
<sprite name="Combat Diving Suit Torso" texture="Content/Items/Diving/combat_DivingSuit.png" limb="Torso" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Right Hand" texture="Content/Items/Diving/combat_DivingSuit.png" limb="RightHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Left Hand" texture="Content/Items/Diving/combat_DivingSuit.png" limb="LeftHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Right Lower Arm" texture="Content/Items/Diving/combat_DivingSuit.png" limb="RightArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Left Lower Arm" texture="Content/Items/Diving/combat_DivingSuit.png" limb="LeftArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Right Upper Arm" texture="Content/Items/Diving/combat_DivingSuit.png" limb="RightForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Left Upper Arm" texture="Content/Items/Diving/combat_DivingSuit.png" limb="LeftForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Waist" texture="Content/Items/Diving/combat_DivingSuit.png" limb="Waist" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Right Thigh" texture="Content/Items/Diving/combat_DivingSuit.png" limb="RightThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Left Thigh" texture="Content/Items/Diving/combat_DivingSuit.png" limb="LeftThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Right Leg" texture="Content/Items/Diving/combat_DivingSuit.png" limb="RightLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Left Leg" texture="Content/Items/Diving/combat_DivingSuit.png" limb="LeftLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Left Shoe" texture="Content/Items/Diving/combat_DivingSuit.png" limb="LeftFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Combat Diving Suit Right Shoe" texture="Content/Items/Diving/combat_DivingSuit.png" limb="RightFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<StatusEffect type="OnWearing" target="Character" OxygenAvailable="-100.0" UseHullOxygen="false" />
<StatusEffect type="OnWearing" target="Character" HideFace="true" ObstructVision="true" PressureProtection="6000.0" SpeedMultiplier="0.95" PropulsionSpeedMultiplier="1.4" LowPassMultiplier="0.2" setvalue="true" disabledeltatime="true">
<Sound file="Content/Items/Diving/DivingSuitLoop1.ogg" range="500" loop="true" />
<Sound file="Content/Items/Diving/DivingSuitLoop2.ogg" range="500" loop="true" />
</StatusEffect>
<!-- Refill oxygen when the suit is contained. -->
<StatusEffect type="OnContained" target="Contained" Condition="1.0" interval="1" disabledeltatime="true">
<Conditional Voltage="gt 0.01" targetcontainer="true" targetgrandparent="true" targetitemcomponent="Powered" />
<RequiredItem items="oxygentank" type="Contained" excludebroken="false" excludefullcondition="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" OxygenAvailable="1000.0" Condition="-0.3" comparison="Or">
<Conditional IsDead="false" />
<RequiredItem items="oxygentank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" Oxygen="-10.0" Condition="-0.5" interval="0.5" disabledeltatime="true">
<Conditional IsDead="false" />
<RequiredItem items="weldingfueltank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" Oxygen="-10.0" Condition="-0.5" interval="0.5" disabledeltatime="true">
<Conditional IsDead="false" />
<RequiredItem items="incendiumfueltank" type="Contained" />
<Affliction identifier="burn" amount="0.05" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" OxygenAvailable="1500.0" Condition="-0.1" comparison="Or">
<Conditional IsDead="false" />
<RequiredItem items="oxygenitetank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" SpeedMultiplier="1.3" setvalue="true" comparison="Or">
<Conditional IsDead="false" />
<RequiredItem items="oxygenitetank" type="Contained" />
</StatusEffect>
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="blunttrauma,gunshotwound,bitewounds,lacerations,bleeding" damagemultiplier="0.7" damagesound="LimbArmor" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictiontypes="burn" damagemultiplier="0.75" damagesound="" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="radiationsickness" damagemultiplier="0.75" damagesound="LimbArmor" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="huskinfection" damagemultiplier="0.5" probabilitymultiplier="0.5" damagesound="LimbArmor" />
</Wearable>
<Holdable slots="RightHand+LeftHand" controlpose="true" holdpos="0,-50" handle1="-10,-20" handle2="10,-20" holdangle="45" msg="ItemMsgPickUpUse" canbeselected="false" canbepicked="true" pickkey="Use" />
<ItemContainer capacity="1" maxstacksize="60" hideitems="true" containedstateindicatorstyle="tank">
<Containable items="oxygensource,weldingtoolfuel" />
<StatusEffect type="OnWearing" target="Contained">
<RequiredItem items="oxygensource" type="Contained" />
<Conditional condition="lt 5.0" />
<Sound file="Content/Items/WarningBeepSlow.ogg" range="500" loop="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained" playsoundonrequireditemfailure="true">
<RequiredItem items="oxygensource" type="Contained" matchonempty="true" />
<Conditional condition="lte 0.0" />
<Sound file="Content/Items/WarningBeep.ogg" range="500" loop="true" />
</StatusEffect>
</ItemContainer>
<aitarget maxsightrange="1500" />
</Item>
</override>
<!-- \Content\Items\Jobgear\Security\securityofficer_talent_items.xml -->
<override>
<Item name="" identifier="slipsuit" variantof="combatdivingsuit" category="Equipment" tags="diving,deepdiving,provocative" allowasextracargo="true" scale="0.5" fireproof="true" description="" allowdroppingonswapwith="diving" impactsoundtag="impact_metal_heavy">
<Price baseprice="630" sold="false" />
<PreferredContainer primary="divingsuitcontainer" spawnprobability="0.0" />
<PreferredContainer primary="wreckdivingsuitcontainer" spawnprobability="0.0" />
<Deconstruct time="30">
<Item identifier="ballisticfiber" amount="2" />
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="rubber" amount="2" />
<Item identifier="rubber" amount="2" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="45" requiresrecipe="true">
<RequiredSkill identifier="mechanical" level="20" />
<RequiredItem identifier="combatdivingsuit" />
<RequiredItem identifier="rubber" />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas2.png" sourcerect="640,0,128,128" origin="0.5,0.5" />
<Sprite name="Slipsuit Item" texture="Content/Items/Jobgear/Security/Slipsuit_Items.png" sourcerect="7,8,157,121" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Slipsuit In Vertical Locker" allowedcontainertags="divingsuitcontainervertical" texture="Content/Items/Jobgear/Security/Slipsuit_Items.png" sourcerect="171,0,77,192" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Slipsuit Behind Window" allowedcontainertags="divingsuitcontainerwindow" texture="Content/Items/Jobgear/Security/slipsuit.png" sourcerect="430,0,80,207" depth="0.55" origin="-0.12,-0.13" />
<ContainedSprite name="Slipsuit In Horizontal Locker" allowedcontainertags="divingsuitcontainerhorizontal" texture="Content/Items/Jobgear/Security/Slipsuit_Items.png" sourcerect="0,193,230,63" depth="0.55" origin="0.6,0.5" />
<Body radius="45" width="34" density="15" />
<Wearable>
<sprite name="Slipsuit Helmet Wearable" texture="Content/Items/Jobgear/headgears.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidelimb="true" hideotherwearables="true" sourcerect="0,520,105,124" origin="0.5,0.4">
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true" allowingameediting="false">
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
</LightComponent>
</sprite>
<sprite name="SlipSuit Torso" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="Torso" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Right Hand" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="RightHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Left Hand" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="LeftHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Right Lower Arm" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="RightArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Left Lower Arm" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="LeftArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Right Upper Arm" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="RightForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Left Upper Arm" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="LeftForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Waist" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="Waist" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Right Thigh" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="RightThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Left Thigh" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="LeftThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Right Leg" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="RightLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Left Leg" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="LeftLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Left Shoe" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="LeftFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="SlipSuit Right Shoe" texture="Content/Items/Jobgear/Security/slipsuit.png" limb="RightFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<StatValue stattype="SwimmingSpeed" value="0.45" />
<StatValue stattype="WalkingSpeed" value="-0.6" />
</Wearable>
</Item>
</override>
<!-- Content\Items\Jobgear\Engineer\engineer_talent_items.xml -->
<override>
<Item name="" identifier="pucs" category="Equipment,Diving" tags="diving,deepdiving,divinggear_wearableindoors,provocative" allowasextracargo="true" scale="0.5" fireproof="true" description="" allowdroppingonswapwith="diving" impactsoundtag="impact_metal_heavy">
<PreferredContainer primary="divingsuitcontainer" spawnprobability="0.0" />
<Price baseprice="670" sold="false">
<Price storeidentifier="merchantoutpost" />
<Price storeidentifier="merchantcity" />
<Price storeidentifier="merchantresearch" multiplier="1.2" />
<Price storeidentifier="merchantmilitary" />
<Price storeidentifier="merchantmine" multiplier="1.1" />
</Price>
<Deconstruct time="45">
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="titaniumaluminiumalloy" amount="2" />
<Item identifier="rubber" amount="2" />
<Item identifier="lead" amount="2" />
<Item identifier="physicorium" amount="2" />
</Deconstruct>
<Fabricate suitablefabricators="fabricator" requiredtime="80" requiresrecipe="true">
<RequiredSkill identifier="electrical" level="60" />
<RequiredItem identifier="combatdivingsuit" />
<RequiredItem identifier="lead" />
<RequiredItem identifier="physicorium" />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas2.png" sourcerect="768,0,128,128" origin="0.5,0.5" />
<Sprite name="PUCS Item" texture="Content/Items/Jobgear/Engineer/PUCS_Items.png" sourcerect="0,0,154,134" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="PUCS In Vertical Locker" allowedcontainertags="divingsuitcontainervertical" texture="Content/Items/Jobgear/Engineer/PUCS_Items.png" sourcerect="164,0,87,190" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="PUCS Behind Window" allowedcontainertags="divingsuitcontainerwindow" texture="Content/Items/Jobgear/Engineer/pucs.png" sourcerect="430,0,80,207" depth="0.55" origin="-0.12,-0.14" />
<ContainedSprite name="PUCS In Horizontal Locker" allowedcontainertags="divingsuitcontainerhorizontal" texture="Content/Items/Jobgear/Engineer/PUCS_Items.png" sourcerect="0,191,225,66" depth="0.55" origin="0.6,0.5" />
<Body radius="45" width="34" density="15" />
<Wearable slots="OuterClothes" msg="ItemMsgEquipSelect" displaycontainedstatus="true" canbeselected="false" canbepicked="true" pickkey="Select">
<sprite name="PUCS Helmet Wearable" texture="Content/Items/Jobgear/headgears.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidelimb="true" hideotherwearables="true" sourcerect="127,520,105,124" origin="0.5,0.35">
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true" allowingameediting="false">
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
</LightComponent>
</sprite>
<sprite name="pucs Torso" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="Torso" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Right Hand" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="RightHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Left Hand" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="LeftHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Right Lower Arm" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="RightArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Left Lower Arm" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="LeftArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Right Upper Arm" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="RightForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Left Upper Arm" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="LeftForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Waist" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="Waist" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Right Thigh" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="RightThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Left Thigh" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="LeftThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Right Leg" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="RightLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Left Leg" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="LeftLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Left Shoe" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="LeftFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="pucs Right Shoe" texture="Content/Items/Jobgear/Engineer/pucs.png" limb="RightFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<StatusEffect type="OnWearing" target="Character" HideFace="true" UseHullOxygen="true" ObstructVision="true" PressureProtection="6000.0" SpeedMultiplier="0.9" PropulsionSpeedMultiplier="1.4" LowPassMultiplier="0.2" setvalue="true" disabledeltatime="true">
<Sound file="Content/Items/Diving/DivingSuitLoop1.ogg" range="500" loop="true" />
<Sound file="Content/Items/Diving/DivingSuitLoop2.ogg" range="500" loop="true" />
</StatusEffect>
<!-- Refill oxygen when the suit is contained. -->
<StatusEffect type="OnContained" target="Contained" Condition="1.0" targetslot="0" interval="1" disabledeltatime="true">
<Conditional Voltage="gt 0.01" targetcontainer="true" targetgrandparent="true" targetitemcomponent="Powered" />
<RequiredItem items="oxygentank" type="Contained" excludebroken="false" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" UseHullOxygen="false" OxygenAvailable="1000.0" Condition="-0.3" comparison="And" targetslot="0">
<Conditional IsDead="false" />
<Conditional HullOxygenPercentage="lt 50" />
<Conditional InWater="false" />
<RequiredItem items="oxygentank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" UseHullOxygen="false" OxygenAvailable="1000.0" Condition="-0.3" comparison="And" targetslot="0">
<Conditional InWater="true" />
<RequiredItem items="oxygentank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" Oxygen="-10.0" Condition="-0.5" interval="1" disabledeltatime="true" targetslot="0">
<Conditional IsDead="false" />
<RequiredItem items="weldingfueltank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" Oxygen="-10.0" Condition="-0.5" interval="1" disabledeltatime="true" targetslot="0">
<Conditional IsDead="false" />
<RequiredItem items="incendiumfueltank" type="Contained" />
<Affliction identifier="burn" amount="0.05" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" UseHullOxygen="false" OxygenAvailable="1500.0" Condition="-0.1" comparison="And" targetslot="0">
<Conditional IsDead="false" />
<Conditional HullOxygenPercentage="lt 50" />
<Conditional InWater="false" />
<RequiredItem items="oxygenitetank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" UseHullOxygen="false" OxygenAvailable="1500.0" Condition="-0.1" comparison="And" targetslot="0">
<Conditional InWater="true" />
<RequiredItem items="oxygenitetank" type="Contained" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Contained,Character" SpeedMultiplier="1.3" setvalue="true" comparison="And" targetslot="0">
<Conditional IsDead="false" />
<Conditional HullOxygenPercentage="lt 50" />
<Conditional InWater="false" />
<RequiredItem items="oxygenitetank" type="Contained" />
</StatusEffect>
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="blunttrauma,gunshotwound,bitewounds,lacerations,bleeding" damagemultiplier="0.7" damagesound="LimbArmor" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictiontypes="burn" damagemultiplier="0.1" damagesound="" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="radiationsickness" damagemultiplier="0.1" damagesound="LimbArmor" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="huskinfection" damagemultiplier="0.5" probabilitymultiplier="0.1" damagesound="LimbArmor" />
<ItemComponent>
<IsActive HullOxygenPercentage="lt 50" />
<StatusEffect type="OnActive" target="Contained,Character" comparison="And">
<RequiredItem items="oxygensource" type="Contained" />
<Conditional condition="lt 5.0" />
<Sound file="Content/Items/WarningBeepSlow.ogg" range="500" loop="true" />
</StatusEffect>
<StatusEffect type="OnActive" target="Contained" playsoundonrequireditemfailure="true">
<RequiredItem items="oxygensource" type="Contained" matchonempty="true" />
<Conditional condition="lte 0.0" />
<Sound file="Content/Items/WarningBeep.ogg" range="500" loop="true" />
</StatusEffect>
</ItemComponent>
</Wearable>
<Holdable slots="RightHand+LeftHand" controlpose="true" holdpos="0,-50" handle1="-10,-20" handle2="10,-20" holdangle="45" msg="ItemMsgPickUpUse" canbeselected="false" canbepicked="true" pickkey="Use" />
<ItemContainer capacity="0" maxstacksize="60" hideitems="true" containedstateindicatorstyle="tank" containedstateindicatorslot="0" autoinject="true">
<Containable items="none,ammobox,deepdiving,smallitem,mediumitem,largeitem" />
<SlotIcon slotindex="0" texture="Content/UI/ContainerIndicators.png" sourcerect="1,93,120,29" origin="0.5,0.45" />
<SlotIcon slotindex="1" texture="Content/UI/ContainerIndicators.png" sourcerect="2,155,120,29" origin="0.5,0.5" />
<SubContainer capacity="1" maxstacksize="60">
<Containable items="oxygensource,weldingtoolfuel" />
</SubContainer>
<SubContainer capacity="1" maxstacksize="60">
<Containable items="chem,medical" />
</SubContainer>
</ItemContainer>
</Item>
</override>
<!-- Content\Items\Diving\divinggear.xml -->
<override>
<Item name="" identifier="respawndivingsuit" category="Diving,Equipment" tags="diving,deepdiving,provocative,respawnsuit" scale="0.5" fireproof="true" description="" allowdroppingonswapwith="diving" impactsoundtag="impact_metal_heavy">
<Deconstruct time="1" />
<InventoryIcon texture="Content/Items/InventoryIconAtlas2.png" sourcerect="896,0,128,128" origin="0.5,0.5" />
<Sprite name="Respawn Diving Suit Item" texture="Content/Items/Diving/RespawnSuit_Items.png" sourcerect="0,0,157,121" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Respawn Diving Suit In Vertical Locker" allowedcontainertags="divingsuitcontainervertical" texture="Content/Items/Diving/RespawnSuit_Items.png" sourcerect="181,0,70,192" depth="0.55" origin="0.5,0.5" />
<ContainedSprite name="Respawn Diving Suit Behind Window" allowedcontainertags="divingsuitcontainerwindow" texture="Content/Items/Containers/containers.png" sourcerect="118,379,77,214" depth="0.55" origin="-0.12,-0.13" />
<ContainedSprite name="Respawn Diving Suit In Horizontal Locker" allowedcontainertags="divingsuitcontainerhorizontal" texture="Content/Items/Diving/RespawnSuit_Items.png" sourcerect="0,193,230,63" depth="0.55" origin="0.6,0.5" />
<Body radius="45" width="34" density="15" />
<Wearable slots="OuterClothes" msg="ItemMsgEquipSelect" displaycontainedstatus="true" canbeselected="false" canbepicked="true" pickkey="Select">
<sprite name="Respawn Diving Suit Helmet Wearable" texture="Content/Items/Jobgear/headgears.png" limb="Head" inheritlimbdepth="true" inheritscale="true" ignorelimbscale="true" scale="0.65" hidelimb="true" hideotherwearables="true" sourcerect="100,409,103,103" origin="0.5,0.5">
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true">
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
<IsActive condition="gt 10.0" />
</LightComponent>
<LightComponent range="200.0" lightcolor="250,224,165,255" powerconsumption="10" IsOn="true" flicker="0.8" flickerspeed="1.0" pulsefrequency="0.1" pulseamount="0.5">
<StatusEffect type="OnWearing" target="This,Character" Voltage="1.0" setvalue="true">
<Conditional IsDead="false" />
</StatusEffect>
<LightTexture texture="%ModDir%/Lights/divinghelmetlight.png" origin="0.05, 0.5" size="1.0,1.0" />
<IsActive condition="lte 10.0" />
</LightComponent>
</sprite>
<sprite name="Respawn Diving Suit Torso" texture="Content/Items/Diving/RespawnSuit.png" limb="Torso" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Right Hand" texture="Content/Items/Diving/RespawnSuit.png" limb="RightHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Left Hand" texture="Content/Items/Diving/RespawnSuit.png" limb="LeftHand" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Right Lower Arm" texture="Content/Items/Diving/RespawnSuit.png" limb="RightArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Left Lower Arm" texture="Content/Items/Diving/RespawnSuit.png" limb="LeftArm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Right Upper Arm" texture="Content/Items/Diving/RespawnSuit.png" limb="RightForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Left Upper Arm" texture="Content/Items/Diving/RespawnSuit.png" limb="LeftForearm" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Waist" texture="Content/Items/Diving/RespawnSuit.png" limb="Waist" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Right Thigh" texture="Content/Items/Diving/RespawnSuit.png" limb="RightThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Left Thigh" texture="Content/Items/Diving/RespawnSuit.png" limb="LeftThigh" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Right Leg" texture="Content/Items/Diving/RespawnSuit.png" limb="RightLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Left Leg" texture="Content/Items/Diving/RespawnSuit.png" limb="LeftLeg" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Left Shoe" texture="Content/Items/Diving/RespawnSuit.png" limb="LeftFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<sprite name="Respawn Diving Suit Right Shoe" texture="Content/Items/Diving/RespawnSuit.png" limb="RightFoot" sound="footstep_armor_heavy" hidelimb="true" inherittexturescale="true" hideotherwearables="true" inheritorigin="true" inheritsourcerect="true" />
<StatusEffect type="OnWearing" target="Character" OxygenAvailable="-100.0" UseHullOxygen="false" />
<StatusEffect type="OnWearing" target="Character" HideFace="true" ObstructVision="true" SpeedMultiplier="0.7" PropulsionSpeedMultiplier="0.5" setvalue="true" disabledeltatime="true" />
<StatusEffect type="OnWearing" target="this,Character" PressureProtection="10000.0" setvalue="true" disabledeltatime="true">
<Conditional condition="gt 0.0" />
</StatusEffect>
<StatusEffect type="OnWearing" target="this,Character" OxygenAvailable="1000.0" Condition="-0.2" comparison="and">
<Conditional IsDead="false" />
<Conditional condition="gt 0.0" />
</StatusEffect>
<StatusEffect type="OnWearing" target="this" comparison="and">
<Conditional condition="lt 5.0" />
<Conditional condition="gt 0.0" />
<Sound file="Content/Items/WarningBeepSlow.ogg" range="500" loop="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="this">
<Conditional condition="lte 0.0" />
<Sound file="Content/Items/WarningBeep.ogg" range="500" loop="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="Character" LowPassMultiplier="0.2" setvalue="true">
<Sound file="Content/Items/Diving/DivingSuitLoop1.ogg" range="500" loop="true" />
<Sound file="Content/Items/Diving/DivingSuitLoop2.ogg" range="500" loop="true" />
</StatusEffect>
<StatusEffect type="OnWearing" target="this,Character">
<Conditional condition="lte 0.0" />
<Sound file="Content/Items/Diving/ITEMS_divingSuitOxygenLeakLoop.ogg" range="200" loop="true" dontmuffle="true" />
</StatusEffect>
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="blunttrauma,gunshotwound,bitewounds,lacerations,bleeding" damagemultiplier="0.55" damagesound="LimbArmor" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictiontypes="burn" damagemultiplier="0.75" damagesound="" deflectprojectiles="true" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="radiationsickness" damagemultiplier="0.75" damagesound="LimbArmor" />
<damagemodifier armorsector="0.0,360.0" afflictionidentifiers="huskinfection" damagemultiplier="0.5" probabilitymultiplier="0.5" damagesound="LimbArmor" />
</Wearable>
<Holdable slots="RightHand+LeftHand" controlpose="true" holdpos="0,-50" handle1="-10,-20" handle2="10,-20" holdangle="45" msg="ItemMsgPickUpUse" canbeselected="false" canbepicked="true" pickkey="Use" />
<aitarget maxsightrange="1500" />
</Item>
</override>
</Items>

BIN
Brynmawr/Brynmawr.sub (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<contentpackage name="Brynmawr" modversion="1.0.3" corepackage="False" steamworkshopid="3250148507" gameversion="1.6.19.1" >
<Submarine file="%ModDir%/Brynmawr.sub" />
</contentpackage>

View File

@@ -1,69 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Override>
<Items>
<Item name="" identifier="wire" aliases="redwire,bluewire,orangewire,greenwire,blackwire,brownwire" category="Electrical" Tags="smallitem,wire" maxstacksize="60" maxstacksizecharacterinventory="60" spritecolor="210,215,218,255" InventoryIconColor="210,215,218,255" canbepicked="true" cargocontaineridentifier="metalcrate" scale="0.5" impactsoundtag="impact_metal_light">
<Price baseprice="10">
<Price storeidentifier="merchantoutpost" />
<Price storeidentifier="merchantcity" sold="false" />
<Price storeidentifier="merchantresearch" multiplier="1.25" />
<Price storeidentifier="merchantmilitary" />
<Price storeidentifier="merchantmine" />
<Price storeidentifier="merchantengineering" multiplier="0.9" />
</Price>
<PreferredContainer primary="engcab" />
<PreferredContainer secondary="wreckengcab,abandonedengcab,outpostengcab,beaconengcab" amount="1" spawnprobability="0.1" />
<Deconstruct time="1" />
<Fabricate suitablefabricators="fabricator" requiredtime="5" amount="5">
<RequiredItem identifier="copper" />
<RequiredItem identifier="rubber" />
</Fabricate>
<InventoryIcon texture="Content/Items/InventoryIconAtlas.png" sourcerect="448,64,64,64" origin="0.5,0.5" />
<Sprite texture="Content/Items/Electricity/signalcomp.png" depth="0.8" sourcerect="169,224,84,32" origin="0.5,0.5" />
<Body radius="14" width="60" density="15" />
<Holdable slots="Any,RightHand,LeftHand" handle1="0,0" msg="ItemMsgPickUpSelect" />
<Wire />
<CustomInterface canbeselected="false" drawhudwhenequipped="true" allowuioverlap="true" hudpriority="20" depth="9">
<GuiFrame relativesize="0.1,0.3" anchor="CenterLeft" style="ItemUI" />
<Button text="White">
<StatusEffect type="OnUse" targettype="This" spritecolor="210,215,218,255" InventoryIconColor="210,215,218,255" setvalue="true" />
</Button>
<Button text="Red">
<StatusEffect type="OnUse" targettype="This" spritecolor="254,23,17,255" InventoryIconColor="254,23,17,255" setvalue="true" />
</Button>
<Button text="Blue">
<StatusEffect type="OnUse" targettype="This" spritecolor="51,121,173,255" InventoryIconColor="51,121,173,255" setvalue="true" />
</Button>
<Button text="Orange">
<StatusEffect type="OnUse" targettype="This" spritecolor="255,140,13,255" InventoryIconColor="255,140,13,255" setvalue="true" />
</Button>
<Button text="Green">
<StatusEffect type="OnUse" targettype="This" spritecolor="56,143,111,255" InventoryIconColor="56,143,111,255" setvalue="true" />
</Button>
<Button text="Black">
<StatusEffect type="OnUse" targettype="This" spritecolor="50,50,50,255" InventoryIconColor="50,50,50,255" setvalue="true" />
</Button>
<Button text="Brown">
<StatusEffect type="OnUse" targettype="This" spritecolor="123,77,62,255" InventoryIconColor="123,77,62,255" setvalue="true" />
</Button>
</CustomInterface>
</Item>
<Item name="" identifier="redwire" category="Electrical" Tags="smallitem,wire" maxstacksize="60" maxstacksizecharacterinventory="60" spritecolor="254,23,17,255" InventoryIconColor="254,23,17,255" canbepicked="true" cargocontaineridentifier="metalcrate" scale="0.5" impactsoundtag="impact_metal_light">
<Deconstruct time="1" />
<InventoryIcon texture="Content/Items/InventoryIconAtlas.png" sourcerect="448,64,64,64" origin="0.5,0.5" />
<Sprite texture="Content/Items/Electricity/signalcomp.png" depth="0.8" sourcerect="169,224,84,32" origin="0.5,0.5" />
<Body radius="14" width="60" density="15" />
<Holdable slots="Any,RightHand,LeftHand" handle1="0,0" msg="ItemMsgPickUpSelect">
<StatusEffect type="OnActive" target="This" Oneshot="true">
<Removeitem />
<SpawnItem identifiers="wire" SpawnPosition="SameInventory" SpawnIfInventoryFull="true" />
</StatusEffect>
</Holdable>
<Wire />
</Item>
<Item identifier="bluewire" variantof="redwire" spritecolor="51,121,173,255" InventoryIconColor="51,121,173,255" />
<Item identifier="orangewire" variantof="redwire" spritecolor="255,140,13,255" InventoryIconColor="255,140,13,255" />
<Item identifier="greenwire" variantof="redwire" spritecolor="56,143,111,255" InventoryIconColor="56,143,111,255" />
<Item identifier="blackwire" variantof="redwire" spritecolor="50,50,50,255" InventoryIconColor="50,50,50,255" />
<Item identifier="brownwire" variantof="redwire" spritecolor="123,77,62,255" InventoryIconColor="123,77,62,255" />
</Items>
</Override>

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<contentpackage name="Colorable Wire" steamworkshopid="3111822905" corepackage="false" modversion="1.0.2" gameversion="1.1.19.3" installtime="1702351670" >
<Item file="%ModDir%/Item.xml" />
</contentpackage>

View File

@@ -6,9 +6,7 @@
if SERVER then
require("Cyka.xpticker")
else
require("Cyka.xpticker")
---@class MyModGlobal
---@field CONFIG {QUICKSTACK_KEYS: Keys, FABRICATOR_KEY: Keys, MAX_BUY: Keys, NESTED_CONTAINERS: boolean, DEBUG_MODE: boolean}
---@field MOD_NAME string
---@field MOD_VERSION string
---@field DumpTable fun(table: table, depth?: number)
@@ -28,7 +26,6 @@ else
QICK_FABRICATOR = Keys.K,
QICK_DECONSTRUCTOR = Keys.J,
QICK_MEDICAL_FABRICATOR = Keys.M,
QICK_TERMINAL = Keys.N,
NESTED_CONTAINERS = true,
DEBUG_MODE = true,
},
@@ -98,93 +95,88 @@ else
LuaUserData.RegisterType("Barotrauma.Items.Components.Repairable")
LuaUserData.RegisterType("Barotrauma.VisualSlot")
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QUICKSTACK_KEYS) then return end
quickstack.quickStackItems(instance)
end, Hook.HookMethodType.After)
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QUICKSTACK_KEYS) then return end
-- quickstack.quickStackItems(instance)
-- end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.STACK_TO_CURSOR) then return end
if not PlayerInput.IsShiftDown() then
quickstack.stackToCursor()
else
quickstack.stackAllToCursor()
end
end, Hook.HookMethodType.After)
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.STACK_TO_CURSOR) then return end
-- if not PlayerInput.IsShiftDown() then
-- quickstack.stackToCursor()
-- else
-- quickstack.stackAllToCursor()
-- end
-- end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.FABRICATOR_KEY) then return end
fabricatorstack.tryStackFabricator(instance)
end, Hook.HookMethodType.After)
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.FABRICATOR_KEY) then return end
-- fabricatorstack.tryStackFabricator(instance)
-- end, Hook.HookMethodType.After)
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.FIX) then return end
-- hotkeyrepair.tryRepair()
-- end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.MAX_BUY) then return end
quickbuy.tryBuy()
end, Hook.HookMethodType.After)
local throttle = 0.1
local throttleTimer = 0
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if PlayerInput.Mouse4ButtonClicked() then
cursormacroer.setTargetInventory()
end
if not PlayerInput.IsAltDown() then return end
if Timer.GetTime() < throttleTimer then return end
throttleTimer = Timer.GetTime() + throttle
-- We can not use shift because holding shift means we're moving half a stack
-- Fuck me sideways
-- if not PlayerInput.IsShiftDown() then return end
-- if not PlayerInput.PrimaryMouseButtonClicked() then return end
cursormacroer.tryStackCursorItem()
end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.UNLOAD) then return end
quickunload.tryUnloadCursorItem()
end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.RELOAD) then return end
quickreload.tryReloadCursorItem(PlayerInput.IsShiftDown())
end, Hook.HookMethodType.After)
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)i
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.LOOT) then return end
-- quickloot.tryLoot()
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.MAX_BUY) then return end
-- quickbuy.tryBuy()
-- end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.SONAR) then return end
sonarpinger.tryPing()
end, Hook.HookMethodType.After)
-- local throttle = 0.1
-- local throttleTimer = 0
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if PlayerInput.Mouse4ButtonClicked() then
-- cursormacroer.setTargetInventory()
-- end
-- if not PlayerInput.IsAltDown() then return end
-- if Timer.GetTime() < throttleTimer then return end
-- throttleTimer = Timer.GetTime() + throttle
-- -- We can not use shift because holding shift means we're moving half a stack
-- -- Fuck me sideways
-- -- if not PlayerInput.IsShiftDown() then return end
-- -- if not PlayerInput.PrimaryMouseButtonClicked() then return end
-- cursormacroer.tryStackCursorItem()
-- end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.AOEPICKUP) then return end
aoepickup.tryAoePickup()
end, Hook.HookMethodType.After)
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.UNLOAD) then return end
-- quickunload.tryUnloadCursorItem()
-- end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_FABRICATOR) then return end
quickaccess.tryAccessFabricator(PlayerInput.IsShiftDown())
end, Hook.HookMethodType.After)
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.RELOAD) then return end
-- quickreload.tryReloadCursorItem(PlayerInput.IsShiftDown())
-- end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_DECONSTRUCTOR) then return end
quickaccess.tryAccessDeconstructor(PlayerInput.IsShiftDown())
end, Hook.HookMethodType.After)
-- -- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- -- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.LOOT) then return end
-- -- quickloot.tryLoot()
-- -- end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_MEDICAL_FABRICATOR) then return end
quickaccess.tryAccessMedicalFabricator(PlayerInput.IsShiftDown())
end, Hook.HookMethodType.After)
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.SONAR) then return end
-- sonarpinger.tryPing()
-- end, Hook.HookMethodType.After)
Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_TERMINAL) then return end
quickaccess.tryAccessTerminal(PlayerInput.IsShiftDown())
end, Hook.HookMethodType.After)
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.AOEPICKUP) then return end
-- aoepickup.tryAoePickup()
-- end, Hook.HookMethodType.After)
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_FABRICATOR) then return end
-- quickaccess.tryAccessFabricator(PlayerInput.IsShiftDown())
-- end, Hook.HookMethodType.After)
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_DECONSTRUCTOR) then return end
-- quickaccess.tryAccessDeconstructor(PlayerInput.IsShiftDown())
-- end, Hook.HookMethodType.After)
-- Hook.Patch("Barotrauma.Character", "ControlLocalPlayer", function(instance, ptable)
-- if not PlayerInput.KeyHit(MyModGlobal.CONFIG.QICK_MEDICAL_FABRICATOR) then return end
-- quickaccess.tryAccessMedicalFabricator(PlayerInput.IsShiftDown())
-- end, Hook.HookMethodType.After)
end

View File

@@ -4,7 +4,7 @@ if not CLIENT then return end
local dump = require("Cyka.dump")
local quickstack = require("Cyka.quickstack")
---@class ItemLocation
---@class ItemLocationDistance
---@field item Barotrauma.Item
---@field distance number

View File

@@ -60,7 +60,7 @@ local function tryStackCursorItem()
end
itemTree = quickstack.sortItemTree(itemTree)
local itemsToMove = {}
local options = {}
local now = Timer.GetTime()
for _, slot in ipairs(slots) do
local runAfter = slotThrottle[slot] or 0
@@ -68,7 +68,7 @@ local function tryStackCursorItem()
goto continue
end
-- MyModGlobal.debugPrint(string.format("Enqueuing slot: %s, before: %d", tostring(slot), #itemsToMove))
utils.enqueueSlot(slot.slot, itemsToMove)
options = utils.enqueueSlot(slot.inventory.slots[slot.slotIndex1], options)
-- MyModGlobal.debugPrint(string.format("Enqueuing slot: %s, after: %d", tostring(slot), #itemsToMove))
slotThrottle[slot] = now + 1
::continue::
@@ -79,7 +79,7 @@ local function tryStackCursorItem()
-- -- MyModGlobal.debugPrint(string.format("Enqueued %d items from the inventory slot", #itemsToMove))
-- MyModGlobal.DumpTable(itemTree)
quickstack.tryMoveItems(itemsToMove, itemTree, true)
quickstack.tryMoveItems(options.itemQueue, itemTree, true)
-- local errors = quickstack.tryMoveItems(itemsToMove, itemTree, true)
-- for _, error in ipairs(errors) do
-- MyModGlobal.debugPrint(string.format("Error moving item: %s", error))
@@ -101,14 +101,7 @@ local function setTargetInventory()
-- If we get multiple we'll use the first valid one
-- Although everything is valid to us...
for _, slot in ipairs(slots) do
local item
local items = slot.slot.items
if not items or #items == 0 then
print(string.format("Slot is empty, setting target inventory to %s", tostring(slot.inventory)))
targetInventory = slot.inventory
goto continue
end
item = items[1]
local item = slot.item
if not item then
print(string.format("Item in slot is nil, setting target inventory to %s", tostring(slot.inventory)))
targetInventory = slot.inventory

View File

@@ -3,7 +3,7 @@ if not CLIENT then return end
local utils = require("Cyka.utils")
local dump = require("Cyka.dump")
---@return {item: Barotrauma.Item, fabricator: Barotrauma.FabricatorComponent}, string?
---@return {item: Barotrauma.Item, fabricator: Barotrauma.Items.Components.Fabricator}?, string?
local function getOpenFabricator()
-- Get the controlled character
local controlledCharacter = Character.Controlled
@@ -29,8 +29,8 @@ end
---@field targetItem {identifier: string, name: string, amount: number}
---@field requiredItems {amount: number, minCondition: number, maxCondition: number, prefabs: string[]}[]
---@param fabricator Barotrauma.FabricatorComponent
---@return RecipeInfo, string?
---@param fabricator Barotrauma.Items.Components.Fabricator
---@return RecipeInfo?, string?
local function getSelectedRecipeRequirements(fabricator)
-- local openFabricator, err = getOpenFabricator()
-- if err then return nil, err end
@@ -73,7 +73,7 @@ local function tryStackFabricator(character)
MyModGlobal.debugPrint("Character inventory is nil.")
return
end
---@type Barotrauma.ItemInventory.Slot
---@type Barotrauma.Inventory.ItemSlot
local bagSlot = inventory.slots[MyModGlobal.BAG_SLOT]
if not bagSlot then
MyModGlobal.debugPrint("Bag slot not found.")
@@ -91,14 +91,14 @@ local function tryStackFabricator(character)
end
local fabricator, err = getOpenFabricator()
if err then
if err or not fabricator then
print(string.format("Error getting open fabricator: %s", err))
return
end
local recipe
recipe, err = getSelectedRecipeRequirements(fabricator.fabricator)
if err then
if err or not recipe then
print(string.format("Error getting selected recipe requirements: %s", err))
return
end
@@ -147,7 +147,10 @@ local function tryStackFabricator(character)
-- dump(itemsOnSubmarine)
-- MyModGlobal.DumpTable(toGet)
local items, _ = utils.enqueueAllOwnedItems({}, filter)
local items, _ = utils.enqueueAllOwnedItems({
recurse = true,
itemPredicate = filter
})
-- if err then
-- print(string.format("Error enqueueing all owned items: %s", err))
-- return
@@ -168,7 +171,7 @@ local function tryStackFabricator(character)
local previous = nil
for _, item in ipairs(items) do
if previous ~= item.Prefab.Identifier then slot = slot + 1 end
local moved = inputInventory.TryPutItem(item, slot, false, true, nil)
local moved = inputInventory.TryPutItem(item, slot, false, true, Character.Controlled, true)
if not moved then
MyModGlobal.debugPrint(string.format("Failed to move %s", item.Prefab.Identifier.Value))
end

View File

@@ -5,7 +5,7 @@ local dump = require "Cyka.dump"
-- TODO: Also cook terminal
-- terminal d:28 t:logic,smallitem c:Terminal, Holdable, ConnectionPanel,
local machines = "fabricator,deconstructor,medicalfabricator,navterminal"
local machines = "fabricator,deconstructor,medicalfabricator"
Hook.Patch("Cyka", "Barotrauma.Character", "CanInteractWith",
{ "Barotrauma.Item", "System.Single&", "System.Boolean" },
function(_, ptable)
@@ -20,7 +20,7 @@ Hook.Patch("Cyka", "Barotrauma.Character", "CanInteractWith",
local cachedFabricator = nil
local cachedDeconstructor = nil
local cachedMedicalFabricator = nil
local cachedTerminal = nil
local function select(item)
MyModGlobal.debugPrint("Selecting " .. tostring(item))
item.Prefab.GrabWhenSelected = false
@@ -109,24 +109,8 @@ local function tryAccessMedicalFabricator(force)
select(medicalFabricator)
end
local function tryAccessTerminal(force)
local terminal = cachedTerminal
if not terminal or force then
terminal = findByComponent("navterminal", "Steering")
if not terminal then
MyModGlobal.debugPrint("No terminal found")
return
end
cachedTerminal = terminal
end
MyModGlobal.debugPrint("Selecting terminal")
select(terminal)
end
return {
tryAccessFabricator = tryAccessFabricator,
tryAccessDeconstructor = tryAccessDeconstructor,
tryAccessMedicalFabricator = tryAccessMedicalFabricator,
tryAccessTerminal = tryAccessTerminal,
}

View File

@@ -4,12 +4,12 @@ if not CLIENT then return end
---@return Barotrauma.Location.StoreInfo[], string?
local function getCurrentStore()
if not Game or not Game.GameSession or not Game.GameSession.Campaign then
return nil, "No game session found"
return {}, "No game session found"
end
local map = Game.GameSession.Campaign.Map
if not map or not map.CurrentLocation or not map.CurrentLocation.Stores then
return nil, "No map found"
return {}, "No map found"
end
local location = map.CurrentLocation
@@ -17,13 +17,13 @@ local function getCurrentStore()
-- Otherwise, determine which store is active by checking the cargo manager
local cargoManager = Game.GameSession.Campaign.CargoManager
if not cargoManager then
return nil, "No cargo manager found"
return {}, "No cargo manager found"
end
-- Find which store has items in the cart
local stores = {}
for _, store in pairs(location.Stores) do
if #cargoManager:GetBuyCrateItems(store) > 0 then
if #cargoManager:GetBuyCrateItems() > 0 then
stores[#stores + 1] = store
end
end
@@ -47,7 +47,7 @@ local function tryBuy()
for _, store in ipairs(stores) do
local toAdd = {}
-- Get items available at the store
local items = cargoManager:GetBuyCrateItems(store)
local items = cargoManager:GetBuyCrateItems()
for item in items do
-- We have already added this many of item
toAdd[item.ItemPrefab.Identifier.Value] = {
@@ -55,6 +55,7 @@ local function tryBuy()
prefab = item.ItemPrefab -- Store the ItemPrefab object
}
end
---@diagnostic disable-next-line: undefined-field
for item in store.Stock do
-- So if we add the total amount available
-- We get the amount we have to add to buy entire stock
@@ -68,6 +69,7 @@ local function tryBuy()
if info.quantity > 0 then
MyModGlobal.debugPrint(string.format("Adding %d of %s to the buy crate", info.quantity, idValue))
-- Use the stored ItemPrefab object, not the string identifier
---@diagnostic disable-next-line: undefined-field
cargoManager:ModifyItemQuantityInBuyCrate(store.Identifier, info.prefab, info.quantity)
end
end

View File

@@ -16,14 +16,13 @@ local LOAD_MAP = require("Cyka.quickreload_loadmap")
---@param inventory Barotrauma.ItemInventory
---@return InventorySlot[]
local function getSlots(inventory)
---@type InventorySlot[]
local slots = {}
---@type Barotrauma.Inventory.ItemSlot[]
local inventorySlots = inventory.slots
for i, inventorySlot in ipairs(inventorySlots) do
slots[#slots + 1] = {
inventory = inventory,
slotIndex = i - 1,
slot = inventorySlot
}
for i, _ in ipairs(inventorySlots) do
local invSlot = MyModGlobal.InventorySlot.new(inventory, i)
slots[#slots + 1] = invSlot
end
return slots
end
@@ -36,7 +35,11 @@ local function getItemsPerSlot(slots)
---@type table<InventorySlot, Barotrauma.Item[]>
local movableBySlot = {}
-- Get all the items and then we will sort them by condition and shit
utils.enqueueAllPlayerItems({}, function(ititem, itemRef)
utils.enqueuePlayerItems({
recurse = true,
loadRefs = true,
itemPredicate = function(ititem, itemRef)
MyModGlobal.debugPrint(string.format("Checking item: %s", tostring(ititem)))
-- We don't want to take oxygen out of our diving suit to load our plasma cutter
-- Most loadable items have 1 capacity
-- But some have 2 or 3 (coil speargun)
@@ -48,7 +51,7 @@ local function getItemsPerSlot(slots)
-- dump(slots)
-- MyModGlobal.debugPrint(ititem.Prefab.Identifier.Value)
for _, inventorySlot in ipairs(slots) do
local canMove = inventorySlot.inventory.CanBePutInSlot(ititem, inventorySlot.slotIndex)
local canMove = inventorySlot.inventory.CanBePutInSlot(ititem, inventorySlot.slotIndex1 - 1)
-- MyModGlobal.debugPrint(string.format("Can move to slot %d: %s", inventorySlot.slotIndex, tostring(canMove)))
if canMove then
movableBySlot[inventorySlot] = movableBySlot[inventorySlot] or {}
@@ -57,7 +60,8 @@ local function getItemsPerSlot(slots)
end
end
return false
end, true)
end
})
return movableBySlot
end
@@ -93,11 +97,11 @@ local function printPermissibleItems(movableBySlot)
end
---@param slot InventorySlot
---@param invSlot InventorySlot
---@param preferMinCondition boolean
local function tryReloadSlot(slot, preferMinCondition)
local function tryReloadSlot(invSlot, preferMinCondition)
---@type Barotrauma.Item
local item = slot.slot.items[1]
local item = invSlot.item
if not item then
MyModGlobal.debugPrint("No item in slot")
return
@@ -115,13 +119,10 @@ local function tryReloadSlot(slot, preferMinCondition)
MyModGlobal.debugPrint("No slots")
return
end
-- MyModGlobal.debugPrint("Slots:")
-- dump(slots)
---@type table<InventorySlot, Barotrauma.Item[]>
local movableBySlot = getItemsPerSlot(slots)
-- MyModGlobal.debugPrint("Movable by slot:")
-- dump(movableBySlot)
local permissibleItems = LOAD_MAP[tostring(item.Prefab.Identifier.Value)]
if not permissibleItems then
@@ -156,22 +157,19 @@ local function tryReloadSlot(slot, preferMinCondition)
-- We loaded as many as we have been allowed to
-- And we do this check up front because an item may already
-- Be partially loaded
local nowHave = #inventorySlot.slot.items
local nowHave = inventorySlot.stackSize
if nowHave >= permissible then
-- MyModGlobal.debugPrint(string.format(
-- "Finished processing item: %s. Current slot has reached the permissible limit of %d items.",
-- tostring(ititem.Prefab.Identifier.Value), permissible))
MyModGlobal.debugPrint(string.format(
"Finished processing item: %s. Current slot has reached the permissible limit of %d items.",
tostring(ititem.Prefab.Identifier.Value), permissible))
break
end
local moved = inventorySlot.inventory.TryPutItem(ititem, inventorySlot.slotIndex, false, true, nil)
-- When the slot is full no more will be able to be moved
-- And tat that point we're done with that slot
if not moved then break end
if not inventorySlot:canFit(ititem.Prefab) then
break
end
utils.enqueueMove(ititem, inventorySlot)
numMoved = numMoved + 1
-- else
-- MyModGlobal.debugPrint(string.format("Not permissible: %s", tostring(ititem.Prefab.Identifier.Value)))
end
end
end

View File

@@ -12,25 +12,17 @@ local oxygen = { oxygentank = 1 }
local LOAD_MAP = {
anechoicdivingsuit = oxygen,
autocpr = battery,
bvm = oxygen,
defibrillator = battery,
divingmask = oxygen,
divingsuit = oxygen,
exosuit = { fuelrod = 1, oxygentank = 1 },
flashlight = battery,
handcannon = { handcannonround = 999 },
handheldsonar = battery,
harpooncoilrifle = harpoonGun,
harpoongun = harpoonGun,
healthscanner = battery,
plasmacutter = oxygen,
portablepump = battery,
revolver = { revolverround = 999 },
underwaterscooter = battery,
weldingtool = { weldingfueltank = 1 },
flamerunique = { weldingfueltank = 1 },
flamer = { weldingfueltank = 1 },
sprayer = { ethanol = 1 },
}
return LOAD_MAP

View File

@@ -5,20 +5,14 @@ if not CLIENT then return end
local utils = require("Cyka.utils")
local dump = require("Cyka.dump")
---@class ItemLocation
---@field inventory Barotrauma.ItemInventory
---@field slotIndex number
---@field depth number
---@field maxFits number
-- The resulting item tree is a table where the key is an ID of an item
-- And the value is an object that represents where that item is located
-- In our inventory
-- Special case are empty slots where any item fits
---@param inventory Barotrauma.ItemInventory
---@param itemTree table<string, ItemLocation[]>
---@param depth number
---@return table<string, ItemLocation[]>
---@param inventory Barotrauma.Inventory
---@param itemTree? table<string, InventorySlot[]>
---@param depth? number
---@return table<string, InventorySlot[]>
local function buildItemTree(inventory, itemTree, depth)
itemTree = itemTree or {}
depth = depth or 0
@@ -29,38 +23,24 @@ local function buildItemTree(inventory, itemTree, depth)
-- One slot can have one item but multiple of it
-- The number of an item in a slot is #slot.items
for slotIndex, slot in ipairs(inventory.slots) do
-- MyModGlobal.debugPrint(string.format("Building item tree for inventory at slot index: %d", slotIndex))
-- MyModGlobal.debugPrint(string.format("Slot %d has %d items", slotIndex, #slot.items))
if #slot.items == 0 then
for slotIndex, _ in ipairs(inventory.slots) do
local invSlot = MyModGlobal.InventorySlot.new(inventory, slotIndex):with({ depth = depth })
if not invSlot.item then
-- MyModGlobal.debugPrint(string.format("Slot %d is empty, adding to itemTree as 'empty'", slotIndex))
itemTree['empty'] = itemTree['empty'] or {}
itemTree['empty'][#itemTree['empty'] + 1] = {
inventory = inventory,
slotIndex = slotIndex - 1,
maxFits = 60,
depth = depth
}
itemTree['empty'][#itemTree['empty'] + 1] = invSlot
-- MyModGlobal.debugPrint(string.format("Added empty slot to itemTree at index: %d", slotIndex))
else
---@type Barotrauma.Item
local item = slot.items[1]
local identifier = item.Prefab.Identifier.Value
-- MyModGlobal.debugPrint(string.format("Found item: %s with identifier: %s", item.Name, identifier))
local identifier = invSlot.item.Prefab.Identifier.Value
itemTree[identifier] = itemTree[identifier] or {}
-- We DO want even slots with maxFits = 0
-- Because that indicates that we DO HAVE the item
-- At all
-- And based on that we decide to move it
itemTree[identifier][#itemTree[identifier] + 1] = {
inventory = inventory,
slotIndex = slotIndex - 1,
maxFits = slot.HowManyCanBePut(item.Prefab),
depth = depth
}
itemTree[identifier][#itemTree[identifier] + 1] = invSlot
-- MyModGlobal.debugPrint(string.format("Added item to itemTree under identifier: %s", identifier))
local tags = item.Prefab.Tags
local tags = invSlot.item.Prefab.Tags
local shouldSuss = false
for tag in tags do
if tag.value:find("container") then
@@ -71,7 +51,7 @@ local function buildItemTree(inventory, itemTree, depth)
if shouldSuss then
-- MyModGlobal.debugPrint(string.format("Searching inside %s for nested containers", item.Name))
buildItemTree(item.OwnInventory, itemTree, depth + 1)
buildItemTree(invSlot.item.OwnInventory, itemTree, depth + 1)
end
end
end
@@ -81,19 +61,20 @@ local function buildItemTree(inventory, itemTree, depth)
end
-- We would like to fill larger stacks first
---@param itemTree table<string, ItemLocation[]>
---@return table<string, ItemLocation[]>
---@param itemTree table<string, InventorySlot[]>
---@return table<string, InventorySlot[]>
local function sortItemTree(itemTree)
for _, item in pairs(itemTree) do
table.sort(item, function(a, b)
---@cast a ItemLocation
---@cast b ItemLocation
---@cast a InventorySlot
---@cast b InventorySlot
local maxfitsA, maxfitsB = a:maxFits(), b:maxFits()
if a.depth ~= b.depth then
return a.depth < b.depth
elseif a.maxFits ~= b.maxFits then
return a.maxFits > b.maxFits
elseif maxfitsA ~= maxfitsB then
return maxfitsA > maxfitsB
else
return a.slotIndex < b.slotIndex
return a.slotIndex0 < b.slotIndex0
end
end)
end
@@ -102,16 +83,16 @@ local function sortItemTree(itemTree)
end
---@param item Barotrauma.Item
---@param itemTree table<string, ItemLocation[]>
---@param itemTree table<string, InventorySlot[]>
---@param force boolean
---@return string
---@return string?
local function tryMoveItem(item, itemTree, force)
-- MyModGlobal.debugPrint(string.format("Attempting to move item: %s", item.Prefab.Identifier.Value))
force = force or false
local location = itemTree[item.Prefab.Identifier.Value]
if not location and not force then
-- MyModGlobal.debugPrint("No locations for item, not stacking (not forced)")
return nil, "No locations for item, not stacking (not forced)"
return "No locations for item, not stacking (not forced)"
end
-- MyModGlobal.debugPrint(string.format("Attempting to move item: %s", item.Prefab.Identifier.Value))
-- MyModGlobal.DumpTable(location)
@@ -121,22 +102,13 @@ local function tryMoveItem(item, itemTree, force)
-- First try to move to existing stacks
for _, itemLocation in ipairs(location) do
-- We cannot stack items with decreased condition
local canBePut = itemLocation.inventory.CanBePutInSlot(item.Prefab, itemLocation.slotIndex, item.Condition)
-- MyModGlobal.debugPrint(string.format("Can be put in slot %d: %s", itemLocation.slotIndex, tostring(canBePut)))
if itemLocation.maxFits > 0 and canBePut then
moved = moved or
itemLocation.inventory.TryPutItem(item, itemLocation.slotIndex, false, true, nil)
if moved then
itemLocation.maxFits = itemLocation.inventory.HowManyCanBePut(item.Prefab, itemLocation.slotIndex)
local canFit = itemLocation:canFit(item.Prefab)
if canFit then
-- There's no more guess work, if we call move then we must be sure we can move
utils.enqueueMove(item, itemLocation)
moved = true
break
end
-- if moved then
-- MyModGlobal.debugPrint(string.format("Moved item to existing stack at slot index: %d", itemLocation .slotIndex))
-- else
-- MyModGlobal.debugPrint(string.format("Failed to move item to existing stack at slot index: %d", itemLocation .slotIndex))
-- end
end
end
end
@@ -148,28 +120,17 @@ local function tryMoveItem(item, itemTree, force)
return "No empty slots found"
end
for _, itemLocation in ipairs(itemTree['empty']) do
local maxFits = itemLocation.maxFits
-- These empty slots are not guranteed to be empty, ironically
-- After we insert an item into one it's no longer empty
-- But it still is in the empty table
-- So we want to make sure we can insert our item
-- Into the maybe empty slots
itemLocation.maxFits = itemLocation.inventory.HowManyCanBePut(item.Prefab, itemLocation.slotIndex)
if maxFits > 0 then
-- MyModGlobal.debugPrint(string.format("Trying to move item to empty slot at index: %d", itemLocation.slotIndex))
moved = moved or
itemLocation.inventory.TryPutItem(item, itemLocation.slotIndex, true, false, nil)
if moved then
itemLocation.maxFits = itemLocation.inventory.HowManyCanBePut(item.Prefab, itemLocation.slotIndex)
local canFit = itemLocation:canFit(item.Prefab)
if canFit then
utils.enqueueMove(item, itemLocation)
moved = true
break
end
-- if moved then
-- MyModGlobal.debugPrint(string.format("Moved item to empty slot at index: %d", itemLocation.slotIndex))
-- else
-- MyModGlobal.debugPrint(string.format("Failed to move item to empty slot at index: %d", itemLocation.slotIndex))
-- end
end
end
end
@@ -183,8 +144,8 @@ local function tryMoveItem(item, itemTree, force)
end
---@param items Barotrauma.Item[]
---@param itemTree table<string, ItemLocation[]>
---@param force boolean
---@param itemTree table<string, InventorySlot[]>
---@param force? boolean
---@return string[]
local function tryMoveItems(items, itemTree, force)
force = force or false
@@ -200,7 +161,7 @@ local function tryMoveItems(items, itemTree, force)
end
---@param character Barotrauma.Character
---@return table<string, ItemLocation[]>, string
---@return table<string, InventorySlot[]>, string?
local function tryBuildCharacterItemTree(character)
local itemTree = {}
-- MyModGlobal.debugPrint(string.format("Preparing to stack items into the bag..."))
@@ -265,7 +226,7 @@ end
-- Function to quickly stack items from inventory to containers
-- 6 and 7 are hands
-- 9..18 are main slots
local inventorySlotsToStack = { 6, 7, }
-- local inventorySlotsToStack = { 6, 7, }
-- local inventorySlotsToStack = { 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 }
---@param character Barotrauma.Character
local function quickStackItems(character)
@@ -274,12 +235,10 @@ local function quickStackItems(character)
-- Then stack all items from the parent inventory into the mouseover container
local mouseover = utils.getFirstSlotUnderCursor()
if mouseover then
---@type Barotrauma.Item
local slotItem = mouseover.slot.items[1]
local itemInventory = slotItem.OwnInventory
local itemInventory = mouseover.item.OwnInventory
if itemInventory then
MyModGlobal.debugPrint(string.format("Item inventory found: %s", tostring(itemInventory)))
local err = stackToContainer(slotItem)
local err = stackToContainer(mouseover.item)
if err then
MyModGlobal.debugPrint(string.format("Error stacking items to container: %s", err))
end
@@ -339,6 +298,7 @@ local function quickStackItems(character)
-- end
-- end
-- TODO: enqueueOpenContainers?
local openContainers = utils.getOpenContainers()
for _, container in ipairs(openContainers) do
local inventories = container.OwnInventories
@@ -365,48 +325,38 @@ local function stackToCursor()
return
end
local item, slot
local function predicate(ititem)
---@cast ititem Barotrauma.Item
if ititem.Prefab.Identifier.Value == item.Prefab.Identifier.Value then
if item == ititem then return false end
-- We are moving items in the predicate because we expect to only
-- Select a small subset of all items
-- And it is much easier to let the game decide when we can not move
-- Any more items (via return value of TryPutItem)
-- And we then know that we can safely stop
-- UPDATE: OK well that was a stupid idea, it returns an error for other shit as well
-- What other shit? Wish I knew
-- So we'll use HowManyCanBePut instead...
local moved = slot.inventory.TryPutItem(ititem, slot.slotIndex - 1, false, true, nil)
if not moved then
MyModGlobal.debugPrint(string.format("Failed to move item %s to slot %d", ititem.Name, slot
.slotIndex - 1))
-- return false, true
end
local maxFits = slot.inventory.HowManyCanBePut(ititem.Prefab, slot.slotIndex - 1)
if maxFits <= 0 then
MyModGlobal.debugPrint(string.format("Item %s has no more fits in slot %d", ititem.Name, slot
.slotIndex - 1))
return false, true
for _, invSlot in ipairs(slots) do
if invSlot:canFit(ititem.Prefab) then
utils.enqueueMove(ititem, invSlot)
end
end
local haveSpace = false
for _, invSlot in ipairs(slots) do
-- Empty slot or has space for more items
if (invSlot.stackSize < invSlot.maxStackSize) or not invSlot.item then
haveSpace = true
break
end
end
if not haveSpace then return false, true end
end
---@type EnqueueOptions
local options = {
itemPredicate = predicate,
recurse = true,
}
-- We gotta do a little juggling...
for _, sslot in ipairs(slots) do
slot = sslot
local items
if not slot.slot.items or #slot.slot.items == 0 then
for _, invSlot in ipairs(slots) do
if not invSlot.item then
MyModGlobal.debugPrint("No items in slot")
goto continue
end
item = slot.slot.items[1]
MyModGlobal.debugPrint(string.format("Stacking all player items to %s", item.Prefab.Identifier.Value))
items = {}
utils.enqueueAllPlayerItems(items, predicate)
utils.enqueueOpenContainers(items, predicate)
MyModGlobal.debugPrint(string.format("Stacking all player items to %s", invSlot.item.Prefab.Identifier.Value))
utils.enqueuePlayerItems(options)
utils.enqueueOpenContainers(options)
::continue::
end
end
@@ -418,44 +368,38 @@ local function stackAllToCursor()
return
end
for _, slot in ipairs(slots) do
local item, predicate
if not slot.slot.items or #slot.slot.items == 0 then
local function predicate(ititem)
for _, invSlot in ipairs(slots) do
if invSlot:canFit(ititem.Prefab) then
utils.enqueueMove(ititem, invSlot)
end
end
local haveSpace = false
for _, invSlot in ipairs(slots) do
-- Empty slot or has space for more items
if (invSlot.stackSize < invSlot.maxStackSize) or not invSlot.item then
haveSpace = true
break
end
end
if not haveSpace then return false, true end
end
---@type EnqueueOptions
local options = {
itemPredicate = predicate,
recurse = true,
}
for _, invSlot in ipairs(slots) do
if not invSlot.item then
MyModGlobal.debugPrint("No items in slot")
goto continue
end
item = slot.slot.items[1]
MyModGlobal.debugPrint(string.format("Stacking all items to %s", item.Prefab.Identifier.Value))
predicate = function(ititem)
if ititem.Prefab.Identifier.Value == item.Prefab.Identifier.Value then
if item == ititem then return false end
-- We are moving items in the predicate because we expect to only
-- Select a small subset of all items
-- And it is much easier to let the game decide when we can not move
-- Any more items (via return value of TryPutItem)
-- And we then know that we can safely stop
-- UPDATE: OK well that was a stupid idea, it returns an error for other shit as well
-- What other shit? Wish I knew
-- So we'll use HowManyCanBePut instead...
local moved = slot.inventory.TryPutItem(ititem, slot.slotIndex - 1, false, true, nil)
if not moved then
MyModGlobal.debugPrint(string.format("Failed to move item %s to slot %d", ititem.Name, slot
.slotIndex - 1))
-- return false, true
end
local maxFits = slot.inventory.HowManyCanBePut(ititem.Prefab, slot.slotIndex - 1)
if maxFits <= 0 then
MyModGlobal.debugPrint(string.format("Item %s has no more fits in slot %d", ititem.Name, slot
.slotIndex - 1))
return false, true
end
end
end
utils.enqueueAllSubmarineItems({}, predicate)
utils.enqueueAllPlayerItems({}, predicate)
MyModGlobal.debugPrint(string.format("Stacking all items to %s", invSlot.item.Prefab.Identifier.Value))
utils.enqueueSubmarineItems(options)
utils.enqueuePlayerItems(options)
::continue::
end
end

View File

@@ -2,106 +2,49 @@
if not CLIENT then return end
local utils = require("Cyka.utils")
local dump = require("Cyka.dump")
---@param inventory Barotrauma.ItemInventory
---@param predicate fun(slot: InventorySlot): boolean
---@return InventorySlot[], string?
local function findSlotsThat(inventory, predicate)
local slots = {}
for i, slot in ipairs(inventory.slots) do
local inventorySlot = {
slot = slot,
inventory = inventory,
slotIndex = i - 1
}
if predicate(inventorySlot) then
slots[#slots + 1] = inventorySlot
end
end
return slots
end
---@param slot InventorySlot
local function tryUnloadSlot(slot)
---@type Barotrauma.Item
local item = slot.slot.items[1]
if not item then
MyModGlobal.debugPrint("No item in slot")
return
end
local inventory = item.OwnInventory
if not inventory then
MyModGlobal.debugPrint("Item has no own inventory")
return
end
local toUnload = {}
---@param invSlot InventorySlot
local function tryUnloadSlot(invSlot)
---@type table<Barotrauma.ItemPrefab, boolean>
local toUnloadByPrefab = {}
local inventorySlots = inventory.slots
for _, inventorySlot in ipairs(inventorySlots) do
for _, inventoryItem in ipairs(inventorySlot.items) do
toUnload[#toUnload + 1] = inventoryItem
-- This will only serve as O(1) lookup
toUnloadByPrefab[inventoryItem.Prefab] = true
end
local itemInventory = invSlot.item.OwnInventory
if not itemInventory then
MyModGlobal.debugPrint("No inventory for item")
return
end
MyModGlobal.debugPrint(string.format("Enqueuing inventory %s", tostring(itemInventory)))
local toUnload = utils.enqueueInventory(itemInventory, {
itemPredicate = function(item)
toUnloadByPrefab[item.Prefab] = true
return true
end,
recurse = false,
})
MyModGlobal.debugPrint(string.format("Moving %d items to unload %s", #toUnload.itemQueue, tostring(invSlot.item)))
-- Where can we put our toUnload items?
local nearbySlots = findSlotsThat(slot.inventory, function(islot)
local isEmpty = #islot.slot.items == 0
local nearbySlots = invSlot:getNearbySlots(function(islot)
local isEmpty = not islot.item
if isEmpty then return true end
for _, prefab in ipairs(toUnloadByPrefab) do
local canAccept = islot.inventory.CanBePutInSlot(prefab, islot.slotIndex)
if canAccept then return true end
for prefab, _ in pairs(toUnloadByPrefab) do
local canFit = islot:canFit(prefab)
if canFit then return true end
end
return false
end)
-- print("Before sorting:")
-- dump(nearbySlots)
MyModGlobal.debugPrint(string.format("Into %d nearby slots", #nearbySlots))
-- Some inventories don't have slots per row, like the player inventory
local slotsPerRow = 900
local ok, err = pcall(function()
slotsPerRow = slot.inventory.slotsPerRow
end)
if not ok then
MyModGlobal.debugPrint(string.format("Error getting slots per row: %s", err))
end
local getGridPos = function(slotIndex)
local x = slotIndex % slotsPerRow
local y = math.floor(slotIndex / slotsPerRow)
return x, y
end
-- We are offsetting here by 1 because the backend uses 0-indexed slots
-- And the lua uses 1-indexed slots
-- We are trying to match the backend behavior for sorting
local slotx, sloty = getGridPos(slot.slotIndex - 1)
-- print(string.format("Slot position %d: %d, %d", slot.slotIndex, slotx, sloty))
table.sort(nearbySlots, function(a, b)
local ax, ay = getGridPos(a.slotIndex)
local bx, by = getGridPos(b.slotIndex)
local distA = math.max(math.abs(ax - slotx), math.abs(ay - sloty))
local distB = math.max(math.abs(bx - slotx), math.abs(by - sloty))
if distA == distB then
return a.slotIndex < b.slotIndex
end
return distA < distB
end)
-- print(string.format("Current slot: %d at (%d, %d)", slot.slotIndex, slotx, sloty))
for _, iitem in ipairs(toUnload) do
for _, iitem in ipairs(toUnload.itemQueue) do
for _, nearbySlot in ipairs(nearbySlots) do
local canAccept = nearbySlot.inventory.CanBePutInSlot(iitem.Prefab, nearbySlot.slotIndex)
local canAccept = nearbySlot:canFit(iitem.Prefab)
if canAccept then
local moved = nearbySlot.inventory.TryPutItem(iitem, nearbySlot.slotIndex, true, false,
nil)
-- print(string.format("Moved item %s to slot %d", iitem.Name, nearbySlot.slotIndex))
if moved then break end
utils.enqueueMove(iitem, nearbySlot)
break
end
end
end
@@ -110,12 +53,12 @@ end
local function tryUnloadCursorItem()
local slots, err = utils.getSlotsUnderCursor()
if err then
-- MyModGlobal.debugPrint(string.format("Error getting inventory slot: %s", err))
MyModGlobal.debugPrint(string.format("Error getting inventory slot: %s", err))
return
end
if not slots or #slots == 0 then
-- MyModGlobal.debugPrint("No items in slot")
MyModGlobal.debugPrint("No items in slot")
return
end

View File

@@ -1,15 +1,290 @@
-- luacheck: globals Character MyModGlobal
-- luacheck: globals Character MyModGlobal Timer _
-- luacheck: max line length 420
---@class ItemRefs
---@field item Barotrauma.Item
---@field inventory Barotrauma.ItemInventory
---@field slot Barotrauma.ItemInventory.Slot
---@class Barotrauma.Inventory.ItemSlot
---@field items Barotrauma.Item[]
---@class HollowInventorySlot
---@field inventory? Barotrauma.Inventory
---@field slotIndex1? number Lua based item slots
---@field slotIndex0? number Barotrauma API based item slots
---@field item? Barotrauma.Item
---@field stackSize? number
---@field maxStackSize? number
---@field depth? number Currently almost always 0
-- local globalInventorySlotCache = {}
---@class InventorySlot ---@field slot Barotrauma.Inventory.ItemSlot
---@field inventory Barotrauma.Inventory
---@field slotIndex1 number Lua based item slots
---@field slotIndex0 number Barotrauma API based item slots
---@field item Barotrauma.Item
---@field stackSize number
---@field maxStackSize number
---@field depth number Currently almost always 0
-- ---@field lastUpdated number
MyModGlobal.InventorySlot = {
---@param inventory Barotrauma.Inventory
---@param slotIndex1 number
---@return InventorySlot
new = function(inventory, slotIndex1)
local self = setmetatable({}, {
__index = MyModGlobal.InventorySlot
})
self.inventory = inventory
self.slotIndex1 = slotIndex1
self.slotIndex0 = slotIndex1 - 1
self.stackSize = 0
self.maxStackSize = 0
self.depth = 0
-- self:update()
if inventory and inventory.slots and #inventory.slots > 0 then
self.slot = inventory.slots[slotIndex1]
end
if self.slot and self.slot.items and #self.slot.items > 0 then
self.item = self.slot.items[1]
self.stackSize = #self.slot.items
-- At this point inventory has to exist
-- If it didn't slot wouldn't either and then this wouldn't either
self.maxStackSize = self.item.Prefab.GetMaxStackSize(inventory)
end
return self
end,
--- A very weird builder indeed
---@param self InventorySlot
---@param other HollowInventorySlot
with = function(self, other)
if other.inventory ~= nil then
self.inventory = other.inventory
end
if other.slotIndex1 ~= nil then
self.slotIndex1 = other.slotIndex1
end
if other.slotIndex0 ~= nil then
self.slotIndex0 = other.slotIndex0
end
if other.item ~= nil then
self.item = other.item
end
if other.stackSize ~= nil then
self.stackSize = other.stackSize
end
if other.maxStackSize ~= nil then
self.maxStackSize = other.maxStackSize
end
if other.depth ~= nil then
self.depth = other.depth
end
return self
end,
---@param self InventorySlot
---@param item Barotrauma.Item
pretendMoved = function(self, item)
if not self.inventory then
MyModGlobal.debugPrint("Error pretending moved but it was moved to nil inventory")
return
end
-- Slot was previously empty, we want to figure out its max stack for the new item
if not self.item then
self.maxStackSize = item.Prefab.GetMaxStackSize(self.inventory)
end
self.item = item
self.stackSize = self.stackSize + 1
end,
update = function(self)
-- self.lastUpdated = Timer.GetTime()
if not self.inventory then
MyModGlobal.debugPrint("Error updating inventory slot, inventory not found")
return
end
if not self.inventory.slots then
MyModGlobal.debugPrint("Error updating inventory slot, inventory has no slots")
return
end
local slot = self.inventory.slots[self.slotIndex1]
if not slot then
MyModGlobal.debugPrint("Error updating inventory slot, slot not found")
return
end
self.slot = slot
if not slot.items or #slot.items == 0 then
-- MyModGlobal.debugPrint("Error updating inventory slot, slot is empty")
return
end
self.item = slot.items[1]
self.stackSize = #slot.items
self.maxStackSize = self.item.Prefab.GetMaxStackSize(self.inventory)
end,
__tostring = function(self)
return string.format(
"InventorySlot(inventory=%s, item=%s, stackSize=%d, maxStackSize=%d, slotIndex1=%d, slotIndex0=%d)",
tostring(self.inventory), tostring(self.item), self.stackSize, self.maxStackSize, self.slotIndex1,
self.slotIndex0)
end,
---@param self InventorySlot
---@param predicate? fun(slot: InventorySlot): boolean
---@return InventorySlot[]
getNearbySlots = function(self, predicate)
predicate = predicate or function() return true end
local slotsPerRow = 900
local ok, err = pcall(function()
slotsPerRow = self.inventory.slotsPerRow
end)
if not ok then
MyModGlobal.debugPrint(string.format("Error getting slots per row: %s", err))
end
local getGridPos = function(slotIndex)
local x = slotIndex % slotsPerRow
local y = math.floor(slotIndex / slotsPerRow)
return x, y
end
local slots = {}
for slotIndex, _ in ipairs(self.inventory.slots) do
local inventorySlot = MyModGlobal.InventorySlot.new(self.inventory, slotIndex)
if predicate(inventorySlot) then
slots[#slots + 1] = inventorySlot
end
end
local slotx, sloty = getGridPos(self.slotIndex0)
table.sort(slots, function(a, b)
local ax, ay = getGridPos(a.slotIndex0)
local bx, by = getGridPos(b.slotIndex0)
-- Chebyshev distance
local distA = math.max(math.abs(ax - slotx), math.abs(ay - sloty))
local distB = math.max(math.abs(bx - slotx), math.abs(by - sloty))
if distA == distB then
return a.slotIndex0 < b.slotIndex0
end
return distA < distB
end)
return slots
end,
--- TODO: What about item condition?
---@param self InventorySlot
---@param itemPrefab Barotrauma.ItemPrefab
---@return number
howManyCanFit = function(self, itemPrefab)
-- There is an item in the slot and it's not stackable with itemPrefab
if self.item and not self.item.Prefab.Equals(itemPrefab) then
return 0
end
-- The slot is empty - we can fit as many as the game tells us
if not self.item then
return itemPrefab.GetMaxStackSize(self.inventory)
end
-- The slot has an item that is stackable with itemPrefab
-- We can fit as many as to fill the stack
return self.maxStackSize - self.stackSize
end,
---@param self InventorySlot
---@param itemPrefab Barotrauma.ItemPrefab
---@return boolean
canFit = function(self, itemPrefab)
return self:howManyCanFit(itemPrefab) > 0
end,
---@param self InventorySlot
---@return number
maxFits = function(self)
return self.maxStackSize - self.stackSize
end
-- hash = function(self)
-- return string.format("%s:%d:%d", tostring(self.inventory), self.slotIndex1, self.slotIndex0)
-- end
}
---@class ItemMoveRequest
---@field what Barotrauma.Item
---@field where InventorySlot
---@field allowSwap boolean
---@field allowCombine boolean
local enqueueMove
do
-- A bit of cheeky scoping
local enabled = true
---@type ItemMoveRequest[]
local itemMoveQueue = {}
---@type table<Barotrauma.Item, boolean>
local itemLookup = {}
local rate = 500
local perIteration = 30
local noQueue = true
-- rate / 1000 is ms to seconds and *perIteraion is number of items per second
local maxQueueSize = 10 * (1000 / rate * perIteration)
local function processQueue()
if noQueue then return end
-- MyModGlobal.debugPrint("Processing queue")
Timer.Wait(processQueue, rate)
if not enabled then return end
if #itemMoveQueue == 0 then return end
local iterations = math.min(perIteration, #itemMoveQueue)
for _ = 1, iterations do
---@type ItemMoveRequest
local moveRequest = table.remove(itemMoveQueue, 1)
-- TODO: Maybe try and figure out if we CAN put A into B
moveRequest.allowCombine = moveRequest.allowCombine or false
moveRequest.allowSwap = moveRequest.allowSwap or false
local success = moveRequest.where.inventory.TryPutItem(moveRequest.what, moveRequest.where.slotIndex0,
moveRequest.allowSwap, moveRequest.allowCombine, nil)
if not success then
MyModGlobal.debugPrint(string.format("Failed moving item from %s to %s", tostring(moveRequest.what),
tostring(moveRequest.where:__tostring())))
end
itemLookup[moveRequest.what] = nil
end
end
processQueue()
---@param what Barotrauma.Item
---@param where InventorySlot
---@param allowSwap? boolean
---@param allowCombine? boolean
enqueueMove = function(what, where, allowSwap, allowCombine)
allowCombine = allowCombine == true
allowSwap = allowSwap == true
if noQueue then
local success = where.inventory.TryPutItem(what, where.slotIndex0,
allowSwap, allowCombine, nil)
if not success then
MyModGlobal.debugPrint(string.format("Failed moving item from %s to %s", tostring(what),
tostring(where:__tostring())))
end
where:pretendMoved(what)
else
if #itemMoveQueue >= maxQueueSize then
MyModGlobal.debugPrint("Queue is full, skipping move")
return
end
if itemLookup[what] then
MyModGlobal.debugPrint("Item is already in the queue, skipping move")
return
end
MyModGlobal.debugPrint(string.format("Enqueuing move from %s to %s, now in queue %d/%d", tostring(what),
tostring(where:__tostring()), #itemMoveQueue, maxQueueSize))
table.insert(itemMoveQueue, {
what = what,
where = where,
allowSwap = allowSwap or false,
allowCombine = allowCombine ~= false,
})
itemLookup[what] = true
-- We will very optimistically pretend that this will 100% for sure work
where:pretendMoved(what)
end
end
end
---@class InventorySlot
---@field slot Barotrauma.ItemSlot
---@field inventory Barotrauma.ItemInventory
---@field slotIndex number
---@return Barotrauma.Item[], string?
local function getOpenContainers()
@@ -23,7 +298,9 @@ end
---@return Barotrauma.Item, string?
local function getFirstOpenContainer()
local containers, err = getOpenContainers()
---@diagnostic disable-next-line: return-type-mismatch
if err then return nil, err end
---@diagnostic disable-next-line: return-type-mismatch
if #containers == 0 then return nil, "No open containers" end
return containers[1], nil
end
@@ -32,194 +309,232 @@ end
-- And enqueueItem calls enqueueInventory
-- So unless we define them both before using them
-- We will get an error saying either is undefined
-- TODO: Rework these enqueue functions to accept a params object
-- That will house all optional parameters
-- And in that include recurse boolean
---@class ItemRefs
---@field item Barotrauma.Item
---@field inventory Barotrauma.Inventory
---@field slot Barotrauma.Inventory.ItemSlot
---@field slotIndex1 number
---@class EnqueueOptions
---@field itemQueue? Barotrauma.Item[]
---@field slotQueue? Barotrauma.Inventory.ItemSlot[]
---@field inventoryQueue? Barotrauma.Inventory[]
---@field itemPredicate? fun(item: Barotrauma.Item, itemRef: ItemRefs): boolean
---@field slotPredicate? fun(slot: Barotrauma.Inventory.ItemSlot, itemRef: ItemRefs): boolean
---@field inventoryPredicate? fun(inventory: Barotrauma.Inventory, itemRef: ItemRefs): boolean
---@field loadRefs? boolean
---@field itemRef? ItemRefs
---@field recurse? boolean
---@param options EnqueueOptions
---@return EnqueueOptions
local function ensureOptionsDefaults(options)
options = options or {}
options.itemQueue = options.itemQueue or {}
options.slotQueue = options.slotQueue or {}
options.inventoryQueue = options.inventoryQueue or {}
options.itemPredicate = options.itemPredicate or function() return true end
options.slotPredicate = options.slotPredicate or function() return true end
options.inventoryPredicate = options.inventoryPredicate or function() return true end
options.loadRefs = options.loadRefs == true
options.itemRef = options.itemRef or {}
options.recurse = options.recurse == true
return options
end
local enqueueItem
local enqueueSlot
local enqueueInventory
local enqueuePlayerItems
local enqueueOpenContainers
local allPlayerItems
local allSubmarineItems
local allOwnedItems
local _
local enqueueSubmarineItems
local enqueueAllOwnedItems
---@alias FilterPredicate fun(item: Barotrauma.Item, inventoryRef?: Barotrauma.ItemInventory, slotRef: Barotrauma.ItemInventory.Slot): boolean
do
---@param item Barotrauma.Item
---@param options EnqueueOptions
---@return EnqueueOptions, string?
enqueueItem = function(item, options)
options = ensureOptionsDefaults(options)
if not item then return options, "No item" end
-- Loading refs is optional because it MAY have a performance impact
---@param item Barotrauma.Item
---@param queue Barotrauma.Item[]
---@param predicate? FilterPredicate
---@param loadRefs? boolean
---@param itemRef? ItemRefs
---@return Barotrauma.Item[], string?
enqueueItem = function(item, queue, predicate, loadRefs, itemRef)
queue = queue or {}
predicate = predicate or function() return true end
itemRef = itemRef or {}
-- debugPrint(string.format("Enqueuing item: %s", item.Prefab.Identifier.Value))
-- local err
-- This should make it breadth first, right...?
-- No, not yet...
if not item then return queue, "No item" end
local ok, stop = predicate(item, itemRef)
local ok, stop = options.itemPredicate(item, options.itemRef)
if ok then
queue[#queue + 1] = item
options.itemQueue[#options.itemQueue + 1] = item
end
if stop then return queue, "Stop" end
if stop then return options, "Stop" end
local err
if item.OwnInventory then
-- As far as I know every item has only one inventory
-- Only machines have multiple
-- So inventrorY should be fine here
-- debugPrint("Item has its own inventory, enqueuing inventory...")
if loadRefs then
itemRef.item = item
queue, _ = enqueueInventory(item.OwnInventory, queue, predicate, loadRefs, itemRef)
if options.recurse then
if options.loadRefs then
options.itemRef.item = item
options.inventoryQueue, err = enqueueInventory(item.OwnInventory, options)
else
queue, _ = enqueueInventory(item.OwnInventory, queue, predicate, itemRef)
options.inventoryQueue, err = enqueueInventory(item.OwnInventory, options)
end
-- if err then
-- debugPrint(string.format("Error enqueuing inventory: %s", err))
-- end
end
-- debugPrint(string.format("Item enqueued. Current queue size: %d", #queue))
return queue, nil
end
end
return options, err
end
---@param slot Barotrauma.ItemInventory.Slot
---@param queue Barotrauma.Item[]
---@param predicate? FilterPredicate
---@param loadRefs? boolean
---@param itemRef? ItemRefs
---@return Barotrauma.Item[], string?
enqueueSlot = function(slot, queue, predicate, loadRefs, itemRef)
queue = queue or {}
predicate = predicate or function() return true end
itemRef = itemRef or {}
-- debugPrint(string.format("Enqueuing slot with %d items.", #slot.items))
-- We don't want to shadow queue
local err
-- If the slot is empty there's nothing to iterate
-- And we will naturally return queue as is
if not slot then return queue, "No slot" end
if not slot.items then return queue, "No items" end
---@param slot Barotrauma.Inventory.ItemSlot
---@param options EnqueueOptions
---@return EnqueueOptions, string?
enqueueSlot = function(slot, options)
options = ensureOptionsDefaults(options)
if not slot then return options, "No slot" end
if not slot.items then return options, "No items" end
local ok, stop = options.slotPredicate(slot, options.itemRef)
if ok then
options.slotQueue[#options.slotQueue + 1] = slot
end
if stop then return options, "Stop" end
for _, item in ipairs(slot.items) do
-- Only the final leaf nodes decide upon the predicate
if loadRefs then
itemRef.slot = slot
queue, err = enqueueItem(item, queue, predicate, loadRefs, itemRef)
else
queue, err = enqueueItem(item, queue, predicate)
end
if err then
return queue, err
end
end
-- debugPrint(string.format("Finished enqueuing slot. Current queue size: %d", #queue))
return queue
end
---@param inventory Barotrauma.ItemInventory
---@param queue Barotrauma.Item[]
---@param predicate? FilterPredicate
---@param loadRefs? boolean
---@param itemRef? ItemRefs
---@return Barotrauma.Item[], string?
enqueueInventory = function(inventory, queue, predicate, loadRefs, itemRef)
queue = queue or {}
predicate = predicate or function() return true end
itemRef = itemRef or {}
-- debugPrint(string.format("Enqueuing inventory with %d slots.", #inventory.slots))
-- We redeclare err every iteration so it doesn't spill over
local err
if not inventory then return queue, "No inventory" end
if not inventory.slots then return queue, "No slots" end
for _, slot in ipairs(inventory.slots) do
-- Only the final leaf nodes decide upon the predicate
if loadRefs then
itemRef.inventory = inventory
queue, err = enqueueSlot(slot, queue, predicate, loadRefs, itemRef)
if options.loadRefs then
options.itemRef.slot = slot
options, err = enqueueItem(item, options)
else
queue, err = enqueueSlot(slot, queue, predicate)
options, err = enqueueItem(item, options)
end
if err then
return queue, err
return options, err
end
end
-- debugPrint(string.format("Finished enqueuing inventory. Current queue size: %d", #queue))
return queue
end
return options
end
local relevantPlayerInventorySlots = { 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, MyModGlobal.BAG_SLOT }
---@param queue Barotrauma.Item[]
---@param predicate? FilterPredicate
---@param loadRefs? boolean
---@return Barotrauma.Item[], string?
allPlayerItems = function(queue, predicate, loadRefs)
queue = queue or {}
predicate = predicate or function() return true end
---@param inventory Barotrauma.Inventory
---@param options EnqueueOptions
---@return EnqueueOptions, string?
enqueueInventory = function(inventory, options)
options = ensureOptionsDefaults(options)
if not inventory then return options, "No inventory" end
if not inventory.slots then return options, "No slots" end
local ok, stop = options.inventoryPredicate(inventory, options.itemRef)
if ok then
options.inventoryQueue[#options.inventoryQueue + 1] = inventory
end
if stop then return options, "Stop" end
for i, slot in ipairs(inventory.slots) do
local err
if options.loadRefs then
options.itemRef.inventory = inventory
options.itemRef.slot = slot
options.itemRef.slotIndex1 = i
options, err = enqueueSlot(slot, options)
else
options, err = enqueueSlot(slot, options)
end
if err then
return options, err
end
end
return options
end
local relevantPlayerInventorySlots = {
false,
false,
false,
false,
false,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
true,
}
---@param options EnqueueOptions
---@return EnqueueOptions, string?
enqueuePlayerItems = function(options)
options = ensureOptionsDefaults(options)
local character = Character.Controlled
if not character then return queue, "No character" end
if not character then return options, "No character" end
local inventory = character.Inventory
if not inventory then return queue, "No inventory" end
if not inventory then return options, "No inventory" end
for _, slotid in ipairs(relevantPlayerInventorySlots) do
local slot = inventory.slots[slotid]
local err
if not slot then goto continue end
if #slot.items == 0 then goto continue end
queue, err = enqueueSlot(slot, queue, predicate, loadRefs)
if err then return queue, err end
::continue::
options.loadRefs = true
local originalItemPredicate = options.itemPredicate or function() return true end
options.itemPredicate = function(item)
if not item then return false end
local parentInventory = item.ParentInventory
if not parentInventory then return false end
if not parentInventory.Equals(inventory) then return false end
return originalItemPredicate(item, options.itemRef)
end
local originalSlotPredicate = options.slotPredicate or function() return true end
options.slotPredicate = function(slot, itemRef)
if not slot then return false end
if itemRef.slotIndex1 and relevantPlayerInventorySlots[itemRef.slotIndex1] then
return originalSlotPredicate(slot, itemRef)
end
return false
end
return queue
end
local err
options, err = enqueueInventory(inventory, options)
if err then return options, err end
---@param queue Barotrauma.Item[]
---@param predicate? FilterPredicate
---@param loadRefs? boolean
---@return Barotrauma.Item[], string?
enqueueOpenContainers = function(queue, predicate, loadRefs)
queue = queue or {}
predicate = predicate or function() return true end
return options
end
---@param options EnqueueOptions
---@return EnqueueOptions, string?
enqueueOpenContainers = function(options)
options = ensureOptionsDefaults(options)
local containers, err = getOpenContainers()
if err then return queue, err end
if err then return options, err end
for _, container in ipairs(containers) do
local inventories = container.OwnInventories
if not inventories then goto continue end
for containerInventory in inventories do
queue, err = enqueueInventory(containerInventory, queue, predicate, loadRefs)
if err then return queue, err end
options, err = enqueueInventory(containerInventory, options)
if err then return options, err end
end
::continue::
end
return queue
end
return options
end
---@param options EnqueueOptions
---@return EnqueueOptions, string?
enqueueSubmarineItems = function(options)
options = ensureOptionsDefaults(options)
---@param queue Barotrauma.Item[]
---@param predicate? FilterPredicate
---@return Barotrauma.Item[], string?
allSubmarineItems = function(queue, predicate)
queue = queue or {}
predicate = predicate or function() return true end
-- This only exists so predicate does not explode
-- Even if its empty
local itemRef = {}
local character = Character.Controlled
if not character then return queue, "No character" end
if not character then return options, "No character" end
local submarine = character.Submarine
if not submarine then return queue, "No submarine" end
if not submarine then return options, "No submarine" end
for item in submarine.GetItems(false) do
-- We do NOT want to call enqueueItem here because enqueueItem
@@ -227,32 +542,30 @@ allSubmarineItems = function(queue, predicate)
-- And this call (GetItems) already gets all items
-- So we would be doing double the work (at best case)
-- It also means we won't have refs here which sucks
local ok, stop = predicate(item, itemRef)
local ok, stop = options.itemPredicate(item, itemRef)
if ok then
queue[#queue + 1] = item
options.itemQueue[#options.itemQueue + 1] = item
end
if stop then return queue, "Stop" end
if stop then return options, "Stop" end
end
return queue
end
return options
end
---@param queue Barotrauma.Item[]
---@param predicate? FilterPredicate
---@param loadRefs? boolean
---@return Barotrauma.Item[], string?
allOwnedItems = function(queue, predicate, loadRefs)
queue = queue or {}
predicate = predicate or function() return true end
---@param options EnqueueOptions
---@return EnqueueOptions, string?
enqueueAllOwnedItems = function(options)
options = ensureOptionsDefaults(options)
local err
queue, err = allPlayerItems(queue, predicate, loadRefs)
if err then return queue, err end
options, err = enqueuePlayerItems(options)
if err then return options, err end
queue, err = allSubmarineItems(queue, predicate)
if err then return queue, err end
options, err = enqueueSubmarineItems(options)
if err then return options, err end
return queue
return options
end
end
-- There is actually no need to recurse deep
@@ -260,8 +573,8 @@ end
-- And not an item in an item in the inventory
-- So in theory we only need to recurse 1 deep
---@param inventory Barotrauma.Inventory
---@param slots InventorySlot[]
---@param depth number
---@param slots? InventorySlot[]
---@param depth? number
---@return InventorySlot[], string?
local function getMouseoverSlots(inventory, slots, depth)
slots = slots or {}
@@ -269,7 +582,7 @@ local function getMouseoverSlots(inventory, slots, depth)
if depth > 1 then return slots, nil end
local visualSlots = inventory.visualSlots
if not visualSlots then return nil, "Inventory has no visual slots" end
if not visualSlots then return slots, "Inventory has no visual slots" end
for i, visualSlot in ipairs(visualSlots) do
local item
@@ -305,11 +618,8 @@ local function getMouseoverSlots(inventory, slots, depth)
::mouseover::
if visualSlot:MouseOn() then
slots[#slots + 1] = {
inventory = inventory,
slotIndex = i,
slot = slot
}
local inventorySlot = MyModGlobal.InventorySlot.new(inventory, i)
slots[#slots + 1] = inventorySlot
end
::continue::
@@ -320,15 +630,17 @@ end
---@return InventorySlot[], string?
local function getSlotsUnderCursor()
local slots = {}
-- Make sure we have a controlled character
local controlledCharacter = Character.Controlled
if not controlledCharacter then return nil, "No controlled character" end
if not controlledCharacter then return slots, "No controlled character" end
local inventory = controlledCharacter.Inventory
if not inventory then return nil, "No inventory" end
if not inventory then return slots, "No inventory" end
local mouseoverSlots, err = getMouseoverSlots(inventory)
if err then return mouseoverSlots, err end
local err
slots, err = getMouseoverSlots(inventory, slots)
if err then return slots, err end
-- Even if we don't get them we're still fine
local openContainers, _ = getOpenContainers()
@@ -337,35 +649,30 @@ local function getSlotsUnderCursor()
for _, container in ipairs(openContainers) do
local containerInventories = container.OwnInventories
for containerInventory in containerInventories do
local slot
if not containerInventory or not containerInventory.visualSlots then
MyModGlobal.debugPrint("Container inventory has no visual slots")
goto continue
end
for i, visualSlot in ipairs(containerInventory.visualSlots) do
if visualSlot:MouseOn() then
slot = containerInventory.slots[i]
mouseoverSlots[#mouseoverSlots + 1] = {
inventory = containerInventory,
slotIndex = i,
slot = slot
}
local inventorySlot = MyModGlobal.InventorySlot.new(containerInventory, i)
slots[#slots + 1] = inventorySlot
end
end
::continue::
end
end
return mouseoverSlots, nil
return slots, nil
end
---@return InventorySlot, string?
local function getFirstSlotUnderCursor()
local slots, err = getSlotsUnderCursor()
if err then return nil, err end
if #slots == 0 then return nil, "No slots found under cursor" end
if err then return slots, err end
if #slots == 0 then return slots, "No slots found under cursor" end
for _, slot in ipairs(slots) do
if slot.slot.items and #slot.slot.items > 0 then
if slot.item then
return slot
end
end
@@ -376,12 +683,13 @@ return {
enqueueItem = enqueueItem,
enqueueSlot = enqueueSlot,
enqueueInventory = enqueueInventory,
enqueueAllPlayerItems = allPlayerItems,
enqueueAllSubmarineItems = allSubmarineItems,
enqueueAllOwnedItems = allOwnedItems,
enqueuePlayerItems = enqueuePlayerItems,
enqueueSubmarineItems = enqueueSubmarineItems,
enqueueAllOwnedItems = enqueueAllOwnedItems,
enqueueOpenContainers = enqueueOpenContainers,
getOpenContainers = getOpenContainers,
getFirstOpenContainer = getFirstOpenContainer,
getSlotsUnderCursor = getSlotsUnderCursor,
getFirstSlotUnderCursor = getFirstSlotUnderCursor,
enqueueMove = enqueueMove,
}

View File

@@ -1,5 +1,5 @@
-- luacheck: globals Character Timer Hook SERVER CLIENT
-- if not SERVER then return end
if not SERVER then return end
local amountExperience = 6000
local passiveExperienceDelay = 60
local passiveExperienceTimer = 0

BIN
Dugong Ultimate/Dugong Ultimate.sub (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<contentpackage name="Dugong Ultimate" modversion="1.0.119" corepackage="False" steamworkshopid="2970679991" gameversion="1.1.19.3" >
<Submarine file="%ModDir%/Dugong Ultimate.sub" />
</contentpackage>

View File

@@ -4,7 +4,7 @@
<!--OVERRIDES-->
<!--OVERRIDES-->
<Override>
<OutpostDestroyMission identifier="huskcultspecialassassinate" type="OutpostDestroy" achievementidentifier="huskcultspecialassassinate" reward="8000" difficulty="4" commonness="0" allowretry="true" sonarlabel="target" requireCorrectLocationType="true" BlockLocationTypeChanges="true">
<OutpostDestroyMission identifier="huskcultspecialassassinate" type="OutpostDestroy" achievementidentifier="huskcultspecialassassinate" reward="2000" difficulty="4" commonness="0" allowretry="true" sonarlabel="target" requireCorrectLocationType="true" BlockLocationTypeChanges="true">
<Reputation identifier="huskcult" amount="10" />
<Reputation identifier="coalition" amount="-5" />
<Icon texture="Content/UI/MissionIcons.png" sourcerect="0,512,256,256" color="214,50,48" />
@@ -38,7 +38,7 @@
<Metadata identifier="tormsdalereport" value="2" />
</SalvageMission>
<!-- Added Base -->
<OutpostMission identifier="jailbreak_coalition" name="missionname.jailbreak" successmessage="missionsuccess.jailbreak" failuremessage="missionfailure.jailbreak" tags="jailbreak_coalition" requiredlocationfaction="separatists" achievementidentifier="jailbreak_coalition" type="AbandonedOutpost" reward="12000" difficulty="3" commonness="100" allowretry="true" hostageskilledmessage="prisonerkilled">
<OutpostMission identifier="jailbreak_coalition" name="missionname.jailbreak" successmessage="missionsuccess.jailbreak" failuremessage="missionfailure.jailbreak" tags="jailbreak_coalition" requiredlocationfaction="separatists" achievementidentifier="jailbreak_coalition" type="AbandonedOutpost" reward="3000" difficulty="3" commonness="100" allowretry="true" hostageskilledmessage="prisonerkilled">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="512,256,256,256" color="214,50,48" />
<LocationType identifier="Colony" />
<LocationType identifier="City" />
@@ -53,7 +53,7 @@
<Reputation identifier="coalition" amount="5" amountforopposingfaction="-5" />
<message header="missionheader0.prisonerrescue" text="missionmessage0.prisonerrescue" />
</OutpostMission>
<OutpostMission identifier="jailbreak_separatists" name="missionname.jailbreak" successmessage="missionsuccess.jailbreak" failuremessage="missionfailure.jailbreak" tags="jailbreak_separatists" requiredlocationfaction="coalition" achievementidentifier="jailbreak_separatists" type="AbandonedOutpost" reward="12000" difficulty="3" commonness="100" allowretry="true" hostageskilledmessage="prisonerkilled">
<OutpostMission identifier="jailbreak_separatists" name="missionname.jailbreak" successmessage="missionsuccess.jailbreak" failuremessage="missionfailure.jailbreak" tags="jailbreak_separatists" requiredlocationfaction="coalition" achievementidentifier="jailbreak_separatists" type="AbandonedOutpost" reward="3000" difficulty="3" commonness="100" allowretry="true" hostageskilledmessage="prisonerkilled">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="512,256,256,256" color="214,50,48" />
<LocationType identifier="Colony" />
<LocationType identifier="City" />
@@ -68,7 +68,7 @@
<Reputation identifier="separatists" amount="5" amountforopposingfaction="-5" />
<message header="missionheader0.prisonerrescue" text="missionmessage0.prisonerrescue" />
</OutpostMission>
<OutpostMission identifier="jailbreak_sootman" name="missionname.jailbreak" successmessage="missionsuccess.jailbreak_singletarget" failuremessage="missionfailure.jailbreak_singletarget" tags="jailbreak_separatists" achievementidentifier="jailbreak_sootman" type="AbandonedOutpost" alloworderingrescuees="false" reward="12000" difficulty="3" commonness="0" allowretry="true" hostageskilledmessage="prisonerkilled" BlockLocationTypeChanges="true">
<OutpostMission identifier="jailbreak_sootman" name="missionname.jailbreak" successmessage="missionsuccess.jailbreak_singletarget" failuremessage="missionfailure.jailbreak_singletarget" tags="jailbreak_separatists" achievementidentifier="jailbreak_sootman" type="AbandonedOutpost" alloworderingrescuees="false" reward="3000" difficulty="3" commonness="0" allowretry="true" hostageskilledmessage="prisonerkilled" BlockLocationTypeChanges="true">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="512,256,256,256" color="214,50,48" />
<LocationType identifier="Colony" />
<LocationType identifier="City" />
@@ -83,7 +83,7 @@
<Metadata identifier="sootman_freed" value="true" />
</OutpostMission>
<!-- -2 bandit rep for doing abandoned outposts -->
<AbandonedOutpostMission identifier="abandonedoutposthumans" tags="abandonedoutpost" achievementidentifier="abandonedoutpostdestroyhumans" type="OutpostDestroy" reward="12000" difficulty="2" commonness="100" allowretry="true" targetitem="reactor" unhideentitysubcategories="abandonedhuman" maxleveldifficulty="65">
<AbandonedOutpostMission identifier="abandonedoutposthumans" tags="abandonedoutpost" achievementidentifier="abandonedoutpostdestroyhumans" type="OutpostDestroy" reward="3000" difficulty="2" commonness="100" allowretry="true" targetitem="reactor" unhideentitysubcategories="abandonedhuman" maxleveldifficulty="65">
<Reputation identifier="bandits" amount="-2" />
<Icon texture="Content/UI/MissionIcons.png" sourcerect="512,256,256,256" color="214,50,48" />
<LocationType identifier="Abandoned" />
@@ -101,7 +101,7 @@
<TriggerEvent state="0" delay="5" eventidentifier="heartofgold" campaignonly="true" />
<message header="missionheader0.abandonedoutposthumans" text="missionmessage0.abandonedoutposthumans" />
</AbandonedOutpostMission>
<AbandonedOutpostMission identifier="abandonedoutposthumans2" textidentifier="abandonedoutposthumans" tags="abandonedoutpost" achievementidentifier="abandonedoutpostdestroyhumans" type="OutpostDestroy" reward="16000" difficulty="3" commonness="100" allowretry="true" targetitem="reactor" unhideentitysubcategories="abandonedhuman" minleveldifficulty="50">
<AbandonedOutpostMission identifier="abandonedoutposthumans2" textidentifier="abandonedoutposthumans" tags="abandonedoutpost" achievementidentifier="abandonedoutpostdestroyhumans" type="OutpostDestroy" reward="4000" difficulty="3" commonness="100" allowretry="true" targetitem="reactor" unhideentitysubcategories="abandonedhuman" minleveldifficulty="50">
<Reputation identifier="bandits" amount="-2" />
<Icon texture="Content/UI/MissionIcons.png" sourcerect="512,256,256,256" color="214,50,48" />
<LocationType identifier="Abandoned" />
@@ -120,7 +120,7 @@
<TriggerEvent state="0" delay="5" eventidentifier="heartofgold" campaignonly="true" />
<message header="missionheader0.abandonedoutposthumans" text="missionmessage0.abandonedoutposthumans" />
</AbandonedOutpostMission>
<AbandonedOutpostMission identifier="abandonedoutposthumans3" textidentifier="abandonedoutposthumans" tags="abandonedoutpost" achievementidentifier="abandonedoutpostdestroyhumans" type="OutpostDestroy" reward="24000" difficulty="4" commonness="100" allowretry="true" targetitem="reactor" unhideentitysubcategories="abandonedhuman" minleveldifficulty="65">
<AbandonedOutpostMission identifier="abandonedoutposthumans3" textidentifier="abandonedoutposthumans" tags="abandonedoutpost" achievementidentifier="abandonedoutpostdestroyhumans" type="OutpostDestroy" reward="6000" difficulty="4" commonness="100" allowretry="true" targetitem="reactor" unhideentitysubcategories="abandonedhuman" minleveldifficulty="65">
<Reputation identifier="bandits" amount="-2" />
<Icon texture="Content/UI/MissionIcons.png" sourcerect="512,256,256,256" color="214,50,48" />
<LocationType identifier="Abandoned" />
@@ -141,17 +141,17 @@
<message header="missionheader0.abandonedoutposthumans" text="missionmessage0.abandonedoutposthumans" />
</AbandonedOutpostMission>
<!-- Variants of abyssals that avoid abyss and roam main path -->
<MonsterMission identifier="huntinggrounds1" textidentifier="huntinggrounds" tags="huntinggrounds,hard" type="Monster" sideobjective="true" difficulty="4" commonness="0" reward="26000" sonarlabel="target" spawntype="MainPath" maxsonarmarkerdistance="20000" successmessage="" monsterfile="Endworm_Hunting">
<MonsterMission identifier="huntinggrounds1" textidentifier="huntinggrounds" tags="huntinggrounds,hard" type="Monster" sideobjective="true" difficulty="4" commonness="0" reward="6500" sonarlabel="target" spawntype="MainPath" maxsonarmarkerdistance="20000" successmessage="" monsterfile="Endworm_Hunting">
<Reputation identifier="location" amount="2" />
<Icon texture="Content/UI/MissionIcons2.png" sourcerect="256,768,256,256" color="214,50,48" />
<message header="missionheader0.huntinggrounds1" text="missionmessage0.huntinggrounds1" />
</MonsterMission>
<MonsterMission identifier="huntinggrounds2" textidentifier="huntinggrounds" tags="huntinggrounds" type="Monster" sideobjective="true" difficulty="4" commonness="0" reward="26000" sonarlabel="target" spawntype="MainPath" maxsonarmarkerdistance="20000" successmessage="" monsterfile="Charybdis_Hunting">
<MonsterMission identifier="huntinggrounds2" textidentifier="huntinggrounds" tags="huntinggrounds" type="Monster" sideobjective="true" difficulty="4" commonness="0" reward="6500" sonarlabel="target" spawntype="MainPath" maxsonarmarkerdistance="20000" successmessage="" monsterfile="Charybdis_Hunting">
<Reputation identifier="location" amount="2" />
<Icon texture="Content/UI/MissionIcons2.png" sourcerect="256,768,256,256" color="214,50,48" />
<message header="missionheader0.huntinggrounds1" text="missionmessage0.huntinggrounds1" />
</MonsterMission>
<MonsterMission identifier="huntinggrounds3" textidentifier="huntinggrounds" tags="huntinggrounds,easy" type="Monster" sideobjective="true" difficulty="4" commonness="0" reward="26000" sonarlabel="target" spawntype="MainPath" maxsonarmarkerdistance="20000" successmessage="" monsterfile="Latcher_Hunting">
<MonsterMission identifier="huntinggrounds3" textidentifier="huntinggrounds" tags="huntinggrounds,easy" type="Monster" sideobjective="true" difficulty="4" commonness="0" reward="6500" sonarlabel="target" spawntype="MainPath" maxsonarmarkerdistance="20000" successmessage="" monsterfile="Latcher_Hunting">
<Reputation identifier="location" amount="2" />
<Icon texture="Content/UI/MissionIcons2.png" sourcerect="256,768,256,256" color="214,50,48" />
<message header="missionheader0.huntinggrounds1" text="missionmessage0.huntinggrounds1" />
@@ -161,7 +161,7 @@
<!--END OF OVERRIDES-->
<!--END OF OVERRIDES-->
<!-- Lair -->
<CrawlerLairMission identifier="crawlerlair1" textidentifier="destroylair" tags="destroylair,crawlerlair" type="OutpostDestroy" reward="8000" difficulty="3" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="0" maxleveldifficulty="30">
<CrawlerLairMission identifier="crawlerlair1" textidentifier="destroylair" tags="destroylair,crawlerlair" type="OutpostDestroy" reward="2000" difficulty="3" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="0" maxleveldifficulty="30">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="Lair" />
<LocationTypeChange from="Lair" to="None" requiredduration="1" cooldownafterchange="1" />
@@ -185,7 +185,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</CrawlerLairMission>
<CrawlerLairMission identifier="crawlerlair2" textidentifier="destroylair" tags="destroylair,crawlerlair" type="OutpostDestroy" reward="10000" difficulty="3" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="30" maxleveldifficulty="50">
<CrawlerLairMission identifier="crawlerlair2" textidentifier="destroylair" tags="destroylair,crawlerlair" type="OutpostDestroy" reward="2500" difficulty="3" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="30" maxleveldifficulty="50">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="Lair" />
<LocationTypeChange from="Lair" to="None" requiredduration="1" cooldownafterchange="1" />
@@ -213,7 +213,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</CrawlerLairMission>
<CrawlerLairMission identifier="crawlerlair3" textidentifier="destroylair" tags="destroylair,crawlerlair" type="OutpostDestroy" reward="12000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="50">
<CrawlerLairMission identifier="crawlerlair3" textidentifier="destroylair" tags="destroylair,crawlerlair" type="OutpostDestroy" reward="3000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="50">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="Lair" />
<LocationTypeChange from="Lair" to="None" requiredduration="1" cooldownafterchange="1" />
@@ -252,7 +252,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</CrawlerLairMission>
<MudraptorLairMission identifier="mudraptorlair1" textidentifier="destroylair" tags="destroylair,mudraptorlair" type="OutpostDestroy" reward="12000" difficulty="3" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="15" maxleveldifficulty="40">
<MudraptorLairMission identifier="mudraptorlair1" textidentifier="destroylair" tags="destroylair,mudraptorlair" type="OutpostDestroy" reward="3000" difficulty="3" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="15" maxleveldifficulty="40">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="Lair" />
<LocationTypeChange from="Lair" to="None" requiredduration="1" cooldownafterchange="1" />
@@ -276,7 +276,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</MudraptorLairMission>
<MudraptorLairMission identifier="mudraptorlair2" textidentifier="destroylair" tags="destroylair,mudraptorlair" type="OutpostDestroy" reward="14000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="40" maxleveldifficulty="60">
<MudraptorLairMission identifier="mudraptorlair2" textidentifier="destroylair" tags="destroylair,mudraptorlair" type="OutpostDestroy" reward="3500" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="40" maxleveldifficulty="60">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="Lair" />
<LocationTypeChange from="Lair" to="None" requiredduration="1" cooldownafterchange="1" />
@@ -305,7 +305,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</MudraptorLairMission>
<MudraptorLairMission identifier="mudraptorlair3" textidentifier="destroylair" tags="destroylair,mudraptorlair" type="OutpostDestroy" reward="16000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="60">
<MudraptorLairMission identifier="mudraptorlair3" textidentifier="destroylair" tags="destroylair,mudraptorlair" type="OutpostDestroy" reward="4000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="60">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="Lair" />
<LocationTypeChange from="Lair" to="None" requiredduration="1" cooldownafterchange="1" />
@@ -341,7 +341,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</MudraptorLairMission>
<ThresherLairMission identifier="thresherlair1" textidentifier="destroylair" tags="destroylair,thresherlair" type="OutpostDestroy" reward="12000" difficulty="3" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="45" maxleveldifficulty="60">
<ThresherLairMission identifier="thresherlair1" textidentifier="destroylair" tags="destroylair,thresherlair" type="OutpostDestroy" reward="3000" difficulty="3" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="45" maxleveldifficulty="60">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="Lair" />
<LocationTypeChange from="Lair" to="None" requiredduration="1" cooldownafterchange="1" />
@@ -367,7 +367,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</ThresherLairMission>
<ThresherLairMission identifier="thresherlair2" textidentifier="destroylair" tags="destroylair,thresherlair" type="OutpostDestroy" reward="14000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="60" maxleveldifficulty="75">
<ThresherLairMission identifier="thresherlair2" textidentifier="destroylair" tags="destroylair,thresherlair" type="OutpostDestroy" reward="3500" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="60" maxleveldifficulty="75">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="Lair" />
<LocationTypeChange from="Lair" to="None" requiredduration="1" cooldownafterchange="1" />
@@ -404,7 +404,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</ThresherLairMission>
<ThresherLairMission identifier="thresherlair3" textidentifier="destroylair" tags="destroylair,thresherlair" type="OutpostDestroy" reward="16000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="75">
<ThresherLairMission identifier="thresherlair3" textidentifier="destroylair" tags="destroylair,thresherlair" type="OutpostDestroy" reward="4000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="75">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="Lair" />
<LocationTypeChange from="Lair" to="None" requiredduration="1" cooldownafterchange="1" />
@@ -441,7 +441,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</ThresherLairMission>
<HuskCrawlerLairMission identifier="huskcrawlerlair1" textidentifier="huskcrawlerlair" tags="husklair" type="OutpostDestroy" reward="16000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Target" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="0" maxleveldifficulty="50">
<HuskCrawlerLairMission identifier="huskcrawlerlair1" textidentifier="huskcrawlerlair" tags="husklair" type="OutpostDestroy" reward="4000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Target" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="0" maxleveldifficulty="50">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="HuskgroundsDE" />
<LocationTypeChange from="HuskgroundsDE" to="MilitaryForces" requiredduration="1" cooldownafterchange="1" />
@@ -457,7 +457,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</HuskCrawlerLairMission>
<HuskCrawlerLairMission identifier="huskcrawlerlair2" textidentifier="huskcrawlerlair" tags="husklair" type="OutpostDestroy" reward="18000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Target" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="50" maxleveldifficulty="100">
<HuskCrawlerLairMission identifier="huskcrawlerlair2" textidentifier="huskcrawlerlair" tags="husklair" type="OutpostDestroy" reward="4500" difficulty="4" commonness="100" allowretry="true" sonarlabel="Target" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true" minleveldifficulty="50" maxleveldifficulty="100">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="HuskgroundsDE" />
<LocationTypeChange from="HuskgroundsDE" to="MilitaryForces" requiredduration="1" cooldownafterchange="1" />
@@ -473,14 +473,14 @@
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</HuskCrawlerLairMission>
<!-- Electric Spineling -->
<MonsterMission identifier="killelectricspineling1" tags="killmonster_thegreatsea" type="Monster" difficulty="3" commonness="33" reward="14000" maxsonarmarkerdistance="10000" sonarlabel="character.spineling" monsterfile="spineling_electric">
<MonsterMission identifier="killelectricspineling1" tags="killmonster_thegreatsea" type="Monster" difficulty="3" commonness="33" reward="3500" maxsonarmarkerdistance="10000" sonarlabel="character.spineling" monsterfile="spineling_electric">
<monster character="spineling" min="4" max="8" />
<monster character="spineling_electric" min="1" max="1" />
<Reputation identifier="location" amount="2" />
<Icon texture="Content/UI/MissionIcons.png" sourcerect="768,768,256,256" color="10,100,150" />
<message header="missionheader0.spineling_electric1" text="missionmessage0.spineling_electric1" />
</MonsterMission>
<MonsterMission identifier="killelectricspineling2" tags="killmonster_thegreatsea" type="Monster" difficulty="4" commonness="33" reward="18000" maxsonarmarkerdistance="10000" sonarlabel="character.spineling" monsterfile="spineling_electric">
<MonsterMission identifier="killelectricspineling2" tags="killmonster_thegreatsea" type="Monster" difficulty="4" commonness="33" reward="4500" maxsonarmarkerdistance="10000" sonarlabel="character.spineling" monsterfile="spineling_electric">
<monster character="spineling" min="4" max="5" />
<monster character="spineling_electric" min="2" max="2" />
<Reputation identifier="location" amount="2" />
@@ -532,17 +532,17 @@
<message header="missionheader0.pirate_heavy" text="missionmessage0.pirate_heavy" />
<message header="missionheader1.pirate_heavy" text="missionmessage1.pirate_heavy" />
</PirateMission>
<PirateMission type="Pirate" identifier="pirate_heavy" tags="piratemission,heavypirate" difficulty="4" commonness="100" reward="14000" achievementidentifier="piratemission" addedmissiondifficultyperplayer="8">
<PirateMission type="Pirate" identifier="pirate_heavy" tags="piratemission,heavypirate" difficulty="4" commonness="100" reward="3500" achievementidentifier="piratemission" addedmissiondifficultyperplayer="8">
<Reputation identifier="coalition" amount="7" />
<Reputation identifier="separatists" amount="7" />
<Reputation identifier="bandits" amount="-2" />
<SubmarineTypes>
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/U-41SPirate.sub" preferreddifficulty="20" alternatereward="12000" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/LuotiPirate.sub" preferreddifficulty="30" alternatereward="14000" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/GunGatorPirate.sub" preferreddifficulty="35" alternatereward="14000" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/BerthaPirate.sub" preferreddifficulty="40" alternatereward="16000" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/Winterhalter [PIRATE].sub" preferreddifficulty="40" alternatereward="18000" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/U-42CPirate.sub" preferreddifficulty="50" alternatereward="20000" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/U-41SPirate.sub" preferreddifficulty="20" alternatereward="3000" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/LuotiPirate.sub" preferreddifficulty="30" alternatereward="3500" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/GunGatorPirate.sub" preferreddifficulty="35" alternatereward="3500" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/BerthaPirate.sub" preferreddifficulty="40" alternatereward="4000" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/Winterhalter [PIRATE].sub" preferreddifficulty="40" alternatereward="4500" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/U-42CPirate.sub" preferreddifficulty="50" alternatereward="5000" />
</SubmarineTypes>
<Characters>
<Character typeidentifier="piratecaptain" minamount="1" maxamount="1" />
@@ -579,14 +579,14 @@
<message header="missionheader0.pirate_heavy" text="missionmessage0.pirate_heavy" />
<message header="missionheader1.pirate_heavy" text="missionmessage1.pirate_heavy" />
</PirateMission>
<PirateMission type="Pirate" identifier="pirate_party" tags="piratemission,partypirate" difficulty="4" commonness="20" reward="20000" achievementidentifier="piratemission" addedmissiondifficultyperplayer="8">
<PirateMission type="Pirate" identifier="pirate_party" tags="piratemission,partypirate" difficulty="4" commonness="20" reward="5000" achievementidentifier="piratemission" addedmissiondifficultyperplayer="8">
<Reputation identifier="coalition" amount="3" />
<Reputation identifier="separatists" amount="3" />
<Reputation identifier="huskcult" amount="3" />
<Reputation identifier="clowns" amount="-5" />
<SubmarineTypes>
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/U-41SPartyPirate.sub" preferreddifficulty="20" alternatereward="20000" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/Warden Raving Vessel 1.sub" preferreddifficulty="40" alternatereward="20000" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/U-41SPartyPirate.sub" preferreddifficulty="20" alternatereward="5000" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/Warden Raving Vessel 1.sub" preferreddifficulty="40" alternatereward="5000" />
</SubmarineTypes>
<Characters>
<Character typeidentifier="partypiratecaptain" minamount="1" maxamount="1" />
@@ -620,12 +620,12 @@
<message header="missionheader1.pirate_party" text="missionmessage1.pirate_party" />
</PirateMission>
<!--STRANGE VESSEL MISSIONS-->
<PirateMission type="Pirate" identifier="pirate_piezo" tags="piratemission,strangepirate" difficulty="4" commonness="20" reward="20000" achievementidentifier="piratemission" addedmissiondifficultyperplayer="8">
<PirateMission type="Pirate" identifier="pirate_piezo" tags="piratemission,strangepirate" difficulty="4" commonness="20" reward="5000" achievementidentifier="piratemission" addedmissiondifficultyperplayer="8">
<Reputation identifier="coalition" amount="10" />
<Reputation identifier="separatists" amount="10" />
<Reputation identifier="bandits" amount="-2" />
<SubmarineTypes>
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/U-42PiezoPirate.sub" preferreddifficulty="50" alternatereward="20000" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Pirates/U-42PiezoPirate.sub" preferreddifficulty="50" alternatereward="5000" />
</SubmarineTypes>
<Characters>
<Character typeidentifier="piratecaptain" minamount="1" maxamount="1" />
@@ -918,7 +918,7 @@
</OutpostDestroyMission>
-->
<!--OUTPOST TAKEOVER-->
<OutpostDestroyMission name="Coalition Station-Takeover" identifier="cotakeover_separatistoutpost" tags="outposttakeovermission" type="OutpostDestroy" requireCorrectLocationType="true" locations="city,research,military,colony,base,blockade,hospital,factory,shipyard" reward="20000" difficulty="4" commonness="0" allowretry="true" BlockLocationTypeChanges="true">
<OutpostDestroyMission name="Coalition Station-Takeover" identifier="cotakeover_separatistoutpost" tags="outposttakeovermission" type="OutpostDestroy" requireCorrectLocationType="true" locations="city,research,military,colony,base,blockade,hospital,factory,shipyard" reward="5000" difficulty="4" commonness="0" allowretry="true" BlockLocationTypeChanges="true">
<Reputation identifier="separatists" amount="-200" />
<Reputation identifier="coalition" amount="10" />
<Icon texture="Content/UI/MissionIcons.png" sourcerect="0,512,256,256" color="214,50,48" />
@@ -952,7 +952,7 @@
<message header="missionheader0.coalitiontakeover" text="missionmessage0.coalitiontakeover" />
<!-- <Metadata identifier="completedcoalitiontakeover" operation="Add" value="1"/> -->
</OutpostDestroyMission>
<OutpostDestroyMission name="Separatist Station-Takeover" identifier="septakeover_coalitionoutpost" tags="outposttakeovermission" type="OutpostDestroy" requireCorrectLocationType="true" locations="city,research,military,colony,base,blockade,hospital,factory,shipyard" reward="20000" difficulty="4" commonness="0" allowretry="true" BlockLocationTypeChanges="true">
<OutpostDestroyMission name="Separatist Station-Takeover" identifier="septakeover_coalitionoutpost" tags="outposttakeovermission" type="OutpostDestroy" requireCorrectLocationType="true" locations="city,research,military,colony,base,blockade,hospital,factory,shipyard" reward="5000" difficulty="4" commonness="0" allowretry="true" BlockLocationTypeChanges="true">
<Reputation identifier="coalition" amount="-200" />
<Reputation identifier="separatists" amount="10" />
<Icon texture="Content/UI/MissionIcons.png" sourcerect="0,512,256,256" color="214,50,48" />
@@ -1083,7 +1083,7 @@
<message header="missionheader0.surveyedminerals" text="missionmessage0.surveyedminerals" />
</MineralMission>
<!-- BACKWARDS COMPATIBILITY | THESE MISSIONS ARE UNOBTAINABLE THROUGH GAMEPLAY AND ONLY EXIST TO ALLOW OLDER CAMPAIGNS TO LOAD -->
<CrawlerLairMission identifier="crawlerlair" tags="" type="OutpostDestroy" textidentifier="destroylair" reward="14000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true">
<CrawlerLairMission identifier="crawlerlair" tags="" type="OutpostDestroy" textidentifier="destroylair" reward="3500" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="Lair" />
<LocationTypeChange from="Lair" to="None" requiredduration="1" cooldownafterchange="1" />
@@ -1111,7 +1111,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</CrawlerLairMission>
<MudraptorLairMission identifier="mudraptorlair" tags="" type="OutpostDestroy" textidentifier="destroylair" reward="16000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true">
<MudraptorLairMission identifier="mudraptorlair" tags="" type="OutpostDestroy" textidentifier="destroylair" reward="4000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="Lair" />
<LocationType identifier="LairMudraptor" />
@@ -1142,7 +1142,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</MudraptorLairMission>
<ThresherLairMission identifier="thresherlair" tags="" type="OutpostDestroy" textidentifier="destroylair" reward="18000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true">
<ThresherLairMission identifier="thresherlair" tags="" type="OutpostDestroy" textidentifier="destroylair" reward="4500" difficulty="4" commonness="100" allowretry="true" sonarlabel="Nest" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="Lair" />
<LocationType identifier="LairThresher" />
@@ -1181,7 +1181,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</ThresherLairMission>
<HuskCrawlerLairMission identifier="huskcrawlerlair" tags="" type="OutpostDestroy" reward="18000" difficulty="4" commonness="100" allowretry="true" sonarlabel="Target" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true">
<HuskCrawlerLairMission identifier="huskcrawlerlair" tags="" type="OutpostDestroy" reward="4500" difficulty="4" commonness="100" allowretry="true" sonarlabel="Target" unhideentitysubcategories="abandonedmonster" requireCorrectLocationType="true">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="214,50,48" />
<LocationType identifier="HuskgroundsDE" />
<LocationTypeChange from="HuskgroundsDE" to="MilitaryForces" requiredduration="1" cooldownafterchange="1" />
@@ -1195,7 +1195,7 @@
<message header="missionheader0.destroylair" text="missionmessage0.destroylair" />
<TriggerEvent state="0" eventidentifier="lairbombspawn" campaignonly="true" />
</HuskCrawlerLairMission>
<OutpostMission identifier="vipnapping" name="missionname.vipnapping" successmessage="missionsuccess.vipnapping" failuremessage="missionfailure.vipnapping" tags="vipnapping" type="AbandonedOutpost" alloworderingrescuees="false" reward="12000" difficulty="3" commonness="0" allowretry="true" hostageskilledmessage="vipkilled" BlockLocationTypeChanges="true">
<OutpostMission identifier="vipnapping" name="missionname.vipnapping" successmessage="missionsuccess.vipnapping" failuremessage="missionfailure.vipnapping" tags="vipnapping" type="AbandonedOutpost" alloworderingrescuees="false" reward="3000" difficulty="3" commonness="0" allowretry="true" hostageskilledmessage="vipkilled" BlockLocationTypeChanges="true">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="512,512,256,256" color="130,90,90" />
<LocationType identifier="colony" />
<LocationType identifier="city" />
@@ -1211,7 +1211,7 @@
<message header="missionheader0.vipnapping" text="missionmessage0.vipnapping" />
<Metadata identifier="vipnappingnorepeat" value="1" />
</OutpostMission>
<AbandonedOutpostMission identifier="silencewitness" tags="assasination" achievementidentifier="abandonedoutpostassassinate" type="OutpostDestroy" reward="12000" difficulty="3" commonness="100" allowretry="true" description="missiondescription.silencewitness" successmessage="missionsuccess.silencewitness" failuremessage="missionfailure.silencewitness">
<AbandonedOutpostMission identifier="silencewitness" tags="assasination" achievementidentifier="abandonedoutpostassassinate" type="OutpostDestroy" reward="3000" difficulty="3" commonness="100" allowretry="true" description="missiondescription.silencewitness" successmessage="missionsuccess.silencewitness" failuremessage="missionfailure.silencewitness">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="0,512,256,256" color="125,90,90,255" />
<LocationType identifier="Colony" />
<LocationType identifier="City" />
@@ -1226,7 +1226,7 @@
<Reputation identifier="bandits" amount="3" />
<Metadata identifier="silencewitnessnorepeat" value="1" />
</AbandonedOutpostMission>
<OutpostDestroyMission name="Hostage Situation" identifier="hostagesituation" tags="outposttakeovermission" type="OutpostDestroy" requireCorrectLocationType="true" reward="14000" difficulty="3" commonness="0" allowretry="true" BlockLocationTypeChanges="true" hostageskilledmessage="hostagesexecuted">
<OutpostDestroyMission name="Hostage Situation" identifier="hostagesituation" tags="outposttakeovermission" type="OutpostDestroy" requireCorrectLocationType="true" reward="3500" difficulty="3" commonness="0" allowretry="true" BlockLocationTypeChanges="true" hostageskilledmessage="hostagesexecuted">
<Reputation identifier="location" amount="5" />
<Icon texture="Content/UI/MissionIcons.png" sourcerect="512,512,256,256" color="60,125,125" />
<Characters>
@@ -1255,7 +1255,7 @@
<CompleteCheckDataAction identifier="hostagesituationresolved" condition="eq 1" />
<CompleteCheckDataAction identifier="hostagesalive" condition="eq 1" />
</OutpostDestroyMission>
<EscortMission identifier="escortmedivac" tags="escortmedivac,escort" type="Escort" difficulty="2" commonness="100" reward="8000" achievementidentifier="escortmission" baseescortedcharacters="1">
<EscortMission identifier="escortmedivac" tags="escortmedivac,escort" type="Escort" difficulty="2" commonness="100" reward="2000" achievementidentifier="escortmission" baseescortedcharacters="1">
<Characters>
<Character from="customnpcs" identifier="sickpatient">
<StatusEffect target="Character" delay="1" disabledeltatime="true">
@@ -1271,34 +1271,34 @@
<LocationType from="AnyOutpost" to="HuskChurch" />
<message header="missionheader0.escortmedivac" text="missionmessage0.escortmedivac" />
</EscortMission>
<SalvageMission identifier="retrieveindustrialwaste" name="missionname.retrieveindustrialwaste" description="missiondescription.retrieveindustrialwaste" successmessage="missionsuccess.retrieveindustrialwaste" failuremessage="missionfailure.retrieveindustrialwaste" tags="salvageindustrial" type="Salvage" difficulty="3" commonness="100" reward="8000" requireddeliveryamount="0.80" PartiallyRetrievedMessage="missionmessage.retrieveindustrialwaste.partiallyretrieved" AllRetrievedMessage="missionmessage.retrieveindustrialwaste.allretrieved">
<SalvageMission identifier="retrieveindustrialwaste" name="missionname.retrieveindustrialwaste" description="missiondescription.retrieveindustrialwaste" successmessage="missionsuccess.retrieveindustrialwaste" failuremessage="missionfailure.retrieveindustrialwaste" tags="salvageindustrial" type="Salvage" difficulty="3" commonness="100" reward="2000" requireddeliveryamount="0.80" PartiallyRetrievedMessage="missionmessage.retrieveindustrialwaste.partiallyretrieved" AllRetrievedMessage="missionmessage.retrieveindustrialwaste.allretrieved">
<Reputation identifier="location" amount="3" />
<Portrait texture="Content/Map/LocationPortraits/Wreck1.png" sourcerect="0,0,2160,1080" premultiplyalpha="false" />
<target spawntype="mainpath" itemidentifier="radioactivewaste" sonarlabel="missionsonarlabel.retrieveindustrialwaste" allowcontinuebeforeretrieved="true" requireretrieval="RetrievedToSub" hidelabelafterretrieved="false" minamount="5" maxamount="7"></target>
<LocationType from="AnyOutpost" to="AnyOutpost" />
<Icon texture="Content/UI/MissionIcons2.png" sourcerect="512,256,256,256" color="120,214,48" />
</SalvageMission>
<SalvageMission identifier="retrievehammerheadmucus" name="missionname.retrievehammerheadmucus" description="missiondescription.retrievehammerheadmucus" successmessage="missionsuccess.retrievehammerheadmucus" failuremessage="missionfailure.retrievehammerheadmucus" tags="salvagemedical" type="Salvage" difficulty="2" commonness="80" reward="8000" requireddeliveryamount="0.01" PartiallyRetrievedMessage="missionmessage.retrievehammerheadmucus.partiallyretrieved" AllRetrievedMessage="missionmessage.retrievehammerheadmucus.allretrieved">
<SalvageMission identifier="retrievehammerheadmucus" name="missionname.retrievehammerheadmucus" description="missiondescription.retrievehammerheadmucus" successmessage="missionsuccess.retrievehammerheadmucus" failuremessage="missionfailure.retrievehammerheadmucus" tags="salvagemedical" type="Salvage" difficulty="2" commonness="80" reward="2000" requireddeliveryamount="0.01" PartiallyRetrievedMessage="missionmessage.retrievehammerheadmucus.partiallyretrieved" AllRetrievedMessage="missionmessage.retrievehammerheadmucus.allretrieved">
<Reputation identifier="location" amount="3" />
<Portrait texture="Content/Map/LocationPortraits/Wreck1.png" sourcerect="0,0,2160,1080" premultiplyalpha="false" />
<target spawntype="mainpath" itemidentifier="hammerheadmucus" sonarlabel="missionsonarlabel.retrievehammerheadmucus" allowcontinuebeforeretrieved="true" requireretrieval="RetrievedToSub" hidelabelafterretrieved="false" minamount="4" maxamount="5"></target>
<LocationType from="AnyOutpost" to="AnyOutpost" />
<Icon texture="Content/UI/MissionIcons.png" sourcerect="256,256,256,256" color="140,160,90" />
</SalvageMission>
<MonsterMission identifier="salvagekillmoloch" textidentifier="salvagekillmoloch" tags="salvageartifact" type="Monster" difficulty="3" commonness="20" reward="14000" sonarlabel="missionsonarlabel.salvagekillmoloch" maxsonarmarkerdistance="10000" monsterfile="Molochblack">
<MonsterMission identifier="salvagekillmoloch" textidentifier="salvagekillmoloch" tags="salvageartifact" type="Monster" difficulty="3" commonness="20" reward="3500" sonarlabel="missionsonarlabel.salvagekillmoloch" maxsonarmarkerdistance="10000" monsterfile="Molochblack">
<Reputation identifier="location" amount="2" amountforopposingfaction="-2" />
<Icon texture="Content/UI/MissionIcons2.png" sourcerect="768,0,256,256" color="49,93,233" />
<message header="missionheader0.salvagekillmoloch" text="missionmessage0.salvagekillmoloch" />
</MonsterMission>
<!-- turns out for GoTo missions in outposts, you need to use a maxprogressstate that is >1, otherwise it will show up as completed in the menu! -->
<GotoMission name="" identifier="industrialincident" type="GoTo" difficulty="2" commonness="0" maxprogressstate="2" reward="12000" BlockLocationTypeChanges="true">
<GotoMission name="" identifier="industrialincident" type="GoTo" difficulty="2" commonness="0" maxprogressstate="2" reward="3000" BlockLocationTypeChanges="true">
<TriggerEvent state="1" delay="5" eventidentifier="industrialincidentevent" campaignonly="true" />
<LocationType identifier="Factory" />
<LocationType identifier="Shipyard" />
<CompleteCheckDataAction identifier="outpostfixed" condition="eq 1" />
<Icon texture="Content/UI/MissionIcons2.png" sourcerect="0,512,256,256" color="230,230,50" />
</GotoMission>
<GotoMission identifier="escortorangeboys" name="missionname.escortorangeboys" description="missiondescription.escortorangeboys" tags="escortfood" type="GoTo" difficulty="2" commonness="0" maxprogressstate="2" reward="10000" successmessage="missionsuccess.escortorangeboys" failuremessage="missionfailure.escortorangeboys">
<GotoMission identifier="escortorangeboys" name="missionname.escortorangeboys" description="missiondescription.escortorangeboys" tags="escortfood" type="GoTo" difficulty="2" commonness="0" maxprogressstate="2" reward="2500" successmessage="missionsuccess.escortorangeboys" failuremessage="missionfailure.escortorangeboys">
<Reputation identifier="location" amount="3" />
<Icon texture="Content/UI/MissionIcons.png" sourcerect="768,512,256,256" color="240,180,70" />
<LocationType from="Hydroponics" to="Outpost" />
@@ -1309,9 +1309,9 @@
<TriggerEvent state="0" delay="0" eventidentifier="escortorangeboysevent" />
<CompleteCheckDataAction identifier="escortedorangeboys" condition="eq 1" />
</GotoMission>
<CargoMission identifier="cargodefensebots" tags="cargodefensebots" type="Cargo" description="missiondescription.cargodefensebots" difficulty="2" commonness="100" reward="2000" achievementidentifier="cargomission" requireddeliveryamount="0.95">
<CargoMission identifier="cargodefensebots" tags="cargodefensebots" type="Cargo" description="missiondescription.cargodefensebots" difficulty="2" commonness="100" reward="500" achievementidentifier="cargomission" requireddeliveryamount="0.95">
<Items>
<Item identifier="cargodefensebot" reward="1600" maxcount="5" />
<Item identifier="cargodefensebot" reward="400" maxcount="5" />
</Items>
<Reputation identifier="location" amount="3" amountforopposingfaction="-3" />
<Icon texture="Content/UI/MissionIcons2.png" sourcerect="0,256,256,256" color="80,110,90" />
@@ -1326,10 +1326,10 @@
<LocationType from="AnyOutpost" to="Factory" />
<LocationType from="AnyOutpost" to="Shipyard" />
</CargoMission>
<CargoMission identifier="cargodefensebots_defective" tags="cargodefensebots" type="Cargo" description="missiondescription.cargodefensebots" difficulty="2" commonness="20" reward="2000" achievementidentifier="cargomission" requireddeliveryamount="0.75">
<CargoMission identifier="cargodefensebots_defective" tags="cargodefensebots" type="Cargo" description="missiondescription.cargodefensebots" difficulty="2" commonness="20" reward="500" achievementidentifier="cargomission" requireddeliveryamount="0.75">
<Items>
<Item identifier="cargodefensebot" reward="1600" maxcount="4" />
<Item identifier="cargodefensebot_defective" reward="1600" maxcount="1" />
<Item identifier="cargodefensebot" reward="400" maxcount="4" />
<Item identifier="cargodefensebot_defective" reward="400" maxcount="1" />
</Items>
<Reputation identifier="location" amount="3" amountforopposingfaction="-3" />
<Icon texture="Content/UI/MissionIcons2.png" sourcerect="0,256,256,256" color="80,110,90" />
@@ -1345,7 +1345,7 @@
<LocationType from="AnyOutpost" to="Shipyard" />
</CargoMission>
<!-- turns out for GoTo missions in outposts, you need to use a maxprogressstate that is >1, otherwise it will show up as completed in the menu! -->
<GotoMission name="" identifier="alcoholcontraband" type="GoTo" difficulty="1" commonness="0" maxprogressstate="2" reward="6000" BlockLocationTypeChanges="true">
<GotoMission name="" identifier="alcoholcontraband" type="GoTo" difficulty="1" commonness="0" maxprogressstate="2" reward="1500" BlockLocationTypeChanges="true">
<Reputation identifier="bandits" amount="3" />
<TriggerEvent state="1" delay="5" eventidentifier="alcoholcontrabandevent" campaignonly="true" />
<LocationType identifier="Settlement" />
@@ -1365,7 +1365,7 @@
<!-- CULT OF HUSK RELATED missions -->
<CargoMission identifier="huskmedicalcargo" tags="cargohusk" type="Cargo" difficulty="1" commonness="100" achievementidentifier="cargomission">
<Items>
<Item identifier="mediccrate" reward="1000" maxcount="10">
<Item identifier="mediccrate" reward="250" maxcount="10">
<Item identifier="antibiotics" amount="5" />
<Item identifier="stabilozine" amount="3" />
</Item>
@@ -1376,7 +1376,7 @@
</CargoMission>
<CargoMission identifier="huskeggsmuggling" tags="cargohusk,cargosmugglinghusk" type="Cargo" difficulty="1" commonness="100" achievementidentifier="cargomission">
<Items>
<Item identifier="mediccrate" reward="2000" maxcount="5">
<Item identifier="mediccrate" reward="500" maxcount="5">
<Item identifier="antidama1" amount="2" />
<Item identifier="antidama2" amount="2" />
<Item identifier="antibloodloss1" amount="1" />
@@ -1393,7 +1393,7 @@
</CargoMission>
<CargoMission identifier="keepwetcargo" tags="cargohusk" type="Cargo" textidentifier="keepwetcargo" description="missiondescription.keepwetcargo" difficulty="1" commonness="100" achievementidentifier="cargomission">
<Items>
<Item identifier="biocrate" reward="8000" maxcount="1" />
<Item identifier="biocrate" reward="2000" maxcount="1" />
</Items>
<Reputation identifier="location" amount="3" />
<Icon texture="Content/UI/MissionIcons2.png" sourcerect="512,256,256,256" color="50,70,150" />
@@ -1405,7 +1405,7 @@
<LocationType from="AnyOutpost" to="City" />
<message header="missionheader0.keepwetcargo" text="missionmessage0.keepwetcargo" />
</CargoMission>
<EscortMission identifier="escorthuskvip" tags="escortVIP,escort" type="Escort" difficulty="2" commonness="100" reward="12000" achievementidentifier="escortmission">
<EscortMission identifier="escorthuskvip" tags="escortVIP,escort" type="Escort" difficulty="2" commonness="100" reward="3000" achievementidentifier="escortmission">
<Characters>
<Character from="husknpcsmission" identifier="huskvip" escortidentifier="vip" color="40,140,80">
<StatusEffect target="Character" delay="1" disabledeltatime="true">
@@ -1423,7 +1423,7 @@
<LocationType from="AnyOutpost" to="City" />
<message header="missionheader0.escort2" text="missionmessage0.escort2" />
</EscortMission>
<MineralMission identifier="slimecollection" textIdentifier="slimecollection" tags="collectplants,collectplants_set1,collectplants_cave" type="Mineral" difficulty="1" commonness="100" resourceHandoverAmount="0.4" positionType="cave" reward="8000">
<MineralMission identifier="slimecollection" textIdentifier="slimecollection" tags="collectplants,collectplants_set1,collectplants_cave" type="Mineral" difficulty="1" commonness="100" resourceHandoverAmount="0.4" positionType="cave" reward="2000">
<Items>
<Item identifier="slimebacteria" />
<Item identifier="slimebacteria" />
@@ -1436,7 +1436,7 @@
<Reputation identifier="huskcult" amount="3" />
<message header="missionheader0.slimecollection" text="missionmessage0.slimecollection" />
</MineralMission>
<EscortMission identifier="escorthuskterrorist" tags="escortterrorists,escortterroristshusk,escort" type="Escort" difficulty="2" commonness="100" reward="10000" achievementidentifier="escortmission" baseescortedcharacters="1" scalingescortedcharacters="0.35" terroristchance="0.35" terroristannouncedialogtag="huskterroristannounce">
<EscortMission identifier="escorthuskterrorist" tags="escortterrorists,escortterroristshusk,escort" type="Escort" difficulty="2" commonness="100" reward="2500" achievementidentifier="escortmission" baseescortedcharacters="1" scalingescortedcharacters="0.35" terroristchance="0.35" terroristannouncedialogtag="huskterroristannounce">
<Characters>
<Character from="escortnpcs1" identifier="commoner" />
</Characters>
@@ -1458,7 +1458,7 @@
<message header="missionheader0.escorthuskterrorist" text="missionmessage0.escorthuskterrorist" />
<message header="missionheader1.escorthuskterrorist" text="missionmessage1.escorthuskterrorist" />
</EscortMission>
<OutpostMission identifier="jailbreak_husk" name="missionname.jailbreak_husk" successmessage="missionsuccess.jailbreak" failuremessage="missionfailure.jailbreak" tags="jailbreak_husk" type="AbandonedOutpost" reward="12000" difficulty="3" commonness="100" allowretry="true" hostageskilledmessage="prisonerkilled">
<OutpostMission identifier="jailbreak_husk" name="missionname.jailbreak_husk" successmessage="missionsuccess.jailbreak" failuremessage="missionfailure.jailbreak" tags="jailbreak_husk" type="AbandonedOutpost" reward="3000" difficulty="3" commonness="100" allowretry="true" hostageskilledmessage="prisonerkilled">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="512,256,256,256" color="40,140,80" />
<LocationType identifier="Colony" />
<LocationType identifier="City" />
@@ -1472,7 +1472,7 @@
<message header="missionheader0.prisonerrescue" text="missionmessage0.prisonerrescue" />
</OutpostMission>
<!-- add event? -->
<AbandonedOutpostMission identifier="assassinatehuskresearcher" tags="assasination" achievementidentifier="abandonedoutpostassassinate" type="OutpostDestroy" reward="12000" difficulty="3" commonness="100" allowretry="true" sonarlabel="target">
<AbandonedOutpostMission identifier="assassinatehuskresearcher" tags="assasination" achievementidentifier="abandonedoutpostassassinate" type="OutpostDestroy" reward="3000" difficulty="3" commonness="100" allowretry="true" sonarlabel="target">
<Icon texture="Content/UI/MissionIcons.png" sourcerect="0,512,256,256" color="214,50,48" />
<LocationType identifier="huskchurch" />
<Characters>
@@ -1487,7 +1487,7 @@
<PirateMission type="Pirate" identifier="huskcultattack1" tags="huskcultattack" showinmenus="false" showstartmessage="false" issideobjective="true" achievementidentifier="combatmissionseparatistsvscoalition" difficulty="4" commonness="0" reward="0" addedmissiondifficultyperplayer="8">
<Reputation identifier="huskchurch" amount="-5" />
<SubmarineTypes>
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Husk/Huskedsub.sub" faction="huskcult" preferreddifficulty="40" alternatereward="12800" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Husk/Huskedsub.sub" faction="huskcult" preferreddifficulty="40" alternatereward="3200" />
</SubmarineTypes>
<Characters>
<Character typeidentifier="huskcultcaptain" minamount="1" maxamount="1">
@@ -1547,7 +1547,7 @@
<Reputation identifier="separatists" amount="15" amountforopposingfaction="-5" />
<Reputation identifier="huskchurch" amount="-15" />
<SubmarineTypes>
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Husk/Huskedsub.sub" faction="huskcult" preferreddifficulty="10" alternatereward="12800" />
<Submarine path="%ModDir:2532991202%/EnemySubmarines/Husk/Huskedsub.sub" faction="huskcult" preferreddifficulty="10" alternatereward="3200" />
</SubmarineTypes>
<Characters>
<Character typeidentifier="huskcultcaptain" minamount="1" maxamount="1">
@@ -1603,7 +1603,7 @@
<LocationType from="AnyOutpost" to="AnyOutpost" />
<Metadata identifier="huskinterceptionmissionnorepeat" value="1" />
</PirateMission>
<GotoMission identifier="capturelivecrawler" name="missionname.livecapture" description="missiondescription.livecapture" tags="capturemission" type="GoTo" difficulty="3" commonness="0" reward="14000" successmessage="missionsuccess.livecapture" failuremessage="missionfailure.livecapture">
<GotoMission identifier="capturelivecrawler" name="missionname.livecapture" description="missiondescription.livecapture" tags="capturemission" type="GoTo" difficulty="3" commonness="0" reward="3500" successmessage="missionsuccess.livecapture" failuremessage="missionfailure.livecapture">
<Reputation identifier="huskcult" amount="5" />
<Icon texture="Content/UI/MissionIcons2.png" sourcerect="768,768,256,256" color="60,120,90" />
<LocationType from="Anyoutpost" to="Huskchurch" />
@@ -1612,7 +1612,7 @@
<CompleteCheckDataAction identifier="capturedlivetarget" condition="eq 1" />
<Metadata identifier="capturelivecrawlernorepeat" value="1" />
</GotoMission>
<GotoMission identifier="chimerasamples" name="missionname.chimerasamples" description="missiondescription.chimerasamples" tags="capturemission" type="GoTo" difficulty="3" commonness="0" reward="14000" successmessage="missionsuccess.chimerasamples" failuremessage="missionfailure.chimerasamples">
<GotoMission identifier="chimerasamples" name="missionname.chimerasamples" description="missiondescription.chimerasamples" tags="capturemission" type="GoTo" difficulty="3" commonness="0" reward="3500" successmessage="missionsuccess.chimerasamples" failuremessage="missionfailure.chimerasamples">
<Reputation identifier="huskcult" amount="5" />
<Icon texture="Content/UI/MissionIcons2.png" sourcerect="768,768,256,256" color="60,120,90" />
<LocationType from="Anyoutpost" to="Anyoutpost" />
@@ -1649,7 +1649,7 @@
identifier="industrialsabotage"
tags="industrialsabotage"
type="OutpostDestroy"
reward="4000"
reward="1000"
difficulty="2"
commonness="100"
allowretry="true"
@@ -1671,7 +1671,7 @@
commonness="50"
resourceHandoverAmount="0.25"
positionType="mainpath"
reward="4800">
reward="1200">
<Items>
<Item identifier="lithomorphspawnerpyromorphite" />
<Item identifier="pyromorphite" />
@@ -1705,7 +1705,7 @@
difficulty="2"
commonness="30"
resourceHandoverAmount="0.25"
reward="6400">
reward="1600">
<Items>
<Item identifier="lithomorphspawnergalena" />
<Item identifier="galena" />
@@ -1739,7 +1739,7 @@
difficulty="2"
commonness="75"
resourceHandoverAmount="0.33"
reward="8400">
reward="2100">
<Items>
<Item identifier="lithomorphspawnertriphylite" />
<Item identifier="triphylite" />
@@ -1771,7 +1771,7 @@
difficulty="2"
commonness="30"
resourceHandoverAmount="0.25"
reward="9600">
reward="2400">
<Items>
<Item identifier="ilmenite" />
<Item identifier="ilmenite" />
@@ -1805,7 +1805,7 @@
difficulty="2"
commonness="50"
resourceHandoverAmount="0.33"
reward="10800">
reward="2700">
<Items>
<Item identifier="lithomorphspawnertitanite" />
<Item identifier="titanite" />
@@ -1835,7 +1835,7 @@
tags="huskbeaconmission"
type="Beacon"
difficulty="1"
reward="6000"
reward="1500"
sideobjective="false">
<Reputation identifier="huskchurch" amount="5" />
<SubmarineTypes>
@@ -1855,9 +1855,9 @@
type="Beacon"
difficulty="2"
commonness="100"
reward="6000">
reward="1500">
<SubmarineTypes>
<Submarine path="Content/Map/BeaconStations/BeaconStation2_AlienResearch.sub" faction="huskcult" alternatereward="12800"/>
<Submarine path="Content/Map/BeaconStations/BeaconStation2_AlienResearch.sub" faction="huskcult" alternatereward="3200"/>
</SubmarineTypes>
<monsters commonness="100">
<monster character="Crawler" min="0" max="8"/>
@@ -1884,7 +1884,7 @@
tags="assasination"
achievementidentifier="abandonedoutpostassassinate"
type="OutpostDestroy"
reward="12000"
reward="3000"
difficulty="3"
commonness="100"
allowretry="true"
@@ -1899,7 +1899,7 @@
<Metadata identifier="poisonchalicemissionnorepeat" value="1"/>
</OutpostMission> -->
<!-- Unused. BUGGED. TODO: reenable multiple documents if ever fixed -->
<!-- <SalvageMission identifier="stealingintel" tags="stealintel" type="Salvage" difficulty="3" commonness="0" reward="12000" sonarlabel="target" spawntype="Outpost" showmessagewhenpickedup="true" itemidentifier="documents" removeitem="true" containertag="admincabinet" requirewreck="false" BlockLocationTypeChanges="true">
<!-- <SalvageMission identifier="stealingintel" tags="stealintel" type="Salvage" difficulty="3" commonness="0" reward="3000" sonarlabel="target" spawntype="Outpost" showmessagewhenpickedup="true" itemidentifier="documents" removeitem="true" containertag="admincabinet" requirewreck="false" BlockLocationTypeChanges="true">
<Reputation identifier="coalition" amount="-10" />
<Reputation identifier="separatists" amount="10" />
<Icon texture="Content/UI/MissionIcons2.png" sourcerect="0,512,256,256" color="49,93,233" />
@@ -1961,7 +1961,7 @@
type="Salvage"
difficulty="3"
commonness="100"
reward="8000"
reward="2000"
requireddeliveryamount="1"
PartiallyRetrievedMessage="missionmessage.findhiddenpylons.partiallyretrieved"
AllRetrievedMessage="missionmessage.findhiddenpylons.allretrieved">
@@ -2017,7 +2017,7 @@
type="Salvage"
difficulty="5"
commonness="0"
reward="8000"
reward="2000"
requirewreck="false">
<target
@@ -2044,7 +2044,7 @@
type="GoTo"
difficulty="3"
commonness="0"
reward="14000"
reward="3500"
successmessage="missionsuccess.rescuestrandeddivers"
failuremessage="missionfailure.rescuestrandeddivers">
<Reputation identifier="location" amount="3" />

View File

@@ -33,7 +33,7 @@
<ItemContainer selectkey="Action" capacity="0" itemsperrow="0" canbeselected="true" hideitems="true" msg="ItemMsgInteractSelect">
<GuiFrame relativesize="0.25,0.15" absoluteoffset="0,0.15" anchor="BottomCenter" style="ItemUI" />
<Containable items="none" />
<SubContainer capacity="45" itemsperrow="5">
<SubContainer capacity="15" itemsperrow="5">
<Containable items="smallitem,mediumitem,ammobox,deepdiving,largeitem" />
</SubContainer>
</ItemContainer>

View File

@@ -122,9 +122,9 @@
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
<input name="toggle" />
<input name="set_state" />
<output name="state_out" maxwires="40" />
<output name="condition_out" maxwires="40" />
<output name="activate_out" maxwires="40" />
<output name="state_out" maxwires="10" />
<output name="condition_out" maxwires="10" />
<output name="activate_out" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="door" ID="143" markedfordeconstruction="false" rect="-320,-256,24,208" linked="151" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="255,255,255,255" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="weldable,door,containmentdoor" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.51" HiddenInGame="False" conditionpercentage="100">
@@ -138,16 +138,16 @@
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
<input name="toggle" />
<input name="set_state" />
<output name="state_out" maxwires="40" />
<output name="condition_out" maxwires="40" />
<output name="activate_out" maxwires="40" />
<output name="state_out" maxwires="10" />
<output name="condition_out" maxwires="10" />
<output name="activate_out" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="lever" ID="148" markedfordeconstruction="false" rect="64,-256,31,31" NonInteractable="False" NonPlayerTeamInteractable="False" AllowSwapping="True" Rotation="0" Scale="0.5" SpriteColor="255,255,255,255" InventoryIconColor="255,255,255,255" ContainerColor="255,255,255,255" InvulnerableToDamage="False" Tags="smallitem,switch,mineentrance" DisplaySideBySideWhenLinked="False" DisallowedUpgrades="" SpriteDepth="0.79" HiddenInGame="False" conditionpercentage="100">
<Controller IsToggle="True" Output="1" FalseOutput="0" State="False" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPressSelect" />
<ConnectionPanel Locked="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgRewireScrewdriver">
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
<output name="signal_out" maxwires="40" />
<output name="signal_out" maxwires="10" />
</ConnectionPanel>
<Holdable Attached="True" SpriteDepthWhenDropped="0.55" PickingTime="10" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgDetachWrench">
<requireditem items="wrench" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
@@ -157,7 +157,7 @@
<Controller IsToggle="True" Output="1" FalseOutput="0" State="False" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPressSelect" />
<ConnectionPanel Locked="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgRewireScrewdriver">
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
<output name="signal_out" maxwires="40" />
<output name="signal_out" maxwires="10" />
</ConnectionPanel>
<Holdable Attached="True" SpriteDepthWhenDropped="0.55" PickingTime="10" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgDetachWrench">
<requireditem items="wrench" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
@@ -167,7 +167,7 @@
<Controller IsToggle="True" Output="1" FalseOutput="0" State="False" PickingTime="0" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgPressSelect" />
<ConnectionPanel Locked="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgRewireScrewdriver">
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
<output name="signal_out" maxwires="40" />
<output name="signal_out" maxwires="10" />
</ConnectionPanel>
<Holdable Attached="True" SpriteDepthWhenDropped="0.55" PickingTime="10" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgDetachWrench">
<requireditem items="wrench" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
@@ -179,7 +179,7 @@
</Controller>
<ConnectionPanel Locked="False" PickingTime="0" CanBePicked="False" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgRewireScrewdriver">
<requireditem items="screwdriver" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />
<output name="signal_out" maxwires="40" />
<output name="signal_out" maxwires="10" />
</ConnectionPanel>
<Holdable Attached="True" SpriteDepthWhenDropped="0.55" PickingTime="10" CanBePicked="True" LockGuiFramePosition="False" GuiFrameOffset="0,0" AllowInGameEditing="True" Msg="ItemMsgDetachWrench">
<requireditem items="wrench" type="Equipped" characterinventoryslottype="None" optional="false" ignoreineditor="false" excludebroken="true" requireempty="false" excludefullcondition="false" targetslot="-1" allowvariants="true" rotation="0" setactive="false" />

View File

@@ -73,10 +73,10 @@
<input name="shutdown" displayname="connection.shutdown">
<StatusEffect type="OnUse" target="This" condition="-100" setvalue="true" />
</input>
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="40" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="40" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="10" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="10" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Pest Nest" identifier="cavepestspawner" category="Alien" Tags="alien,pestnest" scale="0.4" damagedbyexplosions="true" damagedbyprojectiles="true" damagedbyrepairtools="true" damagedbymeleeweapons="true" health="5">

View File

@@ -14,7 +14,7 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Triggered Effect - Water Leak (Small)" identifier="effect_trigger_leak_water_small" tags="effect" scale="0.25" spritecolor="0,150,255,255" health="100" hiddeningame="true" damagedbyrepairtools="false" allowrotatingineditor="false" allowedlinks="gap,door" linkable="true">
@@ -30,7 +30,7 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Continuous Effect - Water Leak (Large)" identifier="effect_leak_water_large" tags="effect" scale="0.25" spritecolor="0,150,255,255" health="100" hiddeningame="true" damagedbyrepairtools="false" allowrotatingineditor="false" allowedlinks="gap,door" linkable="true">
@@ -64,7 +64,7 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Continuous Effect - Short Circuit" identifier="effect_shortcircuit" tags="effect" scale="0.25" spritecolor="255,215,0,255" health="100" hiddeningame="true" damagedbyrepairtools="false" allowrotatingineditor="false" allowedlinks="gap,door" linkable="true">
@@ -89,7 +89,7 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Continuous Effect - Lava" identifier="effect_lava" tags="effect" scale="0.25" spritecolor="255,0,0,255" health="100" hiddeningame="true" damagedbyrepairtools="false" allowrotatingineditor="false" allowedlinks="gap,door" linkable="true">

View File

@@ -364,7 +364,7 @@
</StatusEffect>
<StatusEffect type="OnBroken" target="This" capacity="0" allowaccess="false" drawinventory="false" setvalue="true" />
</Holdable>
<ItemContainer capacity="50" keepopenwhenequipped="false" movableframe="true" spawnwithid="revolver,revolver,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel">
<ItemContainer capacity="18" keepopenwhenequipped="false" movableframe="true" spawnwithid="revolver,revolver,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel,revolverrounddepletedfuel">
<Containable items="weapon,gun,weaponsmith,grenade,smgammo,shotgunammo,stungunammo,harpoonammo,rifleammo,hmgammo,revolverammo,pistolammoitem,ammo,ammunition,bullet,assaultrifleammo" />
</ItemContainer>
</Item>
@@ -386,7 +386,7 @@
</StatusEffect>
<StatusEffect type="OnBroken" target="This" capacity="0" allowaccess="false" drawinventory="false" setvalue="true" />
</Holdable>
<ItemContainer capacity="50" keepopenwhenequipped="false" movableframe="true" spawnwithid="smg,smgmagazine,smgmagazine,smgmagazine,smgmagazine,smgmagazinedepletedfuel,smgmagazinedepletedfuel,smgmagazinedepletedfuel,smgmagazinedepletedfuel">
<ItemContainer capacity="18" keepopenwhenequipped="false" movableframe="true" spawnwithid="smg,smgmagazine,smgmagazine,smgmagazine,smgmagazine,smgmagazinedepletedfuel,smgmagazinedepletedfuel,smgmagazinedepletedfuel,smgmagazinedepletedfuel">
<Containable items="weapon,gun,weaponsmith,grenade,smgammo,shotgunammo,stungunammo,harpoonammo,rifleammo,hmgammo,revolverammo,pistolammoitem,ammo,ammunition,bullet,assaultrifleammo" />
</ItemContainer>
</Item>
@@ -408,7 +408,7 @@
</StatusEffect>
<StatusEffect type="OnBroken" target="This" capacity="0" allowaccess="false" drawinventory="false" setvalue="true" />
</Holdable>
<ItemContainer capacity="50" keepopenwhenequipped="false" movableframe="true" spawnwithid="shotgun,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell">
<ItemContainer capacity="18" keepopenwhenequipped="false" movableframe="true" spawnwithid="shotgun,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell,shotgunshell">
<Containable items="weapon,gun,weaponsmith,grenade,smgammo,shotgunammo,stungunammo,harpoonammo,rifleammo,hmgammo,revolverammo,pistolammoitem,ammo,ammunition,bullet,assaultrifleammo" />
</ItemContainer>
</Item>
@@ -430,7 +430,7 @@
</StatusEffect>
<StatusEffect type="OnBroken" target="This" capacity="0" allowaccess="false" drawinventory="false" setvalue="true" />
</Holdable>
<ItemContainer capacity="50" keepopenwhenequipped="false" movableframe="true" spawnwithid="autoshotgun,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive">
<ItemContainer capacity="18" keepopenwhenequipped="false" movableframe="true" spawnwithid="autoshotgun,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive,shotgunslugexplosive">
<Containable items="weapon,gun,weaponsmith,grenade,smgammo,shotgunammo,stungunammo,harpoonammo,rifleammo,hmgammo,revolverammo,pistolammoitem,ammo,ammunition,bullet,assaultrifleammo" />
</ItemContainer>
</Item>
@@ -452,7 +452,7 @@
</StatusEffect>
<StatusEffect type="OnBroken" target="This" capacity="0" allowaccess="false" drawinventory="false" setvalue="true" />
</Holdable>
<ItemContainer capacity="50" keepopenwhenequipped="false" movableframe="true" spawnwithid="assaultrifle,assaultriflemagazine,assaultriflemagazine,assaultriflemagazine,assaultriflemagazine,assaultriflemagazine">
<ItemContainer capacity="18" keepopenwhenequipped="false" movableframe="true" spawnwithid="assaultrifle,assaultriflemagazine,assaultriflemagazine,assaultriflemagazine,assaultriflemagazine,assaultriflemagazine">
<Containable items="weapon,gun,weaponsmith,grenade,smgammo,shotgunammo,stungunammo,harpoonammo,rifleammo,hmgammo,revolverammo,pistolammoitem,ammo,ammunition,bullet,assaultrifleammo,ammobox,deepdiving,smallitem,mediumitem,largeitem" />
</ItemContainer>
</Item>
@@ -474,7 +474,7 @@
</StatusEffect>
<StatusEffect type="OnBroken" target="This" capacity="0" allowaccess="false" drawinventory="false" setvalue="true" />
</Holdable>
<ItemContainer capacity="50" keepopenwhenequipped="false" movableframe="true" spawnwithid="grenadelauncher,40mmgrenade,40mmgrenade,40mmgrenade,40mmgrenade,40mmgrenade,40mmgrenade,40mmgrenade,40mmgrenade">
<ItemContainer capacity="18" keepopenwhenequipped="false" movableframe="true" spawnwithid="grenadelauncher,40mmgrenade,40mmgrenade,40mmgrenade,40mmgrenade,40mmgrenade,40mmgrenade,40mmgrenade,40mmgrenade">
<Containable items="weapon,gun,weaponsmith,grenade,smgammo,shotgunammo,stungunammo,harpoonammo,rifleammo,hmgammo,revolverammo,pistolammoitem,ammo,ammunition,bullet,assaultrifleammo,ammobox,deepdiving,smallitem,mediumitem,largeitem" />
</ItemContainer>
</Item>
@@ -496,7 +496,7 @@
</StatusEffect>
<StatusEffect type="OnBroken" target="This" capacity="0" allowaccess="false" drawinventory="false" setvalue="true" />
</Holdable>
<ItemContainer capacity="50" keepopenwhenequipped="false" movableframe="true" spawnwithid="hmg,hmgmagazine,hmgmagazine,hmgmagazine,hmgmagazine">
<ItemContainer capacity="18" keepopenwhenequipped="false" movableframe="true" spawnwithid="hmg,hmgmagazine,hmgmagazine,hmgmagazine,hmgmagazine">
<Containable items="weapon,gun,weaponsmith,grenade,smgammo,shotgunammo,stungunammo,harpoonammo,rifleammo,hmgammo,revolverammo,pistolammoitem,ammo,ammunition,bullet,assaultrifleammo,ammobox,deepdiving,smallitem,mediumitem,largeitem" />
</ItemContainer>
</Item>
@@ -729,12 +729,12 @@
<input name="signal_in2" displayname="connection.signalinx~[num]=2" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="40" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="10" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="10" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="10" />
</ConnectionPanel>
</Item>
<!-- OUTPOST TAKEOVER -->

View File

@@ -45,7 +45,7 @@
</ItemContainer>
<aitarget sightrange="2000" soundrange="5000" fadeouttime="5" />
<Quality>
<QualityStat stattype="FirepowerMultiplier" value="0.9" />
<QualityStat stattype="FirepowerMultiplier" value="0.3" />
</Quality>
<Upgrade gameversion="0.10.0.0" scale="0.5" />
<SkillRequirementHint identifier="weapons" level="40" />
@@ -109,7 +109,7 @@
</ItemContainer>
<aitarget sightrange="2000" soundrange="4000" fadeouttime="5" />
<Quality>
<QualityStat stattype="FirepowerMultiplier" value="0.9" />
<QualityStat stattype="FirepowerMultiplier" value="0.3" />
</Quality>
<Upgrade gameversion="0.10.0.0" scale="0.5" />
<SkillRequirementHint identifier="weapons" level="50" />
@@ -174,7 +174,7 @@
</ItemContainer>
<aitarget sightrange="3000" soundrange="5000" fadeouttime="5" />
<Quality>
<QualityStat stattype="FirepowerMultiplier" value="0.9" />
<QualityStat stattype="FirepowerMultiplier" value="0.3" />
</Quality>
<Upgrade gameversion="0.10.0.0" scale="0.5" />
<SkillRequirementHint identifier="weapons" level="50" />
@@ -237,7 +237,7 @@
</ItemContainer>
<aitarget sightrange="2000" soundrange="4000" fadeouttime="5" />
<Quality>
<QualityStat stattype="FirepowerMultiplier" value="0.9" />
<QualityStat stattype="FirepowerMultiplier" value="0.3" />
</Quality>
<SkillRequirementHint identifier="weapons" level="50" />
</Item>
@@ -292,7 +292,7 @@
</ItemContainer>
<aitarget sightrange="2000" soundrange="4000" fadeouttime="5" />
<Quality>
<QualityStat stattype="FirepowerMultiplier" value="0.9" />
<QualityStat stattype="FirepowerMultiplier" value="0.3" />
</Quality>
<SkillRequirementHint identifier="weapons" level="60" />
</Item>

View File

@@ -121,7 +121,7 @@
<input name="activate" displayname="connection.activate">
<StatusEffect type="OnUse" target="This" condition="-100" setvalue="true" />
</input>
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
</ConnectionPanel>
</Item>
</Items>

View File

@@ -379,7 +379,7 @@
<StatusEffect type="OnContaining" target="This" Voltage="1.0" setvalue="true" />
</Containable>
</SubContainer>
<SubContainer capacity="50">
<SubContainer capacity="30">
<Containable items="smallitem,ammobox,deepdiving,mediumitem,largeitem" />
</SubContainer>
</ItemContainer>

BIN
EK_Marauder2_Mk-II/EK_Marauder2_Mk-I.sub (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<contentpackage name="EK_Marauder2_Mk-II" modversion="1.0.5" corepackage="False" steamworkshopid="3357551865" gameversion="1.6.19.1" >
<Submarine file="%ModDir%/EK_Marauder2_Mk-I.sub" />
</contentpackage>

BIN
FDF-Vulture/FDF-Vulture.sub (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<contentpackage name="FDF-Vulture" modversion="1.0.29" corepackage="False" steamworkshopid="2782233361" gameversion="1.4.6.0" >
<Submarine file="%ModDir%/FDF-Vulture.sub" />
</contentpackage>

BIN
IKATERE/Ikatere.sub (Stored with Git LFS)

Binary file not shown.

BIN
IKATERE/Kaeaea G-120.sub (Stored with Git LFS)

Binary file not shown.

BIN
IKATERE/Kaeaea S-60.sub (Stored with Git LFS)

Binary file not shown.

BIN
IKATERE/Kaeaea XR-140.sub (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<contentpackage name="IKATERE" modversion="1.0.20" corepackage="False" steamworkshopid="2697440509" gameversion="1.2.8.0" >
<Submarine file="%ModDir%/Kaeaea G-120.sub" />
<Submarine file="%ModDir%/Kaeaea XR-140.sub" />
<Submarine file="%ModDir%/Kaeaea S-60.sub" />
<Submarine file="%ModDir%/Ikatere.sub" />
</contentpackage>

BIN
IMC FORTUNA/IMC FORTUNA II.sub (Stored with Git LFS)

Binary file not shown.

BIN
IMC FORTUNA/IMC FORTUNA III DEMO.sub (Stored with Git LFS)

Binary file not shown.

BIN
IMC FORTUNA/IMC FORTUNA III.sub (Stored with Git LFS)

Binary file not shown.

BIN
IMC FORTUNA/IMC FORTUNA T2 SHUTTLE.sub (Stored with Git LFS)

Binary file not shown.

BIN
IMC FORTUNA/IMC FORTUNA T3 SHUTTLE.sub (Stored with Git LFS)

Binary file not shown.

BIN
IMC FORTUNA/IMC FORTUNA.sub (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<contentpackage name="IMC FORTUNA" modversion="1.0.13" corepackage="False" steamworkshopid="3170267552" gameversion="1.4.6.0" >
<Submarine file="%ModDir%/IMC FORTUNA III DEMO.sub" />
<Submarine file="%ModDir%/IMC FORTUNA T2 SHUTTLE.sub" />
<Submarine file="%ModDir%/IMC FORTUNA T3 SHUTTLE.sub" />
<Submarine file="%ModDir%/IMC FORTUNA II.sub" />
<Submarine file="%ModDir%/IMC FORTUNA III.sub" />
<Submarine file="%ModDir%/IMC FORTUNA.sub" />
</contentpackage>

View File

@@ -93,17 +93,17 @@
<input name="power_in" displayname="connection.powerin" />
<input name="transducer_in" displayname="connection.sonartransducerin" />
<input name="velocity_in" displayname="connection.steeringvelocityin" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="40" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="40" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="40" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="40" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="40" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="40" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="40" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="10" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="10" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="10" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="10" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="10" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="10" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="10" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="10" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" deteriorationspeed="0.125" mindeteriorationdelay="180" maxdeteriorationdelay="720" mindeteriorationcondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,280" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />
@@ -195,7 +195,7 @@
<requireditem items="screwdriver" type="Equipped" />
<input name="power_in" displayname="connection.powerin" />
<input name="transducer_in" displayname="connection.sonartransducerin" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" fixDurationHighSkill="5" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,280" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />
@@ -291,15 +291,15 @@
<input name="power_in" displayname="connection.powerin" />
<input name="transducer_in" displayname="connection.sonartransducerin" />
<input name="velocity_in" displayname="connection.steeringvelocityin" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="40" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="40" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="40" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="40" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="40" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="10" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="10" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="10" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="10" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="10" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="10" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" fixDurationHighSkill="10" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,280" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />

BIN
Kasserine/Kasserine.sub (Stored with Git LFS)

Binary file not shown.

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<contentpackage name="Kasserine" modversion="1.0.10" corepackage="False" steamworkshopid="2902312635" gameversion="1.6.19.1" >
<Submarine file="%ModDir%/Kasserine.sub" />
</contentpackage>

View File

@@ -17,7 +17,7 @@
<Sprite texture="%ModDir%/Images/InGameItemIconAtlas.png" depth="0.54" sourcerect="10,578,146,82" origin="0.5,0.5" />
<Body width="145" height="85" density="50" />
<Holdable slots="RightHand+LeftHand" holdpos="0,-80" handle1="-20,14" handle2="20,14" aimable="false" msg="ItemMsgPickUpSelect" />
<ItemContainer capacity="50" canbeselected="false" hideitems="true" keepopenwhenequipped="true" movableframe="true">
<ItemContainer capacity="36" canbeselected="false" hideitems="true" keepopenwhenequipped="true" movableframe="true">
<Containable items="smallitem,organ,ammobox,deepdiving,mediumitem,largeitem" />
</ItemContainer>
</Item>
@@ -58,7 +58,7 @@
</StatusEffect>
</Attack>
</MeleeWeapon>
<ItemContainer capacity="50" keepopenwhenequipped="true" movableframe="true">
<ItemContainer capacity="18" keepopenwhenequipped="true" movableframe="true">
<Containable items="smallitem,organ,ammobox,deepdiving,mediumitem,largeitem" />
</ItemContainer>
<aitarget sightrange="1000" soundrange="1000" fadeouttime="2" />
@@ -90,7 +90,7 @@
</StatusEffect>
</Attack>
</MeleeWeapon>
<ItemContainer capacity="50" keepopenwhenequipped="true" movableframe="true">
<ItemContainer capacity="27" keepopenwhenequipped="true" movableframe="true">
<Containable items="medical,chem,organ,ammobox,deepdiving,smallitem,mediumitem,largeitem" />
</ItemContainer>
<aitarget sightrange="1000" soundrange="1000" fadeouttime="2" />
@@ -121,7 +121,7 @@
</StatusEffect>
</Attack>
</MeleeWeapon>
<ItemContainer capacity="50" keepopenwhenequipped="true" movableframe="true">
<ItemContainer capacity="36" keepopenwhenequipped="true" movableframe="true">
<Containable items="surgerytool,ammobox,deepdiving,smallitem,mediumitem,largeitem" />
</ItemContainer>
<aitarget sightrange="1000" soundrange="1000" fadeouttime="2" />
@@ -142,7 +142,7 @@
<Sprite texture="%ModDir%/Images/InGameItemIconAtlas.png" depth="0.54" sourcerect="158,578,146,82" origin="0.5,0.5" />
<Body width="145" height="85" density="50" />
<Holdable slots="RightHand+LeftHand" holdpos="0,-80" handle1="-20,14" handle2="20,14" aimable="false" msg="ItemMsgPickUpSelect" />
<ItemContainer capacity="50" canbeselected="false" hideitems="true" keepopenwhenequipped="true" movableframe="true">
<ItemContainer capacity="27" canbeselected="false" hideitems="true" keepopenwhenequipped="true" movableframe="true">
<Containable items="medtoolbox,medical,surgerytoolbox,ammobox,deepdiving,smallitem,mediumitem,largeitem" />
</ItemContainer>
<ItemComponent>

View File

@@ -52,20 +52,20 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.15,0.6" minsize="300,450" maxsize="380,500" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="alive_out" displayname="connection.aliveout" maxwires="40" />
<output name="conscious_out" displayname="connection.consciousout" maxwires="40" />
<output name="name_out" displayname="connection.nameout" maxwires="40" />
<output name="vitality_out" displayname="connection.vitalityout" maxwires="40" />
<output name="heartrate_out" displayname="connection.heartrateout" maxwires="40" />
<output name="breathingrate_out" displayname="connection.breathingrateout" maxwires="40" />
<output name="bloodpressure_out" displayname="connection.bloodpressureout" maxwires="40" />
<output name="bloodoxygen_out" displayname="connection.bloodoxygenout" maxwires="40" />
<output name="neurotrauma_out" displayname="connection.neurotraumaout" maxwires="40" />
<output name="organdamage_out" displayname="connection.organdamageout" maxwires="40" />
<output name="insurgery_out" displayname="connection.insurgeryout" maxwires="40" />
<output name="causeofdeath_out" displayname="connection.causeofdeathout" maxwires="40" />
<output name="bloodph_out" displayname="connection.bloodphout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="alive_out" displayname="connection.aliveout" maxwires="10" />
<output name="conscious_out" displayname="connection.consciousout" maxwires="10" />
<output name="name_out" displayname="connection.nameout" maxwires="10" />
<output name="vitality_out" displayname="connection.vitalityout" maxwires="10" />
<output name="heartrate_out" displayname="connection.heartrateout" maxwires="10" />
<output name="breathingrate_out" displayname="connection.breathingrateout" maxwires="10" />
<output name="bloodpressure_out" displayname="connection.bloodpressureout" maxwires="10" />
<output name="bloodoxygen_out" displayname="connection.bloodoxygenout" maxwires="10" />
<output name="neurotrauma_out" displayname="connection.neurotraumaout" maxwires="10" />
<output name="organdamage_out" displayname="connection.organdamageout" maxwires="10" />
<output name="insurgery_out" displayname="connection.insurgeryout" maxwires="10" />
<output name="causeofdeath_out" displayname="connection.causeofdeathout" maxwires="10" />
<output name="bloodph_out" displayname="connection.bloodphout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="wheelchair" category="Equipment" tags="provocative,mediumitem" scale="0.5" fireproof="false" description="" cargocontaineridentifier="metalcrate" impactsoundtag="impact_metal_heavy">

View File

@@ -44,7 +44,7 @@
</MeleeWeapon>
<aitarget sightrange="500" soundrange="500" fadeouttime="1" />
<Quality>
<QualityStat stattype="RepairSpeed" value="0.9" />
<QualityStat stattype="RepairSpeed" value="0.3" />
</Quality>
<Upgrade gameversion="0.10.0.0" scale="0.5" />
<SkillRequirementHint identifier="medical" level="60" />
@@ -332,20 +332,20 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.15,0.6" minsize="300,450" maxsize="380,500" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="alive_out" displayname="connection.aliveout" maxwires="40" />
<output name="conscious_out" displayname="connection.consciousout" maxwires="40" />
<output name="name_out" displayname="connection.nameout" maxwires="40" />
<output name="vitality_out" displayname="connection.vitalityout" maxwires="40" />
<output name="heartrate_out" displayname="connection.heartrateout" maxwires="40" />
<output name="breathingrate_out" displayname="connection.breathingrateout" maxwires="40" />
<output name="bloodpressure_out" displayname="connection.bloodpressureout" maxwires="40" />
<output name="bloodoxygen_out" displayname="connection.bloodoxygenout" maxwires="40" />
<output name="neurotrauma_out" displayname="connection.neurotraumaout" maxwires="40" />
<output name="organdamage_out" displayname="connection.organdamageout" maxwires="40" />
<output name="insurgery_out" displayname="connection.insurgeryout" maxwires="40" />
<output name="causeofdeath_out" displayname="connection.causeofdeathout" maxwires="40" />
<output name="bloodph_out" displayname="connection.bloodphout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="alive_out" displayname="connection.aliveout" maxwires="10" />
<output name="conscious_out" displayname="connection.consciousout" maxwires="10" />
<output name="name_out" displayname="connection.nameout" maxwires="10" />
<output name="vitality_out" displayname="connection.vitalityout" maxwires="10" />
<output name="heartrate_out" displayname="connection.heartrateout" maxwires="10" />
<output name="breathingrate_out" displayname="connection.breathingrateout" maxwires="10" />
<output name="bloodpressure_out" displayname="connection.bloodpressureout" maxwires="10" />
<output name="bloodoxygen_out" displayname="connection.bloodoxygenout" maxwires="10" />
<output name="neurotrauma_out" displayname="connection.neurotraumaout" maxwires="10" />
<output name="organdamage_out" displayname="connection.organdamageout" maxwires="10" />
<output name="insurgery_out" displayname="connection.insurgeryout" maxwires="10" />
<output name="causeofdeath_out" displayname="connection.causeofdeathout" maxwires="10" />
<output name="bloodph_out" displayname="connection.bloodphout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="opdeco_bunkbeds" width="356" height="264" texturescale="1.0,1.0" scale="0.5" category="Decorative" spritecolor="255,255,255,255">
@@ -1301,7 +1301,7 @@
</MeleeWeapon>
<aitarget sightrange="500" soundrange="250" fadeouttime="1" />
<Quality>
<QualityStat stattype="StrikingPowerMultiplier" value="0.9" />
<QualityStat stattype="StrikingPowerMultiplier" value="0.3" />
</Quality>
<Upgrade gameversion="0.10.0.0" scale="0.5" />
<SkillRequirementHint identifier="medical" level="30" />
@@ -1583,7 +1583,7 @@
<Holdable slots="Any,RightHand,LeftHand" handle1="0,0" holdangle="60" msg="ItemMsgPickUpSelect"></Holdable>
<aitarget sightrange="500" soundrange="500" fadeouttime="1" />
<Quality>
<QualityStat stattype="RepairSpeed" value="0.9" />
<QualityStat stattype="RepairSpeed" value="0.3" />
</Quality>
</Item>
</Items>

View File

@@ -28,7 +28,7 @@
<input name="trigger_in" displayname="connection.turrettriggerin" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
<CustomInterface canbeselected="true" pickkey="Use" drawhudwhenequipped="true" allowuioverlap="false">
<GuiFrame style="ItemUI" absoluteoffset="0,0" anchor="BottomCenter" relativesize="0.2,0.13" />

View File

@@ -229,7 +229,7 @@
<Item name="" identifier="railgunshellrackwrecked" nameidentifier="railgunshellrack" variantof="railgunshellrack" tags="container,wreckrailgunammocontainer" category="Wrecked">
<Upgrade gameversion="0.20.4.0" scale="0.5" condition="0" />
<Sprite texture="Content/Items/Shipwrecks/MiscWrecked.png" sourcerect="936,1869,182,176" />
<ItemContainer hideitems="false" drawinventory="true" capacity="36" slotsperrow="6" itempos="42,-60" iteminterval="32,0" itemrotation="90" containedspritedepth="0.845" canbeselected="true" msg="ItemMsgInteractSelect">
<ItemContainer hideitems="false" drawinventory="true" capacity="12" slotsperrow="4" itempos="42,-60" iteminterval="32,0" itemrotation="90" containedspritedepth="0.845" canbeselected="true" msg="ItemMsgInteractSelect">
<GuiFrame relativesize="0.3,0.2" anchor="Center" style="ItemUI" />
<Containable items="railgunammo" />
</ItemContainer>
@@ -240,7 +240,7 @@
<SwappableItem canbebought="false" origin="149,276" />
<Sprite texture="Content/Items/Weapons/LegacyLoaders.png" depth="0.8" sourcerect="0,0,298,276" origin="0.5,0.5" />
<BrokenSprite texture="Content/Map/Outposts/AbandonedOutpost/RustedDecalItem.png" sourcerect="463,269,289,286" offset="0,0" depth="0.8" origin="0.5,0.5" scale="true" fadein="true" maxcondition="80" />
<ItemContainer hideitems="false" drawinventory="true" capacity="45" slotsperrow="7" itempos="53,-140" iteminterval="48,0" itemrotation="90" canbeselected="true" msg="ItemMsgInteractSelect">
<ItemContainer hideitems="false" drawinventory="true" capacity="15" slotsperrow="4" itempos="53,-140" iteminterval="48,0" itemrotation="90" canbeselected="true" msg="ItemMsgInteractSelect">
<GuiFrame relativesize="0.3,0.2" anchor="Center" style="ItemUI" />
<Containable items="railgunammo" />
</ItemContainer>

View File

@@ -64,17 +64,17 @@
<input name="power_in" displayname="connection.powerin" />
<input name="transducer_in" displayname="connection.sonartransducerin" />
<input name="velocity_in" displayname="connection.steeringvelocityin" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="40" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="40" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="40" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="40" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="40" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="40" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="40" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="10" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="10" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="10" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="10" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="10" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="10" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="10" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="10" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" deteriorationspeed="0.125" mindeteriorationdelay="180" maxdeteriorationdelay="720" mindeteriorationcondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,280" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />
@@ -120,7 +120,7 @@
<input name="power_in" displayname="connection.powerin" />
<input name="water_data_in" displayname="connection.waterdatain" />
<input name="oxygen_data_in" displayname="connection.oxygendatain" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" deteriorationspeed="0.15" mindeteriorationdelay="120" maxdeteriorationdelay="480" MinDeteriorationCondition="0" fixDurationHighSkill="5" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,280" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />

View File

@@ -83,17 +83,17 @@
<input name="power_in" displayname="connection.powerin" />
<input name="transducer_in" displayname="connection.sonartransducerin" />
<input name="velocity_in" displayname="connection.steeringvelocityin" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="40" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="40" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="40" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="40" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="40" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="40" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="40" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="10" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="10" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="10" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="10" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="10" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="10" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="10" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="10" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" fixDurationHighSkill="5" fixDurationLowSkill="15" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,216" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />

View File

@@ -72,20 +72,20 @@
<input name="power_in" displayname="connection.powerin" />
<input name="transducer_in" displayname="connection.sonartransducerin" />
<input name="velocity_in" displayname="connection.steeringvelocityin" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="40" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="40" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="40" />
<output name="signal_out4" displayname="connection.signaloutx~[num]=4" maxwires="40" />
<output name="signal_out5" displayname="connection.signaloutx~[num]=5" maxwires="40" />
<output name="signal_out6" displayname="connection.signaloutx~[num]=6" maxwires="40" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="40" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="40" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="40" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="40" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="10" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="10" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="10" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="10" />
<output name="signal_out4" displayname="connection.signaloutx~[num]=4" maxwires="10" />
<output name="signal_out5" displayname="connection.signaloutx~[num]=5" maxwires="10" />
<output name="signal_out6" displayname="connection.signaloutx~[num]=6" maxwires="10" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="10" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="10" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="10" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="10" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" deteriorationspeed="0.125" mindeteriorationdelay="180" maxdeteriorationdelay="720" mindeteriorationcondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,216" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />
@@ -165,15 +165,15 @@
<input name="transducer_in" displayname="connection.sonartransducerin" />
<input name="velocity_in" displayname="connection.steeringvelocityin" />
<input name="signal_in" displayname="connection.signalin" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="40" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="40" />
<output name="signal_out" displayname="connection.signalout" maxwires="40" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="40" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="40" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="40" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="40" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="10" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="10" />
<output name="signal_out" displayname="connection.signalout" maxwires="10" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="10" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="10" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="10" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="10" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" deteriorationspeed="0.125" mindeteriorationdelay="180" maxdeteriorationdelay="720" mindeteriorationcondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,216" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />

View File

@@ -2,21 +2,21 @@
<Items>
<Item name="Medium Windowed Storage Locker" identifier="Storage_Locker_01" tags="locker, container,suppliescontainer" linkable="true" pickdistance="150" scale="0.446">
<Sprite texture="containers_01.png" depth="0.84" sourcerect="0,0,118,431" origin="0.5,0.5" />
<ItemContainer capacity="50" canbeselected="true" hideitems="true" msg="ItemMsgInteractSelect">
<ItemContainer capacity="45" canbeselected="true" hideitems="true" msg="ItemMsgInteractSelect">
<GuiFrame relativesize="0.25,0.35" anchor="Center" style="ItemUI" />
<Containable items="smallitem,mediumitem,ammobox,deepdiving,largeitem" />
</ItemContainer>
</Item>
<Item name="Medium Storage Locker" identifier="Storage_Locker_02" tags="locker, container,suppliescontainer" linkable="true" pickdistance="150" scale="0.446">
<Sprite texture="containers_01.png" depth="0.84" sourcerect="118,0,118,431" origin="0.5,0.5" />
<ItemContainer capacity="50" canbeselected="true" hideitems="true" msg="ItemMsgInteractSelect">
<ItemContainer capacity="45" canbeselected="true" hideitems="true" msg="ItemMsgInteractSelect">
<GuiFrame relativesize="0.25,0.35" anchor="Center" style="ItemUI" />
<Containable items="smallitem,mediumitem,ammobox,deepdiving,largeitem" />
</ItemContainer>
</Item>
<Item name="Reactor Fuel Storage" identifier="Storage_Locker_03" tags="locker, container,reactorcab" linkable="true" pickdistance="150" scale="0.446">
<Sprite texture="containers_01.png" depth="0.84" sourcerect="242,0,108,428" origin="0.5,0.5" />
<ItemContainer capacity="50" slotsperrow="8" canbeselected="true" hideitems="true" msg="ItemMsgInteractSelect">
<ItemContainer capacity="45" slotsperrow="7" canbeselected="true" hideitems="true" msg="ItemMsgInteractSelect">
<GuiFrame relativesize="0.25,0.35" anchor="Center" style="ItemUI" />
<Containable items="smallitem,mediumitem,ammobox,deepdiving,largeitem" />
</ItemContainer>
@@ -38,14 +38,14 @@
</Item>
<Item name="Cargo Access" identifier="cargoaccess" tags="cargocontainer, container" linkable="true" pickdistance="150" waterproof="true" scale="0.5">
<Sprite texture="containers_01.png" depth="0.84" sourcerect="0,579,474,445" origin="0.5,0.5" />
<ItemContainer capacity="50" canbeselected="true" hideitems="true" msg="ItemMsgInteractSelect">
<ItemContainer capacity="30" canbeselected="true" hideitems="true" msg="ItemMsgInteractSelect">
<GuiFrame relativesize="0.25,0.35" anchor="Center" style="ItemUI" />
<Containable items="crate,ammobox,deepdiving,smallitem,mediumitem,largeitem" />
</ItemContainer>
</Item>
<Item name="Chemical Storage container" identifier="chem_container" tags="locker, container,suppliescontainer" linkable="true" pickdistance="150" waterproof="true" scale="0.446">
<Sprite texture="containers_01.png" depth="0.84" sourcerect="480,833,538,170" origin="0.5,0.5" />
<ItemContainer capacity="50" slotsperrow="8" canbeselected="true" hideitems="true" msg="ItemMsgInteractSelect">
<ItemContainer capacity="45" slotsperrow="7" canbeselected="true" hideitems="true" msg="ItemMsgInteractSelect">
<GuiFrame relativesize="0.25,0.35" anchor="Center" style="ItemUI" />
<Containable items="smallitem,mediumitem,ammobox,deepdiving,largeitem" />
</ItemContainer>

View File

@@ -23,7 +23,7 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="power_in" displayname="connection.powerin" />
</ConnectionPanel>
<ItemContainer hideitems="false" drawinventory="true" capacity="45" maxstacksize="60" slotsperrow="7" itempos="132,-44" iteminterval="0,-65" itemrotation="0" containedspritedepth="0.83" canbeselected="true" msg="ItemMsgInteractSelect">
<ItemContainer hideitems="false" drawinventory="true" capacity="15" maxstacksize="60" slotsperrow="4" itempos="132,-44" iteminterval="0,-65" itemrotation="0" containedspritedepth="0.83" canbeselected="true" msg="ItemMsgInteractSelect">
<GuiFrame relativesize="0.25,0.2" anchor="Center" style="ItemUI" />
<Containable items="deepdiving,divingsuit,abyssdivingsuit,combatdivingsuit,pucs,slipsuit" />
</ItemContainer>
@@ -56,7 +56,7 @@
<Item name="" identifier="ekdockyard_cargocompartment_style1" tags="container,crateshelf,cargocontainer" linkable="true" pickdistance="150" scale="0.5">
<Sprite texture="%ModDir%/Items/Containers/variants_cargocompartments.png" depth="0.8" sourcerect="0,0,320,416" origin="0.5,0.5" />
<DecorativeSprite texture="%ModDir%/Items/Containers/variants_cargocompartments.png" depth="0.85" sourcerect="336,0,288,416" origin="0.5,0.5" />
<ItemContainer capacity="50" maxstacksize="60" slotsperrow="8" canbeselected="true" hideitems="false" itempos="92,-368" iteminterval="136,105" itemsperrow="2" msg="ItemMsgInteractSelect" containedspritedepths="0.81,0.82,0.81,0.82,0.81,0.82,0.81,0.82">
<ItemContainer capacity="24" maxstacksize="60" slotsperrow="5" canbeselected="true" hideitems="false" itempos="92,-368" iteminterval="136,105" itemsperrow="2" msg="ItemMsgInteractSelect" containedspritedepths="0.81,0.82,0.81,0.82,0.81,0.82,0.81,0.82">
<GuiFrame relativesize="0.25,0.3" anchor="Center" style="ItemUI" />
<Containable items="crate,ek_ammocrate_small,coilgunammobox,coilgunammo,chaingunammo,pulselaserammo,ammobox,depthchargeammo,ita_cratebulk,duffelbag,ita_duffelbag1,ek_densifiedresource" />
</ItemContainer>
@@ -64,7 +64,7 @@
<Item name="" identifier="ekdockyard_cargocompartment_style2" tags="container,crateshelf,cargocontainer" linkable="true" pickdistance="150" scale="0.5">
<Sprite texture="%ModDir%/Items/Containers/variants_cargocompartments.png" depth="0.8" sourcerect="0,0,320,208" origin="0.5,0.5" />
<DecorativeSprite texture="%ModDir%/Items/Containers/variants_cargocompartments.png" depth="0.85" sourcerect="640,208,288,208" origin="0.5,0.5" />
<ItemContainer capacity="36" maxstacksize="60" slotsperrow="6" canbeselected="true" hideitems="false" itempos="92,-158" iteminterval="136,105" itemsperrow="2" msg="ItemMsgInteractSelect" containedspritedepths="0.81,0.82,0.81,0.82">
<ItemContainer capacity="12" maxstacksize="60" slotsperrow="4" canbeselected="true" hideitems="false" itempos="92,-158" iteminterval="136,105" itemsperrow="2" msg="ItemMsgInteractSelect" containedspritedepths="0.81,0.82,0.81,0.82">
<GuiFrame relativesize="0.25,0.3" anchor="Center" style="ItemUI" />
<Containable items="crate,ek_ammocrate_small,coilgunammobox,coilgunammo,chaingunammo,pulselaserammo,ammobox,depthchargeammo,ita_cratebulk,duffelbag,ita_duffelbag1,ek_densifiedresource" />
</ItemContainer>
@@ -72,7 +72,7 @@
<Item name="" identifier="ekdockyard_cargocompartment_style3" tags="container,crateshelf,cargocontainer" linkable="true" pickdistance="150" scale="0.5">
<Sprite texture="%ModDir%/Items/Containers/variants_cargocompartments.png" depth="0.8" sourcerect="640,0,624,208" origin="0.5,0.5" />
<DecorativeSprite texture="%ModDir%/Items/Containers/variants_cargocompartments.png" depth="0.85" sourcerect="640,208,592,208" origin="0.5,0.5" />
<ItemContainer capacity="50" maxstacksize="60" slotsperrow="8" canbeselected="true" hideitems="false" itempos="86,-158" iteminterval="150,105" itemsperrow="4" msg="ItemMsgInteractSelect" containedspritedepths="0.81,0.82,0.81,0.82,0.81,0.82,0.81,0.82">
<ItemContainer capacity="24" maxstacksize="60" slotsperrow="5" canbeselected="true" hideitems="false" itempos="86,-158" iteminterval="150,105" itemsperrow="4" msg="ItemMsgInteractSelect" containedspritedepths="0.81,0.82,0.81,0.82,0.81,0.82,0.81,0.82">
<GuiFrame relativesize="0.25,0.3" anchor="Center" style="ItemUI" />
<Containable items="crate,ek_ammocrate_small,coilgunammobox,coilgunammo,chaingunammo,pulselaserammo,ammobox,depthchargeammo,ita_cratebulk,duffelbag,ita_duffelbag1,ek_densifiedresource" />
</ItemContainer>
@@ -80,7 +80,7 @@
<Item name="" identifier="ekdockyard_cargocompartment_style4" tags="container,crateshelf,cargocontainer" linkable="true" pickdistance="150" scale="0.5">
<Sprite texture="%ModDir%/Items/Containers/variants_cargocompartments.png" depth="0.8" sourcerect="640,0,624,104" origin="0.5,0.5" />
<DecorativeSprite texture="%ModDir%/Items/Containers/variants_cargocompartments.png" depth="0.85" sourcerect="640,208,592,104" origin="0.5,0.5" />
<ItemContainer capacity="36" maxstacksize="60" slotsperrow="6" canbeselected="true" hideitems="false" itempos="86,-54" iteminterval="150,0" itemsperrow="4" msg="ItemMsgInteractSelect" containedspritedepths="0.81,0.82,0.81,0.82,0.81,0.82,0.81,0.82">
<ItemContainer capacity="12" maxstacksize="60" slotsperrow="4" canbeselected="true" hideitems="false" itempos="86,-54" iteminterval="150,0" itemsperrow="4" msg="ItemMsgInteractSelect" containedspritedepths="0.81,0.82,0.81,0.82,0.81,0.82,0.81,0.82">
<GuiFrame relativesize="0.25,0.3" anchor="Center" style="ItemUI" />
<Containable items="crate,ek_ammocrate_small,coilgunammobox,coilgunammo,chaingunammo,pulselaserammo,ammobox,depthchargeammo,ita_cratebulk,duffelbag,ita_duffelbag1,ek_densifiedresource" />
</ItemContainer>
@@ -88,7 +88,7 @@
<Item name="" identifier="ekdockyard_cargocompartment_style5" tags="container,crateshelf,cargocontainer" linkable="true" pickdistance="150" scale="0.5">
<Sprite texture="%ModDir%/Items/Containers/variants_cargocompartments.png" depth="0.8" sourcerect="0,0,320,104" origin="0.5,0.5" />
<DecorativeSprite texture="%ModDir%/Items/Containers/variants_cargocompartments.png" depth="0.85" sourcerect="640,208,288,104" origin="0.5,0.5" />
<ItemContainer capacity="18" maxstacksize="60" slotsperrow="5" canbeselected="true" hideitems="false" itempos="92,-54" iteminterval="136,0" itemsperrow="2" msg="ItemMsgInteractSelect" containedspritedepths="0.81,0.82,0.81,0.82">
<ItemContainer capacity="6" maxstacksize="60" slotsperrow="3" canbeselected="true" hideitems="false" itempos="92,-54" iteminterval="136,0" itemsperrow="2" msg="ItemMsgInteractSelect" containedspritedepths="0.81,0.82,0.81,0.82">
<GuiFrame relativesize="0.25,0.3" anchor="Center" style="ItemUI" />
<Containable items="crate,ek_ammocrate_small,coilgunammobox,coilgunammo,chaingunammo,pulselaserammo,ammobox,depthchargeammo,ita_cratebulk,duffelbag,ita_duffelbag1,ek_densifiedresource" />
</ItemContainer>
@@ -104,7 +104,7 @@
<AnimationConditional IsActive="True" targetitemcomponent="LightComponent" />
<AnimationConditional Voltage="gt 0.5" targetitemcomponent="LightComponent" />
</DecorativeSprite>
<ItemContainer capacity="50" maxstacksize="60" slotsperrow="8" canbeselected="true" hideitems="false" itempos="98,-368" iteminterval="138,105" itemsperrow="2" msg="ItemMsgInteractSelect" containedspritedepths="0.81,0.82,0.81,0.82,0.81,0.82,0.81,0.82">
<ItemContainer capacity="24" maxstacksize="60" slotsperrow="5" canbeselected="true" hideitems="false" itempos="98,-368" iteminterval="138,105" itemsperrow="2" msg="ItemMsgInteractSelect" containedspritedepths="0.81,0.82,0.81,0.82,0.81,0.82,0.81,0.82">
<GuiFrame relativesize="0.25,0.3" anchor="Center" style="ItemUI" />
<Containable identifiers="crate,ita_cratebulk,cratetall,ita_eggcrate,ita_eggcrate2,ek_crateperishable" />
<StatusEffect type="Always" targettype="Contained" targets="ita_eggcrate2" Condition="12.5" />
@@ -151,7 +151,7 @@
description=""
linkable="true" displaysidebysidewhenlinked="true" allowedlinks="ekdockyard_ioport_logistics" pickdistance="150" scale="0.5" waterproof="true" fireproof="true" explosiondamagemultiplier="0.1" spritecolor="200,200,200,255">
<Sprite texture="Mods/EK Gunnery/Items/Containers/ekgunnery_containers.png" depth="0.84" sourcerect="528,0,400,208" origin="0.5,0.5" />
<ItemContainer autofill="False" capacity="18" slotsperrow="5" canbeselected="true" hideitems="true" msg="ItemMsgInteractSelect">
<ItemContainer autofill="False" capacity="6" slotsperrow="3" canbeselected="true" hideitems="true" msg="ItemMsgInteractSelect">
<GuiFrame relativesize="0.15,0.35" anchor="Center" style="ItemUI" />
<Containable items="smallitem,ammobox,deepdiving,mediumitem,largeitem" />
</ItemContainer>
@@ -163,7 +163,7 @@
<PowerContainer capacity="50" maxrechargespeed="0" maxoutput="0" canbeselected="false" msg="ItemMsgInteractSelect" charge="0" />
<ItemContainer autofill="False" hideitems="true" drawinventory="true" capacity="18" maxstacksize="60" canbeselected="true" msg="ItemMsgInteractSelect" >
<ItemContainer autofill="False" hideitems="true" drawinventory="true" capacity="6" maxstacksize="60" canbeselected="true" msg="ItemMsgInteractSelect" >
<Containable identifiers="ekdockyard_generatorfuel" />
<SlotIcon slotindex="0" texture="%ModDir%/UI/ekdockyard_sloticons.png" sourcerect="0,0,64,64" origin="0.5,0.45" />
<SlotIcon slotindex="1" texture="%ModDir%/UI/ekdockyard_sloticons.png" sourcerect="64,0,64,64" origin="0.5,0.45" />

View File

@@ -46,7 +46,7 @@
</Item>
<Item name="" identifier="oxygear_supplies" tags="container,suppliescontainer,oxygear" category="Misc" linkable="true" pickdistance="150" showcontentsintooltip="true" scale="0.5" waterproof="true" fireproof="true">
<Sprite texture="oxygear_supplies_v1.png" depth="0.84" sourcerect="0,0,117,129" origin="0.5,0.5" />
<ItemContainer hideitems="true" drawinventory="true" capacity="50" slotsperrow="8" autofill="False" canbeselected="true" msg="ItemMsgInteractSelect">
<ItemContainer hideitems="true" drawinventory="true" capacity="24" slotsperrow="5" autofill="False" canbeselected="true" msg="ItemMsgInteractSelect">
<RequiredItem items="idcard" type="Picked" msg="ItemMsgUnauthorizedAccess" ignoreineditor="true" />
<GuiFrame relativesize="0.25,0.35" anchor="Center" style="ItemUI" />
<Containable items="smallitem,mediumitem" />
@@ -66,7 +66,7 @@
</Item>
<Item name="" identifier="oxygear_cargo" tags="container,oxygear,ammoboxcontainer,railgunammocontainer" category="Misc" linkable="true" pickdistance="150" showcontentsintooltip="true" scale="0.5" waterproof="true" fireproof="true">
<Sprite texture="oxygear_cargostorage.png" depth="0.84" sourcerect="0,0,189,185" origin="0.5,0.5" />
<ItemContainer hideitems="true" drawinventory="true" capacity="50" slotsperrow="8" canbeselected="true" msg="ItemMsgInteractSelect">
<ItemContainer hideitems="true" drawinventory="true" capacity="24" slotsperrow="5" canbeselected="true" msg="ItemMsgInteractSelect">
<RequiredItem items="idcard" type="Picked" msg="ItemMsgUnauthorizedAccess" ignoreineditor="true" />
<GuiFrame relativesize="0.25,0.35" anchor="Center" style="ItemUI" />
<Containable items="ammobox,coilgunequipment,coilgunammo,railgunequipment,railgunammo,depthchargeammo" />

View File

@@ -31,14 +31,14 @@
<RequiredItem identifier="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="10" />
<!-- Todo: wait for this to work
<output name="signal_0" displayname="connection.signalx~[num]=0" fallbackdisplayname="connection.signalinx~[num]=0" maxwires="40" />
<output name="signal_1" displayname="connection.signalx~[num]=1" fallbackdisplayname="connection.signalinx~[num]=1" maxwires="40" />
<output name="signal_2" displayname="connection.signalx~[num]=2" fallbackdisplayname="connection.signalinx~[num]=2" maxwires="40" />
<output name="signal_3" displayname="connection.signalx~[num]=3" fallbackdisplayname="connection.signalinx~[num]=3" maxwires="40" />
<output name="signal_0" displayname="connection.signalx~[num]=0" fallbackdisplayname="connection.signalinx~[num]=0" maxwires="10" />
<output name="signal_1" displayname="connection.signalx~[num]=1" fallbackdisplayname="connection.signalinx~[num]=1" maxwires="10" />
<output name="signal_2" displayname="connection.signalx~[num]=2" fallbackdisplayname="connection.signalinx~[num]=2" maxwires="10" />
<output name="signal_3" displayname="connection.signalx~[num]=3" fallbackdisplayname="connection.signalinx~[num]=3" maxwires="10" />
-->
</ConnectionPanel>
</Item>
@@ -72,14 +72,14 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="10" />
<!-- Todo: wait for this to work
<output name="signal_0" displayname="connection.signalx~[num]=0" fallbackdisplayname="connection.signalinx~[num]=0" maxwires="40" />
<output name="signal_1" displayname="connection.signalx~[num]=1" fallbackdisplayname="connection.signalinx~[num]=1" maxwires="40" />
<output name="signal_2" displayname="connection.signalx~[num]=2" fallbackdisplayname="connection.signalinx~[num]=2" maxwires="40" />
<output name="signal_3" displayname="connection.signalx~[num]=3" fallbackdisplayname="connection.signalinx~[num]=3" maxwires="40" />
<output name="signal_0" displayname="connection.signalx~[num]=0" fallbackdisplayname="connection.signalinx~[num]=0" maxwires="10" />
<output name="signal_1" displayname="connection.signalx~[num]=1" fallbackdisplayname="connection.signalinx~[num]=1" maxwires="10" />
<output name="signal_2" displayname="connection.signalx~[num]=2" fallbackdisplayname="connection.signalinx~[num]=2" maxwires="10" />
<output name="signal_3" displayname="connection.signalx~[num]=3" fallbackdisplayname="connection.signalinx~[num]=3" maxwires="10" />
-->
</ConnectionPanel>
</Item>
@@ -102,9 +102,9 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Docking Rail Horizontal" identifier="ekdockyard_dockingrailhorizontal" tags="dock" linkable="true" scale="0.5" description="A docking interface aligned along a horizontal rail." indestructible="true" requirecursorinsidetrigger="true" requirebodyinsidetrigger="false">
@@ -125,9 +125,9 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Small Docking Port" identifier="ekdockyard_dockingportsmall" tags="dock" linkable="true" scale="0.5" description="A vertically aligned docking interface in a thin form-factor." indestructible="true" requirecursorinsidetrigger="true" requirebodyinsidetrigger="false">
@@ -161,9 +161,9 @@
<RequiredItem identifier="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="power" displayname="connection.power" maxwires="96" maxplayerconnectablewires="5" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="24" maxplayerconnectablewires="5" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Small Docking Hatch" identifier="ekdockyard_dockinghatchsmall" tags="dock" linkable="true" scale="0.5" description="A horizontally aligned docking interface in a thin form-factor." indestructible="true" requirecursorinsidetrigger="true" requirebodyinsidetrigger="false">
@@ -197,9 +197,9 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="power" displayname="connection.power" maxwires="96" maxplayerconnectablewires="5" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="24" maxplayerconnectablewires="5" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Small Docking Port (Silent)" identifier="ekdockyard_dockingportsmallsilent" tags="dock" linkable="true" scale="0.5" description="A vertically aligned docking interface in a thin form-factor. Improved actuation mechanism and dampening systems allow for almost noiseless operation." indestructible="true" requirecursorinsidetrigger="true" requirebodyinsidetrigger="false">
@@ -232,9 +232,9 @@
<RequiredItem identifier="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="power" displayname="connection.power" maxwires="96" maxplayerconnectablewires="5" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="24" maxplayerconnectablewires="5" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Small Docking Hatch (Silent)" identifier="ekdockyard_dockinghatchsmallsilent" tags="dock" linkable="true" scale="0.5" description="A vertically aligned docking interface in a thin form-factor. Improved actuation mechanism and dampening systems allow for almost noiseless operation." indestructible="true" requirecursorinsidetrigger="true" requirebodyinsidetrigger="false">
@@ -267,9 +267,9 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="power" displayname="connection.power" maxwires="96" maxplayerconnectablewires="5" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="24" maxplayerconnectablewires="5" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Docking Port Micro" identifier="ekdockyard_dockingportmicro" tags="dock" linkable="true" scale="0.5" description="A vertically aligned docking interface in a very small form-factor." indestructible="true" requirecursorinsidetrigger="true" requirebodyinsidetrigger="false">
@@ -290,9 +290,9 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Docking Hach Micro" identifier="ekdockyard_dockinghatchmicro" tags="dock" linkable="true" scale="0.5" description="A horizontally aligned docking interface in a very small form-factor." indestructible="true" requirecursorinsidetrigger="true" requirebodyinsidetrigger="false">
@@ -313,9 +313,9 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Large Docking Port" identifier="ekdockyard_dockingportlarge" tags="dock" linkable="true" scale="0.5" description="A vertically aligned docking interface with increased diameter." indestructible="true" requirecursorinsidetrigger="true" requirebodyinsidetrigger="false">
@@ -351,9 +351,9 @@
<RequiredItem identifier="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="power" displayname="connection.power" maxwires="96" maxplayerconnectablewires="5" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="24" maxplayerconnectablewires="5" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Large Docking Hatch" identifier="ekdockyard_dockinghatchlarge" tags="dock" linkable="true" scale="0.5" description="A horizontally aligned docking interface with increased diameter." indestructible="true" requirecursorinsidetrigger="true" requirebodyinsidetrigger="false">
@@ -389,9 +389,9 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="power" displayname="connection.power" maxwires="96" maxplayerconnectablewires="5" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="24" maxplayerconnectablewires="5" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="proximity_sensor" displayname="connection.dockingproximitysensor" fallbackdisplayname="label.readytodock" maxwires="10" />
</ConnectionPanel>
</Item>
</Items>

View File

@@ -45,8 +45,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Glass Door with Buttons" identifier="ekdockyard_glassdoorwbuttons" tags="door" scale="0.5" description="A sliding door with a huge window and two integrated buttons." health="80" requirebodyinsidetrigger="false" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" damagedbyprojectiles="false" damagedbymeleeweapons="true" explosiondamagemultiplier="0.5" allowrotatingineditor="false" allowedlinks="structure,item" linkable="true">
@@ -93,8 +93,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Hatch" identifier="ekdockyard_glasshatch" allowedlinks="gap,hull,structure,item" linkable="true" tags="door" scale="0.5" description="A windowed door, but on the horizontal axis. No integrated buttons - has to be wired manually." health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -130,8 +130,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Hatch with Buttons" identifier="ekdockyard_glasshatchwbuttons" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,weldable" scale="0.5" description="A windowed door, but on the horizontal axis. Two integrated buttons." health="100" requirebodyinsidetrigger="false" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" damagedbyprojectiles="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -170,8 +170,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<!-- Door Test -->
@@ -207,8 +207,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
-->
@@ -247,8 +247,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Short Door With Buttons" identifier="ekdockyard_shortdoorwbuttons" tags="door" scale="0.5" description="A door with the same size as a hatch with two integrated buttons." health="100" requirebodyinsidetrigger="false" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false" allowedlinks="structure,item" linkable="true">
@@ -289,8 +289,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<!-- Heavy Doors -->
@@ -329,8 +329,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Heavy Door With Buttons" identifier="ekdockyard_heavydoorvanillawbuttons" tags="door" scale="0.5" description="A heavy bulkhead door with two integrated buttons." health="450" requirebodyinsidetrigger="false" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.2" allowrotatingineditor="false" allowedlinks="structure,item" linkable="true">
@@ -372,8 +372,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Blast Door" identifier="ekdockyard_blastdoor" tags="door,weldable" scale="0.5" description="A heavily armored shutter. No integrated buttons - has to be wired manually." health="250" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.15" allowrotatingineditor="false" allowedlinks="structure,item" linkable="true">
@@ -410,8 +410,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Blast Door With Buttons" identifier="ekdockyard_blastdoorwbuttons" tags="door" scale="0.5" description="A heavily armored shutter. No integrated buttons - has to be wired manually." health="350" requirebodyinsidetrigger="false" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.15" allowrotatingineditor="false" allowedlinks="structure,item" linkable="true">
@@ -453,8 +453,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Blast Hatch" identifier="ekdockyard_blasthatch" allowedlinks="gap,hull,structure,item" linkable="true" tags="door" scale="0.5" description="A heavily armored shutter, but on the horizontal axis. No integrated buttons - has to be wired manually." health="350" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.15" allowrotatingineditor="false">
@@ -491,8 +491,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Blast Hatch With Buttons" identifier="ekdockyard_blasthatchwbuttons" allowedlinks="gap,hull,structure,item" linkable="true" tags="door" scale="0.5" description="A heavily armored shutter, but on the horizontal axis. No integrated buttons - has to be wired manually." health="350" requirebodyinsidetrigger="false" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.15" allowrotatingineditor="false">
@@ -533,8 +533,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<!-- Maintenance Panels -->
@@ -574,8 +574,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel A Vertical 256" identifier="ekdockyard_doormaintenance1_vertical256" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Vertical hull wall." health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.1" allowrotatingineditor="false" allowedlinks="structure,item" linkable="true">
@@ -614,8 +614,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel A Horizontal 384" identifier="ekdockyard_doormaintenance1_horizontal384" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Horizontal hull wall." health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -654,8 +654,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel A Horizontal 256" identifier="ekdockyard_doormaintenance1_horizontal256" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Horizontal hull wall." health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -694,8 +694,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel B Vertical 416" identifier="ekdockyard_doormaintenance2_vertical416" tags="door,wall,weldable" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Vertical thick hull wall." health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.1" allowrotatingineditor="false" allowedlinks="structure,item" linkable="true">
@@ -734,8 +734,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel B Vertical 256" identifier="ekdockyard_doormaintenance2_vertical256" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Vertical thick hull wall." health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.1" allowrotatingineditor="false" allowedlinks="structure,item" linkable="true">
@@ -774,8 +774,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel B Horizontal 384" identifier="ekdockyard_doormaintenance2_horizontal384" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Horizontal thick hull wall." health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -814,8 +814,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel B Horizontal 256" identifier="ekdockyard_doormaintenance2_horizontal256" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Horizontal thick hull wall." health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -854,8 +854,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel C Vertical 416" identifier="ekdockyard_doormaintenance3_vertical416" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Vertical legacy wall." category="Legacy" health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.1" allowrotatingineditor="false" allowedlinks="structure,item" linkable="true">
@@ -894,8 +894,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel C Vertical 256" identifier="ekdockyard_doormaintenance3_vertical256" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Vertical legacy wall." category="Legacy" health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.1" allowrotatingineditor="false" allowedlinks="structure,item" linkable="true">
@@ -934,8 +934,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel C Horizontal 384" identifier="ekdockyard_doormaintenance3_horizontal384" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Horizontal legacy wall." category="Legacy" health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -974,8 +974,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel C Horizontal 256" identifier="ekdockyard_doormaintenance3_horizontal256" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Horizontal legacy wall." category="Legacy" health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -1014,8 +1014,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel D Vertical 416" identifier="ekdockyard_doormaintenance4_vertical416" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Vertical armor wall." health="200" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.35" explosiondamagemultiplier="0.1" allowrotatingineditor="false" allowedlinks="structure,item" linkable="true">
@@ -1054,8 +1054,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel D Vertical 256" identifier="ekdockyard_doormaintenance4_vertical256" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Vertical armor wall." health="200" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.35" explosiondamagemultiplier="0.1" allowrotatingineditor="false" allowedlinks="structure,item" linkable="true">
@@ -1094,8 +1094,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel D Horizontal 384" identifier="ekdockyard_doormaintenance4_horizontal384" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Horizontal armor wall." health="200" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.35" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -1134,8 +1134,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Maintenance Panel D Horizontal 256" identifier="ekdockyard_doormaintenance4_horizontal256" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="0.5" description="A sliding maintenance panel used to access the inner crawlspaces of the submarine. Horizontal armor wall." health="200" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.35" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -1174,8 +1174,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<!-- Shuttle Shell Hatch -->
@@ -1212,8 +1212,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shuttle Shell Hatch with Buttons" identifier="ekdockyard_shuttleshellhatchwbuttons" allowedlinks="gap,hull,structure,item" linkable="true" tags="door" scale="0.5" description="A shuttle shell access hatch with a window and two integrated buttons." health="100" requirebodyinsidetrigger="false" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -1252,8 +1252,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shuttle Shell Hatch" identifier="ekdockyard_windowedshuttleshellhatch" allowedlinks="gap,hull,structure,item" linkable="true" tags="door" scale="0.5" description="A shuttle shell access hatch with a window. No integrated buttons - has to be wired manually." health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -1289,8 +1289,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shuttle Shell Hatch with Buttons" identifier="ekdockyard_windowedshuttleshellhatchwbuttons" allowedlinks="gap,hull,structure,item" linkable="true" tags="door" scale="0.5" description="A shuttle shell access hatch with a window and two integrated buttons." health="100" requirebodyinsidetrigger="false" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -1329,8 +1329,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shuttle Shell Hatch Mirrored" identifier="ekdockyard_shuttleshellhatch_mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door" scale="0.5" description="A shuttle shell access hatch with window. No integrated buttons - has to be wired manually." health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -1366,8 +1366,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shuttle Shell Hatch with Buttons Mirrored" identifier="ekdockyard_shuttleshellhatchwbuttons_mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door" scale="0.5" description="A shuttle shell access hatch with a window and two integrated buttons." health="100" requirebodyinsidetrigger="false" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -1406,8 +1406,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shuttle Shell Hatch Mirrored" identifier="ekdockyard_windowedshuttleshellhatch_mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door" scale="0.5" description="A shuttle shell access hatch with a window. No integrated buttons - has to be wired manually." health="100" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -1443,8 +1443,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shuttle Shell Hatch with Buttons Mirrored" identifier="ekdockyard_windowedshuttleshellhatchwbuttons_mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door" scale="0.5" description="A shuttle shell access hatch with a window and two integrated buttons." health="100" requirebodyinsidetrigger="false" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -1483,8 +1483,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<!-- Shell Exterior Doors -->
@@ -1521,8 +1521,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Horizontal A 256" identifier="ekdockyard_shelldoor1windowed_horizontal256" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="150" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -1558,8 +1558,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Horizontal A 512" identifier="ekdockyard_shelldoor1_horizontal512" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="200" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -1595,8 +1595,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Horizontal A 512" identifier="ekdockyard_shelldoor1windowed_horizontal512" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="200" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -1632,8 +1632,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Horizontal A 768" identifier="ekdockyard_shelldoor1_horizontal768" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="250" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -1669,8 +1669,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Horizontal A 768" identifier="ekdockyard_shelldoor1windowed_horizontal768" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="250" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -1706,8 +1706,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Horizontal A 1024" identifier="ekdockyard_shelldoor1_horizontal1024" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="300" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -1743,8 +1743,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Horizontal A 1024" identifier="ekdockyard_shelldoor1windowed_horizontal1024" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="300" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -1780,8 +1780,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Horizontal A 1536" identifier="ekdockyard_shelldoor1_horizontal1536" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="300" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -1817,8 +1817,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Horizontal A 1536" identifier="ekdockyard_shelldoor1windowed_horizontal1536" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="300" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -1854,8 +1854,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Vertical A 256" identifier="ekdockyard_shelldoor1_vertical256" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="150" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -1891,8 +1891,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Vertical A 256" identifier="ekdockyard_shelldoor1windowed_vertical256" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="150" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -1928,8 +1928,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Vertical A 512" identifier="ekdockyard_shelldoor1_vertical512" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="200" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -1965,8 +1965,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Vertical A 512" identifier="ekdockyard_shelldoor1windowed_vertical512" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="200" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2002,8 +2002,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Vertical A 768" identifier="ekdockyard_shelldoor1_vertical768" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="250" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2039,8 +2039,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Vertical A 768" identifier="ekdockyard_shelldoor1windowed_vertical768" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="250" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2083,8 +2083,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Vertical A 1024" identifier="ekdockyard_shelldoor1_vertical1024" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="250" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2120,8 +2120,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Vertical A 1024" identifier="ekdockyard_shelldoor1windowed_vertical1024" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="250" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2157,8 +2157,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<!-- Mirrored Shell Exterior Doors -->
@@ -2195,8 +2195,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Horizontal A 256 Mirrored" identifier="ekdockyard_shelldoor1windowed_horizontal256mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="150" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2232,8 +2232,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Horizontal A 512 Mirrored" identifier="ekdockyard_shelldoor1_horizontal512mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="200" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2269,8 +2269,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Horizontal A 512 Mirrored" identifier="ekdockyard_shelldoor1windowed_horizontal512mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="200" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2306,8 +2306,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Horizontal A 768 Mirrored" identifier="ekdockyard_shelldoor1_horizontal768mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="250" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2343,8 +2343,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Horizontal A 768 Mirrored" identifier="ekdockyard_shelldoor1windowed_horizontal768mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="250" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2380,8 +2380,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Horizontal A 1024 Mirrored" identifier="ekdockyard_shelldoor1_horizontal1024mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="300" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2417,8 +2417,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Horizontal A 1024 Mirrored" identifier="ekdockyard_shelldoor1windowed_horizontal1024mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="300" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2454,8 +2454,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Horizontal A 1536 Mirrored" identifier="ekdockyard_shelldoor1_horizontal1536mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="300" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2491,8 +2491,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Horizontal A 1536 Mirrored" identifier="ekdockyard_shelldoor1windowed_horizontal1536mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Horizontal shell wall." health="300" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2528,8 +2528,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Vertical A 256 Mirrored" identifier="ekdockyard_shelldoor1_vertical256mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="150" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2565,8 +2565,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Vertical A 256 Mirrored" identifier="ekdockyard_shelldoor1windowed_vertical256mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="150" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2602,8 +2602,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Vertical A 512 Mirrored" identifier="ekdockyard_shelldoor1_vertical512mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="200" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2639,8 +2639,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Vertical A 512 Mirrored" identifier="ekdockyard_shelldoor1windowed_vertical512mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="200" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2676,8 +2676,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Vertical A 768 Mirrored" identifier="ekdockyard_shelldoor1_vertical768mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="250" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2713,8 +2713,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Vertical A 768 Mirrored" identifier="ekdockyard_shelldoor1windowed_vertical768mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="250" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2750,8 +2750,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Door Vertical A 1024 Mirrored" identifier="ekdockyard_shelldoor1_vertical1024mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="250" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2787,8 +2787,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Windowed Shell Door Vertical A 1024 Mirrored" identifier="ekdockyard_shelldoor1windowed_vertical1024mirrored" allowedlinks="gap,hull,structure,item" linkable="true" tags="door,wall" scale="1" description="A sliding exterior hull door. Vertical shell wall." health="250" damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" monsterdamagemultiplier="0.75" explosiondamagemultiplier="0.2" allowrotatingineditor="false">
@@ -2831,8 +2831,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<!-- Ducts -->
@@ -2863,8 +2863,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Medium Duct B" identifier="ekdockyard_mediumduct2" tags="ductblock" scale="0.5" description="A mechanically operated vent that may be opened or closed to allow the passage of water." damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -2894,8 +2894,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Medium Duct C" identifier="ekdockyard_mediumduct3" tags="ductblock" scale="0.5" description="A mechanically operated vent that may be opened or closed to allow the passage of water." damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -2925,8 +2925,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Duct Horizontal" identifier="ekdockyard_shellduct1_horizontal" tags="ductblock" scale="1" description="A mechanically operated vent that may be opened or closed to allow the passage of water." damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -2957,8 +2957,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Shell Duct Horizontal Mirrored" identifier="ekdockyard_shellduct1_horizontalmirrored" tags="ductblock" scale="1" description="A mechanically operated vent that may be opened or closed to allow the passage of water." damagedbyrepairtools="true" damagedbymonsters="true" damagedbyexplosions="true" explosiondamagemultiplier="0.1" allowrotatingineditor="false">
@@ -2989,8 +2989,8 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
</Items>

View File

@@ -21,7 +21,7 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="power_in" displayname="connection.powerin" />
<input name="control_in" displayname="connection.controlin" />
<output name="data_out" displayname="connection.sonardataout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="data_out" displayname="connection.sonardataout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="ekdockyard_cameradeco_sensor2" category="Electrical" tags="command,camera,sonartransducer" focusonselected="true" offsetonselected="1250" linkable="true" Scale="0.5" spritecolor="150,150,150,255">
@@ -32,7 +32,7 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="power_in" displayname="connection.powerin" />
<input name="control_in" displayname="connection.controlin" />
<output name="data_out" displayname="connection.sonardataout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="data_out" displayname="connection.sonardataout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="ekdockyard_cameradeco_sensor3" category="Electrical" tags="command,camera,sonartransducer" focusonselected="true" offsetonselected="1250" linkable="true" Scale="0.75" spritecolor="150,150,150,255">
@@ -48,7 +48,7 @@
<RequiredItem items="screwdriver" type="Equipped" />
<input name="power_in" displayname="connection.powerin" />
<input name="position_in" displayname="connection.turretaimingin" />
<output name="data_out" displayname="connection.sonardataout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="data_out" displayname="connection.sonardataout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<!-- Turrets cannot be manually controlled.
@@ -77,8 +77,8 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="position_out" displayname="connection.turretaimingout" fallbackdisplayname="inputtype.aim" maxwires="40" />
<output name="trigger_out" displayname="connection.turrettriggerout" fallbackdisplayname="inputtype.shoot" maxwires="40" />
<output name="position_out" displayname="connection.turretaimingout" fallbackdisplayname="inputtype.aim" maxwires="10" />
<output name="trigger_out" displayname="connection.turrettriggerout" fallbackdisplayname="inputtype.shoot" maxwires="10" />
</ConnectionPanel>
</Item>
-->
@@ -89,7 +89,7 @@
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<input name="power_in" displayname="connection.powerin" />
<output name="data_out" displayname="connection.sonardataout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="data_out" displayname="connection.sonardataout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="ekdockyard_transducer_sonardome2" category="Electrical" tags="command,sonartransducer" focusonselected="true" offsetonselected="1250" linkable="true" Scale="0.75" spritecolor="150,150,150,255">
@@ -99,7 +99,7 @@
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<input name="power_in" displayname="connection.powerin" />
<output name="data_out" displayname="connection.sonardataout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="data_out" displayname="connection.sonardataout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
</Items>

View File

@@ -161,7 +161,7 @@
<input name="power" displayname="connection.power" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="ekdockyard_firejet_radial" category="Equipment" Tags="signal" characterusable="false" Scale="0.32" impactsoundtag="impact_metal_light" maxstacksize="60">
@@ -362,12 +362,12 @@
<ConnectionPanel selectkey="Select" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<requireditem items="screwdriver" type="Equipped" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="40" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="40" />
<output name="signal_out4" displayname="connection.signaloutx~[num]=4" maxwires="40" />
<output name="signal_out5" displayname="connection.signaloutx~[num]=5" maxwires="40" />
<output name="signal_out6" displayname="connection.signaloutx~[num]=6" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="10" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="10" />
<output name="signal_out4" displayname="connection.signaloutx~[num]=4" maxwires="10" />
<output name="signal_out5" displayname="connection.signaloutx~[num]=5" maxwires="10" />
<output name="signal_out6" displayname="connection.signaloutx~[num]=6" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="ekdockyard_switchboard2" tags="logic,command" scale="0.5" category="Machine" linkable="true" allowedlinks="command,reactor,generator,container">
@@ -389,12 +389,12 @@
<ConnectionPanel selectkey="Select" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<requireditem items="screwdriver" type="Equipped" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="40" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="40" />
<output name="signal_out4" displayname="connection.signaloutx~[num]=4" maxwires="40" />
<output name="signal_out5" displayname="connection.signaloutx~[num]=5" maxwires="40" />
<output name="signal_out6" displayname="connection.signaloutx~[num]=6" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="10" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="10" />
<output name="signal_out4" displayname="connection.signaloutx~[num]=4" maxwires="10" />
<output name="signal_out5" displayname="connection.signaloutx~[num]=5" maxwires="10" />
<output name="signal_out6" displayname="connection.signaloutx~[num]=6" maxwires="10" />
</ConnectionPanel>
</Item>
<!--
@@ -418,12 +418,12 @@
<ConnectionPanel selectkey="Select" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<requireditem items="screwdriver" type="Equipped" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="40" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="40" />
<output name="signal_out4" displayname="connection.signaloutx~[num]=4" maxwires="40" />
<output name="signal_out5" displayname="connection.signaloutx~[num]=5" maxwires="40" />
<output name="signal_out6" displayname="connection.signaloutx~[num]=6" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="10" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="10" />
<output name="signal_out4" displayname="connection.signaloutx~[num]=4" maxwires="10" />
<output name="signal_out5" displayname="connection.signaloutx~[num]=5" maxwires="10" />
<output name="signal_out6" displayname="connection.signaloutx~[num]=6" maxwires="10" />
</ConnectionPanel>
</Item>
-->
@@ -501,9 +501,9 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<requireditem items="screwdriver" type="Equipped" />
<output name="signal_out1" displayname="connection.signalout" maxwires="40" />
<output name="signal_out2" displayname="connection.activate" maxwires="40" />
<output name="signal_out3" displayname="reset" maxwires="40" />
<output name="signal_out1" displayname="connection.signalout" maxwires="10" />
<output name="signal_out2" displayname="connection.activate" maxwires="10" />
<output name="signal_out3" displayname="reset" maxwires="10" />
<!--campaigncrew.clear-->
</ConnectionPanel>
</Item>
@@ -1279,9 +1279,9 @@
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<requireditem items="screwdriver" type="Equipped" />
<input name="power" displayname="connection.power" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="40" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="10" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="ekdockyard_ioterminal_fabricator" tags="container" category="Machine" linkable="true" displaysidebysidewhenlinked="false" allowedlinks="fabricator,medicalfabricator" pickdistance="150" scale="0.5" spritecolor="200,200,200,255">
@@ -1301,9 +1301,9 @@
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<requireditem items="screwdriver" type="Equipped" />
<input name="power" displayname="connection.power" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="40" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="10" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="ekdockyard_ioterminal_deconstructor" tags="container" category="Machine" linkable="true" displaysidebysidewhenlinked="false" allowedlinks="deconstructor" pickdistance="150" scale="0.5" spritecolor="190,210,200,255">
@@ -1323,9 +1323,9 @@
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<requireditem items="screwdriver" type="Equipped" />
<input name="power" displayname="connection.power" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="40" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="10" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="ekdockyard_ioterminal_chair1" tags="chair,command" category="Machine" linkable="true" displaysidebysidewhenlinked="false" allowedlinks="command,navterminal,primarynavterminal,sonarmonitor,statusmonitor,terminal,reactor,generator,fabricator,medicalfabricator,deconstructor" pickdistance="150" scale="0.5" spritecolor="190,210,200,255">
@@ -1352,9 +1352,9 @@
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<requireditem items="screwdriver" type="Equipped" />
<input name="power" displayname="connection.power" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="40" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="10" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="10" />
</ConnectionPanel>-->
</Item>
<Item name="" identifier="ekdockyard_navcomputer1" tags="command,navterminal" linkable="false" scale="0.5" category="Machine" disallowedupgrades="increasemaxcondition,decreaselowskillfixduration,decreaserequiredskilllevel,sonarmonitorincreaserange">
@@ -1405,12 +1405,12 @@
<requireditem items="screwdriver" type="Equipped" />
<input name="power_in" displayname="connection.powerin" />
<input name="velocity_in" displayname="connection.steeringvelocityin" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="40" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="40" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="40" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="40" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="40" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="40" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="10" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="10" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="10" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="10" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="10" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" deteriorationspeed="0.075" mindeteriorationdelay="320" maxdeteriorationdelay="720" mindeteriorationcondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,216" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />
@@ -1446,11 +1446,11 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<RequiredItem items="screwdriver" type="Equipped" />
<output name="signal_0" displayname="connection.signalx~[num]=0" fallbackdisplayname="connection.signalinx~[num]=0" maxwires="160" />
<output name="signal_1" displayname="connection.signalx~[num]=1" fallbackdisplayname="connection.signalinx~[num]=1" maxwires="160" />
<output name="signal_2" displayname="connection.signalx~[num]=2" fallbackdisplayname="connection.signalinx~[num]=2" maxwires="160" />
<output name="signal_3" displayname="connection.signalx~[num]=3" fallbackdisplayname="connection.signalinx~[num]=3" maxwires="160" />
<output name="signal_4" displayname="connection.signalx~[num]=4" fallbackdisplayname="connection.signalinx~[num]=4" maxwires="160" />
<output name="signal_0" displayname="connection.signalx~[num]=0" fallbackdisplayname="connection.signalinx~[num]=0" maxwires="40" />
<output name="signal_1" displayname="connection.signalx~[num]=1" fallbackdisplayname="connection.signalinx~[num]=1" maxwires="40" />
<output name="signal_2" displayname="connection.signalx~[num]=2" fallbackdisplayname="connection.signalinx~[num]=2" maxwires="40" />
<output name="signal_3" displayname="connection.signalx~[num]=3" fallbackdisplayname="connection.signalinx~[num]=3" maxwires="40" />
<output name="signal_4" displayname="connection.signalx~[num]=4" fallbackdisplayname="connection.signalinx~[num]=4" maxwires="40" />
</ConnectionPanel>
<!--
<Repairable selectkey="Action" header="electricalrepairsheader" deteriorationspeed="0.1" mindeteriorationdelay="120" maxdeteriorationdelay="720" mindeteriorationcondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">

View File

@@ -15,7 +15,7 @@
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" /> -->
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" /> -->
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_vanillalightadvanced01" category="Legacy" Tags="smallitem,light" scale="0.5">
@@ -32,7 +32,7 @@
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" /> -->
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" /> -->
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_vanillalightadvanced02" category="Legacy" Tags="smallitem,light" scale="0.5">
@@ -49,7 +49,7 @@
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" /> -->
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" /> -->
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_vanillalightadvanced03" category="Legacy" Tags="smallitem,light" scale="0.5">
@@ -66,7 +66,7 @@
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" /> -->
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" /> -->
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_vanillalightadvanced04" category="Legacy" Tags="smallitem,light" scale="0.5">
@@ -83,7 +83,7 @@
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" /> -->
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" /> -->
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_vanillalightadvanced05" category="Legacy" Tags="smallitem,light" scale="0.5">
@@ -100,7 +100,7 @@
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" /> -->
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" /> -->
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_lightadvanced01" category="Legacy" Tags="smallitem,light" scale="0.25">
@@ -117,7 +117,7 @@
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" /> -->
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" /> -->
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_lightadvanced02" category="Legacy" Tags="smallitem,light" scale="0.25">
@@ -134,7 +134,7 @@
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" /> -->
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" /> -->
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_lightadvanced03" category="Legacy" Tags="smallitem,light" scale="0.25">
@@ -151,7 +151,7 @@
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" /> -->
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" /> -->
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_lightadvanced04" category="Legacy" Tags="smallitem,light" scale="0.25">
@@ -168,7 +168,7 @@
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" /> -->
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" /> -->
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_lightadvanced05" category="Legacy" Tags="smallitem,light" scale="0.25">
@@ -185,7 +185,7 @@
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" /> -->
<!-- <output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" /> -->
</ConnectionPanel>
</Item>
<!-- Rotating Lights -->

View File

@@ -10,11 +10,11 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_vanillalightadvanced01" category="Electrical" Tags="smallitem,light" scale="0.5">
@@ -27,11 +27,11 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_vanillalightadvanced02" category="Electrical" Tags="smallitem,light" scale="0.5">
@@ -44,11 +44,11 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_vanillalightadvanced03" category="Electrical" Tags="smallitem,light" scale="0.5">
@@ -61,11 +61,11 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_vanillalightadvanced04" category="Electrical" Tags="smallitem,light" scale="0.5">
@@ -78,11 +78,11 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_vanillalightadvanced05" category="Electrical" Tags="smallitem,light" scale="0.5">
@@ -95,11 +95,11 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_lightadvanced01" category="Electrical" Tags="smallitem,light" scale="0.25">
@@ -112,11 +112,11 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_lightadvanced02" category="Electrical" Tags="smallitem,light" scale="0.25">
@@ -129,11 +129,11 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_lightadvanced03" category="Electrical" Tags="smallitem,light" scale="0.25">
@@ -146,11 +146,11 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_lightadvanced04" category="Electrical" Tags="smallitem,light" scale="0.25">
@@ -163,11 +163,11 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="Advanced Lamp" identifier="ekdockyard_lightadvanced05" category="Electrical" Tags="smallitem,light" scale="0.25">
@@ -180,11 +180,11 @@
<ConnectionPanel selectkey="Action" canbeselected="true" msg="ItemMsgRewireScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.32" minsize="400,350" maxsize="480,420" anchor="Center" style="ConnectionPanel" />
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<input name="toggle" displayname="connection.togglestate" />
<input name="set_state" displayname="connection.setstate" />
<input name="set_color" displayname="connection.setcolor" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
</Items>

View File

@@ -24,7 +24,7 @@
<Explosion range="350.0" levelwalldamage="75" force="0" severlimbsprobability="0" camerashake="0" camerashakerange="0" shockwave="false" smoke="false" flames="false" flash="false" sparks="false" underwaterbubble="false" ignorecover="true" applyfireeffects="false"></Explosion>
</StatusEffect>
</input>
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="ekdockyard_function_icebreaker2" category="Machine" tags="" Scale="2" spritecolor="154,213,163,255" hiddeningame="true">
@@ -51,7 +51,7 @@
<Explosion range="475.0" levelwalldamage="100" force="0" severlimbsprobability="0" camerashake="0" camerashakerange="0" shockwave="false" smoke="false" flames="false" flash="false" sparks="false" underwaterbubble="false" ignorecover="true" applyfireeffects="false"></Explosion>
</StatusEffect>
</input>
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
<Item name="" identifier="ekdockyard_function_icebreaker3" category="Machine" tags="" Scale="2" spritecolor="154,213,163,255" hiddeningame="true">
@@ -78,7 +78,7 @@
<Explosion range="600.0" levelwalldamage="125" force="0" severlimbsprobability="0" camerashake="0" camerashakerange="0" shockwave="false" smoke="false" flames="false" flash="false" sparks="false" underwaterbubble="false" ignorecover="true" applyfireeffects="false"></Explosion>
</StatusEffect>
</input>
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
</ConnectionPanel>
</Item>
</Items>

View File

@@ -6,7 +6,7 @@
<OxygenGenerator generatedamount="50.0" powerconsumption="50.0" minvoltage="0.3" canbeselected="false" vulnerabletoemp="false">
<StatusEffect type="OnActive" targettype="Contained" targets="oxygentank" Condition="2.0" />
</OxygenGenerator>
<ItemContainer hideitems="false" drawinventory="true" capacity="50" maxstacksize="60" slotsperrow="8" itempos="27,-93" iteminterval="22.5,-92" itemsperrow="3" itemrotation="0" canbeselected="true" containedspritedepth="0.83" msg="ItemMsgOxygenRefill">
<ItemContainer hideitems="false" drawinventory="true" capacity="18" maxstacksize="60" slotsperrow="5" itempos="27,-93" iteminterval="22.5,-92" itemsperrow="3" itemrotation="0" canbeselected="true" containedspritedepth="0.83" msg="ItemMsgOxygenRefill">
<GuiFrame relativesize="0.25,0.35" anchor="Center" style="ItemUI" />
<Containable items="oxygensource" />
</ItemContainer>
@@ -56,8 +56,8 @@
<poweronsound file="Content/Items/PowerOnLight3.ogg" range="600" loop="false" />
<StatusEffect type="InWater" target="This" condition="-0.5" />
</Deconstructor>
<ItemContainer capacity="27" canbeselected="true" hideitems="true" hudpos="0.5, 0.4" slotsperrow="6" uilabel="" allowuioverlap="true" />
<ItemContainer capacity="45" canbeselected="true" hideitems="true" hudpos="0.5, 0.8" slotsperrow="7" uilabel="" allowuioverlap="true" />
<ItemContainer capacity="9" canbeselected="true" hideitems="true" hudpos="0.5, 0.4" slotsperrow="3" uilabel="" allowuioverlap="true" />
<ItemContainer capacity="15" canbeselected="true" hideitems="true" hudpos="0.5, 0.8" slotsperrow="4" uilabel="" allowuioverlap="true" />
<!-- Tasten-Interface zur Aktivierung/Deaktivierung -->
<CustomInterface canbeselected="true">
<GuiFrame relativesize="0.10,0.15" anchor="BottomCenter" style="ItemUI" absoluteoffset="-20,0" />
@@ -179,20 +179,20 @@
<input name="power_in" displayname="connection.powerin" />
<input name="velocity_in" displayname="connection.steeringvelocityin" />
<input name="transducer_in" displayname="connection.sonartransducerin" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="40" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="40" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="40" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="40" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="40" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="40" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="40" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="40" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="40" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="40" />
<output name="signal_out4" displayname="connection.signaloutx~[num]=4" maxwires="40" />
<output name="signal_out5" displayname="connection.signaloutx~[num]=5" maxwires="40" />
<output name="signal_out6" displayname="connection.signaloutx~[num]=6" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="toggle_docking" displayname="connection.toggledocking" maxwires="10" />
<output name="velocity_x_out" displayname="connection.velocityxout" maxwires="10" />
<output name="velocity_y_out" displayname="connection.velocityyout" maxwires="10" />
<output name="current_velocity_x" displayname="connection.currentvelocityx" maxwires="10" />
<output name="current_velocity_y" displayname="connection.currentvelocityy" maxwires="10" />
<output name="current_position_x" displayname="connection.currentpositionx" maxwires="10" />
<output name="current_position_y" displayname="connection.currentpositiony" maxwires="10" />
<output name="signal_out1" displayname="connection.signaloutx~[num]=1" maxwires="10" />
<output name="signal_out2" displayname="connection.signaloutx~[num]=2" maxwires="10" />
<output name="signal_out3" displayname="connection.signaloutx~[num]=3" maxwires="10" />
<output name="signal_out4" displayname="connection.signaloutx~[num]=4" maxwires="10" />
<output name="signal_out5" displayname="connection.signaloutx~[num]=5" maxwires="10" />
<output name="signal_out6" displayname="connection.signaloutx~[num]=6" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" msg="ItemMsgRepairScrewdriver" hudpriority="10" deteriorationspeed="0.125" mindeteriorationdelay="280" maxdeteriorationdelay="720" mindeteriorationcondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25">
<RequiredSkill identifier="electrical" level="55" />
@@ -245,7 +245,7 @@
<input name="power_in" displayname="connection.powerin" />
<input name="water_data_in" displayname="connection.waterdatain" />
<input name="oxygen_data_in" displayname="connection.oxygendatain" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" msg="ItemMsgRepairScrewdriver" hudpriority="10" deteriorationspeed="0.15" mindeteriorationdelay="220" maxdeteriorationdelay="680" MinDeteriorationCondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25">
<RequiredSkill identifier="electrical" level="55" />
@@ -605,7 +605,7 @@
<input name="power_in" displayname="connection.powerin" />
<input name="set_force" displayname="connection.setforce" />
<input name="toggle" displayname="connection.togglestate" />
<!-- <output name="state_out" displayname="connection.stateout" maxwires="40" /> Ohne Funktion -->
<!-- <output name="state_out" displayname="connection.stateout" maxwires="10" /> Ohne Funktion -->
</ConnectionPanel>
<Repairable selectkey="Action" header="mechanicalrepairsheader" msg="ItemMsgRepairWrench" hudpriority="10" deteriorationspeed="0.20" mindeteriorationdelay="200" maxdeteriorationdelay="400" mindeteriorationcondition="0" RepairThreshold="75" fixDurationHighSkill="15" fixDurationLowSkill="40">
<GuiFrame relativesize="0.2,0.16" minsize="400,200" maxsize="480,216" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />
@@ -627,7 +627,7 @@
<Sprite texture="oxygear_batteryloader_v3.png" depth="0.78" sourcerect="0,0,119,109" canflipx="false" canflipy="false" />
<!-- Hintergrund -->
<DecorativeSprite texture="oxygear_batteryloader_v3_bg.png" depth="0.80" sourcerect="0,0,119,109" origin="0.5,0.5" canflipx="false" canflipy="false" />
<ItemContainer capacity="36" maxstacksize="60" canbeselected="true" hideitems="false" uilabel="ChargingDock" autofill="False" itempos="24,-57" iteminterval="23,0" itemrotation="-90" containedspritedepth="0.79">
<ItemContainer capacity="12" maxstacksize="60" canbeselected="true" hideitems="false" uilabel="ChargingDock" autofill="False" itempos="24,-57" iteminterval="23,0" itemrotation="-90" containedspritedepth="0.79">
<!-- (Inaktiv) Zugangsberechtigung
<RequiredItem items="idcard" type="Picked" msg="ItemMsgUnauthorizedAccess" ignoreineditor="true" />
-->
@@ -717,18 +717,18 @@
<input name="toggle" displayname="connection.togglestate" />
-->
<!-- Signal-Ausgänge -->
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="signal_0" displayname="connection.signalx~[num]=0" fallbackdisplayname="connection.signalinx~[num]=0" maxwires="40" />
<output name="signal_1" displayname="connection.signalx~[num]=1" fallbackdisplayname="connection.signalinx~[num]=1" maxwires="40" />
<output name="signal_2" displayname="connection.signalx~[num]=2" fallbackdisplayname="connection.signalinx~[num]=2" maxwires="40" />
<output name="signal_3" displayname="connection.signalx~[num]=3" fallbackdisplayname="connection.signalinx~[num]=3" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="40" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<output name="signal_0" displayname="connection.signalx~[num]=0" fallbackdisplayname="connection.signalinx~[num]=0" maxwires="10" />
<output name="signal_1" displayname="connection.signalx~[num]=1" fallbackdisplayname="connection.signalinx~[num]=1" maxwires="10" />
<output name="signal_2" displayname="connection.signalx~[num]=2" fallbackdisplayname="connection.signalinx~[num]=2" maxwires="10" />
<output name="signal_3" displayname="connection.signalx~[num]=3" fallbackdisplayname="connection.signalinx~[num]=3" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="10" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="10" />
<!--
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<output name="state_out" displayname="connection.stateout" fallbackdisplayname="connection.signalout" maxwires="10" />
-->
<!-- Brzzzt! [Mod.] -->
<RequiredSkill identifier="electrical" level="55" />
@@ -786,7 +786,7 @@
<Explosion range="50" stun="0" force="3.0" flames="false" shockwave="false" sparks="true" underwaterbubble="false" />
</StatusEffect>
</OxygenGenerator>
<ItemContainer capacity="36" maxstacksize="60" canbeselected="true" hideitems="true" msg="ItemMsgOxygenRefill">
<ItemContainer capacity="12" maxstacksize="60" canbeselected="true" hideitems="true" msg="ItemMsgOxygenRefill">
<GuiFrame relativesize="0.25,0.2" anchor="Center" style="ItemUI" />
<Containable items="oxygentank,ammobox,deepdiving,smallitem,mediumitem,largeitem" />
</ItemContainer>
@@ -864,9 +864,9 @@
</StatusEffect>
<RequiredItem items="screwdriver" type="Equipped" />
<input name="power_in" displayname="connection.powerin" />
<!-- Auf ein Neues! <output name="signal_out" displayname="connection.signalout" maxwires="40" /> -->
<output name="signal_out" displayname="entityname.waterdetector" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<!-- Auf ein Neues! <output name="signal_out" displayname="connection.signalout" maxwires="10" /> -->
<output name="signal_out" displayname="entityname.waterdetector" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="mechanicalrepairsheader" msg="ItemMsgRepairWrench" hudpriority="10" deteriorationspeed="0.2" mindeteriorationdelay="120" maxdeteriorationdelay="360" MinDeteriorationCondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25">
<RequiredSkill identifier="mechanical" level="55" />
@@ -919,7 +919,7 @@
<input name="set_active" displayname="connection.setstate" />
<input name="set_speed" displayname="connection.setpumpingspeed" />
<input name="set_targetlevel" displayname="connection.settargetwaterlevel" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="mechanicalrepairsheader" msg="ItemMsgRepairWrench" hudpriority="10" deteriorationspeed="0.15" mindeteriorationdelay="160" maxdeteriorationdelay="420" MinDeteriorationCondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25">
<RequiredSkill identifier="mechanical" level="55" />

View File

@@ -32,10 +32,10 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="160" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="40" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="10" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" deteriorationspeed="0.1" mindeteriorationdelay="120" maxdeteriorationdelay="720" mindeteriorationcondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,216" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />
@@ -86,10 +86,10 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="160" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="40" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="10" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" deteriorationspeed="0.1" mindeteriorationdelay="120" maxdeteriorationdelay="720" mindeteriorationcondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,216" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />
@@ -150,10 +150,10 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="160" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="40" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="10" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" deteriorationspeed="0.1" mindeteriorationdelay="120" maxdeteriorationdelay="720" mindeteriorationcondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,216" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />
@@ -204,14 +204,14 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="signal_0" displayname="connection.signalx~[num]=0" fallbackdisplayname="connection.signalinx~[num]=0" maxwires="40" />
<output name="signal_1" displayname="connection.signalx~[num]=1" fallbackdisplayname="connection.signalinx~[num]=1" maxwires="40" />
<output name="signal_2" displayname="connection.signalx~[num]=2" fallbackdisplayname="connection.signalinx~[num]=2" maxwires="40" />
<output name="signal_3" displayname="connection.signalx~[num]=3" fallbackdisplayname="connection.signalinx~[num]=3" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="40" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<output name="signal_0" displayname="connection.signalx~[num]=0" fallbackdisplayname="connection.signalinx~[num]=0" maxwires="10" />
<output name="signal_1" displayname="connection.signalx~[num]=1" fallbackdisplayname="connection.signalinx~[num]=1" maxwires="10" />
<output name="signal_2" displayname="connection.signalx~[num]=2" fallbackdisplayname="connection.signalinx~[num]=2" maxwires="10" />
<output name="signal_3" displayname="connection.signalx~[num]=3" fallbackdisplayname="connection.signalinx~[num]=3" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="10" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" deteriorationspeed="0.1" mindeteriorationdelay="120" maxdeteriorationdelay="720" mindeteriorationcondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,216" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />
@@ -262,14 +262,14 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power" displayname="connection.power" maxwires="40" />
<output name="signal_0" displayname="connection.signalx~[num]=0" fallbackdisplayname="connection.signalinx~[num]=0" maxwires="40" />
<output name="signal_1" displayname="connection.signalx~[num]=1" fallbackdisplayname="connection.signalinx~[num]=1" maxwires="40" />
<output name="signal_2" displayname="connection.signalx~[num]=2" fallbackdisplayname="connection.signalinx~[num]=2" maxwires="40" />
<output name="signal_3" displayname="connection.signalx~[num]=3" fallbackdisplayname="connection.signalinx~[num]=3" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="40" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="40" />
<output name="power" displayname="connection.power" maxwires="10" />
<output name="signal_0" displayname="connection.signalx~[num]=0" fallbackdisplayname="connection.signalinx~[num]=0" maxwires="10" />
<output name="signal_1" displayname="connection.signalx~[num]=1" fallbackdisplayname="connection.signalinx~[num]=1" maxwires="10" />
<output name="signal_2" displayname="connection.signalx~[num]=2" fallbackdisplayname="connection.signalinx~[num]=2" maxwires="10" />
<output name="signal_3" displayname="connection.signalx~[num]=3" fallbackdisplayname="connection.signalinx~[num]=3" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
<output name="power_value_out" displayname="connection.powervalueout" maxwires="10" />
<output name="load_value_out" displayname="connection.loadvalueout" maxwires="10" />
</ConnectionPanel>
<Repairable selectkey="Action" header="electricalrepairsheader" deteriorationspeed="0.1" mindeteriorationdelay="120" maxdeteriorationdelay="720" mindeteriorationcondition="0" RepairThreshold="80" fixDurationHighSkill="5" fixDurationLowSkill="25" msg="ItemMsgRepairScrewdriver" hudpriority="10">
<GuiFrame relativesize="0.2,0.16" minsize="400,180" maxsize="480,216" anchor="Center" relativeoffset="0.0,0.27" style="ItemUI" />
@@ -307,15 +307,15 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<requireditem items="Screwdriver" type="Equipped" />
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<input name="power_in" displayname="connection.powerin" />
<input name="set_rate" displayname="connection.batterysetrechargespeed" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="40" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="40" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="10" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="10" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<ItemContainer capacity="27" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<ItemContainer capacity="9" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<GuiFrame relativesize="0.2,0.2" anchor="Center" relativeoffset="0,0.2" style="ItemUI" />
<Containable items="loadable" />
</ItemContainer>
@@ -356,15 +356,15 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<requireditem items="Screwdriver" type="Equipped" />
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<input name="power_in" displayname="connection.powerin" />
<input name="set_rate" displayname="connection.batterysetrechargespeed" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="40" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="40" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="10" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="10" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<ItemContainer capacity="27" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<ItemContainer capacity="9" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<GuiFrame relativesize="0.2,0.2" anchor="Center" relativeoffset="0,0.2" style="ItemUI" />
<Containable items="loadable" />
</ItemContainer>
@@ -405,15 +405,15 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<requireditem items="Screwdriver" type="Equipped" />
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<input name="power_in" displayname="connection.powerin" />
<input name="set_rate" displayname="connection.batterysetrechargespeed" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="40" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="40" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="10" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="10" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<ItemContainer capacity="27" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<ItemContainer capacity="9" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<GuiFrame relativesize="0.2,0.2" anchor="Center" relativeoffset="0,0.2" style="ItemUI" />
<Containable items="loadable" />
</ItemContainer>
@@ -454,15 +454,15 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<requireditem items="Screwdriver" type="Equipped" />
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<input name="power_in" displayname="connection.powerin" />
<input name="set_rate" displayname="connection.batterysetrechargespeed" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="40" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="40" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="10" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="10" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<ItemContainer capacity="27" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<ItemContainer capacity="9" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<GuiFrame relativesize="0.2,0.2" anchor="Center" relativeoffset="0,0.2" style="ItemUI" />
<Containable items="loadable" />
</ItemContainer>
@@ -503,15 +503,15 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<requireditem items="Screwdriver" type="Equipped" />
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<input name="power_in" displayname="connection.powerin" />
<input name="set_rate" displayname="connection.batterysetrechargespeed" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="40" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="40" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="10" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="10" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<ItemContainer capacity="27" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<ItemContainer capacity="9" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<GuiFrame relativesize="0.2,0.2" anchor="Center" relativeoffset="0,0.2" style="ItemUI" />
<Containable items="loadable" />
</ItemContainer>
@@ -551,13 +551,13 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<input name="power_in" displayname="connection.powerin" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="40" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="40" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="40" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="10" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="10" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="10" />
<input name="set_rate" displayname="connection.batterysetrechargespeed" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<LightComponent range="10.0" lightcolor="255,255,255,0" pulsefrequency="0.4" pulseamount="0.4" powerconsumption="1" IsOn="false" castshadows="false" allowingameediting="false">
<sprite texture="Content/Items/Electricity/signalcomp.png" sourcerect="358,334,154,160" depth="0.1" origin="0.5,0.5" alpha="1.0" />
@@ -600,13 +600,13 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<RequiredItem items="screwdriver" type="Equipped" />
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<input name="power_in" displayname="connection.powerin" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="40" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="40" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="40" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="10" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="10" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="10" />
<input name="set_rate" displayname="connection.batterysetrechargespeed" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<LightComponent range="10.0" lightcolor="255,255,255,0" pulsefrequency="0.4" pulseamount="0.4" powerconsumption="1" IsOn="false" castshadows="false" allowingameediting="false">
<sprite texture="Content/Items/Electricity/signalcomp.png" sourcerect="358,334,154,160" depth="0.1" origin="0.5,0.5" alpha="1.0" />

View File

@@ -27,15 +27,15 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<requireditem items="Screwdriver" type="Equipped" />
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<input name="power_in" displayname="connection.powerin" />
<input name="set_rate" displayname="connection.batterysetrechargespeed" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="40" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="40" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="10" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="10" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<ItemContainer capacity="27" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<ItemContainer capacity="9" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<GuiFrame relativesize="0.2,0.2" anchor="Center" relativeoffset="0,0.2" style="ItemUI" />
<Containable items="loadable" />
</ItemContainer>
@@ -78,15 +78,15 @@
<Affliction identifier="burn" strength="5" />
</StatusEffect>
<requireditem items="Screwdriver" type="Equipped" />
<output name="power_out" displayname="connection.powerout" maxwires="40" />
<output name="power_out" displayname="connection.powerout" maxwires="10" />
<input name="power_in" displayname="connection.powerin" />
<input name="set_rate" displayname="connection.batterysetrechargespeed" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="40" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="40" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="40" />
<output name="condition_out" displayname="connection.conditionout" maxwires="40" />
<output name="charge" displayname="connection.batterychargestatusout" maxwires="10" />
<output name="charge_%" displayname="connection.batterychargepercentage" maxwires="10" />
<output name="charge_rate" displayname="connection.batteryrechargespeedout" maxwires="10" />
<output name="condition_out" displayname="connection.conditionout" maxwires="10" />
</ConnectionPanel>
<ItemContainer capacity="27" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<ItemContainer capacity="9" maxstacksize="60" canbeselected="true" hideitems="true" hudpos="0.5,0.6" uilabel="ChargingDock">
<GuiFrame relativesize="0.2,0.2" anchor="Center" relativeoffset="0,0.2" style="ItemUI" />
<Containable items="loadable" />
</ItemContainer>

Some files were not shown because too many files have changed in this diff Show More