Files
BarotraumaModServer/LocalMods/Barotraumatic/Characters/Mantis/Mantis.xml

93 lines
14 KiBLFS
XML
Executable File

<?xml version="1.0" encoding="utf-8"?>
<Override>
<Character SpeciesName="Mantis" SpeciesTranslationOverride="" DisplayName="" Group="mantisoid" Humanoid="False" HasInfo="False" CanInteract="False" Husk="False" UseHuskAppendage="False" NeedsAir="False" NeedsWater="False" UseHumanAI="False" IsMachine="False" CanSpeak="False" ShowHealthBar="True" UseBossHealthBar="False" Noise="100" Visibility="100" BloodDecal="blood" BleedParticleAir="blooddrop" BleedParticleWater="waterblood" BleedParticleMultiplier="1" CanEat="True" EatingSpeed="10" UsePathFinding="True" PathFinderPriority="1" HideInSonar="False" HideInThermalGoggles="False" SonarDisruption="0" DistantSonarRange="0" DisableDistance="25000" SoundInterval="10" DrawLast="False" AITurretPriority="1" AISlowTurretPriority="1" DespawnContainer="">
<ragdolls folder="default" />
<animations folder="default" />
<health Vitality="200" DoesBleed="False" CrushDepth="Infinity" UseHealthWindow="False" BleedingReduction="0" BurnReduction="0" ConstantHealthRegeneration="0" HealthRegenerationWhenEating="1" StunImmunity="False" PoisonImmunity="False" PoisonVulnerability="1" EmpVulnerability="0" ApplyAfflictionColors="True" />
<damageemitter Particle="gib" AngleMin="0" AngleMax="360" ScaleMin="0.15" ScaleMax="0.2" VelocityMin="200" VelocityMax="300" EmitInterval="0" ParticlesPerSecond="0" ParticleAmount="10" HighQualityCollisionDetection="False" CopyEntityAngle="False" />
<bloodemitter Particle="blood" AngleMin="0" AngleMax="0" ScaleMin="1" ScaleMax="1" VelocityMin="0" VelocityMax="0" EmitInterval="0" ParticlesPerSecond="0" ParticleAmount="1" HighQualityCollisionDetection="False" CopyEntityAngle="False" />
<bloodemitter Particle="waterblood" AngleMin="0" AngleMax="0" ScaleMin="1" ScaleMax="1" VelocityMin="0" VelocityMax="0" EmitInterval="0" ParticlesPerSecond="0" ParticleAmount="1" HighQualityCollisionDetection="False" CopyEntityAngle="False" />
<gibemitter Particle="gib" AngleMin="0" AngleMax="360" ScaleMin="0.25" ScaleMax="0.5" VelocityMin="200" VelocityMax="700" EmitInterval="0" ParticlesPerSecond="0" ParticleAmount="20" HighQualityCollisionDetection="False" CopyEntityAngle="False" />
<sound File="Content/Characters/Mantis/MANTIS_attack1.ogg" State="Attack" Range="2000" Volume="1" />
<sound File="Content/Characters/Mantis/MANTIS_attack2.ogg" State="Attack" Range="2000" Volume="1" />
<sound File="Content/Characters/Mantis/MANTIS_attack3.ogg" State="Attack" Range="2000" Volume="1" />
<sound File="Content/Characters/Mantis/MANTIS_death1.ogg" State="Die" Range="2000" Volume="1" />
<sound File="Content/Characters/Mantis/MANTIS_death2.ogg" State="Die" Range="2000" Volume="1" />
<Inventory Slots="Any, Any, Any, Any, Any" AccessibleWhenAlive="False" Commonness="1">
<Item Identifier="swimbladder" />
<Item Identifier="paralyxis" />
<Item Identifier="chitin" condition="100" />
</Inventory>
<Inventory Slots="Any, Any, Any, Any, Any" AccessibleWhenAlive="False" Commonness="1">
<Item Identifier="swimbladder" />
<Item Identifier="chitin" condition="100" />
</Inventory>
<Inventory Slots="Any, Any, Any, Any, Any" AccessibleWhenAlive="False" Commonness="0.7">
<Item Identifier="swimbladder" />
<Item Identifier="paralyxis" />
<Item Identifier="mantisleg" condition="100" />
</Inventory>
<Inventory Slots="Any, Any, Any, Any, Any" AccessibleWhenAlive="False" Commonness="0.7">
<Item Identifier="swimbladder" />
<Item Identifier="mantisclaw" condition="100" />
</Inventory>
<Inventory Slots="Any, Any, Any, Any, Any" AccessibleWhenAlive="False" Commonness="0.7">
<Item Identifier="swimbladder" />
<Item Identifier="paralyxis" />
<Item Identifier="mantisclaw" condition="100" />
</Inventory>
<Inventory Slots="Any, Any, Any, Any, Any" AccessibleWhenAlive="False" Commonness="0.7">
<Item Identifier="swimbladder" />
<Item Identifier="mantisleg" condition="100" />
</Inventory>
<ai CombatStrength="250" Sight="1.5" Hearing="1" MaxPerceptionDistance="-1" AggressionHurt="100" AggressionGreed="10" FleeHealthThreshold="20" AttackWhenProvoked="True" AvoidGunfire="False" DamageThreshold="0" AvoidTime="3" MinFleeTime="20" AggressiveBoarding="True" EnforceAggressiveBehaviorForMissions="True" TargetOuterWalls="True" RandomAttack="False" CanOpenDoors="False" UsePathFindingToGetInside="False" KeepDoorsClosed="False" AvoidAbyss="True" StayInAbyss="False" PatrolFlooded="False" PatrolDry="False" StartAggression="0" MaxAggression="100" AggressionCumulation="0" WallTargetingMethod="Target">
<latchonto AttachToWalls="true" AttachLimbRotation="180" LocalAttachPos="0,-20" CoolDown="30" FreezeWhenLatched="true" />
<!-- most targets are ignored entirely when latched -->
<targetpriority Tag="decoy" State="Attack" Priority="600" ReactDistance="0" AttackDistance="0" Timer="0" IgnoreContained="False" IgnoreInside="False" IgnoreOutside="False" IgnoreIfNotInSameSub="False" IgnoreIncapacitated="False" Threshold="0" ThresholdMin="-1" ThresholdMax="-1" PerceptionDistanceMultiplier="1" MaxPerceptionDistance="-1" Offset="0,0" AttackPattern="Straight" PrioritizeSubCenter="False" SweepDistance="0" SweepStrength="10" SweepSpeed="1" CircleStartDistance="5000" IgnoreTargetSize="False" CircleRotationSpeed="1" DynamicCircleRotationSpeed="False" CircleRandomRotationFactor="0" CircleStrikeDistanceMultiplier="5" CircleMaxRandomOffset="0" />
<targetpriority Tag="stronger" State="Avoid" Priority="100" ReactDistance="0" AttackDistance="0" Timer="0" IgnoreContained="False" IgnoreInside="False" IgnoreOutside="False" IgnoreIfNotInSameSub="False" IgnoreIncapacitated="False" Threshold="0" ThresholdMin="-1" ThresholdMax="-1" PerceptionDistanceMultiplier="1" MaxPerceptionDistance="-1" Offset="0,0" AttackPattern="Straight" PrioritizeSubCenter="False" SweepDistance="0" SweepStrength="10" SweepSpeed="1" CircleStartDistance="5000" IgnoreTargetSize="False" CircleRotationSpeed="1" DynamicCircleRotationSpeed="False" CircleRandomRotationFactor="0" CircleStrikeDistanceMultiplier="5" CircleMaxRandomOffset="0">
<Conditional IsLatched="false" />
</targetpriority>
<target tag="provocative" state="Attack" priority="100" ignoreifnotinsamesub="True">
<Conditional IsLatched="false" />
</target>
<target Tag="mantispink" State="Protect" Priority="10" ReactDistance="1000" AttackDistance="0" Timer="0" IgnoreContained="False" IgnoreInside="False" IgnoreOutside="False" IgnoreTargetInside="False" IgnoreTargetOutside="False" IgnoreIfNotInSameSub="False" IgnoreIncapacitated="False" Threshold="0" ThresholdMin="-1" ThresholdMax="-1" PerceptionDistanceMultiplier="1" MaxPerceptionDistance="-1" Offset="0,0" AttackPattern="Straight" PrioritizeSubCenter="False" SweepDistance="0" SweepStrength="10" SweepSpeed="1" CircleStartDistance="5000" IgnoreTargetSize="False" CircleRotationSpeed="1" DynamicCircleRotationSpeed="False" CircleRandomRotationFactor="0" CircleStrikeDistanceMultiplier="5" CircleMaxRandomOffset="0" />
<targetpriority Tag="dead" State="Eat" Priority="90" ReactDistance="0" AttackDistance="0" Timer="0" IgnoreContained="False" IgnoreInside="False" IgnoreOutside="False" IgnoreIfNotInSameSub="False" IgnoreIncapacitated="False" Threshold="0" ThresholdMin="-1" ThresholdMax="-1" PerceptionDistanceMultiplier="1" MaxPerceptionDistance="-1" Offset="0,0" AttackPattern="Straight" PrioritizeSubCenter="False" SweepDistance="0" SweepStrength="10" SweepSpeed="1" CircleStartDistance="5000" IgnoreTargetSize="False" CircleRotationSpeed="1" DynamicCircleRotationSpeed="False" CircleRandomRotationFactor="0" CircleStrikeDistanceMultiplier="5" CircleMaxRandomOffset="0">
<Conditional IsLatched="false" />
</targetpriority>
<targetpriority Tag="human" State="Attack" Priority="80" ReactDistance="0" AttackDistance="0" Timer="0" IgnoreContained="False" IgnoreInside="False" IgnoreOutside="False" IgnoreIfNotInSameSub="False" IgnoreIncapacitated="False" Threshold="0" ThresholdMin="-1" ThresholdMax="-1" PerceptionDistanceMultiplier="1" MaxPerceptionDistance="-1" Offset="0,0" AttackPattern="Straight" PrioritizeSubCenter="False" SweepDistance="0" SweepStrength="10" SweepSpeed="1" CircleStartDistance="5000" IgnoreTargetSize="False" CircleRotationSpeed="1" DynamicCircleRotationSpeed="False" CircleRandomRotationFactor="0" CircleStrikeDistanceMultiplier="5" CircleMaxRandomOffset="0"></targetpriority>
<targetpriority Tag="mantispinkpet" State="Idle" Priority="90" ReactDistance="4000" AttackDistance="0" Timer="0" IgnoreContained="False" IgnoreInside="True" IgnoreOutside="False" IgnoreTargetInside="False" IgnoreTargetOutside="False" IgnoreIfNotInSameSub="True" IgnoreIncapacitated="False" Threshold="0" ThresholdMin="-1" ThresholdMax="-1" PerceptionDistanceMultiplier="1" MaxPerceptionDistance="-1" Offset="0,0" AttackPattern="Straight" PrioritizeSubCenter="False" SweepDistance="0" SweepStrength="10" SweepSpeed="1" CircleStartDistance="5000" IgnoreTargetSize="False" CircleRotationSpeed="1" DynamicCircleRotationSpeed="False" CircleRandomRotationFactor="0" CircleStrikeDistanceMultiplier="5" CircleMaxRandomOffset="0" />
<targetpriority Tag="door" State="Attack" Priority="65" ReactDistance="0" AttackDistance="0" Timer="0" IgnoreContained="False" IgnoreInside="False" IgnoreOutside="False" IgnoreIfNotInSameSub="False" IgnoreIncapacitated="False" Threshold="0" ThresholdMin="-1" ThresholdMax="-1" PerceptionDistanceMultiplier="1" MaxPerceptionDistance="-1" Offset="0,0" AttackPattern="Straight" PrioritizeSubCenter="False" SweepDistance="0" SweepStrength="10" SweepSpeed="1" CircleStartDistance="5000" IgnoreTargetSize="False" CircleRotationSpeed="1" DynamicCircleRotationSpeed="False" CircleRandomRotationFactor="0" CircleStrikeDistanceMultiplier="5" CircleMaxRandomOffset="0" />
<targetpriority Tag="sonar" State="Attack" Priority="50" ReactDistance="0" AttackDistance="0" Timer="0" IgnoreContained="False" IgnoreInside="False" IgnoreOutside="False" IgnoreIfNotInSameSub="False" IgnoreIncapacitated="False" Threshold="0" ThresholdMin="-1" ThresholdMax="-1" PerceptionDistanceMultiplier="1" MaxPerceptionDistance="-1" Offset="0,0" AttackPattern="Straight" PrioritizeSubCenter="False" SweepDistance="0" SweepStrength="10" SweepSpeed="1" CircleStartDistance="5000" IgnoreTargetSize="False" CircleRotationSpeed="1" DynamicCircleRotationSpeed="False" CircleRandomRotationFactor="0" CircleStrikeDistanceMultiplier="5" CircleMaxRandomOffset="0">
<Conditional IsLatched="false" />
</targetpriority>
<targetpriority Tag="room" State="Attack" Priority="50" ReactDistance="0" AttackDistance="0" Timer="0" IgnoreContained="False" IgnoreInside="False" IgnoreOutside="False" IgnoreIfNotInSameSub="False" IgnoreIncapacitated="False" Threshold="0" ThresholdMin="-1" ThresholdMax="-1" PerceptionDistanceMultiplier="1" MaxPerceptionDistance="-1" Offset="0,0" AttackPattern="Straight" PrioritizeSubCenter="False" SweepDistance="0" SweepStrength="10" SweepSpeed="1" CircleStartDistance="5000" IgnoreTargetSize="False" CircleRotationSpeed="1" DynamicCircleRotationSpeed="False" CircleRandomRotationFactor="0" CircleStrikeDistanceMultiplier="5" CircleMaxRandomOffset="0">
<Conditional IsLatched="false" />
</targetpriority>
<targetpriority Tag="nasonov" State="Attack" Priority="50" ReactDistance="0" AttackDistance="0" Timer="0" IgnoreContained="False" IgnoreInside="False" IgnoreOutside="False" IgnoreIfNotInSameSub="False" IgnoreIncapacitated="False" Threshold="0" ThresholdMin="-1" ThresholdMax="-1" PerceptionDistanceMultiplier="1" MaxPerceptionDistance="-1" Offset="0,0" AttackPattern="Straight" PrioritizeSubCenter="False" SweepDistance="0" SweepStrength="10" SweepSpeed="1" CircleStartDistance="5000" IgnoreTargetSize="False" CircleRotationSpeed="1" DynamicCircleRotationSpeed="False" CircleRandomRotationFactor="0" CircleStrikeDistanceMultiplier="5" CircleMaxRandomOffset="0">
<Conditional IsLatched="false" />
</targetpriority>
</ai>
<StatusEffect type="OnSpawn" target="this" duration="30">
<!-- temporary concealment during spawn to give the mantis time to hide from monsters spawning nearby -->
<Affliction identifier="concealed" strength="10" />
</StatusEffect>
<!-- Can only perceive targets from 500 units away when concealed (= only attacks when something gets very close) -->
<StatusEffect type="OnActive" target="this" MaxPerceptionDistance="500" setvalue="true">
<Conditional IsLatched="true" />
<!-- makes the character change color and activates the "camouflage parts" -->
<Affliction identifier="mantiscamouflage" strength="10" />
<!-- makes other monsters not notice the character -->
<Affliction identifier="concealed" strength="10" />
<ReduceAffliction type="damage" strength="0.02" />
</StatusEffect>
<!-- Disable MaxPerceptionDistance when not latched (can see/hear and react to things normally) -->
<StatusEffect type="OnActive" target="this" MaxPerceptionDistance="-1" interval="1" setvalue="true" ConditionalComparison="And" SoundSelectionMode="All">
<Conditional IsLatched="false" />
<Conditional MaxPerceptionDistance="gt 0" />
<particleemitter particle="mantiscamouflagechunks" particleamount="15" velocitymin="100" velocitymax="1000" anglemin="0" anglemax="360" distancemin="0" distancemax="100" />
<Sound file="Content/Sounds/Damage/Gore6.ogg" volume="2" range="1000" />
<Sound file="Content/Sounds/Damage/ArmorBreak2.ogg" volume="2" range="1000" ignoremuffling="true" />
<Sound file="Content/Characters/Mantis/MANTIS_attack3.ogg" volume="2" range="2000" ignoremuffling="true" />
</StatusEffect>
</Character>
</Override>