补暂存

This commit is contained in:
2025-07-22 16:36:01 +08:00
parent 94a099c774
commit 4f524845a9
18 changed files with 793 additions and 771 deletions

Binary file not shown.

View File

@@ -30,7 +30,6 @@
<li>Wula_Apparel_Init</li>
</apparelTags>
<abilities>
<li>WULA_EmergencyEnergyRestore</li>
</abilities>
<weaponMoney>0</weaponMoney>
<apparelAllowHeadgearChance>0</apparelAllowHeadgearChance>
@@ -74,7 +73,6 @@
<li>Wula_Apparel_Init</li>
</apparelTags>
<abilities>
<li>WULA_EmergencyEnergyRestore</li>
</abilities>
<apparelRequired Inherit="False" />

View File

@@ -1,247 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Defs>
<ThingDef ParentName="ApparelMakeableBase">
<defName>WULA_ShieldBelt</defName>
<label>乌拉护盾腰带</label>
<description>乌拉帝国的个人护盾装置,可以产生动量排斥场来阻挡来袭的投射物。护盾可以通过能力按钮开关,并且具有可配置的护盾值和范围。</description>
<techLevel>Ultra</techLevel>
<recipeMaker>
<researchPrerequisite>WULA_Synth_Weapon_2_Stun_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedBelt</unfinishedThingDef>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<skillRequirements>
<Crafting>8</Crafting>
</skillRequirements>
</recipeMaker>
<graphicData>
<texPath>Things/Item/Equipment/WeaponMelee/Knife</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<costList>
<Steel>50</Steel>
<Plasteel>25</Plasteel>
<ComponentSpacer>3</ComponentSpacer>
<BroadshieldCore>1</BroadshieldCore>
</costList>
<statBases>
<WorkToMake>12000</WorkToMake>
<Mass>1.2</Mass>
<Flammability>0.4</Flammability>
</statBases>
<thingCategories>
<li>Apparel</li>
</thingCategories>
<apparel>
<bodyPartGroups>
<li>Waist</li>
</bodyPartGroups>
<wornGraphicPath>Things/Pawn/Humanlike/Apparel/ShieldBelt/ShieldBelt</wornGraphicPath>
<layers>
<li>Belt</li>
</layers>
<tags>
<li>BeltDefensePop</li>
</tags>
<defaultOutfitTags>
<li>Soldier</li>
</defaultOutfitTags>
</apparel>
<comps>
<li Class="WulaFallenEmpire.CompProperties_WulaShieldBelt">
<!-- 护盾最大生命值 - 护盾能承受的总伤害量 -->
<maxShieldHitPoints>200</maxShieldHitPoints>
<!-- 护盾半径 - 护盾保护范围的半径(以格子为单位) -->
<shieldRadius>3.0</shieldRadius>
<!-- 拦截地面投射物 - 是否拦截子弹、箭矢等地面投射物 -->
<interceptGroundProjectiles>true</interceptGroundProjectiles>
<!-- 拦截空中投射物 - 是否拦截迫击炮弹等空中投射物 -->
<interceptAirProjectiles>false</interceptAirProjectiles>
<!-- 拦截近战攻击 - 是否能够阻挡近战攻击 -->
<interceptMeleeAttacks>false</interceptMeleeAttacks>
<!-- EMP免疫 - 是否免疫电磁脉冲攻击 -->
<empImmune>false</empImmune>
<!-- 护盾颜色 - 护盾显示的颜色 (R, G, B) 值范围0-1 -->
<shieldColor>(0.2, 0.6, 1.0)</shieldColor>
<!-- 充能速率 - 护盾每秒恢复的生命值 -->
<rechargeRate>5.0</rechargeRate>
<!-- 充能冷却时间 - 护盾被破坏后开始充能前的等待时间游戏刻数60刻=1秒 -->
<rechargeCooldownTicks>300</rechargeCooldownTicks>
<!-- 激活音效 - 护盾运行时播放的环境音效 -->
<activeSound>BulletShield_Ambience</activeSound>
<!-- 重新激活特效 - 护盾重新启动时播放的视觉特效 -->
<reactivateEffect>BulletShieldGenerator_Reactivate</reactivateEffect>
<!-- 初始启用状态 - 护盾腰带装备后是否默认开启 -->
<startEnabled>false</startEnabled>
<!-- 护盾模式 - true=有生命值模式可被破坏false=无生命值模式(类似低角护盾,只偏转) -->
<useHitPointsMode>true</useHitPointsMode>
</li>
</comps>
</ThingDef>
<!-- 高级版本 -->
<ThingDef ParentName="ApparelMakeableBase">
<defName>WULA_ShieldBelt_Advanced</defName>
<label>乌拉高级护盾腰带</label>
<description>乌拉帝国的高级个人护盾装置具有更强的护盾值、更大的范围并且可以抵抗近战攻击和EMP伤害。</description>
<techLevel>Ultra</techLevel>
<recipeMaker>
<researchPrerequisite>WULA_Synth_Weapon_2_Stun_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedBelt</unfinishedThingDef>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<skillRequirements>
<Crafting>10</Crafting>
</skillRequirements>
</recipeMaker>
<graphicData>
<texPath>Things/Item/Equipment/WeaponMelee/Knife</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<costList>
<Steel>100</Steel>
<Plasteel>50</Plasteel>
<ComponentSpacer>6</ComponentSpacer>
<BroadshieldCore>2</BroadshieldCore>
<Uranium>10</Uranium>
</costList>
<statBases>
<WorkToMake>20000</WorkToMake>
<Mass>2.0</Mass>
<Flammability>0.2</Flammability>
</statBases>
<thingCategories>
<li>Apparel</li>
</thingCategories>
<apparel>
<bodyPartGroups>
<li>Waist</li>
</bodyPartGroups>
<wornGraphicPath>Things/Pawn/Humanlike/Apparel/ShieldBelt/ShieldBelt</wornGraphicPath>
<layers>
<li>Belt</li>
</layers>
<tags>
<li>BeltDefensePop</li>
</tags>
<defaultOutfitTags>
<li>Soldier</li>
</defaultOutfitTags>
</apparel>
<comps>
<li Class="WulaFallenEmpire.CompProperties_WulaShieldBelt">
<!-- 护盾最大生命值 - 护盾能承受的总伤害量 -->
<maxShieldHitPoints>400</maxShieldHitPoints>
<!-- 护盾半径 - 护盾保护范围的半径(以格子为单位) -->
<shieldRadius>4.5</shieldRadius>
<!-- 拦截地面投射物 - 是否拦截子弹、箭矢等地面投射物 -->
<interceptGroundProjectiles>true</interceptGroundProjectiles>
<!-- 拦截空中投射物 - 是否拦截迫击炮弹等空中投射物 -->
<interceptAirProjectiles>true</interceptAirProjectiles>
<!-- 拦截近战攻击 - 是否能够阻挡近战攻击 -->
<interceptMeleeAttacks>true</interceptMeleeAttacks>
<!-- EMP免疫 - 是否免疫电磁脉冲攻击 -->
<empImmune>true</empImmune>
<!-- 护盾颜色 - 护盾显示的颜色 (R, G, B) 值范围0-1 -->
<shieldColor>(1.0, 0.6, 0.2)</shieldColor>
<!-- 充能速率 - 护盾每秒恢复的生命值 -->
<rechargeRate>8.0</rechargeRate>
<!-- 充能冷却时间 - 护盾被破坏后开始充能前的等待时间游戏刻数60刻=1秒 -->
<rechargeCooldownTicks>180</rechargeCooldownTicks>
<!-- 激活音效 - 护盾运行时播放的环境音效 -->
<activeSound>BulletShield_Ambience</activeSound>
<!-- 重新激活特效 - 护盾重新启动时播放的视觉特效 -->
<reactivateEffect>BulletShieldGenerator_Reactivate</reactivateEffect>
<!-- 初始启用状态 - 护盾腰带装备后是否默认开启 -->
<startEnabled>false</startEnabled>
<!-- 护盾模式 - true=有生命值模式可被破坏false=无生命值模式(类似低角护盾,只偏转) -->
<useHitPointsMode>true</useHitPointsMode>
</li>
</comps>
</ThingDef>
<!-- 偏转型护盾腰带 - 无生命值模式示例 -->
<ThingDef ParentName="ApparelMakeableBase">
<defName>WULA_ShieldBelt_Deflector</defName>
<label>乌拉偏转护盾腰带</label>
<description>乌拉帝国的偏转型个人护盾装置,采用低角护盾技术,不会被破坏但只能偏转投射物。这种护盾永远不会过载,但也无法完全阻挡攻击。</description>
<techLevel>Ultra</techLevel>
<recipeMaker>
<researchPrerequisite>WULA_Synth_Weapon_2_Stun_Technology</researchPrerequisite>
<unfinishedThingDef>UnfinishedBelt</unfinishedThingDef>
<recipeUsers Inherit="False">
<li>WULA_Cube_Productor_Energy</li>
</recipeUsers>
<skillRequirements>
<Crafting>6</Crafting>
</skillRequirements>
</recipeMaker>
<graphicData>
<texPath>Things/Item/Equipment/WeaponMelee/Knife</texPath>
<graphicClass>Graphic_Single</graphicClass>
</graphicData>
<costList>
<Steel>30</Steel>
<Plasteel>15</Plasteel>
<ComponentSpacer>2</ComponentSpacer>
<BroadshieldCore>1</BroadshieldCore>
</costList>
<statBases>
<WorkToMake>8000</WorkToMake>
<Mass>0.8</Mass>
<Flammability>0.4</Flammability>
</statBases>
<thingCategories>
<li>Apparel</li>
</thingCategories>
<apparel>
<bodyPartGroups>
<li>Waist</li>
</bodyPartGroups>
<wornGraphicPath>Things/Pawn/Humanlike/Apparel/ShieldBelt/ShieldBelt</wornGraphicPath>
<layers>
<li>Belt</li>
</layers>
<tags>
<li>BeltDefensePop</li>
</tags>
<defaultOutfitTags>
<li>Soldier</li>
</defaultOutfitTags>
</apparel>
<comps>
<li Class="WulaFallenEmpire.CompProperties_WulaShieldBelt">
<!-- 护盾最大生命值 - 在偏转模式下此值不重要,但仍需设置 -->
<maxShieldHitPoints>100</maxShieldHitPoints>
<!-- 护盾半径 - 护盾保护范围的半径(以格子为单位) -->
<shieldRadius>2.5</shieldRadius>
<!-- 拦截地面投射物 - 是否拦截子弹、箭矢等地面投射物 -->
<interceptGroundProjectiles>true</interceptGroundProjectiles>
<!-- 拦截空中投射物 - 是否拦截迫击炮弹等空中投射物 -->
<interceptAirProjectiles>false</interceptAirProjectiles>
<!-- 拦截近战攻击 - 是否能够阻挡近战攻击 -->
<interceptMeleeAttacks>false</interceptMeleeAttacks>
<!-- EMP免疫 - 是否免疫电磁脉冲攻击 -->
<empImmune>false</empImmune>
<!-- 护盾颜色 - 护盾显示的颜色 (R, G, B) 值范围0-1 -->
<shieldColor>(0.6, 1.0, 0.6)</shieldColor>
<!-- 充能速率 - 在偏转模式下此值不重要 -->
<rechargeRate>0</rechargeRate>
<!-- 充能冷却时间 - 在偏转模式下此值不重要 -->
<rechargeCooldownTicks>0</rechargeCooldownTicks>
<!-- 激活音效 - 护盾运行时播放的环境音效 -->
<activeSound>BulletShield_Ambience</activeSound>
<!-- 重新激活特效 - 护盾重新启动时播放的视觉特效 -->
<reactivateEffect>BulletShieldGenerator_Reactivate</reactivateEffect>
<!-- 初始启用状态 - 护盾腰带装备后是否默认开启 -->
<startEnabled>true</startEnabled>
<!-- 护盾模式 - false=无生命值模式(类似低角护盾,只偏转,永不破坏) -->
<useHitPointsMode>false</useHitPointsMode>
</li>
</comps>
</ThingDef>
</Defs>

View File

@@ -1,24 +1,492 @@
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThinkTreeDef>
<ThinkTreeDef>
<defName>WULA_Humanlike</defName>
<thinkRoot Class="ThinkNode_Priority">
<subNodes>
<!-- Add our custom JobGiver for Wula energy here -->
<li Class="WulaFallenEmpire.JobGiver_WulaGetEnergy">
<minEnergyLevelPercentage>0.5</minEnergyLevelPercentage> <!-- 能量低于50%时开始寻找 -->
<emergencyThreshold>0.1</emergencyThreshold> <!-- 能量低于10%时非常紧急 -->
<normalPriority>5.0</normalPriority>
<emergencyPriority>9.5</emergencyPriority>
<!-- Do lovin' -->
<li Class="ThinkNode_ConditionalLyingDown">
<subNodes>
<li Class="ThinkNode_ChancePerHour_Lovin">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>SatisfyingNeeds</tagToGive>
<subNodes>
<li Class="JobGiver_DoLovin" />
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Include original Humanlike think tree -->
<!-- If we HAVE to keep lying down... -->
<li Class="ThinkNode_ConditionalMustKeepLyingDown">
<subNodes>
<!-- Do a queued job if possible (e.g. watch tv in bed) -->
<li Class="ThinkNode_QueuedJob">
<inBedOnly>true</inBedOnly>
</li>
<!-- Get joy -->
<li Class="ThinkNode_Tagger">
<tagToGive>SatisfyingNeeds</tagToGive>
<subNodes>
<li Class="ThinkNode_PrioritySorter">
<subNodes>
<li Class="ThinkNode_Priority_GetJoy">
<subNodes>
<li Class="JobGiver_GetJoyInBed" />
</subNodes>
</li>
<li Class="JobGiver_MeditateInBed"/>
</subNodes>
</li>
</subNodes>
</li>
<!-- Keep lying down -->
<li Class="JobGiver_KeepLyingDown" />
</subNodes>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>Humanlike</treeDef>
<treeDef>Downed</treeDef>
</li>
<!-- Include original HumanlikeConstant think tree -->
<li Class="ThinkNode_Subtree">
<treeDef>HumanlikeConstant</treeDef>
<treeDef>BurningResponse</treeDef>
</li>
<li Class="ThinkNode_Subtree">
<treeDef>MentalStateCritical</treeDef>
</li>
<!-- Escaping threats -->
<li Class="ThinkNode_Subtree" MayRequire="Ludeon.RimWorld.Biotech">
<treeDef>Abilities_Escape</treeDef>
</li>
<!-- React to close melee threat -->
<li Class="JobGiver_ReactToCloseMeleeThreat" />
<!-- Mental state non critical -->
<li Class="ThinkNode_Subtree">
<treeDef>MentalStateNonCritical</treeDef>
</li>
<!-- Behavior when roped -->
<li Class="ThinkNode_Subtree">
<treeDef>RopedPawn</treeDef>
</li>
<!-- Insertion hook for modders -->
<li Class="ThinkNode_SubtreesByTag">
<insertTag>Humanlike_PostMentalState</insertTag>
</li>
<!-- Do a queued job -->
<li Class="ThinkNode_QueuedJob" />
<!-- Wait if drafted -->
<li Class="ThinkNode_ConditionalColonist">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>DraftedOrder</tagToGive>
<subNodes>
<li Class="JobGiver_MoveToStandable" />
<li Class="JobGiver_Orders" />
</subNodes>
</li>
</subNodes>
</li>
<!-- Self-tend if you're an NPC -->
<li Class="ThinkNode_ConditionalNPCCanSelfTendNow">
<subNodes>
<li Class="JobGiver_SelfTend" />
</subNodes>
</li>
<!-- Lord directives (high priority) -->
<li Class="ThinkNode_JoinVoluntarilyJoinableLord">
<dutyHook>HighPriority</dutyHook>
<subNodes>
<li Class="ThinkNode_Subtree">
<treeDef>LordDuty</treeDef>
</li>
</subNodes>
</li>
<!-- Insertion hook for modders -->
<li Class="ThinkNode_SubtreesByTag">
<insertTag>Humanlike_PostDuty</insertTag>
</li>
<!-- Prisoner -->
<li Class="ThinkNode_ConditionalPrisoner">
<leaveJoinableLordIfIssuesJob>true</leaveJoinableLordIfIssuesJob>
<subNodes>
<!-- If it's the player home map... -->
<li Class="ThinkNode_ConditionalInNonPlayerHomeMap">
<invert>true</invert>
<subNodes>
<!-- Wait instead of escaping if should -->
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
<li Class="JobGiver_PrisonerWaitInsteadOfEscaping">
<maxDanger>Deadly</maxDanger>
</li>
</subNodes>
</li>
<!-- Escape -->
<li Class="ThinkNode_Tagger">
<tagToGive>Escaping</tagToGive>
<subNodes>
<li Class="JobGiver_PrisonerEscape" />
</subNodes>
</li>
</subNodes>
</li>
<!-- Exit map if released -->
<li Class="ThinkNode_ConditionalReleased">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ExitMapBest">
<defaultLocomotion>Walk</defaultLocomotion>
</li>
</subNodes>
</li>
</subNodes>
</li>
<li Class="ThinkNode_Tagger">
<tagToGive>RestingForMedicalReasons</tagToGive>
<subNodes>
<li Class="JobGiver_PatientGoToBed" />
</subNodes>
</li>
<li Class="ThinkNode_Tagger">
<tagToGive>ChangingApparel</tagToGive>
<subNodes>
<li Class="JobGiver_PrisonerGetDressed" />
</subNodes>
</li>
<li Class="ThinkNode_Tagger">
<tagToGive>SatisfyingNeeds</tagToGive>
<subNodes>
<li Class="ThinkNode_PrioritySorter">
<subNodes>
<li Class="JobGiver_Autofeed" MayRequire="Ludeon.RimWorld.Biotech" />
<li Class="WulaFallenEmpire.JobGiver_WulaGetEnergy"/>
<li Class="JobGiver_GetRest"/>
<li Class="JobGiver_SatisfyChemicalNeed"/>
<li Class="JobGiver_SatifyChemicalDependency" MayRequire="Ludeon.RimWorld.Biotech" />
<li Class="JobGiver_GetHemogen" MayRequire="Ludeon.RimWorld.Biotech" />
<li Class="JobGiver_GetDeathrest" MayRequire="Ludeon.RimWorld.Biotech" />
<li Class="ThinkNode_Priority_GetJoy">
<subNodes>
<li Class="JobGiver_GetJoy"/>
<li Class="JobGiver_GetJoyInBed"/>
</subNodes>
</li>
<li Class="JobGiver_Meditate"/>
</subNodes>
</li>
</subNodes>
</li>
<!-- If in non-PlayerHomeMap -->
<li Class="ThinkNode_ConditionalInNonPlayerHomeMap">
<subNodes>
<!-- No colonist spawned in the map -->
<li Class="ThinkNode_ConditionalAnyUndownedColonistSpawnedNearby">
<invert>true</invert>
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Escaping</tagToGive>
<subNodes>
<li Class="JobGiver_PrisonerEscape" />
</subNodes>
</li>
</subNodes>
</li>
<!-- Wander -->
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
<li Class="JobGiver_WanderColony">
<maxDanger>Deadly</maxDanger>
</li>
</subNodes>
</li>
</subNodes>
</li>
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
<li Class="JobGiver_WanderCurrentRoom">
<maxDanger>Deadly</maxDanger>
</li>
</subNodes>
</li>
<li Class="JobGiver_IdleError" />
</subNodes>
</li>
<!-- If on colonist team, do forced and emergency work -->
<li Class="ThinkNode_ConditionalColonist">
<subNodes>
<!-- Seek allowed area -->
<li Class="JobGiver_SeekAllowedArea" />
<!-- Seek safe temperatures -->
<li Class="JobGiver_BringBabyToSafety" />
<li Class="JobGiver_SeekSafeTemperature" />
<!-- Drop unnused inventory -->
<li Class="JobGiver_DropUnusedInventory" />
<!-- Emergency work -->
<li Class="JobGiver_Work">
<leaveJoinableLordIfIssuesJob>true</leaveJoinableLordIfIssuesJob>
<emergency>true</emergency>
</li>
<!-- Get Wula energy (only if starving) -->
<li Class="ThinkNode_ConditionalNeedPercentageAbove">
<need>WULA_Energy</need>
<threshold>0.5</threshold> <!-- 能量低于10%时触发 -->
<invert>true</invert>
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>SatisfyingNeeds</tagToGive>
<subNodes>
<li Class="WulaFallenEmpire.JobGiver_WulaGetEnergy">
<leaveJoinableLordIfIssuesJob>true</leaveJoinableLordIfIssuesJob>
<minEnergyLevelPercentage>0.5</minEnergyLevelPercentage>
<emergencyThreshold>0.1</emergencyThreshold>
<normalPriority>5</normalPriority>
<emergencyPriority>9.5</emergencyPriority>
<searchRadius>30</searchRadius> <!-- 搜索半径调整为30 -->
<ingestCount>1</ingestCount> <!-- 每次摄取1个能量核心 -->
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Breastfeed -->
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_Autofeed" MayRequire="Ludeon.RimWorld.Biotech" />
</subNodes>
</li>
<!-- Lord directives (medium priority) -->
<li Class="ThinkNode_JoinVoluntarilyJoinableLord">
<dutyHook>MediumPriority</dutyHook>
<subNodes>
<li Class="ThinkNode_Subtree">
<treeDef>LordDuty</treeDef>
</li>
</subNodes>
</li>
<!-- Pick up a weapon dropped while previously downed -->
<li Class="JobGiver_PickupDroppedWeapon">
<ignoreForbidden>true</ignoreForbidden>
</li>
<!-- Optimize apparel -->
<li Class="ThinkNode_Tagger">
<tagToGive>ChangingApparel</tagToGive>
<subNodes>
<li Class="JobGiver_OptimizeApparel">
<leaveJoinableLordIfIssuesJob>true</leaveJoinableLordIfIssuesJob>
</li>
</subNodes>
</li>
<!-- Look change -->
<li MayRequire="Ludeon.RimWorld.Ideology" Class="ThinkNode_ConditionalWantsLookChange">
<subNodes>
<li Class="JobGiver_UseStylingStationAutomatic" />
</subNodes>
</li>
<!-- Dye hair -->
<li MayRequire="Ludeon.RimWorld.Ideology" Class="JobGiver_DyeHair" />
<!-- Take for inventory stock -->
<li Class="ThinkNode_Tagger">
<tagToGive>TakeForInventoryStock</tagToGive>
<subNodes>
<li Class="JobGiver_TakeForInventoryStock">
<leaveJoinableLordIfIssuesJob>true</leaveJoinableLordIfIssuesJob>
</li>
</subNodes>
</li>
<!-- Unload your inventory -->
<li Class="ThinkNode_Tagger">
<tagToGive>UnloadingOwnInventory</tagToGive>
<subNodes>
<li Class="JobGiver_UnloadYourInventory" />
</subNodes>
</li>
<!-- Pack Wula energy if not enough -->
<li Class="ThinkNode_ConditionalNeedPercentageAbove">
<need>WULA_Energy</need> <!-- 能量NeedDef的defName -->
<threshold>0.6</threshold> <!-- 能量低于packEnergyThreshold时考虑打包 -->
<invert>true</invert> <!-- 当能量低于阈值时触发 -->
<subNodes>
<li Class="WulaFallenEmpire.JobGiver_WulaPackEnergy">
<leaveJoinableLordIfIssuesJob>true</leaveJoinableLordIfIssuesJob>
<packEnergyThreshold>0.6</packEnergyThreshold> <!-- 能量低于50%时考虑打包 -->
<packEnergyCount>2</packEnergyCount> <!-- 每次打包2个能量核心 -->
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Behavior from traits -->
<li Class="ThinkNode_TraitBehaviors" />
<!-- Insertion hook for modders -->
<li Class="ThinkNode_SubtreesByTag">
<insertTag>Humanlike_PreMain</insertTag>
</li>
<!-- Main colonist behavior core -->
<li Class="ThinkNode_ConditionalColonist">
<subNodes>
<li Class="ThinkNode_Subtree">
<treeDef>MainColonistBehaviorCore</treeDef>
<leaveJoinableLordIfIssuesJob>true</leaveJoinableLordIfIssuesJob>
</li>
</subNodes>
</li>
<!-- Main wild man behavior core -->
<li Class="ThinkNode_ConditionalPawnKind">
<pawnKind>WildMan</pawnKind>
<subNodes>
<li Class="ThinkNode_Subtree">
<treeDef>MainWildManBehaviorCore</treeDef>
<leaveJoinableLordIfIssuesJob>true</leaveJoinableLordIfIssuesJob>
</li>
</subNodes>
</li>
<!-- Insertion hook for modders -->
<li Class="ThinkNode_SubtreesByTag">
<insertTag>Humanlike_PostMain</insertTag>
</li>
<!-- Idle colonist -->
<li Class="ThinkNode_ConditionalColonist">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
<!-- Do random joy activity -->
<li Class="ThinkNode_ConditionalNeedPercentageAbove">
<need>Joy</need>
<threshold>0.9</threshold>
<invert>true</invert>
<subNodes>
<li Class="JobGiver_IdleJoy" />
</subNodes>
</li>
<!-- Wander -->
<li Class="JobGiver_WanderColony">
<maxDanger>None</maxDanger>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Idle wild man -->
<li Class="ThinkNode_ConditionalPawnKind">
<pawnKind>WildMan</pawnKind>
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
<!-- Wander -->
<li Class="JobGiver_WanderAnywhere">
<maxDanger>Deadly</maxDanger>
<ticksBetweenWandersRange>120~240</ticksBetweenWandersRange>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- If you're a neutral guest, if you're not hurt exit the map, otherwise use a medical bed -->
<li Class="ThinkNode_ConditionalGuest">
<subNodes>
<li Class="ThinkNode_ConditionalNonPlayerNonHostileFactionOrFactionless">
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>RestingForMedicalReasons</tagToGive>
<subNodes>
<li Class="JobGiver_PatientGoToBed" />
</subNodes>
</li>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ExitMapBest">
<defaultLocomotion>Walk</defaultLocomotion>
</li>
</subNodes>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- Final backup: If you're just here for no apparent reason, and not a colonist, leave the map
e.g. This happens for pawns who are downed during combat, then later self-heal -->
<li Class="ThinkNode_ConditionalColonist">
<invert>true</invert>
<subNodes>
<li Class="ThinkNode_Tagger">
<tagToGive>Misc</tagToGive>
<subNodes>
<li Class="JobGiver_ExitMapBest">
<defaultLocomotion>Walk</defaultLocomotion>
</li>
</subNodes>
</li>
</subNodes>
</li>
<!-- If you can't leave, just wander -->
<li Class="ThinkNode_Tagger">
<tagToGive>Idle</tagToGive>
<subNodes>
<li Class="JobGiver_WanderAnywhere">
<maxDanger>Deadly</maxDanger>
</li>
</subNodes>
</li>
<li Class="JobGiver_IdleError" />
</subNodes>
</thinkRoot>
</ThinkTreeDef>