980 lines
34 KiB
XML
980 lines
34 KiB
XML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<Defs>
|
|
|
|
<!--Shoulder Turret-->
|
|
|
|
<HediffDef ParentName="ImplantHediffBase" MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<defName>LTS_ShoulderTurret</defName>
|
|
<label>shoulder turret</label>
|
|
<labelNoun>a shoulder mounted turret</labelNoun>
|
|
<description>An installed shoulder mounted turret.</description>
|
|
<descriptionHyperlinks><ThingDef>LTS_ShoulderTurret</ThingDef></descriptionHyperlinks>
|
|
<spawnThingOnRemoved>LTS_ShoulderTurret</spawnThingOnRemoved>
|
|
<comps>
|
|
<li Class="HediffCompProperties_GiveAbility">
|
|
<abilityDefs>
|
|
<li>LTS_ToggleShoulderTurret</li>
|
|
</abilityDefs>
|
|
</li>
|
|
<li Class="LTS_Implants.LTS_HediffCompProperties_AddExtraHediffOnNPCSpawn">
|
|
<compClass>LTS_Implants.LTS_HediffComp_AddExtraHediffOnNPCSpawn</compClass>
|
|
<hediffDef>LTS_ShoulderTurretActive</hediffDef>
|
|
</li>
|
|
</comps>
|
|
<duplicationAllowed>false</duplicationAllowed>
|
|
<tags><li>LTS_ShoulderTurret</li></tags>
|
|
<!--<renderNodeProperties>
|
|
<li Class="PawnRenderNodeProperties_Spastic">
|
|
<texPaths>
|
|
<li>Things/Pawn/Attachments/ShoulderTurret</li>
|
|
</texPaths>
|
|
<parentTagDef>Body</parentTagDef>
|
|
<overrideMeshSize>1</overrideMeshSize>
|
|
<drawSize>0.5</drawSize>
|
|
<rotationRange>-30~30</rotationRange>
|
|
<durationTicksRange>10~35</durationTicksRange>
|
|
<nextSpasmTicksRange>10~50</nextSpasmTicksRange>
|
|
<drawData>
|
|
<scaleOffsetByBodySize>true</scaleOffsetByBodySize>
|
|
<useHediffAnchor>true</useHediffAnchor>
|
|
<childScale>0.7</childScale>
|
|
<bodyTypeScales>
|
|
<Hulk>1.2</Hulk>
|
|
<Fat>1.2</Fat>
|
|
<Thin>1</Thin>
|
|
<Male>1.1</Male>
|
|
</bodyTypeScales>
|
|
<defaultData>
|
|
<layer>49</layer>
|
|
</defaultData>
|
|
<dataNorth>
|
|
<offset>-0.3,0,0.2</offset>
|
|
|
|
</dataNorth>
|
|
<dataEast>
|
|
<layer>0</layer>
|
|
<offset>0,0,0.2</offset>
|
|
|
|
</dataEast>
|
|
<dataSouth>
|
|
<rotationOffset>220</rotationOffset>
|
|
<offset>0.3,0,0.2</offset>
|
|
|
|
</dataSouth>
|
|
<dataWest>
|
|
<offset>0,0,0.2</offset>
|
|
|
|
</dataWest>
|
|
</drawData>
|
|
</li>
|
|
</renderNodeProperties>-->
|
|
</HediffDef>
|
|
|
|
<ThingDef ParentName="BodyPartProstheticMakeableBase" MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<defName>LTS_ShoulderTurret</defName>
|
|
<label>shoulder turret</label>
|
|
<description>A miniature, retractable turret implanted on the shoulder. It's AI allows it to autonomously fire, even on the move, though it's size limits it's effectiveness.</description>
|
|
<descriptionHyperlinks><RecipeDef>LTS_InstallShoulderTurret</RecipeDef></descriptionHyperlinks>
|
|
<thingSetMakerTags><li>RewardStandardLowFreq</li></thingSetMakerTags>
|
|
<costList>
|
|
<Steel>60</Steel>
|
|
<ComponentIndustrial>8</ComponentIndustrial>
|
|
</costList>
|
|
<recipeMaker>
|
|
<researchPrerequisite>I_ShoulderTurrets</researchPrerequisite>
|
|
</recipeMaker>
|
|
</ThingDef>
|
|
|
|
<RecipeDef ParentName="SurgeryInstallImplantBase" MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<defName>LTS_InstallShoulderTurret</defName>
|
|
<label>install shoulder turret</label>
|
|
<description>Install a shoulder mounted turret.</description>
|
|
<descriptionHyperlinks>
|
|
<ThingDef>LTS_ShoulderTurret</ThingDef>
|
|
<HediffDef>LTS_ShoulderTurret</HediffDef>
|
|
</descriptionHyperlinks>
|
|
<jobString>Installing shoulder turret.</jobString>
|
|
<ingredients>
|
|
<li>
|
|
<filter>
|
|
<thingDefs>
|
|
<li>LTS_ShoulderTurret</li>
|
|
</thingDefs>
|
|
</filter>
|
|
<count>1</count>
|
|
</li>
|
|
</ingredients>
|
|
<fixedIngredientFilter>
|
|
<thingDefs>
|
|
<li>LTS_ShoulderTurret</li>
|
|
</thingDefs>
|
|
</fixedIngredientFilter>
|
|
<appliedOnFixedBodyParts>
|
|
<li>Torso</li>
|
|
</appliedOnFixedBodyParts>
|
|
<addsHediff>LTS_ShoulderTurret</addsHediff>
|
|
<incompatibleWithHediffTags><li>LTS_ShoulderTurret</li></incompatibleWithHediffTags>
|
|
</RecipeDef>
|
|
|
|
<RecipeDef ParentName="SurgeryRemoveImplantBase" MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<defName>LTS_RemoveShoulderTurret</defName>
|
|
<label>remove shoulder turret</label>
|
|
<description>Remove shoulder mounted turret.</description>
|
|
<descriptionHyperlinks>
|
|
<ThingDef>LTS_ShoulderTurret</ThingDef>
|
|
<HediffDef>LTS_ShoulderTurret</HediffDef>
|
|
</descriptionHyperlinks>
|
|
<jobString>Removing shoulder turret.</jobString>
|
|
<removesHediff>LTS_ShoulderTurret</removesHediff>
|
|
<workerClass>LTS_Implants.Recipe_RemoveImplantWithToggleHediff</workerClass>
|
|
<modExtensions>
|
|
<li Class="LTS_Implants.LTS_IModExtension">
|
|
<LTS_Hediff>LTS_ShoulderTurretActive</LTS_Hediff>
|
|
</li>
|
|
</modExtensions>
|
|
</RecipeDef>
|
|
|
|
<AbilityDef MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<abilityClass>Ability</abilityClass>
|
|
<defName>LTS_ToggleShoulderTurret</defName>
|
|
<label>toggle turret</label>
|
|
<description>extend or retract a tiny, shoulder mounted automatic turret</description>
|
|
<iconPath>UI/ShoulderTurret</iconPath>
|
|
<casterMustBeCapableOfViolence>true</casterMustBeCapableOfViolence>
|
|
<displayGizmoWhileUndrafted>false</displayGizmoWhileUndrafted>
|
|
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
|
|
<showWhenDrafted>true</showWhenDrafted>
|
|
<uiOrder>6</uiOrder>
|
|
<targetRequired>False</targetRequired>
|
|
<comps>
|
|
<li Class="LTS_Implants.LTS_CompProperties_ToggleHediff">
|
|
<compClass>LTS_Implants.LTS_CompAbilityEffect_ToggleHediff</compClass>
|
|
<ToggleHediff>LTS_ShoulderTurretActive</ToggleHediff>
|
|
<location>Torso</location>
|
|
</li>
|
|
</comps>
|
|
<groupAbility>true</groupAbility>
|
|
<verbProperties>
|
|
<verbClass>Verb_CastAbility</verbClass>
|
|
<drawAimPie>false</drawAimPie>
|
|
<requireLineOfSight>false</requireLineOfSight>
|
|
<nonInterruptingSelfCast>true</nonInterruptingSelfCast>
|
|
<targetable>false</targetable>
|
|
<targetParams>
|
|
<canTargetSelf>true</canTargetSelf>
|
|
</targetParams>
|
|
</verbProperties>
|
|
</AbilityDef>
|
|
|
|
<HediffDef MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<defName>LTS_ShoulderTurretActive</defName>
|
|
<hediffClass>HediffWithComps</hediffClass>
|
|
<label>extended shoulder turret</label>
|
|
<description>Invisible hediff with shoulderturret.</description>
|
|
<defaultLabelColor>(1,1,1)</defaultLabelColor>
|
|
<scenarioCanAdd>false</scenarioCanAdd>
|
|
<isBad>false</isBad>
|
|
<stages>
|
|
<li>
|
|
<becomeVisible>false</becomeVisible>
|
|
</li>
|
|
</stages>
|
|
<comps>
|
|
<li Class="MVCF.Comps.HediffCompProperties_ExtendedVerbGiver">
|
|
<verbs>
|
|
<li>
|
|
<verbClass>Verb_Shoot</verbClass>
|
|
<label>shoulder turret gun</label>
|
|
<defaultProjectile>LTS_Bullet_ShoulderTurret</defaultProjectile>
|
|
<warmupTime>1.5</warmupTime>
|
|
<range>20</range>
|
|
<hasStandardCommand>true</hasStandardCommand>
|
|
<ticksBetweenBurstShots>8</ticksBetweenBurstShots>
|
|
<burstShotCount>3</burstShotCount>
|
|
<soundCast>GunShotA</soundCast>
|
|
<soundCastTail>GunTail_Light</soundCastTail>
|
|
<muzzleFlashScale>9</muzzleFlashScale>
|
|
</li>
|
|
</verbs>
|
|
<verbProps>
|
|
<li>
|
|
<label>shoulder turret gun</label>
|
|
<visualLabel>shoulder turret gun</visualLabel>
|
|
<description>A low caliber autonomous gun made to be mounted on a shoulder.</description>
|
|
<canBeToggled>false</canBeToggled>
|
|
<comps>
|
|
<li Class="MVCF.VerbComps.VerbCompProperties_Turret">
|
|
<compClass>MVCF.VerbComps.VerbComp_Turret</compClass>
|
|
<humanAsDefault>true</humanAsDefault>
|
|
<graphic>
|
|
<texPath>Things/Pawn/Attachments/ShoulderWeaponry/ShoulderTurret</texPath>
|
|
<graphicClass>Graphic_Single</graphicClass>
|
|
<drawSize>0.6,0.6</drawSize>
|
|
</graphic>
|
|
<!--<specificPositions>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Hulk</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.3,0.2)</Up>
|
|
<Down>(0.3,0.2)</Down>
|
|
<Right>(-0.0,0.15)</Right>
|
|
<Left>(0.0,0.15)</Left>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Fat</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.35,0.2)</Up>
|
|
<Down>(0.35,0.2)</Down>
|
|
<Right>(-0.0,0.15)</Right>
|
|
<Left>(0.0,0.15)</Left>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Male</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.3,0.2)</Up>
|
|
<Down>(0.3,0.2)</Down>
|
|
<Right>(0,0.15)</Right>
|
|
<Left>(0,0.15)</Left>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Female</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.3,0.2)</Up>
|
|
<Down>(0.3,0.2)</Down>
|
|
<Right>(0,0.15)</Right>
|
|
<Left>(0,0.15)</Left>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Thin</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.275,0.2)</Up>
|
|
<Down>(0.275,0.2)</Down>
|
|
<Right>(-0,0.15)</Right>
|
|
<Left>(0,0.15)</Left>
|
|
</li>
|
|
</specificPositions>-->
|
|
<specificPositions>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Hulk</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.4,-0.1)</Up>
|
|
<Down>(0.4,0.2)</Down>
|
|
<Right>(-0.55,0.1)</Right>
|
|
<Left>(0.55,0.1)</Left>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Fat</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.35,-0.0)</Up>
|
|
<Down>(0.35,0.2)</Down>
|
|
<Right>(-0.5,0.1)</Right>
|
|
<Left>(0.5,0.1)</Left>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Male</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.3,-0.0)</Up>
|
|
<Down>(0.3,0.2)</Down>
|
|
<Right>(-0.4,0.1)</Right>
|
|
<Left>(0.4,0.1)</Left>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Female</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.3,-0.0)</Up>
|
|
<Down>(0.3,0.2)</Down>
|
|
<Right>(-0.4,0.1)</Right>
|
|
<Left>(0.4,0.1)</Left>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Thin</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.275,-0.0)</Up>
|
|
<Down>(0.275,0.2)</Down>
|
|
<Right>(-0.4,0.1)</Right>
|
|
<Left>(0.4,0.1)</Left>
|
|
</li>
|
|
</specificPositions>
|
|
<scalings>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Thin</BodyType>
|
|
<scaling>1.1</scaling>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Male</BodyType>
|
|
<scaling>1.2</scaling>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Female</BodyType>
|
|
<scaling>1.2</scaling>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Fat</BodyType>
|
|
<scaling>1.3</scaling>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Hulk</BodyType>
|
|
<scaling>1.3</scaling>
|
|
</li>
|
|
</scalings>
|
|
</li>
|
|
<li Class="MVCF.VerbComps.VerbCompProperties_Cooldown">
|
|
<compClass>MVCF.VerbComps.VerbComp_Cooldown</compClass>
|
|
<cooldownTime>1.5</cooldownTime>
|
|
</li>
|
|
</comps>
|
|
</li>
|
|
</verbProps>
|
|
</li>
|
|
</comps>
|
|
</HediffDef>
|
|
|
|
<ThingDef ParentName="BaseBullet" MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<defName>LTS_Bullet_ShoulderTurret</defName>
|
|
<label>shoulder turret bullet</label>
|
|
<graphicData>
|
|
<texPath>Things/Projectile/Bullet_Small</texPath>
|
|
<graphicClass>Graphic_Single</graphicClass>
|
|
</graphicData>
|
|
<projectile>
|
|
<damageDef>Bullet</damageDef>
|
|
<damageAmountBase>6</damageAmountBase>
|
|
<speed>55</speed>
|
|
</projectile>
|
|
</ThingDef>
|
|
|
|
<!--Shoulder Charge Turret-->
|
|
|
|
<HediffDef ParentName="ImplantHediffBase" MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<defName>LTS_ShoulderChargeTurret</defName>
|
|
<label>shoulder charge turret</label>
|
|
<labelNoun>a shoulder mounted charge turret</labelNoun>
|
|
<description>An installed, shoulder mounted charge turret.</description>
|
|
<descriptionHyperlinks><ThingDef>LTS_ShoulderChargeTurret</ThingDef></descriptionHyperlinks>
|
|
<spawnThingOnRemoved>LTS_ShoulderChargeTurret</spawnThingOnRemoved>
|
|
<comps>
|
|
<li Class="HediffCompProperties_GiveAbility">
|
|
<abilityDefs>
|
|
<li>LTS_ToggleShoulderChargeTurret</li>
|
|
</abilityDefs>
|
|
</li>
|
|
<li Class="LTS_Implants.LTS_HediffCompProperties_AddExtraHediffOnNPCSpawn">
|
|
<compClass>LTS_Implants.LTS_HediffComp_AddExtraHediffOnNPCSpawn</compClass>
|
|
<hediffDef>LTS_ShoulderChargeTurretActive</hediffDef>
|
|
</li>
|
|
</comps>
|
|
<duplicationAllowed>false</duplicationAllowed>
|
|
<tags><li>LTS_ShoulderTurret</li></tags>
|
|
</HediffDef>
|
|
|
|
<ThingDef ParentName="BodyPartBionicBase" MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<defName>LTS_ShoulderChargeTurret</defName>
|
|
<label>shoulder charge turret</label>
|
|
<description>A miniature, retractable charge turret implanted on the shoulder. It's AI allows it to autonomously fire, even on the move, though it's size limits it's effectiveness.</description>
|
|
<descriptionHyperlinks><RecipeDef>LTS_InstallShoulderChargeTurret</RecipeDef></descriptionHyperlinks>
|
|
<thingSetMakerTags><li>RewardStandardLowFreq</li></thingSetMakerTags>
|
|
<costList>
|
|
<Plasteel>25</Plasteel>
|
|
<ComponentSpacer>4</ComponentSpacer>
|
|
</costList>
|
|
<recipeMaker>
|
|
<researchPrerequisites Inherit="False"><li>I_ShoulderTurrets</li><li>ChargedShot</li></researchPrerequisites>
|
|
<researchPrerequisite Inherit="False"></researchPrerequisite>
|
|
</recipeMaker>
|
|
</ThingDef>
|
|
|
|
<RecipeDef ParentName="SurgeryInstallImplantBase" MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<defName>LTS_InstallShoulderChargeTurret</defName>
|
|
<label>install shoulder charge turret</label>
|
|
<description>Install a shoulder mounted charge turret.</description>
|
|
<descriptionHyperlinks>
|
|
<ThingDef>LTS_ShoulderChargeTurret</ThingDef>
|
|
<HediffDef>LTS_ShoulderChargeTurret</HediffDef>
|
|
</descriptionHyperlinks>
|
|
<jobString>Installing shoulder charge turret.</jobString>
|
|
<ingredients>
|
|
<li>
|
|
<filter>
|
|
<thingDefs>
|
|
<li>LTS_ShoulderChargeTurret</li>
|
|
</thingDefs>
|
|
</filter>
|
|
<count>1</count>
|
|
</li>
|
|
</ingredients>
|
|
<fixedIngredientFilter>
|
|
<thingDefs>
|
|
<li>LTS_ShoulderChargeTurret</li>
|
|
</thingDefs>
|
|
</fixedIngredientFilter>
|
|
<appliedOnFixedBodyParts>
|
|
<li>Torso</li>
|
|
</appliedOnFixedBodyParts>
|
|
<addsHediff>LTS_ShoulderChargeTurret</addsHediff>
|
|
<incompatibleWithHediffTags><li>LTS_ShoulderTurret</li></incompatibleWithHediffTags>
|
|
</RecipeDef>
|
|
|
|
<RecipeDef ParentName="SurgeryRemoveImplantBase" MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<defName>LTS_RemoveShoulderChargeTurret</defName>
|
|
<label>remove shoulder charge turret</label>
|
|
<description>Remove shoulder mounted charge turret.</description>
|
|
<descriptionHyperlinks>
|
|
<ThingDef>LTS_ShoulderChargeTurret</ThingDef>
|
|
<HediffDef>LTS_ShoulderChargeTurret</HediffDef>
|
|
</descriptionHyperlinks>
|
|
<jobString>Removing shoulder charge turret.</jobString>
|
|
<removesHediff>LTS_ShoulderChargeTurret</removesHediff>
|
|
<workerClass>LTS_Implants.Recipe_RemoveImplantWithToggleHediff</workerClass>
|
|
<modExtensions>
|
|
<li Class="LTS_Implants.LTS_IModExtension">
|
|
<LTS_Hediff>LTS_ShoulderChargeTurretActive</LTS_Hediff>
|
|
</li>
|
|
</modExtensions>
|
|
</RecipeDef>
|
|
|
|
<AbilityDef MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<abilityClass>Ability</abilityClass>
|
|
<defName>LTS_ToggleShoulderChargeTurret</defName>
|
|
<label>toggle turret</label>
|
|
<description>extend or retract a tiny, shoulder mounted automatic charge turret</description>
|
|
<iconPath>UI/ShoulderTurret</iconPath>
|
|
<casterMustBeCapableOfViolence>true</casterMustBeCapableOfViolence>
|
|
<displayGizmoWhileUndrafted>false</displayGizmoWhileUndrafted>
|
|
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
|
|
<showWhenDrafted>true</showWhenDrafted>
|
|
<uiOrder>6</uiOrder>
|
|
<targetRequired>False</targetRequired>
|
|
<comps>
|
|
<li Class="LTS_Implants.LTS_CompProperties_ToggleHediff">
|
|
<compClass>LTS_Implants.LTS_CompAbilityEffect_ToggleHediff</compClass>
|
|
<ToggleHediff>LTS_ShoulderChargeTurretActive</ToggleHediff>
|
|
<location>Torso</location>
|
|
</li>
|
|
</comps>
|
|
<groupAbility>true</groupAbility>
|
|
<verbProperties>
|
|
<verbClass>Verb_CastAbility</verbClass>
|
|
<drawAimPie>false</drawAimPie>
|
|
<requireLineOfSight>false</requireLineOfSight>
|
|
<nonInterruptingSelfCast>true</nonInterruptingSelfCast>
|
|
<targetable>false</targetable>
|
|
<targetParams>
|
|
<canTargetSelf>true</canTargetSelf>
|
|
</targetParams>
|
|
</verbProperties>
|
|
</AbilityDef>
|
|
|
|
<HediffDef MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<defName>LTS_ShoulderChargeTurretActive</defName>
|
|
<hediffClass>HediffWithComps</hediffClass>
|
|
<label>extended charge shoulder turret</label>
|
|
<description>Invisible hediff with shoulderturret.</description>
|
|
<defaultLabelColor>(1,1,1)</defaultLabelColor>
|
|
<scenarioCanAdd>false</scenarioCanAdd>
|
|
<isBad>false</isBad>
|
|
<stages>
|
|
<li>
|
|
<becomeVisible>false</becomeVisible>
|
|
</li>
|
|
</stages>
|
|
<comps>
|
|
<li Class="MVCF.Comps.HediffCompProperties_ExtendedVerbGiver">
|
|
<verbs>
|
|
<li>
|
|
<verbClass>Verb_Shoot</verbClass>
|
|
<label>shoulder turret charge gun</label>
|
|
<defaultProjectile>LTS_Bullet_ShoulderChargeTurret</defaultProjectile>
|
|
<warmupTime>1.5</warmupTime>
|
|
<range>20</range>
|
|
<hasStandardCommand>true</hasStandardCommand>
|
|
<ticksBetweenBurstShots>8</ticksBetweenBurstShots>
|
|
<burstShotCount>3</burstShotCount>
|
|
<soundCast>Shot_ChargeRifle</soundCast>
|
|
<soundCastTail>GunTail_Light</soundCastTail>
|
|
<muzzleFlashScale>9</muzzleFlashScale>
|
|
</li>
|
|
</verbs>
|
|
<verbProps>
|
|
<li>
|
|
<label>shoulder turret charge gun</label>
|
|
<visualLabel>shoulder turret charge gun</visualLabel>
|
|
<description>A low caliber autonomous charge gun made to be mounted on a shoulder.</description>
|
|
<canBeToggled>false</canBeToggled>
|
|
<comps>
|
|
<li Class="MVCF.VerbComps.VerbCompProperties_Turret">
|
|
<compClass>MVCF.VerbComps.VerbComp_Turret</compClass>
|
|
<humanAsDefault>true</humanAsDefault>
|
|
|
|
<graphic>
|
|
<texPath>Things/Pawn/Attachments/ShoulderWeaponry/ChargeShoulderTurret</texPath>
|
|
<graphicClass>Graphic_Single</graphicClass>
|
|
<drawSize>0.6,0.6</drawSize>
|
|
</graphic>
|
|
<specificPositions>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Hulk</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.4,-0.1)</Up>
|
|
<Down>(0.4,0.2)</Down>
|
|
<Right>(-0.55,0.1)</Right>
|
|
<Left>(0.55,0.1)</Left>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Fat</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.35,-0.0)</Up>
|
|
<Down>(0.35,0.2)</Down>
|
|
<Right>(-0.5,0.1)</Right>
|
|
<Left>(0.5,0.1)</Left>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Male</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.3,-0.0)</Up>
|
|
<Down>(0.3,0.2)</Down>
|
|
<Right>(-0.4,0.1)</Right>
|
|
<Left>(0.4,0.1)</Left>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Female</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.3,-0.0)</Up>
|
|
<Down>(0.3,0.2)</Down>
|
|
<Right>(-0.4,0.1)</Right>
|
|
<Left>(0.4,0.1)</Left>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Thin</BodyType>
|
|
<Default>(0,0)</Default>
|
|
<Up>(-0.275,-0.0)</Up>
|
|
<Down>(0.275,0.2)</Down>
|
|
<Right>(-0.4,0.1)</Right>
|
|
<Left>(0.4,0.1)</Left>
|
|
</li>
|
|
</specificPositions>
|
|
<scalings>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Thin</BodyType>
|
|
<scaling>1.1</scaling>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Male</BodyType>
|
|
<scaling>1.2</scaling>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Female</BodyType>
|
|
<scaling>1.2</scaling>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Fat</BodyType>
|
|
<scaling>1.3</scaling>
|
|
</li>
|
|
<li>
|
|
<defName>Human</defName>
|
|
<BodyType>Hulk</BodyType>
|
|
<scaling>1.3</scaling>
|
|
</li>
|
|
</scalings>
|
|
</li>
|
|
<li Class="MVCF.VerbComps.VerbCompProperties_Cooldown">
|
|
<compClass>MVCF.VerbComps.VerbComp_Cooldown</compClass>
|
|
<cooldownTime>1.5</cooldownTime>
|
|
</li>
|
|
</comps>
|
|
</li>
|
|
</verbProps>
|
|
</li>
|
|
</comps>
|
|
</HediffDef>
|
|
|
|
<ThingDef ParentName="BaseBullet" MayRequire="oskarpotocki.vanillafactionsexpanded.core">
|
|
<defName>LTS_Bullet_ShoulderChargeTurret</defName>
|
|
<label>shoulder turret charge shot</label>
|
|
<graphicData>
|
|
<texPath>Things/Projectile/Charge_Small</texPath>
|
|
<graphicClass>Graphic_Single</graphicClass>
|
|
</graphicData>
|
|
<projectile>
|
|
<damageDef>Bullet</damageDef>
|
|
<damageAmountBase>9</damageAmountBase>
|
|
<armorPenetrationBase>0.35</armorPenetrationBase>
|
|
<speed>70</speed>
|
|
</projectile>
|
|
</ThingDef>
|
|
|
|
<!--Shoulder Rocket Pod-->
|
|
|
|
<HediffDef ParentName="ImplantHediffBase">
|
|
<defName>LTS_ShoulderRocketPod</defName>
|
|
<label>shoulder rocket pod</label>
|
|
<labelNoun>a shoulder mounted rocket pod</labelNoun>
|
|
<description>An installed, shoulder mounted rocket pod.</description>
|
|
<descriptionHyperlinks><ThingDef>LTS_ShoulderRocketPod</ThingDef></descriptionHyperlinks>
|
|
<spawnThingOnRemoved>LTS_ShoulderRocketPod</spawnThingOnRemoved>
|
|
<abilities>
|
|
<li>LTS_ShoulderRocketPod</li>
|
|
</abilities>
|
|
<renderNodeProperties>
|
|
<li>
|
|
<workerClass>PawnRenderNodeWorker_AttachmentBody</workerClass>
|
|
<subworkerClasses><li>LTS_Implants.LTS_PawnRenderSubWorker_ChangeColourToApparel</li></subworkerClasses>
|
|
<texPath>Things/Pawn/Attachments/ShoulderWeaponry/ShoulderRocketPod</texPath>
|
|
<overrideMeshSize>(1, 1)</overrideMeshSize>
|
|
<drawSize>1,1</drawSize>
|
|
<parentTagDef>Body</parentTagDef>
|
|
<drawData>
|
|
<scaleOffsetByBodySize>true</scaleOffsetByBodySize>
|
|
<defaultData>
|
|
<layer>-2</layer>
|
|
</defaultData>
|
|
<dataNorth>
|
|
<offset>(-0.35, 0, 0.3)</offset>
|
|
<layer>90</layer>
|
|
</dataNorth>
|
|
<dataSouth>
|
|
<offset>(0.4, 0, 0.3)</offset>
|
|
</dataSouth>
|
|
<dataEast>
|
|
<offset>(-0.05, 0, 0.25)</offset>
|
|
</dataEast>
|
|
<dataWest>
|
|
<offset>(0.05, 5, 0.25)</offset>
|
|
</dataWest>
|
|
</drawData>
|
|
<tagDef>LTS_ColourableRenderNode</tagDef>
|
|
</li>
|
|
</renderNodeProperties>
|
|
<duplicationAllowed>false</duplicationAllowed>
|
|
<tags><li>LTS_ShoulderTurret</li></tags>
|
|
</HediffDef>
|
|
|
|
<ThingDef ParentName="BodyPartBionicBase">
|
|
<defName>LTS_ShoulderRocketPod</defName>
|
|
<label>shoulder rocket pod</label>
|
|
<description>A miniature rocket pod implanted on the shoulder. It can only hold a limited amount of ammo and must be reloaded after use.</description>
|
|
<descriptionHyperlinks><RecipeDef>LTS_InstallShoulderRocketPod</RecipeDef></descriptionHyperlinks>
|
|
<thingSetMakerTags><li>RewardStandardLowFreq</li></thingSetMakerTags>
|
|
<costList>
|
|
<Plasteel>30</Plasteel>
|
|
<ComponentSpacer>5</ComponentSpacer>
|
|
</costList>
|
|
<recipeMaker>
|
|
<researchPrerequisites Inherit="False"><li>I_ShoulderTurrets</li><li>RocketswarmLauncher</li></researchPrerequisites>
|
|
<researchPrerequisite Inherit="False"></researchPrerequisite>
|
|
</recipeMaker>
|
|
<isTechHediff>false</isTechHediff><!--Hopefully this should prevent it from spawning naturally and causing crashes-->
|
|
</ThingDef>
|
|
|
|
<RecipeDef ParentName="SurgeryInstallImplantBase">
|
|
<defName>LTS_InstallShoulderRocketPod</defName>
|
|
<label>install shoulder rocket pod</label>
|
|
<description>Install a shoulder rocket pod.</description>
|
|
<descriptionHyperlinks>
|
|
<ThingDef>LTS_ShoulderRocketPod</ThingDef>
|
|
<HediffDef>LTS_ShoulderRocketPod</HediffDef>
|
|
</descriptionHyperlinks>
|
|
<jobString>Installing shoulder rocket pod.</jobString>
|
|
<ingredients>
|
|
<li>
|
|
<filter>
|
|
<thingDefs>
|
|
<li>LTS_ShoulderRocketPod</li>
|
|
</thingDefs>
|
|
</filter>
|
|
<count>1</count>
|
|
</li>
|
|
</ingredients>
|
|
<fixedIngredientFilter>
|
|
<thingDefs>
|
|
<li>LTS_ShoulderRocketPod</li>
|
|
</thingDefs>
|
|
</fixedIngredientFilter>
|
|
<appliedOnFixedBodyParts>
|
|
<li>Torso</li>
|
|
</appliedOnFixedBodyParts>
|
|
<addsHediff>LTS_ShoulderRocketPod</addsHediff>
|
|
<incompatibleWithHediffTags><li>LTS_ShoulderTurret</li></incompatibleWithHediffTags>
|
|
</RecipeDef>
|
|
|
|
<RecipeDef ParentName="SurgeryRemoveImplantBase">
|
|
<defName>LTS_RemoveShoulderRocketPod</defName>
|
|
<label>remove shoulder rocket pod</label>
|
|
<description>Remove shoulder rocket pod.</description>
|
|
<descriptionHyperlinks>
|
|
<ThingDef>LTS_ShoulderRocketPod</ThingDef>
|
|
<HediffDef>LTS_ShoulderRocketPod</HediffDef>
|
|
</descriptionHyperlinks>
|
|
<jobString>Removing shoulder rocket pod.</jobString>
|
|
<removesHediff>LTS_ShoulderRocketPod</removesHediff>
|
|
</RecipeDef>
|
|
|
|
<AbilityDef>
|
|
<defName>LTS_ShoulderRocketPod</defName>
|
|
<label>fire rocket</label>
|
|
<description>Fire a rocket from a shoulder mounted pod.</description>
|
|
<iconPath>Things/Pawn/Attachments/ShoulderWeaponry/ShoulderRocketPod_east</iconPath>
|
|
<hostile>true</hostile>
|
|
<casterMustBeCapableOfViolence>true</casterMustBeCapableOfViolence>
|
|
<charges>2</charges>
|
|
<cooldownPerCharge>false</cooldownPerCharge>
|
|
<verbProperties>
|
|
|
|
<verbClass>Verb_CastAbility</verbClass>
|
|
<defaultProjectile>LTS_Projectile_ShoulderRocket</defaultProjectile>
|
|
<range>19.9</range>
|
|
<soundCast>RocketswarmLauncher_Fire</soundCast>
|
|
<soundCastTail>GunTail_Heavy</soundCastTail>
|
|
<muzzleFlashScale>14</muzzleFlashScale>
|
|
<warmupTime>0.5</warmupTime>
|
|
<ai_IsWeapon>true</ai_IsWeapon>
|
|
<targetParams>
|
|
<canTargetSelf>False</canTargetSelf>
|
|
<canTargetPawns>true</canTargetPawns>
|
|
<canTargetLocations>true</canTargetLocations>
|
|
<canTargetBuildings>true</canTargetBuildings>
|
|
</targetParams>
|
|
</verbProperties>
|
|
<comps>
|
|
<li Class="CompProperties_AbilityLaunchProjectile">
|
|
<projectileDef>LTS_Projectile_ShoulderRocket</projectileDef>
|
|
</li>
|
|
<li Class="LTS_Implants.LTS_CompProperties_AbilityReloadable">
|
|
<compClass>LTS_Implants.LTS_CompAbilityEffect_Reloadable</compClass>
|
|
<ammoDef>Chemfuel</ammoDef>
|
|
<ammoCountPerCharge>25</ammoCountPerCharge>
|
|
<soundReload>Standard_Reload</soundReload>
|
|
</li>
|
|
</comps>
|
|
<uiOrder>6</uiOrder>
|
|
<displayGizmoWhileUndrafted>false</displayGizmoWhileUndrafted>
|
|
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
|
|
<showWhenDrafted>true</showWhenDrafted>
|
|
</AbilityDef>
|
|
|
|
<ThingDef>
|
|
<defName>LTS_Projectile_ShoulderRocket</defName>
|
|
<label>rocket</label>
|
|
<thingClass>Projectile_Explosive</thingClass>
|
|
<category>Projectile</category>
|
|
<tickerType>Normal</tickerType>
|
|
<altitudeLayer>Projectile</altitudeLayer>
|
|
<useHitPoints>False</useHitPoints>
|
|
<neverMultiSelect>True</neverMultiSelect>
|
|
<graphicData>
|
|
<texPath>Things/Projectile/Rocket_Swarm</texPath>
|
|
<graphicClass>Graphic_Single</graphicClass>
|
|
<drawSize>1.2</drawSize>
|
|
</graphicData>
|
|
<projectile>
|
|
<damageDef>Bomb</damageDef>
|
|
<explosionRadius>1.9</explosionRadius>
|
|
<speed>38</speed>
|
|
<damageAmountBase>50</damageAmountBase>
|
|
<arcHeightFactor>0.0</arcHeightFactor>
|
|
<soundExplode>Explosion_Rocket</soundExplode>
|
|
</projectile>
|
|
</ThingDef>
|
|
|
|
<!--Shoulder Mortar-->
|
|
|
|
<HediffDef ParentName="ImplantHediffBase">
|
|
<defName>LTS_ShoulderMortar</defName>
|
|
<label>shoulder mortar</label>
|
|
<labelNoun>a shoulder mounted mortar</labelNoun>
|
|
<description>An installed, shoulder mounted mortar.</description>
|
|
<descriptionHyperlinks><ThingDef>LTS_ShoulderMortar</ThingDef></descriptionHyperlinks>
|
|
<spawnThingOnRemoved>LTS_ShoulderMortar</spawnThingOnRemoved>
|
|
<abilities>
|
|
<li>LTS_ShoulderMortar</li>
|
|
</abilities>
|
|
<renderNodeProperties>
|
|
<li>
|
|
<workerClass>PawnRenderNodeWorker_AttachmentBody</workerClass>
|
|
<subworkerClasses><li>LTS_Implants.LTS_PawnRenderSubWorker_ChangeColourToApparel</li></subworkerClasses>
|
|
<texPath>Things/Pawn/Attachments/ShoulderWeaponry/ShoulderMortar</texPath>
|
|
<overrideMeshSize>0.75</overrideMeshSize>
|
|
<drawSize>1,1</drawSize>
|
|
<parentTagDef>Body</parentTagDef>
|
|
<drawData>
|
|
<scaleOffsetByBodySize>true</scaleOffsetByBodySize>
|
|
<defaultData>
|
|
<layer>-2</layer>
|
|
</defaultData>
|
|
<dataNorth>
|
|
<offset>(-0.3, 0, 0.2)</offset>
|
|
<layer>90</layer>
|
|
</dataNorth>
|
|
<dataSouth>
|
|
<offset>(0.3, 0, 0.2)</offset>
|
|
</dataSouth>
|
|
<dataEast>
|
|
<offset>(-0.3, 0, 0.15)</offset>
|
|
</dataEast>
|
|
<dataWest>
|
|
<offset>(0.3, 0, 0.15)</offset>
|
|
</dataWest>
|
|
</drawData>
|
|
<tagDef>LTS_ColourableRenderNode</tagDef>
|
|
</li>
|
|
</renderNodeProperties>
|
|
<duplicationAllowed>false</duplicationAllowed>
|
|
<tags><li>LTS_ShoulderTurret</li></tags>
|
|
</HediffDef>
|
|
|
|
<ThingDef ParentName="BodyPartBionicBase">
|
|
<defName>LTS_ShoulderMortar</defName>
|
|
<label>shoulder mortar</label>
|
|
<description>A miniature mortar implanted on the shoulder. It can only hold a limited amount of ammo and must be reloaded after use.</description>
|
|
<descriptionHyperlinks><RecipeDef>LTS_InstallShoulderMortar</RecipeDef></descriptionHyperlinks>
|
|
<thingSetMakerTags><li>RewardStandardLowFreq</li></thingSetMakerTags>
|
|
<costList>
|
|
<Plasteel>30</Plasteel>
|
|
<ComponentSpacer>5</ComponentSpacer>
|
|
</costList>
|
|
<recipeMaker>
|
|
<researchPrerequisites Inherit="False"><li>I_ShoulderTurrets</li><li>Mortars</li></researchPrerequisites>
|
|
<researchPrerequisite Inherit="False"></researchPrerequisite>
|
|
</recipeMaker>
|
|
<isTechHediff>false</isTechHediff><!--Hopefully this should prevent it from spawning naturally and causing crashes-->
|
|
</ThingDef>
|
|
|
|
<RecipeDef ParentName="SurgeryInstallImplantBase">
|
|
<defName>LTS_InstallShoulderMortar</defName>
|
|
<label>install shoulder mortar</label>
|
|
<description>Install a shoulder mortar.</description>
|
|
<descriptionHyperlinks>
|
|
<ThingDef>LTS_ShoulderMortar</ThingDef>
|
|
<HediffDef>LTS_ShoulderMortar</HediffDef>
|
|
</descriptionHyperlinks>
|
|
<jobString>Installing shoulder mortar.</jobString>
|
|
<ingredients>
|
|
<li>
|
|
<filter>
|
|
<thingDefs>
|
|
<li>LTS_ShoulderMortar</li>
|
|
</thingDefs>
|
|
</filter>
|
|
<count>1</count>
|
|
</li>
|
|
</ingredients>
|
|
<fixedIngredientFilter>
|
|
<thingDefs>
|
|
<li>LTS_ShoulderMortar</li>
|
|
</thingDefs>
|
|
</fixedIngredientFilter>
|
|
<appliedOnFixedBodyParts>
|
|
<li>Torso</li>
|
|
</appliedOnFixedBodyParts>
|
|
<addsHediff>LTS_ShoulderMortar</addsHediff>
|
|
<incompatibleWithHediffTags><li>LTS_ShoulderTurret</li></incompatibleWithHediffTags>
|
|
</RecipeDef>
|
|
|
|
<RecipeDef ParentName="SurgeryRemoveImplantBase">
|
|
<defName>LTS_RemoveShoulderMortar</defName>
|
|
<label>remove shoulder mortar</label>
|
|
<description>Remove shoulder mortar.</description>
|
|
<descriptionHyperlinks>
|
|
<ThingDef>LTS_ShoulderMortar</ThingDef>
|
|
<HediffDef>LTS_ShoulderMortar</HediffDef>
|
|
</descriptionHyperlinks>
|
|
<jobString>Removing shoulder mortar.</jobString>
|
|
<removesHediff>LTS_ShoulderMortar</removesHediff>
|
|
</RecipeDef>
|
|
|
|
<AbilityDef>
|
|
<defName>LTS_ShoulderMortar</defName>
|
|
<label>fire mortar</label>
|
|
<description>Fire a shell from a shoulder mounted mortar.</description>
|
|
<iconPath>Things/Pawn/Attachments/ShoulderWeaponry/ShoulderMortar_east</iconPath>
|
|
<hostile>true</hostile>
|
|
<casterMustBeCapableOfViolence>true</casterMustBeCapableOfViolence>
|
|
<charges>1</charges>
|
|
<cooldownPerCharge>false</cooldownPerCharge>
|
|
<verbProperties>
|
|
|
|
<verbClass>Verb_CastAbility</verbClass>
|
|
<defaultProjectile>LTS_Projectile_ShoulderRocket</defaultProjectile>
|
|
<range>9.9</range>
|
|
<soundCast>Mortar_LaunchA</soundCast>
|
|
<soundCastTail>GunTail_Light</soundCastTail>
|
|
<muzzleFlashScale>14</muzzleFlashScale>
|
|
<warmupTime>3</warmupTime>
|
|
<ai_IsWeapon>true</ai_IsWeapon>
|
|
<targetParams>
|
|
<canTargetSelf>False</canTargetSelf>
|
|
<canTargetPawns>true</canTargetPawns>
|
|
<canTargetLocations>true</canTargetLocations>
|
|
<canTargetBuildings>true</canTargetBuildings>
|
|
</targetParams>
|
|
<isMortar>true</isMortar>
|
|
<requireLineOfSight>false</requireLineOfSight>
|
|
</verbProperties>
|
|
<comps>
|
|
|
|
<li Class="CompProperties_AbilityLaunchProjectile">
|
|
<projectileDef>LTS_Projectile_ShoulderMortar</projectileDef>
|
|
</li>
|
|
<li Class="LTS_Implants.LTS_CompProperties_AbilityReloadable">
|
|
<compClass>LTS_Implants.LTS_CompAbilityEffect_Reloadable</compClass>
|
|
<ammoDef>Steel</ammoDef>
|
|
<ammoCountPerCharge>30</ammoCountPerCharge>
|
|
<soundReload>Standard_Reload</soundReload>
|
|
</li>
|
|
</comps>
|
|
|
|
<uiOrder>6</uiOrder>
|
|
<displayGizmoWhileUndrafted>false</displayGizmoWhileUndrafted>
|
|
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
|
|
<showWhenDrafted>true</showWhenDrafted>
|
|
</AbilityDef>
|
|
|
|
<ThingDef>
|
|
<defName>LTS_Projectile_ShoulderMortar</defName>
|
|
<label>high-explosive shell</label>
|
|
<thingClass>Projectile_Explosive</thingClass>
|
|
<category>Projectile</category>
|
|
<tickerType>Normal</tickerType>
|
|
<altitudeLayer>Projectile</altitudeLayer>
|
|
<useHitPoints>False</useHitPoints>
|
|
<neverMultiSelect>True</neverMultiSelect>
|
|
<graphicData>
|
|
<texPath>Things/Projectile/ShellHighExplosive</texPath>
|
|
<graphicClass>Graphic_Single</graphicClass>
|
|
<drawSize>1</drawSize>
|
|
</graphicData>
|
|
<projectile>
|
|
<damageDef>Bomb</damageDef>
|
|
<explosionRadius>2.9</explosionRadius>
|
|
<speed>24</speed>
|
|
<damageAmountBase>50</damageAmountBase>
|
|
<arcHeightFactor>0.3</arcHeightFactor>
|
|
<soundExplode>MortarBomb_Explode</soundExplode>
|
|
<soundImpactAnticipate>MortarRound_PreImpact</soundImpactAnticipate>
|
|
</projectile>
|
|
</ThingDef>
|
|
|
|
</Defs> |