Difference between revisions of "User:JuliaCat/test"

From RimWorld Wiki
Jump to navigation Jump to search
m (raw abilities)
m (Basic table that contains all of the void terror ability def info)
Tag: Replaced
Line 1: Line 1:
<?xml version="1.0" encoding="utf-8" ?>
+
{| id="Void terror" {{STDT| sortable}}
<div>
+
! defName<br />(label) !! description !! icon !! Details !! verbProperties !! targetParams !! Comps
<!-- Core AbilityDefs -->
+
|-
<Defs>
+
! VoidTerror<br />(void terror)
 
+
| Psychically induce terrifying hallucinations, causing a person to flee in terror.
  <AbilityDef Name="PsycastBase" Abstract="True">
+
| [[File:Void terror.png|Void terror]]
    <abilityClass>Psycast</abilityClass>
+
| cooldownTicksRange: {{Ticks|7500}}<br />warmupEffecter: HoraxianSpellDark_Warmup<br />sendMessageOnCooldownComplete: true<br />writeCombatLog: true<br />charges: 5<br />cooldownPerCharge: true<br />casterMustBeCapableOfViolence: false
    <category>Psychic</category>
+
| verbClass: Verb_CastAbility<br /><!--
    <statBases>
+
-->warmupTime: 0.5<br /><!--
      <Ability_Duration>0</Ability_Duration>
+
-->range: 31.9<br /><!--
    </statBases>
+
-->drawAimPie: true<br /><!--
    <warmupSound>PsycastCastLoop</warmupSound>
+
-->requireLineOfSight: true<br /><!--
    <verbProperties>
+
-->soundCast: VoidTerrorCast
      <verbClass>Verb_CastPsycast</verbClass>
+
| canTargetLocations: false<br /><!--
      <range>24.9</range>
+
-->canTargetPawns: true<br /><!--
      <requireLineOfSight>True</requireLineOfSight>
+
-->canTargetAnimals: false<br /><!--
      <warmupTime>1</warmupTime>
+
-->canTargetBuildings: false<br /><!--
      <targetParams>
+
-->canTargetHumans: true<br /><!--
        <canTargetBuildings>False</canTargetBuildings>
+
-->canTargetMechs: false<br /><!--
        <canTargetAnimals>False</canTargetAnimals>
+
-->canTargetSelf: false<br /><!--
        <thingCategory>Item</thingCategory>
+
-->canTargetMutants: false<br /><!--
        <mapObjectTargetsMustBeAutoAttackable>False</mapObjectTargetsMustBeAutoAttackable>
+
-->neverTargetIncapacitated: true
      </targetParams>
+
| AbilityGiveMentalState:<br />compClass: CompAbilityEffect_GiveMentalState<br />stateDef: TerrifyingHallucinations<br />goodwillImpact: -25<br />forced: true<br /><br /><!--
    </verbProperties>
+
-->AbilityConnectingFleckLine<br />fleckDef: PsycastPsychicLine<br /><br /><!--
  </AbilityDef>
+
-->AbilityEffecterOnTarget:<br />effecterDef: VoidTerror_Target<br /><br /><!--
 
+
-->
  <AbilityDef Abstract="True" Name="SpeechBase">
+
|}
    <iconPath>Things/Mote/SpeechSymbols/Speech</iconPath>
 
    <hotKey>Misc12</hotKey>
 
    <gizmoClass>Command_AbilitySpeech</gizmoClass>
 
    <displayGizmoWhileUndrafted>True</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>False</disableGizmoWhileUndrafted>
 
    <targetRequired>False</targetRequired>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <range>-1</range>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityRequiresCapacity">
 
        <capacity>Talking</capacity>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef Name="AbilityTouchBase" Abstract="True">
 
    <stunTargetWhileCasting>true</stunTargetWhileCasting>
 
    <displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
 
    <jobDef>CastAbilityOnThingMelee</jobDef>
 
  </AbilityDef>
 
 
 
</Defs>
 
<!-- Royalty AbilityCategores -->
 
<Defs>
 
 
 
  <AbilityCategoryDef>
 
    <defName>WordOf</defName>
 
    <displayOrder>0</displayOrder>
 
  </AbilityCategoryDef>
 
 
 
  <AbilityCategoryDef>
 
    <defName>Psychic</defName>
 
    <displayOrder>1</displayOrder>
 
  </AbilityCategoryDef>
 
 
 
  <AbilityCategoryDef>
 
    <defName>Skip</defName>
 
    <displayOrder>2</displayOrder>
 
  </AbilityCategoryDef>
 
 
 
</Defs>
 
<!-- Royalty Abilities -->
 
<Defs>
 
 
 
 
 
  <AbilityDef Name="PsycastBaseSkip" ParentName="PsycastBase" Abstract="True">
 
    <category>Skip</category>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>Painblock</defName>
 
    <label>painblock</label>
 
    <description>Block pain pathways in the target's brain for a short time. This can allow a person to move and act even with grievous injuries which would normally incapacitate them.</description>
 
    <level>1</level>
 
    <iconPath>UI/Abilities/Painblock</iconPath>
 
    <hotKey>Misc1</hotKey>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>8</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.02</Ability_PsyfocusCost>
 
      <Ability_Duration>120</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>0.25</warmupTime>
 
      <range>24.9</range>
 
      <targetParams>
 
        <canTargetSelf>True</canTargetSelf>
 
        <canTargetAnimals>True</canTargetAnimals>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>PsychicAnesthesia</hediffDef>
 
        <durationMultiplier>PsychicSensitivity</durationMultiplier>
 
        <psychic>True</psychic>
 
        <applicableToMechs>False</applicableToMechs>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>Stun</defName>
 
    <label>stun</label>
 
    <description>Momentarily disrupt motor function in the target's brain, preventing any movement.</description>
 
    <level>1</level>
 
    <iconPath>UI/Abilities/Stun</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc3</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>12</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.01</Ability_PsyfocusCost>
 
      <Ability_Duration>3</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>0.25</warmupTime>
 
      <range>24.9</range>
 
      <targetParams>
 
        <canTargetAnimals>True</canTargetAnimals>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityEffectWithDuration">
 
        <compClass>CompAbilityEffect_Stun</compClass>
 
        <durationMultiplier>PsychicSensitivity</durationMultiplier>
 
        <psychic>True</psychic>
 
        <goodwillImpact>-15</goodwillImpact>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>Burden</defName>
 
    <label>burden</label>
 
    <description>Slow the target for a short time by suppressing motor activity in the brain.</description>
 
    <level>1</level>
 
    <iconPath>UI/Abilities/Burden</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc4</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>8</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.01</Ability_PsyfocusCost>
 
      <Ability_Duration>20</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>0.25</warmupTime>
 
      <range>29.9</range>
 
      <targetParams>
 
        <canTargetAnimals>True</canTargetAnimals>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>PsychicBurden</hediffDef>
 
        <psychic>True</psychic>
 
        <goodwillImpact>-15</goodwillImpact>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>BlindingPulse</defName>
 
    <label>blinding pulse</label>
 
    <description>Induce noise in the visual centers of the brain, obscuring vision of everyone near the target point.</description>
 
    <level>2</level>
 
    <iconPath>UI/Abilities/BlindingPulse</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc5</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>20</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.01</Ability_PsyfocusCost>
 
      <Ability_Duration>30</Ability_Duration>
 
      <Ability_EffectRadius>3.9</Ability_EffectRadius>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <range>24.9</range>
 
      <targetParams>
 
        <canTargetSelf>True</canTargetSelf>
 
        <canTargetAnimals>True</canTargetAnimals>
 
        <canTargetLocations>True</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>PsychicBlindness</hediffDef>
 
        <onlyBrain>True</onlyBrain>
 
        <psychic>True</psychic>
 
        <goodwillImpact>-15</goodwillImpact>
 
        <applyGoodwillImpactToLodgers>False</applyGoodwillImpactToLodgers>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <!--
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>EntropyLink</defName>
 
    <label>entropy link</label>
 
    <description>Form a psychic link between caster and target, so that gain and loss of neural heat is shared between both equally. The link lasts for some time, but will break if the two move far apart.</description>
 
    <level>2</level>
 
    <iconPath>UI/Abilities/EntropyLink</iconPath>
 
    <hotKey>Misc12</hotKey>
 
    <statBases>
 
      <Ability_EntropyGain>10</Ability_EntropyGain>
 
      <Ability_Duration>120</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <range>14.9</range>
 
      <targetParams>
 
        <onlyTargetControlledPawns>True</onlyTargetControlledPawns>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>EntropyLink</hediffDef>
 
        <psychic>True</psychic>
 
        <durationMultiplier>PsychicSensitivity</durationMultiplier>
 
        <applyToSelf>True</applyToSelf>
 
        <replaceExisting>True</replaceExisting>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
  -->
 
 
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>EntropyDump</defName>
 
    <label>neural heat dump</label>
 
    <description>Instantly dump all your neural heat into someone else. As a side-effect, the target will fall into a debilitating but non-damaging coma for about a day. The target must actively accept the psychic invasion, so only conscious allies can be targeted.</description>
 
    <level>2</level>
 
    <iconPath>UI/Abilities/EntropyDump</iconPath>
 
    <hotKey>Misc12</hotKey>
 
    <statBases>
 
      <Ability_EntropyGain>0</Ability_EntropyGain>
 
      <Ability_Duration>1000</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <range>24.9</range>
 
      <targetParams>
 
        <onlyTargetColonists>True</onlyTargetColonists>
 
        <neverTargetIncapacitated>True</neverTargetIncapacitated>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>PsychicComa</hediffDef>
 
      </li>
 
      <li Class="CompProperties_AbilityTransferEntropy">
 
        <psychic>True</psychic>
 
        <targetReceivesEntropy>False</targetReceivesEntropy>
 
        <goodwillImpact>-15</goodwillImpact>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>Beckon</defName>
 
    <label>beckon</label>
 
    <description>Psychically command the target to approach the caster.</description>
 
    <level>3</level>
 
    <iconPath>UI/Abilities/Beckon</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc6</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>20</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.01</Ability_PsyfocusCost>
 
      <Ability_Duration>8</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>0.25</warmupTime>
 
      <range>19.9</range>
 
      <targetParams>
 
        <canTargetAnimals>True</canTargetAnimals>
 
        <neverTargetIncapacitated>True</neverTargetIncapacitated>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class ="CompProperties_AbilityForceJob">
 
        <compClass>CompAbilityEffect_ForceJob</compClass>
 
        <jobDef>GotoMindControlled</jobDef>
 
        <destination>Caster</destination>
 
        <durationMultiplier>PsychicSensitivity</durationMultiplier>
 
        <psychic>True</psychic>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>VertigoPulse</defName>
 
    <label>vertigo pulse</label>
 
    <description>Interfere with the spatial orientation sense of everyone near the target point, causing intermittent loss of balance. Flesh creatures will become extremely nauseous as well.</description>
 
    <level>3</level>
 
    <iconPath>UI/Abilities/NauseaPulse</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc7</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>30</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.02</Ability_PsyfocusCost>
 
      <Ability_Duration>20</Ability_Duration>
 
      <Ability_EffectRadius>3.9</Ability_EffectRadius>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <range>24.9</range>
 
      <targetParams>
 
        <canTargetSelf>True</canTargetSelf>
 
        <canTargetAnimals>True</canTargetAnimals>
 
        <canTargetLocations>True</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>PsychicVertigo</hediffDef>
 
        <durationMultiplier>PsychicSensitivity</durationMultiplier>
 
        <psychic>True</psychic>
 
        <goodwillImpact>-15</goodwillImpact>
 
        <applyGoodwillImpactToLodgers>False</applyGoodwillImpactToLodgers>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBaseSkip">
 
    <defName>ChaosSkip</defName>
 
    <label>chaos skip</label>
 
    <description>Teleport the target to a random position near where it started. Objects above a certain size cannot be teleported.</description>
 
    <level>3</level>
 
    <iconPath>UI/Abilities/SkipChaos</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc8</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>18</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.02</Ability_PsyfocusCost>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>0.25</warmupTime>
 
      <range>24.9</range>
 
      <targetParams>
 
        <canTargetSelf>True</canTargetSelf>
 
        <canTargetAnimals>True</canTargetAnimals>
 
        <canTargetItems>True</canTargetItems>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityTeleport">
 
        <compClass>CompAbilityEffect_Teleport</compClass>
 
        <destination>RandomInRange</destination>
 
        <randomRange>6.9~24.9</randomRange>
 
        <clamorType>Ability</clamorType>
 
        <clamorRadius>10</clamorRadius>
 
        <destClamorType>Ability</destClamorType>
 
        <destClamorRadius>10</destClamorRadius>
 
        <stunTicks>70~120</stunTicks>
 
        <goodwillImpact>-15</goodwillImpact>
 
        <applyGoodwillImpactToLodgers>False</applyGoodwillImpactToLodgers>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBaseSkip">
 
    <defName>Skip</defName>
 
    <label>skip</label>
 
    <description>Teleport the target to a desired position not too far from its starting point. Objects which are too large cannot be teleported.</description>
 
    <level>4</level>
 
    <iconPath>UI/Abilities/Skip</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <hotKey>Misc9</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>25</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.02</Ability_PsyfocusCost>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>0.25</warmupTime>
 
      <range>27.9</range>
 
      <targetParams>
 
        <canTargetSelf>True</canTargetSelf>
 
        <canTargetAnimals>True</canTargetAnimals>
 
        <canTargetItems>True</canTargetItems>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityTeleport">
 
        <compClass>CompAbilityEffect_Teleport</compClass>
 
        <destination>Selected</destination>
 
        <requiresLineOfSight>True</requiresLineOfSight>
 
        <range>27.9</range>
 
        <clamorType>Ability</clamorType>
 
        <clamorRadius>10</clamorRadius>
 
        <destClamorType>Ability</destClamorType>
 
        <destClamorRadius>10</destClamorRadius>
 
        <stunTicks>18~60</stunTicks>
 
        <goodwillImpact>-15</goodwillImpact>
 
        <applyGoodwillImpactToLodgers>False</applyGoodwillImpactToLodgers>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBaseSkip">
 
    <defName>Wallraise</defName>
 
    <label>wallraise</label>
 
    <description>Form a temporary wall by skipping rubble and soil up from deep under the ground.</description>
 
    <level>4</level>
 
    <iconPath>UI/Abilities/Wallraise</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc10</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>35</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.02</Ability_PsyfocusCost>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <range>24.9</range>
 
      <targetParams>
 
        <canTargetPawns>False</canTargetPawns>
 
        <canTargetLocations>True</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityWallraise">
 
        <compClass>CompAbilityEffect_Wallraise</compClass>
 
        <pattern>
 
          <li>(0, 0)</li>
 
          <li>(1, 0)</li>
 
          <li>(-1, 0)</li>
 
          <li>(0, 1)</li>
 
          <li>(0, -1)</li>
 
        </pattern>
 
        <screenShakeIntensity>1.0</screenShakeIntensity>
 
        <clamorType>Ability</clamorType>
 
        <clamorRadius>25</clamorRadius>
 
        <sound>PsycastWallraise</sound>
 
      </li>
 
      <li Class="CompProperties_AbilityEffecterOnTarget">
 
        <effecterDef>Skip_Exit</effecterDef>
 
        <maintainForTicks>60</maintainForTicks>
 
        <scale>1.55</scale>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDefs>
 
          <li>PsycastSkipInnerExit</li>
 
          <li>PsycastSkipOuterRingExit</li>
 
        </fleckDefs>
 
        <scale>1.55</scale>
 
        <sound>Psycast_Skip_Exit</sound>
 
        <preCastTicks>5</preCastTicks>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBaseSkip">
 
    <defName>Smokepop</defName>
 
    <label>smokepop</label>
 
    <description>Skip dust particles up from under the ground surface to form a thick cloud. This reduces the accuracy of any shot fired through it, and prevents turrets from locking on entirely.</description>
 
    <level>4</level>
 
    <iconPath>UI/Abilities/Smokepop</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc10</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>30</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.02</Ability_PsyfocusCost>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <range>24.9</range>
 
      <targetParams>
 
        <canTargetPawns>False</canTargetPawns>
 
        <canTargetLocations>True</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilitySmokepop">
 
        <smokeRadius>3.5</smokeRadius>
 
        <clamorType>Ability</clamorType>
 
        <clamorRadius>15</clamorRadius>
 
      </li>
 
      <li Class="CompProperties_AbilityEffecterOnTarget">
 
        <effecterDef>Skip_Exit</effecterDef>
 
        <maintainForTicks>60</maintainForTicks>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDefs>
 
          <li>PsycastSkipInnerExit</li>
 
          <li>PsycastSkipOuterRingExit</li>
 
        </fleckDefs>
 
        <sound>Psycast_Skip_Exit</sound>
 
        <preCastTicks>5</preCastTicks>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>Focus</defName>
 
    <label>focus</label>
 
    <description>Psychically focus the target's mind, boosting their sight, hearing and moving capacities.</description>
 
    <level>4</level>
 
    <iconPath>UI/Abilities/Focus</iconPath>
 
    <hotKey>Misc11</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>15</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.03</Ability_PsyfocusCost>
 
      <Ability_Duration>60</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>0.25</warmupTime>
 
      <range>27.9</range>
 
      <targetParams>
 
        <canTargetSelf>True</canTargetSelf>
 
        <canTargetAnimals>True</canTargetAnimals>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>PsychicFocus</hediffDef>
 
        <onlyBrain>True</onlyBrain>
 
        <psychic>True</psychic>
 
        <durationMultiplier>PsychicSensitivity</durationMultiplier>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>Berserk</defName>
 
    <label>berserk</label>
 
    <description>Induce an angry psychosis in the target's mind, causing them to attack anyone nearby.</description>
 
    <level>5</level>
 
    <iconPath>UI/Abilities/Berserk</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc12</hotKey>
 
    <statBases>
 
      <Ability_EntropyGain>40</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.04</Ability_PsyfocusCost>
 
      <Ability_Duration>15</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>0.25</warmupTime>
 
      <range>19.9</range>
 
      <targetParams>
 
        <canTargetSelf>True</canTargetSelf>
 
        <canTargetAnimals>True</canTargetAnimals>
 
        <neverTargetIncapacitated>True</neverTargetIncapacitated>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityGiveMentalState">
 
        <compClass>CompAbilityEffect_GiveMentalState</compClass>
 
        <stateDef>Berserk</stateDef>
 
        <stateDefForMechs>BerserkMechanoid</stateDefForMechs>
 
        <psychic>True</psychic>
 
        <durationMultiplier>PsychicSensitivity</durationMultiplier>
 
        <canTargetBosses>false</canTargetBosses>
 
        <goodwillImpact>-75</goodwillImpact>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>Invisibility</defName>
 
    <label>invisibility</label>
 
    <description>Psychically manipulate the visual centers of everyone nearby, rendering them unable to perceive a particular individual for a short time.</description>
 
    <level>5</level>
 
    <iconPath>UI/Abilities/Invisibility</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc12</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>45</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.03</Ability_PsyfocusCost>
 
      <Ability_Duration>15</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <range>19.9</range>
 
      <onlyManualCast>True</onlyManualCast>
 
      <targetParams>
 
        <canTargetSelf>True</canTargetSelf>
 
        <canTargetAnimals>True</canTargetAnimals>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>PsychicInvisibility</hediffDef>
 
        <psychic>True</psychic>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
    </comps>
 
   
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>BerserkPulse</defName>
 
    <label>berserk pulse</label>
 
    <description>Generate an overwhelming rush of undirected rage in everyone near the target point.</description>
 
    <level>6</level>
 
    <iconPath>UI/Abilities/BerserkPulse</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc12</hotKey>
 
    <statBases>
 
      <Ability_EntropyGain>65</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.06</Ability_PsyfocusCost>
 
      <Ability_Duration>10</Ability_Duration>
 
      <Ability_EffectRadius>2.9</Ability_EffectRadius>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <range>14.9</range>
 
      <targetParams>
 
        <canTargetSelf>True</canTargetSelf>
 
        <canTargetLocations>True</canTargetLocations>
 
        <canTargetAnimals>True</canTargetAnimals>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityGiveMentalState">
 
        <compClass>CompAbilityEffect_GiveMentalState</compClass>
 
        <stateDef>Berserk</stateDef>
 
        <stateDefForMechs>BerserkMechanoid</stateDefForMechs>
 
        <psychic>True</psychic>
 
        <durationMultiplier>PsychicSensitivity</durationMultiplier>
 
        <canTargetBosses>false</canTargetBosses>
 
        <goodwillImpact>-75</goodwillImpact>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>ManhunterPulse</defName>
 
    <label>manhunter pulse</label>
 
    <description>Drive nearby animals into a manhunting rage using a psychic pulse.</description>
 
    <level>6</level>
 
    <iconPath>UI/Abilities/AnimalBerserkPulse</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc12</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>50</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.04</Ability_PsyfocusCost>
 
      <Ability_Duration>60</Ability_Duration>
 
      <Ability_EffectRadius>27.9</Ability_EffectRadius>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <range>34.9</range>
 
      <targetParams>
 
        <canTargetHumans>False</canTargetHumans>
 
        <canTargetMechs>False</canTargetMechs>
 
        <canTargetAnimals>True</canTargetAnimals>
 
        <canTargetLocations>True</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityGiveMentalState">
 
        <compClass>CompAbilityEffect_GiveMentalState</compClass>
 
        <stateDef>Manhunter</stateDef>
 
        <psychic>True</psychic>
 
        <durationMultiplier>PsychicSensitivity</durationMultiplier>
 
        <goodwillImpact>-75</goodwillImpact>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBaseSkip">
 
    <defName>MassChaosSkip</defName>
 
    <label>mass chaos skip</label>
 
    <description>Skip everyone in an area to random positions nearby. Objects which are too large cannot be teleported.</description>
 
    <level>6</level>
 
    <iconPath>UI/Abilities/SkipChaosMass</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc12</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>40</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.03</Ability_PsyfocusCost>
 
      <Ability_EffectRadius>7.9</Ability_EffectRadius>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <targetParams>
 
        <canTargetSelf>True</canTargetSelf>
 
        <canTargetAnimals>True</canTargetAnimals>
 
        <canTargetLocations>True</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityTeleport">
 
        <compClass>CompAbilityEffect_Teleport</compClass>
 
        <destination>RandomInRange</destination>
 
        <randomRange>6.9~24.9</randomRange>
 
        <requiresLineOfSight>True</requiresLineOfSight>
 
        <goodwillImpact>-5</goodwillImpact>
 
        <clamorType>Ability</clamorType>
 
        <clamorRadius>25</clamorRadius>
 
        <stunTicks>70~120</stunTicks>
 
        <applyGoodwillImpactToLodgers>False</applyGoodwillImpactToLodgers>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBaseSkip">
 
    <defName>Waterskip</defName>
 
    <label>waterskip</label>
 
    <description>Douse a target area in water, extinguishing fires. The water is archotechnologically skipped from distant bodies of water or underground aquifers.</description>
 
    <level>2</level>
 
    <iconPath>UI/Abilities/Waterskip</iconPath>
 
    <hotKey>Misc12</hotKey>
 
    <canUseAoeToGetTargets>False</canUseAoeToGetTargets>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>25</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.015</Ability_PsyfocusCost>
 
      <Ability_EffectRadius>1.9</Ability_EffectRadius>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <range>24.9</range>
 
      <targetParams>
 
        <canTargetPawns>False</canTargetPawns>
 
        <canTargetLocations>True</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class = "CompProperties_AbilityWaterskip">
 
        <screenShakeIntensity>0.5</screenShakeIntensity>
 
        <clamorType>Ability</clamorType>
 
        <clamorRadius>10</clamorRadius>
 
      </li>
 
      <li Class="CompProperties_AbilityEffecterOnTarget">
 
        <effecterDef>Skip_Exit</effecterDef>
 
        <maintainForTicks>60</maintainForTicks>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDefs>
 
          <li>PsycastSkipInnerExit</li>
 
          <li>PsycastSkipOuterRingExit</li>
 
        </fleckDefs>
 
        <sound>Psycast_Skip_Exit</sound>
 
        <preCastTicks>5</preCastTicks>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBaseSkip">
 
    <defName>Flashstorm</defName>
 
    <label>flashstorm</label>
 
    <description>Use differential-pressure skipgates in the atmosphere to generate a localized flashstorm. The storm will strike the area with lightning for some time before dissipating.</description>
 
    <level>5</level>
 
    <iconPath>UI/Abilities/Flashstorm</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc12</hotKey>
 
    <canUseAoeToGetTargets>False</canUseAoeToGetTargets>
 
    <statBases>
 
      <Ability_EntropyGain>65</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.04</Ability_PsyfocusCost>
 
      <Ability_EffectRadius>13.9</Ability_EffectRadius>
 
      <Ability_Duration>164</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <range>19.9</range>
 
      <targetParams>
 
        <canTargetPawns>False</canTargetPawns>
 
        <canTargetLocations>True</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityFlashstorm">
 
        <goodwillImpact>-35</goodwillImpact>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>FlashstormAreaEffect</fleckDef>
 
        <sound>Psycast_Skip_Exit</sound>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBaseSkip">
 
    <defName>BulletShield</defName>
 
    <label>skipshield</label>
 
    <description>Generate a spherical skipgate that sends all incoming and outgoing ground-level projectiles to some distant place. The process is forceful enough to detonate explosive projectiles. People and items are not affected.</description>
 
    <level>6</level>
 
    <iconPath>UI/Abilities/BulletShield</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc12</hotKey>
 
    <canUseAoeToGetTargets>False</canUseAoeToGetTargets>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>65</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.04</Ability_PsyfocusCost>
 
      <Ability_EffectRadius>4.9</Ability_EffectRadius>
 
      <Ability_Duration>15</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <range>24.9</range>
 
      <targetParams>
 
        <canTargetPawns>False</canTargetPawns>
 
        <canTargetLocations>True</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilitySpawn">
 
        <thingDef>BulletShieldPsychic</thingDef>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>BulletShieldAreaEffect</fleckDef>
 
        <sound>Psycast_Skip_Exit</sound>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <!-- Title related abilities -->
 
 
 
  <AbilityDef ParentName="SpeechBase">
 
    <defName>Speech</defName>
 
    <label>throne speech</label>
 
    <description>Initiate a speech from the throne. All colonists will come and listen. If it goes well, listeners will feel inspired, and gain respect for the speaker. If it goes poorly, the speech will do social damage. The outcome depends on the speaker's social abilities.</description>
 
    <showWhenDrafted>false</showWhenDrafted>
 
    <hasExternallyHandledCooldown>true</hasExternallyHandledCooldown> <!-- Cooldown handled by RoyalTitleDef.speechCooldown in RitualOutcomeEffectWorker_Speech -->
 
    <comps>
 
      <li Class="CompProperties_AbilityStartRitual">
 
        <ritualDef>ThroneSpeech</ritualDef>
 
        <allowedForChild>false</allowedForChild>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
 
 
  <AbilityDef ParentName="PsycastBaseSkip">
 
    <defName>SolarPinhole</defName>
 
    <label>solar pinhole</label>
 
    <description>Generate a microscopic skipgate linked to the core of a nearby star. Solar material leaks through the pinprick in spacetime, illuminating and warming the surrounding area until it closes. The light is enough to work by, but not enough to grow plants.</description>
 
    <level>1</level>
 
    <iconPath>UI/Abilities/SolarPinhole</iconPath>
 
    <hotKey>Misc12</hotKey>
 
    <canUseAoeToGetTargets>False</canUseAoeToGetTargets>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_PsyfocusCost>0.08</Ability_PsyfocusCost>
 
      <Ability_EffectRadius>14.9</Ability_EffectRadius>
 
      <Ability_Duration>5000</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>0.2</warmupTime>
 
      <range>24.9</range>
 
      <targetParams>
 
        <canTargetPawns>False</canTargetPawns>
 
        <canTargetLocations>True</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilitySpawn">
 
        <thingDef>SolarPinhole</thingDef>
 
        <allowOnBuildings>False</allowOnBuildings>
 
      </li>
 
      <li Class="CompProperties_AbilityEffecterOnTarget">
 
        <effecterDef>Skip_Exit</effecterDef>
 
        <maintainForTicks>60</maintainForTicks>
 
        <scale>0.42</scale>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDefs>
 
          <li>PsycastSkipInnerExit</li>
 
          <li>PsycastSkipOuterRingExit</li>
 
        </fleckDefs>
 
        <scale>0.42</scale>
 
        <sound>Psycast_Skip_Exit</sound>
 
        <preCastTicks>5</preCastTicks>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef Name="WordOfBase" ParentName="PsycastBase" Abstract="True">
 
    <jobDef>CastAbilityOnThingMelee</jobDef>
 
    <warmupMote>Mote_WarmupWordOf</warmupMote>
 
    <warmupSound>Psycast_WordOf_Warmup</warmupSound>
 
    <category>WordOf</category>
 
    <stunTargetWhileCasting>True</stunTargetWhileCasting>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <moteOffsetAmountTowardsTarget>0.5</moteOffsetAmountTowardsTarget>
 
    <displayGizmoWhileUndrafted>True</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>False</disableGizmoWhileUndrafted>
 
    <comps>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>WordOfApply</fleckDef>
 
        <sound>Psycast_WordOf_Effect</sound>
 
      </li>
 
    </comps>
 
    <verbProperties>
 
      <drawAimPie>False</drawAimPie>
 
      <range>-1</range>
 
      <targetParams>
 
        <canTargetBuildings>False</canTargetBuildings>
 
        <neverTargetHostileFaction>True</neverTargetHostileFaction>
 
      </targetParams>
 
    </verbProperties>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="WordOfBase">
 
    <defName>WordOfTrust</defName>
 
    <label>word of trust</label>
 
    <description>Speak to the prisoner while using psychic suggestion to reduce their resistance to recruitment. This can only reduce a prisoner's resistance, but cannot recruit them.</description>
 
    <level>1</level>
 
    <iconPath>UI/Abilities/WordOfTrust</iconPath>
 
    <hotKey>Misc12</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_PsyfocusCost>0.6</Ability_PsyfocusCost>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>2</warmupTime>
 
      <targetParams>
 
        <onlyTargetPrisonersOfColony>True</onlyTargetPrisonersOfColony>
 
        <neverTargetIncapacitated>True</neverTargetIncapacitated>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityOffsetPrisonerResistance">
 
        <offset>-12</offset>
 
        <psychic>True</psychic>
 
      </li>
 
      <li Class="CompProperties_AbilitySocialInteraction">
 
        <interactionDef>WordOfTrust</interactionDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="WordOfBase">
 
    <defName>WordOfJoy</defName>
 
    <label>word of joy</label>
 
    <description>Speak happy, calming words to someone while using psychic suggestion to implant a joyfuzz loop in their mind. The joyfuzz will suppress uncomfortable thoughts and sensations in the target to improve mood. This has the side-effect of dulling sensation and decision-making, which reduces consciousness.</description>
 
    <level>2</level>
 
    <iconPath>UI/Abilities/WordOfJoy</iconPath>
 
    <hotKey>Misc12</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_PsyfocusCost>0.4</Ability_PsyfocusCost>
 
      <Ability_Duration>5000</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>2</warmupTime>
 
      <targetParams>
 
        <canTargetAnimals>False</canTargetAnimals>
 
        <canTargetSelf>True</canTargetSelf>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>Joyfuzz</hediffDef>
 
        <durationMultiplier>PsychicSensitivity</durationMultiplier>
 
        <onlyBrain>True</onlyBrain>
 
        <psychic>True</psychic>
 
        <applicableToMechs>False</applicableToMechs>
 
        <goodwillImpact>-25</goodwillImpact>
 
      </li>
 
      <li Class="CompProperties_AbilitySocialInteraction">
 
        <interactionDef>WordOfJoy</interactionDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="WordOfBase">
 
    <defName>WordOfLove</defName>
 
    <label>word of love</label>
 
    <description>Speak about someone's romantic virtues while using psychic suggestion to implant romantic desire in the listener. For days afterward, the listener will feel psychically-induced romantic attraction towards the other person. This greatly increases opinion and makes them much more likely to attempt romantic advances and marriage proposals if they get the chance. This power can be used to connect two other people, induce love for the caster, or force oneself to love another.</description>
 
    <level>3</level>
 
    <iconPath>UI/Abilities/WordOfLove</iconPath>
 
    <hotKey>Misc12</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_PsyfocusCost>0.5</Ability_PsyfocusCost>
 
      <Ability_Duration>8000</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>2</warmupTime>
 
      <targetParams>
 
        <canTargetAnimals>False</canTargetAnimals>
 
        <canTargetSelf>True</canTargetSelf>
 
        <canTargetMechs>False</canTargetMechs>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityWordOfLove">
 
        <destination>Selected</destination>
 
        <psychic>True</psychic>
 
        <applicableToMechs>False</applicableToMechs>
 
      </li>
 
      <li Class="CompProperties_AbilitySocialInteraction">
 
        <interactionDef>WordOfLove</interactionDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="WordOfBase">
 
    <defName>WordOfSerenity</defName>
 
    <label>word of serenity</label>
 
    <description>Use calming words and psychic suggestion to end a mental break on a person. The target will fall into a short psychic sleep. The psyfocus cost depends on the intensity of the target's mental break.</description>
 
    <level>4</level>
 
    <iconPath>UI/Abilities/WordOfSerenity</iconPath>
 
    <hotKey>Misc12</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_PsyfocusCost>0.3</Ability_PsyfocusCost> <!-- Minimum cost -->
 
      <Ability_Duration>246</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>2</warmupTime>
 
      <targetParams>
 
        <canTargetAnimals>False</canTargetAnimals>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityStopMentalState">
 
        <exceptions><li>Jailbreaker</li></exceptions>
 
        <psyfocusCostForMinor>0.3</psyfocusCostForMinor>
 
        <psyfocusCostForMajor>0.5</psyfocusCostForMajor>
 
        <psyfocusCostForExtreme>0.7</psyfocusCostForExtreme>
 
      </li>
 
      <li Class="CompProperties_AbilitySocialInteraction">
 
        <interactionDef>WordOfSerenity</interactionDef>
 
        <canApplyToMentallyBroken>True</canApplyToMentallyBroken>
 
        <canApplyToAsleep>true</canApplyToAsleep>
 
        <canApplyToUnconscious>true</canApplyToUnconscious>
 
      </li>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>PsychicComa</hediffDef>
 
        <durationMultiplier>PsychicSensitivity</durationMultiplier>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="WordOfBase">
 
    <defName>WordOfInspiration</defName>
 
    <label>word of inspiration</label>
 
    <description>Speak words encouraging creativity while psychically hypercharging the target's mind with new ideas. The target will experience a random inspiration appropriate to them.</description>
 
    <level>5</level>
 
    <iconPath>UI/Abilities/WordOfInspiration</iconPath>
 
    <hotKey>Misc12</hotKey>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_PsyfocusCost>0.8</Ability_PsyfocusCost>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>2</warmupTime>
 
      <targetParams>
 
        <onlyTargetColonists>True</onlyTargetColonists>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveInspiration">
 
        <canTargetBaby>False</canTargetBaby>
 
      </li>
 
      <li Class="CompProperties_AbilitySocialInteraction">
 
        <interactionDef>WordOfInspiration</interactionDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBaseSkip">
 
    <defName>Farskip</defName>
 
    <label>farskip</label>
 
    <description>Skip the caster, along with anyone standing near them, to an ally at a distant location. This can send people far across the planet, but only works if there is a willing ally on the other side to use as a navigation beacon. The skipped people will always appear near a random ally on the target map.</description>
 
    <level>5</level>
 
    <iconPath>UI/Abilities/Farskip</iconPath>
 
    <hotKey>Misc12</hotKey>
 
    <targetWorldCell>True</targetWorldCell>
 
    <showGizmoOnWorldView>True</showGizmoOnWorldView>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_PsyfocusCost>0.7</Ability_PsyfocusCost>
 
      <Ability_EffectRadius>4.9</Ability_EffectRadius>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>5</warmupTime>
 
      <range>4.9</range>
 
      <drawAimPie>False</drawAimPie>
 
      <requireLineOfSight>False</requireLineOfSight>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityFarskip">
 
        <stunTicks>18~60</stunTicks>
 
        <clamorType>Ability</clamorType>
 
        <clamorRadius>10</clamorRadius>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBase">
 
    <defName>Neuroquake</defName>
 
    <label>neuroquake</label>
 
    <description>Find a discontinuity in the psychic field and unfold it, releasing a massive amount of psychic energy. Every creature in range but outside of the safe, inner, circle will be driven violently insane. Casting this takes 12 seconds of meditation, and afterwards, the caster will go into a five-day psychic coma. The disturbing neuroquake echoes will inflict pain on everyone for many kilometers around, causing diplomatic consequences with all factions.</description>
 
    <level>6</level>
 
    <iconPath>UI/Abilities/Neuroquake</iconPath>
 
    <hotKey>Misc12</hotKey>
 
    <jobDef>CastAbilityOnThingUninterruptible</jobDef>
 
    <targetRequired>False</targetRequired>
 
    <canUseAoeToGetTargets>False</canUseAoeToGetTargets>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <showCastingProgressBar>True</showCastingProgressBar>
 
    <warmupMote>Mote_WarmupNeuroquake</warmupMote>
 
    <warmupStartSound>Psycast_Neuroquake_CastStart</warmupStartSound>
 
    <warmupSound>Psycast_Neuroquake_CastLoop</warmupSound>
 
    <warmupPreEndSound>Psycast_Neuroquake_CastEnd</warmupPreEndSound>
 
    <warmupPreEndSoundSeconds>5</warmupPreEndSoundSeconds>
 
    <hostile>false</hostile>
 
    <statBases>
 
      <Ability_PsyfocusCost>0.5</Ability_PsyfocusCost>
 
      <Ability_EffectRadius>5.9</Ability_EffectRadius>
 
      <Ability_Duration>4800</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>12</warmupTime>
 
      <range>5.9</range>
 
      <drawAimPie>False</drawAimPie>
 
      <requireLineOfSight>False</requireLineOfSight>
 
      <targetParams>
 
        <canTargetSelf>True</canTargetSelf>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityNeuroquake">
 
        <goodwillImpactForBerserk>-75</goodwillImpactForBerserk>
 
        <goodwillImpactForNeuroquake>-10</goodwillImpactForNeuroquake>
 
        <worldRangeTiles>4</worldRangeTiles>
 
        <screenShakeIntensity>2</screenShakeIntensity>
 
        <mentalStateRadius>60</mentalStateRadius>
 
      </li>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>PsychicComa</hediffDef>
 
        <onlyApplyToSelf>True</onlyApplyToSelf>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsychicApplyNeuroquake</fleckDef>
 
        <sound>Psycast_Neuroquake_Effect</sound>
 
      </li>
 
    </comps>
 
    <confirmationDialogText>If you use neuroquake, everyone in this region will feel the neuroquake echo, you will lose goodwill with every non-hostile faction.\n\nNeuroquake takes 12 seconds to cast, and cannot be interrupted. When complete, the caster will fall into a psychic coma for 5 days.\n\nEveryone in range except those in a small circle around the caster will be affected.\n\nDo you really want to cast neuroquake?</confirmationDialogText>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="PsycastBaseSkip">
 
    <defName>Chunkskip</defName>
 
    <label>chunk skip</label>
 
    <description>Skip the closest 5 chunks of rock or slag to scatter them near the target point. This is useful for producing cover during offensive operations.</description>
 
    <level>1</level>
 
    <iconPath>UI/Abilities/Chunkskip</iconPath>
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc10</hotKey>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EntropyGain>14</Ability_EntropyGain>
 
      <Ability_PsyfocusCost>0.04</Ability_PsyfocusCost>
 
    </statBases>
 
    <verbProperties>
 
      <warmupTime>1</warmupTime>
 
      <range>24.9</range>
 
      <targetParams>
 
        <canTargetPawns>False</canTargetPawns>
 
        <canTargetLocations>True</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityChunkskip">
 
        <chunkCount>5</chunkCount>
 
        <scatterRadius>2.9</scatterRadius>
 
        <psychic>False</psychic>
 
        <clamorType>Ability</clamorType>
 
        <clamorRadius>10</clamorRadius>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
</Defs>
 
<!-- Ideology Abilities -->
 
<Defs>
 
 
 
  <AbilityGroupDef>
 
    <defName>Leader</defName>
 
    <cooldownTicks>600000</cooldownTicks>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <ritualRoleIds>
 
      <li>speaker</li>
 
      <li>leader</li>
 
    </ritualRoleIds>
 
  </AbilityGroupDef>
 
 
 
  <AbilityDef ParentName="SpeechBase">
 
    <defName>LeaderSpeech</defName>
 
    <label>leader speech</label>
 
    <description>Initiate a leader speech. If it goes well, listeners will gain improved mood, respect for the speaker, and possibly new inspirations. If it goes poorly, social damage will occur.</description>
 
    <groupDef>Leader</groupDef>
 
    <iconPath>UI/Abilities/LeaderSpeech</iconPath>
 
    <showWhenDrafted>false</showWhenDrafted>
 
    <comps>
 
      <li Class="CompProperties_AbilityStartRitual">
 
        <ritualDef>LeaderSpeech</ritualDef>
 
        <allowedForChild>false</allowedForChild>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="SpeechBase">
 
    <defName>Trial</defName>
 
    <label>trial</label>
 
    <description>Charge someone with a terrible wrongdoing and initiate a trial where they will be either convicted or exonerated. If the target is convicted, they can be freely imprisoned, executed or banished without penalty. The chance of conviction depends on the social abilities of the accuser and accused.</description>
 
    <groupDef>Leader</groupDef>
 
    <targetRequired>True</targetRequired>
 
    <iconPath>UI/Icons/Rituals/Trial</iconPath>
 
    <gizmoClass>Command_AbilityTrial</gizmoClass>
 
    <uiOrder>1</uiOrder>
 
    <comps>
 
      <li Class="CompProperties_AbilityStartTrial">
 
        <ritualDef>Trial</ritualDef>
 
        <ritualDefForPrisoner>TrialPrisoner</ritualDefForPrisoner>
 
        <ritualDefForMentalState>TrialMentalState</ritualDefForMentalState>
 
        <targetRoleId>convict</targetRoleId>
 
      </li>
 
    </comps>
 
    <verbProperties>
 
      <targetParams>
 
        <canTargetAnimals>false</canTargetAnimals>
 
        <canTargetSelf>false</canTargetSelf>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetMechs>false</canTargetMechs>
 
        <canTargetMutants>false</canTargetMutants>
 
        <onlyTargetColonistsOrPrisonersOrSlavesAllowMinorMentalBreaks>true</onlyTargetColonistsOrPrisonersOrSlavesAllowMinorMentalBreaks>
 
      </targetParams>
 
    </verbProperties>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="SpeechBase">
 
    <defName>ConversionRitual</defName>
 
    <label>conversion ritual</label>
 
    <description>Try to persuade someone to adopt your beliefs. If it goes well, they will lose some certainty in their ideoligion and may convert. If it backfires, they will gain certainty in their old beliefs.\n\nTo start this ritual at a specific place, select a ritual spot or matching altar/ideogram.</description>
 
    <iconPath>UI/Abilities/ConversionRitual</iconPath>
 
    <groupDef>Moralist</groupDef>
 
    <overrideGroupCooldown>True</overrideGroupCooldown>
 
    <cooldownTicksRange>480000</cooldownTicksRange>
 
    <targetRequired>True</targetRequired>
 
    <gizmoClass>Command_Ability</gizmoClass>
 
    <comps>
 
      <li Class="CompProperties_AbilityStartConversion">
 
        <ritualDef>Conversion</ritualDef>
 
        <targetRoleId>convertee</targetRoleId>
 
      </li>
 
    </comps>
 
    <verbProperties>
 
      <targetParams>
 
        <canTargetAnimals>false</canTargetAnimals>
 
        <canTargetSelf>false</canTargetSelf>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetMechs>false</canTargetMechs>
 
        <canTargetMutants>false</canTargetMutants>
 
        <onlyTargetColonistsOrPrisonersOrSlaves>true</onlyTargetColonistsOrPrisonersOrSlaves>
 
      </targetParams>
 
    </verbProperties>
 
    <requiredMemes>
 
      <li>Proselytizer</li>
 
    </requiredMemes>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>WorkDrive</defName>
 
    <label>work drive</label>
 
    <description>Call on a person to work harder for some time.</description>
 
    <jobDef>CastAbilityOnThingMelee</jobDef>
 
    <iconPath>UI/Abilities/WorkDrive</iconPath>
 
    <warmupMoteSocialSymbol>UI/Abilities/WorkDrive</warmupMoteSocialSymbol>
 
    <stunTargetWhileCasting>True</stunTargetWhileCasting>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <displayGizmoWhileUndrafted>True</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>False</disableGizmoWhileUndrafted>
 
    <showWhenDrafted>false</showWhenDrafted>
 
    <groupDef>Leader</groupDef>
 
    <hotKey>Misc12</hotKey>
 
    <uiOrder>2</uiOrder>
 
    <warmupStartSound>WorkDrive_Warmup</warmupStartSound>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_Duration>3000</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityTouch</verbClass>
 
      <drawAimPie>False</drawAimPie>
 
      <range>-1</range>
 
      <warmupTime>3.0</warmupTime>
 
      <targetParams>
 
        <canTargetAnimals>false</canTargetAnimals>
 
        <canTargetSelf>false</canTargetSelf>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetMechs>false</canTargetMechs>
 
        <onlyTargetColonists>true</onlyTargetColonists>
 
        <canTargetMutants>false</canTargetMutants>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>WorkDrive</hediffDef>
 
        <onlyBrain>True</onlyBrain>
 
        <applicableToMechs>False</applicableToMechs>
 
        <canTargetBaby>False</canTargetBaby>
 
      </li>
 
      <li Class="CompProperties_AbilitySocialInteraction">
 
        <interactionDef>WorkDrive</interactionDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>CombatCommand</defName>
 
    <label>combat command</label>
 
    <description>Create an aura that boosts the combat skills of everyone nearby. The effect lasts 24 hours and remains attached to the leader for the duration.</description>
 
    <jobDef>CastAbilityOnThing</jobDef>
 
    <targetRequired>False</targetRequired>
 
    <canUseAoeToGetTargets>False</canUseAoeToGetTargets>
 
    <iconPath>UI/Abilities/CombatCommand</iconPath>
 
    <warmupMoteSocialSymbol>UI/Abilities/CombatCommand</warmupMoteSocialSymbol>
 
    <stunTargetWhileCasting>True</stunTargetWhileCasting>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <displayGizmoWhileUndrafted>True</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>False</disableGizmoWhileUndrafted>
 
    <groupDef>Leader</groupDef>
 
    <hotKey>Misc12</hotKey>
 
    <uiOrder>3</uiOrder>
 
    <warmupStartSound>CombatCommand_Warmup</warmupStartSound>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_Duration>1000</Ability_Duration>
 
      <Ability_EffectRadius>9.9</Ability_EffectRadius>
 
    </statBases>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <warmupTime>0.5</warmupTime>
 
      <range>9.9</range>
 
      <drawAimPie>False</drawAimPie>
 
      <requireLineOfSight>False</requireLineOfSight>
 
      <targetParams>
 
        <canTargetSelf>true</canTargetSelf>
 
        <canTargetPawns>false</canTargetPawns>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetAnimals>false</canTargetAnimals>
 
        <canTargetHumans>false</canTargetHumans>
 
        <canTargetMechs>false</canTargetMechs>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>CombatCommand</hediffDef>
 
        <onlyBrain>True</onlyBrain>
 
        <onlyApplyToSelf>True</onlyApplyToSelf>
 
        <replaceExisting>true</replaceExisting>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityGroupDef>
 
    <defName>Moralist</defName>
 
    <cooldownTicks>180000</cooldownTicks>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <ritualRoleIds>
 
      <li>moralist</li>
 
    </ritualRoleIds>
 
  </AbilityGroupDef>
 
 
 
  <AbilityDef>
 
    <defName>Convert</defName>
 
    <label>convert</label>
 
    <description>Attempt to convert someone to the speaker's ideoligion. This will reduce the target's certainty in their own beliefs. The certainty reduction depends on the speaker's negotiation ability.</description>
 
    <groupDef>Moralist</groupDef>
 
    <iconPath>UI/Abilities/Convert</iconPath>
 
    <warmupMoteSocialSymbol>Things/Mote/SpeechSymbols/Convert</warmupMoteSocialSymbol>
 
    <warmupSound>MoralistAbility_Warmup</warmupSound>
 
    <hotKey>Misc12</hotKey>
 
    <jobDef>CastAbilityOnThingMelee</jobDef>
 
    <stunTargetWhileCasting>True</stunTargetWhileCasting>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <displayGizmoWhileUndrafted>True</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>False</disableGizmoWhileUndrafted>
 
    <uiOrder>1</uiOrder>
 
    <showWhenDrafted>false</showWhenDrafted>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <comps>
 
      <li Class="CompProperties_AbilityConvert">
 
        <successMessage>{INITIATOR_labelShort} has converted {RECIPIENT_labelShort} to {IDEO}.</successMessage>
 
        <failMessage>{INITIATOR_labelShort} failed to convert {RECIPIENT_labelShort}. {RECIPIENT_labelShort} was upset by the attempt, but {RECIPIENT_possessive} certainty fell from {CERTAINTYBEFORE} to {CERTAINTYAFTER}.</failMessage>
 
        <failedThoughtInitiator>FailedConvertAbilityInitiator</failedThoughtInitiator>
 
        <failedThoughtRecipient>FailedConvertAbilityRecipient</failedThoughtRecipient>
 
        <convertPowerFactor>2</convertPowerFactor>
 
        <sound>MoralistAbility_Resolve</sound>
 
      </li>
 
      <li Class="CompProperties_AbilityMustBeCapableOf">
 
        <workTags>
 
          <li>Social</li>
 
        </workTags>
 
      </li>
 
      <li Class="CompProperties_AbilityShowTargetIdeoCertainty" />
 
    </comps>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityTouch</verbClass>
 
      <drawAimPie>False</drawAimPie>
 
      <range>-1</range>
 
      <warmupTime>3.0</warmupTime>
 
      <targetParams>
 
        <canTargetBuildings>False</canTargetBuildings>
 
        <canTargetMutants>false</canTargetMutants>
 
        <neverTargetHostileFaction>True</neverTargetHostileFaction>
 
      </targetParams>
 
    </verbProperties>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>PreachHealth</defName>
 
    <label>preach health</label>
 
    <description>Preach moral strength to a sick or wounded person through the concepts of your ideology. This will improve their rate of wound healing and immunity gain.</description>
 
    <groupDef>Moralist</groupDef>
 
    <iconPath>UI/Abilities/PreachHealth</iconPath>
 
    <hotKey>Misc12</hotKey>
 
    <jobDef>CastAbilityOnThingMelee</jobDef>
 
    <stunTargetWhileCasting>True</stunTargetWhileCasting>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <emittedFleck>PreachHealth</emittedFleck>
 
    <emissionInterval>60</emissionInterval>
 
    <warmupMoteSocialSymbol>UI/Abilities/PreachHealth</warmupMoteSocialSymbol>
 
    <displayGizmoWhileUndrafted>True</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>False</disableGizmoWhileUndrafted>
 
    <uiOrder>4</uiOrder>
 
    <warmupSound>PreachHealth_Warmup</warmupSound>
 
    <showWhenDrafted>false</showWhenDrafted>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_Duration>1000</Ability_Duration>
 
    </statBases>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>PreachHealth</hediffDef>
 
        <onlyBrain>true</onlyBrain>
 
        <replaceExisting>true</replaceExisting>
 
        <sound>PreachHealth_Resolve</sound>
 
      </li>
 
      <li Class="CompProperties_AbilityMustBeCapableOf">
 
        <workTags>
 
          <li>Social</li>
 
        </workTags>
 
      </li>
 
      <li Class="CompProperties_AbilitySocialInteraction">
 
        <interactionDef>PreachHealth</interactionDef>
 
        <canApplyToUnconscious>true</canApplyToUnconscious>
 
      </li>
 
      <li Class="CompProperties_PreachHealth" />
 
    </comps>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityTouch</verbClass>
 
      <drawAimPie>False</drawAimPie>
 
      <range>-1</range>
 
      <warmupTime>12.0</warmupTime>
 
      <targetParams>
 
        <canTargetBuildings>False</canTargetBuildings>
 
        <neverTargetHostileFaction>True</neverTargetHostileFaction>
 
      </targetParams>
 
    </verbProperties>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>Reassure</defName>
 
    <label>reassure</label>
 
    <description>Increase someone's certainty in their own beliefs. The regained certainty is based on the speaker's negotiation ability.</description>
 
    <groupDef>Moralist</groupDef>
 
    <iconPath>UI/Abilities/Reassure</iconPath>
 
    <warmupMoteSocialSymbol>UI/Abilities/Reassure</warmupMoteSocialSymbol>
 
    <warmupSound>MoralistAbility_Warmup</warmupSound>
 
    <hotKey>Misc12</hotKey>
 
    <jobDef>CastAbilityOnThingMelee</jobDef>
 
    <stunTargetWhileCasting>True</stunTargetWhileCasting>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <displayGizmoWhileUndrafted>True</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>False</disableGizmoWhileUndrafted>
 
    <uiOrder>2</uiOrder>
 
    <showWhenDrafted>false</showWhenDrafted>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <comps>
 
      <li Class="CompProperties_AbilityReassure">
 
        <successMessage>{INITIATOR_labelShort} has reassured {RECIPIENT_labelShort}, increasing {RECIPIENT_possessive} certainty in {IDEO} from {BEFORECERTAINTY} to {AFTERCERTAINTY}.</successMessage>
 
        <baseCertaintyGain>0.2</baseCertaintyGain>
 
        <sound>MoralistAbility_Resolve</sound>
 
      </li>
 
      <li Class="CompProperties_AbilityMustBeCapableOf">
 
        <workTags>
 
          <li>Social</li>
 
        </workTags>
 
      </li>
 
      <li Class="CompProperties_AbilityShowTargetIdeoCertainty" />
 
    </comps>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityTouch</verbClass>
 
      <drawAimPie>False</drawAimPie>
 
      <range>-1</range>
 
      <warmupTime>3.0</warmupTime>
 
      <targetParams>
 
        <canTargetBuildings>False</canTargetBuildings>
 
        <neverTargetHostileFaction>True</neverTargetHostileFaction>
 
        <canTargetMutants>false</canTargetMutants>
 
      </targetParams>
 
    </verbProperties>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>Counsel</defName>
 
    <label>counsel</label>
 
    <description>Offer counsel to a person to cancel the effect of a sad memory. The chance of success depends on the speaker's social skills and their relationship with the listener.</description>
 
    <groupDef>Moralist</groupDef>
 
    <iconPath>UI/Abilities/Counsel</iconPath>
 
    <warmupMoteSocialSymbol>UI/Abilities/Counsel</warmupMoteSocialSymbol>
 
    <warmupSound>MoralistAbility_Warmup</warmupSound>
 
    <hotKey>Misc12</hotKey>
 
    <jobDef>CastAbilityOnThingMelee</jobDef>
 
    <stunTargetWhileCasting>True</stunTargetWhileCasting>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <displayGizmoWhileUndrafted>True</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>False</disableGizmoWhileUndrafted>
 
    <uiOrder>3</uiOrder>
 
    <showWhenDrafted>false</showWhenDrafted>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <comps>
 
      <li Class="CompProperties_AbilityCounsel">
 
        <successMessage>{INITIATOR_labelShort} successfully counselled {RECIPIENT_labelShort}, canceling the mood impact of {2}.</successMessage>
 
        <successMessageNoNegativeThought>{INITIATOR_labelShort} successfully counselled {RECIPIENT_labelShort}, increasing {RECIPIENT_possessive} mood by {MOODBONUS}.</successMessageNoNegativeThought>
 
        <failMessage>{INITIATOR_labelShort} botched the attempt to counsel {RECIPIENT_labelShort}. {RECIPIENT_labelShort} has become upset.</failMessage>
 
        <failedThoughtRecipient>CounselFailed</failedThoughtRecipient>
 
        <sound>MoralistAbility_Resolve</sound>
 
      </li>
 
      <li Class="CompProperties_AbilityMustBeCapableOf">
 
        <workTags>
 
          <li>Social</li>
 
        </workTags>
 
      </li>
 
    </comps>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityTouch</verbClass>
 
      <drawAimPie>False</drawAimPie>
 
      <range>-1</range>
 
      <warmupTime>3.0</warmupTime>
 
      <targetParams>
 
        <canTargetBuildings>False</canTargetBuildings>
 
        <neverTargetHostileFaction>True</neverTargetHostileFaction>
 
        <canTargetMutants>false</canTargetMutants>
 
      </targetParams>
 
    </verbProperties>
 
  </AbilityDef>
 
 
 
  <AbilityGroupDef>
 
    <defName>MultiRole</defName>
 
    <cooldownTicks>180000</cooldownTicks>
 
  </AbilityGroupDef>
 
 
 
  <AbilityDef Abstract="True" Name="RoleAuraBuffBase">
 
    <jobDef>CastAbilityOnThing</jobDef>
 
    <targetRequired>False</targetRequired>
 
    <canUseAoeToGetTargets>False</canUseAoeToGetTargets>
 
    <stunTargetWhileCasting>True</stunTargetWhileCasting>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <displayGizmoWhileUndrafted>True</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>False</disableGizmoWhileUndrafted>
 
    <groupDef>MultiRole</groupDef>
 
    <hotKey>Misc12</hotKey>
 
    <warmupStartSound>CombatCommand_Warmup</warmupStartSound>
 
    <statBases>
 
      <Ability_Duration>1000</Ability_Duration>
 
      <Ability_EffectRadius>9.9</Ability_EffectRadius>
 
    </statBases>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <warmupTime>0.5</warmupTime>
 
      <range>9.9</range>
 
      <drawAimPie>False</drawAimPie>
 
      <requireLineOfSight>False</requireLineOfSight>
 
      <targetParams>
 
        <canTargetSelf>true</canTargetSelf>
 
        <canTargetPawns>false</canTargetPawns>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetAnimals>false</canTargetAnimals>
 
        <canTargetHumans>false</canTargetHumans>
 
        <canTargetMechs>false</canTargetMechs>
 
      </targetParams>
 
    </verbProperties>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="RoleAuraBuffBase">
 
    <defName>MarksmanCommand</defName>
 
    <label>marksman command</label>
 
    <description>Call out shots and boost the shooting skills of everyone nearby. The effect remains attached to the caster for 24 hours.</description>
 
    <iconPath>UI/Abilities/MarksmanCommand</iconPath>
 
    <warmupMoteSocialSymbol>UI/Abilities/MarksmanCommand</warmupMoteSocialSymbol>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>MarksmanCommand</hediffDef>
 
        <onlyBrain>True</onlyBrain>
 
        <onlyApplyToSelf>True</onlyApplyToSelf>
 
        <replaceExisting>true</replaceExisting>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="RoleAuraBuffBase">
 
    <defName>BerserkTrance</defName>
 
    <label>berserk trance</label>
 
    <description>The caster fills themself with anger over ideological grievances. This strengthens the body past normal limits, but also means losing control and attacking every enemy nearby in an unstoppable rage. The berserk state will last for 3 hours.</description>
 
    <iconPath>UI/Abilities/BerserkTrance</iconPath>
 
    <warmupMoteSocialSymbol>UI/Abilities/BerserkTrance</warmupMoteSocialSymbol>
 
    <statBases>
 
      <Ability_Duration>126</Ability_Duration>
 
      <Ability_EffectRadius>0</Ability_EffectRadius>
 
    </statBases>
 
    <verbProperties>
 
    <range>0</range>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>BerserkTrance</hediffDef>
 
        <onlyApplyToSelf>True</onlyApplyToSelf>
 
        <replaceExisting>true</replaceExisting>
 
      </li>
 
      <li Class = "CompProperties_AbilityGiveMentalState">
 
        <compClass>CompAbilityEffect_GiveMentalState</compClass>
 
        <stateDef>BerserkTrance</stateDef>
 
        <soundMale>BerserkTrance_Resolve_Male</soundMale>
 
        <soundFemale>BerserkTrance_Resolve_Female</soundFemale>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="RoleAuraBuffBase">
 
    <defName>ResearchCommand</defName>
 
    <label>research command</label>
 
    <description>Provide suggestions and mental support, boosting the research speed of everyone nearby. The effect remains attached to the caster for 24 hours.</description>
 
    <iconPath>UI/Abilities/ResearchCommand</iconPath>
 
    <warmupMoteSocialSymbol>UI/Abilities/ResearchCommand</warmupMoteSocialSymbol>
 
    <showWhenDrafted>false</showWhenDrafted>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>ResearchCommand</hediffDef>
 
        <onlyBrain>True</onlyBrain>
 
        <onlyApplyToSelf>True</onlyApplyToSelf>
 
        <replaceExisting>true</replaceExisting>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="RoleAuraBuffBase">
 
    <defName>FarmingCommand</defName>
 
    <label>farming command</label>
 
    <description>Offer guidance on farming techniques, boosting the farming abilities for everyone nearby. The effect remains attached to the caster for 24 hours.</description>
 
    <iconPath>UI/Abilities/FarmingCommand</iconPath>
 
    <warmupMoteSocialSymbol>UI/Abilities/FarmingCommand</warmupMoteSocialSymbol>
 
    <showWhenDrafted>false</showWhenDrafted>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>FarmingCommand</hediffDef>
 
        <onlyBrain>True</onlyBrain>
 
        <onlyApplyToSelf>True</onlyApplyToSelf>
 
        <replaceExisting>true</replaceExisting>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="RoleAuraBuffBase">
 
    <defName>ProductionCommand</defName>
 
    <label>production command</label>
 
    <description>Offer guidance on construction techniques, boosting construction and crafting abilities for everyone nearby. The effect remains attached to the caster for 24 hours.</description>
 
    <iconPath>UI/Abilities/ProductionCommand</iconPath>
 
    <warmupMoteSocialSymbol>UI/Abilities/ProductionCommand</warmupMoteSocialSymbol>
 
    <showWhenDrafted>false</showWhenDrafted>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>ProductionCommand</hediffDef>
 
        <onlyBrain>True</onlyBrain>
 
        <onlyApplyToSelf>True</onlyApplyToSelf>
 
        <replaceExisting>true</replaceExisting>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="RoleAuraBuffBase">
 
    <defName>MiningCommand</defName>
 
    <label>mining command</label>
 
    <description>Offer guidance on mining techniques, boosting the mining speed for everyone nearby. The effect remains attached to the caster for 24 hours.</description>
 
    <iconPath>UI/Abilities/MiningCommand</iconPath>
 
    <warmupMoteSocialSymbol>UI/Abilities/MiningCommand</warmupMoteSocialSymbol>
 
    <showWhenDrafted>false</showWhenDrafted>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>MiningCommand</hediffDef>
 
        <onlyBrain>True</onlyBrain>
 
        <onlyApplyToSelf>True</onlyApplyToSelf>
 
        <replaceExisting>true</replaceExisting>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>AnimalCalm</defName>
 
    <label>Animal calm</label>
 
    <description>Use unique methods of connecting with animals to calm a maddened beast.</description>
 
    <groupDef>MultiRole</groupDef>
 
    <iconPath>UI/Abilities/AnimalCalm</iconPath>
 
    <warmupMoteSocialSymbol>UI/Abilities/AnimalCalm</warmupMoteSocialSymbol>
 
    <hotKey>Misc12</hotKey>
 
    <jobDef>CastAbilityOnThingMelee</jobDef>
 
    <overrideGroupCooldown>True</overrideGroupCooldown>
 
    <cooldownTicksRange>1200000</cooldownTicksRange>
 
    <stunTargetWhileCasting>True</stunTargetWhileCasting>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <displayGizmoWhileUndrafted>True</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>False</disableGizmoWhileUndrafted>
 
    <warmupSound>AnimalCalm_Resolve</warmupSound>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <comps>
 
      <li Class="CompProperties_StopManhunter">
 
        <successMessage>{INITIATOR_labelShort} successfully calmed {RECIPIENT_labelShort}.</successMessage>
 
      </li>
 
    </comps>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityTouch</verbClass>
 
      <drawAimPie>False</drawAimPie>
 
      <range>-1</range>
 
      <warmupTime>1.5</warmupTime>
 
      <targetParams>
 
        <canTargetBuildings>False</canTargetBuildings>
 
        <canTargetHumans>False</canTargetHumans>
 
        <canTargetAnimals>True</canTargetAnimals>
 
        <neverTargetHostileFaction>True</neverTargetHostileFaction>
 
      </targetParams>
 
    </verbProperties>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>ImmunityDrive</defName>
 
    <label>Immunity drive</label>
 
    <description>Offer moral support that energizes the body, boosting someone's immunity gain for one day.</description>
 
    <groupDef>MultiRole</groupDef>
 
    <iconPath>UI/Abilities/ImmunityDrive</iconPath>
 
    <warmupMoteSocialSymbol>UI/Abilities/ImmunityDrive</warmupMoteSocialSymbol>
 
    <hotKey>Misc12</hotKey>
 
    <jobDef>CastAbilityOnThingMelee</jobDef>
 
    <stunTargetWhileCasting>True</stunTargetWhileCasting>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <displayGizmoWhileUndrafted>True</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>False</disableGizmoWhileUndrafted>
 
    <showWhenDrafted>false</showWhenDrafted>
 
    <warmupSound>ImmunityDrive_Resolve</warmupSound>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_Duration>1000</Ability_Duration>
 
    </statBases>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>ImmunityDrive</hediffDef>
 
        <replaceExisting>true</replaceExisting>
 
      </li>
 
    </comps>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityTouch</verbClass>
 
      <drawAimPie>False</drawAimPie>
 
      <range>-1</range>
 
      <warmupTime>1.5</warmupTime>
 
      <targetParams>
 
        <canTargetBuildings>False</canTargetBuildings>
 
        <neverTargetHostileFaction>True</neverTargetHostileFaction>
 
        <canTargetMutants>false</canTargetMutants>
 
      </targetParams>
 
    </verbProperties>
 
  </AbilityDef>
 
 
 
</Defs>
 
<!-- Biotech Abilities -->
 
<Defs>
 
 
 
  <AbilityCategoryDef>
 
    <defName>Sanguophage</defName>
 
    <displayOrder>1000</displayOrder>
 
  </AbilityCategoryDef>
 
 
 
  <AbilityDef ParentName="AbilityTouchBase">
 
    <defName>Bloodfeed</defName>
 
    <label>bloodfeed</label>
 
    <description>Bite the target and extract hemogen directly from their blood. The target will lose blood and will be horrified by the interaction, but will be otherwise unharmed. A fast-acting coagulant will seal the wound to prevent bleeding.\n\nCan only target non-hemogenic humans. Hemogen gain is affected by the target's body size.</description>
 
    <iconPath>UI/Icons/Genes/Gene_Bloodfeeder</iconPath>
 
    <category>Sanguophage</category>
 
    <displayOrder>100</displayOrder>
 
    <warmupEffecter>Bloodfeed_Warmup</warmupEffecter>
 
    <warmupStartSound>Bloodfeed_Cast</warmupStartSound>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityTouch</verbClass>
 
      <drawAimPie>false</drawAimPie>
 
      <range>-1</range>
 
      <warmupTime>2</warmupTime>
 
      <targetParams>
 
        <canTargetSelf>false</canTargetSelf>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetMechs>false</canTargetMechs>
 
        <canTargetBloodfeeders>false</canTargetBloodfeeders>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityBloodfeederBite">
 
        <hemogenGain>0.2</hemogenGain>
 
        <bloodFilthToSpawnRange>1</bloodFilthToSpawnRange>
 
        <thoughtDefToGiveTarget>FedOn</thoughtDefToGiveTarget>
 
        <opinionThoughtDefToGiveTarget>FedOn_Social</opinionThoughtDefToGiveTarget>
 
        <resistanceGain>1</resistanceGain>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>BloodSplash</fleckDef>
 
      </li>
 
      <li Class="CompProperties_AbilityRequiresCapacity">
 
        <capacity>Eating</capacity>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="AbilityTouchBase">
 
    <defName>Coagulate</defName>
 
    <label>coagulate</label>
 
    <description>Use special glands in the wrists to quickly tend someone's wounds.</description>
 
    <iconPath>UI/Icons/Genes/Gene_Coagulate</iconPath>
 
    <stunTargetWhileCasting>true</stunTargetWhileCasting>
 
    <displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
 
    <warmupMote>Mote_CoagulateStencil</warmupMote>
 
    <warmupEffecter>Coagulate</warmupEffecter>
 
    <warmupStartSound>Coagulate_Cast</warmupStartSound>
 
    <jobDef>CastAbilityOnThingMelee</jobDef>
 
    <category>Sanguophage</category>
 
    <displayOrder>400</displayOrder>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityTouch</verbClass>
 
      <drawAimPie>false</drawAimPie>
 
      <range>-1</range>
 
      <warmupTime>1</warmupTime>
 
      <targetParams>
 
        <canTargetAnimals>true</canTargetAnimals>
 
        <canTargetSelf>false</canTargetSelf>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetMechs>false</canTargetMechs>
 
        <canTargetBloodfeeders>true</canTargetBloodfeeders>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityHemogenCost">
 
        <hemogenCost>0.2</hemogenCost>
 
      </li>
 
      <li Class="CompProperties_AbilityCoagulate">
 
        <tendQualityRange>0.4~0.8</tendQualityRange>
 
      </li>
 
      <li Class="CompProperties_AbilityRequiresCapacity">
 
        <capacity>Manipulation</capacity>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="AbilityTouchBase">
 
    <defName>ReimplantXenogerm</defName>
 
    <label>implant genes</label>
 
    <description>Implant this person's xenogenes into a willing subject using a special injector organ. If this person's genes are currently regrowing, they will implant their xenogerm and die in the process.\n\nWhen implanted, a xenogerm will overwrite the target's xenogenes. Germline genes will be unaffected.</description>
 
    <iconPath>UI/Icons/Genes/Gene_XenogermReimplanter</iconPath>
 
    <warmupStartSound>ReimplantXenogerm_Cast</warmupStartSound>
 
    <warmupEffecter>Implant_Xenogerm</warmupEffecter>
 
    <category>Sanguophage</category>
 
    <displayOrder>500</displayOrder>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityTouch</verbClass>
 
      <drawAimPie>false</drawAimPie>
 
      <range>-1</range>
 
      <warmupTime>4</warmupTime>
 
      <stunTargetOnCastStart>true</stunTargetOnCastStart>
 
      <targetParams>
 
        <canTargetAnimals>false</canTargetAnimals>
 
        <canTargetSelf>false</canTargetSelf>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetMechs>false</canTargetMechs>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityReimplantXenogerm" />
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>PiercingSpine</defName>
 
    <label>piercing spine</label>
 
    <description>Use a hemogenic chemical reaction to launch a bony spine at the target. The spine exits through the skin from an opening between the collarbones. Given the method of launch, it is surprisingly easy to aim.</description>
 
    <iconPath>UI/Abilities/PiercingSpine</iconPath>
 
    <cooldownTicksRange>60</cooldownTicksRange>
 
    <category>Sanguophage</category>
 
    <displayOrder>200</displayOrder>
 
    <aiCanUse>true</aiCanUse>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <range>3.9</range>
 
      <warmupTime>0.5</warmupTime>
 
      <soundCast>PiercingSpine_Launch</soundCast>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityHemogenCost">
 
        <hemogenCost>0.2</hemogenCost>
 
      </li>
 
      <li Class="CompProperties_AbilityLaunchProjectile">
 
        <projectileDef>PiercingSpine</projectileDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
  <ThingDef ParentName="BaseBullet">
 
    <defName>PiercingSpine</defName>
 
    <label>keratin spine</label>
 
    <graphicData>
 
      <texPath>Things/Projectile/PiercingSpine</texPath>
 
      <graphicClass>Graphic_Single</graphicClass>
 
    </graphicData>
 
    <projectile>
 
      <damageDef>RangedStab</damageDef>
 
      <damageAmountBase>30</damageAmountBase>
 
      <armorPenetrationBase>1</armorPenetrationBase>
 
      <stoppingPower>1</stoppingPower>
 
      <speed>55</speed>
 
    </projectile>
 
  </ThingDef>
 
 
 
  <AbilityDef ParentName="AbilityTouchBase">
 
    <defName>Resurrect</defName>
 
    <label>resurrect</label>
 
    <description>Use archites in the bloodstream to infuse a corpse's body with new life, repairing degenerated cell structures and kickstarting vital functions. The older and worse-preserved the corpse is, the more likely it is that they will come back with memory loss or health conditions. This ability seems to exhaust the archites somehow, so it can only be used very rarely.</description>
 
    <iconPath>UI/Abilities/Resurrect</iconPath>
 
    <cooldownTicksRange>6840000~7560000</cooldownTicksRange> <!-- 1.9~2.1 years -->
 
    <warmupMote>Mote_ResurrectAbility</warmupMote>
 
    <warmupStartSound>Resurrect_Cast</warmupStartSound>
 
    <category>Sanguophage</category>
 
    <displayOrder>600</displayOrder>
 
    <hostile>false</hostile>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityTouch</verbClass>
 
      <drawAimPie>false</drawAimPie>
 
      <range>-1</range>
 
      <warmupTime>2</warmupTime>
 
      <soundCast>Resurrect_Resolve</soundCast>
 
      <targetParams>
 
        <canTargetPawns>false</canTargetPawns>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetCorpses>true</canTargetCorpses>
 
        <canTargetMechs>false</canTargetMechs>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_Resurrect" />
 
      <li Class="CompProperties_AbilityHemogenCost">
 
        <hemogenCost>0.90</hemogenCost>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>AcidSpray</defName>
 
    <label>acid spray</label>
 
    <description>Spray a sticky acid substance from glands in the neck up through the mouth and all over the target area. The acid will stick to targets and burn them.</description>
 
    <iconPath>UI/Abilities/AcidSpray</iconPath>
 
    <cooldownTicksRange>30000</cooldownTicksRange>
 
    <aiCanUse>true</aiCanUse>
 
    <displayOrder>300</displayOrder>
 
    <category>Sanguophage</category>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <warmupStartSound>AcidSpray_Warmup</warmupStartSound>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <range>8.9</range>
 
      <warmupTime>0.5</warmupTime>
 
      <soundCast>AcidSpray_Resolve</soundCast>
 
      <targetParams>
 
        <canTargetLocations>true</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilitySprayLiquid">
 
        <projectileDef>Proj_Acid</projectileDef>
 
        <numCellsToHit>9</numCellsToHit>
 
        <sprayEffecter>AcidSpray_Directional</sprayEffecter>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
  <ThingDef>
 
    <defName>Proj_Acid</defName>
 
    <label>acid</label>
 
    <thingClass>Projectile_Liquid</thingClass>
 
    <category>Projectile</category>
 
    <tickerType>Normal</tickerType>
 
    <altitudeLayer>Projectile</altitudeLayer>
 
    <useHitPoints>False</useHitPoints>
 
    <neverMultiSelect>True</neverMultiSelect>
 
    <graphicData>
 
      <texPath>Things/Projectile/Acid</texPath>
 
      <graphicClass>Graphic_Random</graphicClass>
 
      <shaderType>MoteGlow</shaderType>
 
      <drawSize>0.85</drawSize>
 
    </graphicData>
 
    <projectile>
 
      <damageDef>AcidBurn</damageDef>
 
      <speed>25</speed>
 
      <damageAmountBase>30</damageAmountBase>
 
      <arcHeightFactor>0.4</arcHeightFactor>
 
      <armorPenetrationBase>0.8</armorPenetrationBase>
 
      <stoppingPower>1</stoppingPower>
 
      <shadowSize>0</shadowSize>
 
      <filth>Filth_SpentAcid</filth>
 
      <filthCount>1</filthCount>
 
    </projectile>
 
  </ThingDef>
 
 
 
  <AbilityDef>
 
    <defName>FoamSpray</defName>
 
    <label>foam spray</label>
 
    <description>Spray thick fire-retardant foam from glands in the neck up through the mouth. The foam will cover a small area and extinguish any fire it touches.</description>
 
    <iconPath>UI/Icons/Genes/Gene_FoamSpray</iconPath>
 
    <charges>3</charges>
 
    <cooldownTicksRange>30000</cooldownTicksRange>
 
    <warmupStartSound>FoamSpray_Warmup</warmupStartSound>
 
    <hostile>false</hostile>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <range>4.9</range>
 
      <warmupTime>1</warmupTime>
 
      <soundCast>FoamSpray_Resolve</soundCast>
 
      <targetParams>
 
        <canTargetLocations>true</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilitySprayLiquid">
 
        <projectileDef>Proj_Foam_Ability</projectileDef>
 
        <numCellsToHit>9</numCellsToHit>
 
        <sprayEffecter>FoamSpray_Directional</sprayEffecter>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
  <ThingDef ParentName="ProjectileFoamBase">
 
    <defName>Proj_Foam_Ability</defName>
 
    <projectile>
 
      <speed>25</speed>
 
      <numExtraHitCells>0</numExtraHitCells>
 
      <filthCount>1~3</filthCount>
 
    </projectile>
 
    <graphicData>
 
      <texPath>Things/Mote/FoamSpray</texPath>
 
      <graphicClass>Graphic_Random</graphicClass>
 
      <shaderType>MoteGlow</shaderType>
 
      <drawSize>1.35</drawSize>
 
    </graphicData>
 
  </ThingDef>
 
 
 
  <AbilityDef>
 
    <defName>FireSpew</defName>
 
    <label>fire spew</label>
 
    <description>Spit a stream of sticky, flammable bile from the mouth. The bile can ignite anything or anyone it hits, and also form flaming pools on the ground.\n\nThe bile is generated and stored by an organ in the neck, along with a separate pouch of hypergolic reactant for ignition.</description>
 
    <iconPath>UI/Abilities/FireSpew</iconPath>
 
    <cooldownTicksRange>300000</cooldownTicksRange>
 
    <aiCanUse>true</aiCanUse>
 
    <ai_IsIncendiary>true</ai_IsIncendiary>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <warmupStartSound>FireSpew_Warmup</warmupStartSound>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <range>7.9</range>
 
      <warmupTime>1</warmupTime>
 
      <soundCast>FireSpew_Resolve</soundCast>
 
      <targetParams>
 
        <canTargetLocations>true</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityFireSpew">
 
        <range>7.9</range>
 
        <lineWidthEnd>3</lineWidthEnd>
 
        <filthDef>Filth_FlammableBile</filthDef>
 
        <effecterDef>Fire_Spew</effecterDef>
 
        <canHitFilledCells>true</canHitFilledCells>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef Name="LongJump">
 
    <defName>Longjump</defName>
 
    <label>longjump</label>
 
    <description>Jump to a distant location using super-strong hemogen-powered legs.</description>
 
    <iconPath>UI/Abilities/Longjump</iconPath>
 
    <cooldownTicksRange>60</cooldownTicksRange>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityJump</verbClass>
 
      <label>jump</label>
 
      <violent>false</violent>
 
      <forceNormalTimeSpeed>false</forceNormalTimeSpeed>
 
      <warmupTime>0.5</warmupTime>
 
      <range>19.9</range>
 
      <requireLineOfSight>true</requireLineOfSight>
 
      <soundCast>Longjump_Jump</soundCast>
 
      <soundLanding>Longjump_Land</soundLanding>
 
      <targetParams>
 
        <canTargetLocations>true</canTargetLocations>
 
        <canTargetPawns>false</canTargetPawns>
 
        <canTargetBuildings>false</canTargetBuildings>
 
      </targetParams>
 
    </verbProperties>
 
    <jobDef>CastJump</jobDef>
 
    <comps>
 
      <li Class="CompProperties_AbilityHemogenCost">
 
        <hemogenCost>0.05</hemogenCost>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>FireBurst</defName>
 
    <label>fire burst</label>
 
    <description>Emit a burst of burning fuel in all directions to form puddles of ignited liquid on the ground.</description>
 
    <jobDef>CastAbilityOnThingWithoutWeapon</jobDef>
 
    <iconPath>UI/Abilities/FireBurst</iconPath>
 
    <cooldownTicksRange>2700</cooldownTicksRange>
 
    <aiCanUse>true</aiCanUse>
 
    <ai_SearchAOEForTargets>true</ai_SearchAOEForTargets>
 
    <targetRequired>false</targetRequired>
 
    <displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
 
    <showCastingProgressBar>true</showCastingProgressBar>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <warmupEffecter>Fire_Burst_Warmup</warmupEffecter>
 
      <warmupTime>3</warmupTime>
 
      <requireLineOfSight>false</requireLineOfSight>
 
      <range>5.9</range>
 
      <drawAimPie>false</drawAimPie>     
 
      <targetParams>
 
        <canTargetSelf>true</canTargetSelf>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityFireBurst">
 
        <radius>5.9</radius>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>AnimalWarcall</defName>
 
    <label>animal warcall</label>
 
    <description>With a powerful bellow and psychic connection, call an animal to fight your enemies for a few hours.</description>
 
    <iconPath>UI/Abilities/AnimalWarcall</iconPath>
 
    <cooldownTicksRange>900000</cooldownTicksRange><!-- 15 days -->
 
    <canUseAoeToGetTargets>false</canUseAoeToGetTargets>
 
    <jobDef>CastAbilityOnThingWithoutWeaponInterruptible</jobDef>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <groupAbility>true</groupAbility>
 
    <statBases>
 
      <Ability_Duration>500</Ability_Duration>
 
    </statBases>
 
    <charges>2</charges>
 
    <cooldownPerCharge>true</cooldownPerCharge>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <label>warcall</label>
 
      <warmupTime>2</warmupTime>
 
      <range>49.9</range>
 
      <drawAimPie>true</drawAimPie>     
 
      <requireLineOfSight>false</requireLineOfSight>
 
      <warmupEffecter>AnimalWarcall_Warmup</warmupEffecter>
 
      <mouseTargetingText>Choose an animal to call</mouseTargetingText>
 
      <targetParams>
 
        <canTargetLocations>false</canTargetLocations>
 
        <canTargetPawns>true</canTargetPawns>
 
        <canTargetAnimals>true</canTargetAnimals>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetHumans>false</canTargetHumans>
 
        <canTargetMechs>false</canTargetMechs>
 
        <canTargetSelf>false</canTargetSelf>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveMentalState">
 
        <compClass>CompAbilityEffect_GiveMentalState</compClass>
 
        <stateDef>BerserkWarcall</stateDef>
 
        <goodwillImpact>-75</goodwillImpact>
 
        <casterEffect>AnimalWarcall_Cast</casterEffect>
 
        <targetEffect>AnimalWarcall_CastOnTarget</targetEffect>
 
        <excludeNPCFactions>true</excludeNPCFactions>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <!-- Mech -->
 
 
 
  <AbilityDef Name="LongJumpMech">
 
    <defName>LongjumpMech</defName>
 
    <label>mech longjump</label>
 
    <description>Jump to a distant location using special ultrafast mechanoid muscles.</description>
 
    <iconPath>UI/Abilities/MechLongJump</iconPath>
 
    <cooldownTicksRange>480</cooldownTicksRange>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityJump</verbClass>
 
      <label>jump</label>
 
      <violent>false</violent>
 
      <forceNormalTimeSpeed>false</forceNormalTimeSpeed>
 
      <warmupTime>0.5</warmupTime>
 
      <minRange>5.9</minRange>
 
      <range>9.9</range>
 
      <requireLineOfSight>true</requireLineOfSight>
 
      <soundCast>Longjump_Jump</soundCast>
 
      <soundLanding>Longjump_Land</soundLanding>
 
      <flyWithCarriedThing>false</flyWithCarriedThing>
 
      <targetParams>
 
        <canTargetLocations>true</canTargetLocations>
 
        <canTargetPawns>false</canTargetPawns>
 
        <canTargetBuildings>false</canTargetBuildings>
 
      </targetParams>
 
    </verbProperties>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="LongJumpMech">
 
    <defName>LongjumpMechLauncher</defName>
 
    <label>jump launcher</label>
 
    <description>Jump to a distant location using a built-in jump launcher.</description>
 
    <displayGizmoWhileUndrafted>false</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>true</disableGizmoWhileUndrafted>
 
    <charges>2</charges>
 
    <cooldownTicksRange>20000</cooldownTicksRange><!-- 8h -->
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <range>15</range>
 
      <minRange>6</minRange>
 
      <warmupEffecter>JumpMechWarmupEffect</warmupEffecter>
 
      <requireLineOfSight>true</requireLineOfSight>
 
      <flightEffecterDef>JumpMechFlightEffect</flightEffecterDef>
 
      <flyWithCarriedThing>true</flyWithCarriedThing>
 
      <soundLanding>JumpMechLand</soundLanding>
 
      <soundCast Inherit="False" />
 
    </verbProperties>
 
    <jobDef>CastJump</jobDef>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>SmokepopMech</defName>
 
    <label>mech smokepop</label>
 
    <description>Release compressed smoke from concealed vents. Smoke reduces the accuracy of any shot fired through it, and prevents turrets from locking on entirely.</description>
 
    <iconPath>UI/Abilities/MechSmokepop</iconPath>
 
    <cooldownTicksRange>900000</cooldownTicksRange><!-- 15 days -->
 
    <targetRequired>false</targetRequired>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <warmupTime>1</warmupTime>
 
      <range>3.9</range>
 
      <drawAimPie>false</drawAimPie>   
 
      <targetParams>
 
        <canTargetSelf>true</canTargetSelf>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilitySmokepop">
 
        <smokeRadius>3.5</smokeRadius>
 
        <clamorType>Ability</clamorType>
 
        <clamorRadius>15</clamorRadius>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>FirefoampopMech</defName>
 
    <label>firefoam pop</label>
 
    <description>Release a fire-retardant foam in a circular area.</description>
 
    <iconPath>UI/Abilities/MechFirefoamPop</iconPath>
 
    <cooldownTicksRange>300000</cooldownTicksRange><!-- 5 days -->
 
    <displayGizmoWhileUndrafted>false</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>true</disableGizmoWhileUndrafted>
 
    <targetRequired>false</targetRequired>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <warmupTime>0.5</warmupTime>
 
      <requireLineOfSight>false</requireLineOfSight>
 
      <drawAimPie>false</drawAimPie>     
 
      <range>3.9</range>
 
      <targetParams>
 
        <canTargetSelf>true</canTargetSelf>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityFirefoampop">
 
        <firefoamRadius>3.5</firefoamRadius>
 
        <clamorType>Ability</clamorType>
 
        <clamorRadius>15</clamorRadius>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>ResurrectionMech</defName>
 
    <label>resurrect mech</label>
 
    <description>Resurrect a recently-killed mechanoid by externally supercharging its self-repair processes. The mechanoid will come back with some but not all of its wounds healed.</description>
 
    <iconPath>UI/Abilities/MechResurrection</iconPath>
 
    <cooldownTicksRange>120</cooldownTicksRange>
 
    <warmupStartSound>MechResurrect_Warmup</warmupStartSound>
 
    <warmupEffecter>ApocrionAoeWarmup</warmupEffecter>
 
    <jobDef>CastAbilityGoToThing</jobDef>
 
    <canUseAoeToGetTargets>true</canUseAoeToGetTargets>
 
    <useAverageTargetPositionForWarmupEffecter>true</useAverageTargetPositionForWarmupEffecter>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_EffectRadius>5</Ability_EffectRadius>
 
    </statBases>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <drawAimPie>true</drawAimPie>
 
      <range>9.9</range>
 
      <warmupTime>4</warmupTime>
 
      <soundCast>MechResurrect_Cast</soundCast>
 
      <requireLineOfSight>false</requireLineOfSight>
 
      <targetParams>
 
        <canTargetPawns>false</canTargetPawns>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetCorpses>true</canTargetCorpses>
 
        <canTargetAnimals>false</canTargetAnimals>
 
        <canTargetHumans>false</canTargetHumans>
 
        <canTargetMechs>true</canTargetMechs>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_ResurrectMech">
 
        <maxCorpseAgeTicks>3600</maxCorpseAgeTicks><!-- 60 seconds -->
 
        <costs>
 
          <li>
 
            <weightClass>Light</weightClass>
 
            <cost>1</cost>
 
          </li>
 
          <li>
 
            <weightClass>Medium</weightClass>
 
            <cost>3</cost>
 
          </li>
 
          <li>
 
            <weightClass>Heavy</weightClass>
 
            <cost>5</cost>
 
          </li>
 
        </costs>
 
        <appliedEffecterDef>MechResurrected</appliedEffecterDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
</Defs>
 
<!-- Anomaly Abilities -->
 
<Defs>
 
 
 
  <!-- Bases -->
 
 
 
  <AbilityDef Name="SpikeLaunchBase" Abstract="True">
 
    <label>spike launch</label>
 
    <description>Launch a bone spike at a target.</description>
 
    <cooldownTicksRange>120</cooldownTicksRange>
 
    <aiCanUse>true</aiCanUse>
 
    <verbProperties>
 
      <verbClass>Verb_AbilityShoot</verbClass>
 
      <warmupTime>0.5</warmupTime>
 
      <soundCast>Ability_SpineLaunch</soundCast>
 
      <ai_IsWeapon>false</ai_IsWeapon>
 
    </verbProperties>
 
  </AbilityDef>
 
 
 
  <ThingDef ParentName="BaseBullet" Name="SpikeBase" Abstract="True">
 
    <label>spike</label>
 
    <graphicData>
 
      <graphicClass>Graphic_Single</graphicClass>
 
    </graphicData>
 
    <projectile>
 
      <damageDef>RangedStab</damageDef>
 
      <armorPenetrationBase>1</armorPenetrationBase>
 
      <stoppingPower>1</stoppingPower>
 
      <speed>55</speed>
 
    </projectile>
 
  </ThingDef>
 
 
 
  <!-- Toughspike/Trispike -->
 
 
 
  <AbilityDef ParentName="SpikeLaunchBase">
 
    <defName>SpikeLaunch_Toughspike</defName>
 
    <verbProperties>
 
      <range>5.9</range>
 
      <defaultProjectile>Spike_Toughspike</defaultProjectile>
 
    </verbProperties>
 
  </AbilityDef>
 
  <ThingDef ParentName="SpikeBase">
 
    <defName>Spike_Toughspike</defName>
 
    <graphicData>
 
      <texPath>Things/Projectile/Projectile_Toughspike</texPath>
 
    </graphicData>
 
    <projectile>
 
      <damageAmountBase>9</damageAmountBase>
 
    </projectile>
 
  </ThingDef>
 
 
 
  <!-- Fingerspike -->
 
 
 
  <AbilityDef ParentName="SpikeLaunchBase">
 
    <defName>SpikeLaunch_Fingerspike</defName>
 
    <verbProperties>
 
      <range>3.9</range>
 
      <defaultProjectile>Spike_Fingerspike</defaultProjectile>
 
    </verbProperties>
 
  </AbilityDef>
 
  <ThingDef ParentName="SpikeBase">
 
    <defName>Spike_Fingerspike</defName>
 
    <graphicData>
 
      <texPath>Things/Projectile/Projectile_Fingerspike</texPath>
 
    </graphicData>
 
    <projectile>
 
      <damageAmountBase>7</damageAmountBase>
 
    </projectile>
 
  </ThingDef>
 
 
 
  <!-- Gorehulk -->
 
 
 
  <AbilityDef ParentName="SpikeLaunchBase">
 
    <defName>SpineLaunch_Gorehulk</defName>
 
    <label>spine launch</label>
 
    <description>Launch a keratin spine at a target to do damage.</description>
 
    <cooldownTicksRange>130</cooldownTicksRange>
 
    <verbProperties>
 
      <range>17.9</range>
 
      <soundCast>Gorehulk_Spine_Launch</soundCast>
 
      <defaultProjectile>Spine_Gorehulk</defaultProjectile>
 
    </verbProperties>
 
  </AbilityDef>
 
  <ThingDef ParentName="SpikeBase">
 
    <defName>Spine_Gorehulk</defName>
 
    <label>spine</label>
 
    <graphicData>
 
      <texPath>Things/Projectile/Projectile_GorehulkSpike</texPath>
 
    </graphicData>
 
    <projectile>
 
      <armorPenetrationBase>0.15</armorPenetrationBase>
 
      <damageAmountBase>12</damageAmountBase>
 
    </projectile>
 
  </ThingDef>
 
 
 
  <!-- Devourer -->
 
 
 
  <AbilityDef>
 
    <defName>ConsumeLeap_Devourer</defName>
 
    <label>consume leap</label>
 
    <description>Leap onto a target and begin digesting it.</description>
 
    <cooldownTicksRange>3600</cooldownTicksRange> <!-- 60 seconds -->
 
    <jobDef>CastJump</jobDef>
 
    <ai_IsOffensive>true</ai_IsOffensive>
 
    <aiCanUse>true</aiCanUse>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityConsumeLeap</verbClass>
 
      <label>consume leap</label>
 
      <range>9.9</range>
 
      <requireLineOfSight>true</requireLineOfSight>
 
      <warmupTime>0.25</warmupTime>
 
      <soundCast>Pawn_Devourer_Jump</soundCast>
 
      <soundLanding>Pawn_Devourer_Land</soundLanding>
 
      <targetParams>
 
        <canTargetBuildings>false</canTargetBuildings>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_ConsumeLeap">
 
        <maxBodySize>2.5</maxBodySize>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <!-- Entity skip -->
 
 
 
  <AbilityDef Name="EntitySkip">
 
    <defName>EntitySkip</defName>
 
    <label>entity skip</label> <!-- non-player facing -->
 
    <category MayRequire="Ludeon.RimWorld.Royalty">Skip</category>
 
    <description>Teleport to a target destination.</description> <!-- non-player facing -->
 
    <showPsycastEffects>false</showPsycastEffects>
 
    <cooldownTicksRange>180~480</cooldownTicksRange> <!-- 3 to 8 seconds -->
 
    <aiCanUse>true</aiCanUse>
 
    <showOnCharacterCard>false</showOnCharacterCard>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_EntitySkip</verbClass>
 
      <drawAimPie>false</drawAimPie>
 
      <warmupTime>0</warmupTime>
 
      <range>99.9</range>
 
      <ai_IsWeapon>false</ai_IsWeapon>
 
      <targetParams>
 
        <canTargetSelf>True</canTargetSelf>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityTeleport">
 
        <compClass>CompAbilityEffect_Teleport</compClass>
 
        <destination>Selected</destination>
 
        <requiresLineOfSight>false</requiresLineOfSight>
 
        <range>-1</range>
 
        <clamorType>Ability</clamorType>
 
        <clamorRadius>10</clamorRadius>
 
        <destClamorType>Ability</destClamorType>
 
        <destClamorRadius>10</destClamorRadius>
 
        <maxBodySize>10</maxBodySize>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef ParentName="EntitySkip">
 
    <defName>UnnaturalCorpseSkip</defName>
 
    <cooldownTicksRange>1200</cooldownTicksRange> <!-- 20 seconds -->
 
  </AbilityDef>
 
 
 
  <!-- Heatspikes -->
 
 
 
  <AbilityDef>
 
    <defName>Heatspikes</defName>
 
    <label>heatspikes</label>
 
    <description>Fire a burst of low-accuracy energy bolts.</description>
 
    <writeCombatLog>True</writeCombatLog>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <cooldownTicksRange>90~180</cooldownTicksRange> <!-- 1.5 to 3 seconds -->
 
    <verbProperties>
 
      <verbClass>Verb_AbilityShoot</verbClass>
 
      <defaultProjectile>Bullet_Heatspike</defaultProjectile>
 
      <range>24.9</range>
 
      <soundCast>Heatspikes_Shot</soundCast>
 
      <soundCastTail>Heatspikes_Tail</soundCastTail>
 
      <muzzleFlashScale>9</muzzleFlashScale>
 
      <ticksBetweenBurstShots>6</ticksBetweenBurstShots>
 
      <warmupTime>0</warmupTime>
 
      <burstShotCount>12</burstShotCount>
 
      <accuracyTouch>0.9</accuracyTouch>
 
      <accuracyShort>0.8</accuracyShort>
 
      <accuracyMedium>0.7</accuracyMedium>
 
      <accuracyLong>0.6</accuracyLong>
 
      <ai_IsWeapon>false</ai_IsWeapon>
 
    </verbProperties>
 
  </AbilityDef>
 
 
 
  <ThingDef ParentName="BaseBullet">
 
    <defName>Bullet_Heatspike</defName>
 
    <label>heatspike shot</label>
 
    <graphicData>
 
      <texPath>Things/Projectile/Nociosphere_Heatspike</texPath>
 
      <graphicClass>Graphic_Random</graphicClass>
 
      <shaderType>TransparentPostLight</shaderType>
 
    </graphicData>
 
    <projectile>
 
      <damageDef>EnergyBolt</damageDef>
 
      <damageAmountBase>18</damageAmountBase>
 
      <speed>90</speed>
 
      <bulletChanceToStartFire>1</bulletChanceToStartFire>
 
    </projectile>
 
  </ThingDef>
 
 
 
  <!-- Fleshmelter bolt -->
 
 
 
  <AbilityDef>
 
    <defName>FleshmelterBolt</defName>
 
    <label>fleshmelter bolt</label>
 
    <description>Launch a large bolt of energy which generates a high-temperature explosion.</description>
 
    <writeCombatLog>True</writeCombatLog>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <cooldownTicksRange>120~240</cooldownTicksRange> <!-- 2 to 4 seconds -->
 
    <verbProperties>
 
      <verbClass>Verb_AbilityShoot</verbClass>
 
      <defaultProjectile>Bullet_FleshmelterBolt</defaultProjectile>
 
      <range>24.9</range>
 
      <warmupTime>1.5</warmupTime>
 
      <muzzleFlashScale>9</muzzleFlashScale>
 
      <burstShotCount>1</burstShotCount>
 
      <accuracyTouch>0.9</accuracyTouch>
 
      <accuracyShort>0.8</accuracyShort>
 
      <accuracyMedium>0.7</accuracyMedium>
 
      <accuracyLong>0.6</accuracyLong>
 
      <beamTargetsGround>true</beamTargetsGround>
 
      <soundAiming>FleshmelterBolt_Charging</soundAiming>
 
      <ai_IsWeapon>false</ai_IsWeapon>
 
      <ai_ProjectileLaunchingIgnoresMeleeThreats>true</ai_ProjectileLaunchingIgnoresMeleeThreats>
 
     
 
      <aimingLineMote>Mote_FleshmelterBolt_Aim</aimingLineMote>
 
      <aimingChargeMote>Mote_FleshmelterBolt_Charge</aimingChargeMote>
 
      <aimingChargeMoteOffset>1.07</aimingChargeMoteOffset>
 
      <aimingLineMoteFixedLength>15.9</aimingLineMoteFixedLength>
 
      <aimingTargetMote>Mote_FleshmelterBolt_Target</aimingTargetMote>
 
     
 
      <targetParams>
 
        <canTargetLocations>true</canTargetLocations>
 
        <canTargetSelf>true</canTargetSelf>
 
        <canTargetPawns>true</canTargetPawns>
 
        <canTargetBuildings>true</canTargetBuildings>
 
        <canTargetPlants>true</canTargetPlants>
 
      </targetParams>
 
    </verbProperties>
 
  </AbilityDef>
 
 
 
  <ThingDef ParentName="BaseBullet">
 
    <defName>Bullet_FleshmelterBolt</defName>
 
    <label>fleshmelter bolt</label>
 
    <thingClass>Projectile_Explosive</thingClass>
 
    <graphicData>
 
      <texPath>Things/Projectile/FleshmelterBolt</texPath>
 
      <graphicClass>Graphic_Single</graphicClass>
 
      <shaderType>Mote</shaderType>
 
      <drawSize>(1.5, 3)</drawSize>
 
    </graphicData>
 
    <projectile>
 
      <damageDef>NociosphereVaporize</damageDef>
 
      <damageAmountBase>150</damageAmountBase>
 
      <speed>75</speed>
 
      <soundAmbient>FleshmelterBolt_Launch</soundAmbient>
 
      <explosionRadius>2.49</explosionRadius>
 
      <screenShakeFactor>1.25</screenShakeFactor>
 
      <explosionChanceToStartFire>0.75</explosionChanceToStartFire>
 
    </projectile>
 
  </ThingDef>
 
 
 
  <!-- Agony pulse -->
 
 
 
  <AbilityDef>
 
    <defName>AgonyPulse</defName>
 
    <label>agony pulse</label>
 
    <description>Generate a pulse of psychic pain emanating from a target location.</description>
 
    <writeCombatLog>True</writeCombatLog>
 
    <showPsycastEffects>False</showPsycastEffects>
 
    <cooldownTicksRange>900</cooldownTicksRange> <!-- 15 seconds -->
 
    <statBases>
 
      <Ability_EffectRadius>2.9</Ability_EffectRadius>
 
    </statBases>
 
    <warmupEffecter>HoraxianSpellLight_Warmup</warmupEffecter>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <defaultProjectile>Bullet_FleshmelterBolt</defaultProjectile>
 
      <range>24.9</range>
 
      <warmupTime>1.0</warmupTime>
 
      <soundCast>AgonyPulse_Cast</soundCast>
 
      <ai_IsWeapon>false</ai_IsWeapon>
 
      <ai_ProjectileLaunchingIgnoresMeleeThreats>true</ai_ProjectileLaunchingIgnoresMeleeThreats>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediffPsychic">
 
        <compClass>CompAbilityEffect_GiveHediffPsychic</compClass>
 
        <durationSecondsOverride>2000~4000</durationSecondsOverride> <!-- 2 to 4 days -->
 
        <replaceExisting>true</replaceExisting>
 
        <hediffDef>AgonyPulse</hediffDef>
 
        <onlyBrain>true</onlyBrain>
 
        <ignoreSelf>true</ignoreSelf>
 
        <severity>0</severity>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
      <li Class="CompProperties_AbilityEffecterOnTarget">
 
        <effecterDef>AgonyPulseExplosion</effecterDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <!-- Unnatural healing -->
 
 
 
  <AbilityDef ParentName="AbilityTouchBase">
 
    <defName>UnnaturalHealing</defName>
 
    <label>unnatural healing</label>
 
    <description>Use dark psychic influence to heal someone. The process will stop bleeding, restore blood loss, and can even heal significant injuries. However, it may also have unexpected side effects.</description>
 
    <iconPath>UI/Abilities/UnnaturalHealing</iconPath>
 
    <cooldownTicksRange>360000</cooldownTicksRange> <!-- 6 days -->
 
    <showPsycastEffects>false</showPsycastEffects>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <stunTargetWhileCasting>true</stunTargetWhileCasting>
 
    <moteOffsetAmountTowardsTarget>0.5</moteOffsetAmountTowardsTarget>
 
    <displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
 
    <warmupMote>Mote_HoraxSmallSpellWarmup</warmupMote>
 
    <warmupEffecter>HoraxianAbilityCasting</warmupEffecter>
 
    <warmupSound>AnomalyAbilityWarmup</warmupSound>
 
    <hostile>false</hostile>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbilityTouch</verbClass>
 
      <drawAimPie>false</drawAimPie>
 
      <range>-1</range>
 
      <warmupTime>4.5</warmupTime>
 
      <targetParams>
 
        <canTargetSelf>false</canTargetSelf>
 
        <canTargetMechs>false</canTargetMechs>
 
        <canTargetBuildings>false</canTargetBuildings>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_UnnaturalHealing" />
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>UnnaturalHealing</fleckDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <!-- Shape flesh -->
 
 
 
  <AbilityDef Name="ShapeFlesh">
 
    <defName>ShapeFlesh</defName>
 
    <label>shape flesh</label>
 
    <description>Induce a dark archotech to reconfigure a corpse into a horrendous fleshbeast. The fleshbeast will be hostile to all humans, including the one who created it.</description>
 
    <iconPath>UI/Abilities/ShapeFlesh</iconPath>
 
    <cooldownTicksRange>2400</cooldownTicksRange> <!-- 40 seconds -->
 
    <showPsycastEffects>false</showPsycastEffects>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
 
    <moteOffsetAmountTowardsTarget>0.5</moteOffsetAmountTowardsTarget>
 
    <warmupMote>Mote_HoraxSmallSpellWarmup</warmupMote>
 
    <warmupEffecter>HoraxianAbilityCasting</warmupEffecter>
 
    <warmupSound>AnomalyAbilityWarmup</warmupSound>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <warmupTime>2</warmupTime>
 
      <range>24.9</range>
 
      <requireLineOfSight>True</requireLineOfSight>
 
      <drawHighlightWithLineOfSight>true</drawHighlightWithLineOfSight>
 
      <targetParams>
 
        <canTargetSelf>false</canTargetSelf>
 
        <canTargetMechs>false</canTargetMechs>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetCorpses>true</canTargetCorpses>
 
        <onlyTargetCorpses>true</onlyTargetCorpses>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_FleshbeastFromCorpse" />
 
    </comps>
 
  </AbilityDef>
 
 
 
  <!-- Transmute steel -->
 
 
 
  <AbilityDef ParentName="AbilityTouchBase">
 
    <defName>TransmuteSteel</defName>
 
    <label>transmute steel</label>
 
    <description>Reconfigure steel at the atomic level, turning it into a random valuable material. Can target a stack of steel or a steel slag chunk.</description>
 
    <iconPath>UI/Abilities/TransmuteSteel</iconPath>
 
    <cooldownTicksRange>50000</cooldownTicksRange> <!-- 20 hours -->
 
    <showPsycastEffects>false</showPsycastEffects>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
 
    <moteOffsetAmountTowardsTarget>0.5</moteOffsetAmountTowardsTarget>
 
    <warmupMote>Mote_HoraxSmallSpellWarmup</warmupMote>
 
    <warmupEffecter>HoraxianAbilityCasting</warmupEffecter>
 
    <warmupSound>AnomalyAbilityWarmup</warmupSound>
 
    <useAverageTargetPositionForWarmupEffecter>true</useAverageTargetPositionForWarmupEffecter>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <drawAimPie>false</drawAimPie>
 
      <warmupTime>2</warmupTime>
 
      <range>-1</range>
 
      <targetParams>
 
        <canTargetSelf>false</canTargetSelf>
 
        <canTargetBuildings>true</canTargetBuildings>
 
        <canTargetPawns>false</canTargetPawns>
 
        <canTargetItems>true</canTargetItems>
 
        <thingCategory>Item</thingCategory>
 
        <mapObjectTargetsMustBeAutoAttackable>false</mapObjectTargetsMustBeAutoAttackable>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_Transmute">
 
        <failedMessage>Must target steel, steel slag chunks, steel buildings, or steel items.</failedMessage>
 
        <elementRatios>
 
          <li>
 
            <sourceStuff>Steel</sourceStuff>
 
            <ratio>1</ratio>
 
          </li>
 
          <li>
 
            <sourceStuff>ChunkSlagSteel</sourceStuff>
 
            <ratio>15</ratio>
 
          </li>
 
        </elementRatios>
 
        <outcomeStuff>
 
          <li>Plasteel</li>
 
          <li>Gold</li>
 
          <li>Uranium</li>
 
          <li>Bioferrite</li>
 
        </outcomeStuff>
 
        <outcomeItems>
 
          <li>Plasteel</li>
 
          <li>Gold</li>
 
          <li>Uranium</li>
 
          <li>Bioferrite</li>
 
          <li>Meat_Twisted</li>
 
        </outcomeItems>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>PsychicSlaughter</defName>
 
    <label>psychic slaughter</label>
 
    <description>Use dark psychic power to induce chaotic reconfiguration of flesh. This kills a flesh creature in seconds and converts its body into a pile of twisted flesh.</description>
 
    <iconPath>UI/Abilities/Slaughter</iconPath>
 
    <cooldownTicksRange>60000</cooldownTicksRange> <!-- 1 day -->
 
    <showPsycastEffects>false</showPsycastEffects>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <stunTargetWhileCasting>true</stunTargetWhileCasting>
 
    <moteOffsetAmountTowardsTarget>0.5</moteOffsetAmountTowardsTarget>
 
    <warmupMote>Mote_HoraxSmallSpellWarmup</warmupMote>
 
    <warmupEffecter>HoraxianAbilityCasting</warmupEffecter>
 
    <warmupSound>AnomalyAbilityWarmup</warmupSound>
 
    <writeCombatLog>true</writeCombatLog>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <warmupTime>2</warmupTime>
 
      <range>4.9</range>
 
      <requireLineOfSight>True</requireLineOfSight>
 
      <drawHighlightWithLineOfSight>true</drawHighlightWithLineOfSight>
 
      <targetParams>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetMechs>false</canTargetMechs>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_PsychicSlaughter" />
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>ReleaseDeadlifeDust</defName>
 
    <label>release deadlife dust</label>
 
    <description>Release a cloud of dust-like substance that will settle on nearby corpses and raise them as shamblers. The shamblers will only attack your enemies. Deadlife dust is made of nano-scale archites that penetrate and reanimate dead tissue at the cellular level.</description>
 
    <iconPath>UI/Abilities/ReleaseDeadlifeDust</iconPath>
 
    <cooldownTicksRange>60000</cooldownTicksRange> <!-- 1 day -->
 
    <showPsycastEffects>false</showPsycastEffects>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <hotKey>Misc1</hotKey>
 
    <hostile>false</hostile>
 
    <targetRequired>false</targetRequired>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <label>release deadlife dust</label>
 
      <drawAimPie>false</drawAimPie>
 
      <warmupTime>0.5</warmupTime>
 
      <violent>false</violent>
 
      <targetable>false</targetable>
 
      <targetParams>
 
        <canTargetSelf>true</canTargetSelf>
 
      </targetParams>
 
      <soundCast>DeadlifeRelease</soundCast>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityReleaseGas">
 
        <gasType>DeadlifeDust</gasType>
 
        <cellsToFill>15</cellsToFill>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>GhoulFrenzy</defName>
 
    <label>ghoul frenzy</label>
 
    <description>Use the adrenal heart to saturate the bloodstream with stress hormones and liquid energy, permitting the ghoul to move and attack at incredible speeds for a short time.</description>
 
    <iconPath>UI/Abilities/GhoulFrenzy</iconPath>
 
    <cooldownTicksRange>1800</cooldownTicksRange> <!-- 30 seconds -->
 
    <hostile>false</hostile>
 
    <groupAbility>true</groupAbility>
 
    <displayGizmoWhileUndrafted>false</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
 
    <aiCanUse>true</aiCanUse>
 
    <ai_IsOffensive>true</ai_IsOffensive>
 
    <targetRequired>false</targetRequired>
 
    <statBases>
 
      <Ability_Duration>15</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <drawAimPie>false</drawAimPie>
 
      <requireLineOfSight>false</requireLineOfSight>
 
      <nonInterruptingSelfCast>true</nonInterruptingSelfCast>
 
      <soundCast>Pawn_Ghoul_Frenzy</soundCast>
 
      <targetable>false</targetable>
 
      <targetParams>
 
        <canTargetSelf>true</canTargetSelf>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>GhoulFrenzy</hediffDef>
 
        <onlyApplyToSelf>True</onlyApplyToSelf>
 
        <replaceExisting>true</replaceExisting>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>CorrosiveSpray</defName>
 
    <label>corrosive spray</label>
 
    <description>Use the corrosive heart to spray acid a short distance. The heart pumps the corrosive fluid through a surgically implanted duct, allowing the ghoul to spew it from their mouth at high velocity.</description>
 
    <iconPath>UI/Abilities/AcidSpray</iconPath>
 
    <cooldownTicksRange>5000</cooldownTicksRange>
 
    <aiCanUse>true</aiCanUse>
 
    <displayOrder>300</displayOrder>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <warmupStartSound>AcidSpray_Warmup</warmupStartSound>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <range>11.9</range>
 
      <warmupTime>0.25</warmupTime>
 
      <soundCast>AcidSpray_Resolve</soundCast>
 
      <targetParams>
 
        <canTargetLocations>true</canTargetLocations>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilitySprayLiquid">
 
        <projectileDef>Proj_CorrosiveFluid</projectileDef>
 
        <numCellsToHit>9</numCellsToHit>
 
        <sprayEffecter>AcidSpray_Directional</sprayEffecter>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
  <ThingDef>
 
    <defName>Proj_CorrosiveFluid</defName>
 
    <label>corrosive fluid</label>
 
    <thingClass>Projectile_Liquid</thingClass>
 
    <category>Projectile</category>
 
    <tickerType>Normal</tickerType>
 
    <altitudeLayer>Projectile</altitudeLayer>
 
    <useHitPoints>False</useHitPoints>
 
    <neverMultiSelect>True</neverMultiSelect>
 
    <graphicData>
 
      <texPath>Things/Projectile/Acid</texPath>
 
      <graphicClass>Graphic_Random</graphicClass>
 
      <shaderType>MoteGlow</shaderType>
 
      <drawSize>0.85</drawSize>
 
    </graphicData>
 
    <projectile>
 
      <damageDef>AcidBurn</damageDef>
 
      <speed>25</speed>
 
      <damageAmountBase>30</damageAmountBase>
 
      <arcHeightFactor>0.4</arcHeightFactor>
 
      <armorPenetrationBase>0.8</armorPenetrationBase>
 
      <stoppingPower>1</stoppingPower>
 
      <shadowSize>0</shadowSize>
 
      <filth>Filth_SpentAcid</filth>
 
      <filthCount>1</filthCount>
 
    </projectile>
 
  </ThingDef>
 
 
 
  <AbilityDef>
 
    <defName>MetalbloodInjection</defName>
 
    <label>metalblood injection</label>
 
    <description>Use the metalblood heart to release metalblood serum into the bloodstream, reducing incoming damage for a short period of time.</description>
 
    <iconPath>UI/Abilities/MetalbloodInjection</iconPath>
 
    <cooldownTicksRange>15000</cooldownTicksRange> <!-- 6 hours -->
 
    <hostile>false</hostile>
 
    <groupAbility>true</groupAbility>
 
    <displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
 
    <disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
 
    <aiCanUse>true</aiCanUse>
 
    <ai_IsOffensive>true</ai_IsOffensive>
 
    <targetRequired>false</targetRequired>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_Duration>40</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <drawAimPie>false</drawAimPie>
 
      <requireLineOfSight>false</requireLineOfSight>
 
      <nonInterruptingSelfCast>true</nonInterruptingSelfCast>
 
      <soundCast>Pawn_Ghoul_Frenzy</soundCast>
 
      <targetable>false</targetable>
 
      <targetParams>
 
        <canTargetSelf>true</canTargetSelf>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>Metalblood</hediffDef>
 
        <onlyApplyToSelf>True</onlyApplyToSelf>
 
        <replaceExisting>true</replaceExisting>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>RevenantInvisibility</defName>
 
    <label>revenant invisibility</label>
 
    <description>Use the revenant vertebrae to temporarily turn invisible. The prosthetic manipulates the visual centers of those nearby, letting the user pass unnoticed.</description>
 
    <iconPath>UI/Abilities/RevenantInvisibility</iconPath>
 
    <cooldownTicksRange>60000</cooldownTicksRange> <!-- 6 hours -->
 
    <writeCombatLog>True</writeCombatLog>
 
    <hotKey>Misc12</hotKey>
 
    <targetRequired>false</targetRequired>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <statBases>
 
      <Ability_Duration>15</Ability_Duration>
 
    </statBases>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <drawAimPie>false</drawAimPie>
 
      <requireLineOfSight>false</requireLineOfSight>
 
      <nonInterruptingSelfCast>true</nonInterruptingSelfCast>
 
      <warmupTime>1</warmupTime>
 
      <range>19.9</range>
 
      <targetable>false</targetable>
 
      <targetParams>
 
        <canTargetSelf>True</canTargetSelf>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveHediff">
 
        <compClass>CompAbilityEffect_GiveHediff</compClass>
 
        <hediffDef>PsychicInvisibility</hediffDef>
 
        <psychic>True</psychic>
 
      </li>
 
      <li Class="CompProperties_AbilityFleckOnTarget">
 
        <fleckDef>PsycastPsychicEffect</fleckDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
  <AbilityDef>
 
    <defName>VoidTerror</defName>
 
    <label>void terror</label>
 
    <description>Psychically induce terrifying hallucinations, causing a person to flee in terror.</description>
 
    <iconPath>UI/Abilities/VoidTerror</iconPath>
 
    <cooldownTicksRange>7500</cooldownTicksRange> <!-- 3 hours -->
 
    <warmupEffecter>HoraxianSpellDark_Warmup</warmupEffecter>
 
    <sendMessageOnCooldownComplete>true</sendMessageOnCooldownComplete>
 
    <writeCombatLog>true</writeCombatLog>
 
    <charges>5</charges>
 
    <cooldownPerCharge>true</cooldownPerCharge>
 
    <casterMustBeCapableOfViolence>false</casterMustBeCapableOfViolence>
 
    <verbProperties>
 
      <verbClass>Verb_CastAbility</verbClass>
 
      <warmupTime>0.5</warmupTime>
 
      <range>31.9</range>
 
      <drawAimPie>true</drawAimPie>
 
      <requireLineOfSight>true</requireLineOfSight>
 
      <soundCast>VoidTerrorCast</soundCast>
 
      <targetParams>
 
        <canTargetLocations>false</canTargetLocations>
 
        <canTargetPawns>true</canTargetPawns>
 
        <canTargetAnimals>false</canTargetAnimals>
 
        <canTargetBuildings>false</canTargetBuildings>
 
        <canTargetHumans>true</canTargetHumans>
 
        <canTargetMechs>false</canTargetMechs>
 
        <canTargetSelf>false</canTargetSelf>
 
        <canTargetMutants>false</canTargetMutants>
 
        <neverTargetIncapacitated>true</neverTargetIncapacitated>
 
      </targetParams>
 
    </verbProperties>
 
    <comps>
 
      <li Class="CompProperties_AbilityGiveMentalState">
 
        <compClass>CompAbilityEffect_GiveMentalState</compClass>
 
        <stateDef>TerrifyingHallucinations</stateDef>
 
        <goodwillImpact>-25</goodwillImpact>
 
        <forced>true</forced>
 
      </li>
 
      <li Class="CompProperties_AbilityConnectingFleckLine">
 
        <fleckDef>PsycastPsychicLine</fleckDef>
 
      </li>
 
      <li Class="CompProperties_AbilityEffecterOnTarget">
 
        <effecterDef>VoidTerror_Target</effecterDef>
 
      </li>
 
    </comps>
 
  </AbilityDef>
 
 
 
</Defs>
 
</div>
 

Revision as of 02:00, 30 August 2024

defName
(label)
description icon Details verbProperties targetParams Comps
VoidTerror
(void terror)
Psychically induce terrifying hallucinations, causing a person to flee in terror. Void terror cooldownTicksRange: 7,500 ticks (2.08 mins)
warmupEffecter: HoraxianSpellDark_Warmup
sendMessageOnCooldownComplete: true
writeCombatLog: true
charges: 5
cooldownPerCharge: true
casterMustBeCapableOfViolence: false
verbClass: Verb_CastAbility
warmupTime: 0.5
range: 31.9
drawAimPie: true
requireLineOfSight: true
soundCast: VoidTerrorCast
canTargetLocations: false
canTargetPawns: true
canTargetAnimals: false
canTargetBuildings: false
canTargetHumans: true
canTargetMechs: false
canTargetSelf: false
canTargetMutants: false
neverTargetIncapacitated: true
AbilityGiveMentalState:
compClass: CompAbilityEffect_GiveMentalState
stateDef: TerrifyingHallucinations
goodwillImpact: -25
forced: true

AbilityConnectingFleckLine
fleckDef: PsycastPsychicLine

AbilityEffecterOnTarget:
effecterDef: VoidTerror_Target