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

161 lines
18 KiBLFS
XML
Executable File

<?xml version="1.0" encoding="utf-8"?>
<Override>
<Character SpeciesName="Watcher" Tags="" SpeciesTranslationOverride="" DisplayName="" Group="watcheroid" Humanoid="False" HasInfo="False" CanInteract="False" CanClimb="True" ForceSlowClimbing="False" Husk="False" HuskedSpecies="" NonHuskedSpecies="" UseHuskAppendage="False" NeedsAir="False" NeedsWater="True" UseHumanAI="False" IsMachine="False" CanSpeak="False" ShowHealthBar="True" UseBossHealthBar="False" Noise="50" Visibility="50" BloodDecal="blood" BleedParticleAir="blooddrop" BleedParticleWater="waterblood" BleedParticleMultiplier="1" CanEat="False" EatingSpeed="10" UsePathFinding="True" PathFinderPriority="1" HideInSonar="False" HideInThermalGoggles="False" SonarDisruption="0" DistantSonarRange="0" DisableDistance="30000" SoundInterval="10" DrawLast="False" AITurretPriority="1" AISlowTurretPriority="1" DespawnContainer="" MusicType="monster" MusicCommonness="1" MusicRangeMultiplier="1" UnlockKillAchievementForWholeCrew="False">
<ragdolls folder="default" />
<animations folder="default" />
<sound gender="None" File="Content/Characters/Watcher/WATCHER_takeDamage1.ogg" State="Damage" Range="10000" Volume="1" Tags="" />
<sound gender="None" File="Content/Characters/Watcher/WATCHER_takeDamage2.ogg" State="Damage" Range="10000" Volume="1" Tags="" />
<sound gender="None" File="Content/Characters/Watcher/WATCHER_takeDamage3.ogg" State="Damage" Range="10000" Volume="1" Tags="" />
<sound gender="None" File="Content/Characters/Watcher/WATCHER_takeDamage4.ogg" State="Damage" Range="10000" Volume="1" Tags="" />
<sound gender="None" dontmuffle="true" File="Content/Characters/Watcher/WATCHER_death1.ogg" State="Die" Range="10000" Volume="1" Tags="" />
<sound gender="None" dontmuffle="true" File="Content/Characters/Watcher/WATCHER_death2.ogg" State="Die" Range="10000" Volume="1" Tags="" />
<damageemitter Particle="gib" AngleMin="0" AngleMax="360" ScaleMin="0.2" ScaleMax="0.4" VelocityMin="200" VelocityMax="300" EmitInterval="0" ParticlesPerSecond="0" ParticleAmount="10" HighQualityCollisionDetection="False" CopyEntityAngle="False" />
<bloodemitter Particle="blood" AngleMin="0" AngleMax="0" ScaleMin="1" ScaleMax="2" VelocityMin="0" VelocityMax="0" EmitInterval="0" ParticlesPerSecond="0" ParticleAmount="10" HighQualityCollisionDetection="False" CopyEntityAngle="False" />
<bloodemitter Particle="waterblood" AngleMin="0" AngleMax="0" ScaleMin="1" ScaleMax="3" VelocityMin="0" VelocityMax="0" EmitInterval="0" ParticlesPerSecond="0" ParticleAmount="3" HighQualityCollisionDetection="False" CopyEntityAngle="False" />
<health Vitality="500" DoesBleed="True" CrushDepth="Infinity" UseHealthWindow="False" BleedingReduction="0" BurnReduction="0" ConstantHealthRegeneration="0" HealthRegenerationWhenEating="0" StunImmunity="True" PoisonImmunity="False" PoisonVulnerability="1" EmpVulnerability="0" ApplyMovementPenalties="True" DieFromBeheading="True" AllowSeveringLegs="False" ApplyAfflictionColors="False" Immunities="">
<Limb name="Head">
<VitalityMultiplier identifier="acidburn" multiplier="0" />
<VitalityMultiplier identifier="watchersgaze" multiplier="0" />
<VitalityMultiplier identifier="psychosis" multiplier="0" />
</Limb>
<Limb name="Torso">
<VitalityMultiplier identifier="acidburn" multiplier="0" />
<VitalityMultiplier identifier="watchersgaze" multiplier="0" />
<VitalityMultiplier identifier="psychosis" multiplier="0" />
</Limb>
<Limb name="RightArm">
<VitalityMultiplier identifier="acidburn" multiplier="0" />
<VitalityMultiplier identifier="watchersgaze" multiplier="0" />
<VitalityMultiplier identifier="psychosis" multiplier="0" />
</Limb>
<Limb name="RightLeg">
<VitalityMultiplier identifier="acidburn" multiplier="0" />
<VitalityMultiplier identifier="watchersgaze" multiplier="0" />
<VitalityMultiplier identifier="psychosis" multiplier="0" />
</Limb>
<Limb name="LeftArm">
<VitalityMultiplier identifier="acidburn" multiplier="0" />
<VitalityMultiplier identifier="watchersgaze" multiplier="0" />
<VitalityMultiplier identifier="psychosis" multiplier="0" />
</Limb>
<Limb>
<!--Spikes-->
<VitalityMultiplier identifier="acidburn" multiplier="0" />
<VitalityMultiplier identifier="watchersgaze" multiplier="0" />
<VitalityMultiplier identifier="psychosis" multiplier="0" />
</Limb>
</health>
<Inventory Slots="Any, Any, Any, Any, Any" AccessibleWhenAlive="False" Commonness="10">
<Item Identifier="watcherspike" />
<Item amount="3" Identifier="sulphuricacid" />
<Item Identifier="watchergel" />
</Inventory>
<Inventory Slots="Any, Any, Any, Any, Any" AccessibleWhenAlive="False" Commonness="5">
<Item amount="3" Identifier="sulphuricacid" />
<Item Identifier="watchergel" />
<Item Identifier="watchershell" />
</Inventory>
<Inventory Slots="Any, Any, Any, Any, Any" AccessibleWhenAlive="False" Commonness="5">
<Item amount="1" Identifier="watchershell" />
<Item amount="3" Identifier="sulphuricacid" />
<Item Identifier="watchergel" />
</Inventory>
<Inventory Slots="Any, Any, Any, Any, Any" AccessibleWhenAlive="False" Commonness="5">
<Item amount="1" Identifier="watchercornea" />
<Item amount="3" Identifier="sulphuricacid" />
<Item Identifier="watchergel" />
</Inventory>
<Inventory Slots="Any, Any, Any, Any, Any" AccessibleWhenAlive="False" Commonness="5">
<Item amount="1" Identifier="watcherspike" />
<Item amount="3" Identifier="sulphuricacid" />
<Item Identifier="watchercornea" />
</Inventory>
<Inventory Slots="Any, Any, Any, Any, Any" AccessibleWhenAlive="False" Commonness="5">
<Item amount="1" Identifier="watchershell" />
<Item amount="3" Identifier="sulphuricacid" />
<Item Identifier="watchercornea" />
</Inventory>
<Inventory Slots="Any, Any, Any, Any, Any" AccessibleWhenAlive="False" Commonness="5">
<Item Identifier="watchercornea" />
<Item amount="3" Identifier="sulphuricacid" />
<Item Identifier="watchergel" />
</Inventory>
<ai CombatStrength="600" Sight="5" Hearing="0" MaxPerceptionDistance="-1" AggressionHurt="100" AggressionGreed="0" FleeHealthThreshold="75" AttackWhenProvoked="False" AvoidGunfire="True" DamageThreshold="0" AvoidTime="5" MinFleeTime="45" AggressiveBoarding="False" EnforceAggressiveBehaviorForMissions="False" 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" PlayDeadProbability="0">
<target Tag="weapon" State="Avoid" Priority="500" ReactDistance="3000" AttackDistance="0" Timer="0" IgnoreContained="False" IgnoreInside="False" 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" />
<target Tag="decoy" State="Observe" Priority="100" ReactDistance="0" AttackDistance="1000" Timer="20" IgnoreContained="False" IgnoreInside="False" 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" />
<target Tag="provocative" State="Observe" Priority="100" ReactDistance="0" AttackDistance="1000" Timer="20" IgnoreContained="False" IgnoreInside="False" 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" />
<target Tag="light" State="Observe" Priority="100" ReactDistance="0" AttackDistance="1000" Timer="20" 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" />
<target Tag="human" State="Observe" Priority="20" ReactDistance="0" AttackDistance="1000" Timer="20" 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" />
<target Tag="weaker" State="Observe" Priority="20" ReactDistance="0" AttackDistance="1000" Timer="20" 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" />
<target Tag="stronger" State="Observe" Priority="20" 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" />
<target Tag="wall" State="Observe" Priority="1" ReactDistance="0" AttackDistance="1500" Timer="10" 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" />
</ai>
<StatusEffect type="OnActive" target="NearbyCharacters" range="5000" targets="human">
<Affliction identifier="watchersgaze" strength="5" />
<Sound file="Content/Characters/Watcher/WATCHER_idleLoop.ogg" loop="true" range="5000" dontmuffle="true" />
</StatusEffect>
<StatusEffect type="OnActive" target="NearbyCharacters" range="1500" targets="human" onlyoutside="true">
<Affliction identifier="watchersgaze" strength="20" />
</StatusEffect>
<!-- optimized effects for monsters: only apply every 1 second, it doesn't matter that the strength fluctuates up and down
(in the case of humans it matters, because the visual effects keep fluctuating) -->
<StatusEffect type="OnActive" target="NearbyCharacters" range="5000" targets="monster" interval="1" disabledeltatime="true">
<Affliction identifier="watchersgaze" strength="5" />
</StatusEffect>
<StatusEffect type="OnActive" target="NearbyCharacters" range="1500" targets="monster" onlyoutside="true" interval="1" disabledeltatime="true">
<Affliction identifier="watchersgaze" strength="20" />
</StatusEffect>
<StatusEffect type="OnDamaged" target="This" checkconditionalways="true" comparison="and" delay="0.4" stackable="false">
<RequiredAffliction type="damage,burn" minstrength="1" />
<Conditional isdead="false" />
<SpawnItem identifier="acidemitter" spawnposition="This" count="3" spread="500" />
<Sound file="Content/Characters/Watcher/WATCHER_burst1.ogg" range="5000" selectionmode="Random" />
<Sound file="Content/Characters/Watcher/WATCHER_burst2.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst3.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst4.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst5.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst6.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst7.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst8.ogg" range="5000" />
</StatusEffect>
<StatusEffect type="OnDamaged" target="This" checkconditionalways="true" comparison="and" delay="0.6" stackable="false">
<RequiredAffliction type="damage,burn" minstrength="1" />
<Conditional isdead="false" />
<SpawnItem identifier="acidemitter" spawnposition="This" count="2" spread="300" />
<Sound file="Content/Characters/Watcher/WATCHER_burst1.ogg" range="5000" selectionmode="Random" />
<Sound file="Content/Characters/Watcher/WATCHER_burst2.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst3.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst4.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst5.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst6.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst7.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst8.ogg" range="5000" />
</StatusEffect>
<StatusEffect type="OnDamaged" target="This" checkconditionalways="true" comparison="and" delay="0.8" stackable="false">
<RequiredAffliction type="damage,burn" minstrength="1" />
<Conditional isdead="false" />
<SpawnItem identifier="acidemitter" spawnposition="This" count="3" spread="400" />
<Sound file="Content/Characters/Watcher/WATCHER_burst1.ogg" range="5000" selectionmode="Random" />
<Sound file="Content/Characters/Watcher/WATCHER_burst2.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst3.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst4.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst5.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst6.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst7.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst8.ogg" range="5000" />
</StatusEffect>
<StatusEffect type="OnDamaged" target="This" checkconditionalways="true" comparison="and" delay="1.0" stackable="false">
<RequiredAffliction type="damage,burn" minstrength="1" />
<Conditional isdead="false" />
<SpawnItem identifier="acidemitter" spawnposition="This" count="1" spread="200" />
<Sound file="Content/Characters/Watcher/WATCHER_burst1.ogg" range="5000" selectionmode="Random" />
<Sound file="Content/Characters/Watcher/WATCHER_burst2.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst3.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst4.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst5.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst6.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst7.ogg" range="5000" />
<Sound file="Content/Characters/Watcher/WATCHER_burst8.ogg" range="5000" />
</StatusEffect>
</Character>
</Override>